/* ============================================================
   NEXA studio — styles.css
   Fondo oscuro continuo que evoluciona con el scroll (la capa
   #bg-base se anima por JS de navy a azul profundo y a negro),
   con glow para dar profundidad. Tipografía Manrope + Fraunces.
   Todo alineado a un contenedor único.
   ============================================================ */

:root {
  --ink:#f3f1ea; --muted:#fff; --muted-2:#88c6b7;
  --blue:#3b54ff; --blue-lt:#5dffdb; --teal:#5fe6c4;
  --line:rgba(243,241,234,.12); --card:rgba(255,255,255,.03); --card-brd:rgba(243,241,234,.12);
  --maxw:1320px; --pad:clamp(1.4rem,5vw,4rem);
  --font:"Manrope",system-ui,sans-serif; --serif:"Fraunces",Georgia,serif;
  --ease:cubic-bezier(.16,1,.3,1);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
html.loading{overflow:hidden;}
/* ---------- Loader ---------- */
.loader{position:fixed;inset:0;z-index:99999;background:#0a0e20;display:flex;align-items:center;justify-content:center;transition:opacity .6s ease;}
.loader::after{content:"";position:absolute;width:60vw;height:60vw;left:50%;top:60%;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(59,84,255,.18) 0%,transparent 60%);}
.loader.hidden{opacity:0;pointer-events:none;}
.loader-inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:1.5rem;}
.loader-brand{font-family:"Manrope",system-ui,sans-serif;font-weight:700;font-size:1.5rem;letter-spacing:.14em;text-transform:uppercase;color:#f3f1ea;opacity:0;animation:loaderIn .9s cubic-bezier(.16,1,.3,1) forwards;}
.loader-brand .brand-light{font-weight:400;color:#8a8fa6;text-transform:lowercase;letter-spacing:.02em;}
.loader-bar{width:210px;height:2px;border-radius:2px;background:rgba(243,241,234,.12);overflow:hidden;}
.loader-bar span{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#3b54ff,#5fe6c4);transition:transform .3s ease;}
.loader-pct{font-family:"Manrope",system-ui,sans-serif;font-size:.76rem;letter-spacing:.2em;color:#8a8fa6;font-variant-numeric:tabular-nums;}
@keyframes loaderIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.loader-brand{animation:none;opacity:1;}}
body{background:#0a0e20;color:var(--ink);font-family:var(--font);line-height:1.55;overflow-x:hidden;position:relative;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
ul,ol{list-style:none;}
em,.italic{font-family:var(--serif);font-style:italic;font-weight:400;}
strong{font-weight:700;}

.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad);}
.container-wide{width:100%;margin-inline:auto;padding-inline:var(--pad);}

/* ---------- Fondo (capa animada por scroll + glow) ---------- */
.bg-base{position:fixed;inset:0;z-index:0;background:#0a0e20;}
.bg-bloom{position:fixed;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(58% 48% at 50% 112%,rgba(95,230,196,.16) 0%,transparent 60%),
    radial-gradient(52% 42% at 50% 108%,rgba(59,84,255,.30) 0%,transparent 62%),
    radial-gradient(64% 56% at 82% -8%,rgba(120,90,255,.16) 0%,transparent 60%),
    radial-gradient(50% 50% at 12% 30%,rgba(59,84,255,.10) 0%,transparent 60%);}
#particles{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;}
.grain{position:fixed;inset:0;z-index:3;pointer-events:none;opacity:.4;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");}

/* Cursor */
.cursor,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:9999;border-radius:50%;transform:translate(-50%,-50%);}
.cursor{width:7px;height:7px;background:var(--teal);mix-blend-mode:screen;}
.cursor-ring{width:34px;height:34px;border:1.5px solid rgba(243,241,234,.45);transition:width .2s,height .2s,border-color .2s;}
.cursor-ring.hover{width:54px;height:54px;border-color:var(--teal);}
@media (hover:none){.cursor,.cursor-ring{display:none;}}
.scroll-progress{position:fixed;top:0;left:0;height:2px;width:0%;z-index:9998;background:linear-gradient(90deg,var(--blue),var(--teal));}

/* ---------- Tipografía base ---------- */
.eyebrow{display:inline-block;font-size:.76rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--blue-lt);margin-bottom:1.4rem;}
.section-title{font-size:clamp(2.3rem,5.5vw,4.4rem);line-height:1.02;font-weight:700;letter-spacing:-.03em;}
.section-title em{font-weight:400;letter-spacing:-.01em;color:var(--blue-lt);}
.section-lead{color:var(--muted);font-size:clamp(1.02rem,1.5vw,1.18rem);max-width:50ch;margin-top:1.4rem;line-height:1.6;}

/* ---------- Secciones (stacking: cada una se fija y la siguiente se desliza encima) ---------- */
.section{position:sticky;top:0;z-index:4;min-height:100vh;margin-bottom:42vh;display:flex;flex-direction:column;justify-content:center;padding-block:clamp(4rem,8vw,6.5rem);overflow:hidden;box-shadow:0 -28px 60px -14px rgba(0,0,0,.55);}
.section > .container,.section > .container-wide,.contacto > .container{position:relative;z-index:1;}
.section-head{max-width:760px;margin-bottom:clamp(2.5rem,5vw,4rem);}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;gap:.5em;font-weight:600;font-size:.95rem;padding:.92em 1.8em;border-radius:100px;background:var(--ink);color:#0a0e20;border:1px solid transparent;transition:transform .4s var(--ease),box-shadow .4s var(--ease);}
.btn:hover{transform:translateY(-3px);box-shadow:0 16px 44px rgba(59,84,255,.3);}
.btn-ghost{background:transparent;border:1px solid var(--card-brd);color:var(--ink);}
.btn-ghost:hover{border-color:var(--ink);}

/* ---------- NAV ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .4s var(--ease),backdrop-filter .4s,border-color .4s;border-bottom:1px solid transparent;}
.nav.scrolled{background:rgba(8,10,22,.6);backdrop-filter:blur(16px);border-bottom-color:var(--line);}
.nav-inner{position:relative;display:flex;align-items:center;justify-content:space-between;padding-block:1.15rem;}
.nav-group{display:flex;align-items:center;gap:1.6rem;}
.brand{position:absolute;left:50%;transform:translateX(-50%);font-weight:700;font-size:1.12rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;}
.brand-light{font-weight:400;color:rgba(243,241,234,.6);text-transform:lowercase;letter-spacing:.01em;}
.nav-cta{font-size:.9rem;font-weight:500;}
.nav-cta:hover{color:var(--teal);}
.nav-links{display:flex;gap:1.7rem;}
.nav-links a{font-size:.9rem;font-weight:500;color:rgba(243,241,234,.62);transition:color .25s;position:relative;}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-4px;height:1px;width:0;background:var(--teal);transition:width .3s var(--ease);}
.nav-links a:hover{color:var(--ink);}
.nav-links a:hover::after{width:100%;}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px;}
.nav-toggle span{width:22px;height:2px;background:var(--ink);transition:transform .3s,opacity .3s;}
.nav.open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav.open .nav-toggle span:nth-child(2){transform:rotate(-45deg);}

/* ---------- HERO ---------- */
.hero{position:sticky;top:0;z-index:4;min-height:100svh;margin-bottom:42vh;display:flex;flex-direction:column;justify-content:center;text-align:center;padding-block:8rem 5rem;overflow:hidden;background:#0a0e20;}
.hero-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;}
.hero .scroll-hint{z-index:2;}
/* Fondo shader del hero */
.hero-shader{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%;}
.hero-shader-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(8,10,28,.34) 0%,rgba(8,10,28,.14) 42%,rgba(8,10,28,.5) 100%);}
.hero .eyebrow,.hero-lead,.hero .stat-label{text-shadow:0 1px 18px rgba(0,0,0,.35);}
.hero-title{text-shadow:0 2px 10px rgba(0,0,0,.2);}
/* Aura: orbes desenfocados que flotan = fondo vivo (se inyecta en cada sección) */
.aura{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;}
.aura .orb{position:absolute;border-radius:50%;filter:blur(72px);mix-blend-mode:screen;will-change:transform;}
.orb-a{width:62vw;height:44vh;left:50%;bottom:-16vh;transform:translateX(-50%);background:radial-gradient(circle,rgba(43,107,255,.5) 0%,rgba(43,107,255,.14) 40%,transparent 68%);animation:orbA 18s ease-in-out infinite;}
.orb-b{width:40vw;height:40vw;left:-9vw;bottom:-9vw;background:radial-gradient(circle,rgba(95,230,196,.34) 0%,transparent 64%);animation:orbB 22s ease-in-out infinite;}
.orb-c{width:44vw;height:44vw;right:-12vw;top:-14vw;background:radial-gradient(circle,rgba(124,90,255,.34) 0%,transparent 64%);animation:orbC 25s ease-in-out infinite;}
.aura-strong .orb-a{height:55vh;bottom:-22vh;background:radial-gradient(circle,rgba(43,107,255,.82) 0%,rgba(43,107,255,.24) 38%,transparent 68%);}
.aura-strong .orb-b{background:radial-gradient(circle,rgba(95,230,196,.55) 0%,transparent 64%);}
.aura-strong .orb-c{background:radial-gradient(circle,rgba(124,90,255,.5) 0%,transparent 64%);}
/* Aura atenuada (p. ej. modelos): fondo más oscuro para que fotos/videos resalten */
.aura-dim .orb{opacity:.4;filter:blur(95px);}
.aura-dim .orb-a{height:34vh;bottom:-12vh;}
@keyframes orbA{0%,100%{transform:translateX(-50%) translateY(0) scale(1);}50%{transform:translateX(-50%) translateY(-7%) scale(1.12);}}
@keyframes orbB{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(10%,-8%) scale(1.15);}}
@keyframes orbC{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(-9%,7%) scale(1.18);}}
.hero .eyebrow{color:var(--muted);}
.hero-title{font-size:clamp(3rem,11vw,8.6rem);line-height:.92;font-weight:800;letter-spacing:-.045em;margin:.2rem 0 1.8rem;}
.hero-title .line{display:block;overflow:hidden;}
.hero-title .line>span{display:inline-block;}
.hero-title em{font-weight:400;letter-spacing:-.005em;color:var(--ink);}
.hero-lead{font-size:clamp(1.05rem,1.9vw,1.32rem);color:var(--muted);max-width:60ch;}
.hero-cta{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:2.4rem;}
.hero-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(2.4rem,7vw,5.5rem);margin-top:clamp(3.5rem,8vw,6rem);padding-top:2.6rem;border-top:1px solid var(--line);width:min(100%,760px);}
.stat{display:flex;flex-direction:column;align-items:center;}
.stat-num{font-size:clamp(2.2rem,4.5vw,3.2rem);font-weight:700;line-height:1;letter-spacing:-.02em;}
.stat-label{color:var(--muted-2);font-size:.88rem;margin-top:.55rem;}
.scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);width:24px;height:38px;border:1.5px solid var(--line);border-radius:14px;display:flex;justify-content:center;padding-top:7px;}
.scroll-hint span{width:3px;height:8px;border-radius:2px;background:var(--teal);animation:sd 1.6s var(--ease) infinite;}
@keyframes sd{0%{opacity:0;transform:translateY(-3px);}40%{opacity:1;}80%,100%{opacity:0;transform:translateY(10px);}}

