:root { --gold:#C5A069; --navy:#0B1C3C; --teal:#2A9D8F; --cream:#FDFBF7; }
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; overflow-x:hidden; }
body { background:var(--cream); margin:0; color:var(--navy); overflow-x:hidden; font-family:'Inter',sans-serif; -webkit-tap-highlight-color:transparent; }
html, body { max-width:100vw; width:100%; }
* { min-width:0; }
img, video, iframe { max-width:100%; height:auto; }

/* ── HEADER ── */
header { position:fixed; top:0; left:0; width:100%; z-index:1000; padding:1.5rem 0; transition:all 0.4s cubic-bezier(0.4,0,0.2,1); }
header.scrolled { background:rgba(253,251,247,0.97); backdrop-filter:blur(20px); padding:0.75rem 0; box-shadow:0 1px 0 rgba(11,28,60,0.06),0 8px 30px rgba(11,28,60,0.04); }
header.scrolled .logo-text { color:var(--navy); }
header.scrolled .btn-discover { color:var(--navy); border-color:rgba(11,28,60,0.2); }
.logo-text { color:white; }
.btn-discover { border:1px solid rgba(255,255,255,0.4); color:white; padding:10px 24px; border-radius:100px; font-size:11px; font-weight:700; letter-spacing:0.15em; text-transform:uppercase; display:flex; align-items:center; gap:10px; transition:all 0.3s ease; background:transparent; cursor:pointer; }
.btn-book { background:var(--gold); color:white; padding:11px 26px; border-radius:100px; font-size:11px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; border:none; cursor:pointer; transition:all 0.3s ease; white-space:nowrap; text-decoration:none; display:inline-block; }
.btn-book:hover { background:#b8925a; transform:translateY(-1px); box-shadow:0 8px 24px rgba(197,160,105,0.4); }
.burger-icon { width:18px; height:10px; display:flex; flex-direction:column; justify-content:space-between; }
.burger-icon span { display:block; height:1.5px; width:100%; background:currentColor; }

/* ── NAV OVERLAY ── */
#nav-overlay { transition:opacity 0.5s ease,visibility 0.5s; opacity:0; visibility:hidden; }
#nav-overlay.active { opacity:1; visibility:visible; }
.nav-link { font-size:clamp(2rem,5vw,3.5rem); transition:all 0.4s ease; text-align:center; width:100%; font-family:'Playfair Display',serif; color:white; text-decoration:none; }
.nav-link:hover { color:var(--gold); letter-spacing:0.05em; }

/* ── PAGE HERO ── */
.contact-hero {
    position:relative;
    height:60vh;
    min-height:420px;
    display:flex;
    align-items:flex-end;
    overflow:hidden;
}
.contact-hero-bg {
    position:absolute; inset:0;
    background:linear-gradient(rgba(11,28,60,0.25) 0%, rgba(11,28,60,0.75) 100%),
        url('https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&w=1920&q=80') center/cover;
}
.contact-hero-content { position:relative; z-index:2; max-width:1300px; width:100%; margin:0 auto; padding:0 2rem 4rem; color:white; }
.hero-eyebrow { font-size:10px; font-weight:800; letter-spacing:0.4em; text-transform:uppercase; color:var(--gold); margin-bottom:0.75rem; opacity:0; animation:fadeUp 0.7s ease 0.2s forwards; transform:translateY(20px); }
.hero-title { font-family:'Playfair Display',serif; font-size:clamp(2.5rem,6vw,5rem); font-weight:700; line-height:1.05; margin:0 0 1rem; opacity:0; animation:fadeUp 0.7s ease 0.35s forwards; transform:translateY(20px); }
.hero-title em { font-style:italic; font-weight:400; color:var(--gold); }
.hero-subtitle { font-size:15px; color:rgba(255,255,255,0.7); max-width:480px; line-height:1.7; opacity:0; animation:fadeUp 0.7s ease 0.5s forwards; transform:translateY(20px); }
@keyframes fadeUp { to { opacity:1; transform:translateY(0); } }

/* ── CONTACT LAYOUT ── */
.contact-layout { max-width:1300px; margin:0 auto; padding:5rem 2rem 6rem; display:grid; gap:4rem; }
@media (min-width:1024px) { .contact-layout { grid-template-columns:1fr 420px; align-items:start; } }

/* ── CONTACT INFO CARDS ── */
.info-cards { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:3rem; }
@media (max-width:480px) { .info-cards { grid-template-columns:1fr; } }
.info-card {
    background:white;
    border-radius:20px;
    padding:1.75rem;
    border:1px solid rgba(11,28,60,0.06);
    transition:all 0.3s ease;
}
.info-card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(11,28,60,0.08); border-color:rgba(197,160,105,0.3); }
.info-card-icon { width:44px; height:44px; background:rgba(197,160,105,0.1); border-radius:12px; display:flex; align-items:center; justify-content:center; color:var(--gold); margin-bottom:1rem; }
.info-card-label { font-size:9px; font-weight:800; letter-spacing:0.2em; text-transform:uppercase; color:#94a3b8; margin-bottom:0.4rem; }
.info-card-value { font-size:14px; font-weight:700; color:var(--navy); line-height:1.4; }
.info-card-sub { font-size:12px; color:#94a3b8; margin-top:3px; }

/* ── SECTION HEADING ── */
.sec-eyebrow { font-size:9px; font-weight:800; letter-spacing:0.35em; text-transform:uppercase; color:var(--gold); margin-bottom:0.75rem; display:block; }
.sec-title { font-family:'Playfair Display',serif; font-size:clamp(1.8rem,3.5vw,2.4rem); font-weight:700; color:var(--navy); line-height:1.15; margin-bottom:0.75rem; }
.sec-divider { width:40px; height:2px; background:var(--gold); border-radius:2px; margin-bottom:1.5rem; }
.sec-body { font-size:15px; color:#4a5568; line-height:1.8; margin-bottom:2rem; }

/* ── CONTACT FORM ── */
.contact-form { display:flex; flex-direction:column; gap:1.25rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
@media (max-width:540px) { .form-row { grid-template-columns:1fr; } }
.form-group { display:flex; flex-direction:column; gap:6px; }
.form-label { font-size:10px; font-weight:800; letter-spacing:0.15em; text-transform:uppercase; color:#94a3b8; }
.form-input, .form-select, .form-textarea {
    border:1.5px solid rgba(11,28,60,0.1);
    border-radius:12px;
    padding:14px 16px;
    font-size:14px;
    font-family:'Inter',sans-serif;
    color:var(--navy);
    background:white;
    outline:none;
    transition:all 0.2s ease;
    width:100%;
}
.form-input:focus, .form-select:focus, .form-textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(197,160,105,0.12); }
.form-input::placeholder, .form-textarea::placeholder { color:#cbd5e1; }
.form-textarea { resize:vertical; min-height:120px; }
.form-select { appearance:none; background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2394a3b8' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:40px; }
.form-submit {
    background:var(--navy);
    color:white;
    border:none;
    border-radius:14px;
    padding:18px 32px;
    font-size:13px;
    font-weight:700;
    letter-spacing:0.1em;
    text-transform:uppercase;
    cursor:pointer;
    display:flex; align-items:center; justify-content:center; gap:10px;
    transition:all 0.3s ease;
    width:100%;
}
.form-submit:hover { background:var(--gold); transform:translateY(-2px); box-shadow:0 12px 32px rgba(197,160,105,0.35); }
.form-submit.loading { opacity:0.7; pointer-events:none; }
.form-note { font-size:11px; color:#94a3b8; text-align:center; }
.form-or { text-align:center; font-size:12px; color:#94a3b8; font-weight:600; text-transform:uppercase; letter-spacing:0.1em; margin:-0.25rem 0; }
.whatsapp-form-btn { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; padding:14px; border-radius:14px; background:#25D366; color:white; font-size:13px; font-weight:700; letter-spacing:0.05em; text-decoration:none; text-transform:uppercase; cursor:pointer; transition:all 0.3s ease; border:none; }
.whatsapp-form-btn:hover { background:#1db954; transform:translateY(-2px); box-shadow:0 8px 24px rgba(37,211,102,0.35); }

/* Success message */
#form-success {
    display:none;
    background:rgba(42,157,143,0.08);
    border:1.5px solid rgba(42,157,143,0.3);
    border-radius:16px;
    padding:2rem;
    text-align:center;
}
#form-success.active { display:block; }

/* ── SIDEBAR ── */
.contact-sidebar { display:flex; flex-direction:column; gap:1.5rem; }

/* Map card */
.map-card {
    background:white;
    border-radius:24px;
    overflow:hidden;
    border:1px solid rgba(11,28,60,0.06);
}
.map-visual {
    height:240px;
    position:relative;
    overflow:hidden;
}
.map-visual iframe {
    width:100%; height:100%; border:none; display:block;
}
.map-info { padding:1.5rem; }
.map-address { font-size:13px; font-weight:600; color:var(--navy); margin-bottom:0.25rem; }
.map-sub { font-size:12px; color:#94a3b8; }
.map-link { display:inline-flex; align-items:center; gap:6px; margin-top:0.75rem; font-size:12px; font-weight:700; color:var(--gold); text-decoration:none; letter-spacing:0.05em; text-transform:uppercase; transition:gap 0.2s; }
.map-link:hover { gap:10px; }

/* Hours card */
.hours-card { background:white; border-radius:20px; padding:1.75rem; border:1px solid rgba(11,28,60,0.06); }
.hours-row { display:flex; justify-content:space-between; align-items:center; padding:8px 0; border-bottom:1px solid #f8fafc; font-size:13px; }
.hours-row:last-child { border-bottom:none; }
.hours-day { font-weight:600; color:var(--navy); }
.hours-time { color:#64748b; }
.hours-open { color:var(--teal); font-weight:700; font-size:11px; background:rgba(42,157,143,0.1); padding:3px 10px; border-radius:100px; }

/* WhatsApp CTA */
.whatsapp-card {
    background:linear-gradient(135deg, #0B1C3C 0%, #1a3055 100%);
    border-radius:20px;
    padding:1.75rem;
    display:flex;
    flex-direction:column;
    gap:1rem;
}
.whatsapp-card-title { font-family:'Playfair Display',serif; font-size:1.1rem; font-weight:700; color:white; }
.whatsapp-card-desc { font-size:12px; color:rgba(255,255,255,0.5); line-height:1.6; }
.whatsapp-btn {
    background:#25D366;
    color:white;
    border:none;
    border-radius:100px;
    padding:12px 20px;
    font-size:12px;
    font-weight:700;
    letter-spacing:0.05em;
    cursor:pointer;
    display:flex; align-items:center; justify-content:center; gap:8px;
    transition:all 0.3s ease;
    text-decoration:none;
}
.whatsapp-btn:hover { background:#1db954; transform:translateY(-2px); box-shadow:0 8px 20px rgba(37,211,102,0.35); }

/* ── FAQ ── */
.faq-section { max-width:1300px; margin:0 auto; padding:0 2rem 6rem; }
.faq-grid { display:grid; gap:1rem; }
@media (min-width:768px) { .faq-grid { grid-template-columns:1fr 1fr; } }
.faq-item { background:white; border-radius:16px; border:1px solid rgba(11,28,60,0.06); overflow:hidden; }
.faq-q { padding:1.25rem 1.5rem; font-weight:700; font-size:14px; color:var(--navy); cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:1rem; user-select:none; }
.faq-q svg { flex-shrink:0; transition:transform 0.3s ease; color:#94a3b8; }
.faq-item.open .faq-q svg { transform:rotate(180deg); color:var(--gold); }
.faq-a { max-height:0; overflow:hidden; transition:max-height 0.35s ease, padding 0.35s ease; font-size:13px; color:#64748b; line-height:1.7; padding:0 1.5rem; }
.faq-item.open .faq-a { max-height:300px; padding:0 1.5rem 1.25rem; }

/* ── FOOTER ── */
footer { background:var(--navy); color:white; }
.footer-top { max-width:1300px; margin:0 auto; padding:5rem 2rem 3rem; display:grid; gap:3rem; }
@media (min-width:768px) { .footer-top { grid-template-columns:2fr 1fr 1fr 1fr; } }
.footer-brand-desc { font-size:13px; color:rgba(255,255,255,0.45); line-height:1.8; margin-top:1rem; max-width:280px; }
.footer-col-title { font-size:10px; font-weight:800; letter-spacing:0.25em; text-transform:uppercase; color:var(--gold); margin-bottom:1.25rem; }
.footer-link { display:block; font-size:13px; color:rgba(255,255,255,0.5); text-decoration:none; margin-bottom:0.75rem; transition:color 0.2s; }
.footer-link:hover { color:white; }
.footer-divider { border-top:1px solid rgba(255,255,255,0.07); }
.footer-bottom { max-width:1300px; margin:0 auto; padding:1.5rem 2rem; display:flex; flex-wrap:wrap; gap:1rem; align-items:center; justify-content:space-between; }
.footer-bottom-text { font-size:11px; color:rgba(255,255,255,0.25); }
.footer-social-btn { width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,0.4); text-decoration:none; transition:all 0.2s; }
.footer-social-btn:hover { background:var(--gold); border-color:var(--gold); color:white; }

/* ── SPIN ANIMATION ── */
@keyframes spin { to { transform: rotate(360deg); } }
.spin { animation: spin 1s linear infinite; }

/* == ACCESSIBILITY & CONTRAST POLISH == */
:root { --gold-text:#8A6B3B; }
.sec-eyebrow { color:var(--gold-text); }
.map-link { color:var(--gold-text); }
.footer-link { color:rgba(255,255,255,0.72); }
.footer-bottom-text { color:rgba(255,255,255,0.55); }
.footer-brand-desc { color:rgba(255,255,255,0.65); }
a:focus-visible, button:focus-visible, [tabindex]:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.faq-q:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
    html { scroll-behavior:auto !important; }
    .hero-eyebrow, .hero-title, .hero-subtitle { opacity:1; transform:none; animation:none; }
}
/* == Motion & micro-interactions == */
html{scroll-behavior:smooth;}
button,a{touch-action:manipulation;}
.btn-book:active,.btn-discover:active,.form-submit:active,.whatsapp-btn:active,.whatsapp-form-btn:active{transform:scale(.97);}
.info-card:active{transform:scale(.99);}
.rv{opacity:0;transform:translateY(22px);transition:opacity .65s cubic-bezier(.22,.61,.36,1),transform .65s cubic-bezier(.22,.61,.36,1);}
.rv.in{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){.rv{opacity:1;transform:none;transition:none;}html{scroll-behavior:auto;}}