/* ============================================================
   kosmo · hoja de estilo
   Valores tomados literalmente del cuaderno de marca v1.0.
   Ninguna decisión visual queda a criterio de quien implementa.
   ============================================================ */

/* --- 01 · Variables de color -------------------------------- */

:root{
  /* tema oscuro · por defecto */
  --fondo:#16130F; --texto:#EFEAE2; --sup:#1D1A15; --sup2:#262119;
  --linea:#332D25; --tenue:#A8A197; --apagado:#7A7369; --ayuda:#8E877C;
  --acento:#A87CF0; --acento-s:#C0A2F8;
  --acento-t:rgba(168,124,240,.14); --acento-b:rgba(168,124,240,.38);
  --acento-c:rgba(168,124,240,.22);
  --acento-texto:#1A0E2E;
  --verde:#56C98A; --verde-b:rgba(86,201,138,.16);
  --rojo:#F2615C;  --rojo-b:rgba(242,97,92,.16);
  --ambar:#E8A63F; --ambar-b:rgba(232,166,63,.16);
  --azul:#5A9BE8;  --azul-b:rgba(90,155,232,.16);
  --sombra:rgba(0,0,0,.55);

  /* tipografía */
  --display:'Space Grotesk',system-ui,-apple-system,sans-serif;
  --ui:'IBM Plex Sans',system-ui,-apple-system,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;

  /* radios · tres valores y ninguno más */
  --r-tarjeta:10px;
  --r-campo:6px;

  /* ritmo vertical */
  --seccion:clamp(72px,9vw,124px);
  --ancho:1140px;
}

[data-tema="claro"]{
  --fondo:#F6F4F1; --texto:#1A1815; --sup:#FFFFFF; --sup2:#EDE9E3;
  --linea:#E0DBD3; --tenue:#625C54; --apagado:#8A8278; --ayuda:#6E675E;
  --acento:#5B3BC4; --acento-s:#472C9F;
  --acento-t:rgba(91,59,196,.09); --acento-b:rgba(91,59,196,.42);
  --acento-c:rgba(91,59,196,.16);
  --acento-texto:#FFFFFF;
  --verde:#10704A; --verde-b:rgba(16,112,74,.12);
  --rojo:#B81D22;  --rojo-b:rgba(184,29,34,.10);
  --ambar:#8A5A00; --ambar-b:rgba(138,90,0,.12);
  --azul:#1A5FBF;  --azul-b:rgba(26,95,191,.10);
  --sombra:rgba(26,24,21,.14);
}

/* --- 01b · Tipografía autoalojada ---------------------------
   Hoy las fuentes se cargan desde Google Fonts con un <link> en el
   <head> de cada página. Para servirlas desde el propio dominio
   —más rápido, y sin que la IP de quien visita la web viaje a un
   tercero— sigue las instrucciones del README y descomenta esto,
   quitando después el <link> de Google de las siete páginas.

@font-face{
  font-family:'Space Grotesk';font-style:normal;font-weight:500;font-display:swap;
  src:url('/assets/fuentes/space-grotesk-500.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;
  src:url('/assets/fuentes/ibm-plex-sans-400.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;
  src:url('/assets/fuentes/ibm-plex-sans-500.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;
  src:url('/assets/fuentes/ibm-plex-sans-600.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('/assets/fuentes/ibm-plex-mono-400.woff2') format('woff2');
}
*/

/* --- 02 · Base ---------------------------------------------- */

*,*::before,*::after{box-sizing:border-box}

/* Lo marcado como hidden se oculta, gane quien gane en especificidad. */
[hidden]{display:none!important}

html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