/* ---------- MARQUEE ---------- */
.marquee{position:relative;z-index:4;overflow:hidden;border-block:1px solid var(--line);padding-block:1.4rem;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
.marquee-track{display:inline-flex;align-items:center;gap:2.4rem;white-space:nowrap;animation:mq 38s linear infinite;}
.marquee-track span{font-size:clamp(1.1rem,2.4vw,1.8rem);font-weight:600;letter-spacing:-.01em;color:rgba(243,241,234,.8);}
.marquee-track i{color:var(--teal);font-style:normal;font-size:.9rem;}
@keyframes mq{to{transform:translateX(-50%);}}
.marquee:hover .marquee-track{animation-play-state:paused;}

/* ---------- ABOUT / QUÉ HACEMOS ---------- */
.about-head{max-width:60rem;margin-bottom:clamp(4rem,9vw,7rem);}
.about-statement{font-size:clamp(1.6rem,3vw,2.7rem);line-height:1.22;font-weight:600;letter-spacing:-.02em;}
.about-statement em{font-weight:400;color:var(--blue-lt);}
.about-services>.eyebrow{margin-bottom:2.2rem;}
.services-list{display:flex;flex-direction:column;}
.service-row{display:grid;grid-template-columns:5rem minmax(12rem,1fr) 2fr;gap:1.5rem;align-items:baseline;padding:2rem 0;border-top:1px solid var(--line);transition:padding-left .4s var(--ease);}
.service-row:last-child{border-bottom:1px solid var(--line);}
.service-row:hover{padding-left:1rem;}
.service-num{font-family:var(--serif);font-style:italic;font-size:1.6rem;color:var(--blue-lt);}
.service-row h3{font-size:clamp(1.3rem,2.6vw,1.9rem);font-weight:700;letter-spacing:-.015em;}
.service-row p{color:var(--muted);font-size:1rem;max-width:44ch;}

/* ---------- MODELOS (cards producto, retrato) ---------- */
.models-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1.5rem;}
.model-card{display:flex;flex-direction:column;gap:.9rem;}
.model-media{position:relative;aspect-ratio:3 / 4.2;border-radius:16px;overflow:hidden;border:1px solid var(--card-brd);transition:border-color .5s,box-shadow .5s,transform .5s var(--ease);}
.model-card:hover .model-media{border-color:var(--blue-lt);box-shadow:0 26px 60px rgba(59,84,255,.22);transform:translateY(-4px);}
.model-media img{width:100%;height:100%;object-fit:cover;filter:brightness(.82) saturate(1.05);transition:transform .9s var(--ease),filter .5s;}
.model-card:hover .model-media img{transform:scale(1.07);filter:brightness(.68);}
.model-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s var(--ease);filter:brightness(.9);}
.model-card:hover .model-video{opacity:1;}
.model-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,10,22,.05) 22%,rgba(8,10,22,.92));}
.model-index{position:absolute;top:.95rem;left:1.05rem;z-index:2;font-size:.72rem;font-weight:700;letter-spacing:.22em;color:rgba(243,241,234,.78);}
.model-bottom{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1.1rem 1.15rem;display:flex;flex-direction:column;gap:.45rem;}
.model-name{font-family:var(--serif);font-style:normal;font-weight:400;font-size:clamp(1.7rem,2.1vw,2.3rem);line-height:.98;letter-spacing:.01em;color:#fff;}
.model-desc{max-height:0;opacity:0;overflow:hidden;transition:max-height .5s var(--ease),opacity .4s;}
.model-card:hover .model-desc{max-height:220px;opacity:1;}
.model-desc p{font-size:.84rem;line-height:1.45;color:#d6dcef;margin:.4rem 0 .6rem;}
.tags{display:flex;flex-wrap:wrap;gap:.4rem;}
.tags li{font-size:.7rem;font-weight:500;padding:.3em .7em;border-radius:100px;border:1px solid rgba(243,241,234,.28);color:#e6eaf6;}
.model-cat{font-size:.82rem;font-weight:600;color:var(--muted);text-align:center;letter-spacing:.01em;}

/* ---------- DEMO ---------- */
.chip-row{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem;}
.chip-row li{font-size:.85rem;font-weight:500;padding:.5em 1.1em;border-radius:100px;background:rgba(255,255,255,.05);border:1px solid var(--card-brd);}
/* DEMO full-section: la grilla llena toda la sección, el texto va en una caja a la izquierda */
.demo-full{align-items:flex-start;overflow:hidden;padding-block:0;}
.demo-full .demo-stage{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;background:transparent;cursor:crosshair;z-index:0;}
.demo-full .demo-stage canvas{width:100%;height:100%;display:block;}
.demo-panel{position:relative;z-index:2;width:min(460px,90vw);margin-left:clamp(1.4rem,5vw,4.5rem);padding:2.4rem;border-radius:22px;background:rgba(8,11,26,.5);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--card-brd);box-shadow:0 30px 80px rgba(0,0,0,.45);}
.demo-panel .section-title{font-size:clamp(2rem,3.4vw,3.2rem);}
.demo-badge{position:absolute;top:1.4rem;right:1.4rem;z-index:2;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:.4em .9em;border-radius:100px;background:rgba(95,230,196,.12);border:1px solid var(--teal);color:var(--teal);}
.demo-hint{position:absolute;bottom:1.3rem;left:50%;transform:translateX(-50%);z-index:2;font-size:.8rem;color:var(--muted);text-align:center;transition:opacity .4s;}
/* Selector de demos (centro abajo) */
.demo-switch{position:absolute;left:50%;bottom:1.6rem;transform:translateX(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:.7rem;}
.demo-switch-label{font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(243,241,234,.6);}
.demo-switch-btns{display:flex;gap:.4rem;background:rgba(8,10,25,.5);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.16);border-radius:100px;padding:.45rem .5rem;}
.demo-switch-btns button{font:inherit;font-size:.85rem;font-weight:600;color:rgba(243,241,234,.7);background:transparent;border:none;border-radius:100px;padding:.55em 1.2em;cursor:pointer;transition:background .25s,color .25s;}
.demo-switch-btns button:hover{color:#fff;}
.demo-switch-btns button.active{background:linear-gradient(135deg,#3b54ff,#5fe6c4);color:#0a0e20;}
@media(max-width:560px){.demo-switch-btns{flex-wrap:wrap;justify-content:center;max-width:90vw;}}

/* ---------- PROCESO (timeline) ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;}
.step{position:relative;padding-top:2rem;border-top:1px solid var(--line);}
.step::before{content:"";position:absolute;top:-1px;left:0;width:38px;height:2px;background:var(--blue-lt);transition:width .4s var(--ease);}
.step:hover::before{width:100%;}
.step-num{font-family:var(--serif);font-style:italic;font-size:2rem;color:var(--blue-lt);display:block;margin-bottom:.7rem;}
.step h3{font-size:1.12rem;font-weight:700;margin-bottom:.5rem;letter-spacing:-.01em;}
.step p{font-size:.93rem;color:var(--muted);}

/* ---------- INSTALACIONES ---------- */
.eco-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;}
.eco-card{position:relative;padding:2.4rem 1.9rem;background:var(--card);border:1px solid var(--card-brd);border-radius:18px;transition:transform .5s var(--ease),border-color .5s;}
.eco-card:hover{transform:translateY(-6px);border-color:var(--blue-lt);}
.eco-num{font-family:var(--serif);font-style:italic;font-size:1.6rem;color:var(--blue-lt);display:block;margin-bottom:1rem;}
.eco-card h3{font-size:1.18rem;font-weight:700;margin-bottom:.5rem;letter-spacing:-.01em;}
.eco-card p{color:var(--muted);font-size:.95rem;}

/* ---------- CONTACTO ---------- */
.contacto{position:sticky;top:0;z-index:4;overflow:hidden;border-top:1px solid var(--line);min-height:100vh;display:flex;flex-direction:column;justify-content:center;background:#08090f;box-shadow:0 -28px 60px -14px rgba(0,0,0,.55);}
.contacto-scrim{background:linear-gradient(180deg,rgba(8,10,24,.46) 0%,rgba(8,10,24,.30) 45%,rgba(8,10,24,.62) 100%);}
.contacto-inner{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(3rem,8vw,6rem);align-items:end;padding-block:clamp(5rem,12vw,9rem) 3rem;}
.contacto-title{font-size:clamp(2.6rem,7vw,5.4rem);line-height:1.0;font-weight:700;letter-spacing:-.035em;margin:1rem 0 2rem;}
.contacto-title em{font-weight:400;color:var(--blue-lt);}
.contacto-mail{display:inline-block;font-size:clamp(1.1rem,2.2vw,1.5rem);border-bottom:1px solid var(--line);padding-bottom:.4rem;transition:color .25s,border-color .25s;}
.contacto-mail:hover{color:var(--teal);border-color:var(--teal);}
.contacto-meta{display:grid;grid-template-columns:1fr 1fr;gap:2rem 1.5rem;padding-bottom:.8rem;}
.meta-col{display:flex;flex-direction:column;gap:.5rem;}
.meta-label{font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-2);margin-bottom:.3rem;}
.meta-col a,.meta-col span{font-size:.98rem;}
.meta-col a:hover{color:var(--teal);}
.footer{padding-block:2.2rem;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;}
.footer-brand{font-weight:700;letter-spacing:.06em;text-transform:uppercase;}
.footer-copy{color:var(--muted-2);font-size:.85rem;}

/* ---------- Reveal base ---------- */
.reveal{opacity:0;transform:translateY(26px);}

/* ---------- Responsive ---------- */
@media (max-width:880px){
  /* En mobile las secciones altas (grillas apiladas) superan el alto de
     pantalla; con el stacking sticky su parte inferior queda oculta bajo
     la siguiente sección. Desapilamos para que cada sección fluya completa. */
  .section,.hero,.contacto{position:relative;top:auto;margin-bottom:0;box-shadow:none;min-height:auto;}
  .section{padding-block:clamp(3.2rem,11vw,5rem);}
  .hero{min-height:100svh;}
  .demo-full{min-height:100svh;}
  .contacto{padding-block:clamp(4rem,12vw,6rem) 0;}
  .nav-toggle{display:flex;}
  .nav-links{display:none;}
  .nav.open .nav-links{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:1.2rem;padding:1.6rem var(--pad);background:rgba(8,10,22,.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);}
  .demo-grid{grid-template-columns:1fr;}
  .service-row{grid-template-columns:3rem 1fr;}
  .service-row p{grid-column:2;}
  .models-grid{grid-template-columns:repeat(3,1fr);}
  .steps{grid-template-columns:repeat(2,1fr);}
  .eco-grid{grid-template-columns:repeat(2,1fr);}
  .contacto-inner{grid-template-columns:1fr;align-items:start;}
}
@media (max-width:640px){
  .models-grid{grid-template-columns:repeat(2,1fr);}
  .steps,.eco-grid,.contacto-meta{grid-template-columns:1fr;}
  .nav-cta{display:none;}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;}
  .reveal{opacity:1;transform:none;}
  .marquee-track{animation:none !important;}
  .aura .orb{animation:none !important;}
}
