
:root{
  --ink:#09060A; --wine:#16080F; --wine2:#25101A; --burg:#7E1B2A; --rose:#7E1B2A; --amber:#FFC77A;
  --cream:#F4EEE3; --mute:#BDADB3; --line:rgba(255,255,255,.13);
  --serif:'Fraunces',Georgia,'Times New Roman',serif; --sans:'Figtree',system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--ink);color:var(--cream);font-family:var(--sans);line-height:1.6;font-size:1rem;-webkit-font-smoothing:antialiased}
a{color:inherit}
img,svg{display:block;max-width:100%}
.wrap{width:min(1180px,calc(100% - 44px));margin-inline:auto}
:focus-visible{outline:3px solid var(--amber);outline-offset:3px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:13px 26px;border-radius:999px;border:2px solid var(--rose);background:var(--rose);color:var(--cream);font:700 1rem/1 var(--sans);text-decoration:none;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 34px rgba(158,38,56,.45);background:#982238}
.btn.ghost{background:rgba(9,6,10,.6);color:var(--cream);border-color:transparent}
.btn.ghost:hover{background:var(--cream);color:var(--ink);box-shadow:none;border-color:transparent}
.btn.small{min-height:42px;padding:10px 20px;font-size:.92rem}

/* header */
header.top{position:fixed;inset:0 0 auto;z-index:50;transition:background .3s,backdrop-filter .3s,border-color .3s;border-bottom:1px solid transparent}
header.top.solid{background:rgba(9,6,10,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--line)}
.nav{height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font:900 1.15rem/1 var(--serif)}
.brand img{height:58px;width:auto}
.brand-mark{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--burg);font:900 1.2rem/1 var(--serif);box-shadow:0 0 0 1px rgba(255,255,255,.25) inset}
.brand small{display:block;font:500 .72rem/1.2 var(--sans);color:var(--mute);margin-top:3px}
.nav nav{display:flex;align-items:center;gap:28px;font-size:.95rem}
.nav nav a:not(.btn){text-decoration:none;color:#E6D8DC}
.nav nav a:not(.btn):hover{color:var(--amber)}

/* hero */
.hero{position:relative;padding:0;min-height:100vh;min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--ink);overflow:hidden;isolation:isolate}
.hero:before{content:'';position:absolute;inset:0;z-index:-2;background:url(hero-bg.jpg) center 38%/cover}
.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:rgba(9,6,10,.58)}
.hero-copy{position:relative;z-index:2;display:flex;align-items:center;padding:120px 40px 70px max(22px,calc((100vw - 1180px)/2))}
.copy-in{max-width:640px}
.hero h1{font:900 clamp(2.6rem,5.8vw,5.6rem)/.96 var(--serif);letter-spacing:-.04em;margin:0 0 24px;text-wrap:balance}
.hero-media{position:relative;align-self:center;justify-self:center;margin:76px 0 28px;width:min(86%,calc(72svh*9/16));aspect-ratio:9/16;background:#0B0509;overflow:hidden;border-radius:20px;border:0;box-shadow:0 30px 80px rgba(0,0,0,.65)}
.kb{position:absolute;inset:0;background:url(poster.jpg) center 30%/cover;animation:kb 16s ease-in-out infinite alternate;transition:filter .5s}
@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.12) translate(-1.5%,-1%)}}
.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;background:transparent;z-index:1;opacity:0;transition:opacity .4s}
.hero-media.playing video{opacity:1;object-fit:contain;object-position:center;z-index:2}
.hero-media.playing .kb{animation:none;transform:scale(1.25);filter:blur(42px) saturate(1.3) brightness(.45)}
.play{position:absolute;inset:0;z-index:4;width:100%;height:100%;border:0;background:rgba(9,6,10,.25);color:var(--cream);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;font:700 1.05rem/1.2 var(--sans);transition:opacity .3s}
.play .tri{width:92px;height:92px;border-radius:50%;background:var(--rose);display:grid;place-items:center;animation:pulse 2.2s ease-out infinite}
.play .tri svg{width:32px;height:32px;margin-left:6px;fill:var(--cream)}
.play:hover .tri{background:#982238}
.hero-media.playing .play{opacity:0;pointer-events:none}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(158,38,56,.55)}70%,100%{box-shadow:0 0 0 28px rgba(158,38,56,0)}}
.hero .lead{font-size:clamp(1.05rem,1.6vw,1.25rem);color:#E8DBDF;max-width:46ch;margin:0 0 34px}
.hero-row{display:flex;flex-wrap:wrap;gap:22px 36px;align-items:flex-end}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px}
.proof{margin:30px 0 0;font-size:.92rem;color:var(--mute);display:flex;flex-wrap:wrap;gap:6px 18px}
.proof b{color:var(--cream);font-weight:700}

