/*
 * Site typefaces (self-hosted, replaced Outfit from Google Fonts 2026-09-30).
 *
 *   Grift    — body and UI text. One variable file covers weights 100–900;
 *              italic is a separate static file, fetched only when used.
 *   Boldonse — headlines (h1, h2) and the testimonial quote bands. A single
 *              heavy weight, declared across 100–900 so headings set at
 *              700/800 use the real face instead of a faux-bolded one.
 *
 * Boldonse's capitals are drawn far taller than most faces (cap height
 * 1190/1000 vs Outfit's 700), so size-adjust scales it down to sit at
 * roughly the sizes the page CSS was written for. Letter-spacing in em is
 * unaffected.
 *
 * Boldonse has no → glyph; arrows inside headings fall back to Grift.
 *
 * Pages set --font themselves in their own :root; --font-head is only
 * defined here.
 */

@font-face {
  font-family: "Grift";
  src: url("/assets/fonts/grift-variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Grift";
  src: url("/assets/fonts/grift-italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "Boldonse";
  src: url("/assets/fonts/boldonse.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  size-adjust: 65%;
}

:root {
  --font-head: "Boldonse", "Grift", system-ui, -apple-system, sans-serif;
}

h1,
h2,
.loc-quote blockquote,
.pg-quote blockquote,
.cat-quote blockquote,
.port-quote blockquote {
  font-family: var(--font-head);
}

/* Headlines set in capitals (2026-09-30). Case is visual only: the source
   copy, admin fields and what screen readers announce stay as written. */
h1,
h2 {
  text-transform: uppercase;
}
