/* ============================================================
   ORIGEN · Sistema de diseño — "Forja" v2
   Oscuro · contundente · castellano. Acento ROJO de marca
   (el punto de origen). Máximo contraste. Neo-grotesk limpio.
   ============================================================ */

[hidden]{ display:none !important; } /* el atributo hidden siempre gana al CSS */

/* Fuentes autoalojadas (antes Google Fonts) — RGPD: sin peticiones a terceros */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url('/fuentes/archivo-500.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url('/fuentes/archivo-600.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url('/fuentes/archivo-700.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url('/fuentes/archivo-800.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fuentes/spectral-400.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fuentes/spectral-500.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/fuentes/spectral-600.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Roboto Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fuentes/roboto-mono-400.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Roboto Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fuentes/roboto-mono-500.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  /* — superficies — */
  --bg:        #08080A;
  --bg-warm:   #0C0B0C;
  --panel:     #131316;
  --panel-2:   #1A1A1E;
  --panel-3:   #232228;

  /* — tinta — */
  --ink:       #F7F4EE;
  --ink-2:     #ABA79E;
  --ink-3:     #8B8880;

  /* — acento (conmutable) · ROJO de marca — */
  --acc:       #E5232B;   /* rojo Origen, vivo */
  --acc-hi:    #FB4148;
  --acc-lo:    #B0161D;
  --acc-ink:   #FFF4F2;   /* texto sobre acento */
  --acc-glow:  rgba(229,35,43,.26);
  --acc-soft:  rgba(229,35,43,.10);
  --acc-line:  rgba(229,35,43,.36);

  /* — semánticos — */
  --rojo:      #E5232B;   /* el punto de origen */
  --no:        #E0685F;
  --si:        #5FD08A;

  /* — estructura — */
  --hair:      rgba(247,244,238,.13);
  --hair-2:    rgba(247,244,238,.07);

  /* — tipografía · neo-grotesk limpio — */
  --display: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --body:    'Helvetica Neue', Helvetica, Arial, sans-serif;
  --script:  'Helvetica Neue', Helvetica, Arial, sans-serif;
  --serif:   'Spectral', Georgia, serif;
  --firma:   #E5232B;

  --maxw: 1440px;
  --gut: clamp(20px, 5vw, 56px);
}

/* ---- conmutadores de acento (tweaks) ---- */
:root[data-acc="lacre"]{
  --acc:#9E2A1E; --acc-hi:#BE3A2A; --acc-lo:#7C1E14; --acc-ink:#FBEAE7;
  --acc-glow:rgba(158,42,30,.24); --acc-soft:rgba(158,42,30,.11); --acc-line:rgba(158,42,30,.40);
}
:root[data-acc="bermellon"]{
  --acc:#F2542D; --acc-hi:#FF6B45; --acc-lo:#C93C1A; --acc-ink:#1A0C06;
  --acc-glow:rgba(242,84,45,.26); --acc-soft:rgba(242,84,45,.11); --acc-line:rgba(242,84,45,.38);
}

/* ---- conmutadores de tipografía (tweaks) ---- */
:root[data-type="archivo"]{ --display:'Archivo', system-ui, sans-serif; --body:'Archivo', system-ui, sans-serif; }
:root[data-type="serif"]{ --display:'Spectral', Georgia, serif; }

/* ============================================================ */

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
html{ -webkit-tap-highlight-color:transparent; }
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--body);
  font-weight:400;
  line-height:1.68;
  font-size:18px;
  letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

/* grano sutil + calidez */
body::before{
  content:"";
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(120% 80% at 50% -10%, rgba(226,180,90,.05), transparent 60%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.025'/%3E%3C/svg%3E");
  mix-blend-mode:soft-light;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--acc); color:var(--acc-ink); }

/* ---- layout ---- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gut); position:relative; z-index:1; }
.section{ padding-block:clamp(64px, 9vw, 124px); position:relative; z-index:1; }
.section--tight{ padding-block:clamp(48px, 6vw, 80px); }
.band{ background:var(--bg-warm); border-block:1px solid var(--hair-2); }

/* ---- tipografía utilitaria ---- */
.eyebrow{
  font-family:var(--display);
  font-weight:600;
  font-size:13px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--acc);
  display:inline-flex; align-items:center; gap:14px;
  margin-bottom:26px;
}
.eyebrow::before{
  content:""; width:30px; height:1px; background:var(--acc-line); display:inline-block;
}
.eyebrow--center{ justify-content:center; }
.eyebrow--center::after{
  content:""; width:30px; height:1px; background:var(--acc-line); display:inline-block;
}

h1,h2,h3{ font-family:var(--display); font-weight:700; line-height:1.02; letter-spacing:-.022em; text-wrap:balance; }
.h1{ font-size:clamp(42px, 6.9vw, 90px); font-weight:700; letter-spacing:-.03em; }
.h2{ font-size:clamp(31px, 4.3vw, 54px); line-height:1.06; }
.h3{ font-size:clamp(20px, 2.3vw, 27px); }
:root[data-type="fraunces"] .h1,
:root[data-type="fraunces"] .h2{ letter-spacing:-.02em; }

.acc{ color:var(--acc); }
.lead{ font-size:clamp(18px, 1.5vw, 21px); color:var(--ink-2); line-height:1.7; text-wrap:pretty; }
.muted{ color:var(--ink-3); }
.kicker{ font-family:var(--display); font-weight:600; letter-spacing:.04em; }

/* ---- botón ---- */
.btn{
  font-family:var(--display);
  font-weight:700;
  font-size:18px;
  letter-spacing:.015em;
  color:var(--acc-ink);
  background:var(--acc);
  border:none; border-radius:11px;
  padding:19px 30px;
  display:inline-flex; align-items:center; justify-content:center; gap:12px;
  cursor:pointer;
  box-shadow:0 0 0 1px var(--acc-lo), 0 10px 30px -10px var(--acc-glow), 0 1px 0 rgba(255,255,255,.25) inset;
  transition:transform .18s cubic-bezier(.2,.8,.2,1), box-shadow .25s, background .2s;
  text-align:center;
}
.btn:hover{ background:var(--acc-hi); transform:translateY(-2px); box-shadow:0 0 0 1px var(--acc), 0 18px 44px -12px var(--acc-glow), 0 1px 0 rgba(255,255,255,.3) inset; }
.btn:active{ transform:translateY(0); }
.btn .arr{ transition:transform .2s; }
.btn:hover .arr{ transform:translateX(4px); }
.btn--lg{ font-size:20px; padding:22px 38px; }

.microcopy{ font-size:14.5px; color:var(--ink-3); letter-spacing:.01em; }
.microcopy b{ color:var(--ink-2); font-weight:500; }

/* ---- nota de fundador (hero) ---- */
.fnote{ display:inline-flex; align-items:center; gap:12px; margin-top:10px;
  border:1px solid var(--hair); border-radius:999px; background:var(--panel); padding:8px 18px 8px 8px; }
.fnote__avatar{ flex:none; width:36px; height:36px; border-radius:50%; display:grid; place-items:center;
  background:var(--panel-3); color:var(--ink-2); font-family:var(--display); font-weight:700; font-size:13px;
  border:1px solid var(--hair); letter-spacing:.04em; }
.fnote p{ font-size:13.5px; color:var(--ink-3); line-height:1.4; text-align:left; }
.fnote p b{ color:var(--ink); font-weight:500; }
.fnote a{ color:var(--acc); font-weight:500; white-space:nowrap; }
.fnote a:hover{ text-decoration:underline; }

/* ---- calculadora de la rebaja ---- */
.calc{ margin-top:46px; border:1px solid var(--hair); border-radius:18px; background:var(--panel); overflow:hidden; }
.calc__head{ padding:26px 30px 0; display:flex; flex-direction:column; gap:6px; }
.calc__title{ font-family:var(--display); font-weight:700; font-size:22px; letter-spacing:-.01em; }
.calc__sub{ font-size:15px; color:var(--ink-3); }
.calc__body{ display:grid; gap:26px; padding:26px 30px; }
@media(min-width:780px){ .calc__body{ grid-template-columns:1.1fr 1fr; align-items:center; } }
.calc__controls{ display:grid; gap:22px; }
.calc__row{ display:grid; gap:10px; }
.calc__label{ font-family:var(--display); font-weight:600; font-size:15px; color:var(--ink-2);
  display:flex; justify-content:space-between; align-items:baseline; }
.calc__label b{ color:var(--acc); font-size:18px; }
.calc input[type="range"]{ -webkit-appearance:none; appearance:none; width:100%; height:4px; border-radius:2px;
  background:var(--panel-3); outline:none; cursor:pointer; }
.calc input[type="range"]::-webkit-slider-thumb{ -webkit-appearance:none; appearance:none; width:22px; height:22px;
  border-radius:50%; background:var(--acc); border:none; box-shadow:0 0 0 4px var(--acc-soft); transition:transform .15s; }
.calc input[type="range"]::-webkit-slider-thumb:hover{ transform:scale(1.15); }
.calc input[type="range"]::-moz-range-thumb{ width:22px; height:22px; border-radius:50%; background:var(--acc);
  border:none; box-shadow:0 0 0 4px var(--acc-soft); }
