/* Typography — executive, precise, modern, European */
h1, h2, h3, h4, h5 {
  hyphens: manual;
  font-family: var(--font-sans);
  color: var(--graphite);
  font-weight: 750;
  line-height: 1.08;
  letter-spacing: -.022em;
  margin: 0 0 .6em;
  text-wrap: balance;
}
h1 { font-size: var(--fs-h1); font-weight: 800; letter-spacing: -.035em; line-height: 1; }
h2 { font-size: var(--fs-h2); letter-spacing: -.03em; }
h3 { font-size: var(--fs-h3); line-height: 1.18; }
h4 { font-size: var(--fs-h4); line-height: 1.3; letter-spacing: -.01em; }
p { margin: 0 0 1.15em; }
strong, b { font-weight: 700; color: var(--graphite); }
small { font-size: var(--fs-small); }

.display {
  font-size: var(--fs-display);
  font-weight: 800;
  line-height: .92;
  letter-spacing: -.045em;
  text-transform: uppercase;
}
.lede { font-size: var(--fs-lede); line-height: 1.5; color: var(--graphite); font-weight: 500; max-width: 46ch; }
.lede--wide { max-width: 62ch; }

/* micro-label: document metadata voice */
.ml {
  display: inline-flex; align-items: center; gap: .6em;
  font-size: var(--fs-micro); font-weight: 750; letter-spacing: .16em; text-transform: uppercase;
  color: var(--cobalt); line-height: 1.3; margin: 0 0 1rem;
}
.ml::before { content: ""; width: 18px; height: 2px; background: var(--copper); flex: none; }
.ml--plain::before { display: none; }
.ml--dark { color: var(--charcoal); }
.ml--mint { color: var(--mint); }

.num {
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
}

/* Editorial serif — quotations & statements only */
.serif { font-family: var(--font-serif); font-weight: 400; letter-spacing: -.005em; }
.statement {
  font-family: var(--font-serif);
  font-size: clamp(1.5rem, 1.1rem + 1.7vw, 2.6rem);
  line-height: 1.22; color: var(--graphite); font-weight: 400; letter-spacing: -.01em; max-width: 30ch;
}
.statement em { font-style: italic; color: var(--cobalt); }

/* Long-form prose */
.prose { max-width: 70ch; }
.prose p, .prose li { color: var(--charcoal); }
.prose h2 { margin-top: 2.2em; }
.prose h3 { margin-top: 1.9em; }
.prose ul, .prose ol { padding-left: 1.2em; margin: 0 0 1.3em; }
.prose li { margin-bottom: .45em; }
.prose li::marker { color: var(--cobalt); }
.prose > :first-child { margin-top: 0; }

.dropcap { display: flow-root; }
.dropcap::first-letter {
  float: left; font-size: 4.2em; line-height: .82; font-weight: 800; color: var(--cobalt);
  padding: .06em .1em 0 0; letter-spacing: -.04em;
}

.text-steel { color: var(--steel-text); }
.text-cobalt { color: var(--cobalt); }
