/* ============================================================
   Self-hosted fonts (variable woff2) + metric-matched fallbacks.
   Families are the same ones previously served by Google Fonts. The
   fallback faces (size-adjust + ascent/descent overrides) are computed
   with @capsizecss/core so a system font reserves the same LINE BOX as
   the webfont.

   Those overrides match VERTICAL metrics only - nothing constrains advance
   width, so a headline sitting near its wrap boundary can still take a
   different number of lines in the fallback than in the webfont. That is a
   whole line of layout shift, not a subpixel one: measured 2026-08-03, the
   .svcs-hero__title flipped 2 lines -> 1 on Fraunces swap and moved the hero
   83.2px, scoring CLS 0.234 on /hair/hair-loss/ and 0.229 on /hair/color/.

   Fraunces is therefore font-display:optional, NOT swap. It is preloaded, so
   a normal connection still paints in Fraunces inside the block period; a slow
   one keeps the fallback for that page view instead of reflowing. The body
   faces stay on swap - they only ever cost ~0.011, well under threshold, and
   holding them to optional would drop the whole page to Arial.
   Do not "restore" swap on Fraunces without re-measuring CLS.

   GEORGIA IS THE WORST CASE, so wrap-boundary margins measured against this
   fallback cover every platform. Where Georgia is absent (Android, Linux) the
   face below never loads, the stack falls through to generic serif, and the
   size-adjust/ascent overrides go with it - generic serif renders at 100%, not
   105.2%. Measured on staging across seven hero pages at 1280 and 1440, total
   headline width per face: Fraunces < bare serif < Georgia@105.2% on every row
   (e.g. /weddings/ 1419 / 1339 / 1555; /hair/ 1147 / 1124 / 1308). All three
   produced identical hero heights. No real-device testing is needed to close
   this - simulate the Georgia-less path by overriding --font-serif to
   "Fraunces", serif and blocking the woff2.
   Provenance + how to regenerate: ../fonts/FONTS-SOURCE.md
   ============================================================ */
@font-face{font-family:"Fraunces";font-style:normal;font-weight:300 700;font-display:optional;src:url(/site/templates/fonts/fraunces-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:"Fraunces";font-style:normal;font-weight:300 700;font-display:optional;src:url(/site/templates/fonts/fraunces-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;}
@font-face{font-family:"Fraunces";font-style:italic;font-weight:300 600;font-display:optional;src:url(/site/templates/fonts/fraunces-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:"Fraunces";font-style:italic;font-weight:300 600;font-display:optional;src:url(/site/templates/fonts/fraunces-italic-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;}
@font-face{font-family:"Lexend";font-style:normal;font-weight:300 700;font-display:swap;src:url(/site/templates/fonts/lexend-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:"Lexend";font-style:normal;font-weight:300 700;font-display:swap;src:url(/site/templates/fonts/lexend-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;}
@font-face{font-family:"Schibsted Grotesk";font-style:normal;font-weight:400 900;font-display:swap;src:url(/site/templates/fonts/schibsted-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:"Schibsted Grotesk";font-style:normal;font-weight:400 900;font-display:swap;src:url(/site/templates/fonts/schibsted-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;}
@font-face{font-family:"Schibsted Grotesk";font-style:italic;font-weight:400 900;font-display:swap;src:url(/site/templates/fonts/schibsted-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:"Schibsted Grotesk";font-style:italic;font-weight:400 900;font-display:swap;src:url(/site/templates/fonts/schibsted-italic-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;}

/* Metric-matched fallback faces */
@font-face {
  font-family: "Fraunces Fallback";
  src: local('Georgia');
  font-display: swap;
  ascent-override: 92.9623%;
  descent-override: 24.2386%;
  size-adjust: 105.2039%;
}
@font-face {
  font-family: "Lexend Fallback";
  src: local('Arial'), local('ArialMT');
  font-display: swap;
  ascent-override: 90.9798%;
  descent-override: 22.7449%;
  line-gap-override: 0%;
  size-adjust: 109.9146%;
}
@font-face {
  font-family: "Schibsted Grotesk Fallback";
  src: local('Arial'), local('ArialMT');
  font-display: swap;
  ascent-override: 93.4593%;
  descent-override: 24.6733%;
  line-gap-override: 0%;
  size-adjust: 104.4907%;
}