.calc__result{ text-align:center; border:1px solid var(--acc-line); border-radius:14px; background:var(--acc-soft);
  padding:26px 24px; }
.calc__big{ font-family:var(--display); font-weight:700; font-size:clamp(40px,5vw,58px); line-height:1; color:var(--acc); }
.calc__text{ margin-top:12px; font-size:15.5px; line-height:1.5; color:var(--ink); }
.calc__foot{ padding:0 30px 26px; font-family:var(--display); font-weight:600; font-size:16px; color:var(--ink);
  border-top:1px solid var(--hair-2); padding-top:20px; }

/* ---- quiz de encaje ---- */
.quiz{ max-width:560px; margin:42px auto 0; border:1px solid var(--hair); border-radius:18px;
  background:var(--panel); padding:34px 30px 38px; }
.quiz__dots{ display:flex; justify-content:center; gap:8px; margin-bottom:26px; }
.quiz__dot{ width:8px; height:8px; border-radius:50%; border:1px solid var(--acc-line); transition:background .2s; }
.quiz__dot.on{ background:var(--acc); border-color:var(--acc); }
.quiz__q{ font-family:var(--display); font-weight:700; font-size:clamp(21px,2.4vw,26px); letter-spacing:-.01em;
  color:var(--ink); margin-bottom:24px; text-wrap:balance; }
.quiz__opts{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.quiz__opt{ font-family:var(--display); font-weight:600; font-size:16.5px; color:var(--ink);
  background:var(--panel-2); border:1px solid var(--hair); border-radius:11px; padding:15px 26px;
  cursor:pointer; transition:.18s; min-width:110px; }
.quiz__opt:hover{ border-color:var(--acc); color:var(--acc); transform:translateY(-2px); }
.quiz__verdict{ font-family:var(--display); font-weight:700; font-size:clamp(22px,2.6vw,28px);
  color:var(--acc); margin-bottom:12px; }
.quiz__text{ font-size:16px; line-height:1.6; color:var(--ink-2); max-width:420px; margin:0 auto 24px; }
.quiz__again{ background:none; border:none; color:var(--ink-3); font-family:var(--body); font-size:14px;
  cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.quiz__again:hover{ color:var(--acc); }

/* ---- el punto de origen (marca/bullet) ---- */
.origin-dot{ display:inline-block; color:var(--ink); }
.origin-dot svg{ display:block; }

/* ============================================================
   BARRA SUPERIOR (escasez real)
   ============================================================ */
.topbar{
  background:var(--acc);
  color:var(--acc-ink);
  font-family:var(--display); font-weight:600;
  letter-spacing:.01em;
  position:relative; z-index:5;
}
.topbar a{ display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:nowrap;
  padding:10px 18px; font-size:14.5px; text-align:center; }
.topbar__txt{ text-wrap:balance; }
.topbar__txt .arr{ display:inline-block; margin-left:4px; }
@media(max-width:640px){
  .topbar{ margin:10px 12px 0; border-radius:14px; }
  .topbar a{ padding:9px 14px; font-size:13px; gap:8px; line-height:1.35; }
  .topbar .pulse{ flex:none; }
}
.topbar .arr{ transition:transform .2s; }
.topbar a:hover .arr{ transform:translateX(4px); }
.topbar .pulse{ width:8px; height:8px; border-radius:50%; background:var(--acc-ink);
  box-shadow:0 0 0 0 rgba(255,255,255,.7); animation:pulse 2.4s infinite; }
@keyframes pulse{ 0%{box-shadow:0 0 0 0 rgba(255,255,255,.6)} 70%{box-shadow:0 0 0 7px rgba(255,255,255,0)} 100%{box-shadow:0 0 0 0 rgba(255,255,255,0)} }

/* ---- cabecera ---- */
.head{ padding-block:22px; position:relative; z-index:4; }
.head .wrap{ display:flex; align-items:center; justify-content:space-between; gap:20px; }

/* ---- LOGO ---- */
.logo{ display:inline-flex; align-items:center; gap:12px; }
.logo__mark{ color:var(--ink); flex:none; }
.logo__txt{ display:flex; flex-direction:column; line-height:1; }
.logo__name{ font-family:var(--display); font-weight:700; font-size:22px; letter-spacing:.18em; color:var(--ink); }
.logo__tag{ font-family:var(--body); font-weight:500; font-size:8px; letter-spacing:.32em; color:var(--ink-3); margin-top:5px; }
.head__plazas{ font-family:var(--display); font-weight:600; font-size:13px; letter-spacing:.06em; color:var(--ink-2);
  display:inline-flex; align-items:center; gap:9px; }
.head__plazas .dotrow{ display:inline-flex; gap:5px; }
.head__plazas .d{ width:8px; height:8px; border-radius:50%; border:1px solid var(--acc-line); }
.head__plazas .d.on{ background:var(--acc); border-color:var(--acc); }

/* ============================================================
   HERO
   ============================================================ */
.hero{ padding-block:clamp(48px,7vw,92px) clamp(56px,8vw,104px); position:relative; overflow:hidden; }
.hero::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(95% 60% at 50% 8%, var(--acc-glow), transparent 78%);
}
.hero .wrap{ position:relative; z-index:1; max-width:1200px; text-align:center; }
.hero__h1{ margin-top:8px; }
.hero__sub{ max-width:780px; margin:28px auto 0; }
.hero__videoline{
  display:flex; align-items:center; justify-content:center; gap:16px;
  margin:44px auto 18px; font-family:var(--display); font-weight:600;
  font-size:13.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-2);
}
.hero__videoline::before,.hero__videoline::after{ content:""; height:1px; width:64px; background:var(--hair); }

/* VSL */
.vsl{ position:relative; max-width:1000px; margin:0 auto; aspect-ratio:16/9; border-radius:16px; overflow:hidden;
  border:1px solid var(--acc-line);
  box-shadow:0 0 0 1px rgba(0,0,0,.4), 0 40px 90px -40px rgba(0,0,0,.9), 0 0 60px -20px var(--acc-glow);
  cursor:pointer; }
.vsl__ph{ position:absolute; inset:0;
  background:
    repeating-linear-gradient(135deg, rgba(244,241,234,.018) 0 2px, transparent 2px 11px),
    linear-gradient(180deg, var(--panel-2), var(--panel)); }
.vsl__play{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:18px; }
.vsl__btn{ width:78px; height:78px; border-radius:50%; background:var(--acc); color:var(--acc-ink);
  display:grid; place-items:center; box-shadow:0 14px 40px -10px var(--acc-glow), 0 0 0 1px var(--acc-lo);
  transition:transform .2s; }
.vsl:hover .vsl__btn{ transform:scale(1.07); }
.vsl__btn svg{ margin-left:4px; }
.vsl__label{ font-family:var(--body); font-size:12.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-3); }
.vsl__corner{ position:absolute; top:16px; left:18px; font-family:var(--display); font-weight:600;
  font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-3); }
.vsl__time{ position:absolute; bottom:14px; right:16px; font-family:var(--body); font-size:12px;
  letter-spacing:.05em; color:var(--ink-2); background:rgba(0,0,0,.45); padding:4px 9px; border-radius:6px; backdrop-filter:blur(4px); }

.hero__cta{ display:flex; flex-direction:column; align-items:center; gap:16px; margin-top:38px; }

/* ---- HERO: dirección "Firma" (streetwear · script a pincel + manifiesto serif) ---- */
/* Por defecto se muestra la cabecera tipográfica; en data-hero="firma" se cambia. */
.hero__firma{ display:none; }
:root[data-hero="firma"] .hero__type{ display:none; }
:root[data-hero="firma"] .hero__firma{ display:block; }

.fsig{ position:relative; max-width:780px; margin:6px auto 0; padding-block:clamp(14px,3vw,34px); text-align:center; }
.firma__mark{ font-family:var(--serif); font-weight:600; font-size:13.5px; letter-spacing:.18em;
  color:var(--ink-2); display:block; margin-bottom:clamp(6px,1.4vw,14px); }
.firma__mark sup{ font-size:.6em; vertical-align:.5em; margin-left:1px; }
.firma__stage{ position:relative; display:block; width:100%; }
.firma__script{ font-family:var(--script); color:var(--firma);
  font-size:clamp(56px, 10vw, 118px); line-height:.92; letter-spacing:-.005em;
  max-width:7ch; margin-inline:auto; text-align:center;
  transform:rotate(-2.5deg); transform-origin:center;
  text-shadow:0 1px 0 rgba(0,0,0,.4), 0 18px 50px rgba(214,40,40,.22);
  padding:.12em .1em; }
.firma__overlay{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:min(78vw,300px);
  font-family:var(--serif); font-size:14.5px; line-height:1.5; color:var(--ink); text-align:justify;
  text-shadow:0 1px 3px rgba(11,11,13,.96), 0 0 16px rgba(11,11,13,.98); }
.firma__overlay::before{ content:""; position:absolute; inset:-22px -30px; z-index:-1; border-radius:50%;
  background:radial-gradient(58% 64% at 50% 50%, rgba(11,11,13,.86), transparent 78%); }