body{
  margin:0;
  background:var(--fondo);
  color:var(--texto);
  font-family:var(--ui);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

img,svg{max-width:100%;display:block}

a{color:inherit}

::selection{background:var(--acento-c);color:var(--texto)}

/* foco de teclado · anillo de 2 px con 2 px de separación */
:focus-visible{
  outline:2px solid var(--acento);
  outline-offset:2px;
  border-radius:2px;
}

.contenedor{
  width:100%;
  max-width:var(--ancho);
  margin:0 auto;
  padding:0 24px;
}
@media (max-width:640px){ .contenedor{padding:0 18px} }

.salta{
  position:absolute;left:-9999px;top:0;
  background:var(--acento);color:var(--acento-texto);
  padding:10px 18px;border-radius:var(--r-campo);
  font-size:14px;font-weight:500;z-index:200;
}
.salta:focus{left:16px;top:16px}

/* --- 03 · Tipografía ---------------------------------------- */

h1,h2,h3{
  font-family:var(--display);
  font-weight:500;
  letter-spacing:-.02em;
  line-height:1.12;
  margin:0;
  text-wrap:balance;
}

h1{font-size:clamp(38px,5.2vw,58px)}
h2{font-size:clamp(28px,3.6vw,42px);line-height:1.14}
h3{font-size:clamp(19px,2vw,23px);line-height:1.25;letter-spacing:-.015em}
/* Encabezado de tercer nivel en tamaño pequeño. Existe como clase y no
   como <h4> para que la jerarquía del documento no salte niveles: bajo un
   <h2> lo correcto es un <h3>, aunque visualmente pese poco. */
.h-menor{font-size:17px;letter-spacing:-.01em}

/* Visible solo para lectores de pantalla. */
.oculto-visual{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

p{margin:0;text-wrap:pretty}

.antetitulo{
  font-family:var(--ui);
  font-size:11px;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--acento);
  margin:0 0 18px;
}
.antetitulo.gris{color:var(--apagado)}

.entradilla{
  font-size:clamp(17px,1.5vw,20px);
  line-height:1.6;
  color:var(--tenue);
  max-width:62ch;
}

.pie-nota{font-size:13px;color:var(--ayuda);line-height:1.55}

.num{font-variant-numeric:tabular-nums}

/* --- 04 · Botones ------------------------------------------- */

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--ui);font-size:15px;font-weight:500;
  line-height:1;text-decoration:none;cursor:pointer;
  padding:14px 24px;
  border-radius:var(--r-campo);
  border:1px solid transparent;
  transition:background-color 120ms ease,color 120ms ease,border-color 120ms ease;
  white-space:nowrap;
}
.btn-principal{background:var(--acento);color:var(--acento-texto)}
.btn-principal:hover{background:var(--acento-s)}
[data-tema="claro"] .btn-principal:hover{background:var(--acento-s);color:#fff}

.btn-contorno{border-color:var(--acento-b);color:var(--acento);background:transparent}
.btn-contorno:hover{background:var(--acento-t)}

.btn-discreto{color:var(--tenue);background:transparent;padding:14px 8px}
.btn-discreto:hover{color:var(--acento)}

.btn-pequeno{padding:10px 18px;font-size:14px}

/* --- 05 · Cabecera ------------------------------------------ */

.cabecera{
  position:sticky;top:0;z-index:100;
  /* el menú de móvil se ancla a esta caja */
  background:color-mix(in srgb,var(--fondo) 86%,transparent);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color 120ms ease;
}
.cabecera.pegada{border-bottom-color:var(--linea)}

.cabecera-fila{
  display:flex;align-items:center;gap:24px;
  height:100px;
}

.marca{display:flex;align-items:center;gap:16px;text-decoration:none;flex:none}
.marca svg{width:52px;height:52px}
.marca span{
  font-family:var(--display);font-weight:500;font-size:46px;
  letter-spacing:-.03em;line-height:1;color:var(--texto);
}

.nav{display:flex;align-items:center;gap:4px;margin-left:auto}
.nav a{
  font-size:14.5px;color:var(--tenue);text-decoration:none;
  padding:9px 13px;border-radius:var(--r-campo);
  transition:color 120ms ease,background-color 120ms ease;
}
.nav a:hover{color:var(--texto);background:var(--sup2)}

.cabecera-acciones{display:flex;align-items:center;gap:10px;flex:none}

.idioma{
  display:flex;align-items:center;
  border:1px solid var(--linea);border-radius:var(--r-campo);
  overflow:hidden;flex:none;
}
.idioma a{
  font-size:12px;font-weight:500;letter-spacing:.04em;
  padding:7px 10px;color:var(--apagado);text-decoration:none;
  transition:color 120ms ease,background-color 120ms ease;
}
.idioma a:hover{color:var(--texto)}
.idioma a[aria-current="true"]{background:var(--acento-t);color:var(--acento)}

/* El botón de acceso y el selector de idioma que viven dentro del menú
   desplegable existen solo en móvil: en escritorio ya están en la barra. */
.idioma-movil{display:none}
.nav-acceso{display:none}

.menu-boton{
  display:none;background:none;border:1px solid var(--linea);
  border-radius:var(--r-campo);padding:9px;cursor:pointer;color:var(--texto);
}

@media (max-width:940px){
  /* La cabecera crece un 20 % y el logotipo con ella. */
  /* Con el menú fuera del flujo, el botón se va al extremo derecho. */
  .cabecera-fila{height:82px;gap:14px}
  .cabecera-acciones{margin-left:auto}
  .marca{gap:12px}
  .marca svg{width:32px;height:32px}
  .marca span{font-size:28px}
  .menu-boton{display:block;order:3;padding:11px}
  .menu-boton svg{width:22px;height:22px}

  /* El desplegable cuelga del borde derecho, no de media pantalla. */
  .nav{
    position:absolute;right:18px;top:calc(100% + 10px);left:auto;
    width:min(300px,calc(100vw - 36px));
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--sup);border:1px solid var(--linea);
    border-radius:var(--r-tarjeta);
    box-shadow:0 20px 44px -20px var(--sombra);
    padding:8px 14px 14px;margin:0;
    display:none;
  }
  .nav.abierto{display:flex}
  .nav a{padding:13px 4px;font-size:16px;border-bottom:1px solid var(--linea)}
  .nav .nav-acceso{
    display:block;border-bottom:0;margin-top:12px;
    background:var(--acento);color:var(--acento-texto);
    text-align:center;border-radius:var(--r-campo);
    font-weight:500;padding:13px 18px;
  }
  .nav .nav-acceso:hover{background:var(--acento-s);color:var(--acento-texto)}

  .idioma-movil{display:flex;margin-top:14px;align-self:flex-start}
  .idioma-movil a{padding:8px 14px;font-size:13px}

  /* En móvil el idioma y el botón viven dentro del menú. */
  .cabecera-acciones .idioma,
  .cabecera-acciones .btn{display:none}
}

