/* ==========================================================================
   Shared font faces — self-hosted
   Version: v1.1.0
   Created: 31 August 2026
   Updated: 6 September 2026

   Deploy path: /shared/css/fonts.css
   Font files:  /shared/fonts/*.woff2

   CHANGELOG
   v1.1.0  2026-09-06  Families replaced. Inter and Source Serif 4 are
                       retired. Body and UI move to Manrope, which is
                       HomeSmart's brand typeface; headings move to Libre
                       Baskerville, which matches the transitional-serif
                       shape of the Gann Group wordmark so the logo reads
                       as part of the page rather than an object placed on
                       it. Four files replace six, and the total drops from
                       roughly 655KB to 83KB.
   v1.0.0  2026-08-31  Initial creation.

   ---------------------------------------------------------------------------
   TWO THINGS THAT DIFFER FROM v1.0.0 AND WILL BITE IF FORGOTTEN

   1. Libre Baskerville is NOT a variable font. It ships as discrete static
      faces. Only 400 and 700 are loaded here. A heading set to 500 or 600
      will be synthesised by the browser into a smeared fake bold. Heading
      weights must be 400 or 700 — nothing between. The token
      --weight-heading in tokens.css is set to 400 for this reason.

   2. Manrope has no italic. Google publishes no italic cut of it. An
      <em> will be slanted algorithmically by the browser. That is
      acceptable for the occasional emphasis in body copy, but do not
      build a design element that depends on italic body text. Libre
      Baskerville does have a true italic; it is not loaded, because
      nothing currently needs it. Add it here if that changes rather than
      letting the browser fake it.

   ---------------------------------------------------------------------------
   SUBSETTING

   Manrope is split: latin loads for everyone, latin-ext loads only if the
   page actually contains a character in that range. The browser decides
   from unicode-range and downloads nothing it does not need.

   Libre Baskerville is not split. Google serves one file per weight that
   already covers both ranges, so there is nothing to subset and no
   unicode-range is declared. Splitting it would mean shipping the same
   bytes twice.

   ---------------------------------------------------------------------------
   Load order in the page scaffold:
     1. this file
     2. the site's tokens.css
     3. shared component CSS
     4. site-specific CSS
   ========================================================================== */

/* --------------------------------------------------------------------------
   Manrope — UI, body copy, navigation, buttons, forms
   Variable, 200–800 in a single file per subset.
   -------------------------------------------------------------------------- */

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url('/shared/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;
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url('/shared/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;
}

/* --------------------------------------------------------------------------
   Libre Baskerville — headings and display text
   Static faces. Regular and bold only. See note 1 in the header.
   -------------------------------------------------------------------------- */

@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/shared/fonts/libre-baskerville-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/shared/fonts/libre-baskerville-700.woff2') format('woff2');
}

/* --------------------------------------------------------------------------
   Optical sizing is on by default in every browser that supports variable
   fonts. Stated explicitly so a future reset that sets `none` is visible
   as a deliberate change rather than an accident. Manrope carries no
   optical size axis, so this is currently inert — it is kept because the
   estate may add a family that has one.
   -------------------------------------------------------------------------- */

:root {
  font-optical-sizing: auto;
}
