/*!
 * CreaRack Pro — fuentes self-hosted (Oswald + Plus Jakarta Sans)
 *
 * Migrado de Google Fonts (gstatic) a self-host. Motivos:
 *  1. CLS: las web fonts externas con `display=swap` reflowaban el layout cuando
 *     gstatic respondía tarde (CLS 0.909 → score Lighthouse 94→67, 26-05-2026).
 *  2. Privacidad GDPR: servir desde el mismo origen deja de enviar la IP de cada
 *     usuario a Google.
 *
 * `font-display: swap` (04-07-2026): la fuente de marca SIEMPRE se acaba mostrando.
 * Antes con `optional` el navegador se quedaba en la de respaldo si la de marca no
 * estaba lista en ~100 ms → "baile de letras" al recargar, sobre todo con caché
 * limpia o Ctrl+Shift+R (que ignora la caché y fuerza descarga de red). El reflow
 * que motivó `optional` en mayo se elimina de otra forma: con fuentes de respaldo
 * AJUSTADAS por métricas (bloque de abajo), la de respaldo ocupa el MISMO espacio
 * que la de marca → el swap no mueve el layout (CLS ≈ 0). Además, self-host +
 * immutable (v1.45.3) sirve los woff2 en ms, así que el swap es casi imperceptible.
 * Los subsets latin se precargan en base.html (con swap ya no da el warning de
 * "preloaded but not used" que sí daba con optional).
 *
 * Subsets latin + latin-ext (cubre español, inglés y europeo occidental).
 * Pesos: Oswald 200–700, Plus Jakarta Sans 200–800 (variable, eje weight).
 */

/* ===== Oswald (headings / --font-heading) ===== */
@font-face {
    font-family: 'Oswald';
    font-style: normal;
    font-weight: 200 700;
    font-display: swap;
    src: url("../fonts/oswald-latin.22c3b00d2e65.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: 'Oswald';
    font-style: normal;
    font-weight: 200 700;
    font-display: swap;
    src: url("../fonts/oswald-latin-ext.192877db9c16.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;
}

/* ===== Plus Jakarta Sans (body / --font-body) ===== */
@font-face {
    font-family: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url("../fonts/plus-jakarta-sans-latin.7660bd9909fb.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: 'Plus Jakarta Sans';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url("../fonts/plus-jakarta-sans-latin-ext.341687eeeb6a.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;
}

/* ===== Fuentes de respaldo AJUSTADAS (anti-CLS con font-display: swap) =====
 * Dimensionan Arial local para ocupar el MISMO espacio que la fuente de marca:
 * size-adjust iguala el ancho medio; ascent/descent/line-gap-override igualan la
 * altura de línea. Así el swap respaldo→marca no reflowa el layout. Valores
 * calculados desde las métricas reales de los woff2 (scripts/scratchpad, método
 * de fontaine/next-font). Se usan en la font stack de variables.css:
 *   --font-heading: 'Oswald', 'Oswald Fallback', sans-serif;
 *   --font-body:    'Plus Jakarta Sans', 'Plus Jakarta Sans Fallback', sans-serif; */
@font-face {
    font-family: 'Oswald Fallback';
    src: local('Arial');
    size-adjust: 105.35%;
    ascent-override: 113.25%;
    descent-override: 27.43%;
    line-gap-override: 0%;
}
@font-face {
    font-family: 'Plus Jakarta Sans Fallback';
    src: local('Arial');
    size-adjust: 132.53%;
    ascent-override: 78.32%;
    descent-override: 16.75%;
    line-gap-override: 0%;
}
