/* ==========================================================================
   Self-hostované fonty — bookfest.cz
   Archivo: statické/instancované řezy, Literata: statické/instancované řezy
   Zdroj: Google Fonts GitHub repo (github.com/google/fonts), licence OFL.
   Fonty jsou staženy lokálně kvůli GDPR (žádné volání na fonts.googleapis.com)
   a kvůli LCP (self-host + font-display: swap + fallback bez CLS).

   Podmnožina: latin + latin-ext (čeština), rozsahy:
   U+0000-00FF, U+0100-017F, U+0180-024F, U+2000-206F, U+20A0-20BF,
   U+2122, U+2190-2193, U+2212

   --- Archivo: rozhodnutí designéra (2026-09) ---
   Šířková osa (wdth) se v designu nikde nemění — nadpisy/hero/iniciála i
   drobná sazba používají jen konkrétní hodnoty (62, resp. 100), takže
   místo dvou plně variabilních souborů (wght 100-900 × wdth 62-125,
   ~270 kB) jsou nasazené instance zapečené z originálního variabilního
   Archiva (github.com/google/fonts/ofl/archivo) přes
   fontTools.varLib.instancer. Jde o DVĚ samostatné rodiny (liší se
   fyzickou šířkou glyfů, sdílet jednu font-family by pro font-weight 700
   znamenalo, že si Archivo Text tiše "půjčí" kondenzovaný Display řez):

     - "Archivo Display" — wdth=62, wght=700 → 1 statický řez normal +
       1 statický řez italic. Používá se pro nadpisy, hero, <em>, iniciálu.
     - "Archivo Text" — wdth=100 pinnuto, osa wght ponechána 400-700
       (drobná sazba včetně verzálkové sazby na 700). Jen normal.

   --- Literata: rozhodnutí designéra (2026-09) ---
   opsz se v designu nepoužívá (výchozí hodnota) — pinnuto na opsz=14
   (odpovídá tělu textu 17px; nejbližší optický řez nad výchozím opsz=12).
   Reálně používané váhy: 400, 600 a 400 kurziva — 700 (tučná) se u
   Literaty nikde nepoužívá, tučné prvky nese Archivo Display.

   Porovnány dvě varianty instancování (fontTools.varLib.instancer):
     A) tři plně statické řezy (400, 600, 400-italic) samostatně
        podsekvenčně → 40 804 + 43 628 + 41 276 B = 125 708 B po subsetu
     B) jeden řez s PONECHANOU osou wght 400-600 (jen opsz pinnuto) +
        samostatný statický italic 400 → 70 484 + 41 276 B = 111 760 B
   Varianta B je o ~13,9 kB menší (stejně jako u Archivo Text) — variabilní
   komprese dvou blízkých instancí do jednoho woff2 s ponechanou osou
   vyjde s Brotli lépe než dva nezávislé statické soubory. Nasazena B.
   ========================================================================== */

