/* ==========================================================================
   NEO Fonts — selbst gehostet (DSGVO/Performance/CLS).
   Ersetzt das render-blockierende Google-Fonts-@import. Manrope (Body) und
   Space Grotesk (Heading) als Variable Fonts (volle wght-Achse → kein Faux-Bold
   mehr), JetBrains Mono als Variable Font (wght 100-800, mit echtem
   Kursivschnitt). latin + latin-ext (Unicode-Range-Subsets:
   der Browser laedt latin-ext nur bei Bedarf). font-display: swap.
   Pfad relativ zu css/ → ../fonts/ (gilt fuer Drupal UND WEBSITE26-Build).
   ========================================================================== */

/* ── Manrope (Body) — Variable Font, wght 200–800 ── */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url('../fonts/manrope-var-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: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url('../fonts/manrope-var-latinext.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;
}

/* ── Space Grotesk (Heading) — Variable Font, wght 300–700 ── */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('../fonts/spacegrotesk-var-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: 'Space Grotesk';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('../fonts/spacegrotesk-var-latinext.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;
}

/* ── JetBrains Mono (Meta-Ebene: Dachzeilen, Code, kbd, Zaehler) ──
   Variable Font, wght 100–800, MIT echtem Kursivschnitt.

   Ersetzt DM Mono, das nur in 400 und 500 vorlag. Die Mono-Rollen des
   Design Systems (Dachzeilen, Spaltenkoepfe, Chips, Zaehler, Kennzahlen)
   waren dadurch auf 500 gedeckelt — alles darueber waere synthetisch
   gefettet gewesen. Mit der vollen Achse steht der Gewichtssprung als
   Gestaltungsmittel auch in der Mono zur Verfuegung.

   Der Kursivschnitt ist ECHT (eigene Konturen, keine Schraegstellung) und
   wird hier bereits mitgeliefert, obwohl noch keine Rolle ihn nutzt: durch
   font-style und unicode-range laedt der Browser die Datei erst, wenn
   tatsaechlich kursiv gesetzt wird. Bis dahin kostet sie nichts.

   Bezogen von Google Fonts, aber SELBST GEHOSTET — wie Manrope und Space
   Grotesk. Eine Einbindung ueber fonts.googleapis.com wuerde bei jedem
   Seitenaufruf die IP der Besucher an Google uebertragen; fuer eine
   Plattform, die mit DSGVO-Konformitaet wirbt, waere das die falsche
   Entscheidung. JetBrains Mono steht unter der SIL Open Font License 1.1,
   Selbsthosting ist ausdruecklich erlaubt. ── */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url('../fonts/jetbrainsmono-var-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: 'JetBrains Mono';
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url('../fonts/jetbrainsmono-var-latinext.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: 'JetBrains Mono';
  font-style: italic;
  font-weight: 100 800;
  font-display: swap;
  src: url('../fonts/jetbrainsmono-var-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: 'JetBrains Mono';
  font-style: italic;
  font-weight: 100 800;
  font-display: swap;
  src: url('../fonts/jetbrainsmono-var-italic-latinext.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;
}

/* ── Metrik-angepasste Fallbacks (Audit-Quick-Win M, CLS) ──
   Lokales Arial mit überschriebenen Metriken → Fallback-Zeile nimmt exakt den
   Platz der Webschrift ein, kein Layout-Shift beim Swap. Werte aus den echten
   Font-Dateien berechnet (gemessene a–z-Breiten vs. System-Arial, Capsize). */
@font-face {
  font-family: 'Manrope Fallback';
  src: local('Arial');
  size-adjust: 102.68%;
  ascent-override: 103.82%;
  descent-override: 29.22%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Space Grotesk Fallback';
  src: local('Arial');
  size-adjust: 113.38%;
  ascent-override: 86.79%;
  descent-override: 25.75%;
  line-gap-override: 0%;
}
