/* Enchanted Play Bistro — Landing */
:root{
  --f9:#0d1b13;--f8:#12251a;--f7:#1a3423;--f6:#264630;
  --olive:#6d6a3b;--gold:#c9a24c;--gold-l:#e6cc88;--gold-d:#8a6a26;
  --copper:#a9592f;--copper-d:#7a3d1e;
  --parch:#f3ead7;--parch-2:#e9dcbd;--stone:#8c826f;--wood:#4e3524;--ink:#221b13;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;
  --rule:2px;--pad:clamp(20px,4vw,48px);
  --ease:cubic-bezier(.2,.7,.2,1);
}
.ench,.ench *{box-sizing:border-box}
html{scroll-behavior:smooth}
body.ench{margin:0;background:var(--f9);color:var(--parch);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
body.ench.locked{overflow:hidden}
.ench img{max-width:100%;display:block;height:auto}
.ench a{color:var(--gold-l);text-decoration:none}
.ench a:hover{color:var(--gold)}
.ench :focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.ench ::selection{background:var(--gold);color:var(--f9)}
.ench h1,.ench h2,.ench h3{font-family:var(--serif);font-weight:600;margin:0;letter-spacing:-.01em;text-wrap:balance}
.ench p{margin:0;text-wrap:pretty}
.ench em{font-style:italic;color:var(--gold)}
.parch em,.parch2 em{color:var(--copper-d)}
.wrap{width:100%;max-width:1320px;margin:0 auto;padding:0 var(--pad)}

/* ——— buttons ——— */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-width:240px;padding:18px 22px;font:600 13px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;border:2px solid var(--gold);border-radius:0;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease)}
.btn svg{flex:none;transition:transform .3s var(--ease)}
.btn:hover svg{transform:translateX(5px)}
.btn:active{transform:translateY(1px)}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,247,220,.55) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s var(--ease);pointer-events:none}
.btn:hover::after{transform:translateX(120%)}
.ench .btn-gold{background:var(--gold);color:var(--f9)}
.ench .btn-gold:hover{background:var(--gold-l);border-color:var(--gold-l);color:var(--f9)}
.ench .btn-gold:active{background:var(--gold-d);border-color:var(--gold-d)}
.ench .btn-line{background:transparent;color:var(--gold-l)}
.ench .btn-line:hover{background:rgba(201,162,76,.14);color:var(--gold-l)}
.ench .btn-ink{background:var(--f8);border-color:var(--f8);color:var(--parch)}
.ench .btn-ink:hover{background:var(--f6);border-color:var(--f6);color:var(--parch)}
.ench .btn-line-ink{background:transparent;border-color:var(--f8);color:var(--f8)}
.ench .btn-line-ink:hover{background:rgba(18,37,26,.08);color:var(--f8)}
.btn-sm{min-width:0;padding:13px 16px;gap:18px;font-size:12px}
.ctas{display:flex;flex-wrap:wrap;gap:12px}
.micro{margin-top:14px;font-size:12.5px;letter-spacing:.04em;color:var(--stone);display:flex;flex-wrap:wrap;gap:6px 14px}
.dark .micro,.hero .micro{color:#b9ad8f}
.micro span{display:inline-flex;align-items:center;gap:8px}
.micro span+span::before{content:"✦";color:var(--gold);font-size:9px}

/* ——— eyebrow / labels ——— */
.eyebrow{display:flex;align-items:center;gap:12px;font:600 12px/1.3 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.eyebrow img{width:16px}
.parch .eyebrow,.parch2 .eyebrow{color:var(--copper-d)}

/* ——— gate intro ——— */
.gate{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;cursor:pointer}
.gate-door{position:absolute;top:0;bottom:0;width:50.2%;background:
  linear-gradient(180deg,transparent 21%,var(--gold-d) 21%,var(--gold-d) calc(21% + 2px),transparent calc(21% + 2px),transparent 79%,var(--gold-d) 79%,var(--gold-d) calc(79% + 2px),transparent calc(79% + 2px)),
  repeating-linear-gradient(90deg,var(--f8) 0 calc(12.5% - 2px),#0a150f calc(12.5% - 2px) 12.5%),var(--f8);
  transition:transform 1.5s cubic-bezier(.75,0,.2,1)}
.gate-l{left:0;border-right:2px solid var(--gold)}
.gate-r{right:0;border-left:2px solid var(--gold)}
.gate.open .gate-l{transform:translateX(-101%)}
.gate.open .gate-r{transform:translateX(101%)}
.gate-seal{position:relative;z-index:2;display:grid;justify-items:center;gap:18px;background:none;border:0;padding:0;color:var(--gold-l);font:600 12px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;cursor:pointer;transition:opacity .5s,transform .7s var(--ease)}
.gate-seal .logo{width:min(280px,60vw)}
.gate-seal .seal{width:min(170px,40vw);animation:sealPulse 2.4s ease-in-out infinite;will-change:transform}
.gate-seal:hover .seal{transform:scale(1.06) rotate(-4deg)}
.gate.open .gate-seal{opacity:0;transform:scale(1.25)}
@keyframes sealPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}

/* ——— nav ——— */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .35s,border-color .35s;border-bottom:2px solid transparent}
.nav.solid{background:rgba(243,234,215,.94);backdrop-filter:blur(10px);border-bottom-color:var(--parch-2);box-shadow:0 10px 30px -18px rgba(60,40,20,.35)}
.nav-in{display:flex;align-items:center;gap:32px;height:78px}
.nav-brand img{height:50px;width:auto}
.nav-links{display:flex;gap:28px;margin-left:auto;font:500 13px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.ench .nav-links a{color:var(--f8)}
.ench .nav-links a:hover{color:var(--copper)}
.nav-ctas{display:flex;gap:10px}

/* ——— pills (parte superior) ——— */
.pill{display:inline-flex;align-items:center;gap:14px;padding:17px 26px;border-radius:999px;border:2px solid transparent;font:600 13px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease),box-shadow .25s}
.pill svg{flex:none;transition:transform .3s var(--ease)}
.pill:hover svg{transform:translateX(4px)}
.pill:active{transform:translateY(1px)}
.ench .pill-green{background:var(--f7);color:var(--parch);box-shadow:0 10px 24px -12px rgba(18,37,26,.7)}
.ench .pill-green:hover{background:var(--f6);color:var(--parch)}
.ench .pill-ghost{border-color:var(--f7);color:var(--f7);background:transparent}
.ench .pill-ghost:hover{background:rgba(26,52,35,.08);color:var(--f7)}
.pill-sm{padding:12px 18px;font-size:11.5px;gap:10px}
.ench .pill-gold{background:var(--gold);color:var(--f9);box-shadow:0 10px 24px -12px rgba(201,162,76,.7)}
.ench .pill-gold:hover{background:var(--gold-l);color:var(--f9)}
.ench .pill-gold:active{background:var(--gold-d)}
.ench .pill-line{border-color:rgba(201,162,76,.6);color:var(--gold-l);background:transparent}
.ench .pill-line:hover{background:rgba(201,162,76,.14);border-color:var(--gold);color:var(--gold-l)}
.pill-line:hover svg:first-child{transform:translateX(-4px)}
body.admin-bar .nav{top:32px}

/* ——— hero ——— */
.hero{position:relative;padding-top:78px;display:flex;flex-direction:column;color:var(--ink);background:
  radial-gradient(45% 55% at 72% 38%,rgba(230,204,136,.35),transparent 70%),
  radial-gradient(40% 40% at 8% 90%,rgba(169,89,47,.07),transparent 70%),
  var(--parch);overflow:hidden}
.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:clamp(16px,3vw,48px);padding-top:clamp(28px,4vw,56px);padding-bottom:clamp(20px,3vw,40px)}
.hero-copy{display:grid;gap:26px;align-content:center;position:relative;z-index:2}
.hero .eyebrow{color:var(--copper-d)}
.hero h1{font-size:clamp(3rem,5.9vw,6.2rem);line-height:.93;font-weight:700;color:var(--f8)}
.hero h1 em{color:var(--copper)}
.hero-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px}
.ench .play{display:inline-flex;align-items:center;gap:14px;font:600 13px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--f8)}
.play-ic{width:50px;height:50px;border-radius:50%;border:2px solid var(--f8);display:grid;place-items:center;transition:background .25s,color .25s,transform .3s var(--ease)}
.play-ic svg{margin-left:3px}
.ench .play:hover{color:var(--f8)}
.play:hover .play-ic{background:var(--f8);color:var(--parch);transform:scale(1.06)}
.hero .micro{color:#6b5f4c}
.hero .micro span+span::before{color:var(--copper)}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.06em}
.hero h1 .ln>span{display:block;transform:translateY(105%);transition:transform 1.1s var(--ease)}
.entered .hero h1 .ln>span{transform:none}
.entered .hero h1 .ln:nth-child(2)>span{transition-delay:.12s}
.entered .hero h1 .ln:nth-child(3)>span{transition-delay:.24s}
.hero .lead{max-width:34em;font-size:clamp(16px,1.3vw,18.5px);color:#4a3f31}
.hero-fade{opacity:0;transform:translateY(18px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.entered .hero-fade{opacity:1;transform:none}
.entered .hero-fade.d1{transition-delay:.45s}.entered .hero-fade.d2{transition-delay:.6s}.entered .hero-fade.d3{transition-delay:.75s}.entered .hero-fade.d4{transition-delay:.95s}.entered .hero-fade.d5{transition-delay:1.1s}
.hero-art{position:relative;margin-right:calc(var(--pad)*-.6)}
.art{position:relative;width:100%;aspect-ratio:1456/1080}
.lyr{position:absolute;transform:translate3d(calc(var(--mx,0)*var(--k,10)*1px),calc(var(--my,0)*var(--k,10)*1px),0);transition:transform .9s var(--ease)}
.glow{inset:12% 6% 6% 10%;border-radius:50%;background:radial-gradient(closest-side,rgba(230,204,136,.55),transparent)}
.photo{inset:0}
.photo img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 26px 30px rgba(78,53,36,.22));opacity:0;transform:scale(.94) rotate(-1.5deg);transition:opacity 1.3s var(--ease) .2s,transform 1.6s var(--ease) .2s}
.entered .photo img{opacity:1;transform:none}
.badge{top:3%;right:7%;width:clamp(104px,11vw,150px);aspect-ratio:1}
.badge-in{width:100%;height:100%;border-radius:50%;background:var(--f7);border:3px solid var(--parch);box-shadow:0 0 0 2px var(--gold),0 16px 30px -12px rgba(13,27,19,.6);display:grid;place-content:center;justify-items:center;gap:8px;text-align:center;animation:float 6s ease-in-out infinite;will-change:transform}
.badge-in span{font:italic 600 clamp(17px,1.6vw,23px)/1 var(--serif);color:var(--gold-l)}
.badge-in i{display:flex;gap:2px}
.badge-in i img{width:clamp(8px,.8vw,11px)}
.sprig{left:-7%;bottom:-6%;width:23%;transform-origin:0 100%}
.sprig img{filter:drop-shadow(0 8px 10px rgba(78,53,36,.2))}
.dots{right:10%;bottom:1%;width:92px;height:56px;background:radial-gradient(circle,var(--copper) 2px,transparent 2.6px) 0 0/14px 14px;opacity:.55}
.st img{animation:twinkle 4s ease-in-out infinite;will-change:transform}
.st1{top:10%;left:3%;width:5%}.st2{top:44%;left:-3%;width:3%}.st2 img{animation-delay:1.3s}.st3{top:0;left:44%;width:4%}.st3 img{animation-delay:2.2s}

/* accesos rápidos */
.quick{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:20px;padding-bottom:clamp(40px,5vw,72px)}
.q-card{background:#fbf6ea;border:2px solid var(--parch-2);border-radius:26px;padding:26px 30px 28px;display:grid;gap:22px;box-shadow:0 20px 40px -30px rgba(78,53,36,.4)}
.q-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.ench .q-head h2{font-size:clamp(26px,2.3vw,34px);line-height:1;color:var(--f8)}
.ench .q-head a{font:600 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--copper-d)}
.ench .q-head a:hover{color:var(--copper)}
.q-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ench .q-items a{display:grid;justify-items:center;gap:6px;text-align:center;color:var(--f8);padding:6px 4px}
.q-ic{width:clamp(72px,7.4vw,96px);aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--parch-2);border:2px solid transparent;margin-bottom:6px;transition:transform .4s var(--ease),border-color .3s,background .3s}
.q-ic img{width:100%;height:100%;object-fit:cover;object-position:50% 6%;transition:transform .5s var(--ease)}
.q-ic.fit img{object-fit:contain;padding:18%}
.q-items a:hover .q-ic{transform:translateY(-4px);border-color:var(--gold);background:var(--gold-l)}
.q-items a:hover .q-ic img{transform:scale(1.08)}
.q-items b{font:600 clamp(17px,1.4vw,20px)/1.1 var(--serif)}
.q-items small{font-size:12.5px;color:#6b5f4c}
.ench .q-book{position:relative;overflow:hidden;border-radius:26px;background:radial-gradient(80% 90% at 90% 100%,rgba(230,204,136,.28),transparent 60%),var(--copper);color:var(--parch);padding:30px 30px 28px;display:grid;align-content:space-between;gap:24px;min-height:220px;box-shadow:0 20px 40px -24px rgba(122,61,30,.7);transition:transform .4s var(--ease)}
.ench .q-book:hover{color:var(--parch);transform:translateY(-3px)}
.q-book-txt{display:grid;gap:8px;position:relative;z-index:1;max-width:62%}
.q-book-txt b{font:700 clamp(28px,2.6vw,38px)/1 var(--serif)}
.q-book-txt small{font:italic 500 18px/1.2 var(--serif);color:#f7e9cf}
.q-book-btn{position:relative;z-index:1;justify-self:start;display:inline-flex;align-items:center;gap:12px;padding:14px 20px;border-radius:999px;background:var(--f8);color:var(--parch);font:600 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;transition:background .25s}
.q-book:hover .q-book-btn{background:var(--f9)}
.q-book-btn svg{transition:transform .3s var(--ease)}
.q-book:hover .q-book-btn svg{transform:translateX(4px)}
.q-book>img{position:absolute;right:-6%;bottom:-8%;width:46%;transform:rotate(-12deg);filter:drop-shadow(0 12px 16px rgba(40,20,10,.45));transition:transform .6s var(--ease)}
.q-book:hover>img{transform:rotate(-4deg) scale(1.05)}
.motes{position:absolute;inset:0;pointer-events:none}
.mote{position:absolute;bottom:-10px;width:3px;height:3px;border-radius:50%;background:var(--gold-l);will-change:transform,opacity;opacity:0;animation:rise linear infinite}
@keyframes rise{0%{transform:translateY(0);opacity:0}15%{opacity:.9}100%{transform:translateY(-520px) translateX(30px);opacity:0}}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}
@keyframes twinkle{0%,100%{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(.72) rotate(12deg);opacity:.6}}
.spark{position:fixed;z-index:60;width:10px;height:10px;pointer-events:none;background:var(--gold);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:spark .9s ease-out forwards}
@keyframes spark{to{transform:translateY(26px) scale(.2) rotate(90deg);opacity:0}}

.ribbon{position:relative;background:var(--f8);color:var(--parch);border-top:2px solid var(--gold);border-bottom:2px solid var(--gold);overflow:hidden;white-space:nowrap}
.ribbon-track{will-change:transform;display:inline-flex;gap:0;animation:marquee 38s linear infinite;padding:16px 0}
.ribbon-track span{font:italic 500 clamp(20px,2vw,28px)/1 var(--serif);padding:0 22px;display:inline-flex;align-items:center;gap:44px}
.ribbon-track span::after{content:"✦";font-style:normal;font-size:.6em;color:var(--gold)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ——— sections ——— */
.sec{position:relative;padding:clamp(80px,11vw,150px) 0;border-top:2px solid var(--gold-d)}
.parch{background:var(--parch);color:var(--ink);border-top-color:var(--wood)}
.parch2{background:var(--parch-2);color:var(--ink);border-top-color:var(--wood)}
.dark{background:var(--f8)}
.darker{background:var(--f9)}
.sec-head{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:0}
.sec-label{padding-right:32px;display:grid;align-content:start;gap:10px}
.sec-label .num{font:italic 500 22px/1 var(--serif);color:var(--gold)}
.parch .sec-label .num,.parch2 .sec-label .num{color:var(--copper)}
.sec-label .eyebrow{color:inherit;opacity:.85}
.sec-main{display:grid;gap:28px}
.ench h2{font-size:clamp(2.4rem,4.8vw,4.6rem);line-height:1}
.body-l{font-size:clamp(17px,1.3vw,19px);max-width:38em}
.dark .body-l,.darker .body-l{color:#e0d4b8}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.sec-cta{margin-top:56px;padding-top:32px;border-top:2px solid var(--gold-d);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr)}
.parch .sec-cta,.parch2 .sec-cta{border-top-color:var(--wood)}
.sec-cta .note{padding-right:32px;font:italic 500 24px/1.2 var(--serif)}

/* reveal */
.rv{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--d,0)*110ms)}
.rv.in{opacity:1;transform:none}
.par{transform:translate3d(0,var(--py,0px),0);will-change:transform}

/* I — empatía */
.procession{position:relative;height:clamp(200px,28vw,360px);margin-top:clamp(40px,6vw,80px);border-bottom:2px solid var(--wood);overflow:hidden}
.rider{position:absolute;bottom:-2px;left:0;height:100%;will-change:transform}
.rider img{height:100%;width:auto;max-width:none;animation:gait .7s ease-in-out infinite alternate}
.rider.b img{animation-delay:.35s}
@keyframes gait{from{transform:translateY(0)}to{transform:translateY(-5px)}}
.pull{margin-top:48px;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr)}
.pull p{font:italic 500 clamp(26px,3vw,40px)/1.15 var(--serif);max-width:24em}

