/*
 * Self-hosted web fonts (SIL Open Font License 1.1, see the *-OFL.txt files and README.md in
 * this folder). Every font in this file comes from this folder; no page loads a font from Google
 * Fonts any more (AP1-07).
 *
 * Two kinds of file live here:
 * - DM Sans and Newsreader carry no Reserved Font Name. Their .woff2 files are the unchanged
 *   latin and latin-ext subsets that Google Fonts serves, so the rendering matches the former
 *   Google Fonts link. Each is one variable font per subset.
 * - Source Sans 3 (Reserved Font Name "Source") and Playfair Display (Reserved Font Name
 *   "Playfair Display") may only be redistributed unmodified under their names, so their files
 *   are the official releases of the rights holders, byte-identical (Adobe source-sans 3.052R,
 *   clauseggers/Playfair tag 1.202). README.md pins their SHA-256; SelfHostedFontsContractTests
 *   checks them.
 *
 * Source Sans 3: Adobe's file has other vertical metrics than the Google subsets (hhea
 * 1000/-326 instead of 1024/-400). ascent-override/descent-override/line-gap-override restore
 * the former line height and baseline without touching the file. Safari/iOS ignores these
 * descriptors (Technology Preview only), so line height and baseline differ there; the operator
 * accepted this on 2026-09-27.
 *
 * Playfair Display: only the Bold cut is hosted, because ZumPizzachristl renders the family at
 * 700 only. The 1.202 release renders visibly differently from the former Google subsets; the
 * operator accepted this on 2026-09-27.
 *
 * Newsreader keeps one rule per requested weight (500, 700) pointing at the same variable file,
 * exactly as the Google Fonts CSS declared it: with only 500 and 700 on offer, a requested 600
 * resolves to the 700 face; a single "500 700" range would render it at 600 instead.
 *
 * Consumers:
 * - index.html and every page below pages/ that used the shared Google Fonts link (Source Sans 3
 *   everywhere, Newsreader only on pages/immobilien/gs23-og*), since AP1-07.
 * - pages/koch-und-backen/ZumPizzachristl/ (DM Sans, Playfair Display), since AP2-10.
 */

/* Source Sans 3 3.052 (Adobe, variable wght 200-900) - weights 400-700 as formerly requested */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/embedded/general/fonts/SourceSans3VF-Upright.ttf.woff2') format('woff2');
  ascent-override: 102.4%;
  descent-override: 40%;
  line-gap-override: 0%;
}

/* DM Sans v17 - latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 300 500;
  font-display: swap;
  src: url('/embedded/general/fonts/dm-sans-latin-ext.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;
}

/* DM Sans v17 - latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 300 500;
  font-display: swap;
  src: url('/embedded/general/fonts/dm-sans-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;
}

/* Playfair Display 1.202 Bold (clauseggers/Playfair, static) */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/embedded/general/fonts/PlayfairDisplay-Bold.woff2') format('woff2');
}

/* Newsreader v26 - latin-ext, weight 500 */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/embedded/general/fonts/newsreader-latin-ext.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;
}

/* Newsreader v26 - latin, weight 500 */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/embedded/general/fonts/newsreader-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;
}

/* Newsreader v26 - latin-ext, weight 700 */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/embedded/general/fonts/newsreader-latin-ext.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;
}

/* Newsreader v26 - latin, weight 700 */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/embedded/general/fonts/newsreader-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;
}
