
/* ── Los colores, por su PAPEL ────────────────────────────────────────────
   Cada color se nombra por lo que hace, no por lo que es. Parece una formalidad y no lo es: el azul de
   marca cumple DOS papeles que en un tema oscuro se separan —como fondo sólido de una banda sigue siendo
   el mismo azul, y como tinta sobre la página tiene que aclararse o deja de leerse—, y el blanco cumple
   otros dos —superficie de una tarjeta, y tinta sobre un color sólido—. Mientras estuvieron escritos como
   `#fff` y `var(--marca)` sin distinguir, no había forma de hacer un tema oscuro que no fuese un parche.

   Un tema nuevo redefine ESTAS variables y nada más. Ninguna regla de más abajo vuelve a nombrar un color
   literal, salvo los que son iguales en los dos temas. */
:root{
  color-scheme:light;
  /* El azul como FONDO sólido: bandas, cabeceras de tabla, sellos. Con su tinta encima. */
  --marca:#2c5f8d; --marca-osc:#1d4568; --sobre-marca:#fff;
  /* El azul como TINTA sobre la página: enlaces, antetítulos, iconos, filos. */
  --acento:#2c5f8d; --acento-hover:#1d4568; --acento-suave:#eaf2f8;
  --naranja:#ef7622;
  /* El botón de acción va en el naranja de marca. Su contraste con el texto blanco está medido y anotado
     en la documentación de este módulo: es una decisión de marca, no un olvido. */
  --cta-fondo:var(--naranja); --cta-fondo-hover:#d9651a;
  --ambar:#a5650f;
  /* Los tres planos de profundidad: el papel, la banda alterna y la tarjeta que se levanta sobre ellos. */
  --fondo:#fff; --fondo-2:#f4f8fb; --panel:#fff;
  --linea:#dbe5ee; --linea-fuerte:#c3d3e0;
  --texto:#12202d; --mut:#5a7184; --ok:#0f7b47; --malo:#c02b2b;
  /* Las ventanas al producto —la traza, el terminal, el bloque de licencia— y el pie. Son las piezas que
     en el tema claro dan el contraste, y en el oscuro tienen que seguir siendo MÁS profundas que la
     página o dejan de leerse como una ventana. */
  --oscuro:#0c1c2b; --pie:#0c1c2b; --linea-oscura:#17304a;
  /* La cabecera es translúcida y se desenfoca sobre lo que pasa por debajo: necesita el color del papel
     CON alfa, que una variable de color sólido no puede dar. */
  --panel-vidrio:rgba(255,255,255,.94);
  /* El verde tenue que marca la columna propia en la comparativa. Sobre papel blanco basta un 6 % de
     verde; sobre una página oscura ese mismo 6 % no existe. */
  --si-fondo:rgba(15,123,71,.06); --si-fondo-hover:rgba(15,123,71,.1);
  /* El filo que asoma cuando una tabla tiene más ancho del que se ve. Es la única pista de que se puede
     desplazar, así que tiene que existir en los dos temas. */
  --filo-scroll:rgba(18,32,45,.14);
  /* El interior de un campo. En claro es el mismo blanco de la tarjeta y lo dibuja el borde; en oscuro se
     hunde por debajo de ella, que es como se lee «aquí se escribe» sin necesidad de mirar el borde. */
  --campo:#fff;
  --sombra:0 1px 2px rgba(18,32,45,.05), 0 12px 32px -18px rgba(18,32,45,.28);
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  --sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

/* ── Tema oscuro, siguiendo al sistema ────────────────────────────────────
   Sin selector manual y sin nada guardado: el portal no ejecuta JavaScript y no pone cookies —lo dice su
   propia política de privacidad—, así que la preferencia que manda es la que el visitante ya declaró en
   su sistema operativo. Es también la que acierta más veces: quien tiene el equipo en oscuro lo tiene en
   oscuro a las tres de la mañana revisando una alerta, que es cuando se lee esta web.

   No es el tema claro con los colores invertidos. Los azules de tinta se aclaran para seguir legibles, el
   verde y el ámbar de los veredictos se levantan, y las ventanas oscuras se hunden POR DEBAJO del fondo
   de la página para que sigan leyéndose como una ventana y no como un hueco. */
@media (prefers-color-scheme:dark){
  :root{
    color-scheme:dark;
    --marca:#2c5f8d; --marca-osc:#1d4568; --sobre-marca:#fff;
    --acento:#7ab4e2; --acento-hover:#a5cff0; --acento-suave:#17293a;
    --ambar:#e0a24a;
    --fondo:#0d1926; --fondo-2:#111f2e; --panel:#16273a;
    --linea:#22384f; --linea-fuerte:#33506d;
    --texto:#e7eff7; --mut:#9fb4c6; --ok:#35c48a; --malo:#f18b8b;
    --oscuro:#060e18; --pie:#060e18; --linea-oscura:#1a3149;
    --panel-vidrio:rgba(13,25,38,.92);
    --si-fondo:rgba(53,196,138,.09); --si-fondo-hover:rgba(53,196,138,.15);
    --filo-scroll:rgba(0,0,0,.55);
    --campo:#0b1622;
    /* El azul de las bandas a página completa deslumbra sobre un fondo oscuro: baja un punto para que
       siga siendo el azul de marca sin convertirse en el foco de la pantalla. La tinta blanca encima pasa
       de 6,7:1 a 8,5:1, así que solo mejora. */
    --marca:#1f4a72; --marca-osc:#12354f;
    /* En una página oscura una sombra difusa no se ve; lo que separa una tarjeta del fondo es su borde,
       así que la sombra se queda en un halo mínimo y el trabajo lo hace `--linea`. */
    --sombra:0 1px 2px rgba(0,0,0,.4), 0 14px 34px -20px rgba(0,0,0,.75);
  }
}
*{box-sizing:border-box}
/* Salto al contenido: invisible hasta que alguien tabula, que es justo cuando hace falta. */
.saltar{position:absolute;left:-9999px;top:0;z-index:40;background:var(--marca);color:#fff;
  padding:12px 20px;border-radius:0 0 10px 0;font-weight:700}
.saltar:focus{left:0;color:#fff}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--fondo);color:var(--texto);font:16px/1.65 var(--sans);
  -webkit-font-smoothing:antialiased}
a{color:var(--acento);text-decoration:none}
a:hover{color:var(--acento-hover)}
:focus-visible{outline:2px solid var(--naranja);outline-offset:3px;border-radius:4px}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
img{max-width:100%}
/* El sprite de iconos no ocupa sitio: solo define los símbolos que luego referencian los `<use>`. */
.sprite{position:absolute;width:0;height:0}
/* Separación de un elemento que cierra una sección. Va en clase y no en un atributo `style` porque la
   política de contenido del portal prohíbe los estilos en línea. */
.tras{margin-top:28px}
.diagrama svg{min-width:700px;width:100%;height:auto;display:block}

/* Los iconos van en trazo, no en relleno: heredan el color del texto y no compiten con él. */
.ico{width:22px;height:22px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;color:var(--acento)}

/* ── Cabecera ─────────────────────────────────────────────────────────────
   El logo se sirve YA RECORTADO: el original traía un 35% de margen transparente, así que la altura de la
   caja no era la altura del logotipo y la marca se leía pequeña. Aquí `height` es lo que se ve. */
header{position:sticky;top:0;z-index:20;background:var(--panel-vidrio);
  backdrop-filter:saturate(1.6) blur(8px);border-bottom:1px solid var(--linea)}
header .wrap{display:flex;align-items:center;gap:30px;height:100px}
header img{height:69px;width:auto;display:block}
nav{display:flex;gap:24px;flex-wrap:wrap;align-items:center}
header nav.secciones{margin-left:auto}
/* Dos bloques, no siete elementos seguidos: a la izquierda dónde ir, a la derecha qué hacer. El filete
   es lo que hace que se lean como cosas distintas sin necesidad de leerlas. */
.acciones-cab{display:flex;align-items:center;gap:20px;padding-left:24px;
  border-left:1px solid var(--linea)}
.cliente{display:inline-flex;align-items:center;gap:7px;color:var(--mut);font-size:14.5px;
  font-weight:600;white-space:nowrap}
.cliente .ico{width:16px;height:16px;color:var(--linea-fuerte)}
.cliente:hover{color:var(--acento)}
.cliente:hover .ico{color:var(--acento)}
.cliente.on{color:var(--texto)}
.cliente.on .ico{color:var(--acento)}
nav a{color:var(--mut);font-size:15px;font-weight:600}
nav a:hover{color:var(--acento)}
nav a.on{color:var(--texto)}
/* Selector de idioma desplegable, con `<details>` y sin una línea de guion: la política de contenido del
   portal prohíbe los scripts, y dos códigos uno al lado del otro dejan de servir en cuanto haya un tercer
   idioma. */
.idiomas{position:relative}
.idiomas summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px;
  font-family:var(--mono);font-size:12px;letter-spacing:.06em;font-weight:700;color:var(--texto);
  padding:6px 4px}