/* --- 06 · Secciones ----------------------------------------- */

section{padding:var(--seccion) 0}
.seccion-linea{border-top:1px solid var(--linea)}

.cabecera-seccion{max-width:60ch;margin-bottom:52px}
.cabecera-seccion p{margin-top:18px;color:var(--tenue);font-size:17px}

/* --- 07 · Primer pantallazo --------------------------------- */

.hero{
  padding-top:clamp(48px,6vw,80px);
  padding-bottom:clamp(56px,7vw,96px);
  position:relative;overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:-40% 30% 40% -20%;
  background:radial-gradient(closest-side,var(--acento-t),transparent 72%);
  pointer-events:none;
}
.hero > *{position:relative}

.hero-rejilla{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);
  gap:clamp(36px,5vw,72px);
  align-items:center;
}
@media (max-width:1020px){
  .hero-rejilla{grid-template-columns:1fr;gap:44px}
}

.hero h1 span{color:var(--acento)}
.hero .entradilla{margin-top:24px}

.hero-forma{margin-top:34px;max-width:520px}

.hero-avales{
  display:flex;flex-wrap:wrap;gap:10px 22px;
  margin-top:30px;font-size:13.5px;color:var(--ayuda);
}
.hero-avales span{display:flex;align-items:center;gap:8px}
.hero-avales svg{width:14px;height:14px;flex:none;color:var(--acento)}

/* --- 08 · Formularios --------------------------------------- */

.forma-fila{display:flex;gap:10px;flex-wrap:wrap}
.forma-fila .campo{flex:1 1 190px;min-width:0}
.forma-fila .btn{flex:none}
@media (max-width:520px){
  .forma-fila .btn{flex:1 1 100%}
}

.campo{
  width:100%;
  font-family:var(--ui);font-size:15px;
  color:var(--texto);background:var(--sup);
  border:1px solid var(--linea);border-radius:var(--r-campo);
  padding:14px 15px;
  transition:border-color 120ms ease,background-color 120ms ease;
}
/* --ayuda y no --apagado: el marcador de posición del primer formulario
   hace de etiqueta visible, así que tiene que llegar a 4,5:1. */
.campo::placeholder{color:var(--ayuda);opacity:1}
.campo:hover{border-color:var(--apagado)}
.campo:focus{border-color:var(--acento);outline:2px solid var(--acento);outline-offset:1px}

