/* ELEDICA S.A. · Web 3D · "Reconexión en profundidad"
   Marca: marino, azul, turquesa, celeste; ámbar solo para la chispa y el foco. */

@font-face{font-family:"Inter";src:url(../fonts/inter-latin.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --marino:#0B2239;--marino-2:#071827;--azul:#0F5382;--turq:#277AA2;--celeste:#6EC3F0;--ambar:#F5B800;
  --papel:#F7F9FC;--blanco:#fff;--texto:#34465A;--suave:#5B6B7D;--linea:#DDE4EC;
  --osc-texto:rgba(255,255,255,.84);--osc-suave:rgba(255,255,255,.7);--osc-linea:rgba(110,195,240,.26);
  --r1:28px;--r2:22px;--r3:14px;--r4:10px;
  --canal:clamp(16px,4vw,48px);--max:1280px;--nav-h:72px;
  --ease:cubic-bezier(.22,1,.36,1);
}
@media (max-width:759px){:root{--nav-h:104px}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 12px)}
body{margin:0;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:clamp(1rem,.95rem + .2vw,1.125rem);line-height:1.55;color:var(--texto);background:var(--blanco);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg,canvas{display:block;max-width:100%}
h1,h2,h3,h4{font-weight:700;color:var(--marino);margin:0;text-wrap:balance}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0;list-style:none}
a{color:inherit}
:focus-visible{outline:3px solid var(--azul);outline-offset:3px;border-radius:6px}
.nav :focus-visible,.portada :focus-visible,.banda :focus-visible,.trabajos :focus-visible,.contacto :focus-visible,.pie :focus-visible{outline-color:var(--ambar)}

.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--canal)}
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.saltar{position:fixed;left:16px;top:-80px;z-index:100;background:var(--ambar);color:var(--marino);font-weight:700;padding:12px 18px;border-radius:var(--r4);text-decoration:none}
.saltar:focus{top:12px}

/* ---------- Piezas comunes ---------- */
.ceja{display:flex;align-items:center;gap:12px;margin:0 0 18px;font-size:.8125rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--turq)}
.ceja::before{content:"";width:28px;height:2px;background:currentColor}
.ceja--osc{color:var(--celeste)}
.h2{font-size:clamp(1.875rem,1rem + 3.1vw,3.5rem);line-height:1.06;letter-spacing:-.03em;font-weight:720;margin-bottom:.5em}
.h3{font-size:clamp(1.375rem,1rem + 1.2vw,2rem);line-height:1.15;letter-spacing:-.02em}
.sub{margin:0 0 16px;font-size:.8125rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--suave)}
.sub--osc{color:var(--osc-suave)}
.cabeza{max-width:780px;margin-bottom:clamp(40px,5vw,72px)}
.cabeza__lead{font-size:clamp(1.0625rem,1rem + .35vw,1.25rem);color:var(--suave);max-width:62ch}
.num{display:inline-block;font-size:clamp(2.75rem,1.9rem + 2.3vw,4rem);font-weight:800;line-height:1;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1.2px var(--turq);transition:color .9s var(--ease) .2s}
.visto .num,.visto.num{color:var(--turq)}
.num--osc{-webkit-text-stroke-color:var(--celeste)}
.visto .num--osc{color:var(--celeste)}
html:not(.js-anim) .num{color:var(--turq)}
html:not(.js-anim) .num--osc{color:var(--celeste)}

