/* ============================================================================
   SARART · WEBFONTS — self-hosted.

   WHY SELF-HOSTED. The theme used to pull these from fonts.googleapis.com. That
   cost a second origin on the critical path (DNS + TLS + a 51.3 KB render
   blocking stylesheet) before a single glyph could even start downloading, and
   the request asked for every subset Google publishes, so a lone "→" on the home
   dragged in the Open Sans math + symbols subsets: 76.7 KB for one arrow.
   Serving them from the theme removes the extra origin, the extra stylesheet and
   the unused subsets. Cross-site font caching has been partitioned per-site
   since Chrome 86, so there is no shared-cache benefit left to give up.

   THESE ARE GOOGLE'S OWN BINARIES, byte for byte — downloaded from
   fonts.gstatic.com, not re-generated. Nothing about the glyph outlines, hinting
   or metrics changed, so the type renders exactly as it did before.

   VARIABLE FONTS. One file per family+style carries the whole weight axis, so
   every weight the CSS asks for is a real interpolated instance and NOTHING gets
   synthesised. Declared ranges match the fonts' own axes:
     Open Sans        300-800   (CSS uses 300, 400, 500, 600, 700, 800)
     Playfair Display 400-900   (CSS uses 500, 600, 800 + italic 400, 500, 700)
   Playfair has no weight below 400, so the one .about-hero__role-prefix rule that
   asks for 300 clamps to 400 — same as it always did.

   SUBSET = latin, matching the approved mockup's next/font config
   (subsets: ["latin"] in sarart-web/app/layout.tsx).

   NOT SHIPPED, deliberately: Open Sans italic. The mockup does not load it
   either, so the browser obliques the roman — keeping that keeps the contract.
   Swap in a real italic face only if the client asks for it.

   Regenerating: pull the same files from Google, bump the vNN in the filename.
   ============================================================================ */

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300 800;
  font-stretch: 100%;
  font-display: swap;
  src: url('../fonts/open-sans-v44-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;
}

/* The single glyph outside latin that renders in a webfont: "Discover the Story →".
   Cut from Open Sans' symbols subset, keeping the weight axis so it still matches
   the 600 of .hero__story. 3.4 KB instead of the 76.7 KB of math + symbols. */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300 800;
  font-stretch: 100%;
  font-display: swap;
  src: url('../fonts/open-sans-v44-arrow.woff2') format('woff2');
  unicode-range:
    U+2192;
}

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url('../fonts/playfair-display-v40-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: 'Playfair Display';
  font-style: italic;
  font-weight: 400 900;
  font-display: swap;
  src: url('../fonts/playfair-display-v40-latin-italic.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;
}