select.campo{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%237A7369' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;}

.etiqueta{
  display:block;font-size:12px;font-weight:500;
  letter-spacing:.06em;text-transform:uppercase;
  color:var(--apagado);margin-bottom:7px;
}

.forma-rejilla{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.forma-rejilla .ancho{grid-column:1/-1}
@media (max-width:600px){ .forma-rejilla{grid-template-columns:1fr} }

.consentimiento{
  display:flex;gap:11px;align-items:flex-start;
  font-size:13px;color:var(--ayuda);line-height:1.5;
}
.consentimiento input{
  appearance:none;flex:none;width:18px;height:18px;margin:2px 0 0;
  border:1px solid var(--apagado);border-radius:4px;background:var(--sup);
  cursor:pointer;position:relative;transition:background-color 120ms ease,border-color 120ms ease;
}
.consentimiento input:checked{background:var(--acento);border-color:var(--acento)}
.consentimiento input:checked::after{
  content:"";position:absolute;left:5px;top:1.5px;
  width:5px;height:10px;border:solid var(--acento-texto);
  border-width:0 2px 2px 0;transform:rotate(43deg);
}
.consentimiento a{color:var(--tenue);text-decoration:underline;text-underline-offset:2px}
.consentimiento a:hover{color:var(--acento)}

.aviso-forma{
  font-size:13px;color:var(--ayuda);margin-top:14px;line-height:1.55;
}

/* --- 09 · Maqueta de aplicación ----------------------------- */

.ventana{
  background:var(--sup);
  border:1px solid var(--linea);
  border-radius:var(--r-tarjeta);
  box-shadow:0 24px 60px -28px var(--sombra);
  overflow:hidden;
}
.ventana-barra{
  display:flex;align-items:center;gap:8px;
  padding:11px 14px;background:var(--sup2);
  border-bottom:1px solid var(--linea);
}
.ventana-punto{width:9px;height:9px;border-radius:50%;background:var(--linea)}
.ventana-ruta{
  margin-left:10px;font-family:var(--mono);font-size:11px;
  color:var(--apagado);letter-spacing:.02em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.ventana-cuerpo{padding:20px}
@media (max-width:520px){ .ventana-cuerpo{padding:14px} }

.app-titulo{
  font-family:var(--display);font-size:20px;font-weight:500;
  letter-spacing:-.015em;margin:0 0 16px;
}

.app-cifras{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}
@media (max-width:560px){ .app-cifras{grid-template-columns:1fr 1fr} .app-cifras > :last-child{display:none} }
.app-cifra{
  background:var(--sup2);border:1px solid var(--linea);
  border-radius:var(--r-campo);padding:13px 14px;
}
.app-cifra dt{
  font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--apagado);margin:0 0 7px;
}
.app-cifra dd{
  margin:0;font-family:var(--display);font-size:22px;font-weight:500;
  letter-spacing:-.02em;font-variant-numeric:tabular-nums;
}

.tabla-app{width:100%;border-collapse:collapse;font-size:13px}
.tabla-app th{
  text-align:left;font-weight:500;font-size:9.5px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--apagado);
  padding:9px 10px;background:var(--sup2);
  border-bottom:1px solid var(--linea);white-space:nowrap;
}
.tabla-app th.d,.tabla-app td.d{text-align:right}
.tabla-app td{
  padding:11px 10px;border-bottom:1px solid var(--linea);
  color:var(--tenue);vertical-align:middle;line-height:1.35;
}
.tabla-app tr:last-child td{border-bottom:0}
.tabla-app .plato{color:var(--texto);font-weight:500;font-size:13.5px}
.tabla-app .tipo{display:block;font-size:11px;color:var(--apagado);margin-top:1px}
.tabla-app .euros{font-variant-numeric:tabular-nums;color:var(--texto);font-weight:500;white-space:nowrap}

/* semáforo · el color nunca va solo, siempre lleva forma */
.semaforo{
  display:inline-flex;align-items:center;gap:9px;
  font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;
}
.semaforo.ok{color:var(--verde)}
.semaforo.mal{color:var(--rojo)}
.punto-ok,.punto-mal{width:12px;height:12px;flex:none}

.chips{display:flex;gap:4px;justify-content:flex-end;flex-wrap:nowrap}
.chip{
  border:1px solid var(--linea);border-radius:var(--r-campo);
  padding:4px 7px;text-align:center;background:var(--fondo);flex:none;
}
.chip b{
  display:block;font-size:8.5px;letter-spacing:.06em;
  color:var(--apagado);font-weight:500;line-height:1.2;
}
.chip span{
  display:block;font-size:11.5px;color:var(--tenue);
  font-variant-numeric:tabular-nums;margin-top:1px;line-height:1.2;
}
.chip.elegido{border-color:var(--acento-b);background:var(--acento-t)}
.chip.elegido b{color:var(--acento-s)}
.chip.elegido span{color:var(--acento-s);font-weight:600}

@media (max-width:760px){
  .ocultable{display:none}
}

/* cuenta de explotación */
.explotacion{border:1px solid var(--linea);border-radius:var(--r-campo);overflow:hidden}
.explotacion-cabeza{
  padding:11px 15px;background:var(--sup2);
  font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--apagado);
}
.explotacion .fila{
  display:flex;align-items:baseline;gap:14px;
  padding:11px 15px;border-top:1px solid var(--linea);font-size:14px;
}
.explotacion .fila .concepto{color:var(--tenue);flex:1;min-width:0}
.explotacion .fila .importe{
  font-weight:600;font-variant-numeric:tabular-nums;color:var(--texto);white-space:nowrap;
}
.explotacion .fila .pct{
  font-size:12px;color:var(--apagado);font-variant-numeric:tabular-nums;
  width:52px;text-align:right;flex:none;
}
.explotacion .fila.fuerte{background:var(--sup2)}
.explotacion .fila.fuerte .concepto{color:var(--texto);font-weight:600}
.explotacion .fila.total{background:var(--acento-t);border-top:1px solid var(--acento-b)}
.explotacion .fila.total .concepto{color:var(--acento-s);font-weight:600}
.explotacion .fila.total .importe{color:var(--acento-s);font-size:18px}