.idiomas summary::-webkit-details-marker{display:none}
.idiomas summary:after{content:"";width:5px;height:5px;border-right:1.6px solid var(--mut);
  border-bottom:1.6px solid var(--mut);transform:rotate(45deg) translateY(-2px)}
.idiomas[open] summary:after{transform:rotate(-135deg) translateY(-2px)}
.idiomas summary:hover{color:var(--acento)}
.idiomas .ico{width:15px;height:15px;color:var(--linea-fuerte)}
.idiomas ul{position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:158px;margin:0;padding:6px;
  list-style:none;background:var(--panel);border:1px solid var(--linea);border-radius:10px;box-shadow:var(--sombra)}
.idiomas li a{display:block;padding:8px 12px;border-radius:7px;font-size:14.5px;color:var(--texto);
  font-weight:600}
.idiomas li a:hover{background:var(--fondo-2);color:var(--acento)}
.idiomas li a[aria-current]{color:var(--acento);background:var(--acento-suave)}
/* El botón vive fuera del `<nav>` desde que la cabecera se partió en dos bloques: el selector va por su
   clase, no por su posición. */
header .top{background:var(--cta-fondo);color:#fff;padding:11px 20px;border-radius:8px;
  font-weight:700;font-size:15px;white-space:nowrap;box-shadow:0 1px 2px rgba(239,118,34,.35)}
header .top:hover{background:var(--cta-fondo-hover);color:#fff}

/* ── Barra de sección ─────────────────────────────────────────────────────
   Las cinco páginas que cuentan el producto comparten esta fila. Va pegada bajo la cabecera para que
   moverse entre ellas no obligue a subir al menú principal. */
.subnav{position:sticky;top:100px;z-index:19;background:var(--fondo-2);
  border-bottom:1px solid var(--linea)}
.subnav .wrap{display:flex}
.subnav nav{margin-left:0;gap:0;overflow-x:auto;scrollbar-width:none}
.subnav nav::-webkit-scrollbar{display:none}
.subnav a{padding:14px 0;margin-right:28px;font-size:14.5px;white-space:nowrap;
  border-bottom:2px solid transparent}
.subnav a.on{color:var(--acento);border-bottom-color:var(--naranja)}

/* ── Tipografía de sección ────────────────────────────────────────────── */
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--acento);margin:0 0 14px;display:block;font-weight:600}
/* El cuerpo del titular está calibrado para una frase de dos líneas por parte: a 56 px, un titular con
   sujeto y predicado completos se rompía en cinco líneas y dejaba una palabra suelta al final. */
/* El `h1` de una página interior es el titular de su primera sección y se ve EXACTAMENTE igual que un
   `h2`: lo que cambia es el nivel del encabezado, no su peso en la página. El grande es el del hero. */
h1,h2{font-size:clamp(26px,3.1vw,37px);line-height:1.16;letter-spacing:-.02em;margin:0 0 14px;
  font-weight:750;color:var(--texto)}
.hero h1{font-size:clamp(31px,3.4vw,46px);line-height:1.12;letter-spacing:-.024em;margin:0 0 20px;
  font-weight:800;max-width:15em}
h1 em{font-style:normal;font-weight:300;color:var(--acento);display:block}
h3{font-size:17.5px;font-weight:700;letter-spacing:-.01em;margin:0 0 8px}
p{margin:0 0 16px}
.intro{color:var(--mut);max-width:46em;font-size:17.5px;margin:0 0 34px}

/* ── Portada ──────────────────────────────────────────────────────────── */
.hero{padding:88px 0 80px;border-bottom:1px solid var(--linea);
  background:linear-gradient(180deg,var(--acento-suave),transparent 62%)}
