/* Fuentes alojadas en el sitio (subconjunto latino de Google Fonts: Poppins v24, IBM Plex Mono v20, licencia OFL).
   Sin conexión a servidores de Google. */
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/poppins-400.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/poppins-500.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/poppins-600.woff2') format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/poppins-700.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/ibm-plex-mono-400.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/ibm-plex-mono-500.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/ibm-plex-mono-600.woff2') format('woff2'); }

/* Alpha Wolf Group — sitio corporativo
   Concepto: el isotipo como sistema. W y chevrón plateado sobre azul noche,
   secciones claras para leer, esquina cortada en botones y fichas,
   etiquetas técnicas en monoespaciada y un color por empresa solo para identificar.
   Tema único claro (decisión de marca). */

:root {
  --azul: #1F3D86;
  --azul-osc: #18316D;
  --marino: #152A5E;
  --noche: #0C1735;
  --noche-2: #13224D;
  --plata: #C9D1D8;
  --plata-2: #E9ECEF;
  --tinta: #101B35;
  --texto: #3E4A5F;
  --texto-suave: #56637A;
  --fondo: #FFFFFF;
  --fondo-2: #F3F5F8;
  --fondo-3: #E8EDF4;
  --borde: #DCE2EA;
  --borde-2: #C2CCDA;
  --claro-1: #FFFFFF;
  --claro-2: #D9E0EF;
  --claro-3: #B9C6E2;
  --apagado: #8EA0C8;
  --ww: #1F3D86;
  --gw: #575757;
  --rw: #BB1D1D;
  --bw: #1A1A1A;
  --blw: #5F9ED4;
  --blw-txt: #3F6E96;
  --alerta: #E5484D;
  --ok: #1E7A4F;
  --error: #B42318;
  --f-sans: 'Poppins', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --f-mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  --ancho: 1240px;
  --gutter: clamp(16px, 4vw, 40px);
  --sec: clamp(64px, 8vw, 112px);
  --corte: 12px;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body {
  margin: 0;
  background: var(--fondo);
  color: var(--tinta);
  font-family: var(--f-sans);
  font-size: 17px;
  line-height: 1.65;
  overflow-x: hidden;
}
img, svg { max-width: 100%; }
img { height: auto; display: block; }
a { color: var(--azul); text-underline-offset: 3px; }
a:hover { color: var(--azul-osc); }
p { margin: 0; }
h1, h2, h3, h4 { margin: 0; font-family: var(--f-sans); color: inherit; text-wrap: balance; }
ul, ol { margin: 0; padding: 0; }
:focus-visible { outline: 3px solid var(--blw-txt); outline-offset: 2px; }
:is(.oscuro, .barra, .pie, .ficha--cta, .odin, .esquema__caja--grupo) :focus-visible { outline-color: var(--blw); }
::selection { background: var(--claro-3); color: var(--tinta); }

.ic { width: 1.15em; height: 1.15em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; vertical-align: -0.18em; }
.nw { white-space: nowrap; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.saltar { position: absolute; left: 16px; top: -60px; z-index: 100; background: var(--fondo); color: var(--azul); padding: 10px 16px; font-weight: 600; text-decoration: none; }
.saltar:focus { top: 12px; }
.contenedor { width: 100%; max-width: var(--ancho); margin-inline: auto; padding-inline: var(--gutter); }
.contenedor--estrecho { max-width: 920px; }

/* Barra superior */
.barra { background: var(--noche); color: var(--claro-3); font-size: 13px; line-height: 1.4; }
.barra__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 24px; min-height: 40px; padding-block: 7px; }
.barra__grupo { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; }
.barra a { color: var(--claro-3); text-decoration: none; display: inline-flex; align-items: center; gap: 7px; min-height: 26px; }
.barra a:hover { color: #fff; text-decoration: underline; }
.barra .urg { color: #fff; font-weight: 600; background: rgba(255,255,255,.08); padding: 2px 10px 2px 8px; border-radius: 2px; }
.barra .urg:hover { background: rgba(255,255,255,.16); text-decoration: none; }
.punto { width: 8px; height: 8px; border-radius: 50%; background: var(--alerta); box-shadow: 0 0 0 3px rgba(229,72,77,.25); flex: none; }

/* Cabecera */
.cabecera { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 40; background: var(--fondo); border-bottom: 1px solid var(--borde); }
.cabecera__in { display: flex; align-items: center; gap: 16px 28px; min-height: 78px; }
.logo { display: inline-flex; margin-right: auto; flex: none; }
.logo img { height: 46px; width: auto; }
.nav { display: flex; align-items: center; gap: 4px 26px; }
.nav a { color: var(--tinta); text-decoration: none; font-size: 15px; font-weight: 500; padding-block: 8px; border-bottom: 2px solid transparent; }
.nav a:hover { color: var(--azul); }
.nav a[aria-current="page"] { color: var(--azul); border-bottom-color: var(--azul); }
.cabecera__acc { display: flex; align-items: center; gap: 10px; flex: none; }
.btn-menu { display: none; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0; border: 1px solid var(--borde-2); background: var(--fondo); color: var(--tinta); cursor: pointer; border-radius: 2px; font-size: 22px; }
.menu-movil { border-top: 1px solid var(--borde); background: var(--fondo); }
.menu-movil__in { display: flex; flex-direction: column; padding-block: 6px 18px; }
.menu-movil a { display: flex; align-items: center; justify-content: space-between; min-height: 52px; border-bottom: 1px solid var(--fondo-3); color: var(--tinta); text-decoration: none; font-weight: 500; }
.menu-movil a[aria-current="page"] { color: var(--azul); }
.menu-movil .menu-movil__urg { color: var(--rw); }

/* Botones con esquina cortada (gradiente: el foco no se recorta) */
.btn {
  --c: var(--azul); --t: #FFFFFF;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 50px; padding: 0 26px 0 22px;
  font: 600 15.5px/1.2 var(--f-sans); text-decoration: none; text-align: left;
  color: var(--t); background: linear-gradient(-45deg, transparent var(--corte), var(--c) 0);
  border: 0; cursor: pointer; white-space: nowrap;
}
.btn:hover { --c: var(--azul-osc); color: var(--t); }
.btn--claro { --c: #FFFFFF; --t: var(--azul); }
.btn--claro:hover { --c: var(--plata-2); }
.btn--plata { --c: var(--plata); --t: var(--noche); }
.btn--plata:hover { --c: #B7C0C8; }
.btn--sm { min-height: 44px; font-size: 14.5px; padding: 0 20px 0 18px; --corte: 10px; }
.btn--grande { min-height: 56px; font-size: 16.5px; }
.enlace { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 600; text-decoration: none; color: var(--azul); }
.enlace:hover { text-decoration: underline; }
.enlace--claro { color: #FFFFFF; }
.enlace--claro:hover { color: #FFFFFF; }

/* Textos comunes */
.antetitulo { display: flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--azul); line-height: 1.3; }
.antetitulo::before { content: ""; flex: none; width: 28px; height: 2px; background: currentColor; }
.oscuro .antetitulo { color: var(--claro-3); }
.oscuro .antetitulo::before { background: var(--plata); }
.titulo { font-size: clamp(30px, 3.5vw, 46px); line-height: 1.1; font-weight: 700; letter-spacing: -.02em; margin-top: 14px; }
.titulo span { color: var(--azul); }
.oscuro .titulo span { color: var(--claro-3); }
.entrada { margin-top: 18px; font-size: clamp(16.5px, 1.25vw, 18.5px); line-height: 1.65; color: var(--texto); max-width: 62ch; text-wrap: pretty; }
.oscuro .entrada { color: var(--claro-2); }
.etiqueta { font: 500 12px/1.4 var(--f-mono); letter-spacing: .07em; text-transform: uppercase; color: var(--azul); }
.fuente { font: 400 12.5px/1.5 var(--f-mono); color: var(--texto-suave); }
.oscuro .fuente { color: var(--claro-3); }
.cab-sec { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px 56px; }
.cab-sec > div { flex: 1 1 440px; max-width: 760px; }
.cab-sec > p { flex: 1 1 320px; max-width: 520px; }
.cab-sec--centro { flex-direction: column; align-items: center; text-align: center; }
.cab-sec--centro .antetitulo { justify-content: center; }
.cab-sec--centro .antetitulo::after { content: ""; flex: none; width: 28px; height: 2px; background: currentColor; }
.cab-sec--centro .entrada { margin-inline: auto; }

/* Secciones */
.sec { padding-block: var(--sec); }
.sec--gris { background: var(--fondo-2); }
.sec--marino { background: var(--marino); color: #FFFFFF; }
.sec--noche { background: var(--noche); color: #FFFFFF; }
.sec--plano { position: relative; overflow: hidden; }
.sec--plano::before { content: ""; position: absolute; inset: 0; background: url(../img/plano.svg) 0 0 / 240px; opacity: .22; pointer-events: none; }
.sec--plano > * { position: relative; }
.marca-agua { position: absolute; pointer-events: none; opacity: .07; width: min(980px, 82vw); height: auto; }

/* Portada */
.portada-borde { background: linear-gradient(90deg, #A3ACB3 0%, #E9ECEF 28%, #BCC4CA 50%, #F4F6F7 74%, #A9B2B8 100%); padding-bottom: 12px; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 4.5vw), 50% 100%, 0 calc(100% - 4.5vw)); }
/* Fondo de la V7: degradado noche–marino, retícula técnica que se desvanece y un rombo
   de líneas que recuerda el chevrón del isotipo. */
.portada { position: relative; overflow: hidden; color: #FFFFFF; background: radial-gradient(circle at 80% 32%, rgba(95,158,212,.16), transparent 30%), linear-gradient(120deg, var(--noche) 0%, var(--marino) 52%, #10234E 100%); clip-path: polygon(0 0, 100% 0, 100% calc(100% - 4.5vw), 50% 100%, 0 calc(100% - 4.5vw)); padding-top: clamp(44px, 5vw, 80px); padding-bottom: calc(4.5vw + clamp(44px, 4.5vw, 68px)); }
.portada::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .11; background-image: linear-gradient(90deg, rgba(255,255,255,.16) 1px, transparent 1px), linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px); background-size: 84px 84px; -webkit-mask-image: linear-gradient(90deg, #000 0%, transparent 78%); mask-image: linear-gradient(90deg, #000 0%, transparent 78%); }
.portada__marca-fondo { position: absolute; right: -28%; top: -42%; width: min(760px, 72vw); aspect-ratio: 1; border: 1px solid rgba(255,255,255,.1); transform: rotate(45deg); box-shadow: 0 0 0 80px rgba(255,255,255,.015), 0 0 0 160px rgba(255,255,255,.012); pointer-events: none; }
.portada > .contenedor { position: relative; }
.portada__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.portada h1 { margin-top: 20px; font-size: clamp(34px, 3.75vw, 54px); line-height: 1.08; font-weight: 700; letter-spacing: -.025em; }
.portada h1 span { display: block; color: var(--claro-3); }
.portada__firma { margin-top: 18px; display: flex; align-items: center; gap: 12px; font-size: clamp(16px, 1.35vw, 19px); font-weight: 600; line-height: 1.35; color: #FFFFFF; }
.portada__firma::before { content: ""; flex: none; width: 34px; height: 2px; background: var(--blw); }
.portada .entrada { max-width: 600px; }
.portada__acc { margin-top: 32px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 26px; }
.portada__vis { width: 100%; max-width: 500px; margin-inline: auto; display: flex; flex-direction: column; align-items: center; }
/* Video del logo: su fondo es más oscuro que cualquier punto de la portada y se funde con
   mix-blend-mode: lighten, de modo que solo se ve la luz del logo. Los bordes van suavizados
   por si algún navegador no aplicara la mezcla. Se reproduce una vez y queda en el último cuadro.
   Con movimiento reducido, sin JavaScript o si el video no parte, se muestra la imagen fija. */
.logo-video { position: relative; width: 100%; aspect-ratio: 1; }
.logo-video__img, .logo-video__v { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.logo-video__img { opacity: 0; }
.logo-video__v { object-fit: contain; mix-blend-mode: lighten;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent), linear-gradient(transparent, #000 4%, #000 96%, transparent);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent), linear-gradient(transparent, #000 4%, #000 96%, transparent);
  mask-composite: intersect; }
.logo-video.estatico .logo-video__img { opacity: 1; }
.logo-video.estatico .logo-video__v { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
  .logo-video:not(.con-video) .logo-video__img { opacity: 1; }
  .logo-video:not(.con-video) .logo-video__v { opacity: 0; }
}
.logo-video__sonido { margin-top: 6px; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 12px; border: 0; background: none; color: var(--claro-2); font: 600 14px/1.2 var(--f-sans); letter-spacing: .01em; cursor: pointer; }
.logo-video__sonido:hover { color: #FFFFFF; }
.logo-video__sonido .ic { width: 20px; height: 20px; vertical-align: 0; }
.logo-video__sonido[hidden] { display: none; }
.bajar { display: flex; justify-content: center; margin-top: 48px; }
.bajar a { color: var(--plata); display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; }
.bajar svg { width: 30px; height: 30px; }

/* Cabecera de páginas interiores */
.pag-cab-borde { background: linear-gradient(90deg, #A3ACB3 0%, #E9ECEF 28%, #BCC4CA 50%, #F4F6F7 74%, #A9B2B8 100%); padding-bottom: 8px; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 3vw), 50% 100%, 0 calc(100% - 3vw)); }
.pag-cab { position: relative; overflow: hidden; background: radial-gradient(circle at 82% 30%, rgba(95,158,212,.14), transparent 32%), linear-gradient(120deg, var(--noche) 0%, var(--marino) 55%, #10234E 100%); color: #FFFFFF; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 3vw), 50% 100%, 0 calc(100% - 3vw)); padding-top: clamp(48px, 6vw, 88px); padding-bottom: calc(3vw + clamp(44px, 5vw, 72px)); }
.pag-cab .marca-agua { right: -6%; top: 10px; width: min(760px, 70vw); }
.pag-cab h1 { margin-top: 18px; font-size: clamp(34px, 4.2vw, 58px); line-height: 1.08; font-weight: 700; letter-spacing: -.025em; max-width: 18ch; }
.pag-cab .entrada { max-width: 640px; }
.migas { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13px; color: var(--claro-3); margin-bottom: 20px; }
.migas a { color: var(--claro-3); }
.anclas { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 10px; }
.anclas a { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 16px; border: 1px solid rgba(255,255,255,.35); color: #FFFFFF; text-decoration: none; font-size: 14.5px; font-weight: 500; }
.anclas a:hover { background: rgba(255,255,255,.1); }

/* Sectores */
.sectores { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 16px; margin-top: 36px; }
.sector { display: flex; gap: 16px; align-items: flex-start; padding: 22px; border: 1px solid var(--borde); background: var(--fondo); color: var(--tinta); text-decoration: none; }
.sector:hover { border-color: var(--azul); color: var(--tinta); }
.sector__ic { flex: none; width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; background: var(--fondo-3); color: var(--azul); font-size: 24px; }
.sector h3 { font-size: 18px; line-height: 1.3; font-weight: 600; }
.sector p { margin-top: 4px; font-size: 15px; line-height: 1.55; color: var(--texto); }
.sector .flecha { margin-left: auto; color: var(--azul); flex: none; align-self: center; }

/* Selector "¿Qué necesita resolver?" */
.selector { margin-top: 40px; display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 20px; align-items: start; }
.opciones { display: flex; flex-direction: column; gap: 8px; }
.opcion { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 54px; padding: 10px 16px; border: 1px solid var(--borde-2); background: var(--fondo); color: var(--tinta); font: 500 15.5px/1.35 var(--f-sans); text-align: left; cursor: pointer; }
.opcion:hover { border-color: var(--azul); }
.opcion .ic { font-size: 20px; color: var(--azul); }
.opcion[aria-pressed="true"] { background: var(--marino); border-color: var(--marino); color: #FFFFFF; }
.opcion[aria-pressed="true"] .ic { color: #FFFFFF; }
.opcion--urg .ic { color: var(--rw); }
.respuesta { background: var(--fondo); border: 1px solid var(--borde); padding: clamp(22px, 3vw, 34px); min-height: 100%; }
.respuesta__cab { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.respuesta h3 { font-size: clamp(21px, 2vw, 26px); line-height: 1.25; font-weight: 700; margin-top: 14px; }
.respuesta p { margin-top: 10px; color: var(--texto); max-width: 60ch; }
.respuesta ul { margin-top: 16px; list-style: none; display: grid; gap: 8px; }
.respuesta li { display: flex; gap: 10px; color: var(--texto); font-size: 15.5px; }
.respuesta li::before { content: ""; flex: none; width: 7px; height: 7px; margin-top: 9px; background: var(--azul); }
.respuesta__acc { margin-top: 24px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; }

/* Insignias de empresa */
.insignia { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--tinta); }
.insignia i { width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--k, var(--azul)); color: #FFFFFF; font-size: 16px; flex: none; }
.insignia--blw i { color: var(--noche); }
.k-ww { --k: var(--ww); } .k-gw { --k: var(--gw); } .k-rw { --k: var(--rw); } .k-bw { --k: var(--bw); } .k-blw { --k: var(--blw); }
.k-grupo { --k: var(--marino); }

/* Tarjetas de empresas */
.empresas { margin-top: 48px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(214px, 100%), 1fr)); gap: 16px; }
/* Toda la tarjeta lleva a la empresa (el enlace del pie se extiende con ::after); de ahí el realce al pasar. */
.empresa { position: relative; display: flex; flex-direction: column; background: var(--fondo); border: 1px solid var(--borde); transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.empresa:hover, .empresa:focus-within { transform: translateY(-4px); border-color: var(--borde-2); box-shadow: 0 18px 40px rgba(12,23,53,.1); }
.empresa__cab { position: relative; height: 174px; display: flex; align-items: center; justify-content: center; padding: 26px; background: var(--k); clip-path: polygon(0 0, 100% 0, 100% calc(100% - 22px), calc(100% - 22px) 100%, 0 100%); }
.empresa__cab img { height: 92px; width: auto; max-width: 100%; }
.empresa__cuerpo { flex: 1; display: flex; flex-direction: column; gap: 12px; padding: 20px 20px 22px; }
.empresa__rasgo { font: 500 12px/1.4 var(--f-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--k-txt, var(--k)); min-height: 2.8em; }
.empresa.k-blw { --k-txt: var(--blw-txt); }
.empresa h3 { font-size: 17.5px; line-height: 1.35; font-weight: 600; }
.lista-cuad { list-style: none; display: grid; gap: 8px; font-size: 14.5px; line-height: 1.45; color: var(--texto); }
.lista-cuad li { display: flex; gap: 10px; }
.lista-cuad li::before { content: ""; flex: none; width: 6px; height: 6px; margin-top: 7.5px; background: var(--k, var(--azul)); }
.empresa__pie { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--fondo-3); display: flex; flex-direction: column; gap: 2px; }
.empresa__pie small { font: 400 11.5px/1.4 var(--f-mono); color: var(--texto-suave); letter-spacing: .03em; }
.empresa__pie a { display: inline-flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 40px; font-size: 14px; font-weight: 600; text-decoration: none; color: var(--k-txt, var(--k)); }
.empresa__pie a:hover { text-decoration: underline; }
.empresa__pie a::after { content: ""; position: absolute; inset: 0; }

/* Cómo trabajamos */
.encender { font-size: clamp(30px, 3.8vw, 52px); line-height: 1.12; font-weight: 700; letter-spacing: -.02em; max-width: 22ch; margin-top: 16px; }
.encender .w { color: var(--claro-1); transition: color .45s ease; }
.js .encender .w { color: var(--apagado); }
.js .encender .w.on { color: var(--claro-1); }
.esquema { margin-top: 48px; display: flex; flex-direction: column; align-items: center; }
.esquema__caja { width: 100%; max-width: 420px; display: flex; align-items: center; justify-content: center; gap: 14px; padding: 16px 22px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.22); text-align: left; }
.esquema__caja--grupo { max-width: 500px; flex-direction: column; text-align: center; gap: 10px; padding: 22px; background: var(--azul); border-color: var(--azul); }
.esquema__caja--grupo img { height: 44px; width: auto; }
.esquema__caja small { display: block; font: 500 11.5px/1.3 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--claro-3); }
.esquema__caja strong { font-size: 16px; font-weight: 600; }
.esquema__linea { width: 2px; height: 28px; background: var(--plata); opacity: .6; }
.esquema__rotulo { padding: 6px 14px; border: 1px solid rgba(255,255,255,.3); font: 400 12.5px/1.3 var(--f-mono); color: var(--claro-2); text-align: center; }
.esquema__filiales { position: relative; width: 100%; margin-top: 10px; padding: 28px 16px 18px; border: 1.5px dashed rgba(201,209,216,.5); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr)); gap: 10px; }
.esquema__filiales > span:first-child { position: absolute; top: -11px; left: 50%; transform: translateX(-50%); padding: 0 12px; background: var(--marino); font: 500 12px/1.6 var(--f-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--claro-3); white-space: nowrap; }
.filial-mini { display: flex; align-items: center; gap: 10px; padding: 12px; background: var(--fondo); color: var(--tinta); }
.filial-mini i { width: 32px; height: 32px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--k); color: #FFFFFF; flex: none; font-size: 16px; }
.filial-mini.k-blw i { color: var(--noche); }
.filial-mini b { display: block; font-size: 13.5px; line-height: 1.2; font-weight: 600; }
.filial-mini small { display: block; font-size: 12px; line-height: 1.3; color: var(--texto-suave); }
.pasos { margin-top: 56px; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 14px; counter-reset: paso; }
.paso { counter-increment: paso; padding: 24px; background: var(--fondo); color: var(--tinta); border: 1px solid var(--borde); }
.oscuro .paso { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.18); color: #FFFFFF; }
.paso::before { content: counter(paso, decimal-leading-zero); display: block; font: 500 13px/1 var(--f-mono); color: var(--azul); }
.oscuro .paso::before { color: var(--claro-3); }
.paso h3 { margin-top: 12px; font-size: 18px; line-height: 1.3; font-weight: 600; }
.paso p { margin-top: 8px; font-size: 15px; line-height: 1.6; color: var(--texto); }
.oscuro .paso p { color: var(--claro-2); }
.nota-legal { margin-top: 40px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.2); font: 400 13.5px/1.65 var(--f-mono); color: var(--claro-2); max-width: 90ch; }
.nota-legal--claro { border-top-color: var(--borde); color: var(--texto); }

/* Respaldo técnico */
.respaldo { margin-top: 48px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 20px; }
.pieza { display: flex; flex-direction: column; border: 1px solid var(--borde); background: var(--fondo); }
.pieza__vis { position: relative; display: grid; place-items: center; min-height: 268px; padding: 24px; background: var(--fondo-3); overflow: hidden; }
/* Portadas de las cinco empresas en abanico y etiquetas en escalera, en el orden White, Grey, Red,
   Black, Blue: White queda adelante y Blue al fondo. Las etiquetas suben hacia la derecha para que
   el encabezado (logos) de cada una asome sobre la que tiene delante. */
.pieza__vis--docs, .pieza__vis--etiqueta { grid-template-areas: "a"; }
.pieza__vis--docs img { grid-area: a; width: 31%; max-width: 132px; box-shadow: 0 10px 22px rgba(12,23,53,.24); }
.pieza__vis--docs img:nth-child(1) { z-index: 5; transform: translate(-118%, 5%) rotate(-7deg); }
.pieza__vis--docs img:nth-child(2) { z-index: 4; transform: translate(-60%, -1%) rotate(-3.5deg); }
.pieza__vis--docs img:nth-child(3) { z-index: 3; transform: translateY(-4%); }
.pieza__vis--docs img:nth-child(4) { z-index: 2; transform: translate(60%, -1%) rotate(3.5deg); }
.pieza__vis--docs img:nth-child(5) { z-index: 1; transform: translate(118%, 5%) rotate(7deg); }
.pieza__vis--etiqueta img { grid-area: a; width: 64%; max-width: 270px; filter: drop-shadow(0 6px 10px rgba(12,23,53,.18)); }
.pieza__vis--etiqueta img:nth-child(1) { z-index: 4; transform: translate(-13%, 64%); }
.pieza__vis--etiqueta img:nth-child(2) { z-index: 3; transform: translate(-4.5%, 21%); }
.pieza__vis--etiqueta img:nth-child(3) { z-index: 2; transform: translate(4.5%, -21%); }
.pieza__vis--etiqueta img:nth-child(4) { z-index: 1; transform: translate(13%, -64%); }
.pieza__cuerpo { display: flex; flex-direction: column; gap: 10px; padding: 22px 22px 24px; flex: 1; }
.pieza h3 { font-size: 20px; line-height: 1.3; font-weight: 600; }
.pieza p { color: var(--texto); font-size: 15.5px; }
.pieza .enlace { margin-top: auto; }


/* Credenciales */
.credenciales { margin-top: 44px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 0 40px; border-top: 1px solid var(--borde); }
.credencial { display: flex; gap: 16px; padding: 24px 0; border-bottom: 1px solid var(--borde); }
.credencial__ic { flex: none; width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; background: var(--fondo-3); color: var(--azul); font-size: 23px; }
.credencial h3 { font-size: 17px; line-height: 1.35; font-weight: 600; }
.credencial p { margin-top: 6px; font-size: 15px; line-height: 1.6; color: var(--texto); }
.credencial a { font-size: 14.5px; font-weight: 600; }

/* Nosotros breve y línea de tiempo */
.dos-col { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(440px, 100%), 1fr)); gap: clamp(40px, 6vw, 88px); align-items: start; }
.linea-tiempo { margin-top: 30px; list-style: none; display: flex; flex-direction: column; }
.linea-tiempo li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 16px; }
.linea-tiempo__marca { display: flex; flex-direction: column; align-items: center; }
.linea-tiempo__marca::before { content: ""; flex: none; width: 11px; height: 11px; margin-top: 7px; border: 2px solid var(--azul); background: var(--fondo); transform: rotate(45deg); }
.linea-tiempo li:last-child .linea-tiempo__marca::before { background: var(--azul); }
.linea-tiempo__marca::after { content: ""; flex: 1; width: 2px; margin-top: 8px; background: var(--borde-2); }
.linea-tiempo li:last-child .linea-tiempo__marca::after { display: none; }
.linea-tiempo__txt { padding-bottom: 24px; }
.linea-tiempo__txt p { margin-top: 4px; font-size: 16px; line-height: 1.6; color: var(--tinta); }
.compromisos { display: grid; gap: 12px; margin-top: 20px; }
.compromiso { display: flex; gap: 16px; padding: 20px; background: var(--fondo); border: 1px solid var(--borde); }
.compromiso__ic { flex: none; width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; background: var(--fondo-3); color: var(--azul); font-size: 22px; }
.compromiso__ic--rojo { color: var(--rw); }
.compromiso h3 { font-size: 17px; line-height: 1.35; font-weight: 600; }
.compromiso p { margin-top: 4px; font-size: 15px; line-height: 1.6; color: var(--texto); }
.odin { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 24px; padding: 24px; background: var(--marino); color: #FFFFFF; }
.odin__foto { position: relative; flex: none; width: 148px; height: 148px; border-radius: 50%; overflow: hidden; border: 2px solid var(--plata); background: var(--azul); display: grid; place-items: center; color: var(--claro-2); font-size: 40px; }
.odin__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.odin > div { flex: 1 1 240px; }
.odin > .odin__foto { flex: none; }
.compromisos + .odin { margin-top: 12px; }
.odin h3 { font-size: 26px; line-height: 1.2; font-weight: 700; margin-top: 4px; }
.odin p { margin-top: 8px; font-size: 15px; line-height: 1.6; color: var(--claro-2); }
.odin .etiqueta { color: var(--claro-3); }

/* Cierre */
.cierre { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(380px, 100%), 1fr)); gap: 16px; margin-top: 36px; }
.cierre a { position: relative; display: flex; flex-direction: column; gap: 8px; padding: clamp(24px, 3vw, 36px); background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.22); color: #FFFFFF; text-decoration: none; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 22px), calc(100% - 22px) 100%, 0 100%); }
.cierre a:hover { background: rgba(255,255,255,.12); color: #FFFFFF; }
.cierre a:first-child { background: #FFFFFF; color: var(--tinta); border-color: #FFFFFF; }
.cierre a:first-child:hover { background: var(--plata-2); }
.cierre b { font-size: clamp(22px, 2.2vw, 28px); line-height: 1.2; font-weight: 700; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cierre span { font-size: 15.5px; color: var(--claro-2); }
.cierre a:first-child span { color: var(--texto); }
.cierre a:first-child b { color: var(--azul); }

/* Contacto */
.contacto { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(36px, 5vw, 72px); align-items: start; }
.datos { margin-top: 30px; list-style: none; display: grid; gap: 16px; }
.datos li { display: flex; gap: 14px; align-items: flex-start; }
.datos__ic { flex: none; width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--borde-2); color: var(--azul); font-size: 20px; }
.datos small { display: block; font: 500 11.5px/1.4 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--texto-suave); }
.datos a, .datos span.val { font-size: 16.5px; font-weight: 500; color: var(--tinta); text-decoration: none; overflow-wrap: anywhere; }
.datos a:hover { color: var(--azul); text-decoration: underline; }
.aviso-urg { margin-top: 28px; display: flex; gap: 14px; padding: 18px 20px; background: var(--fondo-2); border-left: 4px solid var(--alerta); }
.aviso-urg p { font-size: 15px; line-height: 1.55; color: var(--texto); }
.aviso-urg strong { color: var(--tinta); }

/* Formulario */
.form { position: relative; background: var(--fondo); border: 1px solid var(--borde); padding: clamp(22px, 3vw, 36px); box-shadow: 0 30px 60px rgba(12,23,53,.08); }
.form h3 { font-size: 22px; line-height: 1.3; font-weight: 600; }
.form > p { margin-top: 6px; font-size: 14.5px; color: var(--texto-suave); }
.campos { margin-top: 22px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.campo--ancho { grid-column: 1 / -1; }
.campo label, .campo legend { font-size: 14px; font-weight: 600; color: var(--tinta); padding: 0; }
.campo label span, .campo legend span { font-weight: 400; color: var(--texto-suave); }
.campo input, .campo select, .campo textarea { width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid var(--borde-2); border-radius: 0; background: var(--fondo); color: var(--tinta); font: 400 15.5px/1.4 var(--f-sans); }
.campo textarea { min-height: 128px; resize: vertical; }
.campo select { appearance: none; -webkit-appearance: none; padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231F3D86' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: 3px solid var(--blw-txt); outline-offset: 0; border-color: var(--azul); }
.campo input::placeholder, .campo textarea::placeholder { color: #7A8599; }
.campo [aria-invalid="true"] { border-color: var(--error); }
.campo .err { font-size: 13px; color: var(--error); }
fieldset.campo { border: 0; margin: 0; padding: 0; min-width: 0; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.chip { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 1px solid var(--borde-2); font-size: 14px; color: var(--texto); cursor: pointer; }
.chip input { width: 16px; height: 16px; min-height: 0; margin: 0; accent-color: var(--azul); }
.chip:has(input:checked) { border-color: var(--azul); background: var(--fondo-3); color: var(--tinta); }
.form__trampa { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form__aviso-urg { grid-column: 1 / -1; display: flex; gap: 12px; padding: 14px 16px; background: #FDECEC; color: #7A1C1C; font-size: 14.5px; line-height: 1.5; }
.form__aviso-urg a { color: #7A1C1C; font-weight: 600; }
.form__pie { margin-top: 22px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.form__pie small { font-size: 13px; line-height: 1.5; color: var(--texto-suave); flex: 1 1 240px; }
.form__estado { margin-top: 18px; padding: 16px 18px; font-size: 15px; line-height: 1.55; }
.form__estado--ok { background: #E7F4EC; color: #14532D; }
.form__estado--error { background: #FDECEC; color: #7A1C1C; }
.form__estado .alternativas { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 10px; }
.form__estado .alternativas a, .form__estado .alternativas button { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 14px; border: 1px solid currentColor; background: transparent; color: inherit; font: 600 14px/1 var(--f-sans); text-decoration: none; cursor: pointer; }

/* Pie */
.pie { background: var(--noche); color: var(--claro-3); }
.pie__franja { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 2px; height: 8px; padding-bottom: 2px; background: var(--plata); }
.pie__franja span:nth-child(1) { background: var(--ww); } .pie__franja span:nth-child(2) { background: var(--gw); } .pie__franja span:nth-child(3) { background: var(--rw); } .pie__franja span:nth-child(4) { background: var(--bw); } .pie__franja span:nth-child(5) { background: var(--blw); }
.pie__in { padding-block: 64px 0; }
.pie__grid { display: flex; flex-wrap: wrap; gap: 44px 64px; }
.pie__marca { flex: 1 1 280px; max-width: 360px; }
.pie__marca img { height: 48px; width: auto; }
.pie__marca p { margin-top: 18px; font-size: 14.5px; line-height: 1.65; }
.pie__marca strong { display: block; color: #FFFFFF; font-size: 16px; margin-top: 22px; }
.pie__cols { flex: 3 1 600px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr)); gap: 32px; }
.pie h2 { font-size: 12.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #FFFFFF; }
.pie ul { list-style: none; margin-top: 14px; display: grid; gap: 9px; font-size: 14.5px; line-height: 1.5; }
.pie a { color: var(--claro-3); text-decoration: none; }
.pie a:hover { color: #FFFFFF; text-decoration: underline; }
.pie__legal { margin-top: 52px; padding-block: 22px 28px; border-top: 1px solid rgba(255,255,255,.12); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; font-size: 13px; line-height: 1.6; color: #A9B7D3; }
.pie__legal p { max-width: 80ch; }

/* Bloques de páginas interiores */
.bloque { display: grid; grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.bloque + .bloque { margin-top: clamp(56px, 7vw, 96px); padding-top: clamp(56px, 7vw, 96px); border-top: 1px solid var(--borde); }
.sec--gris .bloque + .bloque { border-top-color: var(--borde-2); }
.bloque__cab { position: sticky; top: 110px; }
.bloque__cab h2 { font-size: clamp(26px, 2.6vw, 36px); line-height: 1.15; font-weight: 700; letter-spacing: -.015em; margin-top: 14px; }
.bloque__cab p { margin-top: 14px; color: var(--texto); font-size: 16px; }
.prosa > * + * { margin-top: 16px; }
.prosa p, .prosa li { color: var(--texto); }
.prosa h3 { font-size: 20px; line-height: 1.3; font-weight: 600; color: var(--tinta); margin-top: 32px; }
.prosa ul { list-style: none; display: grid; gap: 10px; }
.prosa ul li { display: flex; gap: 12px; }
.prosa ul li::before { content: ""; flex: none; width: 7px; height: 7px; margin-top: 10px; background: var(--azul); }
.prosa strong { color: var(--tinta); }

.servicios-lista { display: grid; gap: 12px; }
.servicio { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; padding: 20px 22px; background: var(--fondo); border: 1px solid var(--borde); }
.servicio h3 { font-size: 18px; line-height: 1.3; font-weight: 600; margin-top: 0; }
.servicio p { margin-top: 6px; font-size: 15px; line-height: 1.6; color: var(--texto); }
.servicio__ic { width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; background: var(--k, var(--azul)); color: #FFFFFF; font-size: 22px; }
.servicio.k-blw .servicio__ic { color: var(--noche); }
.servicio__tags { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 6px 14px; }

.criticidad { display: grid; gap: 8px; }
.criticidad div { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 14px; align-items: center; padding: 12px 14px; background: var(--fondo); border: 1px solid var(--borde); }
.criticidad b { font: 600 12px/1 var(--f-mono); letter-spacing: .1em; text-align: center; padding: 8px 0; color: #FFFFFF; }
.criticidad span { font-size: 15px; line-height: 1.5; color: var(--texto); }
.crit-alta { background: #C0392B; } .crit-media { background: #D98E04; color: var(--tinta); } .crit-baja { background: #2E7D4F; }

.preguntas { display: grid; gap: 10px; }
.pregunta { padding: 18px 20px; background: var(--fondo); border: 1px solid var(--borde); }
.pregunta h3 { font-size: 17px; line-height: 1.4; font-weight: 600; margin: 0; }
.pregunta p { margin-top: 6px; font-size: 15.5px; line-height: 1.6; color: var(--texto); }

.capitulos { list-style: none; display: grid; gap: 0; counter-reset: cap; }
.capitulo { counter-increment: cap; display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 20px; padding: 20px 0; border-top: 1px solid var(--borde); }
.capitulo:last-child { border-bottom: 1px solid var(--borde); }
.capitulo .etiqueta::before { content: counter(cap, decimal-leading-zero) " · "; }
.capitulo p { color: var(--texto); font-size: 16px; }

.directorio { list-style: none; display: grid; gap: 10px; }
.directorio li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 14px 18px; background: var(--fondo); border: 1px solid var(--borde); }
.directorio img { height: 38px; width: auto; }
.directorio p { font-size: 14.5px; line-height: 1.5; color: var(--texto); }
.directorio small { display: block; font: 400 12px/1.4 var(--f-mono); color: var(--texto-suave); }

.urg-cab { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 30px; }
.urg-num { display: inline-flex; align-items: center; gap: 14px; font-size: clamp(30px, 4vw, 48px); font-weight: 700; letter-spacing: -.01em; color: #FFFFFF; text-decoration: none; }
.urg-num:hover { color: #FFFFFF; text-decoration: underline; }
.btn-copiar { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; background: transparent; border: 1px solid rgba(255,255,255,.4); color: #FFFFFF; font: 600 14px/1 var(--f-sans); cursor: pointer; }
.btn-copiar:hover { background: rgba(255,255,255,.1); }
.btn-copiar--oscuro { border-color: var(--borde-2); color: var(--tinta); }
.btn-copiar--oscuro:hover { background: var(--fondo-2); }

.guia-etiqueta { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.campos-etiqueta { list-style: none; display: grid; gap: 8px; }
.campos-etiqueta li { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 12px; padding: 10px 12px; background: var(--fondo); border: 1px solid var(--borde); font-size: 15px; color: var(--texto); }
.campos-etiqueta b { font: 600 12.5px/1.6 var(--f-mono); color: var(--azul); letter-spacing: .05em; }

.secciones-informe { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr)); gap: 8px; counter-reset: secc; }
.secciones-informe li { counter-increment: secc; display: flex; gap: 12px; padding: 12px 14px; background: var(--fondo); border: 1px solid var(--borde); font-size: 14.5px; line-height: 1.45; color: var(--texto); }
.secciones-informe li::before { content: counter(secc); flex: none; width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; background: var(--azul); color: #FFFFFF; font: 600 12px/1 var(--f-mono); }
.secciones-informe b { display: block; color: var(--tinta); font-weight: 600; }

.lista-check { list-style: none; display: grid; gap: 10px; }
.lista-check li { display: flex; gap: 12px; color: var(--texto); font-size: 16px; line-height: 1.55; }
.lista-check .ic { color: var(--ok); margin-top: 3px; }

.nota { padding: 16px 18px; background: var(--fondo-2); border-left: 4px solid var(--azul); font-size: 15px; line-height: 1.6; color: var(--texto); }

/* Complementos de páginas */
.foto { position: absolute; inset: 0; background-size: cover; background-position: center; background-repeat: no-repeat; }
.k-blw { --k-txt: var(--blw-txt); }
.k-blw .servicio__ic, .k-blw .ficha__ic { color: var(--noche); }
:is(.ficha, .pieza, .respuesta, .credencial, .compromiso, .bloque__cab, .servicio, .odin, .prosa, .linea-tiempo__txt) .etiqueta { font: 500 12px/1.4 var(--f-mono); letter-spacing: .07em; text-transform: uppercase; color: var(--k-txt, var(--k, var(--azul))); }
:is(.ficha--cta, .odin, .oscuro) .etiqueta, .etiqueta--clara { color: var(--claro-3); }
.linea-tiempo__txt .etiqueta { display: block; }
.menu-movil .btn { color: #FFFFFF; border-bottom: 0; justify-content: center; gap: 10px; margin-top: 16px; min-height: 52px; }
.menu-movil .btn:hover { color: #FFFFFF; }
.campo .chip { padding: 0 14px; font-size: 14px; font-weight: 500; color: var(--texto); }
.campo .chip input { width: 16px; height: 16px; min-height: 0; padding: 0; margin: 0; border: 0; }
.sector > div { min-width: 0; }
.esquema__ic { font-size: 28px; color: var(--claro-3); }
.logo-filial { display: block; height: 64px; width: auto; margin-bottom: 22px; }
.bloque__acc { margin-top: 22px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; }
.bloque__cab .fuente { margin-top: 12px; font-size: 12.5px; color: var(--texto-suave); }
.bloque__cab .sector__ic { margin-bottom: 4px; }
.servicio--urg { border-left: 4px solid var(--alerta); }
.servicio--urg .servicio__ic { background: var(--rw); }
.servicio__tags .enlace { min-height: 32px; font-size: 14.5px; }
.prosa .lista-check li::before { content: none; }
.prosa h2 { font-size: clamp(22px, 2vw, 26px); line-height: 1.25; font-weight: 700; color: var(--tinta); margin-top: 44px; }
.prosa h2:first-child { margin-top: 0; }
.prosa--legal p, .prosa--legal li { font-size: 16.5px; }
.nota-caja { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: clamp(24px, 3vw, 36px); background: var(--fondo); border: 1px solid var(--borde); }
.nota-caja h3 { font-size: 21px; line-height: 1.3; font-weight: 600; }
.nota-caja p { color: var(--texto); }
.directorio { margin-top: 26px; }
.directorio li { grid-template-columns: 124px minmax(0, 1fr) auto; }
.directorio img { height: 38px; width: auto; max-width: 100%; object-fit: contain; object-position: left center; }
.directorio p strong { color: var(--tinta); }
.directorio .enlace { min-height: 40px; }
.copiable { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 12px 16px; background: var(--fondo); border: 1px solid var(--borde); }
.copiable > .ic { color: var(--azul); }
.sel { font-weight: 600; color: var(--tinta); overflow-wrap: anywhere; }
.oscuro .sel { color: #FFFFFF; }
.postula { padding: clamp(24px, 3vw, 36px); background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.22); }
.postula h3 { font-size: 21px; line-height: 1.3; font-weight: 600; }
.postula__pasos { margin-top: 16px; padding-left: 22px; display: grid; gap: 10px; color: var(--claro-2); font-size: 15.5px; }
.postula__acc { margin-top: 24px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.figura { margin: 0; }
.figura img { width: 100%; filter: drop-shadow(0 10px 16px rgba(12,23,53,.14)); }
.figura figcaption { margin-top: 12px; }
.campos-etiqueta li { grid-template-columns: 124px minmax(0, 1fr); }
.informe-mini { margin-top: 26px; display: flex; gap: 12px; max-width: 300px; }
.informe-mini img { width: calc(50% - 6px); box-shadow: 0 10px 22px rgba(12,23,53,.18); }
.aviso-peligro { display: flex; gap: 18px; align-items: flex-start; padding: clamp(20px, 3vw, 28px); background: #FDECEC; border-left: 5px solid var(--alerta); }
.aviso-peligro__ic { flex: none; width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; background: var(--rw); color: #FFFFFF; font-size: 24px; }
.aviso-peligro h2 { font-size: 20px; line-height: 1.3; font-weight: 700; color: #7A1C1C; }
.aviso-peligro p { margin-top: 6px; color: #5C1717; font-size: 16px; max-width: 75ch; }
.dos-col--sec { margin-top: clamp(48px, 6vw, 80px); }
.dos-col .lista-cuad, .dos-col .lista-check { margin-top: 26px; }
.subtitulo { margin-top: 30px; font-size: 18px; line-height: 1.35; font-weight: 600; color: var(--tinta); }
.dos-col .subtitulo + .lista-cuad { margin-top: 14px; }
.lista-cuad strong { color: var(--tinta); }
.lista-cuad--grande { font-size: 16px; gap: 12px; }
.lista-cuad--grande li::before { margin-top: 9px; }
.cierre--claro a { background: var(--fondo); border-color: var(--borde); color: var(--tinta); }
.cierre--claro a:hover { background: var(--fondo-3); color: var(--tinta); }
.cierre--claro a:first-child { background: var(--azul); border-color: var(--azul); color: #FFFFFF; }
.cierre--claro a:first-child:hover { background: var(--azul-osc); }
.cierre--claro a:first-child b { color: #FFFFFF; }
.cierre--claro a:first-child span { color: var(--claro-2); }
.cierre--claro b { color: var(--azul); }
.cierre--claro span { color: var(--texto); }
.pag-cab--urg { background: var(--noche); }
.pag-cab--urg .antetitulo .punto { margin-left: -4px; }
.contacto__wa { margin-top: 18px; }
.aviso-urg > span { flex: none; color: var(--alerta); font-size: 22px; line-height: 1; padding-top: 2px; }
.form__aviso-urg .ic { flex: none; margin-top: 2px; font-size: 18px; }
.form__estado--info { background: var(--fondo-3); color: var(--tinta); }
.como-llegar { margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--borde); }
.como-llegar h3 { font-size: 18px; font-weight: 600; }
.como-llegar p { margin-top: 6px; font-size: 15.5px; color: var(--texto); max-width: 52ch; }
.migas span[aria-hidden="true"] { opacity: .6; }
.migas [aria-current="page"] { color: #FFFFFF; }
.respuesta__cab .insignia + .insignia { margin-left: 4px; }

/* Clientes que confían */
.clientes-lista { margin-top: 40px; list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.clientes-lista li { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 14px; padding: 22px 18px 20px; background: var(--fondo); border: 1px solid var(--borde); text-align: center; }
.sec--gris .clientes-lista li { background: #FFFFFF; }
.clientes-lista small { font: 500 11.5px/1.4 var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--texto-suave); }
.clientes-lista b { font-size: 14px; line-height: 1.35; font-weight: 600; color: var(--texto); text-wrap: balance; }
.clientes-lista__marco { display: flex; align-items: center; justify-content: center; width: 100%; height: 96px; }
.clientes-lista__logo { display: block; height: 80px; width: auto; max-width: 100%; object-fit: contain; }

/* Capturas de la plataforma */
.cab-sec > .cab-sec__lado { flex: 1 1 320px; max-width: 520px; }
.cab-sec__lado .entrada { margin-top: 0; }
.capturas { margin-top: 40px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 24px; }
.captura { margin: 0; min-width: 0; }
.captura__marco { overflow: hidden; border: 1px solid var(--borde-2); border-radius: 6px; background: #FFFFFF; box-shadow: 0 18px 40px rgba(12,23,53,.10); }
.captura__barra { display: flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; background: var(--fondo-3); border-bottom: 1px solid var(--borde); }
.captura__barra span { width: 9px; height: 9px; border-radius: 50%; background: var(--borde-2); }
.captura__barra em { margin-left: 8px; font: 400 11.5px/1 var(--f-mono); font-style: normal; color: var(--texto-suave); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.captura img { display: block; width: 100%; height: auto; aspect-ratio: 1200 / 750; object-fit: cover; object-position: top left; }
.captura figcaption { margin-top: 12px; font-size: 15.5px; font-weight: 600; color: var(--tinta); }
.capturas__nota { margin-top: 16px; }
.pieza__vis--captura { padding: 26px 26px 0; align-items: end; }
.pieza__vis--captura img { width: 100%; border-radius: 6px 6px 0 0; box-shadow: 0 0 0 1px var(--borde), 0 14px 30px rgba(12,23,53,.16); }

/* Responsivo */
@media (max-width: 1100px) {
  .nav { display: none; }
  .btn-menu { display: inline-flex; }
}
@media (min-width: 1101px) { .menu-movil { display: none !important; } }
@media (max-width: 900px) {
  .portada__grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  /* En pantallas angostas el logo va primero, para que el video se vea al cargar; el botón de
     sonido va a su lado para no empujar el título hacia abajo. */
  .portada__vis { order: -1; max-width: none; margin-inline: 0; flex-direction: row; align-items: flex-end; gap: 4px; }
  .logo-video { width: 210px; flex: none; }
  .logo-video__sonido { margin-top: 0; margin-bottom: 14px; }
  .selector { grid-template-columns: minmax(0, 1fr); }
  .contacto { grid-template-columns: minmax(0, 1fr); }
  .bloque { grid-template-columns: minmax(0, 1fr); }
  .bloque__cab { position: static; }
  .guia-etiqueta { grid-template-columns: minmax(0, 1fr); }
  .capitulo { grid-template-columns: minmax(0, 1fr); gap: 6px; }
}
@media (max-width: 720px) {
  body { font-size: 16.5px; }
  .barra__mail { display: none !important; }
  .cab-oculto-movil { display: none !important; }
  .logo img { height: 40px; }
  .cabecera__in { min-height: 70px; }
  .campos { grid-template-columns: minmax(0, 1fr); }
  .btn { white-space: normal; }
  .directorio li { grid-template-columns: 96px minmax(0, 1fr) auto; gap: 12px; padding: 12px 14px; }
  .campos-etiqueta li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .aviso-peligro { flex-direction: column; }
  .clientes-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .clientes-lista li { padding: 16px 10px 14px; gap: 10px; }
  .clientes-lista__marco { height: 70px; }
  .clientes-lista__logo { max-height: 62px; }
  .clientes-lista b { font-size: 12.5px; }
  .clientes-lista li:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .portada h1 { font-size: clamp(31px, 8.8vw, 42px); }
  .logo-video { width: 172px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .js .encender .w { color: var(--claro-1); }
}

/* Verificación Cloudflare Turnstile (solo si está activa en build.php) */
.cf-turnstile { margin-bottom: 14px; }