/* II — quiebre */
.dragons{margin:clamp(40px,6vw,72px) 0 0;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr)}
.dragons img{width:100%}
.cmp{margin-top:clamp(40px,6vw,72px);display:grid;grid-template-columns:minmax(0,1.7fr) repeat(3,minmax(0,1fr));border-top:2px solid var(--gold-d)}
.cmp>div{padding:20px 18px;border-bottom:2px solid var(--gold-d);display:flex;align-items:center}
.cmp .h{font:600 12px/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#bfb394;align-items:flex-end}
.cmp .lbl{font:500 clamp(20px,1.8vw,26px)/1.2 var(--serif);color:var(--parch)}
.cmp .ic{justify-content:flex-start}
.cmp .ic svg{transform:scale(0);transition:transform .5s cubic-bezier(.3,1.6,.5,1);transition-delay:calc(var(--d,0)*70ms + .2s)}
.cmp.in .ic svg{transform:scale(1)}
.cmp .no{color:#7d7560}
.cmp .yes{color:var(--gold)}
.cmp .me{background:rgba(201,162,76,.1);border-left:2px solid var(--gold);border-right:2px solid var(--gold)}
.cmp .me.h{color:var(--gold);border-top:2px solid var(--gold);margin-top:-2px}
.cmp .me.last{border-bottom-color:var(--gold)}
.cmp .h.me img{height:34px;width:auto;margin-top:-6px}

/* III — solución */
.sol{margin-top:clamp(48px,6vw,80px);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:0;align-items:center}
.sol-crest{padding-right:40px}
.sol-crest img{animation:float 8s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.sol-text{display:grid;gap:36px}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--wood)}
.stat{padding:22px 20px 0 0;display:grid;gap:10px}
.stat+.stat{border-left:2px solid var(--wood);padding-left:20px}
.stat b{font:600 clamp(64px,7vw,104px)/.8 var(--serif);font-variant-numeric:lining-nums;color:var(--f7)}
.stat span{font-size:14.5px;line-height:1.45;color:#4a3f31}
.court{margin-top:clamp(56px,7vw,96px);border-top:2px solid var(--wood);border-bottom:2px solid var(--wood);padding:32px 0 0;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:end}
.court figcaption{padding:0 32px 32px 0;font:italic 500 26px/1.2 var(--serif);color:var(--wood)}
.court img{width:100%}

/* IV — salones */
.halls{margin-top:clamp(48px,6vw,80px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--gold-d);border-bottom:2px solid var(--gold-d)}
.hall{padding:36px 28px 36px 0;display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-content:start}
.hall+.hall{border-left:2px solid var(--gold-d);padding-left:28px}
.arch{position:relative;aspect-ratio:1099/1431;width:100%;max-width:340px}
.hall:first-child .arch{max-width:min(340px,calc(100% - 28px))}
.arch .arch-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.arch .arch-fig{position:absolute;left:50%;bottom:9%;height:72%;width:auto;max-width:none;transform:translateX(-50%);transition:transform .7s var(--ease),filter .7s;filter:drop-shadow(0 12px 14px rgba(60,40,20,.28))}
.hall:hover .arch .arch-fig{transform:translateX(-50%) translateY(-10px) scale(1.03);filter:drop-shadow(0 20px 18px rgba(60,40,20,.34))}
.tag{display:inline-flex;align-self:start;justify-self:start;padding:7px 10px;border:2px solid var(--gold-d);font:600 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-l)}
.hall h3{font-size:clamp(30px,2.8vw,40px);line-height:1}
.hall p{color:#d9cdb0;font-size:16px}
.hall-body{display:grid;gap:14px}

/* V — transformación */
.swap{margin-top:clamp(48px,6vw,80px);position:relative;z-index:1}
.swap-row{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);border-top:2px solid var(--wood)}
.swap-row:last-child{border-bottom:2px solid var(--wood)}
.swap-row .was{padding:26px 32px 26px 0;font-size:16px;color:#766b5a;text-decoration:line-through;text-decoration-color:rgba(122,61,30,.55);text-decoration-thickness:2px}
.swap-row .now{padding:22px 0;display:flex;align-items:center;gap:18px;font:500 clamp(24px,2.4vw,34px)/1.15 var(--serif);color:var(--ink)}
.swap-row .now img{width:20px;flex:none}
.swap-head{font:600 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--copper-d)}
.swap-head>div{padding:0 0 14px}
.ench .spell-key{margin-top:clamp(40px,5vw,64px);display:flex;align-items:center;gap:14px;font:600 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--copper-d)}
.spell-key span:first-child{color:#8a7d68}
.spell-key img{width:14px}
.spells{margin-top:22px;position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.spell{position:relative;overflow:hidden;isolation:isolate;padding:30px 34px 34px;border-radius:26px;background:#fbf6ea;border:1.5px solid rgba(169,89,47,.2);box-shadow:0 24px 44px -32px rgba(78,53,36,.5);display:grid;gap:16px;align-content:start;transition:opacity .9s var(--ease),transform .6s var(--ease),border-color .4s,box-shadow .5s}
.spell::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(70% 90% at 100% 0%,rgba(230,204,136,.5),transparent 62%),radial-gradient(50% 60% at 0% 100%,rgba(169,89,47,.08),transparent 70%);opacity:.55;transition:opacity .5s}
.spell::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 35%,rgba(255,247,220,.9) 50%,transparent 65%);transform:translateX(-110%);transition:transform 1.1s var(--ease)}
.spell:hover{transform:translateY(-6px);border-color:var(--gold);box-shadow:0 30px 50px -28px rgba(138,106,38,.55)}
.spell:hover::before{opacity:1}
.spell:hover::after{transform:translateX(110%)}
.spell .was{font-size:15px;line-height:1.45;color:#8a7d68;text-decoration:line-through;text-decoration-color:rgba(122,61,30,.45);text-decoration-thickness:1.5px;transition:opacity .5s}
.spell:hover .was{opacity:.55}
.spell-div{display:flex;align-items:center;gap:12px}
.spell-div::after{content:"";flex:1;max-width:140px;height:1.5px;background:linear-gradient(90deg,var(--gold),transparent)}
.spell-div img{width:22px;transition:transform .7s var(--ease)}
.spell:hover .spell-div img{transform:rotate(180deg) scale(1.25)}
.spell .now{font:500 clamp(26px,2.4vw,34px)/1.12 var(--serif);color:var(--f8);text-wrap:balance}
.sec-cta.soft{border-top:0;padding-top:0}
.rose-corner{position:absolute;right:0;bottom:0;width:clamp(140px,17vw,250px);pointer-events:none;transform:scaleX(-1)}
.rose-corner img{width:100%}

/* VI — carta */
.menu{overflow:hidden}
.menu-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:0;align-items:center}
.menu-copy{display:grid;gap:28px;padding-right:48px}
.menu-art{position:relative;display:grid;justify-items:center}
.menu-art .crown{width:26%;margin-bottom:-4%;position:relative;z-index:1}
.scroll-banner{position:relative;display:block;width:100%;aspect-ratio:1536/560;transition:transform .5s var(--ease)}
.scroll-banner img{position:absolute;left:0;top:50%;width:100%;transform:translateY(-50%)}
.scroll-banner .in-txt{position:absolute;left:22%;right:22%;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;color:var(--f8);font:600 clamp(22px,3vw,44px)/1 var(--serif)}
.scroll-banner .in-txt>span{display:grid;justify-items:center}
.scroll-banner .in-txt small{display:block;font:600 clamp(9px,.8vw,11px)/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--copper-d);margin-bottom:8px}
.scroll-banner .in-txt svg{flex:none;transition:transform .3s var(--ease)}
.scroll-banner:hover{transform:scale(1.025)}
.scroll-banner:hover .in-txt svg{transform:translateX(6px)}
.menu-art .roses{width:72%;margin-top:-4%}

