/* ============ SISTEMA — "Bitácora de producción" ============ */
:root{
  color-scheme:light;
  --paper:#ffffff; --soft:#f7f4f7; --soft2:#fbf9fb;
  --ink:#151317; --ink2:#272329; --muted:#6b6270;
  --line:rgba(21,19,23,.14); --line-soft:rgba(21,19,23,.08);
  --magenta:#d000a8; --magenta-text:#b0008d; --magenta-lume:#ff4fd0;
  --violet:#6f3e73; --qaas:#0757d9; --green:#1d9e6a;
  --deep:#151317; --text-2:#544c58; --surface:#ffffff;
  --nav-bg:rgba(255,255,255,.86); --nav-link:#463f49;
  --chip-text:#4c4550; --logo-mute:#6f6675; --step-num:#756c80; --deep-muted:#9c95a8;
  --models-bg:rgba(7,87,217,.045); --models-border:rgba(7,87,217,.3);
  --fit-yes-bg:rgba(29,158,106,.045);
  --grad-ink:linear-gradient(120deg,#d000a8,#6f3e73);
  --r-chip:3px; --r-card:10px; --r-pill:999px;
  --shadow-1:0 1px 2px rgba(21,19,23,.06);
  --shadow-hard:5px 5px 0 rgba(208,0,168,.22);
  --font-display:"Fraunces",Georgia,"Times New Roman",serif;
  --font-body:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --paper:#100e13; --soft:#171419; --soft2:#141117;
  --ink:#f0ecf2; --muted:#a89fb2;
  --line:rgba(240,236,242,.16); --line-soft:rgba(240,236,242,.09);
  --magenta-text:#ff4fd0;
  --qaas:#4d8dff; --green:#35c98a;
  --deep:#1a1521; --text-2:#c9c0d0; --surface:#191521;
  --nav-bg:rgba(16,14,19,.88); --nav-link:#d4cad9;
  --chip-text:#cfc6d6; --logo-mute:#948b9e; --step-num:#8d8496; --deep-muted:#9c95a8;
  --models-bg:rgba(77,141,255,.1); --models-border:rgba(77,141,255,.4);
  --fit-yes-bg:rgba(53,201,138,.09);
  --shadow-1:0 1px 2px rgba(0,0,0,.4);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }
body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--paper);line-height:1.55;font-size:16.5px;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
section{scroll-margin-top:76px}
.container{width:min(1180px,calc(100% - 44px));margin:0 auto}
.skip{position:absolute;left:-999px;top:0;background:#151317;color:#fff;padding:10px 16px;z-index:100;border-radius:0 0 8px 0}
.skip:focus{left:0}
:focus-visible{outline:2px solid var(--magenta);outline-offset:3px;border-radius:2px}

/* —— textura: grilla técnica + grain —— */
.grid-bg{position:relative}
.grid-bg::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image:radial-gradient(ellipse 90% 80% at 50% 20%,#000 30%,transparent 78%);
  mask-image:radial-gradient(ellipse 90% 80% at 50% 20%,#000 30%,transparent 78%);}
.grain{position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.035;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}

/* —— tipografía —— */
h1,h2,h3,p{margin:0}
h1{font-family:var(--font-display);font-weight:600;font-size:clamp(2.35rem,5.4vw,4.4rem);line-height:1.04;letter-spacing:-.02em}
h2{font-family:var(--font-display);font-weight:600;font-size:clamp(1.9rem,3.6vw,3.1rem);line-height:1.08;letter-spacing:-.015em;margin-bottom:16px}
h3{font-size:1.16rem;font-weight:600;letter-spacing:-.01em;margin-bottom:8px}
.lead{font-size:clamp(1.02rem,1.4vw,1.18rem);color:var(--text-2);max-width:56ch}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--magenta-text)}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--magenta);border-radius:2px}
.grad{background:var(--grad-ink);-webkit-background-clip:text;background-clip:text;color:transparent}
.mono{font-family:var(--font-mono)}
.section{padding:104px 0;position:relative}
.section-head{max-width:720px;margin-bottom:52px}

/* —— barra de progreso de scroll —— */
#progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--grad-ink);z-index:80}