.firma__overlay b{ font-weight:600; }
.firma__support{ font-family:var(--display); font-weight:600; font-size:clamp(17px,2vw,22px);
  letter-spacing:.005em; color:var(--ink); margin-top:clamp(22px,3vw,32px); }
.firma__support .acc{ color:var(--acc); }

/* ============================================================
   PARA QUIÉN ES (chips)
   ============================================================ */
.chips{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.chip{ display:inline-flex; align-items:center; gap:10px; padding:12px 20px;
  border:1px solid var(--hair); border-radius:999px; background:var(--panel);
  font-family:var(--display); font-weight:600; font-size:15.5px; letter-spacing:.01em; color:var(--ink); }
.chip .origin-dot{ color:var(--acc); }
.quien__line{ max-width:860px; margin:34px auto 0; text-align:center; }

/* ============================================================
   EL PROBLEMA
   ============================================================ */
.hits{ display:grid; gap:2px; margin-top:48px; border:1px solid var(--hair); border-radius:16px; overflow:hidden; background:var(--hair-2); }
@media(min-width:760px){ .hits{ grid-template-columns:1fr 1fr; } }
.hit{ background:var(--panel); padding:30px 30px; display:flex; gap:18px; align-items:flex-start; transition:background .2s; }
.hit:hover{ background:var(--panel-2); }
.hit__x{ flex:none; width:30px; height:30px; border-radius:8px; display:grid; place-items:center;
  background:rgba(224,104,95,.12); color:var(--no); margin-top:2px; }
.hit p{ font-size:17px; line-height:1.6; color:var(--ink-2); }
.hit p b{ color:var(--ink); font-weight:500; }

.closer{ margin-top:46px; max-width:920px; }
.closer p{ font-size:clamp(20px,2.2vw,26px); line-height:1.5; color:var(--ink); font-weight:300; }
.closer p b{ font-weight:500; color:var(--ink); }
.closer .acc{ font-weight:500; }

/* ============================================================
   EL DESEO (5 palancas) — el corazón
   ============================================================ */
.deseo__intro{ max-width:860px; margin-top:26px; }
.palancas{ margin-top:18px; border-top:1px solid var(--hair); }
.palanca{ display:grid; gap:8px 40px; padding:38px 0; border-bottom:1px solid var(--hair);
  grid-template-columns:1fr; align-items:start; }
@media(min-width:820px){ .palanca{ grid-template-columns:170px 1fr; } }
.palanca__num{ display:flex; align-items:baseline; gap:14px; }
.palanca__n{ font-family:var(--display); font-weight:700; font-size:clamp(54px,7vw,84px); line-height:.85; color:var(--acc);
  opacity:.92; letter-spacing:-.03em; }
.palanca__t{ font-family:var(--display); font-weight:600; font-size:19px; letter-spacing:.02em; color:var(--ink);
  align-self:center; }
@media(min-width:820px){ .palanca__t{ display:block; margin-top:14px; max-width:150px; } .palanca__num{ flex-direction:column; gap:0; } }
.palanca__body p{ font-size:17.5px; line-height:1.66; color:var(--ink-2); max-width:760px; }
.palanca__body b{ color:var(--ink); font-weight:500; }
.palanca:hover .palanca__n{ color:var(--acc-hi); }

/* ============================================================
   MÉTODO LEGADO
   ============================================================ */
.metodo__intro{ max-width:800px; margin-top:24px; }
.pasos{ display:grid; gap:20px; margin-top:52px; }
@media(min-width:880px){ .pasos{ grid-template-columns:repeat(3,1fr); } }
.paso{ background:var(--panel); border:1px solid var(--hair); border-radius:16px; padding:34px 30px 30px;
  position:relative; display:flex; flex-direction:column; transition:transform .25s, border-color .25s; }
.paso:hover{ transform:translateY(-4px); border-color:var(--acc-line); }
.paso__n{ font-family:var(--display); font-weight:700; font-size:15px; letter-spacing:.16em; color:var(--acc); margin-bottom:20px; }
.paso__icon{ width:46px; height:46px; margin-bottom:20px; color:var(--acc); }
.paso h3{ margin-bottom:14px; }
.paso p{ font-size:16px; line-height:1.62; color:var(--ink-2); flex:1; }
.paso__tag{ margin-top:24px; align-self:flex-start; font-family:var(--display); font-weight:600;
  font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--acc);
  border:1px solid var(--acc-line); border-radius:999px; padding:7px 14px; }
.metodo__closer{ margin-top:42px; max-width:680px; }

/* ---- deep-dives de los 3 pasos (estilo pilares) ---- */
.metodo__deepdives{ margin-top:60px; border-top:1px solid var(--hair); }
.dd{ display:grid; gap:6px 48px; padding:clamp(36px,4.4vw,52px) 0; border-bottom:1px solid var(--hair); grid-template-columns:1fr; }
@media(min-width:860px){ .dd{ grid-template-columns:150px 1fr; } }
.dd__num{ font-family:var(--display); font-weight:700; font-size:clamp(54px,7vw,96px); line-height:.82; color:var(--acc); }
.dd__tag{ display:inline-block; font-family:var(--display); font-weight:600; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--acc); border:1px solid var(--acc-line); border-radius:999px; padding:6px 13px; margin-bottom:16px; }
.dd__title{ margin-bottom:10px; }
.dd__lead{ font-size:clamp(18px,2vw,23px); color:var(--ink); font-weight:300; line-height:1.4; margin-bottom:14px; max-width:600px; }
.dd__body{ font-size:16.5px; line-height:1.66; color:var(--ink-2); max-width:620px; margin-bottom:26px; }
.checks{ list-style:none; display:grid; gap:13px; }
@media(min-width:640px){ .checks{ grid-template-columns:1fr 1fr; gap:14px 30px; } }
.checks li{ display:flex; gap:12px; align-items:flex-start; font-size:15.5px; line-height:1.42; color:var(--ink); }
.checks .ck{ flex:none; width:22px; height:22px; border-radius:6px; display:grid; place-items:center; margin-top:1px; background:var(--acc-soft); color:var(--acc); }
.metodo__closer p{ font-size:clamp(19px,2vw,23px); color:var(--ink); font-weight:300; line-height:1.5; }
.metodo__closer b{ font-weight:500; }

/* ============================================================
   ANTES / DESPUÉS
   ============================================================ */
.ad{ display:grid; gap:20px; margin-top:50px; }
@media(min-width:840px){ .ad{ grid-template-columns:1fr 1fr; gap:24px; } }
.adcol{ border:1px solid var(--hair); border-radius:18px; padding:34px 30px; }
.adcol--hoy{ background:var(--panel); }
.adcol--sis{ background:linear-gradient(180deg, var(--acc-soft), transparent 60%), var(--panel-2); border-color:var(--acc-line); }
.adcol__h{ font-family:var(--display); font-weight:700; font-size:14px; letter-spacing:.16em; text-transform:uppercase;
  display:flex; align-items:center; gap:12px; margin-bottom:26px; padding-bottom:20px; border-bottom:1px solid var(--hair); }
.adcol--hoy .adcol__h{ color:var(--ink-3); }
.adcol--sis .adcol__h{ color:var(--acc); }
.adlist{ list-style:none; display:grid; gap:18px; }
.adlist li{ display:flex; gap:14px; align-items:flex-start; font-size:16.5px; line-height:1.55; color:var(--ink-2); }
.adlist .mk{ flex:none; width:24px; height:24px; border-radius:7px; display:grid; place-items:center; margin-top:1px; }
.adcol--hoy .mk{ background:rgba(224,104,95,.12); color:var(--no); }
.adcol--sis .mk{ background:rgba(111,207,151,.14); color:var(--si); }
.adcol--sis .adlist li{ color:var(--ink); }
.ad__closer{ text-align:center; margin-top:44px; font-family:var(--display); font-weight:600;
  font-size:clamp(19px,2.1vw,25px); color:var(--ink); }
.ad__closer b{ color:var(--acc); }

/* ============================================================
   QUIÉN SOY
   ============================================================ */
.quien{ display:grid; gap:44px; align-items:center; }
@media(min-width:860px){ .quien{ grid-template-columns:0.85fr 1.15fr; gap:60px; } }
.foto{ position:relative; aspect-ratio:4/5; border-radius:18px; overflow:hidden; border:1px solid var(--hair);
  background:repeating-linear-gradient(135deg, rgba(244,241,234,.02) 0 2px, transparent 2px 12px), linear-gradient(180deg,var(--panel-2),var(--panel)); }
.foto__label{ position:absolute; inset:auto 0 0 0; padding:16px 18px; font-family:'Roboto Mono',monospace;
  font-size:11.5px; letter-spacing:.06em; color:var(--ink-3); background:linear-gradient(0deg, rgba(0,0,0,.5), transparent); }
.foto__deco{ position:absolute; top:14px; left:14px; color:var(--ink); z-index:2;
  width:52px; height:52px; display:grid; place-items:center; border-radius:50%;
  background:rgba(11,11,13,.55); backdrop-filter:blur(6px);
  border:1px solid var(--hair); box-shadow:0 6px 20px -6px rgba(0,0,0,.6); }
