/* ====================================================================
   TYPE — Instrument Serif headlines, Instrument Sans body
   ====================================================================
   The site's type system. Every page loads this: index.html after
   minimal.css, and the sub-pages after their own inline <style>, since
   they do not load minimal.css at all.

   minimal.css declares the type tokens and defaults them to N27. This
   file redefines them. Keeping it that way round is deliberate: N27 is
   always loaded for the wordmark, so if this file ever fails to arrive
   the page falls back to a brand face rather than to Times.

   The VERTASSIT wordmark is never affected — it reads --font-brand,
   which nothing here touches.

   Both families are bundled under the SIL Open Font License; see
   fonts/instrument/OFL.txt. The files are the latin / latin-ext subsets
   exactly as Google serves them, so the browser only fetches the second
   one if a page needs an accented character.
   ==================================================================== */

@font-face {
  font-family: 'Instrument Sans';
  src: url('fonts/instrument/InstrumentSans-latin-ext.woff2') format('woff2');
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
  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: 'Instrument Sans';
  src: url('fonts/instrument/InstrumentSans-latin.woff2') format('woff2');
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
  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: 'Instrument Serif';
  src: url('fonts/instrument/InstrumentSerif-latin-ext.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  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: 'Instrument Serif';
  src: url('fonts/instrument/InstrumentSerif-latin.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  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;
}


:root {
  --font-head: 'Instrument Serif', 'Hoefler Text', Georgia, serif;
  --font-body: 'Instrument Sans', 'Helvetica Neue', Arial, sans-serif;

  /* Instrument Serif ships one weight only, so every headline role sits
     at 400 — asking for 700 would get a synthesised bold, which smears
     the serifs at display size. */
  --fw-head: 400;
  --fw-sub: 400;
  --fw-display: 400;

  /* Instrument Sans is a variable face clamped at 400..700, so there is
     no 300; body copy sits at its lightest real weight. */
  --fw-body: 400;

  /* a serif needs far less negative tracking than N27 did */
  --track-head: -0.005em;
}

/* Instrument Serif runs small on the body for its point size and its
   caps are shorter than N27's, so the display sizes are lifted a little
   to hold the same presence in the layout. */
.statement-title { font-size: clamp(2.1rem, 5.2vw, 5rem); line-height: 1.02; }
.section-head,
.band-title     { font-size: clamp(2.1rem, 4.8vw, 4.4rem); }
.voice-q        { font-size: clamp(1.9rem, 4.3vw, 3.9rem); }
.stat-figure    { font-size: clamp(3.2rem, 6.6vw, 6rem); }
.impact-figure  { font-size: clamp(3.2rem, 7vw, 6.8rem); }

/* the wordmark keeps N27's tight fit; nothing above should reach it */
.wordmark { letter-spacing: -0.015em; }

/* VERT, the product name, is set in N27 Bold wherever it appears in
   running text or a headline, the same face as the wordmark. The font is
   named directly rather than through --font-brand because the sub-pages
   do not load minimal.css; every page that uses .vert declares N27 700. */
.vert {
  font-family: 'N27', 'Helvetica Neue', Arial, sans-serif;
  font-weight: 700;
  font-style: normal;
}

/* ---- sub-pages -----------------------------------------------------
   news/* and privacy-policy.html carry their own inline <style> and do
   not load minimal.css, so the families are applied directly here.
   Their inline rules set 'N27' on individual elements, which beats a
   bare `body` rule, so each of those selectors is named. */
body { font-family: var(--font-body); }

/* headings */
.news-article-title,
.privacy-title {
  font-family: var(--font-head);
  font-weight: var(--fw-head);
}

/* running copy */
.news-article-body,
.privacy-paragraph { font-family: var(--font-body); }

/* the bits whose inline rules name N27 explicitly */
.back-button,
.nav-items a,
.mobile-menu-items li a,
footer .footer-copyright,
footer .footer-navigation a { font-family: var(--font-body); }

/* the news nav link and date are deliberately set in a plain grotesque
   rather than the brand face; Instrument Sans is now that role */
.news-article-nav a,
.news-article-date { font-family: var(--font-body); }