.boton{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 28px;border-radius:var(--r3);background:var(--celeste);color:var(--marino);font-weight:700;font-size:1rem;text-decoration:none;letter-spacing:-.005em;transition:background-color .15s,transform .15s,box-shadow .15s}
.boton:hover{background:#fff;box-shadow:0 0 0 4px rgba(110,195,240,.25)}
.boton:active{transform:translateY(1px)}
.boton--grande{min-height:56px;padding:0 34px;font-size:1.0625rem}
.boton--nav{min-height:44px;padding:0 20px;font-size:.9375rem}

.enlace{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--azul);font-weight:650;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;text-decoration-color:rgba(15,83,130,.35);transition:color .15s,text-decoration-color .15s}
.enlace svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}
.enlace:hover{text-decoration-color:currentColor}
.enlace:hover svg{transform:translateX(4px)}
.enlace--osc{color:#fff;text-decoration-color:rgba(255,255,255,.4)}

.sec{padding-block:clamp(72px,9vw,144px)}
.sec--papel{background:var(--papel)}
.sec--blanco{background:var(--blanco)}

.escalon{position:absolute;top:0;left:0;width:100%;height:28px;fill:none;stroke:var(--celeste);stroke-width:2;opacity:.55}
.escalon path{vector-effect:non-scaling-stroke}

/* ---------- Navegación ---------- */
.nav{position:fixed;inset:0 0 auto;z-index:50;background:rgba(11,34,57,.86);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid rgba(110,195,240,.14)}
.nav__in{display:flex;align-items:center;gap:32px;height:var(--nav-h)}
.nav__logo{display:block;flex:none;border-radius:6px}
.logo{height:34px;width:auto}
.nav__links{display:flex;gap:6px;margin-left:auto}
.nav__links a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;color:var(--osc-texto);text-decoration:none;font-weight:550;font-size:.9375rem;border-radius:var(--r4);transition:color .15s,background-color .15s}
.nav__links a:hover{color:#fff;background:rgba(255,255,255,.07)}
.avance{position:absolute;left:0;right:0;bottom:-1px;height:2px;overflow:hidden;pointer-events:none}
.avance i{position:absolute;inset:0;transform-origin:0 50%;transform:scaleX(var(--avance,0));background:linear-gradient(90deg,var(--azul),var(--celeste) 80%,#fff)}
@media (max-width:759px){
  .nav__in{flex-wrap:wrap;height:auto;padding-block:10px 4px;gap:4px 16px;justify-content:space-between}
  .logo{height:30px}
  .nav__links{order:3;width:100%;margin:0 -10px;justify-content:space-between;gap:0}
  .nav__links a{padding:0 10px;font-size:.875rem}
}

/* ---------- Portada 3D ---------- */
.portada{position:relative;background:var(--marino);color:#fff}
.quiere-3d .portada{height:calc(100svh + 120svh)}
.portada__fija{position:sticky;top:0;height:100svh;min-height:560px;overflow:hidden;isolation:isolate}
.portada__poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 50%}
.portada__lienzo{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 1s var(--ease)}
.portada__lienzo.listo{opacity:1}
.portada__velo{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(11,34,57,.94) 0%,rgba(11,34,57,.8) 32%,rgba(11,34,57,.25) 56%,rgba(11,34,57,0) 68%),linear-gradient(180deg,rgba(11,34,57,.55) 0,rgba(11,34,57,0) 26%)}
.portada__in{position:relative;z-index:2;height:100%;display:flex;align-items:center;padding-top:var(--nav-h)}
.portada__texto{max-width:640px;padding-block:32px 96px}
.portada__velo,.portada__texto{opacity:var(--vis,1);transform:translateY(calc((1 - var(--vis,1)) * -40px))}
.portada__texto>*{transform:translateY(calc((1 - var(--vis,1)) * var(--d,0) * -1px))}
.portada__texto .ceja{--d:110}.titular{--d:70}.portada__lead{--d:36}.portada__acciones{--d:12}
.titular{font-size:clamp(2.5rem,min(1.1rem + 5.1vw,22vh - 104px),5.5rem);line-height:1.02;letter-spacing:-.04em;font-weight:760;color:#fff;margin:0 0 .4em}
.titular em{font-style:normal;color:var(--celeste)}
.portada__lead{font-size:clamp(1.0625rem,.98rem + .4vw,1.3125rem);color:var(--osc-texto);max-width:36em;margin-bottom:.6em}
.portada__lead--b{color:#fff;font-weight:550}
.portada__acciones{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:32px}
.portada__pie{position:absolute;left:0;right:0;bottom:20px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;pointer-events:none}
.portada__pie>*{pointer-events:auto}
.portada__nota{margin:0;font-size:.75rem;letter-spacing:.06em;color:rgba(255,255,255,.58)}
.portada__pista{display:none;margin:0;align-items:center;gap:10px;font-size:.8125rem;color:rgba(255,255,255,.72);transition:opacity .4s}
.portada__pista span{width:1px;height:28px;background:linear-gradient(180deg,transparent,var(--celeste));animation:pista 2.2s var(--ease) infinite}
.con-3d .portada__pista{display:flex}
.portada__pista.fuera{opacity:0}
@keyframes pista{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.portada__pausa{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(11,34,57,.55);color:#fff;font:inherit;font-size:.8125rem;font-weight:550;cursor:pointer;transition:background-color .15s,border-color .15s}
.portada__pausa[hidden]{display:none}
.portada__pausa:hover{background:rgba(11,34,57,.85);border-color:rgba(255,255,255,.55)}
.portada__pausa svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.portada__pausa .i-play{display:none;fill:currentColor;stroke:none}
.portada__pausa[aria-pressed="true"] .i-play{display:block}
.portada__pausa[aria-pressed="true"] .i-pausa{display:none}
@media (max-width:699px),(max-width:1024px) and (orientation:portrait){
  .quiere-3d .portada{height:calc(100svh + 70svh)}
  .portada__poster img{object-position:50% 100%}
  .portada__velo{background:linear-gradient(180deg,rgba(11,34,57,.96) 0%,rgba(11,34,57,.88) 44%,rgba(11,34,57,.3) 68%,rgba(11,34,57,0) 82%)}
  .portada__in{align-items:flex-start;padding-top:calc(var(--nav-h) + 28px)}
  .portada__texto{padding-block:0}
  .portada__acciones{margin-top:24px}
  .portada__pista{display:none!important}
}
@media (max-height:560px){
  .quiere-3d .portada{height:auto}
  .portada__fija{position:relative;height:auto;min-height:100svh}
}

/* ---------- Cifras y marco-rayo ---------- */
.cifras-sec__grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,96px);align-items:center}
.marco{position:relative;margin:0;width:100%;max-width:460px;justify-self:center}
.marco__svg{width:100%;height:auto;overflow:visible}
.marco figcaption{margin-top:14px;text-align:right;font-size:.8125rem;color:var(--suave)}
.marco__mitad{transition:transform 1.1s var(--ease)}
.marco__mitad--b{filter:grayscale(.9) contrast(1.06) brightness(1.04)}
.marco__luz{opacity:0;mix-blend-mode:screen;pointer-events:none}
.js-anim .marco:not(.unido) .marco__mitad--a{transform:translate(-10px,6px)}
.js-anim .marco:not(.unido) .marco__mitad--b{transform:translate(10px,-6px)}
.marco.unido .marco__luz{animation:destello 1.4s var(--ease) .75s 1 both}
@keyframes destello{0%{opacity:0}12%{opacity:1}100%{opacity:0}}
.cifras{display:grid;gap:0;margin:8px 0 18px;border-top:1px solid var(--linea)}
.cifra{display:grid;grid-template-columns:minmax(150px,auto) 1fr;gap:4px 28px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--linea)}
.cifra__num{margin:0;display:flex;align-items:baseline;gap:6px;font-size:clamp(2.5rem,1.6rem + 2.6vw,4rem);font-weight:780;letter-spacing:-.04em;line-height:1;color:var(--marino);font-variant-numeric:tabular-nums}
.cifra__u,.cifra__pre{font-size:.4em;font-weight:650;letter-spacing:0;color:var(--turq)}
.cifra__pre{order:-1}
.cifra--texto .cifra__num{font-size:clamp(1.375rem,1rem + 1.2vw,2rem);letter-spacing:-.02em}
.cifra__txt{margin:0;color:var(--suave);font-size:1rem;max-width:44ch}
.fuente{font-size:.8125rem;color:var(--suave);margin:0}

/* ---------- Quiénes somos ---------- */
.quienes__grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,96px);align-items:start}
.quienes__txt p:not(.ceja){font-size:clamp(1.0625rem,1rem + .3vw,1.1875rem)}
.pilares{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,48px) clamp(24px,3vw,40px)}
.pilar{display:grid;gap:16px;align-content:start;padding-top:22px;border-top:2px solid var(--marino)}
.pilar h3{font-size:1.25rem;margin-bottom:8px}
.pilar p{margin:0;color:var(--suave)}