/* fichas de registro APPCC */
.registro{
  display:flex;align-items:center;gap:14px;
  padding:13px 15px;border:1px solid var(--linea);
  border-radius:var(--r-campo);margin-bottom:8px;background:var(--fondo);
}
.registro .camara{flex:1;min-width:0}
.registro .camara b{display:block;font-size:13.5px;color:var(--texto);font-weight:500}
.registro .camara span{font-size:11.5px;color:var(--apagado)}
.registro .rango{font-size:11.5px;color:var(--apagado);white-space:nowrap}
.registro .grados{
  font-family:var(--display);font-size:17px;font-weight:500;
  font-variant-numeric:tabular-nums;color:var(--texto);
  min-width:62px;text-align:right;
}

/* --- 10 · Tarjetas y rejillas ------------------------------- */

.rejilla{display:grid;gap:18px}
.r-2{grid-template-columns:repeat(2,1fr)}
.r-3{grid-template-columns:repeat(3,1fr)}
.r-4{grid-template-columns:repeat(4,1fr)}
.r-5{grid-template-columns:repeat(5,1fr)}
@media (max-width:1100px){ .r-5{grid-template-columns:repeat(3,1fr)} }
@media (max-width:940px){ .r-3,.r-4{grid-template-columns:repeat(2,1fr)} }
@media (max-width:760px){ .r-5{grid-template-columns:repeat(2,1fr)} }
@media (max-width:620px){ .r-2,.r-3,.r-4,.r-5{grid-template-columns:1fr} }

.tarjeta{
  background:var(--sup);
  border:1px solid var(--linea);
  border-radius:var(--r-tarjeta);
  padding:26px;
}
.tarjeta h3{margin-bottom:10px}
.tarjeta p{color:var(--tenue);font-size:15px}

.tarjeta-icono{
  width:34px;height:34px;color:var(--acento);margin-bottom:18px;
}
.tarjeta-icono svg{width:100%;height:100%}

/* franja de credibilidad */
.avales{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--linea);
  border:1px solid var(--linea);border-radius:var(--r-tarjeta);overflow:hidden;
}
@media (max-width:820px){ .avales{grid-template-columns:1fr 1fr} }
@media (max-width:480px){ .avales{grid-template-columns:1fr} }
.aval{background:var(--fondo);padding:26px 24px}
.aval dt{
  font-family:var(--display);font-size:clamp(26px,3vw,34px);font-weight:500;
  letter-spacing:-.025em;line-height:1;margin-bottom:10px;
}
.aval dt.corto{font-size:clamp(17px,1.8vw,20px);line-height:1.25}
.aval dd{margin:0;font-size:13.5px;color:var(--ayuda);line-height:1.5}

/* el problema */
.sintomas{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--linea);
  border:1px solid var(--linea);border-radius:var(--r-tarjeta);overflow:hidden}
@media (max-width:760px){ .sintomas{grid-template-columns:1fr} }
.sintoma{background:var(--fondo);padding:30px 28px}
.sintoma h3{color:var(--texto);margin-bottom:11px;font-size:19px}
.sintoma p{color:var(--tenue);font-size:15px}
.sintoma .marca-num{
  font-family:var(--mono);font-size:11px;color:var(--acento);
  letter-spacing:.08em;display:block;margin-bottom:14px;
}

/* comparativa */
.comparativa{width:100%;border-collapse:collapse;font-size:15px;margin-top:8px}
.comparativa th{
  text-align:left;font-family:var(--ui);font-weight:500;font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--apagado);
  padding:12px 14px;border-bottom:1px solid var(--linea);
}
.comparativa th.k{color:var(--acento)}
.comparativa td{
  padding:16px 14px;border-bottom:1px solid var(--linea);
  color:var(--tenue);vertical-align:top;
}
.comparativa td:first-child{color:var(--texto);font-weight:500;width:26%}
.comparativa td.k{background:var(--acento-t)}
.comparativa tr:last-child td{border-bottom:0}

/* Sí y no se distinguen por forma además de por color: en gris siguen
   leyéndose, igual que el semáforo del cuaderno. */
.comparativa .si,.comparativa .no{display:inline-flex;align-items:center;gap:8px}
.comparativa .si{color:var(--verde)}
.comparativa .no{color:var(--apagado)}
.comparativa .si::before,.comparativa .no::before{
  content:"";width:16px;height:16px;flex:none;background:currentColor;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain;
}
.comparativa .si::before{
  -webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
}
.comparativa .no::before{
  -webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E");
}