/* ============ NAV ============ */
.nav{position:fixed;inset:0 0 auto;z-index:70;background:var(--nav-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.nav.scrolled{border-bottom-color:var(--line);box-shadow:0 6px 24px rgba(21,19,23,.05)}
.nav-in{display:flex;align-items:center;gap:28px;height:68px}
.brand{display:flex;align-items:center;gap:11px;font-family:var(--font-display);font-weight:600;font-size:1.22rem;letter-spacing:-.01em}
.brand-dot{width:30px;height:30px;border-radius:8px;background:var(--ink);display:grid;place-items:center;color:var(--magenta-lume);font-family:var(--font-mono);font-size:.72rem;font-weight:500}
.brand small{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.16em;color:var(--muted);display:block;margin-top:1px}
.nav-links{display:flex;gap:26px;margin-left:auto;align-items:center}
.nav-links a{font-size:.9rem;font-weight:500;color:var(--nav-link);position:relative;padding:6px 2px}
.nav-links a.btn-primary,.nav-links .btn-primary{color:#fff!important;padding:10px 22px!important}
.nav-links a.btn::after{display:none!important}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--magenta);transition:width .25s cubic-bezier(.2,0,0,1)}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.btn{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:.92rem;padding:11px 22px;border-radius:var(--r-pill);border:1px solid transparent;cursor:pointer;transition:transform .18s cubic-bezier(.2,0,0,1),box-shadow .18s,background .18s;white-space:nowrap}
.btn-primary{background:var(--grad-ink);color:#fff;box-shadow:0 10px 28px rgba(208,0,168,.28)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(208,0,168,.36)}
.btn-ghost{border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--magenta);color:var(--magenta-text)}
.btn-sm{padding:9px 18px;font-size:.85rem}
.nav-toggle{display:none;background:none;border:1px solid var(--line);border-radius:8px;padding:8px 11px;cursor:pointer;color:var(--ink)}
.theme-btn{margin-left:18px}
@media(max-width:920px){
  .nav-links{display:none;position:absolute;top:68px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:14px 22px 22px;gap:4px}
  .nav-links.open{display:flex}
  .nav-links a{padding:12px 6px;font-size:1rem;border-bottom:1px solid var(--line-soft)}
  .nav-links a.btn{border-bottom:none}
  .nav-links .btn{margin-top:12px;justify-content:center}
  .nav-toggle{display:block;margin-left:auto}
  .theme-btn{margin-left:12px}
}

/* ============ HERO ============ */
.hero{position:relative;padding:158px 0 92px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;align-items:center;position:relative}
.hero h1{margin:22px 0 24px}
.hero h1 .hl{display:block;overflow:hidden;padding-bottom:.16em;margin-bottom:-.16em}
.hero h1 .hl>span{display:block}
.hero .sub{font-size:clamp(1.05rem,1.5vw,1.2rem);color:var(--text-2);max-width:54ch;margin-bottom:34px}
.hero .sub strong{color:var(--ink);font-weight:600}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.hero-note{margin-top:16px;font-family:var(--font-mono);font-size:.74rem;color:var(--muted);letter-spacing:.01em}
.hero-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:30px}
.chip{font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.04em;padding:6px 12px;border:1px solid var(--line);border-radius:var(--r-chip);color:var(--chip-text);background:var(--soft2)}
.chip.hot{border-color:rgba(208,0,168,.4);color:var(--magenta-text);background:rgba(208,0,168,.05)}

/* spotlight cursor (solo desktop) */
.spot{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;
  background:radial-gradient(520px circle at var(--mx,50%) var(--my,40%),rgba(208,0,168,.07),transparent 65%)}
@media(hover:hover) and (pointer:fine){ .spot{opacity:1} }

