/* =====================================================================
   AAYR · Aire Acondicionado y Refrigeración
   Concepto: «Ingeniería del aire». Mobile first (390 → 768 → 1024 → 1440)
   ===================================================================== */

/* ---------- 0. Tokens ---------- */
:root{
  --navy:#1C2260; --navy-2:#0F1650; --deep:#070B2A; --panel:#0A1040;
  --sky:#1A9FD6; --sky-glow:#5CD0F5; --sky-tint:#E3F4FC; --sky-dark:#0B7FB0;
  --red:#D6264E; --red-2:#A8173A; --red-glow:#FF6B8A;
  --ice:#F4F9FC; --white:#fff; --ink:#0E1442; --muted:#4B5585;
  --on-dark:#E8EEFF; --on-dark-muted:#A9B6E0;
  --wa:#25D366; --wa-2:#128C4A;
  --brand-grad:linear-gradient(120deg,#D6264E,#1C2260 45%,#1A9FD6);
  --f-display:'Sora',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-body:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --header-h:68px;
  --pad:clamp(20px,5vw,64px);
  --ease:cubic-bezier(.2,.7,.2,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --tc:#D6264E;
}
@media (min-width:1024px){:root{--header-h:80px}}

/* ---------- 1. Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:auto}
html.lenis{height:auto}
.lenis.lenis-stopped{overflow:hidden}
.lenis.lenis-smooth{scroll-behavior:auto!important}
html.is-loading body,html.menu-open body{overflow:hidden}
body{margin:0;font-family:var(--f-body);font-size:1rem;line-height:1.65;color:var(--ink);background:var(--ice);overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
@media (min-width:1024px){body{font-size:1.0625rem}}
img,svg,canvas{display:block;max-width:100%}
img{height:auto}
h1,h2,h3,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
button{font:inherit;color:inherit}
section[id]{scroll-margin-top:calc(var(--header-h) + 4px)}
::selection{background:var(--sky-glow);color:var(--deep)}

:focus-visible{outline:3px solid #5CD0F5;outline-offset:3px;border-radius:6px}
.skip{position:fixed;left:16px;top:-80px;z-index:10000;background:var(--navy);color:#fff;padding:12px 18px;border-radius:12px;font-weight:700;text-decoration:none;transition:top .25s}
.skip:focus{top:12px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.container{width:min(100%,calc(1240px + var(--pad) * 2));margin-inline:auto;padding-inline:var(--pad)}
.turb{display:block;width:100%;height:100%}
.ico{width:1.25em;height:1.25em;flex:none}

/* Tipografía */
h1,h2,h3{font-family:var(--f-display);font-weight:700;letter-spacing:-.03em;color:var(--ink)}
h2{font-size:clamp(2rem,5.6vw,4.25rem);line-height:1.02}
h3{font-size:clamp(1.25rem,2.2vw,1.75rem);line-height:1.15;letter-spacing:-.02em}
.label{font:500 .72rem/1.4 var(--f-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--sky-dark);display:flex;align-items:center;gap:12px;margin-bottom:18px}
.label::before{content:"";width:28px;height:2px;background:currentColor;border-radius:2px;flex:none}
.label--light{color:var(--sky-glow)}
.lead{font-size:clamp(1.0625rem,1.6vw,1.3125rem);color:var(--muted);max-width:56ch;margin-top:20px}
.lead--light{color:var(--on-dark-muted)}

/* ---------- 2. Botones y enlaces ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.65em;min-height:52px;padding:0 1.7rem;border-radius:999px;border:2px solid transparent;font:700 1rem/1.1 var(--f-body);text-decoration:none;cursor:pointer;position:relative;overflow:hidden;isolation:isolate;text-align:center;
  translate:var(--mx,0px) var(--my,0px);transition:transform .35s var(--ease),box-shadow .35s var(--ease),background-color .3s,color .3s,border-color .3s}
.btn--sm{min-height:48px;padding:0 1.25rem;font-size:.92rem}
.btn--block{width:100%}
.btn--red{background:var(--red);color:#fff;box-shadow:0 14px 34px -12px rgba(214,38,78,.65)}
.btn--red::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.38) 50%,transparent 70%);transform:translateX(-130%);animation:sheen 5s ease-in-out infinite}
.btn--red:hover{background:var(--red-2);transform:translateY(-2px);box-shadow:0 20px 40px -14px rgba(214,38,78,.75)}
.btn--ghost{border-color:var(--navy);color:var(--navy);background:transparent}
.btn--ghost:hover{background:var(--navy);color:#fff;transform:translateY(-2px)}
.btn--ghost-light{border-color:rgba(232,238,255,.5);color:#fff;background:transparent}
.btn--ghost-light:hover{background:#fff;color:var(--navy);transform:translateY(-2px)}
.btn--wa{background:var(--navy);color:#fff;box-shadow:0 14px 34px -14px rgba(28,34,96,.7)}
.btn--wa:hover{background:var(--navy-2);transform:translateY(-2px)}
@keyframes sheen{0%,60%{transform:translateX(-130%)}100%{transform:translateX(130%)}}

.link-arrow{display:inline-flex;align-items:center;gap:.6em;min-height:48px;font:700 1rem/1.2 var(--f-body);color:var(--red);text-decoration:none;position:relative}
.link-arrow::after{content:"";position:absolute;left:0;right:1.9em;bottom:8px;height:2px;background:currentColor;transform:scaleX(.25);transform-origin:left;transition:transform .45s var(--ease)}
.link-arrow .ico{transition:transform .35s var(--ease)}
.link-arrow:hover::after{transform:scaleX(1)}
.link-arrow:hover .ico{transform:translateX(5px)}

.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips li{padding:7px 14px;border-radius:999px;background:var(--sky-tint);color:var(--navy);font:600 .84rem/1.3 var(--f-body)}

.glass{background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.7);border-radius:20px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 20px 50px -24px rgba(28,34,96,.35)}
.glass--dark{background:rgba(255,255,255,.06);border-color:rgba(232,238,255,.14);box-shadow:none;color:var(--on-dark)}

/* ---------- 3. Reveals (solo con JS; con respaldo) ---------- */
.js .reveal{opacity:0;transform:translateY(32px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--d,0) * 1ms)}
.js .reveal.in{opacity:1;transform:none}
.mask{position:relative;border-radius:20px;overflow:clip}
.mask__in{position:relative;width:100%;height:100%}
.js .mask-reveal:not(.in) .mask__in{clip-path:inset(14% round 20px)}
.js .mask-reveal .mask__in{transition:clip-path 1.2s var(--ease) calc(var(--d,0) * 1ms)}
.js .mask-reveal.in .mask__in{clip-path:inset(0 round 20px)}
.js .mask-reveal img{transform:scale(1.18);transition:transform 1.6s var(--ease) calc(var(--d,0) * 1ms)}
.js .mask-reveal.in img{transform:scale(1)}
/* Si el script no arranca: todo visible a los 3.5 s */
.js:not(.js-ok) .reveal{animation:revealFB .01s linear 3.5s forwards}
.js:not(.js-ok) .mask-reveal .mask__in{animation:maskFB .01s linear 3.5s forwards}
.js:not(.js-ok) .mask-reveal img{animation:imgFB .01s linear 3.5s forwards}
@keyframes revealFB{to{opacity:1;transform:none}}
@keyframes maskFB{to{clip-path:inset(0 round 20px)}}
@keyframes imgFB{to{transform:none}}

/* ---------- 4. Cargador ---------- */
.loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;color:#fff;overflow:hidden;
  animation:loaderOut .01s linear 2.4s forwards}