/* En móvil la tabla se convierte en una tarjeta por fila: el concepto
   arriba y los cuatro programas debajo en dos columnas, con kosmo
   ocupando el ancho entero y destacado. Se mantiene la comparación,
   que es lo que hace entendible este bloque. */
@media (max-width:760px){
  .comparativa,.comparativa tbody{display:block;width:100%}
  .comparativa thead{display:none}
  .comparativa tr{
    display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
    background:var(--linea);
    border:1px solid var(--linea);border-radius:var(--r-tarjeta);
    margin-bottom:14px;overflow:hidden;
  }
  .comparativa td{
    display:block;border-bottom:0;padding:12px 11px;
    background:var(--fondo);font-size:14px;
  }
  .comparativa td .si,.comparativa td .no{gap:6px}
  .comparativa td .si::before,.comparativa td .no::before{width:14px;height:14px}
  .comparativa td:first-child{
    grid-column:1/-1;width:auto;background:var(--sup2);
    font-family:var(--display);font-size:17px;letter-spacing:-.015em;
    color:var(--texto);padding:14px 15px;
  }
  .comparativa td:last-child{grid-column:1/-1}
  .comparativa td::before{
    content:attr(data-col);display:block;font-size:9.5px;letter-spacing:.11em;
    text-transform:uppercase;color:var(--apagado);margin-bottom:7px;
  }
  .comparativa td:first-child::before{display:none}
  .comparativa td.k{background:var(--acento-t)}
  .comparativa td.k::before{color:var(--acento)}
}

/* el recorrido del dato */
.recorrido{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:8px}
@media (max-width:900px){ .recorrido{grid-template-columns:1fr 1fr} }
@media (max-width:520px){ .recorrido{grid-template-columns:1fr} }
.paso{
  background:var(--sup);border:1px solid var(--linea);
  border-radius:var(--r-tarjeta);padding:22px 20px;position:relative;
}
.paso .n{
  font-family:var(--mono);font-size:11px;color:var(--acento);
  letter-spacing:.08em;display:block;margin-bottom:12px;
}
.paso .h-menor{margin-bottom:8px;font-size:16px}
.paso p{font-size:13.5px;color:var(--ayuda);line-height:1.5}
.paso::after{
  content:"";position:absolute;right:-10px;top:50%;
  width:6px;height:6px;border-top:1.5px solid var(--linea);
  border-right:1.5px solid var(--linea);transform:translateY(-50%) rotate(45deg);
}
.paso:last-child::after{display:none}
@media (max-width:900px){ .paso::after{display:none} }

/* módulos */
.familia{margin-bottom:44px}
.familia:last-child{margin-bottom:0}
.familia-cabeza{
  display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;
  padding-bottom:16px;margin-bottom:22px;border-bottom:1px solid var(--linea);
}
.familia-cabeza h3{margin:0}
.familia-cabeza p{color:var(--ayuda);font-size:14.5px;margin-left:auto;max-width:46ch}
@media (max-width:760px){ .familia-cabeza p{margin-left:0} }

.modulos{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media (max-width:1000px){ .modulos{grid-template-columns:repeat(3,1fr)} }
@media (max-width:560px){ .modulos{grid-template-columns:repeat(2,1fr)} }
.modulo{
  background:var(--sup);border:1px solid var(--linea);
  border-radius:var(--r-campo);padding:16px 14px;
  display:flex;flex-direction:column;gap:10px;
  transition:border-color 120ms ease,background-color 120ms ease;
}
.modulo:hover{border-color:var(--acento-b);background:var(--sup2)}
.modulo svg{width:20px;height:20px;color:var(--acento);flex:none}
.modulo b{font-size:13.5px;font-weight:500;color:var(--texto);line-height:1.3}
.modulo span{font-size:12px;color:var(--ayuda);line-height:1.45}

/* banda intermedia */
.banda{
  background:var(--sup);
  border:1px solid var(--acento-b);
  border-radius:var(--r-tarjeta);
  padding:clamp(32px,4vw,52px);
  display:grid;grid-template-columns:1.15fr 1fr;
  gap:clamp(28px,4vw,56px);align-items:center;
}
@media (max-width:860px){ .banda{grid-template-columns:1fr} }
.banda h2{font-size:clamp(25px,3vw,34px)}
.banda p{color:var(--tenue);margin-top:14px;font-size:16px}

/* perfiles */
.perfil{
  background:var(--sup);border:1px solid var(--linea);
  border-radius:var(--r-tarjeta);padding:26px;
  display:flex;flex-direction:column;height:100%;
}
.perfil .encaje{
  font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  font-weight:500;margin-bottom:14px;display:inline-flex;align-items:center;gap:8px;
}
/* Todos los perfiles encajan, así que todos llevan el mismo verde y el
   mismo punto relleno. El matiz lo pone la palabra, no el color: el
   cuaderno reserva el violeta para lo que se pulsa. */
.perfil .encaje{color:var(--verde)}
.perfil h3{font-size:19px;margin-bottom:10px}
.perfil p{font-size:14.5px;color:var(--tenue)}

.fuera{
  margin-top:20px;border:1px dashed var(--linea);
  border-radius:var(--r-tarjeta);padding:22px 26px;
  font-size:15px;color:var(--ayuda);
}
.fuera b{color:var(--tenue);font-weight:600}

/* origen */
.origen{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px);align-items:start}
@media (max-width:860px){ .origen{grid-template-columns:1fr} }
.origen p{color:var(--tenue);font-size:16.5px;margin-bottom:18px;max-width:56ch}
.origen p:last-child{margin-bottom:0}
.origen a{color:var(--acento);text-decoration:underline;text-underline-offset:3px}
.origen a:hover{color:var(--acento-s)}

