/* OBRASAN · tokens de marca (web)
   Fuente única de verdad para styles.css y legal.css.
   Decidido por JP el 23/10/2026: acento cobalto; tipografía opción 1
   (Aptos en Office, Hanken Grotesk en la web, una sola familia).
   Los nombres de los tokens no cambian: no hace falta tabla de equivalencias. */

/* Hanken Grotesk (licencia SIL Open Font License), alojada en la propia web.
   Archivo variable woff2, subconjuntos latino y latino extendido.
   Archivos de @fontsource-variable/hanken-grotesk 5.3.0 (npm); unicode-range copiado de su index.css. Rutas relativas a este archivo (raíz de la web). */
@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("fonts/hanken-grotesk-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("fonts/hanken-grotesk-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root {
  /* Color · modo claro */
  --paper: #ffffff;
  --ink: #111316;
  --muted: #5b616b;
  --line: #d9dce1;
  --tint: #f2f3f5;
  --accent: #1d4ed8;      /* cobalto: 6,7:1 sobre --paper */
  --accent-ink: #ffffff;  /* texto sobre fondo de acento */
  --warn: #8a5a00;        /* marcas de "pendiente" en páginas legales */
  --warn-bg: #fff4dc;

  /* Color sobre la banda oscura de contacto (derivados, no tocar a mano) */
  --inverse-text-soft: color-mix(in srgb, var(--paper) 70%, var(--ink));
  --inverse-text-muted: color-mix(in srgb, var(--paper) 60%, var(--ink));
  --inverse-border: color-mix(in srgb, var(--paper) 40%, var(--ink));
  --inverse-line: color-mix(in srgb, var(--paper) 25%, var(--ink));

  /* Tipografía: una sola familia. --display y --mono se mantienen como
     nombres para no tocar los componentes, pero apuntan a la misma letra. */
  --font-brand: "Hanken Grotesk", Aptos, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --display: var(--font-brand);
  --body: var(--font-brand);
  --mono: var(--font-brand);

  /* Pesos permitidos: 400 texto, 500 etiquetas y botones, 600 titulares */
  --w-regular: 400;
  --w-medium: 500;
  --w-bold: 600;

  /* Titulares: algo de espacio negativo, porque Hanken es más ancha que Barlow Condensed */
  --display-tracking: -0.015em;
  /* Etiquetas en mayúsculas (antes en IBM Plex Mono) */
  --label-tracking: 0.12em;

  --wrap: 1120px;
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --paper: #0f1114; --ink: #eceef1; --muted: #9aa1ab; --line: #2a2e35; --tint: #171a1f;
    --accent: #7aa2ff; --accent-ink: #0f1114;
    --warn: #f0c46a; --warn-bg: #2a2210;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --paper: #0f1114; --ink: #eceef1; --muted: #9aa1ab; --line: #2a2e35; --tint: #171a1f;
  --accent: #7aa2ff; --accent-ink: #0f1114;
  --warn: #f0c46a; --warn-bg: #2a2210;
  color-scheme: dark;
}

/* Escala general en pantallas grandes (decisión de JP, 29/10/2026): equivale al zoom del navegador.
   125 % desde 1360 px de ancho y 110 % entre 1100 y 1359 px; en tableta y móvil, sin cambios.
   Los navegadores que no admiten "zoom" muestran la web al 100 %. */
@media (min-width: 1100px) { html { zoom: 1.1; } }
@media (min-width: 1360px) { html { zoom: 1.25; } }