@keyframes loaderOut{to{opacity:0;visibility:hidden;pointer-events:none}}
.loader.is-gone{display:none}
.loader__panel{position:absolute;left:0;right:0;height:50.5%;background:var(--deep);transition:transform .7s var(--ease-out)}
.loader__panel--t{top:0}.loader__panel--b{bottom:0}
.loader.is-out .loader__panel--t{transform:translateY(-100%)}
.loader.is-out .loader__panel--b{transform:translateY(100%)}
.loader__glow{position:absolute;width:60vmax;height:60vmax;border-radius:50%;filter:blur(90px);opacity:.4;transition:opacity .5s}
.loader__glow--c{left:-25vmax;top:-10vmax;background:var(--sky)}
.loader__glow--r{right:-25vmax;bottom:-12vmax;background:var(--red)}
.loader.is-out .loader__glow{opacity:0}
.loader__core{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px;transition:opacity .45s,transform .6s var(--ease)}
.loader.is-out .loader__core{opacity:0;transform:scale(.92)}
.loader__dial{position:relative;width:148px;height:148px;display:grid;place-items:center}
.loader__ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.loader__trk{fill:none;stroke:rgba(232,238,255,.14);stroke-width:3}
.loader__bar{fill:none;stroke:var(--sky-glow);stroke-width:3;stroke-linecap:round;stroke-dasharray:402.12;stroke-dashoffset:402.12;filter:drop-shadow(0 0 6px rgba(92,208,245,.8))}
.loader__turb{width:96px;height:96px;will-change:transform}
.loader__pct{font:500 1.5rem/1 var(--f-mono);margin-top:22px;letter-spacing:.04em}
.loader__msg{font:500 .74rem/1.4 var(--f-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--on-dark-muted);margin-top:12px}
.loader__temp{font:500 .95rem/1 var(--f-mono);color:var(--sky-glow);margin-top:8px}
.loader__temp i{font-style:normal;color:var(--red-glow);margin:0 .3em}
.loader__logo{margin-top:22px;background:#fff;border-radius:12px;padding:10px 16px;opacity:0;transform:translateY(10px);transition:opacity .5s,transform .5s var(--ease)}
.loader__logo img{height:34px;width:auto}
.loader.is-logo .loader__logo{opacity:1;transform:none}

/* ---------- 5. Header, menú y termómetro ---------- */
.hdr{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--header-h);background:rgba(255,255,255,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:height .35s var(--ease),box-shadow .35s,background-color .35s}
.hdr.is-compact{height:calc(var(--header-h) - 10px);box-shadow:0 10px 34px -16px rgba(7,11,42,.3);background:rgba(255,255,255,.86)}
.hdr__in{height:100%;width:min(100%,calc(1240px + var(--pad) * 2));margin-inline:auto;padding-inline:var(--pad);display:flex;align-items:center;gap:14px}
.hdr__logo{margin-right:auto;display:block;line-height:0;border-radius:12px;transition:background-color .3s,padding .3s}
.hdr__logo img{height:40px;width:auto}
.hdr__nav{display:none}
.hdr__temp{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:rgba(28,34,96,.06);font:500 .78rem/1 var(--f-mono);color:var(--navy)}
.hdr__dot{width:9px;height:9px;border-radius:50%;background:var(--tc);box-shadow:0 0 0 3px color-mix(in srgb,var(--tc) 25%,transparent);transition:background-color .2s}
.hdr__cta{display:none}
.hdr__bar{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(28,34,96,.06)}
.hdr__bar i{display:block;height:100%;background:var(--brand-grad);transform-origin:left;transform:scaleX(0)}
.burger{width:48px;height:48px;border:0;border-radius:14px;background:rgba(28,34,96,.07);display:grid;place-content:center;gap:6px;cursor:pointer}
.burger span{display:block;width:22px;height:2px;border-radius:2px;background:var(--navy);transition:transform .4s var(--ease),background-color .3s}
.hdr.is-menu{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}
.hdr.is-menu .hdr__logo{background:#fff;padding:4px 10px}
.hdr.is-menu .burger{background:rgba(255,255,255,.12)}
.hdr.is-menu .burger span{background:#fff}
.hdr.is-menu .burger span:first-child{transform:translateY(4px) rotate(45deg)}
.hdr.is-menu .burger span:last-child{transform:translateY(-4px) rotate(-45deg)}
.hdr.is-menu .hdr__temp{background:rgba(255,255,255,.12);color:#fff}

.menu{position:fixed;inset:0;z-index:90;display:flex;flex-direction:column;justify-content:space-between;gap:24px;padding:calc(var(--header-h) + 28px) var(--pad) max(32px,env(safe-area-inset-bottom));
  background:radial-gradient(60vmax 40vmax at 100% 0,rgba(26,159,214,.35),transparent 60%),radial-gradient(50vmax 40vmax at 0 100%,rgba(214,38,78,.28),transparent 60%),var(--deep);
  visibility:hidden;clip-path:circle(0 at calc(100% - 44px) 36px);transition:clip-path .7s var(--ease-out),visibility 0s .7s;overflow-y:auto}
.menu.is-open{visibility:visible;clip-path:circle(150% at calc(100% - 44px) 36px);transition:clip-path .8s var(--ease-out),visibility 0s}
.menu__nav{display:flex;flex-direction:column;gap:4px}
.menu__nav a{font:700 2.2rem/1.25 var(--f-display);letter-spacing:-.03em;color:#fff;text-decoration:none;padding:6px 0;opacity:0;transform:translateY(34px);transition:opacity .5s,transform .6s var(--ease-out),color .2s;transition-delay:0s}
.menu__nav a:hover{color:var(--sky-glow)}
.menu.is-open .menu__nav a,.menu.is-open .menu__foot{opacity:1;transform:none;transition-delay:calc(var(--i) * 60ms + .2s)}
.menu__foot{display:flex;flex-direction:column;gap:14px;opacity:0;transform:translateY(34px);transition:opacity .5s,transform .6s var(--ease-out)}
.menu__tel{font:500 1.1rem/1 var(--f-mono);color:var(--on-dark);text-align:center;text-decoration:none;padding:14px}

.thermo{display:none}
@media (min-width:1024px){
  .thermo{position:fixed;right:22px;top:50%;z-index:60;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;color:var(--navy);transition:color .3s,opacity .4s}
  .thermo__lbl{font:500 .7rem/1 var(--f-mono)}
  .thermo__tube{width:10px;height:200px;border-radius:999px;background:rgba(28,34,96,.14);overflow:hidden}
  .thermo__fill{display:block;width:100%;height:100%;background:linear-gradient(180deg,#D6264E,#1A9FD6);transform-origin:top;transform:scaleY(0)}
  .thermo__bulb{width:22px;height:22px;margin-top:-14px;border-radius:50%;background:var(--tc);box-shadow:0 0 14px color-mix(in srgb,var(--tc) 70%,transparent);transition:background-color .2s}
  .thermo.is-dark{color:var(--on-dark)}
  .thermo.is-dark .thermo__tube{background:rgba(232,238,255,.2)}
  .hdr__nav{display:block;margin-inline:auto}
  .hdr__nav ul{display:flex;gap:clamp(14px,2vw,30px)}
  .hdr__nav a{position:relative;display:inline-flex;align-items:center;min-height:48px;font:600 .92rem/1 var(--f-body);color:var(--ink);text-decoration:none;padding:0 2px}
  .hdr__nav a::after{content:"";position:absolute;left:0;right:0;bottom:10px;height:2px;border-radius:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
  .hdr__nav a:hover::after,.hdr__nav a.is-active::after{transform:scaleX(1)}
  .hdr__nav a.is-active{color:var(--navy)}
  .hdr__logo{margin-right:0}
  .hdr__logo img{height:48px}
  .hdr__cta{display:inline-flex}
  .burger,.menu{display:none}
}

/* ---------- 6. Hero ---------- */
.hero{position:relative;min-height:100svh;padding:calc(var(--header-h) + 28px) 0 72px;background:linear-gradient(180deg,#F4F9FC,#E3F4FC);overflow:clip;display:flex;align-items:center}
.hero__bg{position:absolute;inset:0;pointer-events:none}
.aur{position:absolute;border-radius:50%;filter:blur(80px);opacity:.35;will-change:transform}
.aur--1{width:60vw;height:60vw;left:-18vw;top:-14vw;background:var(--sky);animation:drift1 22s ease-in-out infinite alternate}
.aur--2{width:48vw;height:48vw;right:-16vw;top:22%;background:var(--red-glow);animation:drift2 26s ease-in-out infinite alternate}
.aur--3{width:52vw;height:52vw;left:22%;bottom:-24vw;background:var(--sky-glow);animation:drift3 18s ease-in-out infinite alternate}
@keyframes drift1{to{transform:translate(14vw,10vw) scale(1.15)}}
@keyframes drift2{to{transform:translate(-12vw,-8vw) scale(1.2)}}
@keyframes drift3{to{transform:translate(10vw,-9vw) scale(.9)}}
#flow{position:absolute;inset:0;width:100%;height:100%}
.hero__in{position:relative;z-index:2;width:min(100%,calc(1240px + var(--pad) * 2));margin-inline:auto;padding-inline:var(--pad);display:grid;gap:36px;align-items:center}
.hero__copy{display:flex;flex-direction:column;align-items:flex-start;gap:22px;min-width:0}
.chip{display:inline-flex;align-items:center;gap:10px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.8);border:1px solid rgba(28,34,96,.1);font:500 .72rem/1.3 var(--f-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--navy);box-shadow:0 8px 24px -14px rgba(28,34,96,.4)}
.chip__dot{width:8px;height:8px;border-radius:50%;background:var(--red);position:relative;flex:none}
.chip__dot::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--red);animation:ping 2s ease-out infinite}
@keyframes ping{from{transform:scale(.4);opacity:.9}to{transform:scale(1.5);opacity:0}}
.hero h1{font-size:clamp(2.5rem,9vw,5.75rem);line-height:.98;letter-spacing:-.04em;font-weight:800}
.hw{display:inline-block}
.grad{background:linear-gradient(100deg,#D6264E,#1C2260 35%,#1A9FD6 65%,#D6264E);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:sweep 6s linear infinite;padding-bottom:.08em}
@keyframes sweep{to{background-position:200% 0}}
.hero__sub{font-size:clamp(1.0625rem,1.9vw,1.3rem);color:var(--muted);max-width:50ch}
.hero__cta{display:flex;flex-direction:column;gap:12px;width:100%}
.hero__cta .btn{width:100%}
.hero__chips{display:flex;flex-wrap:wrap;gap:8px}
.hero__chips li{padding:8px 14px;border-radius:12px;background:rgba(255,255,255,.7);border:1px solid rgba(28,34,96,.1);font:600 .8rem/1.3 var(--f-body);color:var(--navy)}
.open-badge{display:inline-flex;align-items:center;gap:10px;font:500 .78rem/1.3 var(--f-mono);color:var(--navy);letter-spacing:.04em}
.open-badge i{width:10px;height:10px;border-radius:50%;background:var(--muted);flex:none}
.open-badge.is-open i{background:#1DB954;box-shadow:0 0 0 0 rgba(29,185,84,.6);animation:pulseG 2s infinite}
.open-badge.is-closed i{background:var(--red)}
.open-badge--dark{color:var(--on-dark);margin-top:6px;display:flex}
@keyframes pulseG{70%{box-shadow:0 0 0 9px rgba(29,185,84,0)}100%{box-shadow:0 0 0 0 rgba(29,185,84,0)}}

/* Entrada del hero (con respaldo si el script falla) */
.js:not(.hero-ready) .hw,.js:not(.hero-ready) .hw-in{opacity:0;transform:translateY(.45em);filter:blur(10px);animation:hwFB .01s linear 3.4s forwards}
.hero-ready .hw,.hero-ready .hw-in{animation:hwIn .95s var(--ease) backwards;animation-delay:calc(var(--i,0) * 70ms)}
@keyframes hwIn{from{opacity:0;transform:translateY(.45em);filter:blur(10px)}}
@keyframes hwFB{to{opacity:1;transform:none;filter:none}}

/* Escenario 3D */
.stage{position:relative;width:min(92vw,420px);aspect-ratio:1;margin-inline:auto;perspective:1200px}
.stage__tilt{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}
.st-layer{position:absolute}
.st-layer--turb{inset:-6%;opacity:.9;translate:0 0 -20px}
.st-layer--ring{inset:-4%;translate:0 0 10px}
.st-layer--eye{inset:27%;translate:0 0 50px}
.st-turb{animation:spin 24s linear infinite}
.st-ring{width:100%;height:100%;animation:spin 80s linear infinite reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.eye{width:100%;height:100%;border-radius:50%;overflow:hidden;border:6px solid #fff;box-shadow:0 30px 80px -20px rgba(7,11,42,.55),0 0 0 1px rgba(28,34,96,.1);background:var(--navy)}
.eye img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;animation:kenburns 16s ease-in-out infinite alternate}
@keyframes kenburns{from{transform:scale(1.05)}to{transform:scale(1.18)}}
.hud{position:absolute}
.hud__card{padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 22px 50px -22px rgba(28,34,96,.55);animation:floaty 6s ease-in-out infinite}
.hud--svc{left:-3%;top:2%;translate:0 0 90px}
.hud--temp{right:-3%;bottom:8%;translate:0 0 110px}
.hud--temp .hud__card{animation-delay:-2s}
.hud--eq{display:none;left:2%;bottom:-4%;translate:0 0 70px}
.hud--eq .hud__card{animation-delay:-4s}
@keyframes floaty{50%{transform:translateY(-9px)}}
.hud__t{font:500 .62rem/1.2 var(--f-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--sky-dark);margin-bottom:8px}
.hud__list{display:grid;gap:6px;font:600 .78rem/1.2 var(--f-body);color:var(--ink)}
.hud__list li{display:flex;align-items:center;gap:8px}
.tick{position:relative;width:16px;height:16px;border-radius:50%;background:var(--sky-tint);border:1.5px solid var(--sky);flex:none}
.tick::after{content:"";position:absolute;left:4.5px;top:1.5px;width:4px;height:8px;border:solid var(--red);border-width:0 2px 2px 0;transform:rotate(40deg) scale(0);animation:tickLoop 6s infinite;animation-delay:calc(var(--k) * .8s)}
@keyframes tickLoop{0%,6%{transform:rotate(40deg) scale(0)}16%,84%{transform:rotate(40deg) scale(1)}94%,100%{transform:rotate(40deg) scale(0)}}
.hud__read{display:flex;align-items:baseline;gap:2px;font-family:var(--f-mono);color:var(--navy)}
.hud__read b{font-size:1.7rem;line-height:1;font-weight:500}
.hud__read small{font-size:.8rem}
.spark{width:112px;height:34px;margin-top:6px}
.spark path{fill:none;stroke:url(#gBrand);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 4s ease-in-out infinite}
@keyframes draw{0%{stroke-dashoffset:1}55%,85%{stroke-dashoffset:0}100%{stroke-dashoffset:-1}}
.hud__fans{display:flex;gap:8px}
.hud__fans .turb{width:26px;height:26px;animation:spin 3s linear infinite}
.hud__fans .turb:nth-child(2){animation-duration:2.2s;animation-direction:reverse}
.hud__fans .turb:nth-child(3){animation-duration:4s}
.hud__small{font:600 .7rem/1.3 var(--f-body);color:var(--muted);margin-top:8px;max-width:20ch}
.hero__scroll{position:absolute;left:50%;bottom:18px;z-index:3;transform:translateX(-50%);display:none;flex-direction:column;align-items:center;gap:8px;font:500 .68rem/1 var(--f-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--muted);text-decoration:none}
.hero__scroll i{width:2px;height:44px;border-radius:2px;background:rgba(28,34,96,.15);position:relative;overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;left:0;top:0;width:100%;height:50%;background:var(--red);animation:scrollcue 2s var(--ease) infinite}
@keyframes scrollcue{from{transform:translateY(-100%)}to{transform:translateY(220%)}}

@media (min-width:768px){
  .hero__cta{flex-direction:row;width:auto}
  .hero__cta .btn{width:auto}
  .hud__card{padding:14px 18px}
  .hud__t{font-size:.68rem}
  .hud__list{font-size:.9rem}
  .hud__read b{font-size:2.2rem}
  .spark{width:140px;height:42px}
  .hud--eq{display:block}
  .hero__scroll{display:flex}
}
@media (min-width:1024px){
  .hero{padding-bottom:96px}
  .hero__in{grid-template-columns:1.05fr .95fr;gap:4vw}
  .stage{width:min(100%,640px)}
  .st-layer--turb{inset:-10%}
  .hud__card{padding:16px 20px}
}

/* ---------- 7. Ticker ---------- */
.ticker{background:var(--navy);color:#fff;padding:22px 0;overflow:clip;display:grid;gap:6px}
.ticker__row{overflow:clip}
.ticker__track{display:flex;width:max-content;will-change:transform;animation:marq 42s linear infinite}
.ticker__row--b .ticker__track{animation-direction:reverse;animation-duration:58s}
.js-ticker .ticker__track{animation:none}
@keyframes marq{to{transform:translate3d(-50%,0,0)}}
.ticker__group{display:flex;align-items:center;flex:none}
.ticker__w{font:700 clamp(2rem,6vw,4.5rem)/1.2 var(--f-display);letter-spacing:-.02em;text-transform:uppercase;white-space:nowrap;padding-inline:.3em}
.ticker__row--b .ticker__w{color:transparent;-webkit-text-stroke:1.5px var(--sky-glow)}
.tk-sep{width:clamp(30px,4.6vw,56px);height:clamp(30px,4.6vw,56px);flex:none;animation:spin 6s linear infinite}

/* ---------- 8. Manifiesto ---------- */
.mani{--p:1;position:relative;background:#fff;height:220vh}
.mani__stick{position:sticky;top:0;height:100vh;height:100svh;display:flex;align-items:center;overflow:clip}
.mani__turb{position:absolute;left:50%;top:50%;width:min(125vw,920px);height:min(125vw,920px);margin:calc(min(125vw,920px) / -2) 0 0 calc(min(125vw,920px) / -2);color:var(--navy);opacity:.1;transform:rotate(calc(var(--p) * 540deg));will-change:transform;pointer-events:none}
.mani__in{position:relative;z-index:2}
.mani__text{font:700 clamp(1.55rem,5.2vw,4rem)/1.12 var(--f-display);letter-spacing:-.03em;color:var(--ink);max-width:22ch;max-width:min(100%,24em)}
.mani__text em,.mani__text strong{font-style:normal}
.k-red{--c:#D6264E}.k-sky{--c:#0B7FB0}.k-navy{--c:#1C2260}
.mani__text .w{--k:clamp(0,calc((var(--p) * 1.2 - var(--t,0)) * 14),1);color:var(--c,var(--ink))}
@supports (color:color-mix(in srgb,red,blue)){
  .mani__text .w{color:color-mix(in srgb,var(--c,#0E1442) calc(var(--k) * 100%),#C9D2EC)}
}
.k-navy .w{font-weight:800}
.mani__cards{display:grid;gap:10px;margin-top:clamp(20px,4vh,40px);opacity:clamp(0,calc((var(--p) - .85) * 14),1);transform:translateY(calc((1 - clamp(0,calc((var(--p) - .85) * 14),1)) * 24px))}
.mani__cards li{padding:12px 16px}
.mani__cards h3{font-size:1.02rem;letter-spacing:-.01em}
.mani__cards p{font-size:.9rem;color:var(--muted);line-height:1.4;margin-top:2px}
@media (min-width:768px){
  .mani__cards{grid-template-columns:repeat(3,1fr);gap:16px}
  .mani__cards li{padding:20px 22px}
  .mani__cards h3{font-size:1.2rem}
  .mani__cards p{font-size:1rem}
}

/* ---------- 9. Servicios ---------- */
.svc{background:var(--ice);padding-top:clamp(72px,10vw,140px);position:relative}
.svc__head{padding-bottom:clamp(32px,5vw,64px)}
.svc__pin{--p:1;position:relative}
.svc__track{display:flex;flex-direction:column;padding:0 var(--pad) 72px}
.svc-card{position:sticky;top:calc(var(--header-h) + 12px + var(--i) * 14px);min-height:72svh;margin-bottom:22px;display:flex;flex-direction:column;gap:18px;padding:24px;border-radius:28px;background:#fff;border:1px solid rgba(28,34,96,.08);box-shadow:0 30px 60px -34px rgba(28,34,96,.45);overflow:clip;isolation:isolate;
  transform-origin:50% 0;transform:scale(calc(1 - .04 * var(--a,0)));opacity:calc(1 - .35 * var(--a,0))}
.svc-card__num{position:absolute;right:14px;top:-6px;z-index:-1;font:800 clamp(6rem,20vw,15rem)/1 var(--f-display);letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px rgba(28,34,96,.14);pointer-events:none}
.svc-card__txt{display:flex;flex-direction:column;align-items:flex-start;gap:14px;position:relative}
.svc-card__txt .label{margin-bottom:0}
.svc-card__txt h3{font-size:clamp(1.6rem,6.4vw,2.2rem);line-height:1.08}
.svc-card__txt>p:not(.label){color:var(--muted)}
.arch{width:64%;margin:auto 0 0 auto;aspect-ratio:4/5;border-radius:999px 999px 28px 28px;overflow:clip;background:var(--sky-tint);flex:none}
.arch__in{width:100%;height:100%;position:relative;overflow:hidden}
.arch__in img{position:absolute;top:0;left:-10%;width:120%;height:100%;object-fit:cover;object-position:var(--op,50% 50%)}
.svc__dots{display:none}

@media (min-width:1024px){
  .svc__pin{--pw:min(72vw,980px);--gap:4vw;--padx:8vw;--trackw:calc(var(--pw) * 4 + var(--gap) * 3 + var(--padx) * 2);--dist:calc(var(--trackw) - 100vw);height:calc(100vh + var(--dist))}
  .svc__stick{position:sticky;top:0;height:100vh;overflow:clip;display:flex;align-items:center}
  .svc__track{flex:none;flex-direction:row;gap:var(--gap);width:var(--trackw);padding:0 var(--padx);transform:translate3d(calc(var(--p) * var(--dist) * -1),0,0);will-change:transform}
  .svc-card{position:relative;top:auto;flex:none;width:var(--pw);height:min(74vh,640px);min-height:0;margin:0;flex-direction:row;align-items:center;gap:clamp(24px,3vw,48px);padding:clamp(32px,3.4vw,56px);border-radius:36px;transform:none;opacity:1}
  .svc-card__num{right:auto;left:3%;top:-1%;font-size:clamp(9rem,17vw,15rem)}
  .svc-card__txt{flex:1;min-width:0;gap:18px}
  .svc-card__txt h3{font-size:clamp(1.9rem,3vw,2.8rem)}
  .arch{width:38%;margin:0;align-self:center;max-height:100%}
  .arch__in img{transform:translate3d(calc((var(--p) - var(--c)) * -8%),0,0);will-change:transform}
  .svc__dots{display:flex;align-items:center;justify-content:space-between;position:absolute;left:var(--padx);right:var(--padx);bottom:5vh;height:12px}
  .svc__dots::before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:rgba(28,34,96,.14)}
  .svc__dots b{position:absolute;left:0;top:50%;height:2px;margin-top:-1px;width:100%;background:var(--brand-grad);transform-origin:left;transform:scaleX(var(--p))}
  .svc__dots i{position:relative;z-index:1;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid rgba(28,34,96,.3);transition:background-color .3s,border-color .3s,transform .3s}
  .svc__dots i.is-on{background:var(--red);border-color:var(--red);transform:scale(1.25)}
}

/* ---------- 10. Equipos ---------- */
.eq{background:#fff;padding:clamp(72px,10vw,140px) 0}
.eq__head{margin-bottom:clamp(28px,4vw,56px)}
.eq__grid{display:grid;gap:20px}
.eq__tabs{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--pad) * -1);padding:0 var(--pad) 10px;scrollbar-width:none}
.eq__tabs::-webkit-scrollbar{display:none}
.eq-tab{position:relative;flex:none;scroll-snap-align:start;display:flex;align-items:center;gap:10px;min-height:52px;padding:0 18px;border-radius:999px;border:1.5px solid rgba(28,34,96,.16);background:#fff;cursor:pointer;font:700 .95rem/1 var(--f-body);color:var(--muted);overflow:hidden;transition:color .3s,background-color .3s,border-color .3s}
.eq-tab__n{font:500 .72rem/1 var(--f-mono);letter-spacing:.1em;opacity:.7}
.eq-tab__bar{position:absolute;left:0;bottom:0;width:100%;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left}
.eq-tab.is-active{background:var(--navy);border-color:var(--navy);color:#fff}
.eq-tab.is-active .eq-tab__bar{transform:none}
.eq--auto .eq-tab.is-active .eq-tab__bar{animation:eqbar 6s linear both}
.eq--off .eq-tab__bar{animation-play-state:paused!important}
@keyframes eqbar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes eqbarY{from{transform:scaleY(0)}to{transform:scaleY(1)}}

.visor{position:relative;display:grid;border-radius:28px;background:var(--panel);color:var(--on-dark);box-shadow:0 50px 90px -40px rgba(7,11,42,.7);overflow:clip;transform:perspective(1200px) rotateX(var(--vrx,0deg)) rotateY(var(--vry,0deg));transition:transform .25s var(--ease-out)}
.visor__glow{position:absolute;inset:0;background:radial-gradient(60% 50% at 80% 0,rgba(26,159,214,.35),transparent 70%),radial-gradient(50% 50% at 0 100%,rgba(214,38,78,.22),transparent 70%);pointer-events:none}
.eq-panel{grid-area:1/1;position:relative;display:flex;flex-direction:column;opacity:0;pointer-events:none;filter:blur(8px);transition:opacity .5s,filter .5s}
.eq-panel.is-active{opacity:1;pointer-events:auto;z-index:1;filter:none;transition:opacity .7s .12s,filter .7s .12s}
.eq-panel__viz{position:relative;aspect-ratio:4/3;overflow:hidden}
.eq-panel__viz .mask__in{position:absolute;inset:0;clip-path:inset(0 100% 0 0);transition:clip-path .45s}
.eq-panel.is-active .eq-panel__viz .mask__in{clip-path:inset(0);transition:clip-path 1.1s var(--ease-out) .1s}
.eq-panel__viz img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.eq-panel__txt{position:relative;padding:20px 22px 24px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.eq-panel__txt h3{color:#fff;font-size:clamp(1.4rem,4vw,2rem)}
.eq-panel__txt p{color:var(--on-dark-muted);max-width:52ch}
.eq-panel .link-arrow{color:var(--red-glow)}
.room{position:absolute;inset:0;width:100%;height:100%}
.ms{opacity:0;visibility:hidden;transition:opacity .5s,visibility 0s .5s}
.ms.is-on{opacity:1;visibility:visible;transition:opacity .6s .1s,visibility 0s}
.air{stroke-dasharray:6 10;animation:dash 1.4s linear infinite;fill:none}
.air--b{animation-duration:1.8s}.air--c{animation-duration:2.2s}
.heat{stroke-dasharray:4 9;animation:dash 1.8s linear infinite;fill:none}
.heat--b{animation-duration:2.3s}
@keyframes dash{to{stroke-dashoffset:-32}}
.eq-read{position:absolute;left:14px;top:12px;display:flex;align-items:baseline;gap:8px;font:500 .72rem/1 var(--f-mono);color:var(--on-dark-muted);text-transform:uppercase;letter-spacing:.1em;z-index:2}
.eq-read b{font-size:1.4rem;color:var(--sky-glow);text-transform:none;letter-spacing:0}
.eq-read i{font-style:normal;color:var(--red-glow)}
.eq-read em{font-style:normal;color:#fff}
.seg{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex;padding:4px;border-radius:999px;background:rgba(7,11,42,.65);border:1px solid rgba(232,238,255,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:2}
.seg button{min-height:44px;padding:0 18px;border:0;border-radius:999px;background:transparent;color:var(--on-dark);font:700 .88rem/1 var(--f-body);cursor:pointer;transition:background-color .3s,color .3s}
.seg button.is-on{background:#fff;color:var(--navy)}
.reticle{position:absolute;inset:0;pointer-events:none;z-index:1}
.reticle .c{position:absolute;width:26px;height:26px;border:2px solid var(--sky-glow)}
.reticle .c1{left:14px;top:14px;border-right:0;border-bottom:0}
.reticle .c2{right:14px;top:14px;border-left:0;border-bottom:0}
.reticle .c3{left:14px;bottom:14px;border-right:0;border-top:0}
.reticle .c4{right:14px;bottom:14px;border-left:0;border-top:0}
.reticle .scan{position:absolute;left:0;right:0;top:0;height:60px;background:linear-gradient(180deg,transparent,rgba(92,208,245,.28),transparent);animation:scanY 4s ease-in-out infinite}
@keyframes scanY{from{transform:translateY(-60px)}to{transform:translateY(calc(100cqh))}}
.eq-panel__viz{container-type:size}
.reticle .tag{position:absolute;font:500 .66rem/1 var(--f-mono);letter-spacing:.14em;color:var(--sky-glow);background:rgba(7,11,42,.6);padding:5px 8px;border-radius:6px}
.reticle .tag--a{left:48px;top:16px}
.reticle .tag--b{right:48px;bottom:18px}
.eq-thumb{position:absolute;right:16px;bottom:16px;width:28%;max-width:130px;aspect-ratio:1;border-radius:50%;overflow:hidden;border:4px solid #fff;box-shadow:0 18px 40px -12px rgba(0,0,0,.6);z-index:2}
.eq-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.flake{animation:fall 5s linear infinite;opacity:0}
.flake--s{animation-duration:3.4s}
@keyframes fall{0%{transform:translateY(0);opacity:0}15%{opacity:1}85%{opacity:.9}100%{transform:translateY(190px) rotate(120deg);opacity:0}}
.frost{animation:breathe 4s ease-in-out infinite;transform-origin:center;transform-box:fill-box}
@keyframes breathe{50%{opacity:.35}}

@media (min-width:1024px){
  .eq__grid{grid-template-columns:.8fr 1.2fr;gap:clamp(32px,5vw,72px);align-items:start}
  .eq__tabs{flex-direction:column;gap:0;overflow:visible;margin:0;padding:0;border-left:2px solid rgba(28,34,96,.12)}
  .eq-tab{border:0;border-radius:0;background:transparent;min-height:0;padding:20px 0 20px 28px;font:700 1.6rem/1.1 var(--f-display);letter-spacing:-.02em;color:#9aa4cc;overflow:visible;gap:16px}
  .eq-tab__n{font-size:.75rem}
  .eq-tab:hover{color:var(--navy)}
  .eq-tab.is-active{background:transparent;color:var(--navy)}
  .eq-tab__bar{left:-2px;top:0;bottom:auto;width:2px;height:100%;transform:scaleY(0);transform-origin:top}
  .eq-tab.is-active .eq-tab__bar{transform:none}
  .eq--auto .eq-tab.is-active .eq-tab__bar{animation-name:eqbarY}
  .visor{aspect-ratio:16/11}
  .eq-panel{height:100%}
  .eq-panel__viz{position:absolute;inset:0 0 150px 0;aspect-ratio:auto}
  .eq-panel__txt{margin-top:auto;min-height:150px;padding:24px 32px 28px;justify-content:center}
  .seg{bottom:14px}
}

/* ---------- 11. Diagnóstico ---------- */
.diag{--p:1;position:relative;height:300vh;background:var(--deep);color:#fff}
.diag__stick{position:sticky;top:0;height:100vh;height:100svh;overflow:clip}
.diag__media{position:absolute;inset:0}
.diag__in{--q:clamp(0,calc(var(--p) / .45),1);position:absolute;inset:0;overflow:hidden;clip-path:inset(calc((1 - var(--q)) * 28%) calc((1 - var(--q)) * 10%) round calc((1 - var(--q)) * 40px));will-change:clip-path}
.diag__in img{width:100%;height:100%;object-fit:cover;object-position:50% 58%;transform:scale(calc(1.25 - .25 * var(--q)));will-change:transform}
.diag__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,11,42,.1) 20%,rgba(7,11,42,.78) 62%,#070B2A 100%);pointer-events:none}
.diag__content{position:absolute;left:0;right:0;bottom:0;padding-bottom:clamp(24px,5vh,64px);display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.diag__label{margin-bottom:0;opacity:clamp(0,calc((var(--p) - .4) * 14),1)}
.diag__title{color:#fff;font-size:clamp(2rem,5.6vw,4.25rem);max-width:14ch}
.diag__title .w{display:inline-block;--o:clamp(0,calc((var(--p) - .45 - var(--i,0) * .03) * 14),1);opacity:var(--o);transform:translateY(calc((1 - var(--o)) * .45em))}
.diag__p{max-width:52ch;color:var(--on-dark);font-size:clamp(.98rem,1.5vw,1.2rem);line-height:1.55;opacity:clamp(0,calc((var(--p) - .5) * 14),1);transform:translateY(calc((1 - clamp(0,calc((var(--p) - .5) * 14),1)) * 20px))}
.diag__caps{display:grid;gap:4px;margin-top:4px}
.diag__caps li{--o:clamp(0,calc((var(--p) - var(--k)) * 14),1);position:relative;display:flex;align-items:center;gap:12px;padding:4px 0 4px 44px;font:600 .95rem/1.3 var(--f-body);color:#fff;opacity:var(--o);transform:translateX(calc((1 - var(--o)) * -18px))}
.diag__caps li::before{content:"";position:absolute;left:0;top:50%;width:32px;height:2px;background:var(--sky-glow);transform:scaleX(var(--o));transform-origin:left}
.diag__caps b{font:500 .74rem/1 var(--f-mono);color:var(--sky-glow);letter-spacing:.1em}
.diag__cta{margin-top:8px;opacity:clamp(0,calc((var(--p) - .9) * 20),1);transform:translateY(calc((1 - clamp(0,calc((var(--p) - .9) * 20),1)) * 16px));width:100%}
@media (min-width:768px){
  .diag__in{clip-path:inset(calc((1 - var(--q)) * 34%) calc((1 - var(--q)) * 22%) round calc((1 - var(--q)) * 40px))}
  .diag__cta{width:auto}
}
@media (min-width:1024px){
  .diag__content{display:grid;grid-template-columns:1.1fr .9fr;column-gap:6vw;row-gap:14px;align-items:end}
  .diag__label,.diag__title,.diag__p,.diag__cta{grid-column:1}
  .diag__caps{grid-column:2;grid-row:1/5;align-self:center;gap:18px}
  .diag__caps li{font-size:1.2rem;padding-left:72px}
  .diag__caps li::before{width:56px}
}

/* ---------- 12. Proceso ---------- */
.proc{position:relative;background:var(--deep);color:var(--on-dark);padding:clamp(72px,10vw,140px) 0;overflow:clip;
  background-image:radial-gradient(rgba(92,208,245,.08) 1.2px,transparent 1.4px);background-size:28px 28px}
.proc::before{content:"";position:absolute;inset:0;background:radial-gradient(60vmax 40vmax at 90% 0,rgba(26,159,214,.18),transparent 60%),radial-gradient(50vmax 40vmax at 0 100%,rgba(214,38,78,.14),transparent 60%);pointer-events:none}
.proc__canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.proc__grid{position:relative;z-index:2;display:grid;gap:44px}
.proc h2{color:#fff}
.proc__side .btn{margin-top:28px}
.proc__list{--node:48px;position:relative}
.proc__line{position:absolute;left:calc(var(--node) / 2 - 12px);top:calc(var(--node) / 2);width:24px;height:calc(100% - var(--node));overflow:visible}
.proc__line line{fill:none;stroke-linecap:round}
.proc__line .base{stroke:rgba(232,238,255,.14);stroke-width:2}
.proc__line .draw{stroke:var(--sky-glow);stroke-width:3;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--draw,0));filter:drop-shadow(0 0 6px rgba(92,208,245,.9))}
.step{position:relative;display:grid;grid-template-columns:var(--node) 1fr;gap:20px;padding-bottom:28px}
.step:last-child{padding-bottom:0}
.node{position:relative;z-index:1;width:var(--node);height:var(--node);border-radius:50%;background:var(--panel);border:2px solid rgba(232,238,255,.2);display:grid;place-items:center;transition:border-color .5s,box-shadow .5s}
.node .turb{width:26px;height:26px;animation:spin 14s linear infinite;filter:grayscale(.8) brightness(.8);transition:filter .6s}
.step.active .node{border-color:var(--sky-glow);box-shadow:0 0 0 6px rgba(92,208,245,.12),0 0 30px rgba(92,208,245,.5)}
.step.active .node .turb{filter:none;animation:spinFast 1.4s cubic-bezier(.2,.7,.3,1) 1,spin 8s linear 1.4s infinite}
@keyframes spinFast{from{transform:rotate(0)}to{transform:rotate(1080deg)}}
.step__card{padding:18px 20px;border-radius:20px;background:rgba(255,255,255,.05);border:1px solid rgba(232,238,255,.12);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;gap:6px;align-content:center}
.step__n{font:500 .72rem/1 var(--f-mono);letter-spacing:.14em;color:var(--sky-glow)}
.step__card h3{color:#fff;font-size:clamp(1.3rem,3vw,1.7rem)}
.step__card p{color:var(--on-dark-muted)}
@media (min-width:1024px){
  .proc__grid{grid-template-columns:.85fr 1.15fr;gap:6vw;align-items:start}
  .proc__side{position:sticky;top:calc(var(--header-h) + 40px)}
  .proc__list{--node:56px}
  .step{gap:32px;padding-bottom:44px}
  .step__card{padding:24px 28px}
}

/* ---------- 13. Campo ---------- */
.campo{background:var(--ice);padding:clamp(72px,10vw,140px) 0;overflow:clip}
.campo__head{margin-bottom:clamp(28px,4vw,56px)}
.gal{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.gal__col{display:contents}
.gal__col:last-child .gal__fig:last-child{grid-column:1/-1}
.gal__fig{position:relative}
.gal__fig .mask{border-radius:20px;border:2px solid transparent;transition:border-color .4s}
.gal__fig .mask__in{aspect-ratio:4/5}
.gal__fig.r11 .mask__in{aspect-ratio:1/1}
.gal__fig:last-child.r11 .mask__in{aspect-ratio:16/9}
.gal__fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.gal__fig figcaption{font:500 .68rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:10px}
.campo__cta{display:flex;justify-content:center;margin-top:clamp(36px,5vw,64px)}
@media (min-width:768px){
  .gal{grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,28px);align-items:start}
  .gal__col{display:flex;flex-direction:column;gap:clamp(14px,2vw,28px);transform:translate3d(0,var(--py,0px),0);will-change:transform}
  .gal__col:last-child .gal__fig:last-child{grid-column:auto}
  .gal__col:nth-child(2){margin-top:80px}
  .gal__fig:last-child.r11 .mask__in{aspect-ratio:1/1}
}
@media (min-width:1024px){
  .gal__fig:hover .mask{border-color:var(--sky)}
  .gal__fig:hover img{transform:scale(1.06)}
}

/* ---------- 14. FAQ ---------- */
.faq{background:#fff;padding:clamp(72px,10vw,140px) 0}
.faq__grid{display:grid;gap:36px}
.faq__side .btn{margin-top:28px}
.faq__list{display:grid;gap:12px}
.faq__list details{border-radius:20px;background:var(--ice);border:1px solid rgba(28,34,96,.08);transition:background-color .3s,box-shadow .3s}
.faq__list details[open]{background:#fff;box-shadow:0 24px 50px -30px rgba(28,34,96,.4)}
.faq__list summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:14px 20px;cursor:pointer;list-style:none;font:700 1.05rem/1.3 var(--f-display);letter-spacing:-.01em;color:var(--ink)}
.faq__list summary::-webkit-details-marker{display:none}
.faq__list summary i{position:relative;flex:none;width:32px;height:32px;border-radius:50%;background:var(--sky-tint)}
.faq__list summary i::before,.faq__list summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;margin:-1px 0 0 -6px;background:var(--navy);border-radius:2px;transition:transform .4s var(--ease)}
.faq__list summary i::after{transform:rotate(90deg)}
.faq__list details[open] summary i::after{transform:rotate(0)}
.faq__a{display:grid}
.faq__a>div{overflow:hidden}
.faq__a p{padding:0 20px 20px;color:var(--muted);max-width:60ch}
.js-ok .faq__a{grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}
.js-ok details.is-open .faq__a{grid-template-rows:1fr}
@media (min-width:1024px){
  .faq__grid{grid-template-columns:.8fr 1.2fr;gap:6vw;align-items:start}
  .faq__side{position:sticky;top:calc(var(--header-h) + 40px)}
}

/* ---------- 15. Contacto ---------- */
.contact{position:relative;background:linear-gradient(160deg,#0A1040,#1C2260);color:var(--on-dark);padding:clamp(72px,10vw,140px) 0;overflow:clip}
.contact__turb{position:absolute;right:-30vw;top:-10vw;width:min(120vw,1000px);height:min(120vw,1000px);color:#fff;opacity:.06;animation:spin 90s linear infinite;pointer-events:none}
.contact__glow{position:absolute;left:-20vmax;bottom:-20vmax;width:60vmax;height:60vmax;border-radius:50%;background:radial-gradient(circle,rgba(26,159,214,.35),transparent 65%);pointer-events:none}
.contact .container{position:relative;z-index:2}
.contact h2{color:#fff}
.contact__head{margin-bottom:clamp(28px,4vw,56px)}
.contact__grid{display:grid;gap:28px}
.form{display:grid;gap:14px;padding:clamp(20px,3vw,36px);border-radius:28px;background:#fff;color:var(--ink);box-shadow:0 50px 100px -40px rgba(0,0,0,.6)}
.field{position:relative}
.field input,.field select,.field textarea{width:100%;min-height:58px;padding:24px 16px 8px;border:1.5px solid rgba(28,34,96,.18);border-radius:16px;background:#fff;font:500 1rem/1.3 var(--f-body);color:var(--ink);transition:border-color .25s,box-shadow .25s;appearance:none;-webkit-appearance:none}
.field textarea{resize:vertical;min-height:120px}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--navy) 50%),linear-gradient(135deg,var(--navy) 50%,transparent 50%);background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 4px rgba(26,159,214,.18)}
.field label{position:absolute;left:17px;top:18px;font:500 1rem/1.2 var(--f-body);color:var(--muted);pointer-events:none;transform-origin:left top;transition:transform .22s var(--ease),color .22s}
.field input:focus + label,.field input:not(:placeholder-shown) + label,.field textarea:focus + label,.field textarea:not(:placeholder-shown) + label,.field--sel label{transform:translateY(-11px) scale(.76);color:var(--sky-dark)}
.field__err{min-height:1.3em;font-size:.8125rem;color:var(--red-2);margin-top:4px;padding-left:4px}
.field.is-invalid input,.field.is-invalid select,.field.is-invalid textarea{border-color:var(--red);box-shadow:0 0 0 4px rgba(214,38,78,.12)}
.form .btn{margin-top:4px}
.form__ok{min-height:1.4em;text-align:center;font-weight:700;color:var(--sky-dark)}
.contact__info{display:grid;gap:14px;align-content:start}
.info{display:flex;align-items:flex-start;gap:16px;padding:18px 20px;text-decoration:none}
.info>.ico{width:28px;height:28px;color:var(--sky-glow);margin-top:2px}
.info span{display:flex;flex-direction:column;gap:2px;min-width:0}
.info small,.map small{font:500 .68rem/1.2 var(--f-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--on-dark-muted)}
.info b{font:700 1.1rem/1.35 var(--f-display);color:#fff;letter-spacing:-.01em}
.info b a{text-decoration:none}
.info b a:hover{color:var(--sky-glow)}
.info--wa{transition:background-color .3s,transform .35s var(--ease)}
.info--wa:hover{background:rgba(37,211,102,.14);transform:translateY(-3px)}
.info--wa>.ico{color:var(--wa)}
.map{padding:18px 20px 20px;display:grid;gap:12px}
.map__head{display:flex;align-items:flex-start;gap:16px}
.map__head>.ico{width:28px;height:28px;color:var(--sky-glow)}
.map__head span{display:flex;flex-direction:column;gap:2px}
.map__head b{font:700 1.1rem/1.35 var(--f-display);color:#fff}
.radar{width:100%;height:auto;border-radius:14px;background:rgba(7,11,42,.5);border:1px solid rgba(232,238,255,.1)}
.road{fill:none;stroke:rgba(232,238,255,.3);stroke-width:7;stroke-linecap:round}
.road--s{stroke:rgba(232,238,255,.13);stroke-width:4}
.map__t{font:500 10px var(--f-mono);fill:var(--on-dark);letter-spacing:.08em;text-transform:uppercase}
.map__t--s{fill:var(--on-dark-muted);font-size:9px}
.ping{fill:none;stroke:var(--red-glow);stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:radar 3s ease-out infinite}
.ping--b{animation-delay:1s}.ping--c{animation-delay:2s}
@keyframes radar{from{transform:scale(.6);opacity:.9}to{transform:scale(7);opacity:0}}
.pinbounce{animation:bounce 1.8s ease-in-out infinite}
@keyframes bounce{50%{transform:translateY(-6px)}}
.map__note{font-size:.9rem;color:var(--on-dark-muted)}
.map .btn{justify-self:start}
.info-fb{display:inline-flex;align-items:center;gap:10px;min-height:48px;color:var(--on-dark-muted);font-weight:600;text-decoration:none;transition:color .3s}
.info-fb:hover{color:#fff}
@media (min-width:768px){
  .form{grid-template-columns:1fr 1fr;column-gap:14px}
  .field--full,.form .btn,.form__ok{grid-column:1/-1}
}
@media (min-width:1024px){
  .contact__grid{grid-template-columns:1.1fr .9fr;gap:clamp(28px,4vw,56px);align-items:start}
}

/* ---------- 16. Footer ---------- */
.foot{position:relative;background:var(--deep);color:var(--on-dark-muted);padding:clamp(56px,8vw,96px) 0 0;overflow:clip}
.foot__grid{display:grid;gap:32px;grid-template-columns:1fr 1fr}
.foot__brand{grid-column:1/-1;display:grid;gap:16px;max-width:42ch}
.foot__logo{display:inline-block;justify-self:start;background:#fff;padding:10px 16px;border-radius:14px;line-height:0}
.foot__logo img{height:40px;width:auto}
.foot__col{display:flex;flex-direction:column;gap:2px;font-size:.95rem}
.foot__col h3{font:500 .72rem/1 var(--f-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--sky-glow);margin-bottom:10px}
.foot__col a{display:inline-flex;align-items:center;min-height:36px;color:var(--on-dark);text-decoration:none;transition:color .25s}
.foot__col a:hover{color:var(--sky-glow)}
.foot__word{font:800 clamp(5rem,22vw,20rem)/.82 var(--f-display);letter-spacing:-.04em;text-align:center;margin-top:clamp(32px,6vw,72px);color:transparent;-webkit-text-fill-color:transparent;-webkit-text-stroke:1.5px rgba(92,208,245,.45);
  background:var(--brand-grad) no-repeat 0 0 / calc(var(--fp,1) * 100%) 100%;-webkit-background-clip:text;background-clip:text;user-select:none;padding-bottom:.06em}
.foot__bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:20px max(24px,env(safe-area-inset-bottom));border-top:1px solid rgba(232,238,255,.1);font-size:.85rem}
.to-top{width:52px;height:52px;border-radius:50%;border:1.5px solid rgba(232,238,255,.25);background:rgba(255,255,255,.06);cursor:pointer;display:grid;place-items:center;transition:transform .4s var(--ease),border-color .3s,background-color .3s}
.to-top .turb{width:28px;height:28px;animation:spin 8s linear infinite}
.to-top:hover{transform:translateY(-4px);border-color:var(--sky-glow);background:rgba(255,255,255,.12)}
.to-top:hover .turb{animation-duration:1s}
@media (min-width:768px){
  .foot__grid{grid-template-columns:1.4fr 1fr 1fr 1.2fr 1fr}
  .foot__brand{grid-column:auto}
}

/* ---------- 17. WhatsApp flotante y halo ---------- */
.wa-float{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:80;display:flex;align-items:center;gap:10px;text-decoration:none}
.wa-float__btn{position:relative;width:60px;height:60px;border-radius:50%;background:var(--wa);color:#fff;display:grid;place-items:center;box-shadow:0 16px 34px -10px rgba(18,140,74,.7);transition:transform .35s var(--ease),background-color .3s}
.wa-float__btn .ico{width:32px;height:32px}
.wa-float__btn::before,.wa-float__btn::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--wa);animation:waPulse 2.4s ease-out infinite}
.wa-float__btn::after{animation-delay:1.2s}
@keyframes waPulse{from{transform:scale(1);opacity:.8}to{transform:scale(1.7);opacity:0}}
.wa-float:hover .wa-float__btn{background:var(--wa-2);transform:scale(1.06)}
.wa-float__label{display:none;max-width:0;overflow:hidden;white-space:nowrap;opacity:0;padding:0;border-radius:999px;background:#fff;color:var(--ink);font:700 .95rem/1 var(--f-body);box-shadow:0 14px 34px -14px rgba(7,11,42,.5);transition:max-width .6s var(--ease),opacity .4s,padding .6s var(--ease)}
@media (min-width:768px){
  .wa-float__label{display:block}
  .wa-float.show-label .wa-float__label{max-width:170px;opacity:1;padding:15px 20px}
}
.wa-float[hidden],[data-hide-nowa][hidden]{display:none!important}
.halo{display:none}
@media (pointer:fine){
  .halo{display:block;position:fixed;left:0;top:0;width:360px;height:360px;margin:-180px 0 0 -180px;border-radius:50%;background:radial-gradient(circle,rgba(92,208,245,.2),transparent 65%);pointer-events:none;z-index:5;opacity:0;transition:opacity .5s;will-change:transform}
  .halo.on{opacity:1}
}

/* ---------- 18. Efectos CSS ligados al scroll (solo con soporte) ---------- */
@supports (animation-timeline:view()){
  .foot__col,.foot__brand{animation:fadeUp linear both;animation-timeline:view();animation-range:entry 0% entry 60%}
  @keyframes fadeUp{from{opacity:.2;transform:translateY(24px)}to{opacity:1;transform:none}}
}

/* ---------- 19. Movimiento reducido ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
  .js .reveal{opacity:1;transform:none}
  .js .mask-reveal:not(.in) .mask__in,.js .mask-reveal .mask__in{clip-path:inset(0 round 20px)}
  .js .mask-reveal img{transform:none}
  .js:not(.hero-ready) .hw,.js:not(.hero-ready) .hw-in{opacity:1;transform:none;filter:none}
  .loader{animation:loaderOut .01s linear .6s forwards}
  .mani{height:auto}
  .mani__stick{position:static;height:auto;padding:96px 0}
  .diag{height:auto}
  .diag__stick{position:relative;height:auto;min-height:100svh}
  .svc__pin{height:auto}
  .svc__stick{position:static;height:auto;overflow:visible}
  .svc__track{width:auto;flex-direction:column;padding:0 var(--pad) 72px;transform:none}
  .svc-card{position:relative;top:auto;width:auto;height:auto;transform:none;opacity:1}
  .svc__dots{display:none}
  .eq--auto .eq-tab.is-active .eq-tab__bar{animation:none}
  .ticker__track{transform:none}
  .tk-sep,.st-turb,.st-ring{animation:none}
  .air,.heat{animation:none}
}
