/* Servidores del Sur · A · Señal. Tokens en :root (hoja de diseño, ESTRATEGIA.md §8). */
@font-face{font-family:Poppins;src:url(../fonts/Poppins-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Poppins;src:url(../fonts/Poppins-Medium.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:Poppins;src:url(../fonts/Poppins-SemiBold.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Poppins fallback";src:local("Arial");size-adjust:112%;ascent-override:93%;descent-override:31%;line-gap-override:10%}

:root{
  --noche:#06080E; --sala:#161922; --tinta:#E9EEF7; --niebla:#9EABC2;
  --azul-senal:#1268FB; --azul-senal-hover:#006EDF; --azul-fibra:#0089F7; --turquesa:#00E5C2;
  --linea:rgba(233,238,247,.10); --unidad:#1C2232; --borde-unidad:#222D42; --error:#FF8A8A;
  --margen:max(clamp(20px,4vw,64px),calc((100vw - 1280px)/2)); --ancho:1280px; --sec:clamp(88px,12vw,168px);
  --t-display:clamp(40px,19.2px + 5.33vw,96px); --t-5xl:clamp(36px,19.7px + 4.19vw,80px);
  --t-4xl:clamp(32px,20.1px + 3.05vw,64px); --t-3xl:clamp(28px,19.1px + 2.29vw,52px);
  --t-xl:clamp(24px,20.7px + .86vw,33px); --t-l:clamp(19px,18.3px + .19vw,21px); --t-m:clamp(18px,16.9px + .29vw,21px);
  --t-s:17px; --t-xs:14px;
  --radio:6px; --trazo:1.4px; --rapido:200ms; --curva:cubic-bezier(.2,.7,.2,1);
  --letra:Poppins,"Poppins fallback",system-ui,sans-serif;
  --fondo:var(--noche);
  color-scheme:dark;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}
body{margin:0;background:var(--noche);color:var(--tinta);font:400 var(--t-s)/1.6 var(--letra);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--azul-senal);color:#fff}
img,video,svg{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--azul-fibra);outline-offset:3px;border-radius:4px}
h1,h2,h3,h4{margin:0;font-weight:500;text-wrap:balance}
p{margin:0}
.salto{position:absolute;left:var(--margen);top:-60px;z-index:60;background:var(--azul-senal);color:#fff;padding:10px 16px;border-radius:var(--radio);text-decoration:none}
.salto:focus{top:12px}
.visualmente-oculto{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Tipografía */
.t-display{font-size:var(--t-display);line-height:.98;letter-spacing:-.03em}
.t-5xl{font-size:var(--t-5xl);line-height:1;letter-spacing:-.03em}
.t-4xl{font-size:var(--t-4xl);line-height:1.02;letter-spacing:-.03em}
.t-3xl{font-size:var(--t-3xl);line-height:1.05;letter-spacing:-.025em}
.t-xl{font-size:var(--t-xl);line-height:1.15;letter-spacing:-.015em}
.t-l{font-size:var(--t-l);line-height:1.3;letter-spacing:-.01em;font-weight:500}
.bajada{font-size:var(--t-m);line-height:1.5;color:var(--niebla);max-width:46ch}
.texto{color:var(--niebla);max-width:64ch}
.texto+.texto{margin-top:16px}
.texto strong{color:var(--tinta);font-weight:500}

/* Envolturas: un solo borde izquierdo en todo el sitio */
.seccion{padding:var(--sec) var(--margen)}
.seccion--sala{background:var(--sala)}
.seccion--borde{border-top:1px solid var(--linea)}
.cabecera-seccion{display:grid;gap:24px;margin-bottom:clamp(48px,6vw,64px);max-width:860px}
.cabecera-seccion h2{max-width:18ch}

/* Botones y links */
.boton{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border-radius:var(--radio);border:1px solid transparent;font:500 15px/1 var(--letra);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background var(--rapido),border-color var(--rapido),color var(--rapido),transform var(--rapido) var(--curva)}
.boton:active{transform:translateY(1px)}
.boton--lleno{background:var(--azul-senal);color:#fff}
.boton--lleno:hover{background:var(--azul-senal-hover)}
.boton--borde{border-color:rgba(233,238,247,.40);color:var(--tinta);background:transparent}
.boton--borde:hover{border-color:var(--tinta)}
.acciones{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.link{color:var(--tinta);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;transition:color var(--rapido)}
.link:hover{color:var(--azul-fibra)}
.flecha::after{content:"→";display:inline-block;margin-left:8px;transition:transform var(--rapido) var(--curva)}
a:hover .flecha::after,.flecha:hover::after{transform:translateX(4px)}

/* Encabezado */
.cab{position:fixed;inset:0 0 auto;z-index:40;display:flex;align-items:center;gap:32px;height:78px;padding:0 var(--margen);border-bottom:1px solid transparent;transition:background .3s,border-color .3s}
.cab.llena,.cab--solida{background:rgba(6,8,14,.94);border-color:var(--linea);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.cab__logo{flex:none;margin-left:-6px}
.cab__logo img{width:176px;height:auto}
.cab__nav{display:flex;align-items:center;gap:28px;margin-left:auto;font-size:var(--t-xs);letter-spacing:.01em}
.cab__nav>a,.cab__menu>button{color:var(--niebla);text-decoration:none;background:none;border:0;padding:8px 0;font:inherit;cursor:pointer;transition:color var(--rapido);position:relative}
.cab__nav>a:hover,.cab__menu>button:hover,.cab__menu>button[aria-expanded="true"]{color:var(--tinta)}
.cab__nav [aria-current="page"]{color:var(--tinta)}
.cab__nav [aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--azul-fibra)}
.cab__tel{font-size:var(--t-xs);font-weight:500;color:var(--tinta);text-decoration:none;white-space:nowrap}
.cab .boton{min-height:42px;padding:0 18px;font-size:14px}
.cab__menu{position:relative}
.cab__menu>button::before{content:"";position:absolute;right:-14px;top:50%;width:6px;height:6px;margin-top:-5px;border-right:1.4px solid currentColor;border-bottom:1.4px solid currentColor;transform:rotate(45deg);transition:transform var(--rapido)}
.cab__menu>button[aria-expanded="true"]::before{transform:rotate(-135deg);margin-top:-1px}
.cab__menu>button{margin-right:14px}
.desplegable{position:absolute;top:calc(100% + 22px);left:-32px;width:min(880px,calc(100vw - 2*var(--margen)));display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:28px;padding:32px;background:var(--sala);border:1px solid var(--linea);border-radius:var(--radio);box-shadow:0 30px 60px -20px rgba(0,0,0,.7);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity var(--rapido),transform var(--rapido) var(--curva),visibility var(--rapido)}
.cab__menu.abierto .desplegable{opacity:1;visibility:visible;transform:none}
.desplegable p{font-size:13px;color:var(--niebla);margin-bottom:12px;line-height:1.35}
.desplegable a{display:block;padding:6px 0;color:var(--tinta);text-decoration:none;font-size:15px;line-height:1.3;transition:color var(--rapido)}
.desplegable a:hover{color:var(--azul-fibra)}
.desplegable .todas{grid-column:1/-1;border-top:1px solid var(--linea);padding-top:18px;font-size:14px;color:var(--niebla)}
.cab__abrir{display:none;margin-left:12px;width:44px;height:44px;border:1px solid var(--linea);border-radius:var(--radio);background:transparent;color:var(--tinta);cursor:pointer}
.cab__abrir span,.cab__abrir span::before,.cab__abrir span::after{display:block;width:18px;height:1.5px;background:currentColor;margin:auto;position:relative;content:""}
.cab__abrir span::before{position:absolute;top:-6px}
.cab__abrir span::after{position:absolute;top:6px}

/* Menú de celular */
.hoja{position:fixed;inset:0;z-index:50;background:var(--noche);padding:20px var(--margen) 40px;display:flex;flex-direction:column;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity var(--rapido),visibility var(--rapido)}
.hoja.abierta{opacity:1;visibility:visible}
.hoja__top{display:flex;justify-content:space-between;align-items:center;height:38px;margin-bottom:40px}
.hoja__top img{width:140px;height:auto}
.hoja__cerrar{width:44px;height:44px;border:1px solid var(--linea);border-radius:var(--radio);background:transparent;color:var(--tinta);font-size:22px;cursor:pointer}
.hoja nav a{display:block;padding:10px 0;font-size:var(--t-xl);text-decoration:none;border-bottom:1px solid var(--linea)}
.hoja__grupo{margin-top:28px}
.hoja__grupo p{font-size:13px;color:var(--niebla);margin-bottom:6px}
.hoja__grupo a{display:block;padding:8px 0;font-size:17px;text-decoration:none}
.hoja .acciones{margin-top:auto;padding-top:32px}
.hoja .boton{flex:1}

/* Recorrido (portada) */
.recorrido{--fondo:var(--noche)}
.recorrido video,.recorrido__poster img{filter:saturate(.7) contrast(1.06) brightness(.8)}
.recorrido__fijo::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:#0B2A52;mix-blend-mode:color;opacity:.45}
.recorrido__fijo::after{z-index:1;background:
  linear-gradient(0deg,rgba(6,8,14,.94) 0%,rgba(6,8,14,.6) 36%,transparent 68%),
  linear-gradient(180deg,rgba(6,8,14,.8) 0%,transparent 22%),
  linear-gradient(90deg,rgba(6,8,14,.6) 0%,transparent 62%)}
.ruta{position:absolute;inset:0;z-index:2;pointer-events:none;width:100%;height:100%}
.recorrido__paso{z-index:3;left:var(--margen);right:var(--margen);bottom:clamp(40px,11vh,112px)}
.recorrido__paso h1{font-size:var(--t-display);line-height:.98;letter-spacing:-.03em;max-width:16ch}
.recorrido__paso h2{font-size:var(--t-5xl);line-height:1;letter-spacing:-.03em;max-width:17ch}
.recorrido__paso p{margin-top:24px;font-size:var(--t-m);line-height:1.5;color:#CDD6E6;max-width:46ch}
.recorrido__pista{position:absolute;z-index:3;right:var(--margen);bottom:clamp(40px,11vh,112px);font-size:13px;color:var(--niebla);display:flex;align-items:center;gap:10px}
.recorrido__pista i{display:block;width:1px;height:40px;background:linear-gradient(var(--azul-fibra),transparent)}

/* Hero de páginas internas */
.hero{position:relative;min-height:max(560px,72svh);display:flex;align-items:flex-end;padding:140px var(--margen) clamp(48px,7vw,96px);overflow:hidden;isolation:isolate}
.hero__media{position:absolute;inset:0;z-index:-2}
.hero__media img,.hero__media video{width:100%;height:100%;object-fit:cover;filter:saturate(.6) contrast(1.06) brightness(.72)}
.hero__media::before{content:"";position:absolute;inset:0;z-index:1;background:#0B2A52;mix-blend-mode:color;opacity:.45}
.hero__media::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(0deg,var(--noche) 0%,rgba(6,8,14,.7) 45%,rgba(6,8,14,.35) 100%),linear-gradient(90deg,rgba(6,8,14,.75) 0%,transparent 70%)}
.hero__grilla{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,5vw,80px);align-items:end;width:100%}
.hero h1{font-size:var(--t-4xl);line-height:1.02;letter-spacing:-.03em;max-width:17ch}
.hero .bajada{margin-top:24px;color:#C4CEDF}
.hero--simple{min-height:auto;padding-top:180px}

/* Rack: el componente firma */
.servicios{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,6vw,96px);align-items:start}
.ficha{position:sticky;top:120px}
.detalle{margin-top:48px;padding-top:28px;border-top:1px solid var(--linea);min-height:210px}
.detalle__grupo{font-size:var(--t-xs);color:var(--niebla)}
.detalle__nombre{font-size:var(--t-xl);line-height:1.15;letter-spacing:-.015em;font-weight:500;margin:6px 0 12px}
.detalle__linea{color:#CDD6E6;max-width:40ch}
.detalle .link{display:inline-block;margin-top:20px;font-size:15px}
.rack{position:relative;padding:22px 34px;border-radius:var(--radio);background:linear-gradient(180deg,#0E1422,#090D17);border:1px solid #1D2638;box-shadow:0 30px 80px -30px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.04)}
.rack::before,.rack::after{content:"";position:absolute;top:14px;bottom:14px;width:12px;background:repeating-linear-gradient(180deg,transparent 0 9px,#26314A 9px 14px,transparent 14px 22px);border-inline:1px solid #1D2638}
.rack::before{left:12px}.rack::after{right:12px}
.grupo{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:start;padding:10px 0}
.grupo+.grupo{border-top:1px dashed #1F2A3F}
.grupo__rotulo{font-size:var(--t-xs);line-height:1.35;color:var(--niebla);padding-top:13px;text-align:right}
.unidades{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.u{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;width:100%;min-height:46px;padding:10px 70px 10px 18px;border:1px solid var(--borde-unidad);border-radius:3px;cursor:pointer;text-align:left;color:var(--tinta);font:500 16px/1.25 var(--letra);text-decoration:none;background:
  repeating-linear-gradient(90deg,transparent 0 5px,rgba(255,255,255,.035) 5px 7px) right 54px center/30% 50% no-repeat,
  linear-gradient(180deg,#1C2232,#141A28);transition:border-color var(--rapido),transform .25s var(--curva)}
.u small{display:block;font-weight:400;font-size:var(--t-xs);color:var(--niebla);margin-top:3px;line-height:1.35}
.u::after{content:"";position:absolute;right:18px;top:50%;width:22px;height:3px;margin-top:-1.5px;border-radius:2px;background:#24406B;transition:background .25s,box-shadow .25s}
.u:hover,.u[aria-pressed="true"],.u[aria-current="page"],.u:focus-visible{border-color:#2F5EA8;transform:translateX(-3px)}
.u[aria-pressed="true"]::after,.u[aria-current="page"]::after,.u:hover::after{background:var(--turquesa);box-shadow:0 0 12px rgba(0,229,194,.55)}
.u__mas{display:none}
.rack--chico{padding:16px 26px}
.rack--chico .grupo{grid-template-columns:1fr;gap:8px;padding:6px 0}
.rack--chico .grupo__rotulo{display:none}
.rack--chico .u{min-height:38px;padding-block:6px;font-size:14px}
.rack--chico .u small{display:none}
.rack--hub .u{padding-right:96px}
.rack--hub .u .flecha{position:absolute;right:52px;top:50%;transform:translateY(-50%);color:var(--niebla);font-size:14px}
.rack--hub .u .flecha::after{margin:0}

/* Diagramas: misma familia de trazo */
.diagrama{width:100%;height:auto;overflow:visible}
.diagrama .tr{fill:none;stroke:var(--azul-fibra);stroke-width:var(--trazo);stroke-linecap:round;stroke-linejoin:round}
.diagrama .tr--tenue{stroke:rgba(158,171,194,.35);stroke-dasharray:3 5}
.diagrama .nodo{fill:var(--noche);stroke:var(--tinta);stroke-width:1.4}
.diagrama .caja{fill:var(--sala);stroke:rgba(233,238,247,.18);stroke-width:1}
.diagrama .caja--clave{stroke:var(--azul-fibra)}
.diagrama text{font-family:var(--letra);fill:var(--tinta);font-size:14px}
.diagrama .rot{fill:var(--niebla);font-size:12.5px}
.diagrama .senal{fill:var(--turquesa)}
.dibuja .tr:not(.tr--tenue){stroke-dasharray:1;stroke-dashoffset:1}
.dibuja.visto .tr:not(.tr--tenue){stroke-dashoffset:0;transition:stroke-dashoffset 1.6s var(--curva)}
.dibuja .senal{opacity:0}
.dibuja.visto .senal{opacity:1;transition:opacity .4s 1.4s}
.figura{margin:0}
.figura figcaption{margin-top:16px;font-size:var(--t-xs);color:var(--niebla);max-width:60ch}

/* Bloque dos columnas: texto + diagrama o video */
.doble{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,96px);align-items:center}
.doble--inverso>:first-child{order:2}
.puntos{margin:32px 0 0;padding:0;list-style:none;display:grid;gap:14px;max-width:52ch}
.puntos li{position:relative;padding-left:22px;color:var(--niebla)}
.puntos li::before{content:"";position:absolute;left:0;top:.72em;width:10px;height:1.4px;background:var(--azul-fibra)}
.puntos strong{color:var(--tinta);font-weight:500}
.marco-video{position:relative;border-radius:var(--radio);overflow:hidden;aspect-ratio:16/10;background:var(--sala)}
.marco-video video,.marco-video img{width:100%;height:100%;object-fit:cover;filter:saturate(.6) contrast(1.06) brightness(.8)}
.marco-video::after{content:"";position:absolute;inset:0;background:#0B2A52;mix-blend-mode:color;opacity:.45;pointer-events:none}

/* Cifras */
.cifras{position:relative;overflow:hidden;border-block:1px solid var(--linea);isolation:isolate}
.cifras__video{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;opacity:.28;filter:saturate(.5)}
.cifras::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--noche) 0%,rgba(6,8,14,.72) 50%,var(--noche) 100%)}
.cifras__fila{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.cifra{padding:8px 28px 8px 0}
.cifra+.cifra{padding-left:28px;border-left:1px solid var(--linea)}
.cifra b{display:block;font-weight:400;font-size:var(--t-5xl);letter-spacing:-.03em;line-height:1}
.cifra span{display:block;margin-top:14px;color:var(--niebla);font-size:15px;line-height:1.45;max-width:22ch}
.cifras__nota{margin-top:40px;font-size:13px;color:var(--niebla)}

/* Filas de beneficio */
.filas{border-top:1px solid var(--linea)}
.fila{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(24px,5vw,96px);padding:28px 0;border-bottom:1px solid var(--linea)}
.fila h3{font-size:var(--t-l);line-height:1.3;letter-spacing:-.01em}
.fila p{color:var(--niebla);max-width:60ch}

/* Pruebas (por qué con SdS) */
.pruebas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--linea)}
.prueba{padding:28px 28px 0 0}
.prueba+.prueba{padding-left:28px;border-left:1px solid var(--linea)}
.prueba b{display:block;font-size:var(--t-3xl);font-weight:400;letter-spacing:-.025em;line-height:1.05}
.prueba p{margin-top:14px;color:var(--niebla);font-size:15px;max-width:30ch}

/* Tabla comparativa */
.comparar{width:100%;border-collapse:collapse;font-size:15px}
.comparar caption{text-align:left;color:var(--niebla);font-size:var(--t-xs);padding-bottom:16px}
.comparar th,.comparar td{padding:18px 20px;text-align:left;vertical-align:top;border-bottom:1px solid var(--linea)}
.comparar thead th{font-weight:500;font-size:15px;color:var(--niebla);vertical-align:bottom}
.comparar tbody th{font-weight:500;color:var(--tinta);width:22%}
.comparar td{color:var(--niebla)}
.comparar .sds{background:var(--sala);color:var(--tinta)}
.comparar thead .sds{color:var(--tinta);border-top:2px solid var(--azul-fibra)}

/* Preguntas */
.preguntas{border-top:1px solid var(--linea);max-width:960px}
.pregunta{border-bottom:1px solid var(--linea)}
.pregunta h3{margin:0}
.pregunta button{display:flex;width:100%;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;background:none;border:0;color:var(--tinta);font:500 var(--t-l)/1.3 var(--letra);text-align:left;cursor:pointer;letter-spacing:-.01em}
.pregunta button i{flex:none;position:relative;width:16px;height:16px;transition:transform var(--rapido) var(--curva)}
.pregunta button i::before,.pregunta button i::after{content:"";position:absolute;left:0;top:7.3px;width:16px;height:1.4px;background:var(--azul-fibra)}
.pregunta button i::after{transform:rotate(90deg)}
.pregunta button[aria-expanded="true"] i{transform:rotate(45deg)}
.pregunta__resp{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s var(--curva)}
.pregunta__resp>div{overflow:hidden}
.pregunta__resp p{color:var(--niebla);max-width:64ch;padding-bottom:24px}
.pregunta.abierta .pregunta__resp,.sin-js .pregunta__resp{grid-template-rows:1fr}

/* Formulario */
.contacto-bloque{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,6vw,96px);align-items:start}
.contacto-bloque h2{max-width:14ch}
.datos{margin-top:40px;display:grid;gap:18px;font-size:15px}
.datos dt{color:var(--niebla);font-size:13px}
.datos dd{margin:2px 0 0}
.datos a{text-decoration:none}
.datos a:hover{color:var(--azul-fibra)}
.form{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:clamp(24px,3vw,40px);background:var(--sala);border:1px solid var(--linea);border-radius:var(--radio)}
.campo{display:grid;gap:8px}
.campo--ancho{grid-column:1/-1}
.campo label{font-size:var(--t-xs);color:var(--niebla)}
.campo input,.campo select,.campo textarea{width:100%;min-height:52px;padding:12px 14px;background:var(--noche);border:1px solid rgba(233,238,247,.16);border-radius:var(--radio);color:var(--tinta);font:400 17px/1.4 var(--letra);transition:border-color var(--rapido),box-shadow var(--rapido)}
.campo textarea{min-height:120px;resize:vertical}
.campo select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--niebla) 50%),linear-gradient(135deg,var(--niebla) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--azul-fibra);box-shadow:0 0 0 3px rgba(0,137,247,.25)}
.campo [aria-invalid="true"]{border-color:var(--error)}
.campo__error{font-size:var(--t-xs);color:var(--error)}
.campo__error:empty{display:none}
.form .boton{grid-column:1/-1;justify-self:start}
.form__nota{grid-column:1/-1;font-size:13px;color:var(--niebla)}
.form__ok{grid-column:1/-1;color:var(--tinta);font-size:15px}

/* Cierre */
.cierre h2{max-width:18ch}
.cierre .bajada{margin-top:24px}

/* Otras unidades */
.otras{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:32px}
.otras .u{min-height:64px}

/* Miga de pan y pie */
.miga{padding:24px var(--margen);border-top:1px solid var(--linea);font-size:var(--t-xs);color:var(--niebla)}
.miga ol{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.miga li+li::before{content:"/";margin-right:8px;opacity:.5}
.miga a{text-decoration:none;display:inline-block;min-height:24px}
.miga a:hover{color:var(--tinta)}
.pie{padding:clamp(64px,8vw,104px) var(--margen) 32px;border-top:1px solid var(--linea);background:#05070C}
.pie__grilla{display:grid;grid-template-columns:minmax(0,4fr) repeat(3,minmax(0,2fr));gap:40px}
.pie__marca img{width:200px;height:auto;margin-left:-6px}
.pie__lema{margin-top:20px;font-size:var(--t-m);color:var(--tinta)}
.pie__respaldo{margin-top:12px;font-size:14px;color:var(--niebla);max-width:34ch}
.pie h2{font-size:13px;font-weight:400;color:var(--niebla);margin-bottom:14px}
.pie ul{margin:0;padding:0;list-style:none;display:grid;gap:4px}
.pie li a{display:inline-block;min-height:28px;padding:2px 0;text-decoration:none;font-size:15px;transition:color var(--rapido)}
.pie li a:hover{color:var(--azul-fibra)}
.pie__base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:64px;padding-top:24px;border-top:1px solid var(--linea);font-size:13px;color:var(--niebla)}
.pie__base a{text-decoration:none}

/* WhatsApp flotante */
.wa{position:fixed;right:20px;bottom:20px;z-index:30;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--sala);border:1px solid rgba(233,238,247,.16);color:var(--tinta);box-shadow:0 12px 30px -10px rgba(0,0,0,.7);transition:border-color var(--rapido),transform var(--rapido) var(--curva)}
.wa:hover{border-color:var(--azul-fibra);transform:translateY(-2px)}
.wa svg{width:24px;height:24px}

/* Texto legal */
.legal{max-width:76ch}
.legal h2{font-size:var(--t-l);margin:40px 0 12px}
.legal p{color:var(--niebla);margin-bottom:12px}

/* Entradas: el contenido se ve aunque falle el JS */
.js .aparece{opacity:0;transform:translateY(18px);transition:opacity .7s var(--curva),transform .7s var(--curva)}
.js .aparece.visto{opacity:1;transform:none}

/* 404 */
.nada{min-height:70svh;display:grid;align-content:end;padding:180px var(--margen) 96px}

@media (max-width:1180px){.cab__nav>a,.cab__menu{display:none}.cab__tel{margin-left:auto}.cab__abrir{display:block}}
@media (max-width:960px){
  .servicios,.doble,.contacto-bloque,.hero__grilla{grid-template-columns:1fr}
  .doble--inverso>:first-child{order:0}
  .ficha{position:static}
  .detalle{display:none}
  .u__mas{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--rapido) var(--curva);width:100%}
  .u__mas>p{overflow:hidden;font-size:15px;color:#CDD6E6;line-height:1.45;padding:0 18px}
  .u[aria-pressed="true"]+.u__mas{grid-template-rows:1fr}
  .u[aria-pressed="true"]+.u__mas>p{padding:12px 18px 8px}
  .cifras__fila{grid-template-columns:1fr 1fr;row-gap:40px}
  .cifra:nth-child(3){padding-left:0;border-left:0}
  .fila{grid-template-columns:1fr;gap:10px}
  .pruebas{grid-template-columns:1fr}
  .prueba,.prueba+.prueba{padding:24px 0;border-left:0;border-bottom:1px solid var(--linea)}
  .otras{grid-template-columns:1fr 1fr}
  .pie__grilla{grid-template-columns:1fr 1fr}
  .pie__marca{grid-column:1/-1}
  .hero__rack{display:none}
  .comparar thead{display:none}
  .comparar,.comparar tbody,.comparar tr,.comparar th,.comparar td{display:block;width:100%}
  .comparar tr{padding:20px 0;border-bottom:1px solid var(--linea)}
  .comparar th,.comparar td{border:0;padding:6px 0}
  .comparar tbody th{font-size:var(--t-l);margin-bottom:8px;width:100%}
  .comparar td::before{content:attr(data-col);display:block;font-size:13px;color:var(--niebla);opacity:.8}
  .comparar .sds{background:transparent;border-left:2px solid var(--azul-fibra);padding-left:12px}
}
@media (max-width:620px){
  :root{--margen:20px}
  .cab{gap:10px;height:66px}
  .cab__logo img{width:140px}
  .cab__tel{display:none}
  .cab .boton{margin-left:auto;min-height:40px;padding:0 14px;font-size:13px}
  .recorrido__paso{bottom:32px}
  .recorrido__pista{display:none}
  .acciones .boton{flex:1 1 100%}
  .rack{padding:16px 26px}
  .rack::before{left:8px}.rack::after{right:8px}
  .grupo{grid-template-columns:1fr;gap:8px}
  .grupo__rotulo{text-align:left;padding-top:4px}
  .u{padding-right:52px;min-height:48px}
  .rack--hub .u{padding-right:52px}
  .rack--hub .u .flecha{display:none}
  .cifra,.cifra+.cifra{padding:0 12px 0 0;border-left:0}
  .cifra:nth-child(even){padding-left:16px;border-left:1px solid var(--linea)}
  .form{grid-template-columns:1fr}
  .form .boton{justify-self:stretch}
  .otras{grid-template-columns:1fr}
  .pie__grilla{grid-template-columns:1fr}
  .hero{padding-top:120px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important}
  .js .aparece{opacity:1;transform:none}
  .dibuja .tr:not(.tr--tenue){stroke-dashoffset:0}
  .dibuja .senal{opacity:1}
}
.quieto .aparece{opacity:1!important;transform:none!important}
.quieto .dibuja .tr{stroke-dashoffset:0!important;transition:none!important}
.quieto .dibuja .senal{opacity:1!important}

/* Diagramas en dos orientaciones y tabla de capas */
.d-alto{display:none}
@media (max-width:760px){.d-ancho{display:none}.d-alto{display:block;max-width:440px;margin-inline:auto}}
.capas{width:100%;border-collapse:separate;border-spacing:4px;font-size:14px}
.capas caption{text-align:left;color:var(--niebla);padding-bottom:12px;font-size:var(--t-xs)}
.capas th{font-weight:400;color:var(--niebla);text-align:left;padding:8px 10px 8px 0;font-size:14px}
.capas thead th{font-weight:500;color:var(--tinta);text-align:center;padding:8px}
.capas thead th.actual{color:var(--azul-fibra)}
.capas td{padding:10px 8px;text-align:center;border-radius:3px;font-size:13px;line-height:1.25}
.capas .tuyo{border:1px dashed rgba(158,171,194,.35);color:var(--niebla)}
.capas .nuestro{background:var(--unidad);border:1px solid var(--borde-unidad);color:var(--tinta)}
.capas .nuestro.actual{border-color:var(--azul-fibra);background:#13233F}
.capas .tuyo.actual{border-color:rgba(158,171,194,.7)}
@media (max-width:620px){.capas td{font-size:11.5px;padding:8px 4px}.capas th{font-size:12.5px}}
.ancho-diagrama{max-width:1100px;margin:0 0 clamp(40px,5vw,64px)}
.pruebas--texto .prueba h3{margin-bottom:0}
.pruebas--texto .prueba p{margin-top:10px}
.doble--apilado{grid-template-columns:1fr}
.doble--apilado>:last-child{max-width:1100px}
.cifras__video{opacity:.4}
.contacto-bloque h2{max-width:15ch}
.pie__base{padding-right:72px}
.solo-movil{display:none!important}
@media (max-width:620px){.solo-ancho{display:none!important}.solo-movil{display:inline-flex!important}span.solo-movil{display:inline!important}}
@media (max-width:960px){[data-rack] .u small{display:none}}
@media (max-width:620px){.recorrido__paso{bottom:92px}}

/* Revisión de diseño (03/11) */
:root{--sec:clamp(80px,9vw,128px)}
.comparar tbody th,.comparar thead td:first-child{padding-left:0}
.texto,.bajada,.detalle__linea,.cifra span,.prueba p,.fila p,.recorrido__paso p{text-wrap:pretty}
@media (min-width:961px){
  .cabecera-seccion{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end;max-width:none;column-gap:clamp(40px,6vw,96px)}
  .cabecera-seccion h2{max-width:20ch}
}
@media (max-width:620px){.recorrido__paso h1{max-width:11ch}}
.seccion--sala .comparar .sds{background:var(--noche)}
.pie__base{display:grid;grid-template-columns:minmax(0,4fr) repeat(3,minmax(0,2fr));gap:40px;padding-right:0}
@media (max-width:960px){.pie__base{grid-template-columns:1fr;gap:8px}.pie__base>span:empty{display:none}}
@media (max-width:620px){.pie{padding-bottom:96px}}
.cifras::after{background:linear-gradient(90deg,rgba(6,8,14,.92) 0%,rgba(6,8,14,.55) 50%,rgba(6,8,14,.92) 100%)}
.cifras__video{opacity:.5}
.hoja.abierta{transition:opacity var(--rapido),visibility 0s}
