/* ==========================================================================
   Schriftdefinitionen des Themes
   --------------------------------------------------------------------------
   Ersetzt /assets/fonts/css/noto-font.css. Inhaltlich identisch bis auf einen
   Punkt: font-display steht auf "optional" statt "swap".

   swap bedeutet: zeige sofort die Systemschrift und tausche sie aus, sobald
   die Webschrift da ist. Genau dieser Austausch ist das Flackern - und weil
   'Noto Sans Arabic' nur bis Schnitt 700 geht, das Theme aber 800 bis 1000
   anfordert, faellt er besonders auf: die Systemschrift hat einen echten
   900er-Schnitt, die Webschrift nicht. Text wirkt zuerst zu fett und wird
   danach duenner.

   optional bedeutet: der Browser wartet kurz (rund 100 ms). Ist die Schrift
   dann da, rendert er von Anfang an damit. Ist sie es nicht, bleibt es fuer
   diesen Seitenaufruf bei der Systemschrift - es wird nicht nachtraeglich
   getauscht. In beiden Faellen flackert nichts.

   Das funktioniert nur zusammen mit den preload-Links in header.tpl: die
   sorgen dafuer, dass die Dateien das 100-ms-Fenster ueberhaupt schaffen.
   Wer die Preloads entfernt, sollte hier zurueck auf swap gehen, sonst sieht
   ein Teil der Besucher dauerhaft die Systemschrift.

   Achtung bei der Ladereihenfolge: diese Datei muss NACH allen anderen
   @font-face-Regeln fuer dieselbe Familie eingebunden werden, sonst gewinnt
   die zuerst geladene Definition nicht - bei gleichen Deskriptoren zaehlt die
   zuletzt deklarierte Regel.
   ========================================================================== */

/* ==========================================================================
   Vertikalmetriken von Noto Sans Arabic auf lateinischen Text getrimmt
   --------------------------------------------------------------------------
   Die Schrift deklariert ascent 1.375em + descent 0.75em, zusammen 2.125em.
   Der Platz ist fuer arabische Tashkeel ueber und unter der Zeile gedacht.
   Lateinische Schrift nutzt davon nur rund 1.025em Tinte (gemessen an der
   Hero-H1: ascent 0.775em, descent 0.25em).

   Sichtbar wurde das beim Markieren: Chrome leitet die Hoehe des
   Markierungsrechtecks aus diesen Metriken ab, NICHT aus line-height. Bei
   40px Schrift war der Balken konstant 84.5px hoch - bei line-height 1.25,
   1.35, 1.6 und 1.9 identisch. Deshalb half auch das fruehere Herumdrehen an
   der Zeilenhoehe der Hero-H1 nicht.

   Mit dem Override schrumpft der Balken auf 52px. Das Layout bleibt stehen,
   weil die Zeilenhoehen im Theme durchgehend explizit gesetzt sind: die
   Zeilenbox der H1 misst vorher wie nachher 54px. Nur Elemente mit
   line-height: normal werden kompakter - im Theme ist das genau eine Stelle.

   ACHTUNG: Diese Werte sind auf Latein zugeschnitten. Arabischer Text mit
   Tashkeel braucht ascent 1.113em und descent 0.481em und wuerde hier oben
   und unten abgeschnitten. Wird die Seite jemals arabisch ausgeliefert,
   muessen die Werte auf mindestens 115% / 50% hoch (Balken dann 66px) oder
   ganz raus.
   ========================================================================== */

@font-face {
    font-family: "Noto Sans Arabic";
    src: url("/assets/fonts/noto/NotoSansArabic-Regular.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: optional;
    ascent-override: 100%;
    descent-override: 30%;
    line-gap-override: 0%;
}

@font-face {
    font-family: "Noto Sans Arabic";
    src: url("/assets/fonts/noto/NotoSansArabic-Medium.woff2") format("woff2");
    font-weight: 500;
    font-style: normal;
    font-display: optional;
    ascent-override: 100%;
    descent-override: 30%;
    line-gap-override: 0%;
}

@font-face {
    font-family: "Noto Sans Arabic";
    src: url("/assets/fonts/noto/NotoSansArabic-SemiBold.woff2") format("woff2");
    font-weight: 600;
    font-style: normal;
    font-display: optional;
    ascent-override: 100%;
    descent-override: 30%;
    line-gap-override: 0%;
}

@font-face {
    font-family: "Noto Sans Arabic";
    src: url("/assets/fonts/noto/NotoSansArabic-Bold.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: optional;
    ascent-override: 100%;
    descent-override: 30%;
    line-gap-override: 0%;
}

/* ==========================================================================
   Montserrat - nur die Login-Seite (.diprella-login-page in custom.css)
   --------------------------------------------------------------------------
   Vorher kam Montserrat von fonts.googleapis.com, ebenfalls mit
   display=optional - aber ohne preload. Das ist genau die Kombination, vor
   der der Hinweis oben warnt, und sie war reproduzierbar kaputt:

   Bei leerem Cache (Strg+F5) braucht der Browser drei serielle Roundtrips zu
   zwei fremden Domains - DNS/TLS zu fonts.googleapis.com, das CSS holen, und
   erst darin steht die woff2-URL auf fonts.gstatic.com. Das 100-ms-Fenster
   von "optional" ist da laengst vorbei, also blieb es fuer den ganzen
   Seitenaufruf bei Arial. Der Download lief trotzdem weiter und landete im
   Cache - deshalb sah erst der ZWEITE Aufruf richtig aus. Weil sich nur die
   Metrik aendert und nicht der deklarierte font-family-Wert, war im
   Style-Panel nichts zu sehen; die tatsaechlich benutzte Schrift steht in
   DevTools unter Computed ganz unten bei "Rendered Fonts".

   Lokal ausgeliefert und in header.tpl vorgeladen faellt die fremde Domain
   weg, die Datei kommt aus derselben Verbindung wie das HTML und schafft das
   Fenster. Damit stimmt der erste Aufruf, ohne dass "optional" aufgegeben
   werden muss.

   Eine Datei pro Subset genuegt: Google liefert Montserrat inzwischen als
   Variable Font (fvar/gvar/STAT sind enthalten), die woff2-URL war fuer 400
   und 700 identisch. Deshalb "font-weight: 100 900" - der Browser
   interpoliert jeden Schnitt aus derselben Datei.

   Das ersetzt nebenbei einen stillen Fehler: die alte Google-URL forderte
   400;500;600 an, das Login-Markup ist aber voller <b>-Tags und .title/.button
   setzen font-weight: 700. Einen echten 700er gab es also nie, der Browser
   hat ihn aus dem 600er kuenstlich fett gerechnet.

   Die Pfade sind relativ zu dieser Datei (css/ -> ../fonts/), damit ein
   Umbenennen des Templates sie nicht bricht.

   unicode-range trennt latin und latin-ext, sonst wuerde immer nur die
   zuletzt deklarierte Datei benutzt. Vorgeladen wird in header.tpl nur latin
   - deutsche Umlaute und ss liegen darin. Wer Sprachen mit latin-ext
   ergaenzt (polnisch, tschechisch, tuerkisch ausser dem punktlosen i), sollte den zweiten
   Preload dort nachtragen.
   ========================================================================== */

@font-face {
    font-family: "Montserrat";
    src: url("../fonts/montserrat-latin.woff2") format("woff2");
    font-weight: 100 900;
    font-style: normal;
    font-display: optional;
    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: "Montserrat";
    src: url("../fonts/montserrat-latin-ext.woff2") format("woff2");
    font-weight: 100 900;
    font-style: normal;
    font-display: optional;
    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;
}