.quien__body p{ font-size:18px; line-height:1.72; color:var(--ink-2); margin-bottom:22px; max-width:600px; }
.quien__body p b{ color:var(--ink); font-weight:400; }
.firma{ display:flex; align-items:center; gap:16px; margin-top:34px; padding-top:26px; border-top:1px solid var(--hair); }
.firma__name{ font-family:var(--display); font-weight:700; font-size:24px; line-height:1; letter-spacing:-.01em; color:var(--ink); }
.firma__role{ font-family:var(--display); font-weight:600; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--acc); margin-top:4px; }

/* ============================================================
   GARANTÍA (banda dorada invertida)
   ============================================================ */
.garantia{ background:var(--acc); color:var(--acc-ink); position:relative; overflow:hidden; }
.garantia::after{ content:""; position:absolute; inset:0; opacity:.5; pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E"); }
.garantia .wrap{ position:relative; z-index:1; max-width:960px; text-align:center; }
.garantia .eyebrow{ color:var(--acc-ink); opacity:.7; justify-content:center; }
.garantia .eyebrow::before,.garantia .eyebrow::after{ background:rgba(255,244,242,.45); }
.garantia .eyebrow::after{ content:""; width:30px; height:1px; display:inline-block; }
.garantia h2{ color:var(--acc-ink); }
.garantia p{ font-size:clamp(18px,1.9vw,22px); line-height:1.6; color:var(--acc-ink); opacity:.9; margin-top:26px; max-width:680px; margin-inline:auto; font-weight:400; }
.garantia .seal{ width:64px; height:64px; margin:0 auto 28px; color:var(--acc-ink); }

/* ============================================================
   TIMELINE (qué pasa cuando reservas)
   ============================================================ */
.timeline{ display:grid; gap:0; margin-top:50px; }
@media(min-width:880px){ .timeline{ grid-template-columns:repeat(4,1fr); } }
.tl{ position:relative; padding:30px 26px; border:1px solid var(--hair); border-radius:14px; background:var(--panel); }
@media(min-width:880px){ .timeline{ gap:18px; } }
.tl__n{ width:42px; height:42px; border-radius:50%; display:grid; place-items:center; margin-bottom:20px;
  font-family:var(--display); font-weight:700; font-size:18px; color:var(--acc-ink); background:var(--acc);
  box-shadow:0 8px 22px -8px var(--acc-glow); }
.tl h3{ font-size:19px; margin-bottom:12px; }
.tl p{ font-size:15.5px; line-height:1.6; color:var(--ink-2); }

/* ============================================================
   FAQ
   ============================================================ */
.faq{ margin-top:48px; border-top:1px solid var(--hair); max-width:1000px; }
.qa{ border-bottom:1px solid var(--hair); }
.qa__q{ width:100%; background:none; border:none; cursor:pointer; text-align:left;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:26px 4px; font-family:var(--display); font-weight:600; font-size:clamp(18px,2vw,22px);
  color:var(--ink); letter-spacing:.005em; transition:color .2s; }
.qa__q:hover{ color:var(--acc); }
.qa__ic{ flex:none; width:26px; height:26px; position:relative; }
.qa__ic::before,.qa__ic::after{ content:""; position:absolute; background:var(--acc); border-radius:2px; transition:transform .3s; }
.qa__ic::before{ top:12px; left:4px; right:4px; height:2px; }
.qa__ic::after{ left:12px; top:4px; bottom:4px; width:2px; }
.qa[open] .qa__ic::after{ transform:scaleY(0); }
.qa__a{ overflow:hidden; max-height:0; transition:max-height .4s cubic-bezier(.4,0,.2,1); }
.qa[open] .qa__a{ max-height:420px; }
.qa__a p{ padding:0 4px 28px; font-size:16.5px; line-height:1.7; color:var(--ink-2); max-width:720px; }
.qa__a p b{ color:var(--ink); font-weight:500; }

/* ============================================================
   RESERVA
   ============================================================ */
.reserva .wrap{ text-align:center; }
.reserva__h{ max-width:920px; margin-inline:auto; }
.reserva__line{ display:inline-flex; align-items:center; gap:12px; margin:26px auto 0;
  font-family:var(--display); font-weight:600; font-size:16px; letter-spacing:.01em; color:var(--ink-2);
  border:1px solid var(--acc-line); border-radius:999px; padding:11px 22px; background:var(--acc-soft); }
.reserva__line .dotrow{ display:inline-flex; gap:5px; }
.reserva__line .d{ width:9px; height:9px; border-radius:50%; border:1px solid var(--acc); }
.reserva__line .d.on{ background:var(--acc); }
.cal{ margin:44px auto 0; max-width:1000px; border:1px solid var(--hair); border-radius:18px; overflow:hidden; background:var(--panel); text-align:left; }
.cal__head{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 26px; border-bottom:1px solid var(--hair); flex-wrap:wrap; }
.cal__title{ font-family:var(--display); font-weight:700; font-size:18px; }
.cal__meta{ font-size:13.5px; color:var(--ink-3); }
.cal__body{ display:grid; gap:0; }
@media(min-width:720px){ .cal__body{ grid-template-columns:1.1fr 1fr; } }
.cal__days{ padding:26px; display:grid; grid-template-columns:repeat(7,1fr); gap:8px; border-right:1px solid var(--hair); }
.cal__dow{ font-size:11px; text-align:center; color:var(--ink-3); font-family:var(--display); font-weight:600; letter-spacing:.08em; padding-bottom:6px; }
.cal__day{ aspect-ratio:1; border-radius:9px; border:1px solid var(--hair); display:grid; place-items:center;
  font-size:15px; color:var(--ink-2); font-family:var(--display); font-weight:600; cursor:default; }
.cal__day.muted{ opacity:.3; }
.cal__day.free{ border-color:var(--acc-line); color:var(--ink); cursor:pointer; transition:.18s; }
.cal__day.free:hover{ background:var(--acc); color:var(--acc-ink); border-color:var(--acc); }
.cal__day.sel{ background:var(--acc); color:var(--acc-ink); border-color:var(--acc); }
.cal__slots{ padding:26px; display:flex; flex-direction:column; gap:10px; }
.cal__slots .lbl{ font-family:var(--display); font-weight:600; font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-3); margin-bottom:6px; }
.slot{ border:1px solid var(--hair); border-radius:10px; padding:13px 16px; font-family:var(--display); font-weight:600;
  font-size:15.5px; color:var(--ink); display:flex; align-items:center; justify-content:space-between; cursor:pointer; transition:.18s; }
.slot:hover{ border-color:var(--acc); color:var(--acc); }
.cal__ph{ text-align:center; padding:14px; font-family:'Roboto Mono',monospace; font-size:11.5px; color:var(--ink-3); letter-spacing:.04em; border-top:1px solid var(--hair); }
.reserva__micro{ margin-top:30px; }
.reserva__alt{ margin-top:24px; display:inline-flex; flex-wrap:wrap; gap:10px 22px; justify-content:center; align-items:center;
  font-size:15px; color:var(--ink-2); }
.reserva__alt a{ color:var(--acc); font-weight:500; border-bottom:1px solid var(--acc-line); padding-bottom:1px; transition:.18s; }
.reserva__alt a:hover{ border-color:var(--acc); }

/* ============================================================
   FOOTER
   ============================================================ */
.foot{ border-top:1px solid var(--hair); padding-block:46px; }
.foot .wrap{ display:flex; flex-direction:column; gap:24px; }
@media(min-width:760px){ .foot .wrap{ flex-direction:row; align-items:center; justify-content:space-between; } }
.foot__tag{ font-size:13.5px; color:var(--ink-3); max-width:420px; line-height:1.6; }
.foot__links{ display:flex; flex-wrap:wrap; gap:8px 22px; font-size:13.5px; color:var(--ink-2); }
.foot__links a:hover{ color:var(--acc); }

/* ============================================================
   CTA FIJO MÓVIL
   ============================================================ */
.mcta{ position:fixed; inset:auto 0 0 0; z-index:40; padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:linear-gradient(0deg, var(--bg) 60%, transparent); transform:translateY(120%); transition:transform .35s cubic-bezier(.2,.8,.2,1); }
.mcta.show{ transform:translateY(0); }
.mcta .btn{ width:100%; }
@media(min-width:880px){
  .mcta{ inset:auto 28px 28px auto; padding:0; background:none; }
  .mcta.show{ transform:translateY(0); }
  .mcta .btn{ width:auto; border-radius:999px; padding:17px 28px; font-size:17px;
    box-shadow:0 0 0 1px var(--acc-lo), 0 18px 50px -12px rgba(0,0,0,.8), 0 10px 30px -10px var(--acc-glow); }
}

/* reveal — visible at rest; only elements explicitly armed (off-screen on load) animate in.
   This guarantees first paint is never blank even if the animation clock is throttled. */
.reveal{ opacity:1; transform:none; }
@media(prefers-reduced-motion:no-preference){
  .reveal.pre{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1); }
  .reveal.pre.in{ opacity:1; transform:none; }
}
@media(prefers-reduced-motion:reduce){ *{ scroll-behavior:auto; } }