/* VII — testimonios */
.voices{overflow:hidden;background:radial-gradient(50% 50% at 85% 20%,rgba(230,204,136,.35),transparent 70%),var(--parch)}
.quotes{margin-top:clamp(48px,6vw,80px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}
.q{position:relative;overflow:hidden;margin:0;padding:34px 30px 28px;border-radius:26px;background:#fbf6ea;border:1.5px solid rgba(169,89,47,.18);box-shadow:0 24px 44px -32px rgba(78,53,36,.5);display:grid;gap:20px;transition:opacity .9s var(--ease),transform .6s var(--ease),border-color .4s,box-shadow .5s}
.q:nth-child(3n+2){margin-top:32px}
.q:hover{transform:translateY(-6px);border-color:var(--gold);box-shadow:0 30px 50px -28px rgba(138,106,38,.55)}
.q-mark{position:absolute;top:-34px;right:18px;font:italic 700 170px/1 var(--serif);color:var(--gold);opacity:.28;pointer-events:none}
.stars{display:flex;gap:4px}
.stars img{width:16px}
.q blockquote{margin:0;font:italic 500 clamp(21px,1.8vw,26px)/1.28 var(--serif);color:var(--ink);text-wrap:pretty}
.q-who{display:flex;align-items:center;gap:14px;padding-top:18px;border-top:1.5px solid rgba(169,89,47,.15)}
.q-av{flex:none;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--f7);border:2px solid var(--gold);color:var(--gold-l);font:italic 600 22px/1 var(--serif)}
.q-who>span:last-child{display:grid;gap:3px}
.q-who b{font:600 12px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.q-who small{font-size:13px;color:#6b5f4c}
.q.new{animation:qIn .9s var(--ease)}
@keyframes qIn{from{opacity:0;transform:translateY(20px) scale(.97)}}

.voz{position:relative;isolation:isolate;overflow:hidden;margin-top:clamp(48px,6vw,80px);padding:clamp(28px,4vw,56px);border-radius:30px;background:radial-gradient(60% 80% at 0% 0%,rgba(201,162,76,.18),transparent 60%),var(--f8);color:var(--parch);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,56px);box-shadow:0 30px 60px -34px rgba(13,27,19,.8)}
.voz::before{content:"";position:absolute;inset:10px;border:1.5px solid rgba(201,162,76,.4);border-radius:22px;pointer-events:none;z-index:-1}
.voz-rose{position:absolute;right:0;bottom:0;width:clamp(130px,13vw,200px);transform:scaleX(-1);transform-origin:50% 50%;border-bottom-right-radius:30px;pointer-events:none;z-index:0}
.voz-side{display:grid;gap:18px;align-content:center}
.parch .voz em,.parch .voz .eyebrow{color:var(--gold)}
.voz-seal{width:clamp(90px,9vw,120px);animation:float 7s ease-in-out infinite}
.voz-side h3{font-size:clamp(30px,3vw,44px);line-height:1.02}
.voz-side p:last-child{color:#d9cdb0;max-width:26em}
.voz-form{position:relative;z-index:1;display:grid;gap:16px;align-content:start}
.voz-stars{border:0;margin:0;padding:0;display:grid;gap:10px}
.voz-stars legend,.fld>span{padding:0;margin-bottom:8px;font:600 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.voz-stars-in{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:6px}
.voz-stars input{position:absolute;opacity:0;width:1px;height:1px}
.voz-stars label{cursor:pointer;padding:6px;border-radius:50%;transition:transform .25s var(--ease)}
.voz-stars label img{width:30px;filter:grayscale(1) brightness(.9);opacity:.35;transition:filter .25s,opacity .25s}
.voz-stars input:checked~label img,.voz-stars label:hover img,.voz-stars label:hover~label img{filter:none;opacity:1}
.voz-stars-in:hover input:checked~label img{filter:grayscale(1) brightness(.9);opacity:.35}
.voz-stars-in:hover label:hover img,.voz-stars-in:hover label:hover~label img{filter:none;opacity:1}
.voz-stars label:hover{transform:scale(1.15) rotate(8deg)}
.voz-stars input:focus-visible+label{outline:2px solid var(--gold);outline-offset:2px}
.voz-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fld{display:grid}
.fld input,.fld textarea{width:100%;font:400 16px/1.4 var(--sans);color:var(--parch);background:#1b3124;border:1.5px solid rgba(201,162,76,.35);border-radius:14px;padding:14px 16px;transition:border-color .25s,background .25s;resize:vertical}
.fld input::placeholder,.fld textarea::placeholder{color:rgba(233,220,189,.45)}
.fld input:focus,.fld textarea:focus{outline:0;border-color:var(--gold);background:#213a2b}
.fld.err input,.fld.err textarea{border-color:#e08a5c}
.hp{position:absolute;left:-9999px;opacity:0}
.voz-foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.voz-foot .pill{cursor:pointer}
.voz-foot .pill[disabled]{opacity:.6;cursor:wait}
.voz-msg{font:italic 500 18px/1.3 var(--serif);color:var(--gold-l)}
.voz-msg.bad{color:#f0a57c}

/* vistazo en video */
.peek{margin-top:clamp(48px,6vw,80px);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,72px);align-items:center}
.peek-win{position:relative;aspect-ratio:4/5;max-height:640px;width:100%;border-radius:999px 999px 28px 28px;overflow:hidden;border:3px solid var(--gold);box-shadow:0 0 0 8px var(--f8),0 0 0 10px rgba(201,162,76,.45),0 40px 60px -30px rgba(0,0,0,.7);background:var(--f9)}
.peek-win video{width:100%;height:100%;object-fit:cover;display:block}
.peek-sound{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:10px;padding:11px 16px;white-space:nowrap;border-radius:999px;border:1.5px solid rgba(230,204,136,.6);background:rgba(13,27,19,.72);backdrop-filter:blur(6px);color:var(--parch);font:600 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .25s}
.peek-sound:hover{background:rgba(13,27,19,.92)}
.peek-sound .on{display:none}
.peek-sound[aria-pressed="true"] .on{display:inline}
.peek-sound[aria-pressed="true"] .off{display:none}
.peek-txt{display:grid;gap:22px;align-content:center}
.peek-txt h3{font-size:clamp(34px,4vw,60px);line-height:1}
.peek-drag{width:min(260px,60%);margin-top:10px;animation:float 8s ease-in-out infinite}

/* VIII — promesa */
.promise{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:center}
.promise-seal{padding-right:40px}
.promise-seal img{width:min(300px,100%);transition:transform 1s var(--ease)}
.promise-seal img:hover{transform:rotate(-8deg) scale(1.04)}

/* IX — FAQ */
.faq{display:grid}
.faq details{border-top:2px solid var(--wood)}
.faq details:last-child{border-bottom:2px solid var(--wood)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;font:600 clamp(22px,2vw,28px)/1.2 var(--serif);color:var(--ink);transition:color .2s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--copper-d)}
.faq summary svg{flex:none;transition:transform .35s var(--ease);color:var(--copper)}
.faq details[open] summary svg{transform:rotate(45deg)}
.faq details p{padding:0 0 26px;max-width:40em;color:#3d3326}

/* X — cierre */
.finale{overflow:hidden;background:radial-gradient(50% 70% at 25% 60%,rgba(201,162,76,.14),transparent 70%),var(--f8)}
.finale-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);align-items:center}
.finale-art{position:relative;padding-right:40px}
.finale-art img{width:100%}
.finale-copy{display:grid;gap:28px;padding-left:40px;border-left:2px solid var(--gold-d);padding-top:24px;padding-bottom:24px}
.finale h2{font-size:clamp(2.8rem,5.6vw,5.6rem);line-height:.96}

/* footer */
.foot{background:var(--f9);border-top:2px solid var(--gold);padding:72px 0 0}
.foot-grid{display:grid;grid-template-columns:minmax(0,4fr) repeat(4,minmax(0,2fr));gap:0}
.foot-grid>div{padding:0 24px 40px 0}
.foot-grid>div+div{border-left:2px solid var(--f6);padding-left:24px}
.foot-brand img{width:220px}
.foot h4{margin:0 0 12px;font:600 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.foot p{font-size:15px;color:#d9cdb0;white-space:pre-line}
.foot-bottom{margin-top:24px;border-top:2px solid var(--f6);padding:20px 0 28px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:12.5px;color:#8f8670;letter-spacing:.04em}
.powered{font-size:12px;color:#8f8670;letter-spacing:.04em}
.ench .powered a{font:italic 600 15px/1 var(--serif);letter-spacing:.02em;color:var(--gold);background:linear-gradient(90deg,var(--gold-d),var(--gold-l),var(--gold));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;transition:filter .3s}
.ench .powered a:hover{filter:brightness(1.25)}

/* mobile sticky bar */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:40;display:none;grid-template-columns:1fr 1fr;gap:0;border-top:2px solid var(--gold);background:var(--f9);transform:translateY(110%);transition:transform .4s var(--ease)}
.dock.show{transform:none}
.dock a{padding:16px 16px calc(16px + env(safe-area-inset-bottom));font:600 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}
.ench .dock a:first-child{color:var(--gold-l);border-right:2px solid var(--gold-d)}
.ench .dock a:last-child{background:var(--gold);color:var(--f9)}

/* ——— responsive ——— */
@media (max-width:1080px){
  .nav-links{display:none}
  .nav-ctas{margin-left:auto}
  .foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-grid>div:nth-child(even){border-left:0;padding-left:0}
  .foot-brand{grid-column:1/-1}
}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:8px}
  .hero-art{margin:0 -8px}
  .quick{grid-template-columns:1fr}
  .sec-head,.pull,.dragons,.sol,.court,.sec-cta,.promise,.menu-grid,.finale-grid,.swap-row{grid-template-columns:1fr}
  .sec-label{padding:0 0 22px}
  .dragons>span,.pull>span,.sec-cta>span{display:none}
  .cols2{grid-template-columns:1fr;gap:18px}
  .sol-crest{padding:0 0 32px;max-width:420px}
  .court figcaption{padding:0 0 20px}
  .halls{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(78%,1fr);overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
  .hall{scroll-snap-align:start;padding-right:22px}
  .hall+.hall{padding-left:22px}
  .spells{grid-template-columns:1fr;gap:14px}
  .spell{padding:24px 22px 26px;border-radius:22px}
  .menu-copy{padding:0 0 40px}
  .quotes{grid-template-columns:1fr;gap:16px}
  .q:nth-child(3n+2){margin-top:0}
  .voz,.peek{grid-template-columns:1fr}
  .ench .voz-rose{display:none}
  .peek-win{max-width:420px}
  .ench .peek-drag{display:none}
  .promise-seal{padding:0 0 28px}
  .promise-seal img{width:190px}
  .finale-art{padding:0 0 32px}
  .finale-copy{border-left:0;padding-left:0;border-top:2px solid var(--gold-d);padding-top:32px}
  .sec-cta .note{padding:0 0 18px}
  .dock{display:grid}
  .foot{padding-bottom:64px}
}
@media (max-width:640px){
  body.ench{font-size:16px}
  .nav-in{height:66px;gap:12px}
  .nav-brand img{height:40px}
  .nav-ctas .pill-ghost{display:none}
  .hero{padding-top:66px}
  .q-card{padding:22px 16px;border-radius:22px}
  .q-head{padding:0 6px}
  .q-items{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 8px}
  .q-book-txt{max-width:70%}
  .badge{right:2%}
  .btn{min-width:0;width:100%}
  .nav .btn{width:auto}
  .cmp{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cmp .lbl{grid-column:1/-1;border-bottom:0;padding:18px 0 4px}
  .cmp .corner{display:none}
  .cmp>div{padding:12px 10px}
  .cmp .h{font-size:10.5px;letter-spacing:.1em}
  .cmp .me.lbl-pre{display:none}
  .stats{grid-template-columns:1fr}
  .stat,.stat+.stat{border-left:0;padding:18px 0;border-bottom:2px solid var(--wood);grid-template-columns:90px 1fr;align-items:center}
  .stat b{font-size:64px}
  .foot-grid{grid-template-columns:1fr}
  .foot-grid>div,.foot-grid>div+div{border-left:0;padding-left:0}
  .scroll-banner .in-txt{left:19%;right:19%}
  .voz-row{grid-template-columns:1fr}
  .voz-foot .pill{width:100%;justify-content:space-between}
  .q{padding:28px 22px 22px}
  .scroll-banner .in-txt svg{width:16px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv,.hero-fade,.photo img,.hero h1 .ln>span{opacity:1!important;transform:none!important}
}
