/* Goal Praxis · hoja de estilo del sitio. Estilo aprobado el 16-09-2026. */
/* Estilo Goal Praxis, aprobado el 16-09-2026. Tokens tal cual los de
     GoalPraxis_Estilo.md (MinepulseStylesTemplate). La página alterna noche y niebla a propósito, así que es
     una composición de un solo mundo: cada color se pinta explícitamente. */
  :root{
    --gp-indigo:#3D5AFE; --gp-indigo-hondo:#2A43D6; --gp-indigo-claro:#7B8CFF;
    --gp-noche:#0A0E2A; --gp-noche-2:#12183A; --gp-noche-linea:#232B55;
    --gp-niebla:#F0F2FF; --gp-niebla-linea:#D9DEF7; --gp-blanco:#FFFFFF;
    --gp-tinta:#0A0E2A; --gp-tinta-media:#4A5178; --gp-luz:#EEF1FF; --gp-luz-media:#A9B1D6;
    --mp-oro:#D4A017; --mp-oro-claro:#F0BF3A; --mp-turquesa:#0EAEB8;
    --ok:#22C55E; --aviso:#F97316; --alerta:#EF4444;
    --fuente:'DM Sans','Helvetica Neue',Arial,sans-serif;
    --dato:'IBM Plex Mono',ui-monospace,Consolas,monospace;
    --r-control:8px; --r-tarjeta:12px;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{margin:0;background:var(--gp-noche);color:var(--gp-luz);font-family:var(--fuente);font-size:16.5px;line-height:1.6;-webkit-font-smoothing:antialiased}
  a{color:inherit}
  h1,h2,h3{margin:0;text-wrap:balance;letter-spacing:-.022em;font-weight:700}
  p{margin:0}
  .wrap{max-width:1180px;margin:0 auto;padding:0 28px}
  :focus-visible{outline:2px solid var(--gp-indigo-claro);outline-offset:3px;border-radius:4px}
  /* El rasgo tomado del logotipo: "Goal" pesado, "Praxis" ligero. Los titulares
     combinan 700 y 300 igual, para que el logo se lea como parte del texto. */
  .ligero{font-weight:300}


  /* ── Navegación ───────────────────────────────────────────── */
  .nav{position:sticky;top:0;z-index:40;background:rgba(10,14,42,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--gp-noche-linea)}
  .nav .wrap{display:flex;align-items:center;gap:28px;height:68px}
  .logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff}
  .logo svg{width:30px;height:30px;flex:none}
  .logo b{font-size:23px;font-weight:500;letter-spacing:-.04em}
  .logo b span{font-weight:300}
  .producto{font-family:var(--dato);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mp-oro-claro);border-left:1px solid var(--gp-noche-linea);padding-left:12px;margin-left:2px}
  .nav ul{list-style:none;display:flex;gap:24px;margin:0 0 0 auto;padding:0;font-size:14.5px;color:var(--gp-luz-media)}
  .nav ul a{text-decoration:none}
  .nav ul a:hover{color:#fff}
  .btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--fuente);font-weight:700;font-size:15px;text-decoration:none;border-radius:var(--r-control);padding:12px 20px;border:1px solid transparent;cursor:pointer;white-space:nowrap;letter-spacing:-.01em}
  .btn-indigo{background:var(--gp-indigo);color:#fff}
  .btn-indigo:hover{background:var(--gp-indigo-hondo)}
  .btn-linea{border-color:var(--gp-noche-linea);color:var(--gp-luz)}
  .btn-linea:hover{border-color:var(--gp-indigo-claro);color:#fff}
  .nav .btn{padding:9px 16px;font-size:14px}

  /* ── Portada (noche): la Sala de Control es la tesis ──────── */
  .hero{padding:66px 0 60px;background:radial-gradient(820px 420px at 80% 8%, rgba(61,90,254,.22), transparent 70%) var(--gp-noche)}
  .hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:52px;align-items:center}
  .etiqueta{font-family:var(--dato);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:16px}
  .hero .etiqueta{color:var(--gp-indigo-claro)}
  .hero h1{font-size:clamp(2.6rem,5.6vw,4.3rem);line-height:1;color:#fff}
  .hero .lead{margin-top:22px;font-size:1.14rem;color:var(--gp-luz-media);max-width:32em}
  .hero .acciones{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
  .hero .nota{margin-top:18px;font-size:13.5px;color:var(--gp-luz-media)}

  .sala{background:#070A20;border:1px solid var(--gp-noche-linea);border-radius:var(--r-tarjeta);overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.5)}
  .sala-cab{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--gp-noche-linea);font-family:var(--dato);font-size:11.5px;color:var(--gp-luz-media)}
  .vivo{display:inline-flex;align-items:center;gap:6px;color:var(--ok);font-weight:600}
  .vivo i{width:7px;height:7px;border-radius:50%;background:var(--ok);animation:latido 1.6s ease-in-out infinite}
  @keyframes latido{50%{opacity:.35}}
  .demo{margin-left:auto;border:1px solid rgba(240,191,58,.5);color:var(--mp-oro-claro);border-radius:999px;padding:2px 9px;font-size:10.5px;letter-spacing:.08em}
  .sala-cuerpo{display:grid;grid-template-columns:minmax(0,1fr) 210px;align-items:stretch}
  .mapa{position:relative;min-height:380px;background:#060919}
  .mapa canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
  .leyenda{position:absolute;left:10px;bottom:10px;display:flex;gap:10px;flex-wrap:wrap;font-family:var(--dato);font-size:10.5px;color:var(--gp-luz-media);background:rgba(6,9,25,.85);padding:5px 9px;border-radius:6px}
  .leyenda span{display:inline-flex;align-items:center;gap:5px}
  .leyenda i{width:8px;height:8px;display:inline-block}
  .bitacora{border-left:1px solid var(--gp-noche-linea);display:flex;flex-direction:column;min-width:0}
  .kpis{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--gp-noche-linea)}
  .kpi{padding:10px 12px}
  .kpi+.kpi{border-left:1px solid var(--gp-noche-linea)}
  .kpi b{display:block;font-family:var(--dato);font-size:19px;font-weight:600;font-variant-numeric:tabular-nums;color:#fff}
  .kpi span{font-size:10.5px;color:var(--gp-luz-media);text-transform:uppercase;letter-spacing:.08em}
  .log-t{padding:9px 12px 4px;font-family:var(--dato);font-size:10.5px;color:var(--gp-luz-media);letter-spacing:.1em;text-transform:uppercase}
  .log{list-style:none;margin:0;padding:0 12px 12px;display:flex;flex-direction:column;gap:7px;overflow:hidden;flex:1}
  .log li{font-size:12px;line-height:1.35;color:var(--gp-luz-media);padding-left:9px;border-left:2px solid var(--gp-noche-linea)}
  .log li time{display:block;font-family:var(--dato);font-size:10px;color:#6D76A3}
  .log li.alerta{border-color:var(--alerta);color:var(--gp-luz)}
  .log li.aviso{border-color:var(--aviso)}
  .log li.ok{border-color:var(--ok)}

  /* ── Franja técnica ───────────────────────────────────────── */
  .franja{background:var(--gp-noche-2);border-top:1px solid var(--gp-noche-linea);border-bottom:1px solid var(--gp-noche-linea)}
  .franja .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
  .franja div{padding:20px 0 20px 20px;border-left:1px solid var(--gp-noche-linea)}
  .franja div:first-child{border-left:0;padding-left:0}
  .franja b{display:block;font-family:var(--dato);font-size:14.5px;font-weight:600;color:#fff}
  .franja span{font-size:13px;color:var(--gp-luz-media)}

  /* ── Faena: la foto con la capa de telemetría, a sangre ───── */
  /* El texto va encima de la foto y no sobre ella: las etiquetas de la capa son el mensaje
     y un degradado que las tape se come justo lo que se quiere mostrar. */
  .faena{background:var(--gp-noche);padding:84px 0 0}
  .faena .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:end;margin-bottom:40px}
  .faena h2{font-size:clamp(2rem,3.8vw,2.9rem);line-height:1.06;color:#fff}
  .faena p{color:var(--gp-luz-media);font-size:1.06rem}
  .faena .etiqueta{color:var(--gp-indigo-claro)}
  .faena img{display:block;width:100%;height:auto}
  .pie-foto{font-family:var(--dato);font-size:11px;color:#8C94BF;letter-spacing:.04em;margin-top:14px}

  /* ── Secciones ────────────────────────────────────────────── */
  section.bloque{padding:92px 0}
  .claro{background:var(--gp-niebla);color:var(--gp-tinta)}
  .claro .etiqueta{color:var(--gp-indigo)}
  .oscuro{background:var(--gp-noche);color:var(--gp-luz)}
  .oscuro .etiqueta{color:var(--gp-indigo-claro)}
  .cab{max-width:660px;margin-bottom:48px}
  .cab h2{font-size:clamp(2rem,3.8vw,2.8rem);line-height:1.08}
  .cab p{margin-top:14px;font-size:1.06rem}
  .claro .cab p{color:var(--gp-tinta-media)}
  .oscuro .cab p{color:var(--gp-luz-media)}

  /* Módulos (niebla). El color va en la marca lateral, nunca como texto: el oro y el
     turquesa no llegan al contraste mínimo sobre claro. */
  .modulos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
  .modulo{background:var(--gp-blanco);border:1px solid var(--gp-niebla-linea);border-radius:var(--r-tarjeta);display:flex;flex-direction:column;position:relative;overflow:hidden}
  .modulo::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--marca);z-index:1}
  .modulo img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;background:var(--gp-noche)}
  .modulo .cuerpo{padding:24px 26px 30px;display:flex;flex-direction:column;gap:13px;flex:1}
  .m-locate{--marca:var(--gp-indigo)}
  .m-optimize{--marca:var(--mp-oro)}
  .m-protect{--marca:var(--mp-turquesa)}
  .modulo .nivel{font-family:var(--dato);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gp-tinta-media);display:flex;align-items:center;gap:8px}
  .modulo .nivel i{width:9px;height:9px;border-radius:2px;background:var(--marca)}
  .modulo h3{font-size:1.9rem;line-height:1.05}
  .modulo p{color:var(--gp-tinta-media);font-size:.98rem}
  .modulo dl{margin:4px 0 0;padding-top:14px;border-top:1px solid var(--gp-niebla-linea);display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:14px}
  .modulo dt{color:var(--gp-tinta-media)}
  .modulo dd{margin:0;color:var(--gp-tinta);font-weight:500}

  /* Retorno (noche): el único sitio donde el oro va como texto, porque aquí sí se lee */
  .retorno{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:60px;align-items:start}
  .cifra{padding:26px 0;border-top:1px solid var(--gp-noche-linea)}
  .cifra:last-of-type{border-bottom:1px solid var(--gp-noche-linea)}
  .cifra b{display:block;font-weight:700;font-size:clamp(2.6rem,5.2vw,3.9rem);color:var(--mp-oro-claro);line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
  .cifra .que{margin-top:10px;font-weight:500;font-size:1.06rem;color:#fff}
  .cifra .como{margin-top:6px;font-family:var(--dato);font-size:12.5px;color:var(--gp-luz-media)}
  .supuesto{font-size:12.5px;color:var(--gp-luz-media);margin-top:16px}
  .retorno-txt p{color:var(--gp-luz-media);font-size:1.06rem}
  .retorno-txt p + p{margin-top:16px}
  .retorno-txt blockquote{margin:28px 0 0;padding:4px 0 4px 20px;border-left:2px solid var(--mp-oro);font-size:1.28rem;line-height:1.35;color:#fff;font-weight:300}

  /* Los equipos: la foto oficial de cada uno, sobre blanco, con el módulo que atiende */
  .equipos{list-style:none;margin:0 0 22px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
  .equipos li{background:var(--gp-blanco);border:1px solid var(--gp-niebla-linea);border-radius:var(--r-tarjeta);padding:0 18px 20px;display:flex;flex-direction:column;position:relative;overflow:hidden}
  .equipos li::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--marca)}
  .equipos img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;margin:4px 0 2px}
  .equipos li em{font-style:normal;font-family:var(--dato);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gp-tinta-media)}
  .equipos li b{display:block;font-size:1.15rem;margin-top:2px}
  .equipos li span{display:block;font-size:13.5px;color:var(--gp-tinta-media);margin-top:4px}
  .equipos li dl{margin:12px 0 0;padding-top:10px;border-top:1px solid var(--gp-niebla-linea);display:grid;grid-template-columns:auto 1fr;gap:3px 10px;font-size:12.5px}
  .equipos li dt{color:var(--gp-tinta-media)}
  .equipos li dd{margin:0;font-family:var(--dato);font-size:12px;color:var(--gp-tinta)}

  /* Cómo funciona (niebla) */
  .capas{display:grid;gap:12px}
  .capa{display:grid;grid-template-columns:180px minmax(0,1fr) minmax(0,1.1fr);gap:24px;align-items:center;padding:22px 26px;background:var(--gp-blanco);border:1px solid var(--gp-niebla-linea);border-radius:var(--r-tarjeta)}
  .capa .n{font-family:var(--dato);font-size:11px;color:var(--gp-indigo);letter-spacing:.14em;text-transform:uppercase}
  .capa h3{font-size:1.25rem;margin-top:3px}
  .capa .rol{color:var(--gp-tinta-media);font-size:.96rem}
  .capa ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
  .capa li{font-family:var(--dato);font-size:11.5px;border:1px solid var(--gp-niebla-linea);background:var(--gp-niebla);border-radius:999px;padding:3px 10px;color:var(--gp-tinta)}

  /* Modelos (niebla) */
  .modelos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
  .modelo{background:var(--gp-blanco);border:1px solid var(--gp-niebla-linea);border-radius:var(--r-tarjeta);padding:26px;display:flex;flex-direction:column;gap:12px}
  .modelo.rec{border:2px solid var(--gp-indigo);padding:25px}
  .modelo .etq{font-family:var(--dato);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gp-tinta-media)}
  .modelo.rec .etq{color:var(--gp-indigo)}
  .modelo h3{font-size:1.3rem}
  .precio{display:flex;gap:22px;padding:14px 0;border-top:1px solid var(--gp-niebla-linea);border-bottom:1px solid var(--gp-niebla-linea)}
  .precio b{display:block;font-family:var(--dato);font-size:1.3rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--gp-tinta)}
  .precio span{font-size:12px;color:var(--gp-tinta-media)}
  .modelo p{color:var(--gp-tinta-media);font-size:.95rem}
  .modelo .para{font-size:13px;margin-top:auto}
  .pendiente{margin-top:20px;font-size:13.5px;color:#9A3412;display:flex;gap:8px;align-items:flex-start}

  /* Piloto (noche): una secuencia real, por eso va numerada */
  .piloto-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:56px;align-items:center}
  .piloto-grid .cab{margin-bottom:34px}
  .gateway{margin:0;border-radius:var(--r-tarjeta);overflow:hidden;border:1px solid var(--gp-noche-linea)}
  .gateway img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;padding:10%;background:radial-gradient(closest-side, rgba(123,140,255,.22), transparent) var(--gp-noche-2)}
  .gateway figcaption{padding:12px 16px;background:var(--gp-noche-2);font-size:13.5px;color:var(--gp-luz-media)}
  .gateway figcaption b{color:#fff;font-weight:500}
  .piloto{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;counter-reset:s}
  .piloto li{padding:22px 0 24px;counter-increment:s;border-top:1px solid var(--gp-noche-linea)}
  .piloto li::before{content:"Semana " counter(s);display:block;font-family:var(--dato);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gp-indigo-claro);margin-bottom:10px}
  .piloto li b{display:block;font-size:1.15rem;color:#fff}
  .piloto li p{margin-top:6px;color:var(--gp-luz-media);font-size:.95rem}

  /* Contacto (niebla) */
  .cierre .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px;align-items:start}
  .cierre h2{font-size:clamp(2.1rem,4vw,3rem);line-height:1.04}
  .cierre p{margin-top:16px;color:var(--gp-tinta-media);font-size:1.06rem}
  form.contacto{display:grid;grid-template-columns:1fr 1fr;gap:14px;background:var(--gp-blanco);border:1px solid var(--gp-niebla-linea);border-radius:var(--r-tarjeta);padding:26px}
  form.contacto label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--gp-tinta-media);font-weight:500}
  form.contacto .ancho{grid-column:1 / -1}
  form.contacto input,form.contacto select{font:inherit;font-size:15px;color:var(--gp-tinta);background:var(--gp-niebla);border:1px solid var(--gp-niebla-linea);border-radius:var(--r-control);padding:11px 12px}
  form.contacto input:focus,form.contacto select:focus{border-color:var(--gp-indigo);outline:none;box-shadow:0 0 0 3px rgba(61,90,254,.15)}
  form.contacto button{grid-column:1 / -1;justify-content:center;margin-top:4px}

  footer{background:var(--gp-noche);border-top:1px solid var(--gp-noche-linea);padding:32px 0 44px;font-size:13.5px;color:var(--gp-luz-media)}
  footer .wrap{display:flex;gap:24px;flex-wrap:wrap;justify-content:space-between;align-items:center}

  @media (max-width:980px){
    .hero .wrap,.retorno,.cierre .wrap,.piloto-grid{grid-template-columns:1fr}
    .gateway{max-width:420px}
    .faena .wrap{grid-template-columns:1fr;gap:16px}
    .nav ul{display:none}
    .modulos,.modelos{grid-template-columns:1fr}
    .capa{grid-template-columns:1fr;gap:12px}
    .piloto{grid-template-columns:1fr 1fr}
    .franja .wrap{grid-template-columns:1fr 1fr}
    .franja div:nth-child(3){border-left:0;padding-left:0}
  }
  @media (max-width:620px){
    .sala-cuerpo{grid-template-columns:1fr}
    .bitacora{border-left:0;border-top:1px solid var(--gp-noche-linea)}
    .log{max-height:170px}
    .mapa{min-height:300px}
    .piloto{grid-template-columns:1fr}
    .equipos{grid-template-columns:1fr 1fr}
    form.contacto{grid-template-columns:1fr}
    .producto{display:none}
  }
  @media (prefers-reduced-motion:reduce){.vivo i{animation:none}html{scroll-behavior:auto}}


  /* ── Añadidos del sitio completo ──────────────────────────── */
  .skip{position:absolute;left:-9999px;top:8px;background:#fff;color:var(--gp-tinta);padding:8px 12px;border-radius:6px;z-index:60}
  .skip:focus{left:8px}
  .nav ul a[aria-current="page"]{color:#fff}
  .idioma{font-family:var(--dato);font-size:11.5px;letter-spacing:.12em;color:var(--gp-luz-media);text-decoration:none;border:1px solid var(--gp-noche-linea);border-radius:6px;padding:5px 8px}
  .idioma:hover{color:#fff;border-color:var(--gp-indigo-claro)}

  /* Cabecera de las páginas interiores */
  .pagina{padding:72px 0 56px;background:radial-gradient(700px 320px at 85% 0%, rgba(61,90,254,.2), transparent 70%) var(--gp-noche);border-bottom:1px solid var(--gp-noche-linea)}
  .pagina h1{font-size:clamp(2.3rem,4.6vw,3.5rem);line-height:1.04;color:#fff;max-width:16em}
  .pagina p{margin-top:16px;max-width:36em;color:var(--gp-luz-media);font-size:1.1rem}
  .pagina .etiqueta{color:var(--gp-indigo-claro)}

  /* Texto largo (privacidad) */
  .texto{max-width:70ch}
  .texto h2{font-size:1.35rem;margin:38px 0 10px;color:var(--gp-tinta)}
  .texto h2:first-child{margin-top:0}
  .texto p,.texto li{color:var(--gp-tinta-media);font-size:1rem}
  .texto p + p{margin-top:12px}
  .texto ul{padding-left:20px;margin:10px 0 0;display:grid;gap:6px}
  .texto a{color:var(--gp-indigo)}
  .texto .actualizado{font-family:var(--dato);font-size:12px;color:var(--gp-tinta-media);margin-bottom:28px}

  /* Contacto: vías directas junto al formulario */
  .vias{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:12px}
  .vias li{display:grid;grid-template-columns:110px 1fr;gap:12px;padding-top:12px;border-top:1px solid var(--gp-niebla-linea);font-size:15px}
  .vias span{font-family:var(--dato);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gp-tinta-media);padding-top:3px}
  .vias a{color:var(--gp-indigo);font-weight:500;text-decoration:none}
  .vias a:hover{text-decoration:underline}
  form.contacto textarea{font:inherit;font-size:15px;color:var(--gp-tinta);background:var(--gp-niebla);border:1px solid var(--gp-niebla-linea);border-radius:var(--r-control);padding:11px 12px;min-height:96px;resize:vertical}
  form.contacto textarea:focus{border-color:var(--gp-indigo);outline:none;box-shadow:0 0 0 3px rgba(61,90,254,.15)}
  form.contacto .consentimiento{flex-direction:row;align-items:flex-start;gap:9px;font-weight:400;line-height:1.45}
  form.contacto .consentimiento input{margin-top:3px;accent-color:var(--gp-indigo)}
  form.contacto .consentimiento a{color:var(--gp-indigo)}
  .estado-form{grid-column:1 / -1;font-size:13.5px;color:var(--gp-tinta-media);min-height:1.4em;margin:0}

  footer .enlaces{display:flex;gap:18px;flex-wrap:wrap}
  footer .enlaces a{text-decoration:none}
  footer .enlaces a:hover{color:#fff}

  @media (max-width:620px){
    .vias li{grid-template-columns:1fr;gap:2px}
    .idioma{display:none}
  }

  /* Consultoría (blanco): la empresa detrás del producto. Tres etapas en su orden real. */
  .blanco{background:var(--gp-blanco);color:var(--gp-tinta)}
  .blanco .etiqueta{color:var(--gp-indigo)}
  .blanco .cab p{color:var(--gp-tinta-media)}
  .etapas{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--gp-indigo);counter-reset:e}
  .etapas>li{padding:24px 26px 6px 0;counter-increment:e}
  .etapas>li+li{padding-left:26px;border-left:1px solid var(--gp-niebla-linea)}
  .etapas em{font-style:normal;font-family:var(--dato);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gp-indigo)}
  .etapas em::before{content:counter(e) " · "}
  .etapas h3{font-size:1.35rem;line-height:1.15;margin:8px 0 10px}
  .etapas p{color:var(--gp-tinta-media);font-size:.97rem}
  .etapas b{display:block;margin-top:16px;font-family:var(--dato);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--gp-tinta-media)}
  .etapas ul{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:6px}
  .etapas ul li{font-size:14.5px;padding-left:18px;position:relative}
  .etapas ul li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;border-radius:2px;background:var(--gp-indigo)}
  .expertos{margin-top:40px;display:flex;gap:28px;align-items:center;justify-content:space-between;background:var(--gp-niebla);border:1px solid var(--gp-niebla-linea);border-radius:var(--r-tarjeta);padding:24px 28px}
  .expertos .etiqueta{margin-bottom:8px}
  .expertos p{color:var(--gp-tinta-media);max-width:60ch}
  .expertos p b{color:var(--gp-tinta)}
  @media (max-width:980px){
    .etapas{grid-template-columns:1fr}
    .etapas>li+li{padding-left:0;border-left:0;border-top:1px solid var(--gp-niebla-linea)}
    .expertos{flex-direction:column;align-items:flex-start}
  }

  /* ── Módulos: nombre en inglés, traducción pequeña, y el botón al one-pager ── */
  .modulo h3 small{display:block;font-size:.95rem;font-weight:300;letter-spacing:0;color:var(--gp-tinta-media);margin-top:4px}
  .modulo .saber{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:14.5px;color:var(--gp-blanco);background:var(--gp-tinta);border-radius:var(--r-control);padding:10px 16px;text-decoration:none}
  .modulo .saber:hover{background:var(--gp-indigo-hondo)}
  .modulo .saber i{width:8px;height:8px;border-radius:2px;background:var(--marca)}
  .ver-equipos{display:flex;justify-content:flex-end;margin:-6px 0 22px}
  .ver-equipos a{font-weight:700;color:var(--gp-indigo);text-decoration:none}
  .ver-equipos a:hover{text-decoration:underline}

  /* ── Página de equipos ── */
  .filtros{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
  .filtros button{font:500 14px var(--fuente);color:var(--gp-luz-media);background:rgba(255,255,255,.04);border:1px solid var(--gp-noche-linea);border-radius:999px;padding:8px 14px;cursor:pointer}
  .filtros button[aria-pressed="true"]{background:var(--gp-indigo);border-color:var(--gp-indigo);color:#fff}
  .filtros button span{font-family:var(--dato);font-size:11px;opacity:.7;margin-left:4px}
  .familia{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
  .eq{position:relative;background:var(--gp-blanco);border:1px solid var(--gp-niebla-linea);border-radius:14px;padding:0 18px 18px;display:flex;flex-direction:column;transform-style:preserve-3d;transition:transform .25s ease,box-shadow .25s ease;animation:aparece .5s ease-out both;animation-delay:calc(var(--n) * 40ms)}
  .eq:hover{box-shadow:0 18px 40px rgba(10,14,42,.12)}
  .eq::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;border-radius:14px 14px 0 0;background:var(--cat)}
  .eq .escena3d{position:relative;height:190px;display:grid;place-items:center;margin:10px 0 6px;perspective:700px}
  .eq .escena3d::after{content:"";position:absolute;left:18%;right:18%;bottom:10px;height:22px;border-radius:50%;background:radial-gradient(closest-side,rgba(10,14,42,.22),transparent)}
  .eq .escena3d::before{content:"";position:absolute;left:24%;right:24%;bottom:12px;height:14px;border-radius:50%;background:radial-gradient(closest-side,var(--cat),transparent);opacity:.35;filter:blur(2px)}
  .eq img{position:relative;z-index:1;width:150px;height:150px;object-fit:contain;animation:flotar 5s ease-in-out infinite;animation-delay:calc(var(--n) * -330ms);filter:drop-shadow(0 14px 14px rgba(10,14,42,.18))}
  .eq .cat{font-family:var(--dato);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gp-tinta-media);display:flex;align-items:center;gap:7px}
  .eq .cat i{width:8px;height:8px;border-radius:2px;background:var(--cat)}
  .eq h3{font-size:1.3rem;margin-top:4px}
  .eq p{font-size:14px;color:var(--gp-tinta-media);margin-top:4px}
  .eq .chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
  .eq .chips span{font-family:var(--dato);font-size:11px;background:var(--gp-niebla);border:1px solid var(--gp-niebla-linea);border-radius:999px;padding:2px 8px;color:var(--gp-tinta)}
  .eq details{margin-top:12px;border-top:1px solid var(--gp-niebla-linea);padding-top:8px;font-size:13px}
  .eq summary{cursor:pointer;font-weight:700;color:var(--gp-indigo);list-style:none}
  .eq summary::-webkit-details-marker{display:none}
  .eq dl{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:8px 0 0}
  .eq dt{color:var(--gp-tinta-media)} .eq dd{margin:0}
  .eq ul{margin:8px 0 0;padding-left:18px;color:var(--gp-tinta-media)}
  @keyframes flotar{50%{transform:translateY(-8px) rotate(-1.5deg)}}
  @keyframes aparece{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

  /* Configurador */
  .config{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:28px;align-items:start}
  .preguntas{background:var(--gp-noche-2);border:1px solid var(--gp-noche-linea);border-radius:14px;padding:22px;display:grid;gap:18px}
  .preguntas fieldset{border:0;margin:0;padding:0;display:grid;gap:8px}
  .preguntas legend{font-weight:700;color:#fff;margin-bottom:8px;font-size:15px}
  .opciones{display:flex;flex-wrap:wrap;gap:8px}
  .opciones label{cursor:pointer}
  .opciones input{position:absolute;opacity:0;pointer-events:none}
  .opciones span{display:inline-block;font-size:14px;color:var(--gp-luz-media);border:1px solid var(--gp-noche-linea);border-radius:10px;padding:8px 12px;background:rgba(255,255,255,.03)}
  .opciones input:checked+span{background:rgba(61,90,254,.2);border-color:var(--gp-indigo-claro);color:#fff}
  .opciones input:focus-visible+span{outline:2px solid var(--gp-indigo-claro);outline-offset:2px}
  .numeros{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .numeros label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--gp-luz-media)}
  .numeros input{font:500 15px var(--dato);color:#fff;background:#070A20;border:1px solid var(--gp-noche-linea);border-radius:8px;padding:9px 10px}
  .numeros input:focus{outline:none;border-color:var(--gp-indigo-claro)}
  .kit{background:radial-gradient(600px 300px at 70% 0%,rgba(61,90,254,.18),transparent) var(--gp-noche-2);border:1px solid var(--gp-noche-linea);border-radius:14px;padding:22px;position:sticky;top:88px}
  .kit h3{font-size:1.35rem;color:#fff}
  .kit .resumen{color:var(--gp-luz-media);font-size:14px;margin-top:4px}
  .kit .mods{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
  .kit .mods span{font-family:var(--dato);font-size:11px;letter-spacing:.08em;border-radius:999px;padding:3px 10px;border:1px solid}
  .kit ul{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:10px;perspective:900px}
  .kit li{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;background:rgba(255,255,255,.03);border:1px solid var(--gp-noche-linea);border-radius:12px;padding:8px 12px;animation:voltea .55s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--n) * 70ms);transform-origin:left center}
  .kit li img{width:64px;height:64px;object-fit:contain;filter:drop-shadow(0 8px 10px rgba(0,0,0,.45))}
  .kit li b{color:#fff;display:block}
  .kit li small{color:var(--gp-luz-media);font-size:12.5px;display:block;line-height:1.35}
  .kit li .cant{font:600 22px var(--dato);color:#fff;font-variant-numeric:tabular-nums}
  .kit .grupo{font-family:var(--dato);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gp-indigo-claro);margin-top:14px}
  .kit .aviso{font-size:12px;color:var(--gp-luz-media);margin-top:14px}
  .kit .acciones-kit{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
  @keyframes voltea{from{opacity:0;transform:rotateY(-70deg) translateX(-10px)}to{opacity:1;transform:none}}
  @media (max-width:980px){.config{grid-template-columns:1fr}.kit{position:static}}
  @media (prefers-reduced-motion:reduce){.eq,.eq img,.kit li{animation:none}}

  /* ── Portada: texto a la izquierda, el tajo satelital con la Sala de Control a la derecha ── */
  .hero-sat{position:relative;padding:48px 0 56px;background:radial-gradient(900px 500px at 78% 30%,rgba(61,90,254,.2),transparent 70%) var(--gp-noche);overflow:hidden}
  .hero-sat .wrap{max-width:1320px;display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:44px;align-items:center}
  .hero-sat .etiqueta{color:var(--gp-indigo-claro)}
  .hero-sat h1{font-size:clamp(2.5rem,4.6vw,4rem);line-height:1;color:#fff}
  .hero-sat .lead{margin-top:20px;font-size:1.1rem;color:var(--gp-luz-media);max-width:34em}
  .hero-sat .acciones{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
  .capac{display:grid;gap:10px;margin:28px 0 0;padding:0;list-style:none}
  .capac li{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:center;font-size:14.5px;color:var(--gp-luz-media)}
  .capac i{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:rgba(123,140,255,.1);border:1px solid rgba(123,140,255,.28)}
  .capac i svg{width:18px;height:18px}
  .capac b{color:#fff;font-weight:500}

  .ventana{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--gp-noche-linea);background:#070A20;box-shadow:0 40px 90px rgba(0,0,0,.55),0 0 0 1px rgba(123,140,255,.08)}
  .ventana-cab{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--gp-noche-linea);font-family:var(--dato);font-size:11.5px;color:var(--gp-luz-media);background:rgba(10,14,42,.92)}
  .modos{display:flex;gap:4px;margin-left:auto;background:#070A20;border:1px solid var(--gp-noche-linea);border-radius:9px;padding:3px}
  .modos button{font:600 11.5px var(--dato);letter-spacing:.1em;color:var(--gp-luz-media);background:none;border:0;border-radius:6px;padding:6px 10px;cursor:pointer}
  .modos button[aria-pressed="true"][data-sat-modo="locate"]{background:#7B8CFF;color:#0A0E2A}
  .modos button[aria-pressed="true"][data-sat-modo="optimize"]{background:#F0BF3A;color:#0A0E2A}
  .modos button[aria-pressed="true"][data-sat-modo="protect"]{background:#19C6D1;color:#0A0E2A}
  .modos button:focus-visible{outline:2px solid #fff;outline-offset:1px}
  .ventana-mapa{position:relative;overflow:hidden}
  .ventana-mapa svg{display:block;width:100%;height:auto}
  .ventana-mapa .grade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(10,14,42,.25),rgba(10,14,42,.05) 30%,rgba(10,14,42,.35));mix-blend-mode:multiply}
  .capa-sat{opacity:0;transition:opacity .6s ease}
  .capa-sat.on{opacity:1}
  .sat-onda{transform-box:fill-box;transform-origin:center;animation:satOnda 1.8s ease-out infinite}
  .sat-voladura{animation:satLat 2.4s ease-in-out infinite}
  @keyframes satOnda{0%{opacity:.9;transform:scale(.4)}100%{opacity:0;transform:scale(1.3)}}
  @keyframes satLat{50%{fill:rgba(239,68,68,.22)}}
  .sat-panel{position:absolute;left:14px;bottom:14px;width:min(330px,55%);background:rgba(10,14,42,.86);border:1px solid var(--gp-noche-linea);border-radius:10px;padding:10px 12px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
  .sat-panel .t{font-family:var(--dato);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gp-luz-media);margin-bottom:6px;display:flex;justify-content:space-between}
  .sat-panel ul{list-style:none;margin:0;padding:0;display:grid;gap:5px}
  .sat-panel li{font-size:12.5px;line-height:1.35;color:var(--gp-luz-media);padding-left:9px;border-left:2px solid var(--gp-noche-linea);animation:entraLog .5s ease-out both;animation-delay:calc(var(--i) * 120ms)}
  .sat-panel li.alerta{color:#fff;border-left-color:var(--acento)}
  .ventana[data-modo="locate"]{--acento:#7B8CFF}
  .ventana[data-modo="optimize"]{--acento:#F0BF3A}
  .ventana[data-modo="protect"]{--acento:#EF4444}
  @keyframes entraLog{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
  .sat-fuente{position:absolute;right:8px;top:6px;font-size:10px;color:rgba(255,255,255,.6)}
  @media (max-width:1020px){.hero-sat .wrap{grid-template-columns:1fr}.modos button{padding:6px 8px}}
  @media (prefers-reduced-motion:reduce){.sat-onda,.sat-voladura,.sat-panel li{animation:none}}

  /* ── Red viva: la del simulador, aislada bajo .red-viva ── */

.red-viva{
  --bg:#080D10;--sky:#0C151A;--panel:#121C21;--line:#22333B;--line2:#31474F;
  --ink:#E9F0F3;--ink2:#8FA3AC;--ink3:#5C707A;
  --rf:#35B7C9;--bh:#C87F3C;--app:#4FB477;--alert:#E4574C;--viol:#8E7CC3;
  --fd:"Barlow Semi Condensed",sans-serif;--fb:"Barlow",sans-serif;--fm:"IBM Plex Mono",monospace;
}
.red-viva .rv-wrap{max-width:1360px;margin:0 auto;padding:16px 16px 50px}

.red-viva .bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:11px 16px;margin-bottom:12px}
.red-viva .bar .t{font-family:var(--fd);font-size:19px;font-weight:700;margin-right:auto;letter-spacing:.2px}
.red-viva .bar .t span{font-family:var(--fm);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--bh);margin-left:9px}
.red-viva .stat{font-family:var(--fm);font-size:11px;color:var(--ink2);white-space:nowrap}
.red-viva .stat b{color:var(--rf);font-weight:600}
.red-viva .enter{font-family:var(--fb);font-size:13.5px;font-weight:600;background:var(--app);color:#06120B;border:0;padding:9px 16px;border-radius:7px;cursor:pointer;text-decoration:none;display:inline-block}
.red-viva .enter:hover{filter:brightness(1.1)}
.red-viva .enter:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

.red-viva .scene{background:linear-gradient(180deg,#0A1216 0%,#0C161B 45%,#0A1013 100%);border:1px solid var(--line);border-radius:11px;overflow:hidden;position:relative}
.red-viva .scene svg{display:block;width:100%;height:auto}
.red-viva .hud{position:absolute;left:14px;top:12px;font-family:var(--fm);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink3);pointer-events:none}
.red-viva .hud b{color:var(--rf)}

.red-viva .legend{display:flex;flex-wrap:wrap;gap:8px 20px;padding:10px 16px;border-top:1px solid var(--line);background:var(--panel);font-family:var(--fm);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3)}
.red-viva .legend i{display:inline-block;width:16px;height:3px;border-radius:2px;margin-right:7px;vertical-align:3px}

.red-viva .info{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-top:12px}
.red-viva .info div{background:var(--panel);padding:12px 15px}
.red-viva .info b{display:block;font-family:var(--fm);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--rf);margin-bottom:5px}
.red-viva .info span{font-size:12.6px;color:var(--ink2);line-height:1.45}

/* node label */
.red-viva .nlab{font-family:var(--fm);font-size:7px;fill:var(--ink3);letter-spacing:.06em}
.red-viva .tag{font-family:var(--fm);font-size:8.5px;fill:var(--ink2);letter-spacing:.1em;text-transform:uppercase}
.red-viva .big{font-family:"Barlow Semi Condensed",sans-serif;font-size:13px;font-weight:700;fill:var(--ink);letter-spacing:.3px}
.red-viva .hitzone{cursor:pointer}
.red-viva .hitzone:hover .halo{opacity:.55}
.red-viva .halo{opacity:0;transition:opacity .15s}
@keyframes sweep{0%{opacity:.5;transform:scale(.25)}100%{opacity:0;transform:scale(1)}}
.red-viva .cov{transform-origin:center;transform-box:fill-box;animation:sweep 3.2s linear infinite}
.red-viva .cov2{transform-origin:center;transform-box:fill-box;animation:sweep 3.2s linear infinite 1.6s}
@media (prefers-reduced-motion:reduce){.red-viva .cov,.cov2{animation:none;opacity:.18}}
.red-viva{background:var(--bg);color:var(--ink);font-family:var(--fb);font-size:14px;padding:64px 0 72px}
.red-viva .rv-cab{max-width:1360px;margin:0 auto 18px;padding:0 16px;display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap}
.red-viva .rv-cab h2{font-family:var(--fd);font-size:clamp(1.9rem,3.4vw,2.6rem);line-height:1.05;margin:0;color:var(--ink)}
.red-viva .rv-cab p{margin:8px 0 0;color:var(--ink2);max-width:60ch;font-size:15px}
.red-viva .rv-cab .rv-et{font-family:var(--fm);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--rf);margin-bottom:10px}
.red-viva .rv-wrap{padding-bottom:0}


  /* ── Red viva real: el simulador incrustado a todo el ancho ── */
  .red-real{background:var(--gp-noche);padding:64px 0 72px;border-top:1px solid var(--gp-noche-linea)}
  .rr-cab{max-width:1600px;margin:0 auto 22px;padding:0 24px;display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap}
  .rr-et{font-family:var(--dato);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:#6FD3E3;margin-bottom:12px}
  .rr-cab h2{font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.05;color:#fff}
  .rr-cab p{margin-top:12px;max-width:66ch;color:var(--gp-luz-media);font-size:15.5px}
  .rr-marco{max-width:1600px;margin:0 auto;padding:0 24px}
  .rr-tabs{display:flex;gap:6px;margin-bottom:12px}
  .rr-tabs button{font:600 14px var(--fuente);color:var(--gp-luz-media);background:var(--gp-noche-2);border:1px solid var(--gp-noche-linea);border-radius:999px;padding:9px 18px;cursor:pointer}
  .rr-tabs button[aria-selected="true"]{background:var(--gp-indigo);border-color:var(--gp-indigo);color:#fff}
  .rr-tabs button:focus-visible{outline:2px solid #fff;outline-offset:2px}
  .rr-marco iframe{display:block;width:100%;aspect-ratio:1600/1180;min-height:640px;border:1px solid var(--gp-noche-linea);border-radius:14px;background:var(--gp-noche)}
  @media (max-width:760px){.rr-marco iframe{aspect-ratio:auto;height:900px}}

  /* Portada con foto: sistemas activos, bitácora por módulo y ventana a la Sala de Control */
  .sistemas{display:flex;gap:6px;margin-left:auto}
  .sistemas span{font:600 11px var(--dato);letter-spacing:.1em;border-radius:6px;padding:5px 9px;color:#0A0E2A}
  .s-locate{background:#7B8CFF} .s-optimize{background:#F0BF3A} .s-protect{background:#19C6D1}
  .sat-panel li b{font:600 10px var(--dato);letter-spacing:.1em;margin-right:4px}
  .sat-panel li.m-locate{border-left-color:#7B8CFF} .sat-panel li.m-locate b{color:#7B8CFF}
  .sat-panel li.m-optimize{border-left-color:#F0BF3A} .sat-panel li.m-optimize b{color:#F0BF3A}
  .sat-panel li.m-protect{border-left-color:#19C6D1} .sat-panel li.m-protect b{color:#19C6D1}
  .sat-panel li:first-child{color:#fff}
  .pip{position:absolute;right:14px;bottom:14px;width:min(230px,38%);display:block;text-decoration:none;border-radius:10px;overflow:hidden;border:1px solid rgba(123,140,255,.55);box-shadow:0 14px 40px rgba(0,0,0,.55);background:#0A0E2A;transition:transform .2s ease}
  .pip:hover{transform:translateY(-3px) scale(1.02)}
  .pip:focus-visible{outline:2px solid #fff;outline-offset:3px}
  .pip-img{position:relative;display:block;overflow:hidden}
  .pip-img img{display:block;width:100%;height:auto;animation:pipPan 14s ease-in-out infinite alternate}
  .pip-scan{position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,rgba(123,140,255,.22) 50%,transparent 52%);background-size:100% 220%;animation:pipScan 3.2s linear infinite}
  .pip-txt{display:flex;align-items:center;gap:8px;padding:7px 10px;font-size:12px;font-weight:600;color:#fff;border-top:1px solid var(--gp-noche-linea)}
  .pip-txt .vivo{font-family:var(--dato);font-size:10px;white-space:nowrap}
  @keyframes pipPan{from{transform:scale(1.08) translate(2%,1%)}to{transform:scale(1.08) translate(-2%,-1%)}}
  @keyframes pipScan{from{background-position:0 120%}to{background-position:0 -120%}}
  @media (prefers-reduced-motion:reduce){.pip-img img,.pip-scan{animation:none}}

  /* ── Red viva v2: solo la red, con la paleta Goal Praxis ── */
  .red-real{position:relative;overflow:hidden;background:
    radial-gradient(900px 480px at 15% 0%,rgba(61,90,254,.28),transparent 70%),
    radial-gradient(800px 500px at 90% 100%,rgba(123,140,255,.18),transparent 70%),
    linear-gradient(180deg,#0A0E2A 0%,#101650 55%,#0A0E2A 100%)}
  .red-real::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(123,140,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(123,140,255,.05) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(180deg,#000,transparent 85%);-webkit-mask-image:linear-gradient(180deg,#000,transparent 85%)}
  .rr-cab,.rr-marco{position:relative}
  .rr-et{color:#7B8CFF}
  .rr-ventana{border-radius:18px;padding:1px;background:linear-gradient(135deg,rgba(123,140,255,.7),rgba(61,90,254,.15) 40%,rgba(240,191,58,.45));box-shadow:0 40px 100px rgba(0,0,0,.5),0 0 60px rgba(61,90,254,.18)}
  .rr-ventana iframe{display:block;width:100%;border:0;border-radius:17px;background:#0A0E2A;aspect-ratio:1600/1000;min-height:560px}
  @media (max-width:900px){.rr-ventana iframe{aspect-ratio:auto;height:760px}}
  @media (max-width:560px){.rr-marco{padding:0 12px}.rr-ventana iframe{height:640px}}

  /* Móvil: el mapa necesita aire; la bitácora se oculta y la ventana a la sala se achica */
  @media (max-width:700px){.sat-panel{display:none}.pip{width:46%}.ventana-cab{flex-wrap:wrap}.ventana-cab .modos{margin-left:0}}

  /* ── Cabecera premium: vidrio, logo con presencia, MinePulse como sello, menú en píldora ── */
  .nav{background:linear-gradient(180deg,rgba(10,14,42,.92),rgba(10,14,42,.78));border-bottom:0;box-shadow:0 1px 0 rgba(123,140,255,.14),0 10px 30px rgba(0,0,0,.25)}
  .nav::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(123,140,255,.55) 30%,rgba(240,191,58,.45) 70%,transparent)}
  .nav .wrap{max-width:1320px;height:78px;gap:22px}
  .nav .logo svg{width:34px;height:34px;filter:drop-shadow(0 0 10px rgba(123,140,255,.45))}
  .nav .logo b{font-size:25px}
  .nav .producto{border:1px solid rgba(240,191,58,.6);background:rgba(240,191,58,.08);border-radius:999px;padding:5px 12px;margin-left:0;font-size:11px;letter-spacing:.2em;font-weight:600}
  .nav ul{gap:2px;padding:5px;border-radius:14px;border:1px solid #2E3875;background:linear-gradient(180deg,#141B45,#0E1333);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);color:#C3CAEE;font-size:14.5px;font-weight:500}
  .nav ul a{display:block;padding:8px 14px;border-radius:10px;transition:background .2s,color .2s}
  .nav ul a:hover,.nav ul a[aria-current="page"]{background:rgba(123,140,255,.14);color:#fff}
  .nav .idioma{border-radius:999px;padding:7px 11px;border-color:#2E3875;background:#0E1333}
  .nav .btn{padding:11px 18px;border-radius:11px;background:linear-gradient(180deg,#5B74FF,#3D5AFE);box-shadow:0 8px 24px rgba(61,90,254,.45),inset 0 1px 0 rgba(255,255,255,.25)}
  .nav .btn:hover{background:linear-gradient(180deg,#6B82FF,#2A43D6)}
  @media (max-width:1100px){.nav ul a{padding:8px 10px}.nav ul{font-size:13.5px}}

  /* ── Red en vivo: indicadores de la red sobre el marco ── */
  .rr-kpis{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px}
  .rr-kpis span{display:inline-flex;align-items:center;gap:8px;font-family:var(--dato);font-size:12.5px;color:#fff;background:rgba(18,24,58,.8);border:1px solid #2E3875;border-radius:999px;padding:7px 14px}
  .rr-kpis i{width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 10px var(--c)}
  .rr-cab h2{background:linear-gradient(90deg,#fff 40%,#AEB9FF);-webkit-background-clip:text;background-clip:text;color:transparent}

  /* ── Industrias: tarjetas en portada, selector y páginas por industria ── */
  .industrias{background:radial-gradient(800px 400px at 85% 0%,rgba(61,90,254,.22),transparent 70%) var(--gp-noche)}
  .ind-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
  .ind-card{position:relative;display:block;border-radius:14px;overflow:hidden;min-height:320px;text-decoration:none;color:#fff;border:1px solid var(--gp-noche-linea);isolation:isolate;transition:transform .25s ease,box-shadow .25s ease}
  .ind-card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--c);z-index:2}
  .ind-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .5s ease}
  .ind-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,14,42,.1) 20%,rgba(10,14,42,.95) 85%)}
  .ind-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(0,0,0,.45)}
  .ind-card:hover img{transform:scale(1.06)}
  .ind-card:focus-visible{outline:2px solid #fff;outline-offset:3px}
  .ind-txt{position:absolute;left:0;right:0;bottom:0;padding:18px;display:grid;gap:6px}
  .ind-txt b{font-size:1.25rem}
  .ind-txt small{font-size:13.5px;color:var(--gp-luz-media);line-height:1.4}
  .ind-txt em{font-style:normal;font-weight:700;font-size:13.5px;color:var(--c)}
  @media (max-width:1100px){.ind-grid{grid-template-columns:repeat(3,1fr)}}
  @media (max-width:700px){.ind-grid{grid-template-columns:1fr 1fr}.ind-card{min-height:240px}}
  @media (max-width:460px){.ind-grid{grid-template-columns:1fr}}

  .ind-sel{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
  .ind-sel a{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:var(--gp-luz-media);text-decoration:none;border:1px solid #2E3875;background:#0E1333;border-radius:999px;padding:8px 15px}
  .ind-sel a i{width:8px;height:8px;border-radius:50%;background:var(--c)}
  .ind-sel a:hover{color:#fff;border-color:var(--c)}
  .ind-sel a[aria-current="page"]{color:#fff;border-color:var(--c);background:color-mix(in srgb,var(--c) 22%,#0E1333)}

  .pg-ind{--n2:#12183A;--linea:#232B55;--lmedia:#A9B1D6;--m:var(--dato);background:var(--gp-noche);color:var(--gp-luz)}
  .pg-ind .l{font-weight:300}
  .pg-ind .et{font-family:var(--dato);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase}
  .ind{padding:72px 0}
  .ind .cab{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;max-width:none;margin:0}
  .ind figure{margin:0;border-radius:16px;overflow:hidden;position:relative;border:1px solid var(--linea)}
  .ind figure img{display:block;width:100%;height:auto}
  .ind figure figcaption{position:absolute;left:12px;bottom:12px;font-family:var(--m);font-size:11px;background:rgba(10,14,42,.85);padding:4px 9px;border-radius:6px;color:var(--lmedia)}
  .ind .tag{position:absolute;font-family:var(--m);font-size:12px;background:rgba(10,14,42,.9);border:1px solid var(--acento);border-left:4px solid var(--acento);padding:6px 10px;border-radius:7px;color:#fff;max-width:60%}
  .ind .tag b{display:block;color:var(--acento);font-size:10.5px;letter-spacing:.12em}
  .ind h2{font-size:clamp(2rem,3.6vw,2.8rem);line-height:1.05;letter-spacing:-.02em;margin-top:10px;color:#fff}
  .ind .et{color:var(--acento)}
  .ind .lead{margin-top:14px;color:var(--lmedia)}
  .ind .dolor{margin:18px 0 0;display:grid;gap:8px;padding:0;list-style:none}
  .ind .dolor li{padding-left:18px;position:relative;color:var(--lmedia);font-size:15px}
  .ind .dolor li::before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;border-radius:2px;background:var(--acento)}
  .casos{margin-top:40px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .caso{background:var(--n2);border:1px solid var(--linea);border-radius:14px;padding:22px;position:relative;overflow:hidden}
  .caso::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--mod)}
  .caso .m{font-family:var(--m);font-size:11px;letter-spacing:.14em;color:var(--mod)}
  .caso h3{font-size:1.25rem;margin-top:6px;color:#fff}
  .caso p{margin-top:8px;color:var(--lmedia);font-size:14.5px}
  .caso dl{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--linea);display:grid;grid-template-columns:auto 1fr;gap:5px 12px;font-size:13px}
  .caso dt{color:var(--lmedia)} .caso dd{margin:0;font-family:var(--m);font-size:12.5px;color:#fff}
  .ind .extra{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:14px;color:var(--lmedia)}
  .ind .extra span,.ind .extra a{font-family:var(--m);font-size:12px;border:1px solid var(--linea);border-radius:999px;padding:4px 11px;color:#fff;background:rgba(255,255,255,.03);text-decoration:none}
  .ind-cta{padding:60px 0 80px;border-top:1px solid var(--linea);background:radial-gradient(700px 300px at 20% 100%,rgba(61,90,254,.25),transparent 70%)}
  .ind-cta .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
  .ind-cta h2{font-size:2rem;color:#fff} .ind-cta p{margin-top:8px;color:var(--lmedia)}
  .ind-cta .acciones{display:flex;gap:10px;flex-wrap:wrap}
  @media (max-width:900px){.ind .cab,.casos{grid-template-columns:1fr}}

  /* ── Familia Pulse: marca por industria y vitrina de equipos ── */
  .pulse-marca{display:inline-block;margin:6px 0 12px;font-family:var(--dato);font-size:13px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--c);border:1px solid var(--c);background:color-mix(in srgb,var(--c) 12%,transparent);border-radius:999px;padding:6px 14px}
  .ind-prod{font-style:normal;font-family:var(--dato);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--c)}
  .vitrina{padding:64px 0;border-top:1px solid #232B55;background:linear-gradient(180deg,#0A0E2A,#101650)}
  .vitrina .et{font-family:var(--dato);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase}
  .vitrina h2{margin-top:10px;font-size:clamp(1.8rem,3.2vw,2.5rem);color:#fff;letter-spacing:-.02em}
  .vitrina h2 .l{font-weight:300}
  .vitrina ul{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
  .vitrina li{background:#12183A;border:1px solid #232B55;border-radius:14px;padding:0 16px 18px;text-align:center;position:relative;overflow:hidden;transition:transform .25s,border-color .25s}
  .vitrina li::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--c)}
  .vitrina li:hover{transform:translateY(-4px);border-color:var(--c)}
  .v-img{display:grid;place-items:center;height:150px;margin:8px 0 4px;background:radial-gradient(closest-side,color-mix(in srgb,var(--c) 25%,transparent),transparent)}
  .v-img img{width:130px;height:130px;object-fit:contain;filter:drop-shadow(0 12px 14px rgba(0,0,0,.5));animation:flotar 5s ease-in-out infinite}
  .vitrina li b{display:block;color:#fff;font-size:1.05rem}
  .vitrina li em{display:block;font-style:normal;color:#A9B1D6;font-size:13.5px;margin-top:4px}
  .vitrina li small{display:block;font-family:var(--dato);font-size:11px;color:var(--c);margin-top:8px}
  .vitrina-link{display:inline-block;margin-top:20px;font-weight:700;color:#7B8CFF;text-decoration:none}
  @media (max-width:1000px){.vitrina ul{grid-template-columns:repeat(3,1fr)}}
  @media (max-width:600px){.vitrina ul{grid-template-columns:1fr 1fr}}

  /* ── Portada: carrusel de las cinco industrias ── */
  .h-prod{font-weight:600;letter-spacing:.14em;color:var(--pc,#F0BF3A);border:1px solid var(--pc,#F0BF3A);border-radius:999px;padding:2px 9px;transition:color .4s,border-color .4s}
  .ventana-mapa{position:relative}
  .ventana-mapa .slide{opacity:0;visibility:hidden;transition:opacity .7s ease,visibility .7s}
  .ventana-mapa .slide:not(:first-child){position:absolute;inset:0}
  .ventana-mapa .slide.on{opacity:1;visibility:visible}
  .ventana-mapa .slide img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 7s ease-out}
  .ventana-mapa .slide.on img{transform:scale(1.12)}
  .ventana-mapa .slide:not(:first-child)::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,14,42,.15),rgba(10,14,42,.05) 40%,rgba(10,14,42,.45));pointer-events:none}
  .h-tag{position:absolute;z-index:2;max-width:50%;font-family:var(--dato);font-size:12.5px;color:#fff;background:rgba(10,14,42,.88);border:1px solid var(--t);border-left:4px solid var(--t);border-radius:8px;padding:7px 11px;opacity:0;transform:translateY(8px)}
  .h-tag b{display:block;font-size:10.5px;letter-spacing:.14em;color:var(--t)}
  .slide.on .h-tag{animation:hTag .5s ease-out forwards}
  .slide.on .h-tag:nth-of-type(2){animation-delay:.6s}
  .slide.on .h-tag:nth-of-type(3){animation-delay:1.2s}
  @keyframes hTag{to{opacity:1;transform:none}}
  .ventana:not([data-slide="0"]) .modos{display:none}
  .ventana:not([data-slide="0"]) .sat-fuente{visibility:hidden}
  .ventana-cab>span{white-space:nowrap}
  #h-lugar{overflow:hidden;text-overflow:ellipsis;min-width:0}
  .pip{z-index:3}
  .h-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--gp-noche-linea);background:rgba(10,14,42,.95)}
  .h-tabs button{position:relative;display:grid;gap:1px;text-align:left;background:none;border:0;border-left:1px solid var(--gp-noche-linea);padding:10px 12px 12px;cursor:pointer;color:var(--gp-luz-media);font-family:var(--fuente)}
  .h-tabs button:first-child{border-left:0}
  .h-tabs b{font-family:var(--dato);font-size:11px;letter-spacing:.1em;color:var(--c);font-weight:600}
  .h-tabs span{font-size:12.5px}
  .h-tabs button[aria-selected="true"]{background:color-mix(in srgb,var(--c) 14%,transparent);color:#fff}
  .h-tabs button:focus-visible{outline:2px solid #fff;outline-offset:-2px}
  .h-bar{position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--c)}
  .h-tabs button[aria-selected="true"] .h-bar{animation:hBar var(--dur,6s) linear forwards}
  @keyframes hBar{to{width:100%}}
  @media (max-width:700px){.h-tabs span{display:none}.h-tabs button{padding:9px 6px 11px;text-align:center}.h-tabs b{font-size:9.5px;letter-spacing:.04em}.h-tag{font-size:11px;max-width:80%}.h-tag:nth-of-type(3){display:none}}
  @media (prefers-reduced-motion:reduce){.ventana-mapa .slide img{transition:none;transform:none}.h-tag{opacity:1;transform:none;animation:none!important}.h-bar{animation:none!important}}

  /* ── Portada v4: texto por industria y escenas con ciclo de módulos ── */
  .h-textos{display:grid}
  .h-txt{grid-area:1/1;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease,visibility .6s}
  .h-txt.on{opacity:1;visibility:visible;transform:none}
  .h-txt .h-marca{color:var(--c);font-weight:600}
  .h-txt h1,.h-txt .h1{margin:16px 0 0;font-size:clamp(2.5rem,4.6vw,4rem);line-height:1;color:#fff;font-weight:700;letter-spacing:-.022em;text-wrap:balance}
  .h-txt .lead{margin-top:20px;font-size:1.1rem;color:var(--gp-luz-media);max-width:34em}
  .slide .h-tag{display:none}
  .slide[data-modo="locate"] .h-tag[data-m="locate"],.slide[data-modo="optimize"] .h-tag[data-m="optimize"],.slide[data-modo="protect"] .h-tag[data-m="protect"]{display:block;animation:hTag .45s ease-out forwards}
  .s-modos{position:absolute;right:12px;top:12px;z-index:3;display:flex;gap:4px;background:rgba(7,10,32,.85);border:1px solid var(--gp-noche-linea);border-radius:9px;padding:3px}
  .s-modos span{font:600 11px var(--dato);letter-spacing:.1em;color:var(--gp-luz-media);border-radius:6px;padding:5px 9px}
  .slide[data-modo="locate"] .s-modos [data-m="locate"]{background:#7B8CFF;color:#0A0E2A}
  .slide[data-modo="optimize"] .s-modos [data-m="optimize"]{background:#F0BF3A;color:#0A0E2A}
  .slide[data-modo="protect"] .s-modos [data-m="protect"]{background:#19C6D1;color:#0A0E2A}
  .s-log{z-index:3}
  .s-log ul{display:none}
  .slide[data-modo="locate"] .s-log ul[data-m="locate"],.slide[data-modo="optimize"] .s-log ul[data-m="optimize"],.slide[data-modo="protect"] .s-log ul[data-m="protect"]{display:grid}
  .slide[data-modo="locate"] .s-log li.alerta{border-left-color:#7B8CFF}
  .slide[data-modo="optimize"] .s-log li.alerta{border-left-color:#F0BF3A}
  .slide[data-modo="protect"] .s-log li.alerta{border-left-color:#19C6D1}
  .h-tag{max-width:46%}

  /* ── Red en vivo sobre fondo claro: contraste con la portada oscura ── */
  .red-real{background:radial-gradient(900px 420px at 15% 0%,rgba(61,90,254,.10),transparent 70%),linear-gradient(180deg,#F6F7FF 0%,#EEF1FF 100%);border-top:0}
  .red-real::before{background-image:linear-gradient(rgba(61,90,254,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(61,90,254,.06) 1px,transparent 1px)}
  .red-real .rr-et{color:var(--gp-indigo)}
  .red-real .rr-cab h2{background:linear-gradient(90deg,#0A0E2A 45%,#3D5AFE);-webkit-background-clip:text;background-clip:text;color:transparent}
  .red-real .rr-cab p{color:var(--gp-tinta-media)}
  .red-real .rr-kpis span{background:#fff;border-color:var(--gp-niebla-linea);color:var(--gp-tinta);box-shadow:0 2px 8px rgba(10,14,42,.06)}
  .red-real .rr-ventana{box-shadow:0 30px 80px rgba(10,14,42,.22),0 0 0 1px rgba(61,90,254,.12)}