/* ============================================================
   ESTADO "EN CONSTRUCCIÓN" (velo desestimable + cinta + índice)
   ============================================================ */
/* cinta de esquina persistente */
.wip-ribbon{ position:fixed; top:22px; right:-54px; z-index:60; transform:rotate(45deg);
  background:var(--acc); color:var(--acc-ink); font-family:var(--display); font-weight:700;
  font-size:12px; letter-spacing:.16em; text-transform:uppercase; padding:8px 60px;
  box-shadow:0 6px 20px -6px rgba(0,0,0,.6); pointer-events:none; }

/* velo de obras */
.wip{ position:fixed; inset:0; z-index:80; display:grid; place-items:center; padding:24px;
  background:rgba(8,8,10,.86); backdrop-filter:blur(10px) saturate(120%);
  transition:opacity .45s ease, visibility .45s; }
.wip[hidden]{ display:none; }
.wip.gone{ opacity:0; visibility:hidden; pointer-events:none; }
.wip__card{ max-width:520px; text-align:center; background:linear-gradient(180deg,var(--panel-2),var(--panel));
  border:1px solid var(--hair); border-radius:22px; padding:clamp(34px,5vw,52px);
  box-shadow:0 40px 100px -40px rgba(0,0,0,.9); position:relative; overflow:hidden; }
.wip__card::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(45deg, var(--acc-soft) 0 14px, transparent 14px 34px); opacity:.5;
  -webkit-mask:linear-gradient(180deg, #000, transparent 130px); mask:linear-gradient(180deg,#000,transparent 130px); }
.wip__mark{ color:var(--ink); margin-bottom:24px; position:relative; }
.wip__eyebrow{ font-family:var(--display); font-weight:600; font-size:12.5px; letter-spacing:.26em;
  text-transform:uppercase; color:var(--acc); display:inline-flex; align-items:center; gap:10px; margin-bottom:18px; position:relative; }
.wip__eyebrow .dot{ width:8px; height:8px; border-radius:50%; background:var(--acc); animation:pulse 2.4s infinite;
  box-shadow:0 0 0 0 var(--acc-glow); }
.wip__h{ font-family:var(--display); font-weight:700; font-size:clamp(26px,4vw,38px); line-height:1.05;
  letter-spacing:-.02em; color:var(--ink); margin-bottom:16px; position:relative; }
.wip__p{ font-size:16.5px; line-height:1.6; color:var(--ink-2); max-width:400px; margin:0 auto 30px; position:relative; }
.wip__actions{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; position:relative; }
.wip__ghost{ font-family:var(--display); font-weight:600; font-size:15px; color:var(--ink-2);
  border:1px solid var(--hair); border-radius:11px; padding:15px 24px; background:none; cursor:pointer; transition:.18s; }
.wip__ghost:hover{ border-color:var(--acc-line); color:var(--ink); }
body.wip-peeking{ overflow:auto; }

/* ============================================================
   LOW-TICKET (página de venta de infoproducto) — borrador
   ============================================================ */
.ph-note{ font-family:'Roboto Mono', ui-monospace, monospace; font-size:12px; letter-spacing:.02em;
  color:var(--ink-3); background:var(--acc-soft); border:1px dashed var(--acc-line); border-radius:8px;
  padding:4px 9px; display:inline-block; }
.ph-block{ border:1px dashed var(--hair); border-radius:14px; padding:26px; text-align:center;
  background:repeating-linear-gradient(135deg, rgba(247,244,238,.02) 0 2px, transparent 2px 12px);
  font-family:'Roboto Mono', ui-monospace, monospace; font-size:12.5px; color:var(--ink-3); letter-spacing:.02em; line-height:1.7; }

/* bloque de precio / anclaje */
.price{ display:inline-flex; flex-direction:column; align-items:center; gap:6px; }
.price__anchor{ font-family:var(--display); font-weight:600; font-size:20px; color:var(--ink-3);
  text-decoration:line-through; text-decoration-color:var(--acc); }
.price__now{ font-family:var(--display); font-weight:700; font-size:clamp(48px,7vw,76px); line-height:.9; color:var(--ink); letter-spacing:-.03em; }
.price__now .cur{ color:var(--acc); }
.price__cap{ font-size:13px; color:var(--ink-3); letter-spacing:.04em; }

/* qué incluye — lista de módulos/capítulos */
.offer{ display:grid; gap:14px; margin-top:48px; }
@media(min-width:760px){ .offer{ grid-template-columns:1fr 1fr; gap:16px; } }
.offer__item{ display:flex; gap:16px; align-items:flex-start; background:var(--panel); border:1px solid var(--hair);
  border-radius:14px; padding:22px 24px; transition:border-color .2s, transform .2s; }
.offer__item:hover{ border-color:var(--acc-line); transform:translateY(-2px); }
.offer__n{ flex:none; width:34px; height:34px; border-radius:9px; display:grid; place-items:center;
  font-family:var(--display); font-weight:700; font-size:15px; color:var(--acc); background:var(--acc-soft); border:1px solid var(--acc-line); }
.offer__t{ font-family:var(--display); font-weight:600; font-size:18px; color:var(--ink); margin-bottom:5px; }
.offer__d{ font-size:15px; line-height:1.55; color:var(--ink-2); }

/* stack de bonus con valores */
.stack{ margin-top:48px; border:1px solid var(--hair); border-radius:18px; overflow:hidden; background:var(--panel); }
.stack__row{ display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 26px; border-bottom:1px solid var(--hair); }
.stack__row:last-child{ border-bottom:none; }
.stack__row--total{ background:var(--acc-soft); }
.stack__name{ font-family:var(--display); font-weight:600; font-size:16.5px; color:var(--ink); display:flex; align-items:center; gap:13px; }
.stack__name .ck{ flex:none; width:22px; height:22px; border-radius:6px; display:grid; place-items:center; background:var(--acc-soft); color:var(--acc); }
.stack__val{ font-family:var(--display); font-weight:700; font-size:16px; color:var(--ink-3); white-space:nowrap; }
.stack__row--total .stack__name{ font-size:19px; }
.stack__row--total .stack__val{ color:var(--acc); font-size:20px; }
.stack__val.was{ text-decoration:line-through; text-decoration-color:var(--acc); }

/* para quién sí / para quién no */
.fit{ display:grid; gap:20px; margin-top:48px; }
@media(min-width:760px){ .fit{ grid-template-columns:1fr 1fr; gap:24px; } }
.cta-stack{ display:flex; flex-direction:column; align-items:center; gap:18px; margin-top:44px; }



/* ---- foto real ---- */
.foto__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 20%; filter:grayscale(1) contrast(1.04); }
img.fnote__avatar{ object-fit:cover; object-position:center 15%; }

/* ---- Cal.com embed ---- */
.calx{ margin:44px auto 0; max-width:1000px; border:1px solid var(--hair); border-radius:18px; overflow:hidden; background:var(--panel); text-align:left; }
.calx__head{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 26px; border-bottom:1px solid var(--hair); flex-wrap:wrap; }

/* ---- CTA intermedio con nota honesta ---- */
.midcta{ margin-top:52px; text-align:center; border:1px solid var(--hair); border-radius:16px; background:var(--panel); padding:34px 28px; }
.midcta__note{ max-width:560px; margin:0 auto 22px; font-size:15.5px; line-height:1.65; color:var(--ink-2); }

/* hero compacto móvil */
@media(max-width:640px){
  .hero{ padding-block:clamp(30px,6vw,48px) clamp(44px,8vw,64px); }
  .head{ padding-block:16px; }
  .head__plazas{ font-size:12px; }
  .hero__sub{ margin-top:22px; }
  .btn--lg{ width:100%; max-width:420px; }
}

/* fundido breve al abrir el popup de Cal */
.cal-flash{ position:fixed; inset:0; z-index:200; background:rgba(11,11,13,.55); opacity:0;
  pointer-events:none; transition:opacity .2s ease; }
.cal-flash.on{ opacity:1; }

/* píldora de escasez que reaparece en móvil cerca del FAQ */
.topbar-mini{ position:fixed; top:10px; left:12px; right:12px; z-index:45;
  background:var(--acc); color:var(--acc-ink); border-radius:999px;
  font-family:var(--display); font-weight:600; font-size:13px; text-align:center;
  padding:9px 16px; box-shadow:0 10px 30px -8px rgba(0,0,0,.6);
  transform:translateY(-140%); transition:transform .35s cubic-bezier(.2,.8,.2,1); }
.topbar-mini.show{ transform:translateY(0); }
@media(min-width:880px){ .topbar-mini{ display:none; } }

/* h1 móvil */
@media(max-width:640px){
  .h1{ font-size:clamp(34px,10vw,44px); }
}

