/* ==========================================================================
   Type system — updated brand guidelines, Sep 2026 (client feedback item 8).

     DM Serif Display  hero headlines and H1s
     DIN 2014 Demi     all other headings
     DIN 2014 Regular  body copy
     DIN 2014 Light    footnotes and legal text

   Two substitutions, both deliberate and both flagged to the client:

   1. DIN 2014 webfont files have not been supplied. The theme self-hosts
      FFDINStd (FF DIN, the previous release of the same family) at 300/400/600,
      so Light/Regular/Demi map onto those weights. Swapping in licensed
      DIN 2014 files later means changing the @font-face block in desktop.css
      and nothing else — every rule here goes through --font-din.

   2. DM Serif Display is self-hosted rather than pulled from the Google CDN.
      It is OFL licensed so self-hosting is permitted, and the site runs
      Complianz: a third-party font request is a consent surface we do not
      need for two files totalling 24KB.

   Loaded after desktop.css/responsive.css and before the component
   stylesheets, so a component that wants something different still wins.
   ========================================================================== */

@font-face {
	font-family: 'DM Serif Display';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('fonts/DMSerifDisplay-Regular-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: 'DM Serif Display';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('fonts/DMSerifDisplay-Regular-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;
}

:root {
	/* Arial is the brand book's approved fallback for DIN. */
	--font-din: 'FFDINStd', Arial, Helvetica, sans-serif;
	--font-serif: 'DM Serif Display', Georgia, 'Times New Roman', serif;

	--din-light: 300;
	--din-regular: 400;
	--din-demi: 600;

	--line-body: 1.5;   /* client trial, Sep 2026 */
	--line-heading: 1.2;
}

/* ---- Body copy ------------------------------------------------------- */

/* Regular, not Light. The theme has run body copy at 300 since 2022, which is
   why longer pages read thin; the brand guidelines put Light on footnotes and
   legal text only. */
body,
button,
input,
select,
textarea {
	font-family: var(--font-din);
	font-weight: var(--din-regular);
	line-height: var(--line-body);
}

/* desktop.css sets 1.325 at the same specificity but earlier in the cascade,
   so this is the rule that lands. Kept explicit rather than edited in place:
   the 1.5 is a trial, and one file reverts it. */
body {
	line-height: var(--line-body);
}

p,
li,
dd,
figcaption,
blockquote {
	line-height: var(--line-body);
}

/* ---- Headings -------------------------------------------------------- */

/* framework.css flattens every heading to `font-weight: inherit`, so without
   this h2–h6 render at the body weight. Family and weight only — sizes stay
   with the components that own them. */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-din);
	font-weight: var(--din-demi);
	line-height: var(--line-heading);
}

/* Hero headlines and H1s. Listed by class as well as element because the
   rebuilt templates put their hero type on a div, not an h1, and a plain
   `h1` rule would miss every one of them. */
h1,
.hp-hero__heading,
.announce__text,
.cs-hero__title,
.md .md-hero__title,
.fq-hero__heading,
.pr-hero__title,
.sn-hero__title,
.sc-hero__title,
.ct-hero__title,
.sr-hero__title,
.sp-hero__title,
.pd-hero__title,
.ar-hero__title {
	font-family: var(--font-serif);
	font-weight: 400;
	/* DM Serif Display has no bold cut. Anything asking for one gets a
	   synthesised faux-bold, so weight is pinned here. */
	letter-spacing: 0;
}

/* The serif's cap height sits taller than DIN's, so headline leading that
   looked right in DIN reads cramped. */
h1,
.hp-hero__heading,
.cs-hero__title,
.md .md-hero__title,
.fq-hero__heading,
.pr-hero__title {
	line-height: 1.12;
}

/* ---- Footnotes and legal --------------------------------------------- */

small,
.footnote,
.legal,
.smallprint,
.footer-smallprint,
.wp-caption-text,
figcaption {
	font-weight: var(--din-light);
}
