:root {
    --gold: #b8862f;
    --gold-dark: #a97622;
    --cream: #f9f5ea;
    --ink: #2b1d0e;
    --text: #5a4a3a;
}

body { font-family: 'Poppins', sans-serif; color: var(--ink); }
h1, h2, h3, h4, h5 { font-family: 'Playfair Display', serif; }
.container { max-width: 1100px; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

/* ===== BANNER ===== */
.guide-hero {
    position: relative; color: #fff; padding: 150px 0 60px;
    background: url('/assests/night.avif') center/cover no-repeat;
}
.guide-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(90deg, rgba(25, 14, 5, .85), rgba(25, 14, 5, .4));
}
.hero-title { font-size: clamp(30px, 5vw, 46px); font-weight: 700; margin: 8px 0; }
.hero-subtitle { font-size: 15px; opacity: .9; margin: 0; }
.crumbs { font-size: 12px; opacity: .85; }
.crumbs a { color: #fff; text-decoration: none; }
.crumbs span { color: #e0b25a; }

/* ===== CONTACT ===== */
.contact-section { background: var(--cream); padding: 80px 0; }
.card-title { font-size: 26px; font-weight: 600; margin-bottom: 14px; }
.side-text { color: var(--text); font-size: 14px; margin-bottom: 22px; }

.reservation-card {
    background: #fff; padding: 32px; border-radius: 20px;
    box-shadow: 0 16px 34px rgba(60, 40, 10, .1);
}
.reservation-card label { display: block; font-size: 12px; font-weight: 600; color: var(--gold); margin-bottom: 4px; }
.form-control, .form-select { border: 1px solid #e3d8c3; border-radius: 8px; font-size: 14px; padding: 10px 12px; }
.form-control:focus, .form-select:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(184, 134, 47, .2); }
.hp { position: absolute; left: -9999px; }

.btn-custom {
    width: 100%; border: 0; border-radius: 30px; padding: 12px; font-size: 15px; font-weight: 600;
    background: linear-gradient(135deg, #c8963a, var(--gold-dark)); color: #fff; transition: .25s ease; cursor: pointer;
}
.btn-custom:hover { background: var(--ink); }

.notice { padding: 12px 16px; border-radius: 8px; font-size: 14px; margin-bottom: 14px; }
.notice.ok { background: #e4f4e4; color: #16401a; }
.notice.bad { background: #fbe4e1; color: #6e1a12; }

/* Info boxes */
.info-box { display: flex; gap: 14px; margin-bottom: 20px; font-size: 14px; color: var(--text); line-height: 1.6; }
.info-box strong { color: var(--ink); }
.info-box a { color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--gold); }
.info-box a:hover { color: var(--gold); }
.info-icon {
    flex: 0 0 42px; width: 42px; height: 42px; border-radius: 10px; background: #f7ecd4;
    display: flex; align-items: center; justify-content: center; color: var(--gold); font-size: 18px;
}
.info-icon.wa { background: #dff5e6; color: #1faa59; }

/* Map */
.map-wrap { margin-top: 70px; }
.map-section { border-radius: 22px; overflow: hidden; box-shadow: 0 16px 34px rgba(60, 40, 10, .12); }
.map-section iframe { display: block; width: 100%; height: 380px; border: 0; }
.map-link { display: inline-block; margin-top: 14px; font-size: 14px; font-weight: 500; color: var(--ink); text-decoration: none; border-bottom: 2px solid var(--gold); }
.map-link:hover { color: var(--gold); }

/* ===== RESPONSIVE ===== */
@media (max-width: 992px) {
    .contact-section { padding: 60px 0; }
}
@media (max-width: 576px) {
    .guide-hero { padding-top: 120px; }
    .reservation-card { padding: 22px; }
    .map-section iframe { height: 300px; }
}
@media (prefers-reduced-motion: reduce) {
    * { transition: none !important; }
}