/*
 * Boise Civic Trust — typographic roles.
 *
 * Four roles from the brand board: headline/wordmark (artwork, never
 * live type), secondary/subhead, tagline/accent, supporting text.
 * Tracked all-caps labels are a defining identity element; they are
 * for labels and metadata, never for paragraphs.
 */

/* Display serif runs at weight 500 with tightened leading and
   near-zero tracking: Newsreader is drawn to sit close at display
   sizes. text-wrap: balance and hanging-punctuation are progressive
   enhancements — older engines simply ignore them. */
.type-display {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.01em;
  text-wrap: balance;
  hanging-punctuation: first last;
}

.type-headline {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -0.005em;
  text-wrap: balance;
  hanging-punctuation: first last;
}

.type-subhead {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: 0;
  text-wrap: balance;
}

/* Institutional label: small caps-tracked metadata. */
.type-label {
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-institutional);
  text-transform: uppercase;
  color: var(--color-text-secondary);
}

.type-label-strong {
  font-family: var(--font-ui);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: var(--tracking-institutional);
  text-transform: uppercase;
  color: var(--color-text);
}

/* Tagline treatment: all caps, generous spacing, muted gold. Reserved
   for brand statements, not filler (BRAND_GUIDELINES §7.4). */
.type-tagline {
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  letter-spacing: var(--tracking-institutional);
  text-transform: uppercase;
  color: var(--color-accent-strong);
}

/* Reading copy is deliberately generous: the fluid --text-md reaches
   1.1875rem at desktop widths. text-wrap: pretty improves rag and
   guards against widowed last lines where supported. */
.type-body {
  font-family: var(--font-ui);
  font-size: var(--text-md);
  line-height: var(--leading-loose);
  text-wrap: pretty;
}

.type-meta {
  font-family: var(--font-ui);
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-text-secondary);
  text-wrap: pretty;
}

.type-figure {
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -0.01em;
  font-variant-numeric: tabular-nums;
}

.type-record {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  letter-spacing: 0.01em;
}
