/* Layout: sitio corporativo de firma consultora. Fotografía a sangre con titulares blancos en negrita, retícula estricta, blanco y negro con el azul de la marca como único acento; HELiOS IA es la única escena con dorado. Un solo tema claro, por decisión. */
:root{
  --paper:#FFFFFF; --soft:#F1F5FA; --ink:#1F497D; --deep:#163760; --muted:#55687F; --line:#DCE4EE;
  --navy:#1F497D; --blue:#548DD4; --sky:#95B3D7; --gold:#F59E0B; --orange:#EA580C;
  --night:#0E2340; --night-2:#16325A; --night-ink:#F3F6FA; --night-muted:#B4C3D8; --night-line:#2C4A75;
  --head:"Open Sans","Malgun Gothic","Segoe UI",Arial,sans-serif;
  --body:Calibri,"Carlito","Segoe UI",Arial,sans-serif;
  --wrap:82rem; --ease:cubic-bezier(.2,.7,.1,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1.17rem;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
p,h1,h2,h3,ul,ol,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
h1,h2,h3{font-family:var(--head);font-weight:700;line-height:1.04;letter-spacing:-.025em;text-wrap:balance}
img{display:block}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(1.15rem,4vw,3rem)}
.dot{color:var(--blue)}
.hero .dot,.lp-hero .dot,.contact .dot{color:var(--sky)}
.label{font:600 .78rem/1.2 var(--head);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
section{padding-block:clamp(4rem,9vw,7.5rem);scroll-margin-top:4.6rem}

.btn{display:inline-flex;align-items:center;gap:.8rem;font:600 1rem var(--head);padding:.95rem 1.5rem;border:1.5px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;position:relative;overflow:hidden;isolation:isolate;transition:color .35s,border-color .35s}
.btn::before{content:"";position:absolute;inset:0;background:var(--deep);transform:translateY(101%);transition:transform .45s var(--ease);z-index:-1}
.btn:hover::before{transform:none}
.btn:hover{border-color:var(--deep)}
.btn svg{width:1.05rem;height:1.05rem;transition:transform .4s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn.white{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.btn.white:hover{color:var(--paper);border-color:var(--sky)}
.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--night)}
.btn.gold::before{background:#FBBF24}
.btn.gold:hover{border-color:#FBBF24}
.more{display:inline-flex;align-items:center;gap:.6rem;font:600 1rem var(--head)}
.more svg{width:1.05rem;height:1.05rem;transition:transform .4s var(--ease)}
.more:hover svg,a:hover>.more svg{transform:translateX(6px)}
.more span{background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;transition:background-size .45s var(--ease);padding-bottom:2px}
.more:hover span,a:hover>.more span{background-size:100% 1.5px}

/* cabecera */
.util{background:var(--deep);color:#D5DFEC;font-size:.84rem}
.util .wrap{display:flex;gap:1.5rem;justify-content:flex-end;padding-block:.5rem;flex-wrap:wrap}
.util a:hover{color:#fff}
.util .l{margin-right:auto}
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--paper);border-bottom:1px solid var(--line);transition:box-shadow .3s}
header.site.scrolled{box-shadow:0 .6rem 2rem -1rem rgba(14,35,64,.25)}
header.site>.wrap{display:flex;align-items:stretch;gap:2.5rem;min-height:4.6rem}
.logo{display:flex;align-items:center;flex:none}
.logo img{height:2.9rem;width:auto}
nav.main{display:flex;gap:2.2rem;margin-left:auto;font:600 .98rem var(--head)}
nav.main>.it{display:flex;align-items:center;position:relative}
nav.main>.it>a{display:flex;align-items:center;gap:.4rem;height:100%;position:relative}
nav.main>.it>a::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
nav.main>.it:hover>a::after,nav.main>.it:focus-within>a::after{transform:scaleX(1)}
nav.main .sun{width:.5rem;height:.5rem;border-radius:50%;background:var(--gold)}
.head-cta{align-self:center;flex:none}
.head-cta.btn{padding:.7rem 1.15rem;font-size:.92rem}
.mega{position:absolute;right:-18rem;top:100%;width:min(58rem,92vw);background:var(--paper);border:1px solid var(--line);border-top:0;box-shadow:0 2rem 4rem -1.5rem rgba(14,35,64,.3);padding:2rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem 2.5rem;opacity:0;visibility:hidden;transform:translateY(-.6rem);transition:opacity .3s,transform .4s var(--ease),visibility 0s .3s}
.it:hover>.mega,.it:focus-within>.mega{opacity:1;visibility:visible;transform:none;transition:opacity .3s,transform .4s var(--ease)}
.mega h3{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:.8rem;font-weight:600}
.mega a{display:block;font:500 1rem/1.35 var(--body);padding-block:.4rem;color:var(--ink)}
.mega a:hover{color:var(--blue)}
.mega .promo{background:var(--night);color:var(--night-ink);padding:1.3rem;display:grid;gap:.6rem;align-content:start}
.mega .promo h3{color:var(--gold);margin:0}
.mega .promo p{font:600 1.25rem/1.15 var(--head);letter-spacing:-.02em}
.mega .promo a{color:var(--gold);font-weight:600}
.burger{display:none;width:3rem;height:3rem;border:0;background:transparent;cursor:pointer;position:relative;margin-left:auto;align-self:center;flex:none}
.burger::before,.burger::after{content:"";position:absolute;left:.6rem;right:.6rem;height:2px;background:var(--ink);transition:transform .4s var(--ease),top .4s var(--ease)}
.burger::before{top:1.15rem}.burger::after{top:1.75rem}
.burger[aria-expanded="true"]::before{top:1.45rem;transform:rotate(45deg)}
.burger[aria-expanded="true"]::after{top:1.45rem;transform:rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:25;background:var(--ink);color:#fff;padding:calc(6.5rem + env(safe-area-inset-top,0px)) clamp(1.15rem,4vw,3rem) 2rem;display:flex;flex-direction:column;clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .6s var(--ease),visibility 0s .6s;overflow-y:auto}
.menu.open{clip-path:inset(0);visibility:visible;transition:clip-path .6s var(--ease)}
.menu a{font:700 2rem/1.2 var(--head);letter-spacing:-.02em;border-bottom:1px solid rgba(255,255,255,.18);padding-block:.9rem;transform:translateY(1.2rem);opacity:0;transition:transform .6s var(--ease),opacity .6s}
.menu.open a{transform:none;opacity:1}
.menu.open a:nth-child(2){transition-delay:.06s}.menu.open a:nth-child(3){transition-delay:.12s}.menu.open a:nth-child(4){transition-delay:.18s}.menu.open a:nth-child(5){transition-delay:.24s}.menu.open a:nth-child(6){transition-delay:.3s}
.menu small{margin-top:auto;padding-top:2rem;color:#C3D1E4;font-size:.95rem}

/* hero con fotografía */
.hero{padding:0;position:relative;background:var(--ink);color:#fff}
.slides{display:grid}
.slide{grid-area:1/1;position:relative;display:flex;align-items:flex-end;min-height:clamp(31rem,74vh,45rem);overflow:hidden;opacity:0;visibility:hidden;transition:opacity 1.1s,visibility 0s 1.1s}
.slide.on{opacity:1;visibility:visible;transition:opacity 1.1s}
.slide img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;transform:scale(1.1)}
.slide.on img{animation:ken 9s var(--ease) forwards}
@keyframes ken{to{transform:scale(1)}}
.slide::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,35,64,.9) 0,rgba(14,35,64,.62) 45%,rgba(14,35,64,.15) 100%),linear-gradient(0deg,rgba(14,35,64,.75),transparent 45%)}
.slide .wrap{position:relative;z-index:1;width:100%;padding-block:4rem 8.5rem}
.slide .in>*{transform:translateY(2rem);opacity:0}
.slide.on .in>*{animation:up 1s var(--ease) forwards}
.slide.on .in>*:nth-child(2){animation-delay:.12s}.slide.on .in>*:nth-child(3){animation-delay:.24s}.slide.on .in>*:nth-child(4){animation-delay:.36s}
@keyframes up{to{transform:none;opacity:1}}
.slide .label{color:#fff;display:inline-flex;align-items:center;gap:.6rem}
.slide .label::before{content:"";width:2rem;height:2px;background:var(--sky)}
.slide.h .label::before{background:var(--gold)}
.ht{font-size:clamp(2.5rem,6.6vw,5.4rem);max-width:15ch;margin-top:1.3rem}
.slide p.s{font-size:clamp(1.1rem,1.5vw,1.3rem);max-width:34rem;margin-top:1.3rem;color:#E3EAF3}
.slide .btn{margin-top:2rem}
.ctrl{position:absolute;left:0;right:0;bottom:0;z-index:2}
.ctrl .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;padding-bottom:1.8rem}
.ctrl button{background:transparent;border:0;color:#fff;text-align:left;font:600 .95rem/1.3 var(--head);padding:1rem 0 0;cursor:pointer;position:relative;opacity:.6;transition:opacity .3s}
.ctrl button:hover,.ctrl button[aria-current="true"]{opacity:1}
.ctrl button::before,.ctrl button::after{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:rgba(255,255,255,.3)}
.ctrl button::after{background:#fff;transform:scaleX(0);transform-origin:left}
.ctrl button[aria-current="true"]::after{animation:prog 7s linear forwards}
@keyframes prog{to{transform:scaleX(1)}}

/* declaración */
.state .wrap{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:2rem 5rem;align-items:end}
.state h2{font-size:clamp(2.1rem,5vw,4rem)}
.state p{color:var(--muted);font-size:1.15rem}
.state .links{display:flex;flex-wrap:wrap;gap:.9rem 2.2rem;margin-top:1.6rem}

/* servicios con fotografía */
.svc{padding-top:0}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.card{position:relative;aspect-ratio:4/5;overflow:hidden;color:#fff;display:flex;align-items:flex-end;background:var(--ink)}
.card img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;transition:transform 1.2s var(--ease)}
.card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(14,35,64,.92) 0,rgba(14,35,64,.35) 55%,rgba(14,35,64,.1));transition:background .5s}
.card:hover img{transform:scale(1.07)}
.card .tx{position:relative;z-index:1;padding:1.6rem;display:grid;gap:.7rem;width:100%}
.card .label{color:#fff;opacity:.85}
.card h3{font-size:clamp(1.5rem,2.4vw,2.1rem)}
.card p{color:#E3EAF3;font-size:1rem}
.card .bar{height:3px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.card:hover .bar{transform:scaleX(1)}
@media (hover:hover){
  .card .hid{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
  .card .hid>div{overflow:hidden;display:grid;gap:.9rem}
  .card:hover .hid,.card:focus-visible .hid{grid-template-rows:1fr}
}
.card .hid>div{display:grid;gap:.9rem}
.list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:1.25rem;border:1px solid var(--line)}
.list a{padding:1.5rem;display:grid;gap:.5rem;align-content:start;border-right:1px solid var(--line);transition:background .35s,color .35s}
.list a:last-child{border-right:0}
.list a:hover{background:var(--ink);color:#fff}
.list h3{font-size:1.1rem;letter-spacing:-.01em;line-height:1.2}
.list p{font-size:.95rem;color:var(--muted);transition:color .35s}
.list a:hover p{color:#D5DFEC}

/* HELIOS */
.helios{background:var(--night);color:var(--night-ink);position:relative;overflow:hidden}
.helios .glow{position:absolute;right:-12rem;top:-22rem;width:56rem;height:46rem;background:radial-gradient(closest-side,rgba(233,162,39,.34),rgba(233,162,39,.07) 55%,transparent);pointer-events:none;animation:breathe 9s ease-in-out infinite alternate}
@keyframes breathe{to{transform:scale(1.12);opacity:.8}}
.helios .wrap{position:relative}
.helios .label{color:var(--gold)}
.helios .top{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:2rem 5rem;align-items:end}
.helios .glow{right:-6rem;top:-14rem}
.helios h2{font-size:clamp(2.3rem,5.6vw,4.6rem);margin-top:1.2rem}
.helios h2 b{color:var(--gold);font-weight:700}
.helios .top p{color:var(--night-muted);font-size:1.15rem}
.helios .cta{display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:center;margin-top:1.6rem}
.helios .more{color:var(--night-ink)}
.tabs{display:flex;gap:0;margin-top:clamp(2.5rem,5vw,4rem);overflow-x:auto;border-bottom:1px solid var(--night-line)}
.tabs button{font:600 .98rem var(--head);color:var(--night-muted);background:transparent;border:0;padding:1rem 1.4rem 1rem 0;margin-right:1.4rem;cursor:pointer;white-space:nowrap;position:relative;transition:color .3s}
.tabs button::after{content:"";position:absolute;left:0;right:1.4rem;bottom:-1px;height:3px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.tabs button[aria-selected="true"]{color:var(--night-ink)}
.tabs button[aria-selected="true"]::after{transform:scaleX(1)}
.window{margin-top:1.5rem;background:var(--night-2);border:1px solid var(--night-line);overflow:hidden;box-shadow:0 3rem 6rem -2rem rgba(0,0,0,.7)}
.chrome{display:flex;align-items:center;gap:.45rem;padding:.8rem 1rem;border-bottom:1px solid var(--night-line);font-size:.8rem;color:var(--night-muted)}
.chrome i{width:.6rem;height:.6rem;border-radius:50%;background:var(--night-line)}
.chrome span{margin-left:.6rem}
.chrome em{margin-left:auto;font-style:normal;border:1px solid var(--night-line);padding:.1rem .6rem}
.panes{display:grid}
.pane{grid-area:1/1;padding:clamp(1.2rem,3vw,2.2rem);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1.5rem 2.5rem;align-items:start;opacity:0;visibility:hidden;transform:translateY(1rem);transition:opacity .5s,transform .6s var(--ease),visibility 0s .5s}
.pane.on{opacity:1;visibility:visible;transform:none;transition:opacity .6s .1s,transform .7s .1s var(--ease)}
.pane h3{font:600 1.05rem/1.3 var(--head);letter-spacing:-.01em}
.pane .k{font:600 .74rem var(--head);letter-spacing:.12em;text-transform:uppercase;color:var(--night-muted)}
.box{border:1px solid var(--night-line);padding:1.1rem;display:grid;gap:.8rem;min-width:0}
.ring{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1.2rem;align-items:center}
.ring svg{width:7rem;height:7rem;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:8}
.ring .bg{stroke:var(--night-line)}
.ring .fg{stroke:var(--gold);stroke-dasharray:327;stroke-dashoffset:44;transition:stroke-dashoffset 1.6s .3s var(--ease)}
.js .pane:not(.on) .ring .fg{stroke-dashoffset:327;transition:none}
.ring b{font:700 2.6rem/1 var(--head);letter-spacing:-.03em}
.ring small{display:block;color:var(--night-muted);font-size:.9rem;margin-top:.3rem}
.bars{display:grid;gap:.6rem}
.bars div{display:grid;grid-template-columns:4.6rem minmax(0,1fr) 2.6rem;gap:.7rem;align-items:center;font-size:.9rem}
.bars u{height:.35rem;background:var(--night-line);overflow:hidden;text-decoration:none;display:block}
.bars u i{display:block;height:100%;background:var(--gold);transform-origin:left;transition:transform 1.2s .4s var(--ease)}
.js .pane:not(.on) .bars u i{transform:scaleX(0);transition:none}
.bars span:last-child{text-align:right;color:var(--night-muted);font-variant-numeric:tabular-nums}
.ai{font-size:1rem;line-height:1.55;min-height:8.5rem}
.ai::after{content:"";display:inline-block;width:.45rem;height:1em;background:var(--gold);vertical-align:-.15em;margin-left:.15rem;animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.badge{display:inline-flex;align-items:center;gap:.45rem;font:600 .8rem var(--head);color:var(--gold)}
.badge::before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:var(--gold)}
.why{display:grid;gap:.55rem;counter-reset:w}
.why li{counter-increment:w;display:grid;grid-template-columns:1.6rem minmax(0,1fr);gap:.6rem;font-size:.97rem;padding:.6rem .8rem;border:1px solid var(--night-line);transition:opacity .5s,transform .6s var(--ease)}
.why li::before{content:counter(w);color:var(--gold);font-weight:700;font-family:var(--head)}
.js .pane:not(.on) .why li{opacity:0;transform:translateX(-1rem);transition:none}
.why li:nth-child(2){transition-delay:.25s}.why li:nth-child(3){transition-delay:.5s}.why li:nth-child(4){transition-delay:.75s}.why li:nth-child(5){transition-delay:1s}
.docs{display:grid;gap:.5rem}
.docs div{display:grid;grid-template-columns:minmax(0,9.5rem) minmax(0,1fr) auto;gap:.8rem;align-items:center;font-size:.95rem;padding:.65rem .8rem;border:1px solid var(--night-line);transition:opacity .5s,transform .6s var(--ease)}
.docs code{font-family:ui-monospace,Menlo,monospace;font-size:.78rem;color:var(--night-muted)}
.docs em{font-style:normal;font:600 .74rem var(--head);padding:.15rem .6rem;border:1px solid var(--night-line);white-space:nowrap}
.docs em.ok{color:#7ED6A7;border-color:#2B4A3B}.docs em.rev{color:var(--gold);border-color:#4A3A1A}
.js .pane:not(.on) .docs div{opacity:0;transform:translateY(.6rem);transition:none}
.docs div:nth-child(2){transition-delay:.12s}.docs div:nth-child(3){transition-delay:.24s}.docs div:nth-child(4){transition-delay:.36s}
.pane p.d{color:var(--night-muted);font-size:1rem}
.calc{margin-top:clamp(3rem,6vw,5rem);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:2rem 4rem;align-items:center;border-top:1px solid var(--night-line);padding-top:clamp(2rem,5vw,3.5rem)}
.calc .q{font:600 clamp(1.5rem,3.2vw,2.5rem)/1.3 var(--head);letter-spacing:-.02em}
.calc input,.calc select{font:inherit;color:var(--gold);background:transparent;border:0;border-bottom:2px solid var(--gold);border-radius:0;padding:0 .2rem;text-align:center;color-scheme:dark}
.calc input{width:3.2em;-moz-appearance:textfield}
.calc input::-webkit-inner-spin-button{-webkit-appearance:none}
.calc select{cursor:pointer}
.calc select option{color:#111;background:#fff}
.calc .res{display:grid;gap:.3rem}
.calc .res b{font:700 clamp(5rem,11vw,8rem)/.85 var(--head);letter-spacing:-.05em;color:var(--gold);font-variant-numeric:tabular-nums;display:block}
.calc .res b.pop{animation:pop .6s var(--ease)}
@keyframes pop{from{transform:translateY(.25em);opacity:0}}
.calc .res span{font-weight:600}
.calc .res small{color:var(--night-muted);font-size:.9rem}


/* logo de HELiOS IA: el sol */
.sol{width:1.35rem;height:1.35rem;flex:none}
.lock{display:inline-flex;align-items:center;gap:.7rem}
.lock .sol{width:2.6rem;height:2.6rem;filter:drop-shadow(0 0 .9rem rgba(245,158,11,.55))}
.lock b{display:block;font:700 1.45rem/1 var(--head);letter-spacing:-.02em;color:#fff}
.lock small{display:block;font:500 .78rem/1 var(--body);color:#FCD34D;margin-top:.3rem;letter-spacing:.04em}
.lock.sm .sol{width:1.9rem;height:1.9rem}.lock.sm b{font-size:1.1rem}
.bigsun{width:clamp(9rem,20vw,17rem);height:auto;aspect-ratio:1;display:block;margin-bottom:2rem;filter:drop-shadow(0 0 3rem rgba(245,158,11,.5));overflow:visible}
.bigsun .rays{animation:turn 70s linear infinite}
.bigsun .core{animation:beat 5s ease-in-out infinite alternate}
@keyframes turn{to{transform:rotate(360deg)}}
@keyframes beat{to{transform:scale(1.06)}}

/* cifras */
.figs{padding-block:clamp(3rem,6vw,5rem);background:var(--soft)}
.figs .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem}
.figs .wrap>div{border-top:3px solid var(--ink);padding-top:1.1rem;display:grid;gap:.4rem}
.figs b{font:700 clamp(2.4rem,5vw,4.2rem)/1 var(--head);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.figs span{color:var(--muted)}

/* firma */
.firm .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem 5rem;align-items:center}
.firm .ph{position:relative;aspect-ratio:5/4;overflow:hidden;background:var(--soft)}
.firm .ph img{width:100%;height:100%;max-width:none;object-fit:cover;transition:transform 1.6s var(--ease)}
.js .firm .ph.rv:not(.in) img{transform:scale(1.15)}
.firm .ph::after{content:"";position:absolute;left:0;bottom:0;width:38%;height:.5rem;background:var(--blue)}
.firm h2{font-size:clamp(2rem,4.4vw,3.4rem);margin-top:1rem}
.firm .lead{color:var(--muted);font-size:1.12rem;margin-top:1.3rem}
.steps{margin-top:2rem;counter-reset:s;border-top:1px solid var(--line)}
.steps li{counter-increment:s;display:grid;grid-template-columns:3rem minmax(0,11rem) minmax(0,1fr);gap:1rem;padding-block:1rem;border-bottom:1px solid var(--line);align-items:baseline}
.steps li::before{content:"0" counter(s);font:600 .85rem var(--head);color:var(--blue)}
.steps h3{font-size:1.15rem;letter-spacing:-.01em}
.steps p{color:var(--muted);font-size:1rem}

/* guías */
.guides{background:var(--soft)}
.sec-head{display:flex;flex-wrap:wrap;gap:1rem 3rem;align-items:end;justify-content:space-between;margin-bottom:clamp(2rem,4vw,3rem)}
.sec-head h2{font-size:clamp(2rem,4.4vw,3.4rem);margin-top:1rem}
.g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.g{background:var(--paper);display:grid;grid-template-rows:auto 1fr;transition:transform .5s var(--ease),box-shadow .5s}
.g:hover{transform:translateY(-.4rem);box-shadow:0 2rem 3rem -1.5rem rgba(14,35,64,.28)}
.g .im{aspect-ratio:16/10;overflow:hidden}
.g img{width:100%;height:100%;max-width:none;object-fit:cover;transition:transform 1.2s var(--ease)}
.g:hover img{transform:scale(1.06)}
.g .tx{padding:1.5rem;display:grid;gap:.8rem;align-content:start}
.g h3{font-size:1.4rem;line-height:1.15}
.g p{color:var(--muted);font-size:1rem}

/* clientes */
.voices .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:2rem 5rem}
.stage{display:grid}
.stage blockquote{grid-area:1/1;font:600 clamp(1.7rem,4vw,3.1rem)/1.12 var(--head);letter-spacing:-.025em;text-wrap:balance;opacity:0;transform:translateY(1.5rem);transition:opacity .8s,transform .9s var(--ease);visibility:hidden}
.stage blockquote.on{opacity:1;transform:none;visibility:visible}
.dots{display:flex;gap:.5rem;margin-top:2rem}
.dots button{width:2.6rem;height:1.6rem;background:transparent;border:0;padding:0;cursor:pointer;position:relative}
.dots button::before{content:"";position:absolute;left:0;right:0;top:50%;height:3px;background:var(--line);transition:background .4s}
.dots button[aria-current="true"]::before{background:var(--ink)}
.marquee{padding-block:1.5rem;border-block:1px solid var(--line);overflow:hidden;display:flex;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marquee ul{display:flex;gap:4.5rem;padding:0 2.25rem;flex:none;animation:slide 34s linear infinite;font:700 1.35rem/1 var(--head);letter-spacing:-.02em;color:#8A93A1;white-space:nowrap;align-items:center}
@keyframes slide{to{transform:translateX(-100%)}}

/* contacto */
.contact{background:var(--ink);color:#fff}
.contact .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem 6rem;align-items:start}
.contact .label{color:#C3D1E4}
.contact h2{font-size:clamp(2.3rem,5.4vw,4.4rem);margin-top:1rem}
.contact .lead{color:#D5DFEC;margin-top:1.4rem;max-width:28rem;font-size:1.12rem}
.data{display:grid;gap:1.2rem;margin-top:2.5rem}
.data div{display:grid;gap:.15rem}
.data .v{font-weight:600;user-select:all}
form{display:grid;gap:1.5rem}
.f{position:relative;display:grid}
.f label{font:600 .78rem var(--head);letter-spacing:.12em;text-transform:uppercase;color:#C3D1E4}
.f input,.f select{font:inherit;font-size:1.1rem;border:0;border-bottom:1px solid rgba(255,255,255,.4);border-radius:0;background:transparent;color:#fff;padding:.55rem 0;width:100%;min-width:0;color-scheme:dark}
.f select option{color:#111;background:#fff}
.f input:focus,.f select:focus{outline:0}
.f::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.f:focus-within::after{transform:scaleX(1)}
.note{font-weight:600;color:#7FC0F5}
.fine{font-size:.85rem;color:#C3D1E4}

footer.site{background:var(--night);color:#C3D1E4;font-size:.95rem;border-top:1px solid #24406A}
footer.site .cols{display:grid;grid-template-columns:1.4fr repeat(3,minmax(0,1fr));gap:2.5rem;padding-block:3.5rem}
footer.site .fl img{height:3rem;width:auto;filter:brightness(0) invert(1)}
footer.site h3{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-bottom:1rem;font-weight:600}
footer.site a{display:block;padding-block:.3rem}
footer.site a:hover{color:#fff}
footer.site .legal{border-top:1px solid #24406A;padding-block:1.4rem;display:flex;flex-wrap:wrap;gap:.5rem 2rem;justify-content:space-between;font-size:.86rem}
footer.site .legal a{display:inline;text-decoration:underline;text-underline-offset:3px}
.wa{position:fixed;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));z-index:20;width:3.4rem;height:3.4rem;border-radius:50%;background:#1FA855;color:#fff;display:grid;place-items:center;box-shadow:0 .6rem 1.6rem rgba(0,0,0,.3);transition:transform .4s var(--ease)}
.wa:hover{transform:scale(1.08)}
.wa svg{width:1.7rem;height:1.7rem}

.js .rv{opacity:.2;transform:translateY(2.2rem);transition:opacity .9s var(--ease),transform 1s var(--ease)}
.js .rv.in{opacity:1;transform:none}
.js .rv.d1{transition-delay:.1s}.js .rv.d2{transition-delay:.2s}.js .rv.d3{transition-delay:.3s}

@media (max-width:64rem){
  nav.main,.head-cta,.util .l{display:none}
  .burger{display:block}
  .state .wrap,.helios .top,.firm .wrap,.contact .wrap,.voices .wrap,.calc,.pane{grid-template-columns:minmax(0,1fr)}
  .cards,.g3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cards .card:first-child{grid-column:1/-1;aspect-ratio:16/10}
  .list,.figs .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}
  .list a:nth-child(2){border-right:0}.list a:nth-child(-n+2){border-bottom:1px solid var(--line)}
  footer.site .cols{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:38rem){
  .util .wrap{justify-content:space-between;gap:.75rem}
  .cards,.g3,.list{grid-template-columns:minmax(0,1fr)}
  .cards .card,.cards .card:first-child{aspect-ratio:4/4.4}
  .list a{border-right:0;border-bottom:1px solid var(--line)}.list a:last-child{border-bottom:0}
  .slide .wrap{padding-block:3rem 6.5rem}
  .slide .btn{width:100%;justify-content:space-between}
  .ctrl .wrap{gap:.6rem}
  .ctrl button{font-size:0;padding-top:1.2rem}
  .steps li{grid-template-columns:2.4rem minmax(0,1fr)}
  .steps p{grid-column:2}
  .ring svg{width:5.5rem;height:5.5rem}
  .docs div{grid-template-columns:minmax(0,1fr) auto}
  .docs code{grid-column:1/-1}
  .marquee ul{font-size:1.1rem;gap:2.8rem;padding:0 1.4rem}
  footer.site .cols{grid-template-columns:minmax(0,1fr);gap:2rem}
  .contact .btn{width:100%;justify-content:space-between}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .js .rv,.slide .in>*{opacity:1;transform:none}
  .slide img{transform:none}
}

/* ===== páginas de servicio (aterrizaje para Google Ads) ===== */
.crumbs{font-size:.88rem;color:#D5DFEC;display:flex;flex-wrap:wrap;gap:.5rem}
.crumbs a:hover{color:#fff;text-decoration:underline}
.crumbs span::before{content:"/";margin-right:.5rem;opacity:.6}
.lp-hero{position:relative;background:var(--ink);color:#fff;padding:0;overflow:hidden}
.lp-hero>img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;animation:lpken 9s var(--ease) both;transform:scale(1)}
.lp-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,35,64,.93) 0,rgba(14,35,64,.78) 50%,rgba(14,35,64,.5) 100%)}
@keyframes lpken{from{transform:scale(1.1)}}
.lp-hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,27rem);gap:2.5rem 4.5rem;align-items:center;padding-block:clamp(2.2rem,5vw,4.5rem)}
.lp-hero .in{display:grid;gap:1.2rem;justify-items:start}
.lp-hero .in>*{animation:lpup 1s var(--ease) both;transform:none;opacity:1}
.lp-hero .in>*:nth-child(2){animation-delay:.08s}.lp-hero .in>*:nth-child(3){animation-delay:.16s}.lp-hero .in>*:nth-child(4){animation-delay:.24s}.lp-hero .in>*:nth-child(5){animation-delay:.32s}.lp-hero .in>*:nth-child(6){animation-delay:.4s}
@keyframes lpup{from{transform:translateY(2rem);opacity:0}}
.lp-hero .label{color:#fff;display:inline-flex;align-items:center;gap:.6rem}
.lp-hero .label::before{content:"";width:2rem;height:2px;background:var(--sky);flex:none}
.lp-hero h1{font-size:clamp(2.1rem,4.7vw,3.8rem)}
.lp-hero p.s{font-size:clamp(1.08rem,1.4vw,1.25rem);color:#E3EAF3;max-width:36rem}
.ticks{display:grid;gap:.6rem}
.ticks li{display:grid;grid-template-columns:1.5rem minmax(0,1fr);gap:.7rem;align-items:start;font-weight:500}
.ticks li::before{content:"";width:1.25rem;height:1.25rem;margin-top:.2rem;background:var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.2'%3E%3Cpath d='M3.500 8.300l3 3 6-6.500'/%3E%3C/svg%3E") center/78% no-repeat}
.trust{font:600 .9rem var(--head);color:#D5DFEC;border-top:1px solid rgba(255,255,255,.22);padding-top:1rem;width:100%;max-width:36rem}
.lp-form{background:var(--paper);color:var(--ink);padding:clamp(1.3rem,3vw,1.9rem);display:grid;gap:.95rem;border-top:4px solid var(--blue);box-shadow:0 2.5rem 5rem -1.5rem rgba(0,0,0,.6);animation:lpup 1s .25s var(--ease) both;scroll-margin-top:6rem}
.lp-form h2{font-size:1.55rem}
.lp-form .sub{color:var(--muted);font-size:.98rem;margin-top:-.4rem}
.lp-form .f2{display:grid;gap:.3rem}
.lp-form label{font:600 .82rem var(--head)}
.lp-form input[type=text],.lp-form input[type=email],.lp-form input[type=tel]{font:inherit;font-size:1.02rem;padding:.72rem .8rem;border:1px solid #B9C6D8;border-radius:0;background:var(--paper);color:var(--ink);width:100%;min-width:0;transition:border-color .25s,box-shadow .25s}
.lp-form input:focus{outline:0;border-color:var(--ink);box-shadow:inset 0 -2px 0 var(--blue)}
.lp-form .ok{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.6rem;font:400 .86rem/1.4 var(--body);color:var(--muted);align-items:start}
.lp-form .ok input{width:1.1rem;height:1.1rem;margin:.15rem 0 0;accent-color:var(--navy)}
.lp-form .ok a{text-decoration:underline}
.lp-form .btn{width:100%;justify-content:space-between}
.lp-form .note{color:var(--navy);font-size:.95rem}
.hp{position:absolute;left:-200vw;width:1px;height:1px;overflow:hidden}

.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:2rem 5rem;align-items:start}
.two>.st{position:sticky;top:7rem;display:grid;gap:1rem}
.two h2{font-size:clamp(1.9rem,4vw,3.1rem)}
.two .st p{color:var(--muted);font-size:1.1rem}
.incl{border-top:2px solid var(--ink)}
.incl li{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:.5rem 2rem;padding-block:1.35rem;border-bottom:1px solid var(--line);position:relative}
.incl li::before{content:"";position:absolute;left:0;top:-2px;height:2px;width:100%;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.incl li:hover::before{transform:scaleX(1)}
.incl h3{font-size:1.2rem;line-height:1.2;letter-spacing:-.015em}
.incl p{color:var(--muted)}
.softbg{background:var(--soft)}
.two .steps{margin-top:0}
.side-img{background:var(--soft);padding:1.5rem;display:grid;place-items:center;margin-top:1rem}
.side-img img{max-height:16rem;width:auto}

.xsell{background:var(--night);color:var(--night-ink);padding-block:clamp(2.5rem,5vw,4rem);position:relative;overflow:hidden}
.xsell .wrap{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1.5rem 3rem;align-items:center}
.xsell .bigsun{width:clamp(5.5rem,10vw,8rem);margin:0}
.xsell h2{font-size:clamp(1.6rem,3.2vw,2.5rem)}
.xsell h2 b{color:var(--gold)}
.xsell p{color:var(--night-muted);margin-top:.7rem;max-width:40rem}

.faq{border-top:2px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{font:600 1.2rem/1.3 var(--head);letter-spacing:-.015em;padding:1.3rem 3rem 1.3rem 0;cursor:pointer;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before,.faq summary::after{content:"";position:absolute;right:.4rem;top:50%;width:1.1rem;height:2px;background:var(--ink);transition:transform .4s var(--ease)}
.faq summary::after{transform:rotate(90deg)}
.faq details[open] summary::after{transform:rotate(0)}
.faq details p{padding-bottom:1.4rem;color:var(--muted);max-width:46rem}
.faq details[open] p{animation:lpup .5s var(--ease)}

.cta-end .btns{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:1.8rem}
.btn.line{background:transparent;border-color:#fff;color:#fff}

.mbar{display:none}
.thanks{min-height:60vh;display:grid;align-content:center}
.thanks h1{font-size:clamp(2.4rem,6vw,4.6rem);max-width:16ch;margin-top:1rem}
.thanks p{font-size:1.2rem;color:var(--muted);max-width:38rem;margin-top:1.4rem}
.thanks .btns{display:flex;flex-wrap:wrap;gap:1rem 2rem;margin-top:2rem;align-items:center}

@media (max-width:64rem){
  .lp-hero .wrap,.two{grid-template-columns:minmax(0,1fr)}
  .two>.st{position:static}
  .xsell .wrap{grid-template-columns:auto minmax(0,1fr)}
  .xsell .btn{grid-column:1/-1;justify-self:start}
}
@media (max-width:38rem){
  .incl li{grid-template-columns:minmax(0,1fr)}
  .xsell .wrap{grid-template-columns:minmax(0,1fr)}
  .xsell .btn{width:100%;justify-content:space-between}
  .cta-end .btns .btn{width:100%;justify-content:space-between}
  .has-mbar .wa{display:none}
  .has-mbar footer.site{padding-bottom:4.2rem}
  .mbar{display:grid;grid-template-columns:1fr 1fr 1.5fr;position:fixed;left:0;right:0;bottom:0;z-index:22;background:var(--ink);padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:0 -.6rem 1.6rem rgba(0,0,0,.25);transform:translateY(110%);transition:transform .5s var(--ease)}
  .mbar.show{transform:none}
  .mbar a{display:flex;align-items:center;justify-content:center;gap:.4rem;min-height:3.5rem;color:#fff;font:600 .95rem var(--head);border-right:1px solid rgba(255,255,255,.18)}
  .mbar a:last-child{background:var(--paper);color:var(--ink);border-right:0}
}

/* ===== página de HELIOS IA ===== */
.hx-hero{padding-block:clamp(2.5rem,5vw,4.5rem)}
.hx-hero>.bigsun{position:absolute;right:-7rem;top:-8rem;width:27rem;margin:0;opacity:.95}
.hx-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,27rem);gap:2.5rem 4.5rem;align-items:center}
.hx-grid .in{display:grid;gap:1.25rem;justify-items:start}
.hx-grid .in>*{animation:lpup 1s var(--ease) both}
.hx-grid .in>*:nth-child(2){animation-delay:.08s}.hx-grid .in>*:nth-child(3){animation-delay:.16s}.hx-grid .in>*:nth-child(4){animation-delay:.24s}.hx-grid .in>*:nth-child(5){animation-delay:.32s}
.hx-hero h1{font-size:clamp(2.2rem,4.8vw,4rem)}
.hx-hero h1 b{color:var(--gold)}
.hx-hero p.s{font-size:clamp(1.1rem,1.5vw,1.3rem);color:var(--night-muted);max-width:36rem}
.hx-hero .lock .sol{width:3.4rem;height:3.4rem}.hx-hero .lock b{font-size:1.9rem}.hx-hero .lock small{font-size:.9rem}
.helios .ticks li::before{background-color:var(--gold)}
.helios .crumbs{color:var(--night-muted)}
.lp-form.gold{border-top-color:var(--gold)}
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem 3rem}
.three>div{border-top:3px solid var(--gold);padding-top:1.2rem;display:grid;gap:.6rem;align-content:start}
.three h3{font-size:1.45rem;line-height:1.15}
.three p{color:var(--muted)}
.sec-title{max-width:46rem;display:grid;gap:1rem;margin-bottom:clamp(2rem,4vw,3rem)}
.sec-title h2{font-size:clamp(1.9rem,4vw,3.1rem)}
.sec-title p{color:var(--muted);font-size:1.1rem}
.helios .sec-title p{color:var(--night-muted)}
.mods{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.1rem}
.mods li{background:var(--paper);border:1px solid var(--line);padding:1.4rem;display:grid;gap:.6rem;align-content:start;position:relative;transition:transform .5s var(--ease),box-shadow .5s,border-color .4s}
.mods li::before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.mods li:hover{transform:translateY(-.3rem);box-shadow:0 1.6rem 2.6rem -1.4rem rgba(14,35,64,.35)}
.mods li:hover::before{transform:scaleX(1)}
.mods h3{font-size:1.2rem;line-height:1.2;letter-spacing:-.015em}
.mods p{color:var(--muted);font-size:1.02rem}
.mods .tag{font:600 .72rem var(--head);letter-spacing:.12em;text-transform:uppercase;color:#B45309}
.who{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.who>div{background:var(--paper);padding:clamp(1.4rem,3vw,2.2rem);display:grid;gap:.8rem;align-content:start;border-left:4px solid var(--ink)}
.who h3{font-size:1.5rem}
.who p{color:var(--muted)}
.who ul{display:grid;gap:.4rem;margin-top:.3rem}
.who li{padding-left:1.1rem;position:relative}
.who li::before{content:"";position:absolute;left:0;top:.6em;width:.4rem;height:.4rem;background:var(--gold);border-radius:50%}
.helios.plain{padding-block:clamp(3rem,7vw,5.5rem)}
.helios.plain .tabs{margin-top:0}
.helios.plain .calc{margin-top:0;border-top:0;padding-top:0}
@media (max-width:64rem){
  .hx-grid{grid-template-columns:minmax(0,1fr)}
  .hx-hero>.bigsun{width:16rem;right:-5rem;top:-5rem}
  .three{grid-template-columns:minmax(0,1fr)}
  .mods{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:38rem){
  .mods,.who{grid-template-columns:minmax(0,1fr)}
  .hx-hero>.bigsun{width:11rem;right:-3.5rem;top:-3.5rem;opacity:.8}
}

/* ===== aviso de cookies ===== */
.ck{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--paper);color:var(--ink);border-top:3px solid var(--ink);box-shadow:0 -1rem 2.5rem rgba(14,35,64,.22);padding:1.1rem 0 calc(1.1rem + env(safe-area-inset-bottom,0px));font-family:var(--body);animation:lpup .6s var(--ease) both}
.ck .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem 2.5rem;align-items:center}
.ck p{font-size:1rem;line-height:1.45;max-width:52rem}
.ck p a{text-decoration:underline}
.ck-btns{display:flex;flex-wrap:wrap;gap:.6rem}
.ck button{font:600 .95rem var(--head);padding:.7rem 1.1rem;border:1.5px solid var(--ink);background:var(--paper);color:var(--ink);cursor:pointer;min-height:2.9rem;transition:background .25s,color .25s}
.ck button:hover,.ck button.pri{background:var(--ink);color:var(--paper)}
.ck button.pri:hover{background:var(--deep)}
.ck-opts{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.6rem 2rem;border-top:1px solid var(--line);padding-top:.9rem}
.ck-opts label{display:flex;gap:.5rem;align-items:flex-start;font-size:.98rem;max-width:22rem}
.ck-opts input{width:1.1rem;height:1.1rem;margin:.2rem 0 0;accent-color:var(--navy);flex:none}
.ck-opts small{display:block;color:var(--muted);font-size:.86rem}
@media (max-width:48rem){.ck .wrap{grid-template-columns:minmax(0,1fr)}.ck-btns button{flex:1 1 auto}}
/* fecha límite de transición ISO 9001:2026 */
.deadline{margin-top:1.8rem;padding:1.3rem 1.4rem;background:var(--paper);border-left:4px solid var(--blue);display:grid;gap:.35rem}
.deadline b{font:700 clamp(1.4rem,2.6vw,1.9rem)/1.15 var(--head);color:var(--ink);letter-spacing:-.02em}
.deadline small{color:var(--muted);font-size:.98rem;line-height:1.45}
