/* ═══════════════════════════════════════════════════════════════
   TYPOGRAPHY — Editorial type scale
   Traditional newspaper terminology: Streamer → Agate
   4 responsive groups: A (<400) B (400-599) C (600-899) D (≥900)
   ═══════════════════════════════════════════════════════════════ */

/*  Name         | <400    | ≥400    | ≥600    | ≥900    | Font            */
/*  Streamer     | 32/34   | 36/38   | 44/46   | 52/54   | Serif 900      */
/*  Headline     | 24/28   | 28/32   | 32/36   | 40/44   | Serif 700      */
/*  Deck         | 20/26   | 22/28   | 24/30   | 28/34   | Serif 400i     */
/*  Subhead      | 18/24   | 20/26   | 22/28   | 26/32   | Serif 700      */
/*  Body         | 16/26   | 17/28   | 18/30   | 19/32   | Serif 400      */
/*  Byline       | 14/18   | 14/18   | 15/20   | 15/20   | Sans 600       */
/*  Caption      | 13/18   | 13/18   | 14/20   | 14/20   | Sans 400       */
/*  Label        | 11/14   | 11/14   | 12/14   | 12/14   | Sans 700       */
/*  Agate        | 10/14   | 10/14   | 11/14   | 11/14   | Sans 400       */

/* Group A — base (mobile-first) */
.streamer     { font: 900 2rem/1.0625 var(--serif); letter-spacing: -0.02em; color: var(--no-ink); }
.headline     { font: 700 1.5rem/1.167 var(--serif); letter-spacing: -0.015em; color: var(--no-ink); }
.deck         { font: italic 400 1.25rem/1.3 var(--serif); color: var(--no-ink-secondary); }
.subhead      { font: 700 1.125rem/1.333 var(--serif); color: var(--no-ink); }
.body-text    { font: 400 1rem/1.625 var(--serif); color: var(--no-ink-secondary); }
.byline       { font: 600 0.875rem/1.286 var(--sans); color: var(--no-ink-tertiary); text-transform: uppercase; letter-spacing: 0.04em; }
.caption      { font: 400 0.8125rem/1.385 var(--sans); color: var(--no-ink-tertiary); }
.label        { font: 700 0.6875rem/1.273 var(--sans); text-transform: uppercase; letter-spacing: 0.12em; }
.agate        { font: 400 0.625rem/1.4 var(--sans); color: var(--no-ink-muted); text-transform: uppercase; letter-spacing: 0.06em; }

/* Group B ≥400 */
@media (min-width: 400px) {
	.streamer   { font-size: 2.25rem; line-height: 1.056; }
	.headline   { font-size: 1.75rem; line-height: 1.143; }
	.deck       { font-size: 1.375rem; line-height: 1.273; }
	.subhead    { font-size: 1.25rem; line-height: 1.3; }
	.body-text  { font-size: 1.0625rem; line-height: 1.647; }
}

/* Group C ≥600 */
@media (min-width: 600px) {
	.streamer   { font-size: 2.75rem; line-height: 1.045; }
	.headline   { font-size: 2rem; line-height: 1.125; }
	.deck       { font-size: 1.5rem; line-height: 1.25; }
	.subhead    { font-size: 1.375rem; line-height: 1.273; }
	.body-text  { font-size: 1.125rem; line-height: 1.667; }
	.byline     { font-size: 0.9375rem; line-height: 1.333; }
	.caption    { font-size: 0.875rem; line-height: 1.429; }
}

/* Group D ≥900 */
@media (min-width: 900px) {
	.streamer   { font-size: 3.25rem; line-height: 1.038; }
	.headline   { font-size: 2.5rem; line-height: 1.1; }
	.deck       { font-size: 1.75rem; line-height: 1.214; }
	.subhead    { font-size: 1.625rem; line-height: 1.231; }
	.body-text  { font-size: 1.1875rem; line-height: 1.684; }
	.label      { font-size: 0.75rem; }
}

/* ── Utility ── */
.serif    { font-family: var(--serif); }
.sans     { font-family: var(--sans); }
.display  { font-family: var(--display); }
.bold     { font-weight: 700; }
.black    { font-weight: 900; }
.italic   { font-style: italic; }
.measure  { max-width: var(--measure); }

/* ── Section label (NYT-style thin uppercase) ── */
.section-label {
	font: 700 0.6875rem/1 var(--sans);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--no-ink-tertiary);
}

/* ── Article kicker (pre-headline category) ── */
.article-kicker {
	font: 700 0.75rem/1 var(--sans);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--no-brand);
	margin-bottom: var(--s2);
}

/* ── Tag (inline category label) ── */
.tag {
	display: inline-block;
	font: 700 0.625rem/1 var(--sans);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	padding: 0.2em 0.5em 0.15em;
}

.tag--brand {
	background: var(--no-brand);
	color: var(--no-white);
}

.tag--subtle {
	background: none;
	color: var(--no-brand);
	padding: 0;
}

.tag--outline {
	border: 1px solid var(--no-border);
	color: var(--no-ink-tertiary);
}

/* ── Drop cap (NYT-style) ── */
.drop-cap::first-letter {
	font-family: var(--serif);
	font-weight: 700;
	font-size: 3.5em;
	float: left;
	line-height: 0.8;
	margin-right: 0.08em;
	margin-top: 0.05em;
	color: var(--no-ink);
}