/* ============ haz de luz sobre el VSL (spotlight) ============ */
.hero{ overflow-x:clip; }
.spot{ position:absolute; left:50%; top:-60px; transform:translateX(-50%);
  width:100vw; height:680px; pointer-events:none; z-index:0;
  background:
    radial-gradient(62% 54% at 50% 0%, rgba(244,241,234,.16), transparent 76%),
    conic-gradient(from 90deg at 50% -6%,
      transparent 41.5%,
      rgba(244,241,234,.09) 46%,
      rgba(229,35,43,.13) 50%,
      rgba(244,241,234,.09) 54%,
      transparent 58.5%);
  filter:blur(16px);
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 52%,transparent 96%);
  mask-image:linear-gradient(180deg,#000 0%,#000 52%,transparent 96%);
}
/* halo que recoge la luz alrededor del vídeo */
.vsl{ box-shadow:0 0 0 1px rgba(0,0,0,.4), 0 40px 90px -40px rgba(0,0,0,.9),
  0 -18px 80px -30px rgba(244,241,234,.14), 0 0 70px -18px var(--acc-glow); }
@media(max-width:640px){
  .spot{ height:460px; top:-40px; filter:blur(12px); }
}
@media(prefers-reduced-motion:no-preference){
  .spot{ animation:spotBreath 7s ease-in-out infinite alternate; }
  @keyframes spotBreath{ from{ opacity:.85; } to{ opacity:1; } }
}

/* ============ luciérnagas dentro del foco ============ */
.fireflies{ position:absolute; left:50%; top:0; transform:translateX(-50%);
  width:min(1000px,100vw); height:620px; pointer-events:none; z-index:0; }
.ff{ position:absolute; border-radius:50%;
  width:var(--s,3px); height:var(--s,3px);
  left:var(--x,50%); top:var(--y,60%);
  background:var(--c,rgba(244,241,234,.9));
  box-shadow:0 0 6px 1px var(--c,rgba(244,241,234,.55));
  opacity:0;
  animation:ffFloat var(--d,9s) linear infinite;
  animation-delay:var(--dl,0s);
}
@keyframes ffFloat{
  0%   { transform:translate3d(0,0,0) scale(.6); opacity:0; }
  10%  { opacity:var(--o,.75); }
  78%  { opacity:var(--o,.75); }
  100% { transform:translate3d(var(--dx,12px),var(--dy,-140px),0) scale(1); opacity:0; }
}
@media(prefers-reduced-motion:reduce){ .fireflies{ display:none; } }
@media(max-width:640px){ .fireflies{ height:440px; } }

/* foco + luciérnagas también en selección y gracias */
.sel__main{ overflow-x:clip; }
.gr__main{ overflow-x:clip; }