.hero .cols{display:grid;grid-template-columns:1.12fr .88fr;gap:54px;align-items:center}
.hero .sub{color:var(--mut);font-size:18.5px;max-width:34em;margin:0 0 30px}
.acciones{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
/* Nota al pie de una sección: la salvedad, el método o la letra de una tabla. Va en la tipografía del
   texto, no en monoespaciada — la mono es para el dato del terminal, y un párrafo de cinco líneas en mono
   se lee como una salida de consola en medio de una página comercial. La ÚNICA que la conserva es la del
   hero, que son dos líneas pegadas a la traza y hacen juego con ella. */
.nota{color:var(--mut);font-size:14px;margin-top:20px;line-height:1.65;max-width:64em}
.hero .nota{font-family:var(--mono);font-size:13.5px;line-height:1.6}

/* ── Botones ──────────────────────────────────────────────────────────── */
.cta{display:inline-block;background:var(--cta-fondo);color:#fff;padding:15px 26px;
  border-radius:9px;font-weight:700;font-size:16px;border:0;cursor:pointer;font-family:var(--sans);
  box-shadow:0 1px 2px rgba(239,118,34,.35)}
.cta:hover{background:var(--cta-fondo-hover);color:#fff}
@media (prefers-reduced-motion:no-preference){
  .cta{transition:transform .12s ease,background .12s ease}
  .cta:hover{transform:translateY(-1px)}
}
.cta.sec{background:var(--panel);color:var(--acento);border:1px solid var(--linea-fuerte);box-shadow:none;font-weight:650}
.cta.sec:hover{border-color:var(--acento);background:var(--acento-suave);color:var(--acento-hover)}

/* ── La traza: la ventana al producto ─────────────────────────────────────
   Cuatro eventos del mismo compromiso, con su plano y su marca de tiempo: es la forma real en que el
   agente ve un ataque. No ilustra el argumento, ES el argumento, y por eso ocupa el sitio que en otras
   webs ocuparía una captura de pantalla. */
.traza{background:var(--oscuro);border:1px solid var(--linea-oscura);border-radius:14px;box-shadow:var(--sombra);
  overflow:hidden}
.traza .cab{display:flex;align-items:center;gap:10px;padding:13px 17px;border-bottom:1px solid var(--linea-oscura);
  font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:#8ba3ba}
.traza .cab b{width:8px;height:8px;border-radius:50%;background:#35c48a;display:inline-block}
.traza ol{list-style:none;margin:0;padding:20px 17px;position:relative}
.traza ol:before{content:"";position:absolute;left:27px;top:28px;bottom:28px;width:2px;
  background:linear-gradient(180deg,#4a8fc7,var(--naranja))}
.traza li{position:relative;padding:0 0 21px 31px;font-family:var(--mono);font-size:13px;line-height:1.45}
.traza li:last-child{padding-bottom:0}
.traza li:before{content:"";position:absolute;left:7px;top:6px;width:9px;height:9px;border-radius:50%;
  background:#4a8fc7;box-shadow:0 0 0 4px var(--oscuro)}
.traza li.corte:before{background:var(--naranja);
  box-shadow:0 0 0 4px var(--oscuro),0 0 14px 2px rgba(239,118,34,.55)}
.traza .t{color:#7b93a9;font-size:11.5px}
.traza .plano{color:#4a8fc7;text-transform:uppercase;letter-spacing:.1em;font-size:10.5px;margin-left:8px}
.traza .det{display:block;color:#e7eff7;margin-top:3px;word-break:break-all}
/* «Contenido» es un ESTADO resuelto, no una acción: va en verde, igual que en el panel real del producto
   —borde y texto, sin relleno—. El naranja no se pierde: lo sigue llevando el punto de la línea, que es
   donde de verdad ocurre la acción. Así cada color conserva su significado en vez de repartirse el mismo
   momento. */
.traza .badge{display:inline-block;border:1px solid #35c48a;color:#35c48a;font-size:10px;font-weight:700;
  letter-spacing:.09em;padding:1px 7px;border-radius:5px;margin-left:8px;vertical-align:1px;
  text-transform:uppercase}
.traza .pie{border-top:1px solid var(--linea-oscura);padding:14px 17px;color:#9fb4c6;font-size:13px}
@media (prefers-reduced-motion:no-preference){
  .traza li{animation:surge .34s ease-out backwards}
  .traza li:nth-child(1){animation-delay:.04s} .traza li:nth-child(2){animation-delay:.13s}
  .traza li:nth-child(3){animation-delay:.22s} .traza li:nth-child(4){animation-delay:.31s}
  @keyframes surge{from{opacity:.25;transform:translateX(-6px)}to{opacity:1;transform:none}}
}

/* ── El comando de instalación ────────────────────────────────────────────
   Pegado al hero: es la prueba de que hay un producto y no una promesa. Quien decide esto es un jefe de
   sistemas y lo primero que busca es si hay algo que instalar.

   CENTRADO y en una sola columna a propósito. En dos columnas —titular a un lado, terminal al otro— el
   comando queda estrecho, el texto comprimido y el bloque entero se lee como un anuncio metido entre dos
   secciones. Centrado, el comando es el centro de la página durante una pantalla, que es exactamente su
   peso: el terminal es la pieza, y todo lo demás lo enmarca. */
section.instalar{background:var(--fondo);padding:74px 0 66px;text-align:center}
.instalar .wrap{max-width:820px}
.instalar h2{font-size:clamp(25px,2.6vw,32px);margin-bottom:12px}
.instalar .entrada{color:var(--mut);font-size:16.5px;margin:0 auto 34px;max-width:40em}
.orden{background:var(--oscuro);border:1px solid var(--linea-oscura);border-radius:13px;box-shadow:var(--sombra);
  overflow:hidden;text-align:left}
.orden .barra{display:flex;align-items:center;gap:7px;padding:12px 16px;border-bottom:1px solid var(--linea-oscura)}
.orden .barra b{width:9px;height:9px;border-radius:50%;background:#2b4761;display:inline-block}
.orden .barra span{margin-left:10px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:#7b93a9}
/* El comando es lo más grande de la caja y no se parte: quien lo copia a mano no puede dejarse media
   instrucción. Si no cabe, se desplaza. */
.orden pre{margin:0;padding:26px 22px;background:none;border:0;border-radius:0;overflow-x:auto;
  font:16px/1.6 var(--mono);color:#e7eff7;white-space:pre}
.orden .prompt{color:#35c48a;user-select:none;margin-right:10px}
/* El pie va FUERA de la caja: dentro, en gris pequeño sobre el fondo oscuro, se leía como una línea más
   de salida del terminal y no como lo que es, una aclaración nuestra. */
.pie-orden{color:var(--mut);font-size:14.5px;margin:18px auto 0;max-width:44em}
/* Las tres preguntas que se hace cualquiera antes de pasar un guion de internet por `sudo sh`. Se salen
   del ancho del bloque —que está calibrado para el comando, no para tres textos— porque encajonadas en
   820 px cada una caía a cuatro líneas y las tres quedaban de alturas distintas. */
.sellos-inst{list-style:none;margin:40px auto 0;padding:34px 0 0;border-top:1px solid var(--linea);
  display:grid;grid-template-columns:repeat(3,1fr);gap:30px;text-align:left;width:min(1060px,100%)}
.sellos-inst li{display:flex;gap:11px;align-items:flex-start;color:var(--mut);font-size:14.5px;
  line-height:1.5}
.sellos-inst .ico{width:20px;height:20px;margin-top:1px}

/* ── Secciones y tarjetas ─────────────────────────────────────────────── */
section{padding:78px 0;border-bottom:1px solid var(--linea)}
section:nth-of-type(even){background:var(--fondo-2)}
.rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.rejilla.planes{grid-template-columns:repeat(auto-fit,minmax(236px,1fr))}
.tarjeta{background:var(--panel);border:1px solid var(--linea);border-radius:12px;padding:26px;
  box-shadow:var(--sombra)}
.tarjeta:hover{border-color:var(--acento)}
@media (prefers-reduced-motion:no-preference){
  .tarjeta{transition:border-color .15s ease,transform .15s ease}
  .tarjeta:hover{transform:translateY(-2px)}
}
.tarjeta .ico{margin-bottom:14px;display:block}
.tarjeta p{color:var(--mut);font-size:15px;margin:0}
.destacado{background:var(--marca);color:#fff;border-radius:14px;padding:34px;margin-top:34px;
  box-shadow:var(--sombra)}
.destacado h3{font-size:21px;color:#fff}
.destacado p{color:#dce9f3;font-size:17.5px;margin:0;max-width:52em}

/* ── Los tres pilares ─────────────────────────────────────────────────────
   Es el titular de la página desarrollado, no una rejilla más: número grande, más aire y el texto a un
   tamaño que se lee como argumento y no como pie de foto. */
.pilares{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:22px}
.pilar{background:var(--panel);border:1px solid var(--linea);border-radius:14px;padding:30px 32px;
  box-shadow:var(--sombra);position:relative}
.pilar .n{position:absolute;top:26px;right:30px;font-family:var(--mono);font-size:13px;
  color:var(--linea-fuerte);font-weight:700}
.pilar .ico{width:26px;height:26px;display:block;margin-bottom:16px}
.pilar h3{font-size:20px;margin-bottom:10px}
.pilar p{color:var(--mut);font-size:15.5px;margin:0}

/* ── Lista de puntos ──────────────────────────────────────────────────────
   Afirmaciones de una línea: en dos columnas y sin caja. Con siete de ellas, una rejilla de tarjetas de
   tres en fondo dejaría la última sola en su fila. */
.puntos{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:20px 40px;max-width:62em}
.puntos li{display:flex;gap:14px;align-items:flex-start;padding-bottom:18px;
  border-bottom:1px solid var(--linea)}
.puntos .ico{margin-top:3px}
.puntos b{color:var(--texto)}
.puntos div{color:var(--mut);font-size:15.5px}

/* ── Capacidades con su mecanismo ─────────────────────────────────────────
   Dos columnas: nueve capacidades en una sola columna serían una página infinita, y en tres el texto
   quedaría demasiado estrecho para el detalle técnico que llevan dentro. */
.caps{display:grid;grid-template-columns:repeat(auto-fit,minmax(430px,1fr));gap:20px}
.cap{background:var(--panel);border:1px solid var(--linea);border-radius:12px;padding:26px 28px;
  box-shadow:var(--sombra);display:flex;flex-direction:column}
/* Con un número impar de capacidades la última se quedaría sola en su fila, con medio ancho vacío al
   lado. Ocupando la fila entera, el bloque cierra. */
.caps>.cap:last-child:nth-child(odd){grid-column:1/-1}
.cap .cab{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.cap .cab .ico{width:24px;height:24px}
.cap h3{margin:0;font-size:18px}
.cap>p{color:var(--mut);font-size:15.5px;margin:0}
/* El desplegable se pega abajo: con tarjetas de alto distinto, dejarlo al hilo del texto pondría el
   mismo control a cuatro alturas diferentes en la misma fila. */
.cap details{margin-top:auto;padding-top:16px}
.cap details>summary{border-top:1px solid var(--linea);padding-top:14px}
.cap summary{cursor:pointer;font-family:var(--mono);font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--acento);font-weight:600;list-style:none}
.cap summary::-webkit-details-marker{display:none}
.cap summary:before{content:"+";display:inline-block;width:1.2em;font-weight:700}
.cap details[open] summary:before{content:"–"}
.cap details p{color:var(--mut);font-size:14.5px;margin:12px 0 0;line-height:1.7}

/* ── Sellos del arsenal ───────────────────────────────────────────────── */
.sellos{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px;margin-top:34px}
.sello{border-top:3px solid var(--acento);padding-top:14px}
.sello .ico{margin-bottom:8px;display:block}
.sello b{display:block;font-size:16px;letter-spacing:-.01em}
.sello span{display:block;color:var(--mut);font-size:14px;margin-top:4px}

/* ── Cifras medidas ───────────────────────────────────────────────────────
   No es un gráfico: son cuatro magnitudes sin relación entre sí, y la forma correcta de leer eso es el
   número grande con su etiqueta. Los valores van con las cifras PROPORCIONALES de la fuente —tabular-nums
   está reservado a las columnas de las tablas, donde los dígitos sí tienen que alinearse—, y todos en el
   azul de marca: no hay series que distinguir, así que el color no codifica nada. */
.cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:28px;margin:0 0 32px}
.cifra{border-top:3px solid var(--linea-fuerte);padding-top:16px}
.cifra .v{display:block;font-size:clamp(33px,3.9vw,48px);font-weight:800;letter-spacing:-.03em;
  line-height:1.04;color:var(--acento)}
.cifra .e{display:block;color:var(--mut);font-size:15px;margin-top:9px;max-width:19em}
.cifras-pie{color:var(--mut);font-size:15.5px;max-width:60em;margin:0}
/* Las del método, un escalón por debajo de las del resultado: en la misma página, ocho números al mismo
   tamaño —dos de ellos un «0»— no dejan ver cuál es la cifra que importa. */
.cifras.menores{gap:24px;margin-bottom:0}
.cifras.menores .cifra{border-top-width:2px}
.cifras.menores .v{font-size:clamp(26px,2.4vw,31px);color:var(--texto)}
.cifras.menores .e{font-size:14.5px;margin-top:7px}

/* ── Diagrama de las cuatro huellas ───────────────────────────────────────
   El dibujo usa la MISMA paleta y la misma tipografía que las tarjetas del sitio: cajas claras con su
   borde, el azul de marca para la estructura, el rojo de los avisos para el hueco que nadie vigila y el
   bloque destacado en azul para la conclusión. El naranja no aparece porque aquí todavía no actúa nadie, y
   en esta web el naranja solo señala acciones. Todos los colores del SVG salen de estas variables: el
   dibujo no lleva ni uno escrito dentro. */
.diagrama{margin:34px 0 0;padding:30px 30px 26px;background:var(--fondo-2);border:1px solid var(--linea);
  border-radius:14px;overflow-x:auto;
  --d-ink:var(--texto); --d-mut:var(--mut); --d-line:var(--linea); --d-linea-fuerte:var(--linea-fuerte);
  --d-panel:var(--panel); --d-acento:var(--acento); --d-malo:var(--malo); --d-banda:var(--marca);
  --d-banda-ink:#fff; --d-banda-mut:#dbe9f4}
.diagrama .titulo{color:var(--d-ink);font-size:17.5px;font-weight:700;margin-bottom:22px;
  letter-spacing:-.015em;max-width:52em}
.diagrama figcaption:last-child{color:var(--d-mut);font-size:14.5px;margin-top:20px;max-width:64em}

/* ── Capturas de la consola ───────────────────────────────────────────── */
.captura{margin:0 0 44px}
.captura img{width:100%;height:auto;display:block;border:1px solid var(--linea-fuerte);
  border-radius:12px;box-shadow:var(--sombra);background:var(--oscuro)}
.captura figcaption{color:var(--mut);font-size:15.5px;margin-top:16px;max-width:62em}
.captura figcaption b{color:var(--texto)}
/* A su tamaño natural, nunca ampliada: el valor de esta captura es que se lea el detalle, y estirarla la
   emborrona. El comentario va al lado y pegado arriba. */
.captura.alta{display:grid;grid-template-columns:minmax(0,620px) 1fr;gap:40px;align-items:start}
.captura.alta img{width:100%;max-width:620px}
.captura.alta figcaption{margin-top:0;font-size:16px;position:sticky;top:120px}

/* ── Frente a / la diferencia ─────────────────────────────────────────── */
.frente{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.frente .ellos h3{color:var(--mut);font-family:var(--mono);font-size:12px;letter-spacing:.12em;
  text-transform:uppercase}
.frente .nosotros{border-color:var(--acento);border-width:2px}
.frente .nosotros h3{color:var(--acento);font-family:var(--mono);font-size:13px;letter-spacing:.08em}

/* ── Preguntas ────────────────────────────────────────────────────────── */
.faq{display:grid;gap:14px;max-width:56em}
.faq div{background:var(--panel);border:1px solid var(--linea);border-radius:12px;padding:22px 26px;
  box-shadow:var(--sombra)}
.faq h3{color:var(--acento-hover);font-size:17px}
.faq p{margin:0;color:var(--mut);font-size:15.5px}

/* ── Cierre ───────────────────────────────────────────────────────────── */
/* Las páginas que son un formulario van sobre el fondo gris: la tarjeta blanca necesita un fondo del que
   despegarse, y sobre blanco se leía como una página a medio maquetar. */
section.claro{background:var(--fondo-2)}
section.cierre{background:var(--marca);border-bottom:0}
section.cierre h2,section.cierre .eyebrow{color:#fff}
section.cierre p{color:#dbe9f4;font-size:18px;max-width:44em;margin:0 0 28px}
section.cierre .cta.sec{background:transparent;color:#fff;border-color:rgba(255,255,255,.55);
  box-shadow:none}
section.cierre .cta.sec:hover{background:rgba(255,255,255,.12);color:var(--sobre-marca);border-color:var(--sobre-marca)}

/* ── Tablas ───────────────────────────────────────────────────────────── */
/* Con la tabla más ancha que la pantalla, la sombra del borde derecho avisa de que hay más y desaparece
   al llegar al final: es la única pista de que se puede desplazar, y en móvil no hay otra. */
.tabla-wrap{overflow-x:auto;border:1px solid var(--linea);border-radius:12px;background:var(--panel);
  box-shadow:var(--sombra);
  background-image:linear-gradient(to right,var(--panel) 30%,transparent),
    linear-gradient(to right,transparent,var(--panel) 70%),
    linear-gradient(to right,var(--filo-scroll),transparent),
    linear-gradient(to left,var(--filo-scroll),transparent);
  background-position:0 0,100% 0,0 0,100% 0;
  background-repeat:no-repeat;
  background-size:44px 100%,44px 100%,16px 100%,16px 100%;
  background-attachment:local,local,scroll,scroll}
table{border-collapse:collapse;width:100%;min-width:600px}
th,td{padding:15px 18px;text-align:right;border-bottom:1px solid var(--linea);
  font-variant-numeric:tabular-nums;font-size:15px}
th:first-child,td:first-child{text-align:left}
thead th{background:var(--marca);color:#fff;font-family:var(--mono);font-size:11.5px;
  letter-spacing:.12em;text-transform:uppercase;font-weight:600}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:var(--acento-suave)}
td.libre{color:var(--ok);font-weight:700;font-family:var(--mono);letter-spacing:.05em;text-align:center}
td.vacio{color:var(--mut)}
.plan{display:flex;flex-direction:column;position:relative}
.plan.free{border-color:var(--ok);border-width:2px}
.plan .precio{display:block;font-size:26px;font-weight:800;letter-spacing:-.02em;color:var(--acento);
  margin:2px 0 0}
.plan.free .precio{color:var(--ok)}
/* Un precio sin unidad no es un precio. «8,00 €» al lado de «0 €» invita a compararlos como si fueran la
   misma magnitud, y lo que se compra es un servidor durante un mes. */
.plan .por{display:block;color:var(--mut);font-size:13px;margin:3px 0 14px}
.plan .volumen{display:block;color:var(--mut);font-size:13px;margin:-8px 0 14px}
/* El plan que más se contrata se señala: en una rejilla de cuatro columnas iguales, el comprador que no
   sabe cuál le toca se lleva la duda a la pestaña siguiente. */
.plan.destaca{border-color:var(--acento);border-width:2px}
.plan .sello-plan{position:absolute;top:-11px;left:26px;background:var(--marca);color:#fff;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;
  padding:4px 10px;border-radius:6px}
.plan>p{margin-bottom:16px}
.incluye{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.incluye li{position:relative;padding-left:22px;color:var(--mut);font-size:14.5px;line-height:1.5}
.incluye li:before{content:"";position:absolute;left:0;top:.45em;width:11px;height:6px;
  border-left:2px solid var(--ok);border-bottom:2px solid var(--ok);transform:rotate(-45deg)}
.plan .incluye{margin:auto 0 0;padding:16px 0 0;border-top:1px solid var(--linea)}

/* Comparativa: la columna propia se distingue, y cada veredicto lleva su matiz debajo. Un «No» a secas
   sería propaganda; «No — solo la petición HTTP» es una afirmación comprobable. */
table.comp{min-width:880px}
table.comp th[scope="row"]{text-align:left;font-weight:600;font-size:15px;color:var(--texto);
  background:var(--panel);width:32%}
table.comp td{text-align:center;vertical-align:top;font-variant-numeric:normal}
table.comp thead th{text-align:center}
table.comp thead th:first-child{text-align:left}
table.comp thead th.mio{background:var(--marca-osc)}
table.comp td.si{background:var(--si-fondo)}
table.comp td.si b{color:var(--ok)}
/* Los tres veredictos se leen los tres. Un «No» en gris casi blanco no es discreción: es esconder el
   argumento de venta más directo de la tabla, y además deja el dato por debajo del contraste mínimo. */
table.comp td.parcial b{color:var(--ambar)}
table.comp td.no b{color:var(--mut)}
table.comp td b{display:block;font-size:14px;letter-spacing:.02em}
table.comp td .matiz{display:block;color:var(--mut);font-size:12.5px;margin-top:5px;line-height:1.45;
  font-family:var(--sans)}
table.comp tbody tr:hover td.si{background:var(--si-fondo-hover)}
/* Encabezado de grupo: separa los tres bloques de criterios sin sacarlos de la misma tabla. */
table.comp tr.grupo th{background:var(--fondo-2);color:var(--acento);font-family:var(--mono);
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;text-align:left;padding:11px 18px;
  border-bottom:1px solid var(--linea-fuerte);font-weight:600}
table.comp tbody tr.grupo:hover th{background:var(--fondo-2)}
/* Qué significa cada marca: sin declararlo, un «Parcial» es una opinión. */
.leyenda{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 28px}
.leyenda li{color:var(--mut);font-size:13.5px}

/* Mediciones: la columna del medio es la que convierte una cifra en un experimento, así que se lee como
   texto y no como dato numérico. */
table.medidas{min-width:760px}
table.medidas th[scope="row"]{text-align:left;font-weight:600;font-size:15px;color:var(--texto);width:30%}
table.medidas td{text-align:left;font-variant-numeric:normal}
table.medidas td.sobre{color:var(--mut);font-size:14.5px;line-height:1.55}
table.medidas td.res{text-align:right;font-weight:700;color:var(--acento);white-space:nowrap}
/* La cabecera se alinea con su columna: por defecto las celdas de tabla van a la derecha (precios), y
   aquí el contenido es texto. */
table.medidas thead th{text-align:left}
table.medidas thead th:last-child{text-align:right}

/* ── Formulario con su contexto al lado ──────────────────────────────────
   Una página de alta con un formulario y nada más obliga a decidir a ciegas. A la derecha va lo que se
   lleva y lo que va a pasar al pulsar; en móvil se apila debajo, después del formulario, que es el orden
   en que hace falta. */
.conforma{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:34px;
  align-items:start}
.conforma form{max-width:none;margin:0}
.conforma aside{display:grid;gap:16px}
.ficha{background:var(--panel);border:1px solid var(--linea);border-radius:12px;padding:24px 26px;
  box-shadow:var(--sombra)}
.ficha h3{font-size:16px;margin-bottom:14px}
.ficha p{color:var(--mut);font-size:14.5px;margin:0}
/* La ficha principal va en azul de marca, como el bloque destacado del resto del sitio: es lo que el
   visitante tiene que leer antes de rellenar nada, y en blanco sobre blanco competía de tú a tú con el
   formulario. */
.ficha.destacada{background:var(--marca);border-color:var(--marca);box-shadow:var(--sombra)}
.ficha.destacada h3{color:#fff}
.ficha.destacada p{color:#dbe9f4}
.ficha.destacada .incluye li{color:#dbe9f4}
.ficha.destacada .incluye li:before{border-left-color:#7fd4a8;border-bottom-color:#7fd4a8}
.paso{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-top:1px solid var(--linea)}
.paso:first-of-type{border-top:0;padding-top:0}
.paso .ico{width:19px;height:19px;margin-top:3px}
.paso b{display:block;font-size:14.5px}
.paso span{display:block;color:var(--mut);font-size:14px;margin-top:2px;line-height:1.5}

/* Las dos mitades del trato del piloto, una enfrente de la otra. */
.trato{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;margin-top:26px}
.trato .ficha{padding:28px 30px}
.trato .ficha h3{font-size:18px}

/* La tarifa completa, plegada: arriba el precio de entrada y el ejemplo; el detalle, a un clic. */
.ejemplo{margin:26px 0 0;color:var(--texto);font-size:16px;max-width:56em;
  border-left:3px solid var(--acento);padding-left:18px}
.tramos{margin-top:24px}
.tramos summary{cursor:pointer;font-family:var(--mono);font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--acento);font-weight:600;list-style:none;display:inline-block;
  padding:10px 16px;border:1px solid var(--linea-fuerte);border-radius:9px}
.tramos summary::-webkit-details-marker{display:none}
.tramos summary:before{content:"+";display:inline-block;width:1.3em;font-weight:700}
.tramos[open] summary:before{content:"–"}
.tramos summary:hover{border-color:var(--acento);background:var(--acento-suave)}
.tramos .tabla-wrap{margin-top:20px}

/* ── Formularios ──────────────────────────────────────────────────────── */
form{background:var(--panel);border:1px solid var(--linea);border-radius:12px;padding:32px;max-width:640px;
  box-shadow:var(--sombra)}
/* Encabezado del formulario y zona de envío: sin ellos, la tarjeta es una caja con campos sueltos. La
   cabecera desborda el relleno del formulario con márgenes negativos para ocupar todo el ancho de la
   tarjeta, que es lo que la hace leerse como la barra de un panel y no como un párrafo en negrita. */
form>h3{font-size:16px;margin:-32px -32px 26px;padding:17px 32px;background:var(--fondo-2);
  border-bottom:1px solid var(--linea);border-radius:11px 11px 0 0;letter-spacing:-.005em}
.enviar{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding-top:22px;
  border-top:1px solid var(--linea)}
.enviar p{margin:0;color:var(--mut);font-size:13.5px;line-height:1.5;flex:1;min-width:220px}
/* Qué se hace con el dato, un escalón por debajo de qué hace el botón. Renglón aparte: las dos frases
   seguidas se leían como un párrafo de letra pequeña. */
.enviar .rgpd{display:block;margin-top:7px;font-size:12.5px}
label{display:block;font-weight:700;margin:0 0 4px;font-size:15px}
.ayuda{color:var(--mut);font-size:14px;margin:0 0 10px}
input{width:100%;padding:13px 14px;border:1px solid var(--linea-fuerte);border-radius:9px;
  background:var(--campo);color:var(--texto);font-size:15px;margin-bottom:22px;font-family:var(--sans)}
input::placeholder{color:var(--mut);opacity:1}
input:focus{border-color:var(--acento);outline:2px solid var(--acento);outline-offset:0}
.aviso{border-radius:12px;padding:22px;margin-bottom:26px;border:1px solid var(--linea);
  background:var(--panel);border-left:4px solid var(--acento);box-shadow:var(--sombra)}
.aviso.ok{border-left-color:var(--ok)}
.aviso.lleno{border-left-color:var(--naranja)}
.aviso.mal{border-left-color:var(--malo)}
.aviso h2{font-size:19px;margin:0 0 6px}
.aviso p{margin:0;color:var(--mut)}
pre{background:var(--oscuro);border:1px solid var(--linea-oscura);border-radius:10px;padding:18px;
  overflow-x:auto;font:12.5px/1.5 var(--mono);color:#c9d8e5;margin-bottom:22px}
ol.pasos{padding-left:0;list-style:none;margin:0;display:grid;gap:18px;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
ol.pasos li{background:var(--panel);border:1px solid var(--linea);border-radius:12px;padding:26px;
  box-shadow:var(--sombra)}
ol.pasos p{color:var(--mut);font-size:15px;margin:0}
ol.pasos .ico{margin-bottom:14px;display:block}

/* ── Pie ───────────────────────────────────────────────────────────────────
   Oscuro y con la marca en blanco: cierra la página con el mismo contraste que la traza del hero, y es el
   único sitio del sitio donde el logotipo claro tiene fondo sobre el que apoyarse. */
footer{background:var(--pie);color:#9fb4c6;padding:54px 0 30px;font-size:14.5px}
footer .cols{display:grid;grid-template-columns:1.1fr 1fr;gap:44px;align-items:start}
footer img{height:74px;width:auto;display:block;margin-bottom:16px}
footer .lema{color:#8ba3ba;max-width:30em;margin:0}
footer .enlaces{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:30px}
footer .enlaces h2{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:#7b93a9;margin:0 0 12px;font-weight:600}
footer .enlaces ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
footer .contacto{color:#8ba3ba;margin:16px 0 0}
footer a{color:#cfe0ee;font-weight:600}
footer a:hover{color:#fff}
/* La línea de cierre: identidad de la empresa a la izquierda y los avisos legales a la derecha. Es lo
   primero que mira quien va a firmar un contrato, y una web que capta datos sin ellos no se lee como una
   empresa. */
footer .legal{margin:34px 0 0;padding-top:20px;border-top:1px solid var(--linea-oscura);color:#7b93a9;
  font-size:12.5px;display:flex;flex-wrap:wrap;gap:8px 26px;align-items:baseline}
footer .legal .marca-legal{font-family:var(--mono)}
footer .legal nav{gap:22px}
footer .legal a{font-weight:500;color:#9fb4c6}
footer .legal a:hover{color:#fff}

/* ── Documento legal ──────────────────────────────────────────────────────
   Aviso legal y política de privacidad. Una sola columna estrecha, encabezados numerados y nada de
   tarjetas: se lee como un documento porque ES un documento, y quien viene a comprobarlo quiere
   encontrar su apartado, no que se lo maqueten. */
.doc{max-width:44em}
.doc h3{font-size:17px;margin:34px 0 10px;color:var(--marca-osc)}
.doc h3:first-child{margin-top:0}
.doc p,.doc li{color:var(--mut);font-size:15.5px}
.doc ul{margin:0 0 16px;padding-left:20px;display:grid;gap:7px}
.doc dl{margin:0 0 18px;display:grid;grid-template-columns:auto 1fr;gap:8px 18px;font-size:15.5px}
.doc dt{font-weight:700;color:var(--texto)}
.doc dd{margin:0;color:var(--mut)}
.doc .fecha{font-family:var(--mono);font-size:12.5px;color:var(--mut);letter-spacing:.04em}

/* Rótulo de tabla para quien navega con lector de pantalla: fuera de la vista, dentro del árbol de
   accesibilidad. Sin él, una tabla de trece filas y cinco columnas se anuncia sin decir de qué es. */
.oculto{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;border:0}

/* ── La comparativa en pantalla estrecha ──────────────────────────────────
   Cinco columnas no caben en un móvil, y una tabla que se arrastra a lo ancho no se compara: se pierde de
   vista la necesidad que se está leyendo. Aquí cada fila pasa a ser un bloque —la necesidad arriba y los
   cuatro veredictos debajo, cada uno con el nombre de su producto—, que es exactamente la misma
   información en el orden en que se lee con el pulgar. Un solo marcado: la tabla es la misma. */
@media (max-width:900px){
  .comp-wrap{border:0;border-radius:0;box-shadow:none;background:none;background-image:none;
    overflow:visible}
  table.comp{min-width:0;display:block}
  table.comp thead{display:none}
  table.comp tbody,table.comp tr,table.comp th,table.comp td{display:block}
  table.comp tr{background:var(--panel);border:1px solid var(--linea);border-radius:12px;margin-bottom:14px;
    overflow:hidden;box-shadow:var(--sombra)}
  table.comp tbody tr:hover td.si{background:var(--si-fondo)}
  table.comp tr.grupo{border:0;box-shadow:none;margin:26px 0 12px;background:none}
  table.comp tr.grupo th{background:none;padding:0;border:0}
  table.comp th[scope="row"]{width:auto;background:var(--fondo-2);padding:15px 18px;
    border-bottom:1px solid var(--linea);font-size:15.5px;line-height:1.4}
  table.comp td{display:grid;grid-template-columns:7.5em 1fr;gap:2px 14px;text-align:left;
    padding:11px 18px;border-bottom:1px solid var(--linea)}
  table.comp td:last-child{border-bottom:0}
  table.comp td:before{content:attr(data-p);grid-row:1;grid-column:1;align-self:baseline;
    font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
  table.comp td b{grid-row:1;grid-column:2;text-align:left}
  table.comp td .matiz{grid-row:2;grid-column:2;margin-top:2px}
  /* La columna propia se sigue distinguiendo, ahora con un filo en vez de con una cabecera. */
  table.comp td:first-of-type{box-shadow:inset 3px 0 0 var(--acento)}
  table.comp td:first-of-type:before{color:var(--acento);font-weight:700}
}

/* Entre 1100 y 900 la cabecera va justa: el menú aprieta antes de romperse, y el bloque de acciones
   pierde el filete para ganar el sitio que necesita. */
@media (max-width:1100px){
  header .wrap{height:86px;gap:18px}
  header img{height:58px}
  nav{gap:16px}
  nav a{font-size:14.5px}
  .acciones-cab{gap:14px;padding-left:16px}
  .subnav{top:86px}
  .caps{grid-template-columns:1fr}
}
/* Por debajo de 1050 el rótulo del área de cliente se queda en su icono: es lo primero que sobra cuando
   el menú empieza a apretar, y su destino se sigue anunciando por `aria-label`. */
@media (max-width:1050px){
  .cliente span{display:none}
  .cliente{padding:4px}
}
@media (max-width:900px){
  .hero{padding:56px 0}
  .hero .cols{grid-template-columns:1fr;gap:40px}
  header .wrap{height:auto;gap:12px 16px;padding-top:14px;padding-bottom:14px;flex-wrap:wrap}
  header img{height:52px}
  nav{gap:16px}
  header nav.secciones{margin-left:0;order:3;width:100%;padding-top:12px;
    border-top:1px solid var(--linea)}
  .acciones-cab{margin-left:auto;border-left:0;padding-left:0;gap:14px}
  header .top{padding:9px 15px;font-size:14px}
  .subnav{position:static}
  section{padding:56px 0}
  .conforma{grid-template-columns:1fr}
  .captura.alta{grid-template-columns:1fr}
  .captura.alta img{max-height:none;width:100%}
  .puntos{grid-template-columns:1fr}
  .sellos-inst{grid-template-columns:1fr;gap:18px}
  .orden pre{font-size:13.5px;padding:20px 16px}
  section.instalar{padding:52px 0 46px}
  footer .cols{grid-template-columns:1fr;gap:30px}
}

/* ── Impresión ────────────────────────────────────────────────────────────
   La comparativa y la tarifa acaban impresas o en PDF sobre la mesa de un comité: es un uso real de estas
   dos páginas y sin esto salían con la cabecera pegajosa encima del texto, la tabla cortada por el
   `overflow` y los bloques de acción ocupando una hoja entera para pedir un clic que en papel no existe.
   Se imprime el contenido, y las URL de los enlaces se escriben al lado para que se puedan teclear. */
@media print{
  :root{--sombra:none}
  body{font-size:11.5pt;background:var(--panel)}
  header,.subnav,.saltar,section.cierre,.acciones,.tras,footer .enlaces{display:none}
  main{padding:0}
  section{padding:0 0 18pt;border:0;break-inside:auto}
  section:nth-of-type(even){background:none}
  .wrap{max-width:none;padding:0}
  h1,h2{font-size:19pt;color:#000}
  h3{font-size:12pt}
  .eyebrow{color:#000}
  .tarjeta,.pilar,.cap,.ficha,.faq div,ol.pasos li{border:1px solid #999;box-shadow:none;
    break-inside:avoid}
  .tabla-wrap{overflow:visible;border:0;background:none;background-image:none;box-shadow:none}
  table{min-width:0}
  /* Una hoja A4 mide unos 794 px de ancho, así que la regla de móvil se activaba al imprimir y la
     comparativa salía como trece bloques apilados: seis páginas para lo que cabe en una, y sin poder
     comparar dos columnas de un vistazo, que es lo único que se le pide a una comparativa en papel. */
  table.comp{min-width:0;display:table;font-size:9pt}
  table.comp thead{display:table-header-group}
  table.comp tbody{display:table-row-group}
  table.comp tr{display:table-row;border:0;margin:0;box-shadow:none;background:none}
  table.comp th,table.comp td{display:table-cell;border-bottom:1px solid #bbb;padding:6pt 7pt}
  table.comp td{text-align:center}
  table.comp td:before{content:none}
  table.comp td:first-of-type{box-shadow:none}
  table.comp th[scope="row"]{width:30%;background:none;font-size:9pt}
  table.comp tr.grupo th{background:#eee;padding:5pt 7pt}
  table.comp td .matiz{font-size:7.5pt}
  thead th{background:#000!important;color:#fff}
  tr,figure,.cifra{break-inside:avoid}
  /* El desplegable de la tarifa completa se imprime ABIERTO: en papel no hay nada que desplegar. */
  details{display:block}
  details>summary{display:none}
  .captura img{max-width:100%;border:1px solid #999}
  a[href^="http"]:after,a[href^="/"]:after{content:" (" attr(href) ")";font-size:9pt;color:#444}
  footer{background:none;color:#000;padding:12pt 0 0;border-top:1px solid #999}
  footer img{display:none}
  footer a{color:#000}
  footer .legal a:after{content:""}
}