/* —— panel de telemetría (hero) —— */
.panel{background:var(--ink);border:1px solid rgba(255,255,255,.09);border-radius:14px;box-shadow:var(--shadow-hard);overflow:hidden;position:relative}
.panel::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 85% -10%,rgba(208,0,168,.16),transparent 55%)}
.panel-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.08)}
.panel-bar i{width:10px;height:10px;border-radius:50%;background:#3a3440}
.panel-bar i:first-child{background:var(--magenta)}
.panel-bar span{margin-left:auto;font-family:var(--font-mono);font-size:.68rem;color:#8d8396;letter-spacing:.1em}
.panel-body{padding:20px 20px 16px}
.panel-title{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.16em;color:var(--magenta-lume);text-transform:uppercase;margin-bottom:14px}
.miniheat{display:grid;grid-template-columns:repeat(13,1fr);gap:4px;margin-bottom:18px}
.miniheat b{display:block;height:17px;border-radius:2px;background:rgba(208,0,168,.14);animation:cellwave 3.2s ease-in-out infinite;animation-delay:var(--d,0s)}
@keyframes cellwave{0%,100%{opacity:.35}50%{opacity:1}}
.panel-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.pstat{border:1px solid rgba(255,255,255,.09);border-radius:8px;padding:12px 12px 10px;background:rgba(255,255,255,.025)}
.pstat b{font-family:var(--font-mono);font-weight:500;font-size:1.5rem;color:#fff;display:block;font-variant-numeric:tabular-nums}
.pstat span{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.08em;color:#9a8fa4;text-transform:uppercase}
.term{font-family:var(--font-mono);font-size:.73rem;line-height:1.75;color:#b9aec4;border-top:1px solid rgba(255,255,255,.08);padding-top:12px;height:104px;overflow:hidden}
.term .ln{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.term .ok{color:var(--green)}
.term .tm{color:var(--deep-muted)}
.term .cur{display:inline-block;width:7px;height:13px;background:var(--magenta-lume);vertical-align:-2px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}

/* ============ LOGOS ============ */
.logos{padding:34px 0 30px;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);background:var(--soft2)}
.logos p{text-align:center;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:20px}
.logo-row{display:flex;flex-wrap:wrap;justify-content:center;gap:18px 44px;align-items:center}
.logo-row span{font-family:var(--font-display);font-weight:600;font-size:1.06rem;letter-spacing:.02em;color:var(--logo-mute);transition:color .25s}
.logo-row span:hover{color:var(--ink)}

/* ============ MARQUEE STACK ============ */
.marquee{overflow:hidden;border-block:1px solid var(--line);background:var(--paper);padding:13px 0;position:relative}
.marquee::before,.marquee::after{content:"";position:absolute;top:0;bottom:0;width:110px;z-index:2;pointer-events:none}
.marquee::before{left:0;background:linear-gradient(90deg,var(--paper),transparent)}
.marquee::after{right:0;background:linear-gradient(-90deg,var(--paper),transparent)}
.mq-track{display:flex;gap:14px;width:max-content;animation:mq 36s linear infinite}
.mq-track:hover{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-50%)}}
.mq-track .chip{background:var(--soft)}

/* ============ EVIDENCIA (dark) ============ */
.evidence{background:var(--deep);color:#fff;position:relative;overflow:hidden}
.evidence::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image:radial-gradient(ellipse 85% 70% at 50% 30%,#000 25%,transparent 75%);
  mask-image:radial-gradient(ellipse 85% 70% at 50% 30%,#000 25%,transparent 75%)}
.evidence .eyebrow{color:var(--magenta-lume)}
.evidence .lead{color:#b9aec4}
.gitline{font-family:var(--font-mono);font-size:clamp(.78rem,1.6vw,.95rem);color:var(--deep-muted);margin:26px 0 40px;padding:14px 18px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:rgba(255,255,255,.03);display:inline-block}
.gitline b{color:var(--magenta-lume);font-weight:500}
.gitline .cmt{color:var(--deep-muted)}

/* heatbar 12 años */
.heatwrap{margin-bottom:64px;position:relative}
.heatbar{display:grid;grid-template-columns:repeat(17,1fr);gap:4px}
.heatbar .col{display:grid;gap:3px}
.heatbar .col b{display:block;height:15px;border-radius:2px;background:rgba(208,0,168,.13);transition:background .18s,transform .18s}
.heatbar .col b.lit{background:var(--magenta)}
.heatbar .col b.lit.dim{background:rgba(208,0,168,.45)}
.heatbar .col b.lit.dim2{background:rgba(208,0,168,.7)}
.heat-years{display:grid;grid-template-columns:repeat(17,1fr);gap:4px;margin-top:10px}
.heat-years span{font-family:var(--font-mono);font-size:.6rem;color:var(--deep-muted);text-align:center;transition:color .2s}
.heat-years span.on{color:var(--magenta-lume)}
.heat-meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:16px;flex-wrap:wrap;gap:8px}
.heat-meta .ylab{font-family:var(--font-mono);font-size:.8rem;color:var(--deep-muted)}
.heat-meta .ycount{font-family:var(--font-mono);font-size:clamp(2.4rem,5vw,3.6rem);font-weight:500;color:#fff;font-variant-numeric:tabular-nums;line-height:1}
.heat-meta .ycount small{font-size:.4em;color:var(--magenta-lume);letter-spacing:.1em}

/* stats */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1);border-radius:14px;overflow:hidden}
.stat{background:var(--deep);padding:30px 28px 28px;position:relative;transition:background .3s}
.stat:hover{background:#1c1920}
.stat h3{font-family:var(--font-mono);font-size:.8rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--magenta-lume);margin:0 0 12px}
.stat p{font-size:.92rem;color:#a89dae;line-height:1.6;max-width:32ch}
.src-note{margin-top:26px;font-family:var(--font-mono);font-size:.7rem;color:var(--deep-muted);line-height:1.7}
.src-note b{color:#9a8fa4;font-weight:500}
@media(max-width:920px){.stats{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.stats{grid-template-columns:1fr}}

/* ============ SERVICIOS ============ */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;perspective:1100px}
.svc{border:1px solid var(--line);border-radius:var(--r-card);padding:26px 24px 22px;background:var(--surface);position:relative;transition:box-shadow .3s,border-color .3s;transform-style:preserve-3d;will-change:transform}
.svc:hover{border-color:rgba(208,0,168,.45);box-shadow:var(--shadow-hard)}
.svc .num{position:absolute;top:20px;right:22px;font-family:var(--font-mono);font-size:.68rem;color:var(--step-num)}
.svc .ico{width:40px;height:40px;border-radius:9px;background:var(--soft);border:1px solid var(--line);display:grid;place-items:center;color:var(--magenta-text);margin-bottom:16px;font-family:var(--font-mono);font-size:1rem}
.svc h3{font-size:1.05rem}
.svc p{font-size:.9rem;color:var(--text-2);margin-bottom:14px}
.svc .proof{font-family:var(--font-mono);font-size:.72rem;line-height:1.6;color:var(--magenta-text);border-top:1px dashed var(--line);padding-top:12px}
.svc .proof::before{content:"✓ ";color:var(--green)}
@media(max-width:920px){.svc-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.svc-grid{grid-template-columns:1fr}}

/* ============ QAAS ============ */
.qaas-sec{background:var(--soft)}
.qaas-tag{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.14em;color:var(--qaas);text-transform:uppercase}
.qaas-tag::before{content:"";width:22px;height:2px;background:var(--qaas);border-radius:2px}
.pipeline-wrap{margin:48px 0 8px;overflow-x:auto;padding-bottom:8px}
.pipe-hint{display:none;font-family:var(--font-mono);font-size:.68rem;color:var(--muted);text-align:right;margin-top:2px}
@media(max-width:860px){.pipe-hint{display:block}}
.pipeline{min-width:820px}
.pipe-line{stroke:var(--qaas);opacity:.28}
.pipe-flow{stroke:var(--qaas);stroke-dasharray:14 190;animation:flow 3.4s linear infinite}
@keyframes flow{to{stroke-dashoffset:-204}}
.st g circle{fill:#fff;stroke:var(--qaas);stroke-width:1.6;transition:fill .4s}
.st.lit g circle{fill:var(--qaas)}
.st .box{fill:var(--surface);stroke:var(--line);transition:stroke .4s}
.st.lit .box{stroke:var(--qaas)}
.st text{font-family:var(--font-mono);font-size:11.5px;fill:var(--ink)}
.st .stt{font-size:9.5px;fill:var(--muted);letter-spacing:.12em}
.st.lit text{fill:var(--qaas)}
.st.lit .stt{fill:var(--qaas)}
.qaas-cols{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:44px}
.qcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:24px 22px}
.qcard h3{display:flex;gap:10px;align-items:baseline;font-size:1rem}
.qcard h3 .qi{font-family:var(--font-mono);color:var(--qaas);font-size:.8rem}
.qcard p{font-size:.88rem;color:var(--text-2)}
.models{margin-top:46px;border:1px solid var(--models-border);background:var(--models-bg);border-radius:14px;padding:30px 32px}
.models h3{font-size:1.12rem;margin-bottom:10px}
.models p{font-size:.94rem;color:var(--text-2);max-width:88ch}
@media(max-width:920px){.qaas-cols{grid-template-columns:1fr}}

/* ============ CASOS ============ */
.cases{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.case{border:1px solid var(--line);border-radius:var(--r-card);padding:24px;position:relative;background:var(--surface)}
.case .tag{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.16em;color:var(--magenta-text);text-transform:uppercase;display:block;margin-bottom:10px}
.case h3{font-size:1.02rem}
.case p{font-size:.88rem;color:var(--text-2)}
.case .res{margin-top:12px;font-family:var(--font-mono);font-size:.72rem;color:var(--ink);background:var(--soft);border:1px solid var(--line-soft);border-radius:6px;padding:9px 12px;display:inline-block}
.case .res::before{content:"▸ ";color:var(--magenta)}
@media(max-width:820px){.cases{grid-template-columns:1fr}}

/* ============ MÉTODO ============ */
.method{background:var(--soft)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:paso}
.step{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:26px 22px;position:relative}
.step::before{counter-increment:paso;content:"0" counter(paso);font-family:var(--font-mono);font-size:2.6rem;font-weight:500;color:transparent;-webkit-text-stroke:1.2px rgba(208,0,168,.5);display:block;line-height:1;margin-bottom:14px}
.step h3{font-size:1rem;margin-bottom:8px}
.step p{font-size:.86rem;color:var(--text-2)}
@media(max-width:920px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.steps{grid-template-columns:1fr}}

/* ============ FIT ============ */
.fit-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.fit{border-radius:14px;padding:30px 30px 26px;border:1px solid var(--line)}
.fit.yes{background:var(--fit-yes-bg);border-color:rgba(29,158,106,.35)}
.fit.no{background:var(--soft2)}
.fit h3{display:flex;align-items:center;gap:10px;margin-bottom:18px;font-size:1.02rem}
.fit h3 .dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;color:#fff;flex:none}
.fit.yes h3 .dot{background:var(--green)}
.fit.no h3 .dot{background:var(--muted)}
.fit ul{list-style:none;margin:0;padding:0}
.fit li{font-size:.92rem;color:var(--text-2);padding:9px 0;border-bottom:1px dashed var(--line)}
.fit li:last-child{border-bottom:none}
@media(max-width:760px){.fit-grid{grid-template-columns:1fr}}

/* ============ FAQ ============ */
.faq details{border:1px solid var(--line);border-radius:var(--r-card);margin-bottom:12px;background:var(--surface)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:19px 22px;font-weight:600;font-size:.98rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--font-mono);font-size:1.3rem;color:var(--magenta-text);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 22px 20px;font-size:.9rem;color:var(--text-2);max-width:75ch}

/* ============ CTA FINAL ============ */
.cta{background:var(--deep);color:#fff;position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 90% at 20% 10%,rgba(208,0,168,.18),transparent 60%)}
.cta .container{position:relative}
.cta h2{max-width:16ch}
.cta .lead{color:#b9aec4}
.cta-box{display:flex;gap:44px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.cta-actions{display:flex;flex-direction:column;gap:14px;flex:1 1 340px;max-width:520px;min-width:280px}
.cta-actions .btn-primary{background:var(--magenta);box-shadow:0 12px 30px rgba(208,0,168,.4);justify-content:center}
.cta-actions .btn-primary:hover{background:#e10fbb}
.cta-actions .btn-ghost{border-color:rgba(255,255,255,.28);color:#fff;justify-content:center}
.cta-actions .btn-ghost:hover{border-color:var(--magenta-lume);color:var(--magenta-lume)}
.cta-micro{font-family:var(--font-mono);font-size:.72rem;color:#a39aa8;line-height:1.8;max-width:44ch}
.cta-micro b{color:#b9aec4;font-weight:500}

/* ============ FORMULARIO DE CONTACTO (CTA) ============ */
.cta-form{width:100%;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.14);border-radius:var(--r-card);padding:24px 22px;display:flex;flex-direction:column;gap:16px}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cf-field{display:flex;flex-direction:column}
.cf-field label{font-family:var(--font-mono);font-size:.66rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--deep-muted);margin-bottom:7px}
.cf-input{width:100%;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.18);border-radius:6px;color:#fff;font-family:var(--font-body);font-size:.95rem;line-height:1.5;padding:11px 13px;transition:border-color .2s,background .2s}
.cf-input::placeholder{color:#7d7387}
.cf-input:focus{outline:none;border-color:var(--magenta-lume);background:rgba(255,255,255,.08)}
textarea.cf-input{resize:vertical;min-height:104px}
.cf-err{display:none;font-family:var(--font-mono);font-size:.68rem;line-height:1.5;color:#ff7a90;margin:6px 0 0}
.cf-field.invalid .cf-err{display:block}
.cf-field.invalid .cf-input{border-color:#ff5470}
.cf-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.cf-widget{display:none}
.cf-submit{width:100%;justify-content:center;margin-top:2px}
.cf-submit[disabled]{opacity:.55;pointer-events:none}
.cf-status{display:none;font-family:var(--font-mono);font-size:.74rem;line-height:1.6;margin:0}
.cf-status.show{display:block}
.cf-status.ok{color:var(--green)}
.cf-status.err{color:#ff7a90}
.cf-done{font-family:var(--font-mono);font-size:.86rem;line-height:1.9;color:#e8e2ec;padding:8px 2px}
.cf-done b{color:var(--green);font-weight:500}
.cf-alt{font-size:.85rem;color:#b9aec4;line-height:1.7;margin:2px 0 0}
.cf-alt a{color:#fff;border-bottom:1px dashed rgba(255,255,255,.35);transition:color .2s,border-color .2s}
.cf-alt a:hover{color:var(--magenta-lume);border-color:var(--magenta-lume)}
@media(max-width:600px){
  .cta-form{padding:20px 16px}
  .cf-row{grid-template-columns:1fr}
}

/* ============ FOOTER ============ */
footer{background:var(--deep);color:#8d8396;border-top:1px solid rgba(255,255,255,.08);padding:38px 0 30px}
.foot{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:center;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em}
.foot .brand{color:#fff;font-size:1rem}
.foot .brand .brand-dot{background:rgba(255,255,255,.08)}
.foot a:hover{color:var(--magenta-lume)}

/* —— marca: logo oficial (webp inline) —— */
.brand-logo{display:block;height:40px;width:auto}
.foot .brand-logo{height:32px;filter:brightness(0) invert(1);opacity:.9}
:root[data-theme="dark"] .brand-logo{filter:brightness(0) invert(1)}
:root[data-theme="dark"] .foot .brand-logo{opacity:.85}
:root[data-theme="dark"] .grain{mix-blend-mode:overlay;opacity:.05}

/* —— toggle de tema —— */
.theme-btn{width:38px;height:38px;flex:none;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:border-color .25s,color .25s,transform .2s}
.theme-btn:hover{border-color:var(--magenta);color:var(--magenta-text);transform:rotate(15deg)}
.theme-btn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.theme-btn .sun{display:none}
:root[data-theme="dark"] .theme-btn .sun{display:block}
:root[data-theme="dark"] .theme-btn .moon{display:none}

/* —— visual de hero (tarjeta de marca) —— */
.hero-visual{margin:0;border-radius:22px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-hard),0 26px 64px rgba(43,24,39,.16)}
.hero-visual img{width:100%;height:auto;display:block}
.hero-visual img.hero-visual-dark{display:none}
:root[data-theme="dark"] .hero-visual img.hero-visual-dark{display:block}
:root[data-theme="dark"] .hero-visual img.hero-visual-light{display:none}

/* —— terminal en evidencia —— */
.evidence-term{border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:14px 18px;background:rgba(255,255,255,.03);margin:-26px 0 46px}

/* —— mascota QAAS —— */
.qaas-head{display:flex;gap:32px;align-items:flex-start;justify-content:space-between}
.qaas-head .section-head{flex:1;max-width:none}
.qaas-mascot{width:clamp(120px,14vw,175px);height:auto;flex:none;transform:rotate(3deg);filter:drop-shadow(0 12px 26px rgba(7,87,217,.2))}
.qaas-mascot-dark{display:none}
:root[data-theme="dark"] .qaas-mascot-dark{display:block}
:root[data-theme="dark"] .qaas-mascot-light{display:none}
@media(max-width:860px){.qaas-head{flex-direction:column-reverse;align-items:flex-start}.qaas-mascot{align-self:flex-end;margin-top:-30px}}

/* ============ reveals ============ */
.rv{opacity:1}
.js .rv{opacity:0;transform:translateY(26px)}
.js .rv.in{opacity:1;transform:none;transition:opacity .7s cubic-bezier(.05,.7,.1,1),transform .7s cubic-bezier(.05,.7,.1,1)}
.js .rv.d1.in{transition-delay:.08s}.js .rv.d2.in{transition-delay:.16s}.js .rv.d3.in{transition-delay:.24s}
@media(prefers-reduced-motion:reduce){
  .js .rv{opacity:1;transform:none}
  .miniheat b,.pipe-flow,.mq-track,.term .cur{animation:none!important}
  .heatbar .col b{transition:none}
}

@media(max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:44px}
  .hero{padding-top:128px}
  .panel{max-width:560px}
}
@media(max-width:600px){
  .section{padding:76px 0}
  .hero{padding:112px 0 64px}
  .heat-years span{font-size:.52rem}
}