/* ============================================================
   CINE v19 · 1) revelado telón de titulares
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
  /* mask en vez de clip-path: clip-path colapsa el área que mide IntersectionObserver */
  .h2.reveal, .h1.reveal{
    -webkit-mask-image: linear-gradient(to bottom, #000 42%, transparent 58%);
    mask-image: linear-gradient(to bottom, #000 42%, transparent 58%);
    -webkit-mask-size: 100% 240%; mask-size: 100% 240%;
    -webkit-mask-position: 0 0; mask-position: 0 0;
    transition: -webkit-mask-position .95s cubic-bezier(.22,1,.36,1), mask-position .95s cubic-bezier(.22,1,.36,1), transform .95s cubic-bezier(.22,1,.36,1), opacity .5s ease;
  }
  .h2.reveal.pre, .h1.reveal.pre{ -webkit-mask-position: 0 100%; mask-position: 0 100%; transform: translateY(16px); opacity: 1; }
  .h2.reveal.in, .h1.reveal.in{ -webkit-mask-position: 0 0; mask-position: 0 0; transform: translateY(0); }
}

/* ============================================================
   CINE v19 · 2) latido único del punto rojo en Garantía/Reserva
   ============================================================ */
@keyframes dot-beat{
  0%{ transform: scale(1); } 30%{ transform: scale(1.55); }
  55%{ transform: scale(.92); } 75%{ transform: scale(1.18); } 100%{ transform: scale(1); }
}
@media (prefers-reduced-motion: no-preference) {
  .dot-beat circle:last-child{ animation: dot-beat 1.1s cubic-bezier(.22,1,.36,1) both; transform-origin: center; transform-box: fill-box; }
}

/* ============================================================
   CINE v19 · 3) atmósfera por capítulos (respiración del fondo)
   ============================================================ */
body{ transition: background-color 1.6s ease; }
body.acto-2{ background-color: #131316; }
body.acto-3{ background-color: var(--bg); }

/* ============================================================
   CINE v19 · 4) números del método que se dibujan
   ============================================================ */
.dd__num--draw{ position:relative; color:transparent !important; }
.dd__num--draw svg{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.dd__num--draw svg text{
  font-family:var(--display); font-weight:800; fill:none;
  stroke:var(--hair-strong, rgba(244,241,234,.28)); stroke-width:1.2px;
  font-size:64px; letter-spacing:normal;
}
@media (prefers-reduced-motion: no-preference) {
  .dd__num--draw svg text{ stroke-dasharray: 340; stroke-dashoffset: 340; }
  .dd__num--draw.in svg text{ animation: num-draw 1.6s cubic-bezier(.4,0,.2,1) .15s forwards; }
}
@media (prefers-reduced-motion: reduce) {
  .dd__num--draw svg text{ stroke-dashoffset: 0; }
}
@keyframes num-draw{ to{ stroke-dashoffset: 0; } }

/* ============================================================
   SKILLS v21 · emilkowalski + impeccable + taste-skill
   ============================================================ */
/* [1] press feedback: el botón confirma el toque */
.btn:active{ transform:translateY(-1px) scale(.97); transition-duration:.09s; }
.quiz__opt:active, .wip__ghost:active{ transform:scale(.96); }
/* [2] FAQ interruptible a velocidad constante */
.qa__a{ max-height:none; display:grid; grid-template-rows:0fr; overflow:hidden;
  transition:grid-template-rows .3s cubic-bezier(.2,.8,.2,1); }
.qa[open] .qa__a{ max-height:none; grid-template-rows:1fr; }
.qa__a p{ min-height:0; overflow:hidden; }
/* [3] propiedades explícitas en vez de transition:all */
.quiz__opt{ transition:border-color .18s, color .18s, transform .18s cubic-bezier(.2,.8,.2,1); }
.cal__day.free{ transition:background .18s, color .18s, border-color .18s; }
.slot{ transition:border-color .18s, color .18s; }
.reserva__alt a{ transition:border-color .18s; }
.wip__ghost{ transition:border-color .18s, color .18s, transform .18s; }
/* [4] entradas más ágiles */
@media(prefers-reduced-motion:no-preference){
  .reveal.pre{ transform:translateY(16px); transition:opacity .5s ease, transform .5s cubic-bezier(.2,.8,.2,1); }
  .h2.reveal, .h1.reveal{ transition-duration:.7s; }
}
/* [5] foco visible de teclado */
:is(a,button,summary,input,[tabindex]):focus-visible{ outline:2px solid var(--acc); outline-offset:3px; border-radius:6px; }

/* ============================================================
   VSL v27 · portada con miniatura + título
   ============================================================ */
.vsl__poster{ position:absolute; inset:0;
  background-image:
    linear-gradient(100deg, rgba(11,11,13,.38) 30%, rgba(11,11,13,.12) 60%),
    linear-gradient(180deg, rgba(11,11,13,.28), rgba(11,11,13,.72) 82%),
    url('/imagenes/foto-mario.jpg'),
    linear-gradient(180deg, var(--panel-2), var(--panel));
  background-size:cover; background-position:center 22%;
  filter:grayscale(1) contrast(1.06); }
.vsl:hover .vsl__poster{ filter:grayscale(1) contrast(1.1) brightness(1.06); }
.vsl__cover{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; padding:24px; text-align:center; }
.vsl__title{ font-family:var(--display); font-weight:700; font-size:clamp(22px,3.4vw,38px); line-height:1.08; letter-spacing:-.01em; color:var(--ink); max-width:20ch; text-wrap:balance; text-shadow:0 2px 24px rgba(0,0,0,.75); }
.vsl__title em{ font-style:normal; color:var(--acc-hi); }
.vsl__meta{ font-family:var(--body); font-size:12.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-2); text-shadow:0 1px 12px rgba(0,0,0,.8); }
.vsl:hover .vsl__title{ color:#fff; }
@media(max-width:640px){ .vsl__cover{ gap:10px; } .vsl__btn{ width:58px; height:58px; } }

/* ============================================================
   VSL v28 · portada cinematográfica
   ============================================================ */
.vsl__poster{ transition:transform .8s cubic-bezier(.22,1,.36,1), filter .8s; }
.vsl:hover .vsl__poster{ transform:scale(1.045); filter:saturate(1.08); }
/* viñeta + brasa roja desde abajo */
.vsl__cover::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(120% 90% at 50% 118%, rgba(229,35,43,.22), transparent 55%),
    radial-gradient(140% 140% at 50% 50%, transparent 55%, rgba(0,0,0,.55));
}
/* destello que barre la portada cada pocos segundos */
@media(prefers-reduced-motion:no-preference){
  .vsl__cover::after{ content:""; position:absolute; inset:0; pointer-events:none;
    background:linear-gradient(115deg, transparent 42%, rgba(247,244,238,.07) 50%, transparent 58%);
    background-size:280% 100%; animation:vsl-sheen 7s ease-in-out infinite; }
  @keyframes vsl-sheen{ 0%,55%{ background-position:120% 0; } 85%,100%{ background-position:-60% 0; } }
}
/* botón con doble anillo pulsante */
.vsl__btn--pulse{ position:relative; width:92px; height:92px;
  box-shadow:0 18px 50px -12px var(--acc-glow), 0 0 0 1px var(--acc-lo), 0 0 40px -6px var(--acc-glow); }
@media(prefers-reduced-motion:no-preference){
  .vsl__btn--pulse::before, .vsl__btn--pulse::after{ content:""; position:absolute; inset:0; border-radius:50%;
    border:1.5px solid var(--acc); opacity:0; animation:vsl-ring 2.6s cubic-bezier(.2,.6,.35,1) infinite; }
  .vsl__btn--pulse::after{ animation-delay:1.3s; }
  @keyframes vsl-ring{ 0%{ transform:scale(1); opacity:.7; } 100%{ transform:scale(1.85); opacity:0; } }
}
.vsl:hover .vsl__btn--pulse{ transform:scale(1.1); background:var(--acc-hi); }
.vsl__title{ font-size:clamp(26px,4vw,46px); font-weight:800; text-shadow:0 3px 30px rgba(0,0,0,.85); }
.vsl__title em{ font-style:normal; color:var(--acc-hi);
  text-decoration:underline; text-decoration-color:rgba(229,35,43,.55); text-decoration-thickness:3px; text-underline-offset:8px; }
.vsl__meta{ display:inline-flex; align-items:center; gap:10px; }
.vsl__face{ width:30px; height:30px; border-radius:50%; object-fit:cover; border:1.5px solid rgba(247,244,238,.4); }
.vsl__chip{ position:absolute; top:14px; right:16px; z-index:2; display:inline-flex; align-items:center; gap:7px;
  font-family:var(--body); font-size:12px; letter-spacing:.14em; color:var(--ink);
  background:rgba(11,11,13,.62); border:1px solid var(--hair); border-radius:999px; padding:6px 13px; backdrop-filter:blur(6px); }
.vsl__chipdot{ width:7px; height:7px; border-radius:50%; background:var(--acc); }
@media(prefers-reduced-motion:no-preference){ .vsl__chipdot{ animation:pulse 2s infinite; } }
.vsl__corner{ z-index:2; }
/* "Ver ahora" aparece al pasar el ratón */
.vsl__hint{ font-family:var(--display); font-weight:700; font-size:14px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--acc-hi); opacity:0; transform:translateY(6px); transition:opacity .25s, transform .25s; }
.vsl:hover .vsl__hint, .vsl:focus-visible .vsl__hint{ opacity:1; transform:none; }
@media(max-width:640px){
  .vsl__btn--pulse{ width:64px; height:64px; }
  .vsl__title{ font-size:clamp(21px,6vw,26px); }
  .vsl__hint{ opacity:1; transform:none; }
}
/* ============================================================
   VSL v30 · subtítulo, capítulos, CTA final y modo cine
   ============================================================ */
.vsl__sub{ font-family:var(--body); font-style:italic; font-size:clamp(14px,1.8vw,17px); color:var(--ink-2); max-width:46ch; text-shadow:0 1px 14px rgba(0,0,0,.85); }
.vsl-caps{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin:18px auto 0; max-width:1000px; }
.vsl-cap{ font-family:var(--body); font-size:13.5px; color:var(--ink-2); background:transparent; border:1px solid var(--hair); border-radius:999px; padding:9px 16px; cursor:pointer; transition:border-color .18s, color .18s, transform .16s; }
.vsl-cap b{ color:var(--acc); font-weight:500; margin-right:6px; }
.vsl-cap:hover{ border-color:var(--acc); color:var(--ink); }
.vsl-cap:active{ transform:scale(.96); }
.vsl__end{ position:absolute; inset:0; z-index:4; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; text-align:center; padding:24px; background:rgba(11,11,13,.93); backdrop-filter:blur(4px); animation:vsl-end-in .6s ease both; }
.vsl__endtitle{ font-family:var(--display); font-weight:800; font-size:clamp(22px,3vw,34px); letter-spacing:-.01em; color:var(--ink); }
@keyframes vsl-end-in{ from{ opacity:0; } to{ opacity:1; } }
body.cine .spot, body.cine .fireflies{ opacity:.22; transition:opacity 1.4s ease; }
@media(max-width:640px){ .vsl-cap{ font-size:12.5px; padding:8px 13px; } }
/* ============================================================
   VSL v31 · móvil: portada despejada (en ~200px de alto no cabe todo)
   ============================================================ */
@media(max-width:640px){
  .vsl{ border-radius:12px; }
  .vsl__cover{ gap:8px; padding:14px; }
  .vsl__btn--pulse{ width:52px; height:52px; }
  .vsl__btn--pulse svg{ width:20px; height:20px; }
  .vsl__title{ font-size:20px; line-height:1.12; }
  .vsl__title em{ text-decoration-thickness:2px; text-underline-offset:5px; }
  .vsl__sub{ display:none; }
  .vsl__hint{ display:none; }
  .vsl__corner{ display:none; }
  .vsl__meta{ font-size:10px; letter-spacing:.12em; }
  .vsl__face{ width:22px; height:22px; }
  .vsl__chip{ top:10px; right:10px; padding:4px 10px; font-size:10.5px; }
  .vsl__poster{ background-position:center 15%; }
  .vsl-caps{ gap:8px; margin-top:14px; }
  .vsl-cap{ flex:1 1 100%; text-align:left; }
  .vsl__end{ gap:12px; padding:16px; }
  .vsl__endtitle{ font-size:19px; }
  .vsl__end .btn{ padding:13px 18px; font-size:14px; }
  .vsl__end .microcopy{ margin:0; font-size:11.5px; }
}
/* v32 · iPhone: que la barra superior no quede bajo el notch/reloj, y el CTA fijo sobre el borde inferior */
.topbar a{ padding-top:calc(10px + env(safe-area-inset-top, 0px)); }
.mcta{ padding-bottom:calc(10px + env(safe-area-inset-bottom, 0px)); }
/* ============================================================
   FORK v35 · menú interactivo pregunta → respuesta
   ============================================================ */
.fork{ max-width:860px; margin:0 auto; background:var(--panel); border:1px solid var(--hair); border-radius:18px; padding:clamp(26px,4vw,40px); }
.fork__q{ font-family:var(--display); font-weight:700; font-size:clamp(20px,2.6vw,27px); letter-spacing:-.01em; margin-bottom:20px; }
.fork__opts{ display:flex; flex-wrap:wrap; gap:10px; }
.fork__opt{ font-family:var(--body); font-size:15px; color:var(--ink-2); background:transparent; border:1px solid var(--hair); border-radius:999px; padding:12px 20px; cursor:pointer; transition:border-color .18s, color .18s, background .18s, transform .16s; }
.fork__opt:hover{ border-color:var(--acc); color:var(--ink); }
.fork__opt:active{ transform:scale(.97); }
.fork__opt.on{ background:var(--acc); border-color:var(--acc); color:var(--acc-ink); font-weight:500; }
.fork__ans{ margin-top:22px; padding-top:22px; border-top:1px solid var(--hair); }
.fork__ans p{ font-size:16.5px; line-height:1.65; color:var(--ink-2); max-width:62ch; }
.fork__ans.in{ animation:fork-in .45s cubic-bezier(.2,.8,.2,1) both; }
@keyframes fork-in{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
@media(prefers-reduced-motion:reduce){ .fork__ans.in{ animation:none; } }
.fork__go{ display:inline-flex; align-items:center; gap:8px; margin-top:14px; font-family:var(--display); font-weight:700; font-size:15px; color:var(--acc-hi); }
.fork__go:hover{ color:var(--acc); }
.fork__go .arr{ transition:transform .18s; }
.fork__go:hover .arr{ transform:translateY(3px); }
@media(max-width:640px){ .fork__opt{ flex:1 1 100%; text-align:left; } }
/* ============================================================
   v36 · Antes/Después: pestañas solo en móvil
   ============================================================ */
.ad-tabs{ display:none; }
@media(max-width:760px){
  .ad-tabs{ display:flex; gap:8px; margin:26px 0 14px; }
  .ad-tab{ flex:1; font-family:var(--display); font-weight:700; font-size:14.5px; letter-spacing:.02em; padding:12px 10px; border-radius:10px; border:1px solid var(--hair); background:transparent; color:var(--ink-2); cursor:pointer; transition:background .18s, color .18s, border-color .18s; }
  .ad-tab.on{ background:var(--acc); border-color:var(--acc); color:var(--acc-ink); }
  .ad--tabbed{ margin-top:0; }
  .ad--tabbed.ad--hoy .adcol--sis{ display:none; }
  .ad--tabbed.ad--sis .adcol--hoy{ display:none; }
  .ad--tabbed .adcol{ animation:fork-in .4s cubic-bezier(.2,.8,.2,1) both; }
}
/* ============================================================
   v38 · palancas plegables en móvil
   ============================================================ */
@media(max-width:760px){
  .palanca--fold .palanca__num{ cursor:pointer; position:relative; padding-right:34px; }
  .palanca--fold .palanca__num::after{ content:""; position:absolute; right:6px; top:50%; width:10px; height:10px; border-right:2px solid var(--ink-3); border-bottom:2px solid var(--ink-3); transform:translateY(-70%) rotate(45deg); transition:transform .25s; }
  .palanca--fold:not(.is-closed) .palanca__num::after{ transform:translateY(-30%) rotate(-135deg); border-color:var(--acc); }
  .palanca--fold.is-closed .palanca__body{ display:none; }
  .palanca--fold:not(.is-closed) .palanca__body{ animation:fork-in .4s cubic-bezier(.2,.8,.2,1) both; }
}
/* ============================================================
   v39 · La prueba de las fugas + recorrido A→B
   ============================================================ */
.fugas{ max-width:760px; margin:44px auto 0; background:var(--panel); border:1px solid var(--hair); border-radius:18px; padding:clamp(24px,4vw,38px); }
.fugas__head{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:24px; }
.fugas__count{ font-family:var(--body); font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-2); border:1px solid var(--hair); border-radius:999px; padding:7px 14px; }
.fugas__count b{ color:var(--acc); font-weight:700; }
.fugas__dots{ display:flex; gap:7px; }
.fdot{ width:9px; height:9px; border-radius:50%; background:var(--hair); transition:background .3s; }
.fdot.on{ background:var(--acc); }
.fugas__eje{ font-family:var(--body); font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-3); margin-bottom:10px; }
.fugas__q{ font-family:var(--display); font-weight:700; font-size:clamp(19px,2.4vw,25px); letter-spacing:-.01em; margin-bottom:18px; }
.fugas__opts{ display:flex; flex-wrap:wrap; gap:10px; }
.fugas__opt{ font-family:var(--body); font-size:15px; color:var(--ink-2); background:transparent; border:1px solid var(--hair); border-radius:999px; padding:12px 20px; cursor:pointer; transition:border-color .18s, color .18s, background .18s, transform .16s, opacity .3s; }
.fugas__opt:hover:not(:disabled){ border-color:var(--acc); color:var(--ink); }
.fugas__opt:active{ transform:scale(.97); }
.fugas__opt.on{ background:var(--acc); border-color:var(--acc); color:var(--acc-ink); font-weight:500; }
.fugas__opt:disabled:not(.on){ opacity:.35; cursor:default; }
.fugas__echo{ margin-top:16px; padding-top:16px; border-top:1px solid var(--hair); font-size:15.5px; line-height:1.6; color:var(--ink-2); animation:fork-in .45s cubic-bezier(.2,.8,.2,1) both; }
.fugas__echo b{ color:var(--acc); }
.fugas__step{ animation:fork-in .45s cubic-bezier(.2,.8,.2,1) both; }
.fugas__end{ animation:fork-in .5s cubic-bezier(.2,.8,.2,1) both; display:grid; gap:18px; justify-items:start; }
.fugas__verdict{ font-size:16.5px; line-height:1.65; color:var(--ink-2); }
.fugas__verdict b{ color:var(--ink); }
.fugas__again{ font-family:var(--body); font-size:13px; color:var(--ink-3); background:none; border:none; cursor:pointer; text-decoration:underline; padding:0; }
.fugas__again:hover{ color:var(--ink-2); }
/* recorrido A→B */
.journey{ position:fixed; top:0; left:0; right:0; z-index:10001; height:3px; background:rgba(247,244,238,.07); pointer-events:none; }
.journey__fill{ height:100%; width:0; background:linear-gradient(90deg, var(--acc), var(--acc-hi)); transition:width .15s linear; }
.journey__label{ position:absolute; top:9px; right:12px; font-family:var(--body); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-3); background:rgba(11,11,13,.72); border:1px solid var(--hair); border-radius:999px; padding:4px 11px; backdrop-filter:blur(6px); }
.journey__label.tick{ animation:fork-in .4s ease both; }
@media(max-width:640px){ .journey__label{ display:none; } }
/* ============================================================
   v41 · golpes del problema con capa de dolor al pasar el cursor
   ============================================================ */
