/* Fuentes auto-alojadas (2026-09).
 *
 * Antes se pedian a fonts.googleapis.com con un <link rel=stylesheet> que
 * bloqueaba el render hasta que respondia Google, y desde DOS sitios distintos:
 * head/preload.html y prueba-teclado/single.html (que monta su propio <head>).
 * Eran dos saltos encadenados —el CSS a googleapis, los .woff2 a gstatic— a dos
 * origenes de terceros, con su DNS y su TLS cada uno, y sin ningun preload.
 * Ahora salen del propio dominio: un solo salto, sobre la conexion HTTP/2 ya
 * abierta, y se deja de mandar la IP de cada visitante a Google.
 *
 * OJO CON LOS PESOS: 12 reglas, 7 ficheros. Roboto es una FUENTE VARIABLE, y el
 * peso 400 y el 700 son literalmente el MISMO fichero — asi lo sirve tambien la
 * CSS de Google, que da la misma URL para ambos (verificado el 2026-09-03 contra
 * fonts.googleapis.com). Si alguien "ordena" esto separandolos en ficheros con
 * nombres distintos, toda pagina que use los dos pesos se descargara 43 KB DOS
 * VECES: el cuerpo va a 400 (style.single.scss:183) y h4-h6 a 700 (:192), mas
 * .a-link, el pie y la clase -roboto700Font. O sea, todas.
 * Por eso los nombres NO llevan el peso: incluirlo mentiria sobre el contenido.
 *
 * font-display: fallback es EXACTAMENTE lo que hacia "&display=fallback" en la
 * URL de Google. NO CAMBIAR A optional: se probo en julio de 2026, rompio el
 * render de los titulos y hubo que revertirlo.
 *
 * SUBSETS: latin, latin-ext y —solo en Roboto redonda— greek.
 * El espanol entero cabe en latin (a e i o u con tilde, n con virgulilla, u con
 * dieresis, ¿ y ¡ estan todos por debajo de U+00FF). El griego NO es decorativo:
 * son los simbolos de unidades de las fichas de audio (Ω en 86 ficheros, μ en 11,
 * impedancia en ohmios). Sin el caerian a la fuente del sistema. Gracias a
 * unicode-range no se descarga en ninguna pagina que no los contenga: cuesta 0
 * bytes en el 98% del sitio. En italica no hace falta: Ω nunca va en cursiva.
 * Quedan fuera a proposito cyrillic, vietnamese, math y symbols, que Google si
 * declaraba: el cirilico del sitio son menciones sueltas en una lista de
 * dominios IDN.
 *
 * Los nombres NO llevan fingerprint y se sirven con "immutable" desde
 * static/_headers: para actualizar una fuente hay que RENOMBRAR el fichero.
 *
 * Para regenerar estas URLs cuando Google rote los hashes, en una linea:
 *   curl -s -A "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36" "https://fonts.googleapis.com/css?family=Bebas+Neue|Roboto:400,400i,700,700i&display=fallback"
 */

/* ---- Bebas Neue 400 — h1/h2/h3, blockquote, FAQ y los dos logos ---- */

@font-face {
  font-family: 'Bebas Neue';
  font-style: normal;
  font-weight: 400;
  font-display: fallback;
  src: url('/font/text/bebas-neue-400-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: 'Bebas Neue';
  font-style: normal;
  font-weight: 400;
  font-display: fallback;
  src: url('/font/text/bebas-neue-400-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;
}

/* ---- Roboto redonda — 400 y 700 COMPARTEN FICHERO (variable) ---- */

@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: fallback;
  src: url('/font/text/roboto-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: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: fallback;
  src: url('/font/text/roboto-greek.woff2') format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: fallback;
  src: url('/font/text/roboto-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;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: fallback;
  src: url('/font/text/roboto-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: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: fallback;
  src: url('/font/text/roboto-greek.woff2') format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: fallback;
  src: url('/font/text/roboto-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;
}

/* ---- Roboto italica — 400i y 700i COMPARTEN FICHERO (variable) ---- */

@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  font-display: fallback;
  src: url('/font/text/roboto-italic-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: 'Roboto';
  font-style: italic;
  font-weight: 400;
  font-display: fallback;
  src: url('/font/text/roboto-italic-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;
}
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 700;
  font-display: fallback;
  src: url('/font/text/roboto-italic-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: 'Roboto';
  font-style: italic;
  font-weight: 700;
  font-display: fallback;
  src: url('/font/text/roboto-italic-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;
}