.cita{
  border-left:2px solid var(--acento);
  padding:4px 0 4px 24px;
  font-family:var(--display);font-size:clamp(20px,2.4vw,27px);
  line-height:1.3;letter-spacing:-.02em;color:var(--texto);
}
.cita span{display:block;margin-top:16px;font-family:var(--ui);
  font-size:13.5px;letter-spacing:0;color:var(--ayuda);line-height:1.5}

/* estado del producto */
.estado{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:820px){ .estado{grid-template-columns:1fr} }
.estado .tarjeta{padding:24px}
.estado .h-menor{margin-bottom:9px;color:var(--texto)}
.estado p{font-size:14.5px}

/* preguntas */
.preguntas{border-top:1px solid var(--linea)}
.pregunta{border-bottom:1px solid var(--linea)}
.pregunta summary{
  display:flex;align-items:flex-start;gap:18px;
  padding:22px 4px;cursor:pointer;list-style:none;
  font-family:var(--display);font-size:clamp(17px,1.8vw,19px);
  font-weight:500;letter-spacing:-.015em;color:var(--texto);
  transition:color 120ms ease;
}
.pregunta summary::-webkit-details-marker{display:none}
.pregunta summary:hover{color:var(--acento)}
.pregunta summary::after{
  content:"";flex:none;margin-left:auto;margin-top:7px;
  width:9px;height:9px;
  border-right:1.75px solid var(--apagado);border-bottom:1.75px solid var(--apagado);
  transform:rotate(45deg);transition:transform 120ms ease;
}
.pregunta[open] summary::after{transform:rotate(-135deg);border-color:var(--acento)}
.pregunta .respuesta{padding:0 44px 24px 4px;color:var(--tenue);font-size:15.5px}
.pregunta .respuesta p+p{margin-top:12px}

/* cierre */
.cierre{
  background:var(--sup);border:1px solid var(--linea);
  border-radius:var(--r-tarjeta);
  padding:clamp(30px,4vw,52px);
  display:grid;grid-template-columns:1fr 1.05fr;
  gap:clamp(30px,4vw,60px);
}
@media (max-width:880px){ .cierre{grid-template-columns:1fr} }
.cierre h2{font-size:clamp(26px,3.2vw,38px)}
.cierre .entradilla{margin-top:16px;font-size:16.5px}

.lista-marca{margin:26px 0 0;padding:0;list-style:none;display:grid;gap:12px}
.lista-marca li{
  display:flex;gap:11px;align-items:flex-start;
  font-size:14.5px;color:var(--tenue);line-height:1.5;
}
.lista-marca svg{width:15px;height:15px;flex:none;margin-top:4px;color:var(--acento)}

/* --- 11 · Pie ----------------------------------------------- */

.pie{border-top:1px solid var(--linea);padding:52px 0 40px}
/* El logotipo del pie va al mismo tamaño que el de la cabecera. */
.pie .marca svg{width:52px;height:52px}
.pie .marca span{font-size:46px}
@media (max-width:940px){
  .pie .marca svg{width:64px;height:64px}
  .pie .marca span{font-size:56px}
}
.pie-rejilla{
  display:grid;grid-template-columns:1.4fr 1fr 1fr;
  gap:32px;align-items:start;
}
@media (max-width:760px){ .pie-rejilla{grid-template-columns:1fr;gap:28px} }
.pie-firma{
  font-size:13.5px;color:var(--ayuda);margin-top:14px;max-width:38ch;line-height:1.55;
}
/* --ayuda y no --apagado: a 10,5 px en versales el gris terciario se
   quedaba en 3,95:1 y no llegaba al mínimo de contraste. */