/* ---------- Banda oscura (Compromiso) ---------- */
.banda{position:relative;isolation:isolate;overflow:hidden;background:var(--marino);color:var(--osc-texto);padding-block:clamp(88px,10vw,150px)}
.banda .h2,.trabajos .h2,.contacto .h2{color:#fff}
.banda__grid{display:grid;grid-template-columns:6fr 6fr;gap:clamp(40px,6vw,96px);align-items:start}
.areas{display:grid;gap:12px;margin-top:28px}
.areas li{display:flex;gap:12px;align-items:baseline;color:#fff;font-weight:550}
.areas li::before{content:"";flex:none;width:8px;height:8px;border-radius:2px;background:var(--celeste);transform:translateY(-2px) rotate(45deg)}
.objetivos{display:grid;gap:0;border-top:1px solid var(--osc-linea)}
.objetivos li{display:grid;grid-template-columns:72px 1fr;gap:20px;align-items:center;padding:20px 0;border-bottom:1px solid var(--osc-linea);font-size:clamp(1.0625rem,1rem + .3vw,1.25rem);color:#fff;font-weight:550}
.objetivos .num{font-size:clamp(2.25rem,1.8rem + 1.2vw,3rem)}

/* ---------- Servicios ---------- */
.servicios{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(40px,5vw,64px) clamp(24px,3vw,44px)}
.servicio{position:relative;display:flex;flex-direction:column;padding:26px 26px 18px;border-top:2px solid var(--marino);border-radius:0 0 var(--r2) var(--r2);background:linear-gradient(180deg,#fff 0%,var(--papel) 100%);box-shadow:0 1px 0 var(--linea),0 34px 50px -44px rgba(11,34,57,.45);transform-style:preserve-3d}
.servicio__cab{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.servicio__cab svg{width:30px;height:30px;color:var(--turq)}
.servicio h3{font-size:clamp(1.25rem,1.1rem + .4vw,1.4375rem);line-height:1.2;margin-bottom:14px}
.servicio ul{display:grid;gap:8px;margin-bottom:20px;flex:1}
.servicio li{position:relative;padding-left:18px;color:var(--suave);font-size:1rem}
.servicio li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:2px;background:var(--turq)}

/* ---------- Trabajos realizados ---------- */
.trabajos{position:relative;isolation:isolate;overflow:hidden;background:var(--marino) url(../img/cuadricula-oscuro.svg);color:var(--osc-texto);padding-block:clamp(88px,10vw,150px)}
.cabeza--osc .cabeza__lead{color:var(--osc-texto)}
.trabajos__grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,96px);align-items:start}
.capacidades{display:grid;gap:14px}
.capacidades li{display:flex;gap:14px;align-items:flex-start;color:#fff;font-size:1.0625rem}
.capacidades li::before{content:"";flex:none;width:18px;height:10px;margin-top:.45em;border-left:2px solid var(--celeste);border-bottom:2px solid var(--celeste);transform:rotate(-45deg) translateY(-3px)}
.linea-proyectos{position:relative;display:grid;gap:36px;padding-left:44px}
.linea-proyectos__cable{position:absolute;left:0;top:8px;bottom:8px;width:40px;height:calc(100% - 16px);fill:none;stroke:var(--celeste);stroke-width:2;stroke-dasharray:1;stroke-dashoffset:0;opacity:.6}
.linea-proyectos__cable path{vector-effect:non-scaling-stroke}
.js-anim .linea-proyectos__cable path{stroke-dasharray:1 1;stroke-dashoffset:1;transition:stroke-dashoffset 1.8s var(--ease)}
.js-anim .linea-proyectos.visto .linea-proyectos__cable path{stroke-dashoffset:0}
.zona .sub{position:relative;color:var(--celeste)}
.zona .sub::before{content:"";position:absolute;left:-33px;top:50%;width:12px;height:12px;margin-top:-6px;border-radius:3px;background:var(--marino);border:2px solid var(--celeste);transform:rotate(45deg)}
.proyectos{display:grid;gap:0;border-top:1px solid var(--osc-linea)}
.proyectos li{padding:14px 0;border-bottom:1px solid var(--osc-linea);color:#fff;font-size:1.0625rem}
.grupo{margin-top:clamp(72px,9vw,128px);padding-top:clamp(40px,5vw,56px);border-top:1px solid var(--osc-linea)}
.grupo__cab{display:grid;grid-template-columns:5fr 7fr;gap:clamp(24px,6vw,96px);align-items:end;margin-bottom:clamp(32px,4vw,48px)}
.grupo__cab .h3{color:#fff}
.grupo__cab p{margin:0;color:var(--osc-texto)}
.centros{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px)}
.centro{position:relative;transform-style:preserve-3d;padding:clamp(24px,2.5vw,32px);border:1px solid var(--osc-linea);border-radius:var(--r2);background:linear-gradient(180deg,rgba(110,195,240,.07),rgba(110,195,240,.015))}
.centro__cliente{margin:0 0 6px;font-size:.8125rem;font-weight:650;letter-spacing:.1em;text-transform:uppercase;color:var(--celeste)}
.centro h4{color:#fff;font-size:1.25rem;line-height:1.2;margin-bottom:20px}
.centro dl{margin:0;display:grid;gap:0}
.centro dl div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;border-top:1px solid var(--osc-linea)}
.centro dt{font-size:.875rem;color:var(--osc-suave)}
.centro dd{margin:0;color:#fff;font-size:.9375rem;text-align:right}
.centro dd b{font-size:1.5rem;font-weight:750;letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums}
.campo{margin-top:clamp(72px,9vw,128px)}
.galeria{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(12px,1.6vw,20px)}
.foto{position:relative;margin:0;overflow:hidden;border-radius:var(--r3);background:#132e47}
.foto img{width:100%;height:100%;object-fit:cover}
.foto--px img{position:absolute;left:0;top:-6%;height:112%}
.foto figcaption{position:absolute;left:0;right:0;bottom:0;padding:36px 16px 14px;font-size:.8125rem;font-weight:550;color:#fff;background:linear-gradient(180deg,rgba(7,24,39,0),rgba(7,24,39,.86))}
.g-a{grid-column:1/5;grid-row:span 2;aspect-ratio:3/4.4}
.g-b{grid-column:5/9;grid-row:span 2;aspect-ratio:3/4.4}
.g-c{grid-column:9/13;aspect-ratio:16/10}
.g-d{grid-column:9/13;aspect-ratio:16/10}
.g-c,.g-d{align-self:stretch;aspect-ratio:auto;min-height:200px}

/* ---------- Flota ---------- */
.flota__grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,6vw,96px);align-items:start}
.alturas{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 40px;margin:36px 0 40px;padding:28px 0;border-block:1px solid var(--linea)}
.altura{margin:0;display:grid}
.altura b{display:flex;align-items:baseline;font-size:clamp(4rem,2.4rem + 5vw,7rem);font-weight:800;letter-spacing:-.05em;line-height:.9;color:var(--marino);font-variant-numeric:tabular-nums}
.altura i{font-style:normal;font-size:.36em;font-weight:650;letter-spacing:0;margin-left:6px;color:var(--turq)}
.altura small{font-size:.9375rem;color:var(--suave);margin-top:6px}
.alturas__nota{flex-basis:100%;margin:6px 0 0;font-size:.8125rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--turq)}
.equipos{display:grid;gap:10px;margin-bottom:24px}
.equipos li{position:relative;padding-left:18px;color:var(--texto)}
.equipos li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:2px;background:var(--turq)}
.flota__cierre{color:var(--suave)}
.fotos{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,20px);position:sticky;top:calc(var(--nav-h) + 24px)}
.fotos .foto{aspect-ratio:4/3}
.fotos .foto--ancha{grid-column:1/-1;aspect-ratio:2/1}

/* ---------- Proceso ---------- */
.pasos{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(20px,2.4vw,36px)}
.pasos::before,.pasos::after{content:"";position:absolute;left:0;right:0;top:9px;height:2px;background:var(--linea)}
.pasos::after{background:linear-gradient(90deg,var(--turq),var(--celeste));transform-origin:left;transform:scaleX(1)}
.js-anim .pasos::after{transform:scaleX(0);transition:transform 1.8s var(--ease) .2s}
.js-anim .pasos.visto::after{transform:scaleX(1)}
.pasos-caja{position:relative}
.pasos__pulso{position:absolute;left:0;top:4px;z-index:2;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(110,195,240,.35),0 0 18px 5px rgba(110,195,240,.85);opacity:0;pointer-events:none}
.js-anim .pasos.visto+.pasos__pulso{animation:recorrer-x 2.4s var(--ease) 2s 1 both}
@keyframes recorrer-x{0%{left:0;opacity:0}12%{opacity:1}88%{opacity:1}100%{left:calc(100% - 12px);opacity:0}}
@keyframes recorrer-y{0%{top:2px;opacity:0}12%{opacity:1}88%{opacity:1}100%{top:calc(100% - 14px);opacity:0}}
.paso{position:relative;padding-top:44px}
.paso::before{content:"";position:absolute;left:0;top:2px;z-index:1;width:16px;height:16px;border-radius:4px;background:#fff;border:2px solid var(--turq);transform:rotate(45deg)}
.paso h3{font-size:1.25rem;margin:16px 0 8px}
.paso p{margin:0;color:var(--suave);font-size:1rem}

/* ---------- Preguntas ---------- */
.preguntas__grid{display:grid;grid-template-columns:4fr 8fr;gap:clamp(32px,6vw,96px);align-items:start}
.preguntas__grid .cabeza{position:sticky;top:calc(var(--nav-h) + 32px)}
.preguntas{border-top:1px solid var(--linea)}
.pregunta{border-bottom:1px solid var(--linea)}
.pregunta summary{position:relative;display:block;padding:22px 56px 22px 0;cursor:pointer;list-style:none;font-weight:650;font-size:clamp(1.0625rem,1rem + .3vw,1.1875rem);color:var(--marino);line-height:1.35;border-radius:6px}
.pregunta summary::-webkit-details-marker{display:none}
.pregunta summary::before,.pregunta summary::after{content:"";position:absolute;right:14px;top:50%;width:16px;height:2px;background:var(--turq);transition:transform .25s var(--ease)}
.pregunta summary::after{transform:rotate(90deg)}
.pregunta[open] summary::after{transform:rotate(0)}
.pregunta summary:hover{color:var(--azul)}
.pregunta p{margin:0;padding:0 56px 24px 0;color:var(--texto);max-width:68ch}

/* ---------- Contacto y pie ---------- */
.contacto{position:relative;overflow:hidden;background:var(--marino);color:var(--osc-texto);padding-block:clamp(96px,11vw,168px)}
.contacto__rayo{position:absolute;right:max(-40px,calc(50% - 760px));top:50%;width:clamp(160px,22vw,300px);height:auto;fill:var(--celeste);opacity:.07;transform:translateY(-50%) rotate(8deg)}
.contacto__in{position:relative}
.contacto .h2{max-width:20ch}
.contacto__lead{font-size:clamp(1.0625rem,1rem + .4vw,1.3125rem);margin-bottom:40px}
.contacto{isolation:isolate}
.contacto__lienzo{position:absolute;inset:0;z-index:-2;width:100%;height:100%;opacity:0;transition:opacity 1.4s var(--ease)}
.contacto__lienzo.listo{opacity:1}
.contacto__velo{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity 1.4s var(--ease);
  background:linear-gradient(90deg,rgba(11,34,57,.94) 0%,rgba(11,34,57,.78) 34%,rgba(11,34,57,.18) 62%,rgba(11,34,57,0) 74%),linear-gradient(0deg,rgba(7,24,39,.85) 0%,rgba(7,24,39,0) 26%),linear-gradient(180deg,rgba(11,34,57,.7) 0%,rgba(11,34,57,0) 22%)}
.con-red .contacto__velo{opacity:1}
.con-red .contacto{min-height:min(100svh,960px);display:flex;flex-direction:column;justify-content:center}
.con-red .contacto>.contacto__in{width:100%}
.con-red .contacto__rayo{opacity:0}
.contacto__accion{display:inline-block;padding:18px 28px 18px 0}
.boton-contacto{display:inline-flex;align-items:center;gap:22px;min-height:76px;padding:0 10px 0 40px;border-radius:999px;background:var(--celeste);color:var(--marino);font-weight:760;font-size:clamp(1.25rem,1rem + .9vw,1.75rem);letter-spacing:-.02em;text-decoration:none;
  box-shadow:0 0 0 0 rgba(110,195,240,.3),0 22px 50px -16px rgba(110,195,240,.6);transition:background-color .2s,box-shadow .35s var(--ease),translate .45s var(--ease)}
.boton-contacto:hover{background:#fff;box-shadow:0 0 0 10px rgba(110,195,240,.14),0 26px 64px -14px rgba(110,195,240,.75)}
.boton-contacto__ir{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--marino);color:#fff}
.boton-contacto__ir svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
.boton-contacto:hover .boton-contacto__ir svg{transform:translateX(3px)}
.contacto__pie{position:absolute;left:0;right:0;bottom:20px;display:flex;align-items:center;justify-content:space-between;gap:16px;pointer-events:none}
.contacto__pie>*{pointer-events:auto}
.contacto__nota{display:none}
.con-red .contacto__nota{display:block}
@media (max-width:699px),(max-width:1024px) and (orientation:portrait){
  .contacto__velo{background:linear-gradient(180deg,rgba(11,34,57,.95) 0%,rgba(11,34,57,.86) 46%,rgba(11,34,57,.2) 72%,rgba(11,34,57,0) 86%)}
  .con-red .contacto{justify-content:flex-start;min-height:100svh}
}
.pie{background:var(--marino-2);color:var(--osc-suave);font-size:.875rem;padding-block:40px}
.pie__in{display:grid;grid-template-columns:auto 1fr auto;gap:20px 40px;align-items:center}
.pie__logo{height:28px;width:auto}
.pie address{font-style:normal;line-height:1.6}
.pie__der{margin:0}
.pie a{color:#fff;display:inline-flex;align-items:center;min-height:44px}

/* ---------- Profundidad ---------- */
/* Capas de cables detrás del contenido de las secciones oscuras */
.capas{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.capa{position:absolute;left:-6%;width:112%;fill:none;stroke-linecap:round}
.capa path{vector-effect:non-scaling-stroke}
.capa--lejos{top:7%;height:9%;stroke:rgba(110,195,240,.13);stroke-width:1;filter:blur(.7px)}
.capa--medio{top:31%;height:12%;stroke:rgba(110,195,240,.17);stroke-width:1.3}
.capa--cerca{top:63%;height:16%;stroke:rgba(110,195,240,.22);stroke-width:1.8}
.capa .pulso{stroke:var(--celeste);stroke-width:3;stroke-dasharray:.05 1.1;stroke-dashoffset:1.1;opacity:0}
.capas.visto .pulso{animation:corriente 2.4s cubic-bezier(.45,0,.2,1) .4s 2 both}
.capas.visto .capa--medio .pulso{animation-delay:1.1s}
@keyframes corriente{0%{stroke-dashoffset:1.1;opacity:0}8%{opacity:1}92%{opacity:1}100%{stroke-dashoffset:0;opacity:0}}
/* Luz que sigue al puntero en las secciones oscuras */
[data-foco]::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity .5s;background:radial-gradient(560px circle at var(--fx,50%) var(--fy,50%),rgba(110,195,240,.12),transparent 70%)}
[data-foco].con-foco::before{opacity:1}
/* Cintas cruzadas al entrar en Trabajos: avanzan con el desplazamiento */
.cintas{position:relative;overflow:hidden;margin:-12px 0 clamp(56px,7vw,96px);padding:34px 0}
.cinta{white-space:nowrap;line-height:1}
.cinta__pista{display:inline-flex}
.cinta__pista span{display:inline-flex;align-items:center;gap:30px;padding:17px 30px 17px 0;font-size:clamp(1.125rem,.9rem + 1.1vw,2rem);font-weight:760;letter-spacing:-.01em;text-transform:uppercase}
.cinta__pista span::after{content:"";flex:none;width:11px;height:11px;transform:rotate(45deg)}
.cinta--a{position:relative;z-index:1;margin-top:-58px;background:var(--celeste);color:var(--marino);transform:rotate(-2.2deg) scale(1.05);box-shadow:0 22px 44px -22px rgba(0,0,0,.7)}
.cinta--a span::after{background:var(--marino)}
.cinta--b{color:transparent;-webkit-text-stroke:1px rgba(110,195,240,.6);transform:rotate(2.4deg) scale(1.05)}
.cinta--b span::after{border:1px solid rgba(110,195,240,.6)}
@media (max-width:759px){.cinta--a{margin-top:-50px}}
/* Tarjetas y fotos que se inclinan en 3D con el puntero, con un reflejo de luz */
[data-inclinar]::after{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.2),transparent 62%)}
.centro[data-inclinar]::after{background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(110,195,240,.16),transparent 62%)}
[data-inclinar].inclinado::after{opacity:1}
.servicio__cab,.servicio h3{transform:translateZ(26px)}
.centro h4,.centro dl{transform:translateZ(22px)}
.servicio.inclinado{box-shadow:0 1px 0 var(--linea),0 40px 60px -36px rgba(11,34,57,.5)}

/* ---------- Entradas (solo con JavaScript y sin "menos movimiento") ---------- */
.js-anim [data-reveal],.js-anim [data-stagger]>*{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:calc(var(--i,0) * 70ms)}
.js-anim [data-reveal].visto,.js-anim [data-stagger].visto>*{opacity:1;transform:none}
/* Títulos: cada palabra sube desde una máscara */
.dividido .pal{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.dividido .pal>span{display:inline-block;transform:translateY(108%) rotate(5deg);transform-origin:0 100%;transition:transform 1s var(--ease);transition-delay:calc(var(--k,0) * 45ms)}
.dividido.visto .pal>span{transform:none}
/* Fotos: se descubren desde abajo y bajan su acercamiento */
.js-anim .foto{clip-path:inset(16% 0 0 0 round var(--r3));opacity:0;transition:clip-path 1.2s var(--ease),opacity .8s var(--ease);transition-delay:calc(var(--i,0) * 110ms)}
.js-anim .foto.visto{clip-path:inset(0 0 0 0 round var(--r3));opacity:1}
.js-anim .foto img{scale:1.14;transition:scale 1.7s var(--ease);transition-delay:calc(var(--i,0) * 110ms)}
.js-anim .foto.visto img{scale:1}
/* La inclinación responde rápido; al soltar vuelve suave */
[data-inclinar]{transition:transform .7s var(--ease),box-shadow .35s}
.js-anim [data-reveal][data-inclinar]{transition:opacity .7s var(--ease),transform .7s var(--ease),box-shadow .35s;transition-delay:calc(var(--i,0) * 70ms)}
.js-anim .foto[data-inclinar].visto{transition:clip-path 1.2s var(--ease),opacity .8s var(--ease),transform .7s var(--ease)}
[data-inclinar].inclinado,.js-anim [data-inclinar].inclinado,.js-anim .foto[data-inclinar].inclinado{transition:transform .14s linear,box-shadow .35s,clip-path 1.2s var(--ease),opacity .8s var(--ease);transition-delay:0s}
[data-profundidad]{transition:translate .6s cubic-bezier(.2,.7,.2,1)}
/* Todo lo que se mueve solo se detiene con "Pausar movimiento" */
.pausado .capa .pulso,.pausado .pasos__pulso{animation-play-state:paused}

/* ---------- Tableta y celular ---------- */
@media (max-width:1023px){
  .servicios{grid-template-columns:1fr 1fr}
  .centros{grid-template-columns:1fr}
  .centro dl{grid-template-columns:repeat(3,1fr);gap:16px}
  .centro dl div{display:grid;justify-content:start;gap:4px}
  .centro dd{text-align:left}
  .pasos{grid-template-columns:1fr;gap:28px;padding-left:40px}
  .pasos::before,.pasos::after{left:7px;right:auto;top:8px;bottom:8px;width:2px;height:auto}
  .pasos::after{transform-origin:top;transform:scaleY(1)}
  .js-anim .pasos::after{transform:scaleY(0)}
  .js-anim .pasos.visto::after{transform:scaleY(1)}
  .paso{padding-top:0;display:grid;grid-template-columns:auto 1fr;gap:4px 20px;align-items:baseline}
  .paso::before{left:-40px;top:6px}
  .pasos__pulso{left:2px;top:2px}
  .js-anim .pasos.visto+.pasos__pulso{animation-name:recorrer-y}
  .paso .num{grid-row:span 2;font-size:2.5rem}
  .paso h3{margin:0}
  .preguntas__grid{grid-template-columns:1fr}
  .preguntas__grid .cabeza{position:static;margin-bottom:8px}
}
@media (max-width:859px){
  .cifras-sec__grid,.quienes__grid,.banda__grid,.trabajos__grid,.flota__grid,.grupo__cab{grid-template-columns:1fr}
  .marco{max-width:380px}
  .fotos{position:static}
  .galeria{grid-template-columns:1fr 1fr}
  .g-a,.g-b{grid-column:auto;grid-row:auto;aspect-ratio:3/4}
  .g-c,.g-d{grid-column:auto;aspect-ratio:4/3;min-height:0}
}
@media (max-width:599px){
  .servicios,.pilares{grid-template-columns:1fr}
  .cifra{grid-template-columns:1fr}
  .centro dl{grid-template-columns:1fr;gap:0}
  .centro dl div{display:flex;justify-content:space-between}
  .centro dd{text-align:right}
  .galeria{grid-template-columns:1fr}
  .g-a,.g-b{aspect-ratio:4/5}
  .fotos{grid-template-columns:1fr}
  .servicio{padding:22px 20px 14px}
  .boton-contacto{min-height:68px;padding-left:32px;gap:18px}
  .boton-contacto__ir{width:50px;height:50px}
  .pie__in{grid-template-columns:1fr}
  .objetivos li{grid-template-columns:56px 1fr;gap:14px}
  .pregunta summary{padding-right:44px}
  .pregunta p{padding-right:0}
}

/* ---------- Menos movimiento ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