.hit--more{ position:relative; cursor:pointer; transition:border-color .2s, background .2s; }
.hit--more .hit__txt{ min-width:0; }
.hit__deep{ max-height:0; opacity:0; overflow:hidden; margin:0; transition:max-height .45s cubic-bezier(.22,1,.36,1), opacity .35s ease, margin .35s ease; font-size:14.5px; line-height:1.6; color:var(--ink-3); }
.hit__deep b{ color:var(--acc); }
.hit--more:hover, .hit--more:focus-visible, .hit--more.open{ border-color:var(--acc-line, var(--acc)); background:var(--panel-2, var(--panel)); }
.hit--more:hover .hit__deep, .hit--more:focus-visible .hit__deep, .hit--more.open .hit__deep{ max-height:180px; opacity:1; margin-top:10px; }
.hit__plus{ position:absolute; top:14px; right:16px; font-family:var(--display); font-weight:600; font-size:17px; line-height:1; color:var(--ink-3); transition:transform .3s, color .2s; }
.hit--more:hover .hit__plus, .hit--more.open .hit__plus{ transform:rotate(45deg); color:var(--acc); }
@media(hover:none){ .hit__plus{ color:var(--acc); } }
/* ============================================================
   v42 · puerta del calendario (cualificación)
   ============================================================ */
.calgate{ position:relative; }
.calgate__veil{ position:absolute; inset:0; z-index:5; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; text-align:center; padding:28px; background:rgba(11,11,13,.82); backdrop-filter:blur(9px); border-radius:inherit; transition:opacity .6s ease; }
.calgate__veil.off{ opacity:0; pointer-events:none; }
.calgate__lock{ width:54px; height:54px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--hair); color:var(--acc); background:var(--panel); }
.calgate__title{ font-family:var(--display); font-weight:800; font-size:clamp(19px,2.4vw,26px); letter-spacing:-.01em; color:var(--ink); max-width:26ch; }
.calgate__text{ font-size:15px; line-height:1.6; color:var(--ink-2); max-width:44ch; }
.calgate__link{ display:inline-flex; align-items:center; gap:8px; margin-top:6px; font-family:var(--display); font-weight:700; font-size:15px; color:var(--acc-hi); }
.calgate__link:hover{ color:var(--acc); }
/* v43 · destello del quiz cuando un CTA te manda a cualificarte */
.quiz.flash{ animation:quiz-flash 1.6s ease both; }
@keyframes quiz-flash{ 0%,100%{ box-shadow:0 0 0 0 transparent; } 25%{ box-shadow:0 0 0 3px var(--acc), 0 0 44px -8px var(--acc-glow); } 60%{ box-shadow:0 0 0 3px var(--acc-lo, var(--acc)), 0 0 30px -10px var(--acc-glow); } }
/* ============================================================
   v45 · mini-quiz modal de cualificación
   ============================================================ */
.gm{ position:fixed; inset:0; z-index:10002; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(11,11,13,.72); backdrop-filter:blur(9px); animation:fork-in .25s ease both; }
.gm__card{ position:relative; width:100%; max-width:500px; background:var(--panel); border:1px solid var(--hair); border-radius:18px; padding:clamp(26px,4vw,36px); box-shadow:0 30px 90px -20px rgba(0,0,0,.85); }
.gm__close{ position:absolute; top:12px; right:16px; background:none; border:none; color:var(--ink-3); font-size:26px; line-height:1; cursor:pointer; padding:4px; }
.gm__close:hover{ color:var(--ink); }
.gm__kicker{ font-family:var(--body); font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--acc); margin-bottom:8px; }
.gm__title{ font-family:var(--display); font-weight:800; font-size:clamp(20px,2.6vw,26px); letter-spacing:-.01em; margin-bottom:14px; }
.gm__dots{ display:flex; gap:7px; margin-bottom:20px; }
.gmdot{ width:9px; height:9px; border-radius:50%; background:var(--hair); transition:background .3s; }
.gmdot.on{ background:var(--acc); }
.gm__q{ font-family:var(--display); font-weight:700; font-size:19px; letter-spacing:-.01em; margin-bottom:16px; animation:fork-in .35s ease both; }
.gm__txt{ font-size:15px; line-height:1.6; color:var(--ink-2); margin-bottom:18px; animation:fork-in .35s ease both; }
.gm__opts{ display:flex; flex-wrap:wrap; gap:10px; }
.gm__opt{ font-family:var(--body); font-size:15px; color:var(--ink-2); background:transparent; border:1px solid var(--hair); border-radius:999px; padding:12px 20px; cursor:pointer; transition:border-color .18s, color .18s, transform .16s; animation:fork-in .35s ease both; }
.gm__opt:hover{ border-color:var(--acc); color:var(--ink); }
.gm__opt:active{ transform:scale(.97); }
.gm__btn2{ font-family:var(--display); font-weight:700; font-size:15px; color:var(--acc-ink); background:var(--acc); border:none; border-radius:10px; padding:12px 22px; cursor:pointer; }
@media(max-width:520px){ .gm{ align-items:flex-end; padding:0; } .gm__card{ border-radius:18px 18px 0 0; max-width:none; } }