/* marquee */
.marq{border-block:1px solid var(--line);background:var(--wine);overflow:hidden;padding:18px 0}
.marq-track{display:flex;width:max-content;animation:marq 38s linear infinite}
.marq:hover .marq-track{animation-play-state:paused}
.marq span{font:700 1.25rem/1 var(--serif);padding:0 30px;display:inline-flex;align-items:center;gap:60px;color:#E9D9DE;white-space:nowrap}
.marq span:after{content:'';width:9px;height:9px;border-radius:50%;background:var(--rose);flex:none}
@keyframes marq{to{transform:translateX(-50%)}}

/* secciones */
section{padding:clamp(72px,10vw,132px) 0}
.kicker{font-size:.95rem;font-weight:700;color:var(--amber);margin:0 0 14px}
h2{font:900 clamp(2.2rem,5vw,4.1rem)/1.02 var(--serif);letter-spacing:-.03em;margin:0 0 18px;text-wrap:balance}
.sec-lead{color:var(--mute);max-width:52ch;margin:0}

/* packs */
.packs{background:var(--ink)}
.packs-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px 50px;align-items:end;margin-bottom:38px}
.tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}
.tab{position:relative;text-align:left;padding:16px 18px 15px;border-radius:20px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--cream);font:inherit;cursor:pointer;transition:background .25s,border-color .25s,transform .25s}
.tab:hover{border-color:rgba(255,255,255,.35);transform:translateY(-2px)}
.tab b{display:block;font:900 1.35rem/1.1 var(--serif)}
.tab span{display:block;font-size:.9rem;color:var(--mute);margin-top:4px}
.tab .lvl{display:flex;gap:4px;margin-top:11px}
.tab .lvl em{width:100%;max-width:26px;height:5px;border-radius:3px;background:rgba(255,255,255,.18)}
.tab .lvl em.f{background:var(--rose)}
.tab[aria-selected="true"]{background:linear-gradient(160deg,#4A1426,#2A0E19);border-color:var(--rose);box-shadow:0 18px 50px rgba(142,38,57,.35)}
.tab[aria-selected="true"] span{color:#F0DADF}
.tab .pill{position:absolute;top:-11px;right:14px;background:var(--amber);color:#2A1500;font:700 .75rem/1 var(--sans);padding:6px 10px;border-radius:999px}
.pack{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(24px,5vw,70px);padding:clamp(26px,4vw,52px);border-radius:32px;border:1px solid rgba(158,38,56,.35);background:radial-gradient(90% 120% at 0% 0%,#3A1322,#1B0A12 60%);position:relative;overflow:hidden}
.js .pack[hidden]{display:none}
.pack:before{content:'';position:absolute;right:-120px;top:-120px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(255,199,122,.22),transparent 65%);pointer-events:none}
.pack-for{color:var(--amber);font-weight:700;margin:0 0 6px}
.pack h3{font:900 clamp(2.6rem,6vw,4.6rem)/1 var(--serif);letter-spacing:-.035em;margin:0 0 10px}
.pack-meta{color:#DCCBD0;margin:0 0 26px}
.big{display:flex;align-items:baseline;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.big strong{font:900 clamp(3.4rem,8vw,6.2rem)/.9 var(--serif);letter-spacing:-.05em;color:var(--amber)}
.big span{color:#DCCBD0;max-width:16ch;line-height:1.25}
.inc{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.inc li{padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);font-size:.92rem}
.inc li.new{background:rgba(158,38,56,.2);border-color:rgba(158,38,56,.5);font-weight:700}
.included{margin-top:22px;padding:20px 24px;border-radius:22px;border:1px solid var(--line);background:rgba(255,255,255,.03);display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.included b{margin-right:8px}
.included span{padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.07);font-size:.9rem}

/* a medida */
.custom{background:radial-gradient(70% 90% at 0% 100%,rgba(142,38,57,.32),transparent 60%),var(--wine)}
.custom-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(28px,6vw,80px);align-items:center}
.themes{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 28px;padding:0;list-style:none}
.themes li{padding:12px 20px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.04);font:700 1.15rem/1 var(--serif);transition:transform .25s,background .25s,color .25s,border-color .25s}
.themes li:hover{transform:translateY(-3px) rotate(-1.5deg);background:var(--rose);color:var(--cream);border-color:var(--rose)}
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0;padding:0;list-style:none;counter-reset:s}
.three li{counter-increment:s;padding:18px;border-radius:20px;background:rgba(255,255,255,.045);font-size:.95rem}
.three li:before{content:counter(s);display:block;font:900 1.6rem/1 var(--serif);color:var(--amber);margin-bottom:8px}

/* opiniones */
.reviews-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:44px}
.rev{margin:0;padding:clamp(24px,3vw,38px);border-radius:28px;border:1px solid var(--line);background:linear-gradient(150deg,#1F0D16,#120A10)}
.rev blockquote{margin:0 0 22px;font:700 clamp(1.5rem,2.6vw,2.2rem)/1.18 var(--serif);letter-spacing:-.02em}
.rev figcaption{color:var(--mute);font-size:.95rem}
.rev figcaption b{color:var(--cream)}

/* faq */
.faq{background:var(--wine)}
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,6vw,80px)}
details{border-bottom:1px solid var(--line);padding:4px 0}
summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;font:700 1.2rem/1.3 var(--serif);position:relative}
summary::-webkit-details-marker{display:none}
summary:after{content:'+';position:absolute;right:4px;top:50%;transform:translateY(-50%);font:400 1.8rem/1 var(--sans);color:var(--amber);transition:transform .25s}
details[open] summary:after{transform:translateY(-50%) rotate(45deg)}
details p{margin:0 0 22px;color:#D9C9CE;max-width:60ch}

/* contacto */
.contact{background:radial-gradient(80% 70% at 100% 0%,rgba(142,38,57,.35),transparent 60%),var(--ink)}
.contact-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,6vw,80px);align-items:start}
.direct{display:grid;gap:12px;margin-top:30px;font-size:.98rem}
.direct a{color:var(--cream);text-decoration-color:var(--amber);text-underline-offset:4px}
form{padding:clamp(22px,3vw,38px);border-radius:30px;border:1px solid var(--line);background:linear-gradient(150deg,rgba(255,255,255,.06),rgba(255,255,255,.02))}
.stepbar{display:flex;gap:8px;margin:0 0 22px}
.stepbar i{height:5px;flex:1;border-radius:3px;background:rgba(255,255,255,.15);transition:background .3s}
.stepbar i.on{background:var(--rose)}
fieldset{border:0;margin:0;padding:0;display:grid;gap:16px}
fieldset[hidden]{display:none}
legend{font:900 1.5rem/1.1 var(--serif);margin-bottom:16px;padding:0}
.field{display:grid;gap:7px}
.field label{font-size:.92rem;font-weight:700}
.field input,.field select,.field textarea{font:inherit;color:var(--cream);background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.2);border-radius:14px;padding:13px 15px;min-height:48px;color-scheme:dark;width:100%}
.field textarea{min-height:108px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:#9A8A90}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--amber);outline:none;box-shadow:0 0 0 3px rgba(255,199,122,.25)}
.field select option{background:#1b0a12}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;color:var(--mute)}
.check input{margin-top:4px;width:18px;height:18px;accent-color:var(--rose)}
.check a{color:var(--cream)}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.msg{margin:14px 0 0;font-size:.92rem;color:var(--amber);min-height:1.4em}

footer{border-top:1px solid var(--line);padding:34px 0 110px;color:var(--mute);font-size:.9rem;background:#070508}
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px 30px;align-items:center}
.foot nav{display:flex;flex-wrap:wrap;gap:8px 22px}
.foot a{text-decoration:none}
.foot a:hover{color:var(--cream)}

/* barra fija móvil */
.dock{position:fixed;inset:auto 12px 12px;z-index:60;display:none;gap:10px;padding:10px;border-radius:999px;background:rgba(20,8,14,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);transform:translateY(140%);transition:transform .4s}
.dock.show{transform:none}
.dock .btn{flex:1;min-height:46px;padding-inline:14px;font-size:.95rem}

@media(max-width:980px){
  .custom-grid,.faq-grid,.contact-grid,.pack{grid-template-columns:1fr}
  .tabs{grid-template-columns:repeat(2,1fr)}
  .tab:last-child{grid-column:1/-1}
  .reviews-grid{grid-template-columns:1fr}
}
@media(max-width:900px){
  .hero{grid-template-columns:1.1fr .9fr}
  .hero-copy{padding:104px 18px 40px 22px}
  .hero h1{font-size:clamp(1.9rem,6.4vw,3rem);margin-bottom:14px}
  .hero .lead{font-size:.98rem;margin-bottom:20px}
  .proof{display:none}
  .play .tri{width:72px;height:72px}.play .tri svg{width:26px;height:26px}
}
@media(max-width:560px){
  .hero{grid-template-columns:1.12fr .88fr}
  .hero-copy{padding:96px 4px 96px 18px}
  .hero h1{font-size:clamp(1.5rem,6.7vw,1.85rem);line-height:1;letter-spacing:-.03em;margin-bottom:12px}
  .hero .lead{font-size:.86rem;line-height:1.45;margin-bottom:16px}
  .hero-media{width:94%;margin-right:8px;justify-self:end}
  .hero-cta{flex-direction:column;align-items:flex-start;gap:8px}
  .hero-cta .btn{padding:11px 16px;font-size:.85rem}
  .hero-cta .ghost{display:none}
  .hero-media.playing{position:fixed;inset:0;z-index:100;width:100vw;height:100vh;height:100dvh;align-self:auto;margin:0;aspect-ratio:auto;border-radius:0;border:0;justify-self:auto;background:#000}
  .hero-media.playing .vclose{display:inline-flex}
  body.vplaying{overflow:hidden}
  body.vplaying header.top,body.vplaying .dock{display:none!important}
  .play{gap:10px;font-size:0}
  .play .tri{width:56px;height:56px}.play .tri svg{width:20px;height:20px;margin-left:4px}
}
@media(max-width:700px){
  .nav nav a:not(.btn){display:none}
        .three,.row2{grid-template-columns:1fr}
  .dock{display:flex}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .marq-track{animation:none}
  .kb{animation:none}
  *{transition-duration:.01ms!important}
}

/* ===== páginas internas ===== */
.crumbs{font-size:.88rem;color:var(--mute);margin:0 0 22px}
.crumbs a{color:var(--mute);text-decoration:underline;text-underline-offset:3px}
.crumbs a:hover{color:var(--cream)}
.crumbs span[aria-current]{color:var(--cream)}
.intro{padding:clamp(56px,8vw,104px) 0 clamp(20px,4vw,48px)}
.intro .prose{max-width:760px}
.intro h2{font:900 clamp(1.9rem,3.8vw,3.1rem)/1.05 var(--serif);letter-spacing:-.03em;margin:0 0 24px;text-wrap:balance}
.intro p{font-size:1.08rem;line-height:1.75;color:#E6DADD;margin:0 0 18px}
.intro p b{color:var(--cream)}
.zones{padding:clamp(40px,6vw,80px) 0}
.zones h2{font:900 clamp(1.7rem,3.2vw,2.6rem)/1.05 var(--serif);letter-spacing:-.03em;margin:0 0 10px}
.zones .sec-lead{margin-bottom:26px}
.zlinks{list-style:none;margin:0 0 26px;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.zlinks a{display:inline-block;padding:10px 18px;border-radius:999px;background:rgba(255,255,255,.07);color:var(--cream);text-decoration:none;font-weight:500;font-size:.95rem;transition:background .2s,transform .2s}
.zlinks a:hover{background:var(--rose);transform:translateY(-2px)}
.zgroup{font:700 .95rem/1 var(--sans);color:var(--amber);margin:26px 0 12px}
.cross{margin-top:8px;padding:22px 26px;border-radius:22px;border:1px solid var(--line);background:rgba(255,255,255,.03);display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;justify-content:space-between}
.cross p{margin:0;font-size:1.02rem}
.foot-zones{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:34px 0 8px;border-bottom:1px solid var(--line);margin-bottom:26px}
.foot-zones h3{font:700 .95rem/1 var(--sans);color:var(--amber);margin:0 0 12px}
.foot-zones ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px}
.foot-zones a{color:var(--mute);text-decoration:none;font-size:.92rem}
.foot-zones a:hover{color:var(--cream)}
@media(max-width:700px){.foot-zones{grid-template-columns:1fr}}
.near{margin:16px 4px 0;font-size:.95rem;color:var(--mute);line-height:1.8}
.near a{color:var(--cream);text-underline-offset:3px}
.near a:hover{color:var(--amber)}

/* botón para salir del vídeo (solo móvil, mientras se reproduce) */
.vclose{display:none;position:absolute;z-index:8;top:max(14px,env(safe-area-inset-top));right:14px;align-items:center;gap:8px;min-height:48px;padding:0 18px 0 14px;border:0;border-radius:999px;background:rgba(9,6,10,.82);color:var(--cream);font:700 1rem/1 var(--sans);cursor:pointer;-webkit-tap-highlight-color:transparent}
.vclose svg{width:20px;height:20px}
.vclose:active{background:var(--rose)}

/* menú móvil */
.menu-btn{display:none;width:46px;height:46px;border:0;border-radius:50%;background:rgba(9,6,10,.55);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;-webkit-tap-highlight-color:transparent}
.menu-btn span{display:block;width:20px;height:2px;border-radius:2px;background:var(--cream);transition:transform .25s,opacity .2s}
header.top.menu-open .menu-btn span:nth-child(1){transform:translateY(7px) rotate(45deg)}
header.top.menu-open .menu-btn span:nth-child(2){opacity:0}
header.top.menu-open .menu-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.menu-panel{display:none}
@media(max-width:700px){
  .menu-btn{display:flex}
  .nav .btn.small{white-space:nowrap;padding:10px 16px;font-size:.88rem}
  .nav nav{gap:10px}
  header.top.menu-open{background:rgba(9,6,10,.97);border-color:var(--line)}
  header.top.menu-open .menu-panel{display:flex;flex-direction:column;padding:6px 0 14px}
  .menu-panel a{padding:17px 24px;font:700 1.2rem/1.2 var(--sans);color:var(--cream);text-decoration:none;border-top:1px solid var(--line)}
  .menu-panel a:active{color:var(--amber)}
}