.pie h3{
  font-family:var(--ui);font-size:10.5px;font-weight:500;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ayuda);
  margin:0 0 14px;
}
.pie ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.pie ul a{
  font-size:14px;color:var(--tenue);text-decoration:none;
  transition:color 120ms ease;
}
.pie ul a:hover{color:var(--acento)}
.pie-abajo{
  margin-top:44px;padding-top:22px;border-top:1px solid var(--linea);
  display:flex;flex-wrap:wrap;gap:12px 26px;align-items:center;
  font-size:13px;color:var(--ayuda);
}
.pie-abajo a{color:var(--tenue);text-decoration:underline;text-underline-offset:3px}
.pie-abajo a:hover{color:var(--acento)}
/* En línea y no en flex: con flex, el hueco entre elementos metía un
   espacio antes de la coma que sigue al enlace. */
.pie-abajo .desarrollo{margin-left:auto}
/* Logotipo de RIMA Consulting: presente pero sin robarle sitio a kosmo. */
.logo-rima{
  height:26px;width:auto;opacity:.85;
  display:inline-block;vertical-align:middle;margin-right:12px;
  transition:opacity 120ms ease;
}
@media (max-width:640px){ .logo-rima{height:26px;margin-right:10px} }
.pie-abajo .desarrollo:hover .logo-rima{opacity:1}
[data-tema="claro"] .logo-rima{filter:invert(1)}
@media (max-width:640px){ .pie-abajo .desarrollo{margin-left:0} }

/* --- 12 · Páginas de texto ---------------------------------- */

.texto-legal{max-width:76ch;padding:clamp(48px,6vw,84px) 0}
.texto-legal h1{font-size:clamp(30px,4vw,44px);margin-bottom:14px}
.texto-legal h2{font-size:clamp(20px,2.2vw,25px);margin:44px 0 14px}
.texto-legal h3{font-size:17px;margin:28px 0 10px}
.texto-legal p{color:var(--tenue);margin-bottom:16px;font-size:16px}
.texto-legal ul{color:var(--tenue);padding-left:20px;margin-bottom:16px}
.texto-legal li{margin-bottom:8px}
.texto-legal a{color:var(--acento);text-decoration:underline;text-underline-offset:3px}
.texto-legal table{width:100%;border-collapse:collapse;margin:18px 0;font-size:14px}
.texto-legal th{
  text-align:left;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--apagado);font-weight:500;padding:10px;background:var(--sup2);
  border-bottom:1px solid var(--linea);
}
.texto-legal td{padding:12px 10px;border-bottom:1px solid var(--linea);color:var(--tenue);vertical-align:top}
.texto-legal .actualizado{font-size:13px;color:var(--apagado);margin-top:36px}

/* Aviso de traducción de cortesía. Mismo filete de acento a la izquierda
   que usan los avisos dentro de la propia aplicación —el de «¿por dónde
   empiezo?» en Escandallos o el de APPCC—, para que web y producto se
   reconozcan como la misma cosa. */
.nota-idioma{
  background:var(--acento-t);
  border-left:2px solid var(--acento);
  border-radius:0 var(--r-campo) var(--r-campo) 0;
  padding:16px 20px;margin-bottom:32px;
  font-size:14px;color:var(--tenue);line-height:1.55;
}
.nota-idioma a{color:var(--acento)}

/* gracias */
.gracias{
  min-height:70vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;
  padding:80px 0;
}
.gracias .marca-grande{width:56px;height:56px;margin-bottom:28px;color:var(--acento)}
.gracias h1{font-size:clamp(30px,4vw,46px);margin-bottom:18px}
.gracias p{color:var(--tenue);font-size:17px;max-width:52ch;margin-bottom:12px}
.gracias .btn{margin-top:26px}
.pasos-gracias{
  list-style:none;counter-reset:paso;margin:34px 0 0;padding:0;
  display:grid;gap:14px;text-align:left;max-width:560px;
}
.pasos-gracias li{
  counter-increment:paso;position:relative;padding-left:44px;
  font-size:14.5px;color:var(--tenue);line-height:1.55;
}
.pasos-gracias li::before{
  content:counter(paso);position:absolute;left:0;top:-1px;
  width:28px;height:28px;border-radius:50%;
  border:1px solid var(--acento-b);background:var(--acento-t);color:var(--acento);
  font-family:var(--mono);font-size:12px;
  display:flex;align-items:center;justify-content:center;
}

/* --- 13 · Aparición suave ----------------------------------- */

.aparece{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.aparece.visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .aparece{opacity:1;transform:none}
}
