/* ============================================================
   tokens.css — single source of truth for design tokens.

   Load FIRST on every public page, before responsive.css.

   Only tokens whose value is the same on every page live here.
   Anything that genuinely differs per page (--paper, the --fs-*
   type scales) stays in that page's own stylesheet as a
   body.<class> override — see "Page-scoped" note at the bottom.

   Declared on :root so the values are available to <html> and to
   anything outside <body>. Page overrides on body.<class> beat
   this by both specificity and directness, so they still win.
   ============================================================ */
@font-face {
	font-family: 'Source Serif 4';
	src: url('../fonts/SourceSerif4-Regular.woff2') format('woff2');
	font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
	font-family: 'Source Serif 4';
	src: url('../fonts/SourceSerif4-Italic.woff2') format('woff2');
	font-weight: 400; font-style: italic; font-display: swap;
}
@font-face {
	font-family: 'Source Serif 4';
	src: url('../fonts/SourceSerif4-SemiBold.woff2') format('woff2');
	font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
	font-family: 'Source Serif 4';
	src: url('../fonts/SourceSerif4-Bold.woff2') format('woff2');
	font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
	font-family: 'Gelasio';
	src: url('../fonts/Gelasio-Regular.woff2') format('woff2');
	font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
	font-family: 'Gelasio';
	src: url('../fonts/Gelasio-Italic.woff2') format('woff2');
	font-weight: 400; font-style: italic; font-display: swap;
}
@font-face {
	font-family: 'Gelasio';
	src: url('../fonts/Gelasio-Bold.woff2') format('woff2');
	font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('../fonts/Inter_18pt-Regular.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('../fonts/Inter_18pt-Italic.woff2') format('woff2');
  font-weight: 400; font-style: italic; font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('../fonts/Inter_18pt-SemiBold.woff2') format('woff2');
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('../fonts/Inter_18pt-Bold.woff2') format('woff2');
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('../fonts/Inter_18pt-Light.woff2') format('woff2');
  font-weight: 300; font-style: normal; font-display: swap;
}


:root {

	--font-display: 'Gelasio', "Georgia", Times, serif;
	--font-body: 'Source Serif 4', 'Times New Roman', Times, serif;
	--font-furniture: 'Inter', 'Helvetica Neue', Arial, sans-serif;

	/* ---------- Colour — newsprint palette ---------- */
	--ink: #0A0A0A;
	--ink-soft: #1F1B17;
	--rule: #0A0A0A;
	--rule-soft: rgba(10, 10, 10, 0.18);
	--muted: #6B6358;
	--tint: #EFE7D3;
	--accent: #BD2701;          /* brand red, used sparingly */
	--link-hover: #BD2701;
	--white: #FFFFFF;

	/* Default paper. Overridden per page:
	   home/article #FFFFFF, search #F4F1EA. Jobs and the unclassed
	   pages (about/contact/advertise/subscribe/payment) use this. */
	--paper: #FBF9F3;
	--paper-pure: #FFFFFF;

	/* ---------- Spacing — 4px baseline ---------- */
	/* NOTE: editorial.css overrides --s-1/2/3 to a half-scale
	   (2/4/8) for body.home. That divergence is pre-existing and is
	   preserved deliberately; reconcile it as a separate visual pass. */
	--s-1: 4px;
	--s-2: 8px;
	--s-3: 12px;
	--s-4: 16px;
	--s-5: 24px;
	--s-6: 32px;
	--s-7: 48px;
	--s-8: 64px;
	--s-9: 80px;
	--s-10: 96px;
}

/* ------------------------------------------------------------
   Page-scoped tokens deliberately NOT defined here — do not add
   them without checking every page, they legitimately differ:

     --paper, --paper-pure   (4 distinct values across pages)
     --s-1, --s-2, --s-3     (editorial.css uses a half-scale)
     --fs-*                  (each page has its own type scale)
   ------------------------------------------------------------ */


/* ============================================================
   RESET — replaces normalize.css v1.1.1 (2013).

   normalize v1 was 51 rules, most of them corrections for IE 6-9,
   Firefox 3 and old WebKit. Everything that is now simply the
   browser default has been dropped; what remains is only the
   declarations that still change rendering today.

   Deliberately NOT added: `box-sizing: border-box`. normalize v1
   never set it, and switching it on globally would reflow every
   fixed-width element on the site. That's a separate, deliberate
   migration — not a side effect of retiring normalize.
   ============================================================ */

html {
	/* Stops iOS Safari inflating text when the device is rotated. */
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
}

/* Form controls do not inherit the page font. Kept as generic
   sans-serif — the value normalize gave them — rather than
   `inherit`, which would switch every control to the body serif. */
button,
input,
select,
textarea {
	font-family: sans-serif;
	font-size: 100%;
	margin: 0;
	vertical-align: baseline;
}

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
	-webkit-appearance: button;
	cursor: pointer;
}

button[disabled],
html input[disabled] {
	cursor: default;
}

/* Firefox adds an inner border/padding to focused buttons. */
button::-moz-focus-inner,
input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

/* The search field in menu.php. The ::-webkit- rules suppress the
   native clear "X", which the panel's own close button replaces. */
input[type="search"] {
	-webkit-appearance: textfield;
	box-sizing: content-box;
}

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

textarea {
	overflow: auto;
	vertical-align: top;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}
