/**
 * psf-fuentes.css — Las cuatro familias del sistema, servidas desde el propio sitio.
 *
 * [v7.0.0 · D-110] Source Serif 4 sustituye a Fraunces y Hanken Grotesk a
 * Montserrat (identidad «Clinical Archive»). IBM Plex Mono y Caveat se
 * conservan; ver la nota en psf-tokens.css §8.
 *
 * Por qué autoalojadas y no desde Google Fonts:
 *   · Una petición externa menos en cada carga, y sin bloqueo de renderizado
 *     por un dominio de terceros.
 *   · Sin envío de la IP del lector a un tercero. Para un sitio médico en
 *     español, con lectores en la Unión Europea, es la opción defendible.
 *   · El sitio sigue funcionando si Google Fonts está bloqueado o caído.
 *
 * Subconjuntos incluidos: `latin` y `latin-ext`. Cubren el español completo
 * —tildes, ñ, ¿ ¡, comillas latinas « », semirraya –, ↑ ↓ y −— y el catálogo
 * de la sección 6.3 del documento de contenido.
 *
 * NOTA REGISTRADA · caracteres fuera de subconjunto.
 * El signo ≈ (U+2248) y los discos ● ◐ ○ ◌ (U+25CB–U+25D0) no están en
 * `latin` ni en `latin-ext` de ninguna de las cuatro familias —tampoco en la
 * versión de Google Fonts—, así que los pinta la fuente del sistema. Para el
 * ≈ es inocuo. Para las cuatro marcas del eje de procedencia no lo es: son
 * una señal del sistema y no pueden depender de la fuente instalada en el
 * equipo del lector. En el paso 2 se dibujan con CSS (borde + relleno), y el
 * carácter queda solo como texto alternativo.
 *
 * Fuentes bajo licencia SIL Open Font License 1.1:
 *   Source Serif 4  — Frank Grießhammer / Adobe
 *   Hanken Grotesk  — Hanken Design Co.
 *   IBM Plex Mono   — IBM
 *   Caveat          — Impallari Type
 *
 * @since 5.70.0
 */

/* Rangos Unicode, declarados una vez para no repetirlos en cada regla.
   latin:     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
   latin-ext: 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 */


/* ===== Source Serif 4 — serif de títulos y wordmark ======================
   Variable en los ejes `opsz` y `wght`, como lo era Fraunces: el mismo
   archivo se ajusta solo a un display de portada y a un H4. Editorial y de
   alto contraste, es la voz «académica» de la maqueta. */

@font-face {
	font-family: 'Source Serif 4';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('./fuentes/source-serif-4-latin-opsz-normal.woff2') format('woff2-variations');
	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;
}
@font-face {
	font-family: 'Source Serif 4';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('./fuentes/source-serif-4-latin-ext-opsz-normal.woff2') format('woff2-variations');
	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: 'Source Serif 4';
	font-style: italic;
	font-weight: 100 900;
	font-display: swap;
	src: url('./fuentes/source-serif-4-latin-opsz-italic.woff2') format('woff2-variations');
	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;
}
@font-face {
	font-family: 'Source Serif 4';
	font-style: italic;
	font-weight: 100 900;
	font-display: swap;
	src: url('./fuentes/source-serif-4-latin-ext-opsz-italic.woff2') format('woff2-variations');
	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;
}


/* ===== Hanken Grotesk — sans del cuerpo ==================================
   Variable en `wght`. El sistema solo usa 400-600: sin pesos light, según
   el §4.3 del documento de diseño. Legibilidad alta en texto médico denso,
   que es exactamente su encargo en la maqueta. */

@font-face {
	font-family: 'Hanken Grotesk';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('./fuentes/hanken-grotesk-latin-wght-normal.woff2') format('woff2-variations');
	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;
}
@font-face {
	font-family: 'Hanken Grotesk';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('./fuentes/hanken-grotesk-latin-ext-wght-normal.woff2') format('woff2-variations');
	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: italic;
	font-weight: 100 900;
	font-display: swap;
	src: url('./fuentes/hanken-grotesk-latin-wght-italic.woff2') format('woff2-variations');
	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;
}
@font-face {
	font-family: 'Hanken Grotesk';
	font-style: italic;
	font-weight: 100 900;
	font-display: swap;
	src: url('./fuentes/hanken-grotesk-latin-ext-wght-italic.woff2') format('woff2-variations');
	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;
}


/* ===== IBM Plex Mono — cifras, dosis, unidades y rótulos de diagrama =====
   Tres pesos estáticos: 400 para datos, 500 para rótulos de diagrama, 600
   para el badge de evidencia y las etiquetas de sección. */

@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap;
	src:url('./fuentes/ibm-plex-mono-latin-400-normal.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; }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap;
	src:url('./fuentes/ibm-plex-mono-latin-ext-400-normal.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:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap;
	src:url('./fuentes/ibm-plex-mono-latin-500-normal.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; }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap;
	src:url('./fuentes/ibm-plex-mono-latin-ext-500-normal.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:'IBM Plex Mono'; font-style:normal; font-weight:600; font-display:swap;
	src:url('./fuentes/ibm-plex-mono-latin-600-normal.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; }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:600; font-display:swap;
	src:url('./fuentes/ibm-plex-mono-latin-ext-600-normal.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; }


/* ===== Caveat — manuscrita, solo decorativa ==============================
   El §4.1 es explícito: «nunca para texto que deba leerse en bloque». Su uso
   queda limitado al título de la caja de perlas clínicas y a las puertas por
   intención. */

@font-face {
	font-family: 'Caveat';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('./fuentes/caveat-latin-wght-normal.woff2') format('woff2-variations');
	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;
}
@font-face {
	font-family: 'Caveat';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('./fuentes/caveat-latin-ext-wght-normal.woff2') format('woff2-variations');
	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;
}
