:root{
  --paper:#ffffff; --surface:#f2f5f2; --surface-2:#e7ece7;
  --ink:#0a0d0b; --ink-soft:#4a534e; --ink-faint:#5c6964; --rule:#d9ded9;
  --g900:#11301f; --g800:#1d5236; --g600:#2c7851; --g500:#3ea56b; --g400:#4bc481; --g200:#a9e9c1; --g50:#e8f7ee;
  --dark:#07120d; --dark-2:#0f1f18; --dark-rule:rgba(255,255,255,.12); --dark-soft:rgba(255,255,255,.74);
  --accent:#e0a91a;
  --brand:linear-gradient(120deg,var(--g800) 0%,var(--g600) 35%,var(--g400) 70%,var(--g200) 100%);
  --f-display:'Montserrat',system-ui,sans-serif;
  --f-body:'Montserrat',system-ui,sans-serif;
  --f-mono:'Montserrat',system-ui,sans-serif;
  --r:14px; --wrap:1200px; --fs:1;
}
html[data-big="on"]{ --fs:1.18; }
html[data-contrast="on"]{ --ink-soft:#1b2320; --ink-faint:#262e2a; --rule:#9aa39d; --dark-soft:#fff; }
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; overflow-x:clip; }
body{ margin:0; background:var(--paper); color:var(--ink-soft); font-family:var(--f-body); font-size:calc(1rem*var(--fs)); line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
h1,h2,h3{ font-family:var(--f-display); color:var(--ink); line-height:1.08; letter-spacing:-.025em; margin:0; font-weight:800; text-wrap:balance; }
p{ margin:0 0 1rem; }
a{ color:var(--g600); }
img{ max-width:100%; display:block; }
button{ font:inherit; }
:focus-visible{ outline:3px solid var(--g400); outline-offset:3px; border-radius:6px; }
::selection{ background:var(--g400); color:var(--ink); }
.wrap{ width:min(var(--wrap),100% - 32px); margin-inline:auto; }
.sr-only{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip{ position:fixed; left:16px; top:-60px; z-index:200; background:var(--ink); color:#fff; padding:10px 16px; border-radius:10px; text-decoration:none; font-weight:700; }
.skip:focus{ top:16px; }
.eyebrow{ font-family:var(--f-mono); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--g600); font-weight:700; display:inline-flex; align-items:center; gap:.6em; }
.eyebrow::before{ content:""; width:22px; height:2px; background:currentColor; }
.dark .eyebrow{ color:var(--g400); }
.h2{ font-size:clamp(2.2rem,5.2vw,4.4rem); }
.lead{ font-size:clamp(1.05rem,1.4vw,1.2rem); max-width:58ch; }
.dark .grad-text,.dark.grad-text{ --brand:linear-gradient(120deg,var(--g400),var(--g200)); }
.grad-text{ background:var(--brand); -webkit-background-clip:text; background-clip:text; color:transparent; }
section{ position:relative; }

/* ---------- Botones ---------- */
.btn{ --bg:var(--ink); --fg:#fff; display:inline-flex; align-items:center; gap:.6em; padding:1rem 1.5rem; border-radius:999px; background:var(--bg); color:var(--fg); text-decoration:none; font-weight:700; border:0; cursor:pointer; position:relative; overflow:hidden; isolation:isolate; transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s; will-change:transform; }
.btn::before{ content:""; position:absolute; inset:0; background:var(--brand); transform:translateY(101%); transition:transform .45s cubic-bezier(.7,0,.2,1); z-index:-1; }
.btn:hover::before,.btn:focus-visible::before{ transform:none; }
.btn:hover,.btn:focus-visible{ color:var(--ink); box-shadow:0 14px 40px -10px rgba(62,165,107,.6); }
.btn .arr{ transition:transform .3s; }
.btn:hover .arr{ transform:translateX(4px); }
.btn-ghost{ --bg:transparent; --fg:var(--ink); box-shadow:inset 0 0 0 2px var(--ink); }
.dark .btn{ --bg:#fff; --fg:var(--ink); }
.dark .btn-ghost{ --bg:transparent; --fg:#fff; box-shadow:inset 0 0 0 2px rgba(255,255,255,.6); }

/* ---------- Cabecera ---------- */
.progress{ position:fixed; inset:0 0 auto; height:3px; background:var(--brand); transform-origin:0 50%; transform:scaleX(0); z-index:120; }
.nav{ position:fixed; top:14px; left:50%; translate:-50% 0; width:min(1180px,100% - 24px); z-index:110; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 10px 10px 18px; border-radius:999px; background:rgba(255,255,255,.97); backdrop-filter:blur(18px) saturate(1.6); -webkit-backdrop-filter:blur(18px) saturate(1.6); border:1px solid rgba(10,13,11,.07); box-shadow:0 10px 30px -15px rgba(10,13,11,.25); transition:transform .5s cubic-bezier(.2,.8,.2,1), border-radius .3s; }
.nav.hide{ transform:translateY(-130%); }
.nav-logo img{ height:42px; width:auto; mix-blend-mode:multiply; display:block; }
@media (max-width:980px){ .nav-logo img{ height:36px; } }
.menu{ display:flex; align-items:center; gap:2px; list-style:none; margin:0; padding:0; }
.menu > li > a,.mega-btn{ display:flex; align-items:center; gap:6px; padding:.6rem .95rem; border-radius:999px; color:var(--ink); text-decoration:none; font-weight:600; font-size:.93rem; background:none; border:0; cursor:pointer; transition:background .2s; position:relative; }
.menu > li > a:hover,.mega-btn:hover,.mega-btn[aria-expanded="true"]{ background:var(--surface-2); }
.menu > li > a[aria-current="page"]::after,.mega-btn.current::after{ content:""; position:absolute; left:50%; bottom:3px; width:5px; height:5px; border-radius:50%; background:var(--g500); translate:-50% 0; }
.mega-btn svg{ transition:transform .35s cubic-bezier(.2,.8,.2,1); }
.mega-btn[aria-expanded="true"] svg{ transform:rotate(180deg); }
.mega{ position:absolute; top:calc(100% + 12px); left:0; right:0; display:grid; grid-template-columns:1fr 300px; gap:10px; padding:10px; background:#fff; border-radius:28px; border:1px solid rgba(10,13,11,.07); box-shadow:0 40px 80px -30px rgba(10,13,11,.4); opacity:0; visibility:hidden; transform:translateY(-10px) scale(.98); transform-origin:50% 0; transition:opacity .3s, transform .4s cubic-bezier(.2,.8,.2,1), visibility 0s .4s; }
.mega.open{ opacity:1; visibility:visible; transform:none; transition:opacity .3s, transform .4s cubic-bezier(.2,.8,.2,1); }
.mega-grid{ display:grid; grid-template-columns:1fr 1fr; gap:4px; list-style:none; margin:0; padding:0; }
.mega-item{ display:flex; gap:14px; padding:16px; border-radius:18px; text-decoration:none; color:var(--ink-soft); transition:background .25s; height:100%; }
a.mega-item:hover,a.mega-item:focus-visible{ background:var(--surface); }
.mega-item .mi-ic{ flex:none; width:46px; height:46px; border-radius:14px; display:grid; place-items:center; background:var(--g50); color:var(--g800); transition:transform .4s cubic-bezier(.2,.8,.2,1.4), background .3s; }
a.mega-item:hover .mi-ic{ transform:rotate(-8deg) scale(1.08); background:var(--brand); color:var(--ink); }
.mega-item b{ display:block; color:var(--ink); font-size:.98rem; margin-bottom:2px; }
.mega-item span.d{ display:block; font-size:.84rem; line-height:1.45; }
.mega-item .pr{ display:inline-block; margin-top:8px; font-family:var(--f-mono); font-size:.74rem; font-weight:700; color:var(--g800); background:var(--g50); padding:.15rem .5rem; border-radius:6px; }
.mega-item.soon{ opacity:.85; }
.mega-item.soon .pr{ background:#fbf1da; color:#7a5300; }
.mega-mi{ opacity:0; transform:translateY(8px); transition:opacity .35s, transform .45s cubic-bezier(.2,.8,.2,1); }
.mega.open .mega-mi{ opacity:1; transform:none; }
.mega.open .mega-mi:nth-child(2){ transition-delay:.04s; } .mega.open .mega-mi:nth-child(3){ transition-delay:.08s; } .mega.open .mega-mi:nth-child(4){ transition-delay:.12s; } .mega.open .mega-mi:nth-child(5){ transition-delay:.16s; } .mega.open .mega-mi:nth-child(6){ transition-delay:.2s; }
.mega-side{ border-radius:20px; background:var(--dark); color:var(--dark-soft); padding:26px; display:flex; flex-direction:column; gap:12px; position:relative; overflow:hidden; }
.mega-side::before{ content:""; position:absolute; width:260px; height:260px; right:-90px; top:-90px; border-radius:50%; background:var(--g400); filter:blur(70px); opacity:.45; }
.mega-side b{ color:#fff; font-family:var(--f-display); font-size:1.45rem; line-height:1.1; position:relative; }
.mega-side p{ margin:0 0 auto; font-size:.9rem; position:relative; }
.mega-side .btn{ --bg:#fff; --fg:var(--ink); align-self:start; position:relative; }
.mega-all{ grid-column:1/-1; display:flex; justify-content:space-between; align-items:center; gap:10px; padding:12px 16px; border-radius:16px; background:var(--surface); font-size:.86rem; }
.mega-all a{ font-weight:700; color:var(--g800); }
.menu-btn{ display:none; width:48px; height:48px; border-radius:50%; background:var(--ink); color:#fff; border:0; cursor:pointer; position:relative; }
.menu-btn i{ position:absolute; left:15px; right:15px; height:2px; background:#fff; border-radius:2px; transition:transform .35s cubic-bezier(.2,.8,.2,1), top .35s; }
.menu-btn i:nth-child(1){ top:19px; } .menu-btn i:nth-child(2){ top:27px; }
.menu-btn[aria-expanded="true"] i:nth-child(1){ top:23px; transform:rotate(45deg); }
.menu-btn[aria-expanded="true"] i:nth-child(2){ top:23px; transform:rotate(-45deg); }
@media (max-width:980px){
  .menu-btn{ display:block; }
  .nav-cta{ display:none!important; }
  .nav > nav{ position:fixed; top:74px; left:0; right:0; max-height:calc(100dvh - 90px); overflow-y:auto; background:#fff; border-radius:26px; padding:10px; box-shadow:0 40px 80px -30px rgba(0,0,0,.4); opacity:0; visibility:hidden; transform:translateY(-10px); transition:opacity .3s, transform .4s cubic-bezier(.2,.8,.2,1), visibility 0s .4s; }
  .nav.open > nav{ opacity:1; visibility:visible; transform:none; transition:opacity .3s, transform .4s cubic-bezier(.2,.8,.2,1); }
  .menu{ flex-direction:column; align-items:stretch; }
  .menu > li > a,.mega-btn{ width:100%; justify-content:space-between; padding:1rem 1.1rem; font-size:1.1rem; border-radius:16px; }
  .menu > li > a[aria-current="page"]::after,.mega-btn.current::after{ left:auto; right:16px; bottom:auto; top:50%; translate:0 -50%; }
  .mega{ position:static; display:none; grid-template-columns:1fr; box-shadow:none; border:0; padding:0 0 8px; opacity:1; visibility:visible; transform:none; }
  .mega.open{ display:grid; }
  .mega-grid{ grid-template-columns:1fr; }
  .mega-side{ display:none; }
  .menu-cta-m{ display:block!important; padding:10px 6px 4px; }
  .menu-cta-m .btn{ width:100%; justify-content:center; }
}
.menu-cta-m{ display:none; }


/* ---------- Hero ---------- */
.hero{ min-height:100svh; display:grid; align-items:center; padding:130px 0 80px; overflow:hidden; }
.hero-bg{ position:absolute; inset:0; z-index:-1; pointer-events:none; }
.hero-bg .grid{ position:absolute; inset:0; background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px); background-size:64px 64px; mask-image:radial-gradient(ellipse 80% 60% at 50% 30%,#000 30%,transparent 75%); opacity:.55; }
.blob{ position:absolute; border-radius:50%; filter:blur(70px); opacity:.55; }
.blob.b1{ width:520px; height:520px; background:var(--g200); right:-120px; top:8%; }
.blob.b2{ width:380px; height:380px; background:#bfe9ff; left:-120px; bottom:-60px; opacity:.4; }
.blob.b3{ width:260px; height:260px; background:var(--g400); right:30%; bottom:10%; opacity:.25; }
.hero-in{ display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center; }
.hero h1{ font-size:clamp(2.9rem,7.6vw,6.6rem); }
[data-lines] .line{ display:block; overflow:hidden; padding-bottom:.06em; }
[data-lines] .line > span{ display:inline-block; }
.ratio-pill{ display:inline-flex; align-items:center; gap:.7rem; padding:.45rem .9rem .45rem .5rem; border-radius:999px; background:#fff; border:1px solid var(--rule); margin-bottom:1.6rem; font-size:.88rem; color:var(--ink); font-weight:600; box-shadow:0 6px 20px -12px rgba(0,0,0,.3); }
.ratio-pill b{ font-family:var(--f-mono); background:var(--ink); color:var(--g400); padding:.2rem .6rem; border-radius:999px; font-size:.82rem; }
.hero .lead{ margin:1.6rem 0 2.2rem; }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:12px; }
.hero-facts{ display:flex; flex-wrap:wrap; gap:10px 26px; margin-top:2.2rem; padding:0; list-style:none; font-size:.92rem; color:var(--ink); font-weight:600; }
.hero-facts li{ display:flex; align-items:center; gap:.5rem; }
.hero-facts li::before{ content:""; width:18px; height:18px; border-radius:50%; background:var(--g50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f7a4d' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/11px no-repeat; }

/* Mock interactivo del hero: la web "rota" se arregla sola */
.mock{ position:relative; border-radius:20px; background:#fff; border:1px solid var(--rule); box-shadow:0 50px 100px -40px rgba(10,40,25,.45),0 0 0 8px rgba(255,255,255,.6); overflow:hidden; transform-style:preserve-3d; }
.mock-bar{ display:flex; align-items:center; gap:6px; padding:12px 14px; border-bottom:1px solid var(--rule); background:var(--surface); }
.mock-bar i{ width:10px; height:10px; border-radius:50%; background:var(--rule); }
.mock-bar span{ margin-left:10px; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-family:var(--f-mono); font-size:.72rem; color:var(--ink-faint); background:#fff; border-radius:8px; padding:4px 10px; }
.mock-body{ padding:26px; display:grid; gap:14px; }
.mock .m-h{ font-family:var(--f-display); font-weight:800; font-size:1.5rem; line-height:1.1; color:var(--m-ink,#c8ccc9); transition:color .6s; }
.mock .m-p{ font-size:.85rem; color:var(--m-soft,#d5d8d6); transition:color .6s; }
.mock .m-btn{ justify-self:start; padding:.7rem 1.1rem; border-radius:10px; font-weight:700; font-size:.85rem; background:var(--m-btn,#a9e3c4); color:var(--m-btn-fg,#e9f7ef); transition:all .6s; outline:var(--m-focus,0 solid transparent); outline-offset:3px; }
.mock .m-img{ height:90px; border-radius:12px; background:linear-gradient(135deg,#dfe7e2,#f0f3f1); position:relative; }
.mock .m-img::after{ content:var(--m-alt,""); position:absolute; left:10px; bottom:8px; font-family:var(--f-mono); font-size:.7rem; color:var(--g800); background:#fff; padding:2px 8px; border-radius:6px; opacity:var(--m-alt-o,0); transition:opacity .6s; }
.mock-score{ flex:none; margin-left:8px; font-family:var(--f-mono); font-weight:700; font-size:.74rem; padding:.3rem .6rem; border-radius:8px; white-space:nowrap; background:var(--m-score-bg,#fde4e4); color:var(--m-score,#9b1c1c); transition:all .6s; }
.mock-issues{ list-style:none; margin:0; padding:14px 26px 22px; display:grid; gap:8px; border-top:1px dashed var(--rule); }
.mock-issues li{ display:flex; justify-content:space-between; gap:12px; font-size:.78rem; font-weight:600; color:var(--ink); }
.mock-issues li b{ font-family:var(--f-mono); font-size:.72rem; padding:.1rem .5rem; border-radius:6px; background:#fde4e4; color:#9b1c1c; transition:all .4s; }
.mock-issues li.ok b{ background:var(--g50); color:var(--g800); }
.mock.fixed{ --m-ink:var(--ink); --m-soft:var(--ink-soft); --m-btn:var(--g800); --m-btn-fg:#fff; --m-score:var(--g800); --m-score-bg:var(--g50); --m-alt:"alt: equipo revisando la web"; --m-alt-o:1; --m-focus:3px solid var(--g400); }
.mock-switch{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:16px; font-size:.86rem; color:var(--ink); font-weight:600; }
.toggle{ position:relative; width:58px; height:32px; border-radius:999px; border:0; background:var(--surface-2); cursor:pointer; transition:background .3s; flex:none; }
.toggle::after{ content:""; position:absolute; top:4px; left:4px; width:24px; height:24px; border-radius:50%; background:#fff; box-shadow:0 2px 6px rgba(0,0,0,.2); transition:transform .35s cubic-bezier(.2,.8,.2,1.2); }
.toggle[aria-pressed="true"]{ background:var(--g600); }
.toggle[aria-pressed="true"]::after{ transform:translateX(26px); }
.scroll-cue{ position:absolute; left:50%; bottom:22px; translate:-50% 0; font-family:var(--f-mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); display:flex; flex-direction:column; align-items:center; gap:8px; }
.scroll-cue i{ width:2px; height:38px; background:linear-gradient(var(--g600),transparent); animation:cue 1.8s infinite; transform-origin:top; }
@keyframes cue{ 0%{transform:scaleY(0)} 50%{transform:scaleY(1)} 100%{transform:scaleY(1);opacity:0} }
@media (max-width:900px){ .hero-in{ grid-template-columns:1fr; } .scroll-cue{ display:none; } }

/* ---------- Marquee de normas ---------- */
.marquee{ background:var(--ink); color:#fff; padding:22px 0; overflow:hidden; transform:rotate(-1.5deg); margin:40px -20px; }
.marquee-track{ display:flex; gap:48px; width:max-content; animation:mq 32s linear infinite; }
.marquee span{ font-family:var(--f-display); font-weight:700; font-size:clamp(1.3rem,2.6vw,2rem); white-space:nowrap; display:flex; align-items:center; gap:48px; }
.marquee span::after{ content:"✦"; color:var(--g400); font-size:.8em; }
@keyframes mq{ to{ transform:translateX(-50%); } }
.marquee:hover .marquee-track{ animation-play-state:paused; }

/* ---------- Estadística 1 de cada 4 ---------- */
.people{ padding:140px 0; }
.people-in{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.people .big{ font-family:var(--f-display); font-weight:800; font-size:clamp(5rem,14vw,11rem); line-height:.85; letter-spacing:-.05em; color:var(--ink); }
.dots{ display:grid; grid-template-columns:repeat(10,1fr); gap:clamp(6px,1vw,12px); }
.dot{ aspect-ratio:1; border-radius:50%; background:var(--surface-2); transition:background .5s, transform .5s cubic-bezier(.2,.8,.2,1.4); }
.dot.on{ background:var(--g500); transform:scale(1.12); }
.people small{ display:block; font-size:.8rem; color:var(--ink-faint); margin-top:14px; }
@media (max-width:800px){ .people-in{ grid-template-columns:1fr; } }

/* ---------- Razones (scroll horizontal fijado) ---------- */
.why{ background:var(--dark); color:var(--dark-soft); overflow:hidden; }
.why h2,.why h3{ color:#fff; }
.why-pin{ min-height:100vh; display:flex; flex-direction:column; justify-content:center; padding:110px 0 60px; }
.why-head{ display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:46px; }
.why-count{ font-family:var(--f-mono); color:var(--g400); font-size:.9rem; white-space:nowrap; }
.why-track{ display:flex; gap:22px; padding-left:max(16px,(100vw - var(--wrap))/2); padding-right:16px; width:max-content; will-change:transform; }
.why-card{ width:min(400px,80vw); min-height:360px; flex:none; border-radius:22px; padding:30px; background:var(--dark-2); border:1px solid var(--dark-rule); display:flex; flex-direction:column; position:relative; overflow:hidden; }
.why-card::before{ content:""; position:absolute; inset:0; background:radial-gradient(400px circle at var(--mx,50%) var(--my,0%),rgba(51,207,125,.18),transparent 45%); opacity:0; transition:opacity .4s; }
.why-card:hover::before{ opacity:1; }
.why-card .n{ font-family:var(--f-mono); font-size:.8rem; color:var(--g400); }
.why-card .ic{ width:58px; height:58px; border-radius:16px; display:grid; place-items:center; background:var(--brand); color:var(--ink); margin:26px 0 auto; }
.why-card h3{ font-size:1.55rem; margin:26px 0 12px; }
.why-card p{ font-size:.95rem; margin:0; }
.why-card.feature{ background:var(--brand); }
.why-card.feature,.why-card.feature h3,.why-card.feature .n{ color:var(--ink); }
.why-card.feature .ic{ background:var(--ink); color:var(--g400); }
.no-pin .why-track{ width:auto; flex-wrap:wrap; padding-inline:16px; justify-content:center; }

/* ---------- Simulador "así la ven ellos" ---------- */
.sim{ padding:140px 0; }
.sim-in{ display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:center; }
.sim-tabs{ display:grid; gap:10px; margin-top:30px; }
.sim-tab{ text-align:left; display:flex; gap:16px; align-items:center; padding:16px 18px; border-radius:16px; border:1px solid var(--rule); background:#fff; cursor:pointer; color:var(--ink); transition:border-color .3s, box-shadow .3s, transform .3s; }
.sim-tab:hover{ transform:translateX(6px); }
.sim-tab[aria-selected="true"]{ border-color:var(--g600); box-shadow:0 0 0 3px var(--g50), 0 14px 30px -18px rgba(31,122,77,.6); }
.sim-tab .ic{ width:44px; height:44px; border-radius:12px; background:var(--surface); display:grid; place-items:center; flex:none; color:var(--g800); transition:background .3s; }
.sim-tab[aria-selected="true"] .ic{ background:var(--g600); color:#fff; }
.sim-tab b{ display:block; font-size:1rem; }
.sim-tab span{ font-size:.84rem; color:var(--ink-faint); }
.sim-stage{ position:relative; border-radius:24px; background:var(--surface); padding:30px; min-height:440px; overflow:hidden; }
.sim-view{ background:#fff; border-radius:16px; padding:26px; box-shadow:0 30px 60px -30px rgba(0,0,0,.35); transition:filter .7s ease; }
.sim-view h3{ font-size:1.6rem; margin-bottom:8px; }
.sim-view .row{ display:flex; gap:10px; margin-top:16px; flex-wrap:wrap; }
.sim-view .chip{ padding:.5rem .9rem; border-radius:10px; font-size:.82rem; font-weight:700; }
.sim-view .c1{ background:#e0357a; color:#fff; } .sim-view .c2{ background:#2fae6c; color:#fff; } .sim-view .c3{ background:#ef7d1f; color:#fff; }
.sim-view .ph{ height:110px; border-radius:12px; background:linear-gradient(120deg,#ffd7a8,#ff9fb2 40%,#9fd8ff); margin-bottom:18px; }
.sim-note{ margin-top:20px; font-size:.92rem; color:var(--ink); background:#fff; border-left:4px solid var(--g500); padding:14px 16px; border-radius:0 12px 12px 0; min-height:72px; }
.sim-stage[data-mode="blur"] .sim-view{ filter:blur(2.6px) contrast(.8); }
.sim-stage[data-mode="color"] .sim-view{ filter:url(#deutan); }
.sim-stage[data-mode="tunnel"] .sim-view{ filter:none; }
.sim-tunnel{ position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle 120px at var(--tx,50%) var(--ty,45%),transparent 0,transparent 60%,#000 100%); opacity:0; transition:opacity .6s; }
.sim-stage[data-mode="tunnel"] .sim-tunnel{ opacity:.96; }
.sim-reader{ position:absolute; left:30px; right:30px; bottom:30px; background:var(--ink); color:#fff; border-radius:14px; padding:14px 16px; font-family:var(--f-mono); font-size:.78rem; opacity:0; transform:translateY(20px); transition:all .5s; }
.sim-reader b{ color:#ff9a9a; }
.sim-stage[data-mode="reader"] .sim-reader{ opacity:1; transform:none; }
@media (max-width:900px){ .sim-in{ grid-template-columns:1fr; } }

/* ---------- Antes / Después ---------- */
.ba{ padding:40px 0 140px; }
.ba-box{ position:relative; border-radius:24px; overflow:hidden; aspect-ratio:16/7; min-height:320px; user-select:none; touch-action:pan-y; box-shadow:0 40px 90px -40px rgba(0,0,0,.4); }
@media (max-width:700px){ .ba-box{ aspect-ratio:auto; height:380px; min-height:0; } }
.ba-pane{ position:absolute; inset:0; display:grid; place-items:center; padding:30px; text-align:center; }
.ba-before{ background:#f4f4f2; }
.ba-before .t{ color:#c4c7c4; } .ba-before .b{ background:#bfe8d1; color:#f2fbf6; }
.ba-after{ background:var(--paper); clip-path:inset(0 0 0 50%); }
.ba-after .t{ color:var(--ink); } .ba-after .b{ background:var(--g800); color:#fff; outline:3px solid var(--g400); outline-offset:3px; }
.ba-pane .t{ font-family:var(--f-display); font-weight:800; font-size:clamp(1.8rem,4vw,3.4rem); line-height:1; letter-spacing:-.03em; }
.ba-pane .b{ display:inline-block; margin-top:22px; padding:1rem 1.6rem; border-radius:12px; font-weight:700; }
.ba-tag{ position:absolute; top:18px; font-family:var(--f-mono); font-size:.75rem; font-weight:700; padding:.4rem .7rem; border-radius:8px; }
.ba-before .ba-tag{ left:18px; background:#fde4e4; color:#9b1c1c; }
.ba-after .ba-tag{ right:18px; background:var(--g50); color:var(--g800); }
.ba-handle{ position:absolute; top:0; bottom:0; left:50%; width:3px; background:#fff; translate:-50% 0; box-shadow:0 0 0 1px rgba(0,0,0,.08); }
.ba-handle::after{ content:"⇆"; position:absolute; top:50%; left:50%; translate:-50% -50%; width:54px; height:54px; border-radius:50%; background:#fff; display:grid; place-items:center; font-size:1.3rem; color:var(--ink); box-shadow:0 10px 30px rgba(0,0,0,.25); }
.ba-range{ position:absolute; inset:0; opacity:0; cursor:ew-resize; width:100%; height:100%; margin:0; }
.ba-range:focus-visible + .ba-handle::after{ outline:3px solid var(--g400); outline-offset:3px; }

/* ---------- Herramienta de contraste ---------- */
.tool{ padding:0 0 140px; }
.tool-box{ display:grid; grid-template-columns:1fr 1fr; border-radius:28px; overflow:hidden; border:1px solid var(--rule); background:#fff; }
.tool-ctl{ padding:40px; display:grid; gap:24px; align-content:start; }
.tool-ctl label{ font-weight:700; color:var(--ink); font-size:.9rem; display:block; margin-bottom:10px; }
.swatches{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.sw{ width:44px; height:44px; border-radius:12px; border:2px solid var(--rule); cursor:pointer; transition:transform .2s; }
.sw:hover{ transform:translateY(-3px); }
.sw[aria-pressed="true"]{ box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--g600); }
.swatches input[type=color]{ width:44px; height:44px; border:2px dashed var(--rule); border-radius:12px; padding:2px; background:#fff; cursor:pointer; }
.tool-out{ display:grid; place-items:center; padding:40px; text-align:center; transition:background .4s,color .4s; min-height:360px; }
.tool-out .ratio{ font-family:var(--f-mono); font-weight:700; font-size:clamp(3.4rem,7vw,5.6rem); line-height:1; letter-spacing:-.04em; }
.tool-out .sample{ font-family:var(--f-display); font-weight:700; font-size:1.4rem; margin:14px 0 18px; }
.badges{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
.badge{ font-family:var(--f-mono); font-size:.74rem; font-weight:700; padding:.35rem .6rem; border-radius:8px; background:#fff; color:var(--ink); border:1px solid rgba(0,0,0,.12); }
.badge.fail{ background:#9b1c1c; color:#fff; border-color:#9b1c1c; }
.badge.pass{ background:var(--g800); color:#fff; border-color:var(--g800); }
@media (max-width:800px){ .tool-box{ grid-template-columns:1fr; } }

/* ---------- Proceso (línea que se dibuja) ---------- */
.proc{ padding:140px 0; background:var(--surface); }
.proc-list{ position:relative; margin:70px auto 0; max-width:900px; list-style:none; padding:0; }
.proc-line{ position:absolute; left:31px; top:10px; bottom:10px; width:3px; background:var(--surface-2); border-radius:3px; }
.proc-line i{ position:absolute; inset:0; background:var(--brand); transform-origin:top; transform:scaleY(0); border-radius:3px; }
.proc-step{ position:relative; display:grid; grid-template-columns:64px 1fr; gap:28px; padding:0 0 64px; }
.proc-step:last-child{ padding-bottom:0; }
.proc-num{ width:64px; height:64px; border-radius:50%; display:grid; place-items:center; background:#fff; border:3px solid var(--surface-2); font-family:var(--f-mono); font-weight:700; color:var(--ink-faint); z-index:1; transition:all .5s; }
.proc-step.active .proc-num{ background:var(--ink); border-color:var(--g400); color:var(--g400); transform:scale(1.08); }
.proc-card{ background:#fff; border-radius:20px; padding:26px 30px; border:1px solid var(--rule); transition:box-shadow .5s, transform .5s; }
.proc-step.active .proc-card{ box-shadow:0 30px 60px -30px rgba(10,40,25,.35); }
.proc-card .when{ font-family:var(--f-mono); font-size:.76rem; color:var(--g600); font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.proc-card h3{ font-size:1.6rem; margin:6px 0 8px; }
.proc-card p{ margin:0; }

/* ---------- Servicios (tarjetas apiladas) ---------- */
.svc{ padding:140px 0 60px; }
.svc-stack{ margin-top:60px; display:grid; gap:28px; }
.svc-card{ position:sticky; top:110px; display:grid; grid-template-columns:1.1fr .9fr; gap:40px; padding:44px; border-radius:30px; min-height:420px; border:1px solid var(--rule); background:#fff; box-shadow:0 -20px 50px -30px rgba(0,0,0,.25); transform-origin:50% 0; overflow:hidden; }
.svc-card:nth-child(2){ top:130px; background:#f6fbf8; }
.svc-card:nth-child(3){ top:150px; background:#f3f7fd; }
.svc-card:nth-child(4){ top:170px; background:var(--dark); border-color:var(--dark); color:var(--dark-soft); }
.svc-card:nth-child(4) h3,.svc-card:nth-child(4) .price{ color:#fff; }
.svc-card .tag{ font-family:var(--f-mono); font-size:.76rem; font-weight:700; color:var(--g600); letter-spacing:.08em; text-transform:uppercase; }
.svc-card:nth-child(4) .tag{ color:var(--g400); }
.svc-card h3{ font-size:clamp(1.9rem,3.6vw,3rem); margin:12px 0 16px; }
.svc-card ul{ list-style:none; padding:0; margin:22px 0 0; display:grid; gap:10px; }
.svc-card li{ display:flex; gap:10px; align-items:start; font-size:.95rem; }
.svc-card li::before{ content:"→"; color:var(--g500); font-weight:700; }
.svc-side{ display:flex; flex-direction:column; justify-content:space-between; gap:24px; border-left:1px dashed var(--rule); padding-left:40px; }
.svc-card:nth-child(4) .svc-side{ border-color:var(--dark-rule); }
.price{ font-family:var(--f-mono); color:var(--ink); font-weight:700; font-size:clamp(2.6rem,5vw,4rem); letter-spacing:-.04em; line-height:1; }
.price small{ font-size:.9rem; letter-spacing:0; color:var(--ink-faint); font-weight:500; }
.svc-card:nth-child(4) .price small{ color:var(--dark-soft); }
.svc-big-ic{ width:84px; height:84px; border-radius:24px; display:grid; place-items:center; background:var(--brand); color:var(--ink); }
@media (max-width:800px){ .svc-card{ grid-template-columns:1fr; padding:28px; position:relative; top:auto!important; } .svc-side{ border-left:0; padding-left:0; border-top:1px dashed var(--rule); padding-top:24px; } }

/* ---------- Planes ---------- */
.plans{ padding:100px 0 140px; }
.plans-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:56px; align-items:stretch; }
.plan{ border-radius:26px; padding:34px; background:#fff; border:1px solid var(--rule); display:flex; flex-direction:column; gap:16px; transition:transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s; transform-style:preserve-3d; }
.plan:hover{ box-shadow:0 40px 80px -40px rgba(10,40,25,.45); }
.plan.hot{ background:var(--ink); color:var(--dark-soft); border-color:var(--ink); position:relative; }
.plan.hot h3,.plan.hot .price{ color:#fff; }
.plan.hot .price small{ color:var(--dark-soft); }
.plan .ribbon{ position:absolute; top:-14px; left:34px; background:var(--brand); color:var(--ink); font-weight:800; font-size:.76rem; padding:.4rem .8rem; border-radius:999px; }
.plan h3{ font-size:1.5rem; }
.plan ul{ list-style:none; padding:0; margin:0 0 auto; display:grid; gap:10px; font-size:.93rem; }
.plan li{ display:flex; gap:10px; }
.plan li::before{ content:"✓"; color:var(--g500); font-weight:800; }
.plan .btn{ justify-content:center; }
.plans-note{ text-align:center; margin-top:28px; font-size:.9rem; }
@media (max-width:900px){ .plans-grid{ grid-template-columns:1fr; } }

/* ---------- Panel en vivo ---------- */
.live{ padding:0 0 140px; }
.live-box{ border-radius:30px; padding:clamp(28px,5vw,60px); background:linear-gradient(120deg,var(--g200) 0%,#c9f5dc 45%,var(--g400) 100%); color:var(--ink); display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; position:relative; overflow:hidden; }
.live-box h2{ font-size:clamp(2rem,4vw,3.2rem); }
.live-box p{ color:var(--ink); }
.live-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.live-btn{ display:flex; flex-direction:column; align-items:start; gap:4px; padding:18px; border-radius:18px; border:2px solid rgba(10,13,11,.15); background:rgba(255,255,255,.7); cursor:pointer; text-align:left; color:var(--ink); transition:all .3s; }
.live-btn:hover{ background:#fff; transform:translateY(-3px); }
.live-btn b{ font-size:1rem; }
.live-btn span{ font-size:.8rem; }
.live-btn[aria-pressed="true"]{ background:var(--ink); color:#fff; border-color:var(--ink); }
.live-status{ grid-column:1/-1; font-size:.85rem; font-weight:600; min-height:1.4em; }
@media (max-width:800px){ .live-box{ grid-template-columns:1fr; } }

/* ---------- FAQ ---------- */
.faq{ padding:0 0 140px; }
.faq-in{ display:grid; grid-template-columns:.8fr 1.2fr; gap:60px; }
.faq details{ border-bottom:1px solid var(--rule); }
.faq summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:20px; align-items:center; padding:26px 0; font-family:var(--f-display); font-weight:700; font-size:clamp(1.1rem,1.8vw,1.35rem); color:var(--ink); }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary .pm{ width:40px; height:40px; border-radius:50%; background:var(--surface); flex:none; position:relative; transition:background .3s, transform .4s; }
.faq summary .pm::before,.faq summary .pm::after{ content:""; position:absolute; left:50%; top:50%; width:14px; height:2px; background:var(--ink); translate:-50% -50%; transition:transform .4s; }
.faq summary .pm::after{ transform:rotate(90deg); }
.faq details[open] .pm{ background:var(--g400); transform:rotate(180deg); }
.faq details[open] .pm::after{ transform:rotate(0); }
.faq .ans{ overflow:hidden; }
.faq .ans p{ padding:0 60px 26px 0; margin:0; }
@media (max-width:800px){ .faq-in{ grid-template-columns:1fr; } .faq .ans p{ padding-right:0; } }

/* ---------- CTA final ---------- */
.cta{ background:var(--dark); color:var(--dark-soft); padding:160px 0; overflow:hidden; text-align:center; }
.cta h2{ color:#fff; font-size:clamp(2.8rem,8vw,7.4rem); }
.cta h2 .word{ display:inline-block; }
.cta .lead{ margin:28px auto 40px; color:var(--dark-soft); }
.cta-orb{ position:absolute; width:900px; height:900px; left:50%; top:50%; translate:-50% -50%; background:conic-gradient(from 0deg,var(--g800),var(--g400),var(--g200),var(--g600),var(--g800)); border-radius:50%; filter:blur(120px); opacity:.35; animation:spin 18s linear infinite; z-index:0; }
.cta .wrap{ position:relative; z-index:1; }
@keyframes spin{ to{ rotate:360deg; } }

/* ---------- Footer ---------- */
footer{ background:var(--dark); color:var(--dark-soft); padding:70px 0 34px; border-top:1px solid var(--dark-rule); font-size:.92rem; }
.foot{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; }
.foot .logo{ background:#fff; border-radius:14px; padding:10px 14px; display:inline-block; }
.foot .logo img{ height:42px; width:auto; }
footer .fh{ color:#fff; font-family:var(--f-mono); font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:16px; }
footer ul{ list-style:none; padding:0; margin:0; display:grid; gap:8px; }
footer a{ color:var(--dark-soft); text-decoration:none; }
footer a:hover{ color:#fff; text-decoration:underline; }
.foot-bottom{ margin-top:50px; padding-top:24px; border-top:1px solid var(--dark-rule); display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; font-size:.82rem; }
@media (max-width:800px){ .foot{ grid-template-columns:1fr 1fr; } }

/* ---------- Cursor y utilidades de movimiento ---------- */
.cursor{ position:fixed; left:0; top:0; width:14px; height:14px; border-radius:50%; background:var(--g400); pointer-events:none; z-index:150; mix-blend-mode:multiply; translate:-50% -50%; transition:width .3s, height .3s, opacity .3s; opacity:0; }
.cursor.big{ width:64px; height:64px; opacity:.35; }
@media (hover:none){ .cursor{ display:none; } }
.sticky-cta{ position:fixed; right:18px; bottom:18px; z-index:100; transform:translateY(140%); transition:transform .5s cubic-bezier(.2,.8,.2,1); }
.sticky-cta.show{ transform:none; }
.sticky-cta .btn{ box-shadow:0 20px 40px -12px rgba(0,0,0,.45); }

/* Estado inicial de elementos animados: SOLO si el JS de movimiento ha cargado */
.motion [data-reveal]{ opacity:0; transform:translateY(40px); }
.motion [data-lines] .line > span{ transform:translateY(110%); }

html[data-motion="off"] *, html[data-motion="off"] *::before, html[data-motion="off"] *::after{ animation:none!important; transition:none!important; }
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation:none!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
}
