/* ==========================================================================
   Transform8 — self-hosted webfonts

   Previously these came from fonts.googleapis.com, which cost a DNS lookup +
   TLS handshake + a render-blocking stylesheet on a third-party origin before
   a single glyph could be requested — and sent every visitor's IP address to
   Google, which is the part that matters for an EU site with no consent layer.
   Serving them from our own origin removes both problems.

   Variable fonts, one file per family per subset: Montserrat covers 300-600
   and Manrope 400-600 in a single resource each, where the static cuts would
   have been six separate downloads. The latin-ext faces carry a unicode-range
   so they are only fetched if a glyph actually needs them — for Dutch copy
   that is normally never.

   Both families are SIL Open Font License 1.1, which permits self-hosting.
   Source: Google Fonts (Montserrat v31, Manrope v20).
   ========================================================================== */

/* Montserrat — display face -------------------------------------------------- */

/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url('../fonts/montserrat-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;
}

/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url('../fonts/montserrat-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;
}

/* Manrope — accent face ------------------------------------------------------ */

/* latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('../fonts/manrope-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;
}

/* latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('../fonts/manrope-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 fallbacks ---------------------------------------------------
   The token stack in tokens.css already asked for "Montserrat Placeholder" and
   "Manrope Placeholder" — Framer emits those names but never ships a rule for
   them, so on the published site they resolve to nothing and the stack drops
   straight to sans-serif. That is the reflow: `font-display: swap` paints in
   Arial first, and Arial sets ~9% narrower than Montserrat, so every heading
   re-wraps the moment the real font lands.

   Defining them here as Arial re-scaled to Montserrat's and Manrope's own
   metrics makes the swap close to invisible. size-adjust is the ratio of mean
   advance width measured over the actual page copy — OS/2 xAvgCharWidth is not
   comparable across these fonts. ascent/descent are the real values divided by
   that same ratio, since the overrides apply on top of the adjusted em.

     Montserrat  upem 1000  asc  968  desc -251  gap 0  -> 108.9%
     Manrope     upem 2000  asc 2132  desc -600  gap 0  ->  98.7%
   -------------------------------------------------------------------------- */

@font-face {
  font-family: 'Montserrat Placeholder';
  src: local('Arial'), local('Helvetica Neue'), local('Liberation Sans'), local('Roboto');
  size-adjust: 108.9%;
  ascent-override: 88.9%;
  descent-override: 23.0%;
  line-gap-override: 0%;
}

@font-face {
  font-family: 'Manrope Placeholder';
  src: local('Arial'), local('Helvetica Neue'), local('Liberation Sans'), local('Roboto');
  size-adjust: 98.7%;
  ascent-override: 108.0%;
  descent-override: 30.4%;
  line-gap-override: 0%;
}
