/*
 * The three families, served from this site.
 *
 * The old site asks Google for a font stylesheet on every page load, and that
 * request carries the visitor's IP address there before any consent dialog has
 * been answered. This is the one deliberate departure from reproducing the
 * original as it is: the bytes are the same, the origin is not.
 *
 * Every `src` below is a path on this site. No external host is named in this
 * file or anywhere else in this theme - the two Google font hosts are not even
 * written down here, because test/theme.sh greps this whole directory for them
 * and a comment quoting one would fail the check that exists to keep them out.
 * They are named in openspec/changes/add-site-theme/design.md instead.
 *
 * NO `local()`. The internal family names in these files are mangled by the
 * generator that produced them - the Nunito Sans files call themselves
 * "Nunito Sans 12pt ExtraLight 12pt" and the Spartan file "Spartan Thin Black" -
 * so a `local()` clause would either miss or match something unintended. The
 * weights themselves are correct: every file's usWeightClass reads the weight it
 * is declared at, and the stem widths were compared to confirm the names are
 * wrong and the outlines are not.
 *
 * Latin subsets. German needs ä ö ü Ä Ö Ü ß and the Euro sign, and all of them
 * are inside U+0000-00FF; each file was checked to contain all eight before it
 * was shipped. What that leaves out is latin-ext - Polish, Czech, Hungarian and
 * Turkish letters - which nothing on this site uses today.
 *
 * THE SIX FACES THAT WERE MISSING ARE HERE NOW, and the paragraph they replace
 * said they would be: "Nunito Sans 500 and 600, Spartan 400, 500 and 800, and
 * Inter 600, all of them in the home page's own sections. Those sections are the
 * next cycle and their weights ship with them." That cycle is this one, and it
 * needs all six - the hero's setup line is Spartan 400, the section headlines are
 * Spartan 800, an article title is Spartan 500, a service sub-line is Nunito Sans
 * 600, the careers button is Nunito Sans 500 and the locality badge is Inter 600.
 * Declaring a face whose file is not present is worse than declaring nothing,
 * because the browser synthesises silently - which it did on the first run of
 * this cycle, where the careers sub-line asked for Spartan 400 and was painted in
 * Spartan 900.
 *
 * WHICH FAMILY THE SPARTAN FILES COME FROM, because there are two and they are not
 * interchangeable. The live site loads `Spartan`, the family Google has since
 * renamed to `League Spartan`, and the two versions have different metrics: the
 * capital A is 1670 units in the file this theme already shipped and 1451 in the
 * current League Spartan, against a 2000-unit em. The three added faces are from
 * the same `Spartan` family as the one that was here, checked by comparing advance
 * widths - 1657, 1659 and 1667 for the A at 400, 500 and 800, beside 1670 at 900.
 *
 * WHAT IS STILL NOT HERE: every italic, and every weight nothing this theme
 * renders asks for. The live site's stylesheet asks Google for nine weights and
 * nine italics of each of two families; this theme ships the four Spartan, five
 * Nunito Sans and five Inter faces that something renders. The count grew twice
 * as the inner pages arrived - Nunito Sans 800 with the service headlines, Inter
 * 500 and 700 with /about/ - and each time the face was shipped rather than
 * synthesised, for the reason two paragraphs up.
 *
 * font-display: swap. Text is painted in a fallback face and reflowed when the
 * file arrives, rather than being invisible while it loads.
 *
 * Provenance and licence, per family, are in
 * openspec/changes/add-site-theme/design.md, and each family's licence text
 * ships beside its files as OFL-*.txt - all three are under the SIL Open Font
 * License 1.1, which requires the licence to travel with the font.
 */

/* Nunito Sans - body text. */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/nunito-sans-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/nunito-sans-700.woff2') format('woff2');
}

/* Nunito Sans 800: the inner pages' section headlines and the closing band's,
   their chapter titles, and the label inside every gold pill. Measured on the
   live inner pages rather than assumed - `getComputedStyle` on
   `h2.ccg-bh-section-title` reads `800 41.6px/44.928px "Nunito Sans"`, and the
   same family and weight on the chapter title and the call to action. The face
   is the same latin subset as the four above; its unicode-range covers
   U+0000-00FF and U+20AC, so all eight characters German needs are in it. */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/nunito-sans-800.woff2') format('woff2');
}

/* Nunito Sans 500 and 600: the careers button, the service sub-lines, the job
   card's call to action. */
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/nunito-sans-500.woff2') format('woff2');
}

@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/nunito-sans-600.woff2') format('woff2');
}

/* Spartan - the hero's two headline steps, the section headlines in BRANCHEN,
   KARRIERE and NEWS, and the article titles. */
@font-face {
  font-family: 'Spartan';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/spartan-400.woff2') format('woff2');
}

@font-face {
  font-family: 'Spartan';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/spartan-500.woff2') format('woff2');
}

@font-face {
  font-family: 'Spartan';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/spartan-800.woff2') format('woff2');
}

@font-face {
  font-family: 'Spartan';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/spartan-900.woff2') format('woff2');
}

/* Inter - h2 and h3. Measured on the live site, and measured NOT to be served by
   it: the page declares `Inter, Roboto, sans-serif` for every h2 and h3 while
   loading no Inter face at all, so what a visitor to the old site actually sees
   there depends on what is installed on their machine. Here it is served. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/inter-600.woff2') format('woff2');
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/inter-800.woff2') format('woff2');
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/inter-900.woff2') format('woff2');
}

/* INTER 500 AND 700 ARRIVED WITH /about/, and the paragraph above about faces
   that are declared and not present is exactly why they are here rather than
   left to the browser. Inter 700 is the blockquote of the quote band, at
   35.2/45.76: the live rule declares it with `!important`, so there is no
   reading of the original in which it is anything else. Inter 500 is the five
   timeline headlines at 23.2/29: the live rule declares 800 and the original
   theme's own heading rule beats it, so 800 is what is written and 500 is what
   a visitor sees - the same shape as the feature and industry titles, and the
   computed value is the one carried.

   Both are the wght 500 and wght 700 instances of the same latin subset the
   three faces above are cut from - 230 codepoints, all eight German characters
   among them - pinned to a static weight rather than shipped as a variable font,
   because an `@font-face` that names one weight and points at a variable file
   renders that file's default instance and not the weight it was declared at.
   Measured rather than assumed: the advance width of the capital A is 1452,
   1490, 1529, 1576 and 1628 at 500, 600, 700, 800 and 900 against a 2048-unit
   em, so the two new faces interleave with the three that were here rather than
   duplicating one of them. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/inter-500.woff2') format('woff2');
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/inter-700.woff2') format('woff2');
}
