/* ============================================================================
   FUENTES AUTOALOJADAS DE LA MARCA
   ----------------------------------------------------------------------------
   ¿Por qué autoalojadas y no Google Fonts?
   - RGPD: al cargar desde fonts.googleapis.com/fonts.gstatic.com la IP de cada
     visitante viaja a Google sin consentimiento previo (hallazgo legal
     confirmado; criterio del caso LG München «Google Fonts», 2022). Sirviendo
     los ficheros desde nuestro propio dominio no sale ningún dato a terceros.
   - Rendimiento: se eliminan las 2 peticiones render-blocking a un dominio
     externo (DNS + TLS extra); el woff2 subseteado viaja junto al resto de la
     web y cachea con las mismas cabeceras.

   ¿Cómo se regeneran? (fonttools + brotli en un venv de Python)
     pyftsubset <ORIGEN>.ttf --output-file=<destino>.woff2 --flavor=woff2 \
       --unicodes="U+0020-007E,U+00A0-00FF,U+0100-017F,U+02BB-02BC,U+2013-2026,U+00B7,U+20AC,U+2190-2193,U+221E,U+2500,U+2735-2739" \
       --layout-features+=kern,liga
   Los TTF variables de origen viven en Landing/tarjeta/fuentes/. Tras regenerar,
   comprobar con fontTools.ttLib que la tabla fvar conserva sus ejes y que el
   cmap sigue teniendo á é í ó ú ñ ç à è ò · €.

   ⚠️ PASO OBLIGATORIO TRAS EL SUBSET (2026-08-24): a las dos Fraunces hay que
   FIJAR los ejes SOFT y WONK en su valor por defecto. La web no los usa en
   ningún sitio (no hay font-variation-settings ni font-optical-sizing en todo
   el CSS), y arrastrar sus datos de interpolación costaba 137,8 KB — el 45 %
   del peso de las dos. Se comprobó que NO cambia nada visual comparando 624
   contornos en 8 combinaciones opsz×wght: idénticos.

     from fontTools.ttLib import TTFont
     from fontTools.varLib import instancer
     t = TTFont("fraunces-var.woff2")
     d = {a.axisTag: a.defaultValue for a in t["fvar"].axes}
     t2 = instancer.instantiateVariableFont(t, {"SOFT": d["SOFT"], "WONK": d["WONK"]})
     t2.flavor = "woff2"; t2.save("fraunces-var.woff2")

   opsz y wght se dejan VARIABLES: opsz lo aplica el navegador solo (el valor por
   defecto de font-optical-sizing es «auto»), y wght lo piden los pesos 500-800.
   Si algún día se usa SOFT o WONK, hay que deshacer esto o la propiedad no hará
   nada — y no fallará: simplemente se ignorará en silencio.

   Ojo: Fraunces NO trae ✷ → ↓ ∞ (caen al fallback del sistema); Plus Jakarta
   Sans trae → ↓ ∞ pero tampoco ✷.
   ========================================================================== */

/* Fraunces variable, redonda — ejes: opsz 9-144 · wght 100-900 · SOFT · WONK */
@font-face {
  font-family: "Fraunces";
  src: url("fraunces-var.woff2?v=2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap; /* el texto se pinta con el fallback y no bloquea el render */
}

/* Fraunces variable, itálica — mismos ejes que la redonda */
@font-face {
  font-family: "Fraunces";
  src: url("fraunces-italica-var.woff2?v=2") format("woff2");
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
}

/* Plus Jakarta Sans variable — eje wght 200-800 (su rango real; no llega a 900) */
@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("plus-jakarta-var.woff2?v=2") format("woff2");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}
