:root {
    --bg: #070708;
    --bg-soft: #0d0d10;
    --surface: rgba(18, 18, 22, 0.82);
    --surface-strong: #121216;
    --line: rgba(255, 255, 255, 0.09);
    --line-gold: rgba(216, 177, 84, 0.24);
    --text: #f5f2eb;
    --text-soft: #b8b2a7;
    --text-muted: #7f7b75;
    --gold: #d8b154;
    --gold-strong: #f0cf78;
    --gold-deep: #8f6d2d;
    --purple: #6c35a3;
    --purple-soft: rgba(108, 53, 163, 0.2);
    --red-soft: rgba(135, 22, 37, 0.18);
    --font-heading: 'Playfair Display', Georgia, serif;
    --font-body: 'Outfit', Arial, sans-serif;
    --container: 1280px;
    --header: 86px;
    --ease: cubic-bezier(.2,.75,.25,1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    min-height: 100vh;
    overflow-x: hidden;
    font-family: var(--font-body);
    background:
        radial-gradient(circle at 16% 4%, rgba(108,53,163,.12), transparent 34rem),
        radial-gradient(circle at 86% 12%, rgba(216,177,84,.08), transparent 30rem),
        var(--bg);
    color: var(--text);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
body::before {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9999;
    opacity: .035;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
}

img { display:block; max-width:100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }

h1,h2,h3,h4,h5,h6 {
    margin: 0;
    font-family: var(--font-heading);
    font-weight: 500;
    line-height: 1.07;
    letter-spacing: -.025em;
}
h1 { font-size: clamp(3.5rem, 8.6vw, 8.8rem); }
h2 { font-size: clamp(2.25rem, 5vw, 4.8rem); }
h3 { font-size: clamp(1.45rem, 2.7vw, 2.35rem); }
p { margin:0; font-size: clamp(1rem, 1.3vw, 1.12rem); color: var(--text-soft); }

.container { width:min(var(--container), calc(100% - 56px)); margin:0 auto; }
.container-narrow { width:min(880px, calc(100% - 56px)); margin:0 auto; }
.section { position:relative; z-index:2; padding: clamp(88px, 10vw, 150px) 0; }
.section-tight { padding: clamp(62px, 7vw, 100px) 0; }
.section-rule { border-top:1px solid var(--line); }
.eyebrow {
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:var(--gold-strong);
    font-size:.73rem;
    line-height:1;
    letter-spacing:.24em;
    font-weight:600;
    text-transform:uppercase;
}
.eyebrow::before { content:''; width:34px; height:1px; background:currentColor; opacity:.7; }
.section-head { max-width:820px; margin-bottom:clamp(42px,6vw,72px); }
.section-head.center { text-align:center; margin-left:auto; margin-right:auto; }
.section-head.center .eyebrow { justify-content:center; }
.section-head.center .eyebrow::after { content:''; width:34px; height:1px; background:currentColor; opacity:.7; }
.section-head h2 { margin-top:16px; }
.section-head p { margin-top:22px; max-width:720px; line-height:1.85; }
.section-head.center p { margin-left:auto; margin-right:auto; }
.gold { color:var(--gold-strong); }

/* Header */
.header {
    position:fixed;
    top:0; left:0; right:0;
    z-index:1000;
    height:var(--header);
    display:flex;
    align-items:center;
    transition:background .35s ease, border-color .35s ease, height .35s ease, backdrop-filter .35s ease;
    border-bottom:1px solid transparent;
}
.header.scrolled {
    height:72px;
    background:rgba(7,7,8,.82);
    border-color:var(--line);
    backdrop-filter:blur(18px) saturate(1.2);
}
.nav-container { display:flex; align-items:center; justify-content:space-between; gap:32px; }
.logo { width:86px; flex:0 0 auto; position:relative; z-index:3; }
.logo img { width:100%; height:58px; object-fit:contain; object-position:center 24%; filter:drop-shadow(0 5px 18px rgba(0,0,0,.42)); }
.nav-links { display:flex; align-items:center; gap:clamp(20px,2.6vw,36px); }
.nav-links a {
    position:relative;
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.15em;
    color:rgba(245,242,235,.72);
    padding:10px 0;
    transition:color .25s ease;
}
.nav-links a:not(.nav-cta)::after {
    content:'';
    position:absolute;
    left:0; right:100%; bottom:3px;
    height:1px;
    background:var(--gold);
    transition:right .3s var(--ease);
}
.nav-links a:hover, .nav-links a.active { color:#fff; }
.nav-links a:hover::after, .nav-links a.active::after { right:0; }
.nav-links .nav-cta {
    border:1px solid rgba(216,177,84,.44);
    padding:12px 18px;
    border-radius:999px;
    color:var(--gold-strong);
    background:rgba(216,177,84,.06);
}
.nav-links .nav-cta:hover { background:var(--gold); color:#100e09; border-color:var(--gold); }
.mobile-menu-btn {
    display:none;
    width:44px; height:44px;
    align-items:center; justify-content:center;
    border:1px solid var(--line);
    border-radius:50%;
    background:rgba(255,255,255,.02);
    cursor:pointer;
    font-size:1.25rem;
}

/* Buttons */
.actions { display:flex; flex-wrap:wrap; gap:12px; }
.btn {
    min-height:52px;
    padding:0 24px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    border:1px solid transparent;
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.16em;
    font-weight:650;
    transition:transform .3s var(--ease), background .3s ease, color .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.btn:hover { transform:translateY(-2px); }
.btn-solid { color:#151006; background:linear-gradient(135deg,var(--gold-strong),var(--gold)); box-shadow:0 14px 36px rgba(216,177,84,.18); }
.btn-solid:hover { box-shadow:0 18px 44px rgba(216,177,84,.28); }
.btn-ghost { border-color:rgba(255,255,255,.18); background:rgba(255,255,255,.03); color:#fff; backdrop-filter:blur(8px); }
.btn-ghost:hover { border-color:rgba(216,177,84,.5); color:var(--gold-strong); }
.btn-dark { background:#0c0c0f; border-color:var(--line); }

/* Hero */
.home-hero {
    min-height:100svh;
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    overflow:hidden;
    border-bottom:1px solid var(--line);
}
.hero-photo {
    position:absolute;
    inset:0;
    background-size:cover;
    background-position:center;
    transform:scale(1.04);
    filter:saturate(.94) contrast(1.04);
}
.hero-photo::after {
    content:'';
    position:absolute;
    inset:0;
    background:
        linear-gradient(90deg, rgba(7,7,8,.98) 0%, rgba(7,7,8,.89) 35%, rgba(7,7,8,.48) 64%, rgba(7,7,8,.72) 100%),
        linear-gradient(180deg, rgba(7,7,8,.4), rgba(7,7,8,.1) 52%, rgba(7,7,8,.92) 100%);
}
.hero-glow {
    position:absolute;
    width:48vw; height:48vw;
    border-radius:50%;
    right:-8vw; top:5vh;
    background:radial-gradient(circle, rgba(108,53,163,.22), rgba(216,177,84,.06) 28%, transparent 68%);
    filter:blur(20px);
    animation:heroGlow 7s ease-in-out infinite alternate;
}
@keyframes heroGlow { from{transform:scale(.95); opacity:.65} to{transform:scale(1.06); opacity:1} }
.hero-inner {
    position:relative;
    z-index:3;
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(340px,.72fr);
    align-items:center;
    gap:clamp(24px,5vw,72px);
    padding-top:calc(var(--header) + 54px);
    padding-bottom:76px;
}
.hero-copy { max-width:760px; }
.hero-kicker { margin-bottom:22px; }
.hero-title { max-width:800px; text-transform:uppercase; text-shadow:0 25px 70px rgba(0,0,0,.48); }
.hero-title .small-line { display:block; font-size:.34em; letter-spacing:.2em; font-family:var(--font-body); font-weight:600; color:var(--gold-strong); margin-bottom:12px; }
.hero-lead { margin-top:24px; max-width:640px; font-size:clamp(1.05rem,1.65vw,1.28rem); line-height:1.75; color:#d5d0c7; }
.hero-actions { margin-top:34px; }
.hero-meta {
    margin-top:36px;
    display:flex;
    flex-wrap:wrap;
    gap:14px 24px;
    color:var(--text-soft);
    font-size:.88rem;
}
.hero-meta span { display:inline-flex; align-items:center; gap:8px; }
.hero-meta i { width:6px; height:6px; border-radius:50%; background:var(--gold); box-shadow:0 0 14px rgba(216,177,84,.5); }

.goddess-stage {
    position:relative;
    min-height:560px;
    display:grid;
    place-items:center;
    pointer-events:none;
}
.goddess-orbit {
    position:absolute;
    width:min(34vw,460px);
    aspect-ratio:1;
    border-radius:50%;
    border:1px solid rgba(216,177,84,.18);
    box-shadow:inset 0 0 80px rgba(108,53,163,.12), 0 0 80px rgba(108,53,163,.12);
    animation:orbitPulse 5.8s ease-in-out infinite alternate;
}
.goddess-orbit::before, .goddess-orbit::after {
    content:'';
    position:absolute;
    border-radius:50%;
    inset:8%;
    border:1px dashed rgba(216,177,84,.15);
    animation:spin 34s linear infinite;
}
.goddess-orbit::after { inset:-8%; border-style:solid; opacity:.28; animation-direction:reverse; animation-duration:44s; }
@keyframes spin { to { transform:rotate(360deg); } }
@keyframes orbitPulse { from{transform:scale(.96); opacity:.65} to{transform:scale(1.03); opacity:1} }
.goddess-figure {
    width:min(40vw,530px);
    position:relative;
    z-index:2;
    filter:drop-shadow(0 28px 48px rgba(0,0,0,.45)) drop-shadow(0 0 24px rgba(216,177,84,.14));
    animation:goddessFloat 5.4s ease-in-out infinite;
    transform-origin:center;
    will-change:transform;
}
.goddess-figure img { width:100%; }
.goddess-shine {
    position:absolute;
    inset:10%;
    z-index:3;
    border-radius:50%;
    background:linear-gradient(115deg, transparent 28%, rgba(255,255,255,.16) 46%, transparent 61%);
    transform:translateX(-130%) rotate(8deg);
    mix-blend-mode:screen;
    animation:shine 6.2s ease-in-out infinite;
}
@keyframes goddessFloat { 0%,100%{transform:translate3d(0,-6px,0) rotate(-.4deg)} 50%{transform:translate3d(0,12px,0) rotate(.6deg)} }
@keyframes shine { 0%,58%{transform:translateX(-130%) rotate(8deg);opacity:0} 68%{opacity:.75} 86%,100%{transform:translateX(130%) rotate(8deg);opacity:0} }
.hero-scroll-note {
    position:absolute;
    left:50%; bottom:24px;
    z-index:4;
    transform:translateX(-50%);
    display:flex; align-items:center; gap:10px;
    font-size:.65rem; letter-spacing:.2em; text-transform:uppercase;
    color:rgba(255,255,255,.42);
}
.hero-scroll-note::before { content:''; width:36px; height:1px; background:rgba(255,255,255,.32); }

/* Quick info strip */
.quick-strip {
    position:relative;
    z-index:3;
    background:rgba(12,12,15,.92);
    border-bottom:1px solid var(--line);
}
.quick-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.quick-item { padding:26px 30px; border-right:1px solid var(--line); }
.quick-item:last-child { border-right:0; }
.quick-item span { display:block; color:var(--gold-strong); font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; margin-bottom:5px; }
.quick-item strong { display:block; font-family:var(--font-heading); font-size:1.2rem; font-weight:500; }
.quick-item p { margin-top:5px; font-size:.9rem; color:var(--text-muted); }

/* Editorial blocks */
.editorial-grid { display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(44px,8vw,110px); align-items:start; }
.editorial-copy p + p { margin-top:18px; }
.editorial-copy .lead { font-family:var(--font-heading); color:#ded8ce; font-size:clamp(1.25rem,2vw,1.65rem); line-height:1.65; }
.editorial-copy .actions { margin-top:30px; }

.photo-stack { position:relative; min-height:670px; }
.photo-card { position:absolute; overflow:hidden; border:1px solid rgba(255,255,255,.1); background:#111; box-shadow:0 28px 60px rgba(0,0,0,.35); }
.photo-card img { width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease), filter .8s ease; filter:saturate(.9) contrast(1.02); }
.photo-card:hover img { transform:scale(1.035); filter:saturate(1.03) contrast(1.04); }
.photo-card.one { width:72%; height:72%; right:0; top:0; }
.photo-card.two { width:48%; height:48%; left:0; bottom:0; border-color:rgba(216,177,84,.22); }
.photo-label {
    position:absolute; left:18px; bottom:18px;
    padding:9px 12px; border-radius:999px;
    background:rgba(7,7,8,.72); backdrop-filter:blur(10px);
    border:1px solid var(--line);
    font-size:.66rem; letter-spacing:.16em; text-transform:uppercase;
}

.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.feature-card {
    position:relative;
    min-height:310px;
    padding:34px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    border:1px solid var(--line);
    background:linear-gradient(145deg, rgba(255,255,255,.035), rgba(255,255,255,.012));
    overflow:hidden;
    transition:transform .35s var(--ease), border-color .35s ease, background .35s ease;
}
.feature-card:hover { transform:translateY(-5px); border-color:rgba(216,177,84,.28); background:linear-gradient(145deg, rgba(108,53,163,.08), rgba(216,177,84,.035)); }
.feature-num { position:absolute; top:24px; right:24px; font-family:var(--font-heading); font-size:3.8rem; color:rgba(216,177,84,.08); }
.feature-icon { width:42px; height:42px; display:grid; place-items:center; margin-bottom:auto; border:1px solid var(--line-gold); border-radius:50%; color:var(--gold-strong); }
.feature-card h3 { margin-top:28px; font-size:1.65rem; }
.feature-card p { margin-top:12px; font-size:.98rem; line-height:1.75; }

/* Schedule */
.schedule-panel {
    position:relative;
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    overflow:hidden;
    border:1px solid var(--line);
    background:linear-gradient(135deg, rgba(108,53,163,.08), rgba(216,177,84,.025));
}
.schedule-photo { min-height:500px; background-size:cover; background-position:center; position:relative; }
.schedule-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(7,7,8,.1), rgba(7,7,8,.82)); }
.schedule-content { padding:clamp(42px,6vw,78px); display:flex; flex-direction:column; justify-content:center; }
.schedule-content h2 { margin-top:15px; }
.schedule-copy { margin-top:20px; max-width:570px; }
.schedule-list { margin-top:32px; border-top:1px solid var(--line); }
.schedule-row { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:18px 0; border-bottom:1px solid var(--line); }
.schedule-row strong { font-size:1.03rem; letter-spacing:.02em; }
.schedule-row span { color:var(--gold-strong); font-weight:600; }
.schedule-note { margin-top:18px; font-size:.9rem; color:var(--text-muted); }

/* SEO content */
.seo-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.seo-card { padding:34px; border:1px solid var(--line); background:rgba(255,255,255,.018); }
.seo-card h3 { font-size:1.55rem; color:#fff; }
.seo-card p { margin-top:14px; line-height:1.82; font-size:.98rem; }

/* CTA */
.cta-panel {
    position:relative;
    overflow:hidden;
    border:1px solid rgba(216,177,84,.24);
    background:
        radial-gradient(circle at 82% 20%, rgba(108,53,163,.22), transparent 28rem),
        linear-gradient(135deg, #101014, #0b0b0d);
    padding:clamp(46px,7vw,84px);
}
.cta-panel::after { content:'DIVINA'; position:absolute; right:-10px; bottom:-48px; font-family:var(--font-heading); font-size:clamp(7rem,17vw,15rem); color:rgba(255,255,255,.022); pointer-events:none; }
.cta-grid { position:relative; z-index:2; display:grid; grid-template-columns:1fr auto; gap:40px; align-items:end; }
.cta-panel h2 { max-width:760px; margin-top:14px; }
.cta-panel p { margin-top:18px; max-width:680px; }

/* Inner hero */
.page-hero {
    position:relative;
    min-height:520px;
    padding:calc(var(--header) + 100px) 0 90px;
    display:flex;
    align-items:flex-end;
    overflow:hidden;
    border-bottom:1px solid var(--line);
}
.page-hero-bg { position:absolute; inset:0; background-size:cover; background-position:center; filter:saturate(.85); }
.page-hero-bg::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(7,7,8,.4), rgba(7,7,8,.92) 78%, var(--bg)), linear-gradient(90deg, rgba(7,7,8,.8), transparent 72%); }
.page-hero-content { position:relative; z-index:2; max-width:900px; }
.page-hero h1 { font-size:clamp(3.2rem,8vw,7rem); margin-top:14px; }
.page-hero p { margin-top:20px; max-width:720px; font-size:1.15rem; line-height:1.75; }

/* Gallery */
.gallery-intro { max-width:760px; margin-bottom:46px; }
.gallery-grid { display:grid; grid-template-columns:repeat(12,1fr); grid-auto-rows:140px; gap:14px; }
.gallery-item { position:relative; overflow:hidden; border:1px solid var(--line); cursor:zoom-in; }
.gallery-item:nth-child(6n+1) { grid-column:span 7; grid-row:span 3; }
.gallery-item:nth-child(6n+2) { grid-column:span 5; grid-row:span 2; }
.gallery-item:nth-child(6n+3) { grid-column:span 5; grid-row:span 2; }
.gallery-item:nth-child(6n+4) { grid-column:span 4; grid-row:span 3; }
.gallery-item:nth-child(6n+5) { grid-column:span 4; grid-row:span 3; }
.gallery-item:nth-child(6n+6) { grid-column:span 4; grid-row:span 3; }
.gallery-item img { width:100%; height:100%; object-fit:cover; filter:saturate(.9) brightness(.88); transition:transform .8s var(--ease), filter .8s ease; }
.gallery-item::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(0,0,0,.72)); opacity:.65; transition:opacity .35s ease; }
.gallery-item:hover img { transform:scale(1.045); filter:saturate(1.05) brightness(1); }
.gallery-item:hover::after { opacity:.32; }
.gallery-label { position:absolute; left:20px; bottom:18px; z-index:2; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:#fff; }
.lightbox { position:fixed; inset:0; z-index:2000; display:grid; place-items:center; padding:28px; background:rgba(3,3,4,.94); backdrop-filter:blur(16px); opacity:0; pointer-events:none; transition:opacity .3s ease; }
.lightbox.active { opacity:1; pointer-events:auto; }
.lightbox img { max-width:min(1200px,94vw); max-height:88vh; object-fit:contain; border:1px solid var(--line); }
.lightbox-close { position:absolute; top:24px; right:24px; width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.05); border:1px solid var(--line); font-size:1.5rem; cursor:pointer; }

/* FAQ */
.faq-layout { display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(42px,7vw,90px); align-items:start; }
.faq-aside { position:sticky; top:110px; }
.faq-aside p { margin-top:20px; line-height:1.8; }
.faq-list { border-top:1px solid var(--line); }
.faq-item { border-bottom:1px solid var(--line); }
.faq-question { width:100%; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px 0; background:none; border:0; cursor:pointer; text-align:left; font-family:var(--font-heading); font-size:clamp(1.15rem,2vw,1.5rem); }
.faq-question span:last-child { font-family:var(--font-body); color:var(--gold-strong); font-size:1.35rem; transition:transform .25s ease; }
.faq-answer { max-height:0; overflow:hidden; transition:max-height .4s var(--ease); }
.faq-answer-inner { padding:0 0 24px; max-width:780px; }
.faq-item.open .faq-question span:last-child { transform:rotate(45deg); }

/* Reservation */
.contact-layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(34px,6vw,78px); align-items:start; }
.contact-card { padding:30px; border:1px solid var(--line); background:rgba(255,255,255,.018); }
.contact-card + .contact-card { margin-top:14px; }
.contact-card span { display:block; font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-strong); margin-bottom:9px; }
.contact-card strong { display:block; font-family:var(--font-heading); font-size:1.35rem; font-weight:500; }
.contact-card p { margin-top:8px; font-size:.96rem; }
.reservation-wrap { border:1px solid var(--line); background:linear-gradient(150deg, rgba(20,20,24,.96), rgba(11,11,14,.98)); padding:clamp(30px,5vw,56px); box-shadow:0 28px 65px rgba(0,0,0,.25); }
.form-head { margin-bottom:30px; }
.form-head h2 { font-size:clamp(2rem,4vw,3.5rem); }
.form-head p { margin-top:14px; }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.form-group.full { grid-column:1/-1; }
.form-label { display:block; margin-bottom:8px; font-size:.72rem; text-transform:uppercase; letter-spacing:.14em; color:#d6c9ad; }
.form-control { width:100%; min-height:52px; background:rgba(255,255,255,.025); border:1px solid rgba(255,255,255,.11); border-radius:10px; color:#fff; padding:12px 14px; outline:none; transition:border-color .25s ease, background .25s ease, box-shadow .25s ease; }
textarea.form-control { min-height:112px; resize:vertical; }
.form-control:focus { border-color:rgba(216,177,84,.55); background:rgba(216,177,84,.035); box-shadow:0 0 0 3px rgba(216,177,84,.06); }
.form-control::placeholder { color:rgba(255,255,255,.3); }
.reservation-notice { margin-top:18px; display:flex; gap:12px; align-items:flex-start; padding:16px; border:1px solid rgba(216,177,84,.2); background:rgba(216,177,84,.04); border-radius:10px; }
.reservation-notice b { color:var(--gold-strong); font-weight:600; }
.reservation-notice p { font-size:.9rem; line-height:1.6; }
.form-submit { margin-top:22px; width:100%; border:0; cursor:pointer; }
.form-helper { margin-top:14px; text-align:center; font-size:.8rem; color:var(--text-muted); }

/* Footer */
.footer { position:relative; z-index:2; border-top:1px solid var(--line); background:#08080a; padding:76px 0 26px; }
.footer-grid { display:grid; grid-template-columns:1.15fr .85fr .85fr .9fr; gap:42px; }
.footer-logo { width:118px; height:110px; object-fit:contain; object-position:center 20%; margin-bottom:18px; }
.footer-tagline { max-width:290px; font-size:.98rem; line-height:1.75; }
.footer h4 { font-family:var(--font-body); font-size:.72rem; text-transform:uppercase; letter-spacing:.18em; color:var(--gold-strong); margin-bottom:20px; }
.footer p, .footer a { font-size:.92rem; color:var(--text-soft); }
.footer a:hover { color:var(--gold-strong); }
.footer-list { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.footer-small { color:var(--text-muted)!important; }
.footer-bottom { margin-top:56px; padding-top:22px; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.footer-bottom span, .footer-bottom a { font-size:.75rem; color:var(--text-muted); }

/* Reveal */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .72s var(--ease), transform .72s var(--ease); }
.reveal.active { opacity:1; transform:none; }
.delay-1 { transition-delay:.08s; }
.delay-2 { transition-delay:.16s; }
.delay-3 { transition-delay:.24s; }
.delay-4 { transition-delay:.32s; }

/* Utilities */
.text-center { text-align:center; }
.mt-24 { margin-top:24px; }
.mt-32 { margin-top:32px; }
.mt-40 { margin-top:40px; }

@media (max-width: 1020px) {
    .hero-inner { grid-template-columns:1fr .72fr; }
    .goddess-stage { min-height:440px; }
    .feature-grid { grid-template-columns:1fr 1fr; }
    .feature-card:last-child { grid-column:1/-1; }
    .footer-grid { grid-template-columns:1fr 1fr; }
    .faq-layout, .contact-layout { grid-template-columns:1fr; }
    .faq-aside { position:static; }
}

@media (max-width: 820px) {
    :root { --header:74px; }
    .container, .container-narrow { width:min(100% - 32px, var(--container)); }
    .header { height:74px; }
    .header.scrolled { height:66px; }
    .logo { width:72px; }
    .logo img { height:50px; }
    .mobile-menu-btn { display:flex; position:relative; z-index:4; }
    .nav-links {
        position:fixed;
        inset:0;
        z-index:2;
        display:flex;
        flex-direction:column;
        justify-content:center;
        align-items:flex-start;
        padding:96px 32px 48px;
        gap:4px;
        background:rgba(7,7,8,.98);
        backdrop-filter:blur(18px);
        transform:translateX(100%);
        transition:transform .38s var(--ease);
    }
    .nav-links.show { transform:none; }
    .nav-links a { width:100%; font-family:var(--font-heading); font-size:clamp(1.65rem,8vw,2.7rem); letter-spacing:0; text-transform:none; padding:12px 0; color:#fff; border-bottom:1px solid var(--line); }
    .nav-links .nav-cta { margin-top:18px; text-align:center; font-family:var(--font-body); font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; border-radius:999px; }
    .home-hero { min-height:auto; }
    .hero-inner { grid-template-columns:1fr; padding-top:122px; padding-bottom:68px; }
    .hero-copy { max-width:650px; }
    .hero-title { font-size:clamp(3.6rem,18vw,6.5rem); }
    .hero-photo::after { background:linear-gradient(180deg, rgba(7,7,8,.72) 0%, rgba(7,7,8,.7) 42%, rgba(7,7,8,.96) 100%); }
    .goddess-stage { min-height:360px; margin-top:-8px; }
    .goddess-figure { width:min(78vw,430px); }
    .goddess-orbit { width:min(72vw,390px); }
    .hero-scroll-note { display:none; }
    .quick-grid { grid-template-columns:1fr; }
    .quick-item { border-right:0; border-bottom:1px solid var(--line); padding:22px 0; }
    .quick-item:last-child { border-bottom:0; }
    .editorial-grid, .schedule-panel, .cta-grid { grid-template-columns:1fr; }
    .photo-stack { min-height:560px; }
    .schedule-photo { min-height:350px; }
    .schedule-photo::after { background:linear-gradient(180deg, rgba(7,7,8,.06), rgba(7,7,8,.84)); }
    .seo-grid { grid-template-columns:1fr; }
    .gallery-grid { grid-template-columns:1fr 1fr; grid-auto-rows:250px; }
    .gallery-item, .gallery-item:nth-child(n) { grid-column:span 1; grid-row:span 1; }
    .page-hero { min-height:430px; padding-top:150px; }
}

@media (max-width: 600px) {
    .section { padding:78px 0; }
    .hero-lead { font-size:1.02rem; }
    .hero-actions .btn { width:100%; }
    .hero-meta { display:grid; gap:9px; }
    .feature-grid { grid-template-columns:1fr; }
    .feature-card:last-child { grid-column:auto; }
    .photo-stack { min-height:460px; }
    .photo-card.one { width:82%; height:68%; }
    .photo-card.two { width:58%; height:48%; }
    .schedule-row { align-items:flex-start; flex-direction:column; gap:3px; }
    .cta-panel { padding:38px 24px; }
    .gallery-grid { grid-template-columns:1fr; grid-auto-rows:360px; }
    .form-grid { grid-template-columns:1fr; }
    .form-group.full { grid-column:auto; }
    .footer-grid { grid-template-columns:1fr; gap:34px; }
    .footer-bottom { flex-direction:column; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior:auto; }
    *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
    .reveal { opacity:1; transform:none; }
}

/* =========================================================
   Refinado visual HOME V2 — legibilidad + animaciones
   ========================================================= */
.home-hero {
    min-height: max(840px, 100svh);
    align-items:stretch;
}
.hero-aurora,
.hero-beams {
    position:absolute;
    inset:0;
    pointer-events:none;
    z-index:1;
}
.hero-aurora {
    background:
        radial-gradient(circle at 74% 28%, rgba(240, 207, 120, .14), transparent 18rem),
        radial-gradient(circle at 84% 52%, rgba(108, 53, 163, .18), transparent 22rem),
        radial-gradient(circle at 58% 14%, rgba(255,255,255,.06), transparent 14rem);
    mix-blend-mode:screen;
    animation:auroraShift 11s ease-in-out infinite alternate;
}
.hero-beams {
    background:
        linear-gradient(118deg, transparent 35%, rgba(255,255,255,.045) 48%, transparent 60%),
        linear-gradient(94deg, transparent 58%, rgba(216,177,84,.055) 66%, transparent 74%);
    opacity:.9;
    animation:beamShift 12s ease-in-out infinite alternate;
}
@keyframes auroraShift {
    from { transform:translate3d(0,0,0) scale(1); opacity:.78; }
    to { transform:translate3d(-1.4%, 1.2%, 0) scale(1.04); opacity:1; }
}
@keyframes beamShift {
    from { transform:translateX(0); }
    to { transform:translateX(1.5%); }
}
.hero-inner {
    grid-template-columns:minmax(0,1fr) minmax(360px, .86fr);
    align-items:center;
    gap:clamp(22px, 4vw, 58px);
    padding-top:calc(var(--header) + 42px);
    padding-bottom:48px;
}
.hero-copy { max-width:690px; }
.hero-panel {
    position:relative;
    padding:clamp(28px, 3.2vw, 42px);
    border:1px solid rgba(255,255,255,.12);
    background:linear-gradient(145deg, rgba(7,7,9,.90), rgba(7,7,9,.56));
    backdrop-filter:blur(16px) saturate(1.12);
    box-shadow:0 28px 80px rgba(0,0,0,.32);
}
.hero-panel::after {
    content:'';
    position:absolute;
    inset:auto 22px 0 22px;
    height:1px;
    background:linear-gradient(90deg, transparent, rgba(216,177,84,.42), transparent);
}
.hero-title {
    max-width:7ch;
    font-size:clamp(4.2rem, 7vw, 7.15rem);
    line-height:.92;
    text-transform:uppercase;
    text-shadow:0 20px 50px rgba(0,0,0,.42);
}
.hero-title .small-line {
    display:block;
    max-width:100%;
    font-size:.24em;
    line-height:1.2;
    letter-spacing:.28em;
    font-family:var(--font-body);
    font-weight:650;
    color:var(--gold-strong);
    margin-bottom:16px;
}
.hero-lead {
    margin-top:22px;
    max-width:590px;
    font-size:clamp(1.02rem, 1.3vw, 1.2rem);
    line-height:1.8;
    color:#ece5d7;
}
.hero-meta {
    margin-top:28px;
    gap:10px 18px;
    color:#e8e1d3;
}
.hero-highlights {
    margin-top:28px;
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:12px;
}
.hero-highlight {
    padding:16px 16px 15px;
    border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.03);
    min-height:106px;
}
.hero-highlight strong {
    display:block;
    font-size:.88rem;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:#fff;
}
.hero-highlight small {
    display:block;
    margin-top:8px;
    font-size:.83rem;
    line-height:1.6;
    color:var(--text-soft);
}
.goddess-stage {
    position:relative;
    min-height:620px;
    display:grid;
    place-items:center;
    padding:30px 28px;
    pointer-events:none;
}
.goddess-backdrop {
    position:absolute;
    inset:8% 8% 11%;
    border-radius:32px;
    background:
        radial-gradient(circle at 50% 40%, rgba(108,53,163,.17), transparent 42%),
        linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.01));
    border:1px solid rgba(255,255,255,.06);
    box-shadow:inset 0 0 120px rgba(216,177,84,.04);
}
.goddess-orbit {
    width:min(27vw, 380px);
    border-color:rgba(216,177,84,.20);
}
.goddess-card {
    position:relative;
    z-index:3;
    width:min(100%, 420px);
    padding:28px 26px 24px;
    border-radius:28px;
    border:1px solid rgba(255,255,255,.11);
    background:linear-gradient(160deg, rgba(8,8,10,.88), rgba(18,18,24,.58));
    backdrop-filter:blur(14px);
    box-shadow:0 30px 70px rgba(0,0,0,.36);
}
.goddess-badge {
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:10px 14px;
    border-radius:999px;
    border:1px solid rgba(216,177,84,.24);
    background:rgba(216,177,84,.07);
    color:var(--gold-strong);
    font-size:.72rem;
    letter-spacing:.18em;
    text-transform:uppercase;
}
.goddess-badge::before {
    content:'';
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--gold-strong);
    box-shadow:0 0 16px rgba(240,207,120,.6);
}
.goddess-figure {
    width:min(100%, 310px);
    margin:20px auto 0;
    position:relative;
    z-index:2;
    filter:drop-shadow(0 28px 46px rgba(0,0,0,.45)) drop-shadow(0 0 20px rgba(216,177,84,.12));
    animation:goddessFloat2 6.6s ease-in-out infinite;
}
.goddess-figure img { width:100%; }
@keyframes goddessFloat2 {
    0%,100% { transform:translate3d(0,-4px,0) scale(1); }
    50% { transform:translate3d(0,12px,0) scale(1.018); }
}
.goddess-caption {
    margin:22px auto 0;
    max-width:330px;
    text-align:center;
    font-size:.95rem;
    line-height:1.65;
    color:#d4cebf;
}
.goddess-particle {
    position:absolute;
    z-index:2;
    width:10px;
    height:10px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(255,255,255,.94), rgba(216,177,84,.2) 68%, transparent 72%);
    box-shadow:0 0 18px rgba(216,177,84,.35);
    opacity:.9;
}
.particle-1 { top:18%; left:18%; animation:particleOne 6s ease-in-out infinite; }
.particle-2 { top:72%; right:18%; animation:particleTwo 7.8s ease-in-out infinite; }
.particle-3 { top:30%; right:8%; animation:particleThree 5.6s ease-in-out infinite; }
@keyframes particleOne {
    0%,100% { transform:translateY(0) scale(1); opacity:.65; }
    50% { transform:translateY(-18px) scale(1.25); opacity:1; }
}
@keyframes particleTwo {
    0%,100% { transform:translate(0,0) scale(.9); opacity:.5; }
    50% { transform:translate(-8px,-22px) scale(1.15); opacity:1; }
}
@keyframes particleThree {
    0%,100% { transform:translateY(0) scale(.9); opacity:.45; }
    50% { transform:translateY(16px) scale(1.18); opacity:1; }
}
.floating-note {
    position:absolute;
    z-index:4;
    min-width:174px;
    max-width:220px;
    padding:14px 16px;
    border:1px solid rgba(255,255,255,.10);
    background:rgba(8,8,10,.72);
    backdrop-filter:blur(14px);
    box-shadow:0 14px 30px rgba(0,0,0,.25);
    pointer-events:none;
}
.floating-note span {
    display:block;
    color:var(--gold-strong);
    font-size:.62rem;
    letter-spacing:.18em;
    text-transform:uppercase;
    margin-bottom:6px;
}
.floating-note strong {
    display:block;
    font-size:.98rem;
    line-height:1.4;
    color:#fff;
    font-weight:600;
}
.note-one { top:10%; right:7%; animation:floatTagA 7s ease-in-out infinite; }
.note-two { left:0; bottom:18%; animation:floatTagB 7.8s ease-in-out infinite; }
.note-three { right:0; bottom:6%; animation:floatTagC 8.3s ease-in-out infinite; }
@keyframes floatTagA {
    0%,100% { transform:translate3d(0,0,0); }
    50% { transform:translate3d(0,-12px,0); }
}
@keyframes floatTagB {
    0%,100% { transform:translate3d(0,0,0); }
    50% { transform:translate3d(0,10px,0); }
}
@keyframes floatTagC {
    0%,100% { transform:translate3d(0,0,0); }
    50% { transform:translate3d(0,-8px,0); }
}
.feature-grid { gap:22px; }
.feature-card {
    min-height:326px;
    padding:34px 32px;
    background:linear-gradient(180deg, rgba(17,17,20,.92), rgba(10,10,12,.94));
}
.feature-card p { color:#d9d3c8; }
.feature-num { color:rgba(240,207,120,.12); }
.feature-icon {
    background:rgba(216,177,84,.05);
    box-shadow:0 0 0 6px rgba(216,177,84,.03);
}
.quick-item {
    padding:30px 32px;
    background:linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,.01));
}
.quick-item strong,
.quick-item p { color:#ece4d3; }
.seo-card,
.contact-card,
.reservation-wrap,
.schedule-panel,
.cta-panel {
    border-radius:24px;
}
.schedule-panel { border-color:rgba(255,255,255,.1); }
.schedule-copy,
.schedule-note,
.seo-card p,
.quick-item p { color:#d6d0c6; }

@media (max-width: 1180px) {
    .hero-inner { grid-template-columns:minmax(0,1fr) minmax(320px, .82fr); }
    .hero-highlights { grid-template-columns:1fr; }
    .goddess-stage { min-height:560px; }
    .floating-note { min-width:160px; }
}

@media (max-width: 1020px) {
    .hero-panel { padding:28px; }
    .hero-title { font-size:clamp(3.8rem, 7vw, 6rem); }
    .goddess-card { width:min(100%, 390px); }
    .note-one { right:4%; }
    .note-three { right:2%; }
}

@media (max-width: 820px) {
    .home-hero {
        min-height:auto;
        align-items:flex-start;
    }
    .hero-inner {
        grid-template-columns:1fr;
        padding-top:114px;
        padding-bottom:58px;
        gap:26px;
    }
    .hero-panel {
        padding:24px 22px;
        background:linear-gradient(145deg, rgba(7,7,9,.88), rgba(7,7,9,.68));
    }
    .hero-title {
        max-width:9ch;
        font-size:clamp(3rem, 15vw, 5.4rem);
        line-height:.95;
    }
    .hero-title .small-line {
        font-size:.22em;
        letter-spacing:.2em;
        margin-bottom:12px;
    }
    .hero-lead {
        margin-top:18px;
        font-size:1rem;
        line-height:1.72;
    }
    .hero-highlights {
        grid-template-columns:1fr;
        margin-top:22px;
    }
    .hero-highlight { min-height:auto; }
    .goddess-stage {
        min-height:420px;
        padding:8px 10px 16px;
        margin-top:0;
    }
    .goddess-backdrop {
        inset:5% 0 12%;
        border-radius:24px;
    }
    .goddess-card {
        width:min(100%, 360px);
        padding:22px 18px 20px;
    }
    .goddess-badge {
        font-size:.64rem;
        letter-spacing:.14em;
    }
    .goddess-figure {
        width:min(100%, 240px);
        margin-top:16px;
    }
    .goddess-caption {
        font-size:.9rem;
        margin-top:18px;
    }
    .goddess-orbit {
        width:min(62vw, 280px);
    }
    .floating-note {
        position:relative;
        left:auto !important;
        right:auto !important;
        top:auto !important;
        bottom:auto !important;
        width:100%;
        max-width:none;
        min-width:0;
        margin-top:10px;
        animation:none;
    }
    .goddess-stage { display:flex; flex-direction:column; align-items:center; }
    .hero-scroll-note { display:none; }
}

@media (max-width: 600px) {
    .hero-panel {
        padding:22px 18px;
        border-radius:20px;
    }
    .hero-kicker.eyebrow,
    .hero-kicker.eyebrow::before { gap:8px; }
    .hero-actions { margin-top:26px; }
    .hero-meta { margin-top:22px; }
    .goddess-stage { min-height:auto; }
    .goddess-card { border-radius:22px; }
    .quick-item {
        padding:22px 0;
        background:none;
    }
}

/* =========================================================
   V3 — Redes sociales, Google Maps y accesos rápidos
   ========================================================= */
.btn-location {
    border-color:rgba(216,177,84,.28);
    color:#f4dfaa;
}
.btn-location:hover {
    background:rgba(216,177,84,.08);
    border-color:rgba(216,177,84,.56);
}

.footer-social-panel {
    margin-bottom:58px;
    padding:clamp(28px,4vw,46px);
    display:grid;
    grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
    gap:clamp(24px,4vw,54px);
    align-items:center;
    border:1px solid rgba(216,177,84,.18);
    border-radius:28px;
    background:
        radial-gradient(circle at 10% 20%, rgba(108,53,163,.14), transparent 18rem),
        linear-gradient(145deg, rgba(255,255,255,.035), rgba(255,255,255,.012));
    overflow:hidden;
    position:relative;
}
.footer-social-panel::after {
    content:'';
    position:absolute;
    right:-90px;
    top:-90px;
    width:260px;
    height:260px;
    border-radius:50%;
    border:1px solid rgba(216,177,84,.12);
    box-shadow:0 0 80px rgba(108,53,163,.12);
    pointer-events:none;
}
.footer-social-copy h3 {
    margin-top:16px;
    font-size:clamp(2rem,3.6vw,3.45rem);
    max-width:12ch;
}
.footer-social-copy p {
    margin-top:18px;
    max-width:570px;
    line-height:1.8;
    color:#d8d1c6;
}
.footer-social-actions {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.social-action {
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    gap:14px;
    min-height:92px;
    padding:16px 18px;
    border:1px solid rgba(255,255,255,.09);
    border-radius:18px;
    background:rgba(8,8,10,.56);
    transition:transform .28s var(--ease), border-color .28s ease, background .28s ease, box-shadow .28s ease;
}
.social-action:hover {
    transform:translateY(-4px);
    border-color:rgba(216,177,84,.34);
    background:rgba(216,177,84,.055);
    box-shadow:0 16px 34px rgba(0,0,0,.22);
}
.social-action-map {
    background:linear-gradient(145deg, rgba(216,177,84,.065), rgba(255,255,255,.018));
}
.social-icon {
    width:44px;
    height:44px;
    flex:0 0 44px;
    display:grid;
    place-items:center;
    border-radius:14px;
    border:1px solid rgba(216,177,84,.22);
    color:var(--gold-strong);
    background:rgba(216,177,84,.045);
}
.social-icon svg,
.social-floating svg {
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.75;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.social-action:nth-child(2) .social-icon svg path {
    fill:currentColor;
    stroke:none;
}
.social-action strong {
    display:block;
    font-size:.98rem;
    color:#fff;
    font-weight:600;
}
.social-action small {
    display:block;
    margin-top:4px;
    color:var(--text-muted);
    font-size:.8rem;
    line-height:1.35;
}
.footer-map-link,
.contact-inline-link {
    display:inline-flex;
    margin-top:10px;
    color:var(--gold-strong)!important;
    font-size:.86rem!important;
    font-weight:600;
}
.footer-map-link:hover,
.contact-inline-link:hover {
    color:#fff!important;
}

.social-floating {
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:950;
    display:flex;
    gap:8px;
    padding:8px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:999px;
    background:rgba(7,7,8,.78);
    backdrop-filter:blur(18px) saturate(1.15);
    box-shadow:0 16px 42px rgba(0,0,0,.35);
}
.social-floating a {
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:50%;
    color:#e7d29e;
    transition:transform .25s var(--ease), background .25s ease, color .25s ease;
}
.social-floating a:hover {
    transform:translateY(-3px) scale(1.04);
    background:rgba(216,177,84,.12);
    color:#fff;
}
.social-floating a:first-child svg rect,
.social-floating a:first-child svg circle {
    fill:none;
}

.contact-social-links {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:16px;
}
.contact-social-links a {
    display:inline-flex;
    align-items:center;
    min-height:38px;
    padding:0 13px;
    border-radius:999px;
    border:1px solid rgba(216,177,84,.22);
    color:#f2d98e;
    background:rgba(216,177,84,.04);
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.1em;
}
.contact-social-links a:hover {
    background:rgba(216,177,84,.12);
    border-color:rgba(216,177,84,.46);
    color:#fff;
}
.location-section {
    overflow:hidden;
}
.location-grid {
    display:grid;
    grid-template-columns:minmax(0,.82fr) minmax(480px,1.18fr);
    gap:clamp(32px,6vw,82px);
    align-items:center;
}
.location-copy p {
    line-height:1.82;
    max-width:620px;
}
.location-details {
    margin-top:28px;
    display:grid;
    gap:12px;
}
.location-details div {
    padding:17px 18px;
    border-left:2px solid rgba(216,177,84,.5);
    background:linear-gradient(90deg, rgba(216,177,84,.055), transparent);
}
.location-details span {
    display:block;
    color:var(--gold-strong);
    font-size:.65rem;
    text-transform:uppercase;
    letter-spacing:.16em;
    margin-bottom:5px;
}
.location-details strong {
    display:block;
    color:#fff;
    font-size:.98rem;
    font-weight:550;
}
.map-card {
    position:relative;
    overflow:hidden;
    min-height:470px;
    border:1px solid rgba(255,255,255,.11);
    border-radius:28px;
    background:#111;
    box-shadow:0 30px 70px rgba(0,0,0,.28);
}
.map-card::before {
    content:'';
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    box-shadow:inset 0 0 0 1px rgba(216,177,84,.08);
    border-radius:inherit;
}
.map-card iframe {
    width:100%;
    height:470px;
    border:0;
    display:block;
    filter:saturate(.72) contrast(1.04) brightness(.86);
}
.map-card-caption {
    position:absolute;
    z-index:2;
    left:18px;
    right:18px;
    bottom:18px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:14px 16px;
    border:1px solid rgba(255,255,255,.11);
    border-radius:16px;
    background:rgba(7,7,8,.78);
    backdrop-filter:blur(14px);
}
.map-card-caption strong {
    color:#fff;
    font-size:.96rem;
}
.map-card-caption span {
    color:#d6cdbb;
    font-size:.84rem;
    text-align:right;
}

@media (max-width: 1020px) {
    .footer-social-panel,
    .location-grid {
        grid-template-columns:1fr;
    }
    .location-grid {
        gap:34px;
    }
    .map-card,
    .map-card iframe {
        min-height:420px;
        height:420px;
    }
}

@media (max-width: 820px) {
    .footer-social-actions {
        grid-template-columns:1fr 1fr;
    }
    .social-floating {
        right:14px;
        bottom:14px;
    }
    .social-floating a {
        width:40px;
        height:40px;
    }
}

@media (max-width: 600px) {
    .footer-social-panel {
        padding:24px 18px;
        border-radius:22px;
    }
    .footer-social-actions {
        grid-template-columns:1fr;
    }
    .social-action {
        min-height:78px;
        padding:13px 14px;
    }
    .social-icon {
        width:40px;
        height:40px;
        flex-basis:40px;
    }
    .location-grid {
        grid-template-columns:minmax(0,1fr);
    }
    .map-card,
    .map-card iframe {
        min-height:350px;
        height:350px;
    }
    .map-card-caption {
        align-items:flex-start;
        flex-direction:column;
        gap:4px;
    }
    .map-card-caption span {
        text-align:left;
    }
    .social-floating {
        right:10px;
        bottom:10px;
        gap:4px;
        padding:6px;
    }
    .social-floating a {
        width:38px;
        height:38px;
    }
    .hero-actions .btn {
        width:100%;
    }
}

/* =========================================================
   V4 — Hero limpio + programación semanal protagonista
   ========================================================= */
.home-hero-v4 {
    min-height:clamp(720px, 86vh, 860px);
    display:flex;
    align-items:center;
    overflow:hidden;
    position:relative;
    border-bottom:1px solid rgba(255,255,255,.09);
}
.hero-photo-v4 {
    transform:scale(1.02);
    filter:saturate(.88) contrast(1.03) brightness(.82);
    animation:heroPhotoDrift 18s ease-in-out infinite alternate;
}
.hero-photo-v4::after {
    background:
        linear-gradient(90deg, rgba(5,5,7,.96) 0%, rgba(5,5,7,.88) 36%, rgba(5,5,7,.48) 68%, rgba(5,5,7,.72) 100%),
        linear-gradient(180deg, rgba(5,5,7,.52) 0%, rgba(5,5,7,.12) 48%, rgba(5,5,7,.9) 100%);
}
@keyframes heroPhotoDrift {
    from { transform:scale(1.02) translate3d(0,0,0); }
    to { transform:scale(1.055) translate3d(-.5%, .4%, 0); }
}
.hero-v4-overlay {
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:
        radial-gradient(circle at 68% 44%, rgba(216,177,84,.08), transparent 22rem),
        radial-gradient(circle at 84% 18%, rgba(108,53,163,.16), transparent 24rem);
}
.hero-v4-light {
    position:absolute;
    z-index:1;
    border-radius:999px;
    filter:blur(55px);
    pointer-events:none;
    opacity:.45;
}
.hero-v4-light-one {
    width:280px;
    height:280px;
    right:18%;
    top:12%;
    background:rgba(216,177,84,.13);
    animation:heroLightFloat 9s ease-in-out infinite alternate;
}
.hero-v4-light-two {
    width:340px;
    height:340px;
    right:-5%;
    bottom:2%;
    background:rgba(108,53,163,.16);
    animation:heroLightFloat2 11s ease-in-out infinite alternate;
}
@keyframes heroLightFloat {
    from { transform:translate3d(0,0,0) scale(.95); opacity:.32; }
    to { transform:translate3d(-22px,18px,0) scale(1.08); opacity:.62; }
}
@keyframes heroLightFloat2 {
    from { transform:translate3d(0,0,0) scale(.94); opacity:.26; }
    to { transform:translate3d(-30px,-18px,0) scale(1.05); opacity:.52; }
}
.hero-v4-grid {
    position:relative;
    z-index:3;
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(390px,.78fr);
    gap:clamp(42px, 6vw, 88px);
    align-items:center;
    padding-top:calc(var(--header) + 54px);
    padding-bottom:54px;
}
.hero-v4-copy {
    max-width:720px;
}
.hero-v4-kicker {
    display:inline-flex;
    align-items:center;
    gap:12px;
    color:var(--gold-strong);
    font-size:.73rem;
    font-weight:650;
    letter-spacing:.2em;
    text-transform:uppercase;
}
.hero-v4-kicker::before {
    content:'';
    width:38px;
    height:1px;
    background:currentColor;
    opacity:.72;
}
.hero-v4-title {
    margin-top:24px;
    max-width:none;
    font-size:clamp(4rem, 6.7vw, 6.9rem);
    line-height:.9;
    letter-spacing:-.045em;
    text-transform:none;
    text-shadow:0 24px 70px rgba(0,0,0,.46);
}
.hero-v4-title span {
    display:block;
    margin-top:10px;
    font-family:var(--font-body);
    font-size:.19em;
    font-weight:650;
    letter-spacing:.34em;
    text-transform:uppercase;
    color:var(--gold-strong);
}
.hero-v4-lead {
    margin-top:26px;
    max-width:670px;
    font-size:clamp(1.05rem, 1.45vw, 1.23rem);
    line-height:1.78;
    color:#ece7dc;
}
.hero-v4-lead strong { color:#fff; }
.hero-v4-actions {
    margin-top:32px;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:12px;
}
.hero-v4-actions .btn { min-height:50px; }
.hero-v4-link {
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:12px 4px;
    color:#eee8dc;
    font-size:.83rem;
    font-weight:600;
    letter-spacing:.05em;
    transition:color .25s ease, transform .25s ease;
}
.hero-v4-link span { color:var(--gold-strong); transition:transform .25s ease; }
.hero-v4-link:hover { color:var(--gold-strong); }
.hero-v4-link:hover span { transform:translateX(4px); }
.hero-v4-meta {
    margin-top:28px;
    padding-top:22px;
    border-top:1px solid rgba(255,255,255,.1);
    display:flex;
    flex-wrap:wrap;
    gap:10px 12px;
}
.hero-v4-meta span {
    display:inline-flex;
    align-items:center;
    min-height:34px;
    padding:0 13px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.09);
    background:rgba(9,9,11,.48);
    color:#d8d1c5;
    font-size:.79rem;
}
.weekly-program {
    position:relative;
    width:100%;
    max-width:500px;
    justify-self:end;
    padding:30px;
    border-radius:28px;
    border:1px solid rgba(255,255,255,.12);
    background:
        linear-gradient(160deg, rgba(14,14,17,.88), rgba(8,8,10,.74));
    backdrop-filter:blur(20px) saturate(1.1);
    box-shadow:0 30px 90px rgba(0,0,0,.36);
    overflow:hidden;
}
.weekly-program::before {
    content:'';
    position:absolute;
    inset:0 0 auto;
    height:1px;
    background:linear-gradient(90deg, transparent, rgba(240,207,120,.8), transparent);
    animation:programLine 5.8s ease-in-out infinite;
}
@keyframes programLine {
    0%,100% { opacity:.2; transform:translateX(-35%); }
    50% { opacity:.8; transform:translateX(35%); }
}
.weekly-program-head {
    display:grid;
    grid-template-columns:minmax(0,1fr) 84px;
    gap:22px;
    align-items:center;
    margin-bottom:18px;
    padding-bottom:22px;
    border-bottom:1px solid rgba(255,255,255,.09);
}
.weekly-program-eyebrow {
    display:block;
    color:var(--gold-strong);
    font-size:.68rem;
    letter-spacing:.2em;
    text-transform:uppercase;
    margin-bottom:8px;
}
.weekly-program-head h2 {
    font-size:clamp(1.8rem,2.8vw,2.55rem);
    line-height:1.08;
}
.goddess-medallion {
    position:relative;
    width:82px;
    height:82px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:rgba(216,177,84,.04);
    border:1px solid rgba(216,177,84,.24);
    box-shadow:0 0 34px rgba(216,177,84,.08);
}
.goddess-medallion img {
    width:64px;
    height:64px;
    object-fit:contain;
    filter:drop-shadow(0 5px 15px rgba(0,0,0,.4));
    animation:medallionFloat 5s ease-in-out infinite;
}
.goddess-medallion-ring {
    position:absolute;
    inset:-8px;
    border-radius:50%;
    border:1px dashed rgba(216,177,84,.18);
    animation:medallionSpin 22s linear infinite;
}
@keyframes medallionFloat {
    0%,100% { transform:translateY(-2px); }
    50% { transform:translateY(4px); }
}
@keyframes medallionSpin { to { transform:rotate(360deg); } }
.weekly-night {
    position:relative;
    display:grid;
    grid-template-columns:112px minmax(0,1fr);
    gap:18px;
    align-items:center;
    min-height:94px;
    padding:18px 52px 18px 0;
    border-bottom:1px solid rgba(255,255,255,.08);
    transition:padding-left .3s var(--ease), background .3s ease;
}
.weekly-night:last-of-type { border-bottom:0; }
.weekly-night:hover {
    padding-left:12px;
    background:linear-gradient(90deg, rgba(216,177,84,.055), transparent 78%);
}
.weekly-day span {
    display:block;
    color:var(--gold-strong);
    font-size:.76rem;
    font-weight:700;
    letter-spacing:.16em;
    text-transform:uppercase;
}
.weekly-day small {
    display:block;
    margin-top:5px;
    color:var(--text-muted);
    font-size:.72rem;
}
.weekly-night-copy strong {
    display:block;
    color:#fff;
    font-family:var(--font-heading);
    font-size:1.42rem;
    font-weight:500;
    line-height:1.1;
}
.weekly-night-copy span {
    display:block;
    margin-top:7px;
    color:#ccc4b8;
    font-size:.9rem;
}
.weekly-night-mark {
    position:absolute;
    right:2px;
    top:50%;
    transform:translateY(-50%);
    font-family:var(--font-heading);
    font-size:2.8rem;
    color:rgba(216,177,84,.075);
}
.weekly-program-note {
    margin-top:18px;
    padding-top:16px;
    border-top:1px solid rgba(255,255,255,.07);
    font-size:.78rem;
    line-height:1.55;
    color:var(--text-muted);
}
.hero-v4-scroll {
    position:absolute;
    z-index:4;
    left:50%;
    bottom:18px;
    transform:translateX(-50%);
    display:flex;
    align-items:center;
    gap:10px;
    color:rgba(255,255,255,.46);
    font-size:.64rem;
    letter-spacing:.2em;
    text-transform:uppercase;
}
.hero-v4-scroll span {
    width:34px;
    height:1px;
    background:rgba(255,255,255,.34);
}
.night-strip {
    position:relative;
    z-index:3;
    background:#0a0a0c;
    border-bottom:1px solid var(--line);
}
.night-strip-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
}
.night-strip-item {
    position:relative;
    padding:28px 30px 30px;
    border-right:1px solid var(--line);
    overflow:hidden;
}
.night-strip-item:last-child { border-right:0; }
.night-strip-item::after {
    content:'';
    position:absolute;
    left:30px;
    right:30px;
    bottom:0;
    height:1px;
    background:linear-gradient(90deg, var(--gold), transparent);
    opacity:.22;
    transform:scaleX(.3);
    transform-origin:left;
    transition:transform .35s var(--ease), opacity .35s ease;
}
.night-strip-item:hover::after { transform:scaleX(1); opacity:.7; }
.night-strip-item span {
    display:block;
    color:var(--gold-strong);
    font-size:.67rem;
    font-weight:650;
    letter-spacing:.2em;
    text-transform:uppercase;
}
.night-strip-item strong {
    display:block;
    margin-top:8px;
    font-family:var(--font-heading);
    font-size:1.55rem;
    font-weight:500;
}
.night-strip-item p {
    margin-top:10px;
    font-size:.9rem;
    line-height:1.65;
    color:#bdb6aa;
}
.night-strip-item b { color:#e8e1d4; font-weight:600; }
.weekly-feature-card {
    justify-content:flex-start;
    min-height:360px;
}
.weekly-feature-card .feature-icon { margin-bottom:18px; }
.weekly-feature-label {
    margin-bottom:10px;
    color:var(--gold-strong)!important;
    font-size:.69rem!important;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.weekly-feature-card h3 { margin-top:0; }
.weekly-feature-card p:last-child { margin-top:16px; }
.weekly-feature-card p strong { color:#fff; }
.schedule-row-v4 { align-items:center; }
.schedule-row-v4 > div { display:grid; gap:4px; }
.schedule-row-v4 small { color:#aca69d; font-size:.82rem; }
.schedule-row-v4 > span { white-space:nowrap; }

@media (max-width: 1100px) {
    .hero-v4-grid {
        grid-template-columns:minmax(0,1fr) minmax(350px,.82fr);
        gap:36px;
    }
    .hero-v4-title { font-size:clamp(3.6rem, 6.2vw, 5.8rem); }
    .weekly-program { padding:26px; }
    .weekly-night { grid-template-columns:96px minmax(0,1fr); }
}

@media (max-width: 900px) {
    .home-hero-v4 {
        min-height:auto;
        align-items:flex-start;
    }
    .hero-v4-grid {
        grid-template-columns:1fr;
        gap:26px;
        padding-top:118px;
        padding-bottom:72px;
    }
    .hero-v4-copy { max-width:760px; }
    .hero-v4-title {
        font-size:clamp(3.4rem, 12vw, 5.5rem);
    }
    .weekly-program {
        max-width:none;
        justify-self:stretch;
    }
    .hero-photo-v4::after {
        background:
            linear-gradient(180deg, rgba(5,5,7,.72) 0%, rgba(5,5,7,.74) 42%, rgba(5,5,7,.94) 100%),
            linear-gradient(90deg, rgba(5,5,7,.78), rgba(5,5,7,.38));
    }
    .hero-v4-scroll { display:none; }
    .night-strip-grid { grid-template-columns:1fr; }
    .night-strip-item {
        border-right:0;
        border-bottom:1px solid var(--line);
    }
    .night-strip-item:last-child { border-bottom:0; }
}

@media (max-width: 640px) {
    .hero-v4-grid {
        width:min(100% - 28px, var(--container));
        padding-top:104px;
        padding-bottom:52px;
    }
    .hero-v4-kicker {
        font-size:.63rem;
        line-height:1.5;
        letter-spacing:.15em;
    }
    .hero-v4-kicker::before { width:24px; }
    .hero-v4-title {
        margin-top:20px;
        font-size:clamp(3.15rem, 16vw, 4.8rem);
    }
    .hero-v4-title span {
        font-size:.2em;
        letter-spacing:.24em;
    }
    .hero-v4-lead {
        margin-top:20px;
        font-size:1rem;
        line-height:1.72;
    }
    .hero-v4-actions {
        display:grid;
        grid-template-columns:1fr;
        gap:10px;
    }
    .hero-v4-actions .btn { width:100%; }
    .hero-v4-link { justify-content:center; }
    .hero-v4-meta {
        display:grid;
        grid-template-columns:1fr;
    }
    .hero-v4-meta span { justify-content:center; }
    .weekly-program {
        padding:20px 18px;
        border-radius:22px;
    }
    .weekly-program-head {
        grid-template-columns:minmax(0,1fr) 66px;
        gap:16px;
    }
    .goddess-medallion { width:62px; height:62px; }
    .goddess-medallion img { width:48px; height:48px; }
    .weekly-program-head h2 { font-size:1.85rem; }
    .weekly-night {
        grid-template-columns:1fr;
        gap:8px;
        padding:18px 42px 18px 0;
    }
    .weekly-day {
        display:flex;
        align-items:center;
        gap:10px;
    }
    .weekly-day small { margin-top:0; }
    .weekly-night-copy strong { font-size:1.34rem; }
    .night-strip-item { padding:24px 0; }
    .night-strip-item::after { left:0; right:0; }
    .schedule-row-v4 {
        align-items:flex-start;
    }
    .schedule-row-v4 > span { white-space:normal; }
}