/* --- Archivo Display 700 (wdth 62 fixní) — nadpisy, hero, iniciála --- */
@font-face {
  font-family: "Archivo Display";
  src: url("../fonts/archivo-display-700.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0100-017F, U+0180-024F, U+2000-206F,
    U+20A0-20BF, U+2122, U+2190-2193, U+2212;
}

@font-face {
  font-family: "Archivo Display";
  src: url("../fonts/archivo-display-700-italic.woff2") format("woff2");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0100-017F, U+0180-024F, U+2000-206F,
    U+20A0-20BF, U+2122, U+2190-2193, U+2212;
}

/* --- Archivo Text (wdth 100 fixní, wght 400-700 variabilní) — drobná sazba --- */
@font-face {
  font-family: "Archivo Text";
  src: url("../fonts/archivo-text-var.woff2") format("woff2-variations");
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0100-017F, U+0180-024F, U+2000-206F,
    U+20A0-20BF, U+2122, U+2190-2193, U+2212;
}

/* --- Literata (opsz=14 pinnuto, wght 400-600 ponecháno) — běžná i tučná sazba --- */
@font-face {
  font-family: "Literata";
  src: url("../fonts/literata.woff2") format("woff2-variations");
  font-weight: 400 600;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0100-017F, U+0180-024F, U+2000-206F,
    U+20A0-20BF, U+2122, U+2190-2193, U+2212;
}

/* --- Literata italic (opsz=14, wght=400 statický — jiná váha kurzívy se nepoužívá) --- */
@font-face {
  font-family: "Literata";
  src: url("../fonts/literata-italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0100-017F, U+0180-024F, U+2000-206F,
    U+20A0-20BF, U+2122, U+2190-2193, U+2212;
}

/* ==========================================================================
   Fallback rodiny s dopočítanými metrikami (proti CLS / layout shiftu)
   -------------------------------------------------------------------------
   Metoda: velikost a metriky lokálního fallback fontu se přeškálují tak,
   aby se jeho průměrná šířka znaku (OS/2.xAvgCharWidth / unitsPerEm) a
   ascent/descent shodovaly s webfontem. Použité vzorce:

     size-adjust        = (webfont.xAvgCharWidth / webfont.unitsPerEm)
                         / (fallback.xAvgCharWidth / fallback.unitsPerEm)
     ascent-override     = (webfont.ascent  / webfont.unitsPerEm) / size-adjust
     descent-override    = (webfont.descent / webfont.unitsPerEm) / size-adjust
     line-gap-override   = (webfont.lineGap / webfont.unitsPerEm) / size-adjust

   Jako zástupné metrické fonty (nejsou reálně nainstalovány, slouží jen
   jako zdroj čísel) byly použity metricky kompatibilní OFL fonty z
   Google Fonts: Arimo (metrický klon Arial) pro Archivo a Gelasio
   (metrický klon Georgia) pro Literata.

   Archivo má DVĚ fallback rodiny, protože Display (wdth=62, condensed)
   a Text (wdth=100, normal) mají velmi odlišnou průměrnou šířku znaku
   a jeden společný fallback by u jedné z nich způsobil CLS:

     Archivo Display (wdth=62, wght=700, roman i italic shodně):
                unitsPerEm=1000, xAvgCharWidth=414,
                ascent=878, descent=-210, lineGap=0
     Archivo Text (wdth=100, wght 400-700):
                unitsPerEm=1000, xAvgCharWidth=575,
                ascent=878, descent=-210, lineGap=0
     Arimo:     unitsPerEm=2048, xAvgCharWidth=1191,
                ascent=1854, descent=-434, lineGap=67

     Literata (opsz=14, wght=400/roman, italic 400):
                unitsPerEm=1000, xAvgCharWidth=639 (italic 602),
                ascent=1177, descent=-308, lineGap=0
                — přepočteno ze statických řezů 2026-09, čísla vyšla
                shodná s předchozí výpočtem z variabilního zdroje
                (opsz=14 na tyto metriky u Literaty nemá vliv), proto
                se hodnoty fallbacku níže NEMĚNÍ.
     Gelasio:   unitsPerEm=2048, xAvgCharWidth=1204,
                ascent=1900, descent=-700, lineGap=0

   local() cílí na skutečně nainstalované systémové fonty (Arial / Georgia
   resp. system-ui), číselné hodnoty size-adjust/ascent/descent-override
   jsou ale odvozené z Arimo/Gelasio, protože jde o veřejně dostupné
   metrické ekvivalenty s přesně známými čísly.
   ========================================================================== */

/* --- fallback pro Archivo Display: system-ui / Arial --- */
@font-face {
  font-family: "Archivo Display fallback";
  src: local("Arial"), local("Helvetica Neue"), local("system-ui");
  font-style: normal;
  size-adjust: 71.19%;
  ascent-override: 123.34%;
  descent-override: 29.5%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Archivo Display fallback";
  src: local("Arial Italic"), local("Helvetica Neue Italic");
  font-style: italic;
  size-adjust: 71.19%;
  ascent-override: 123.34%;
  descent-override: 29.5%;
  line-gap-override: 0%;
}

/* --- fallback pro Archivo Text: system-ui / Arial --- */
@font-face {
  font-family: "Archivo Text fallback";
  src: local("Arial"), local("Helvetica Neue"), local("system-ui");
  font-style: normal;
  size-adjust: 98.87%;
  ascent-override: 88.81%;
  descent-override: 21.24%;
  line-gap-override: 0%;
}

/* --- fallback pro Literata: Georgia --- */
@font-face {
  font-family: "Literata fallback";
  src: local("Georgia");
  font-style: normal;
  size-adjust: 108.69%;
  ascent-override: 108.29%;
  descent-override: 28.34%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Literata fallback";
  src: local("Georgia Italic");
  font-style: italic;
  size-adjust: 102.4%;
  ascent-override: 114.94%;
  descent-override: 30.08%;
  line-gap-override: 0%;
}

/* ==========================================================================
   Doporučené použití — fallback řetězec
   ========================================================================== */
/*
.font-archivo-display {
  font-family: "Archivo Display", "Archivo Display fallback", system-ui, Arial, sans-serif;
  font-weight: 700;
}

.font-archivo-text {
  font-family: "Archivo Text", "Archivo Text fallback", system-ui, Arial, sans-serif;
  font-weight: 400;
}

.font-literata {
  font-family: "Literata", "Literata fallback", Georgia, serif;
}
*/
