/* ── Heading styles ── */
.text-h1 {
  font-family: var(--font-heading);
  font-size: var(--font-size-h1);
  font-weight: var(--font-weight-heading);
  line-height: var(--line-height-tight);
}

.text-h2 {
  font-family: var(--font-heading);
  font-size: var(--font-size-h2);
  font-weight: var(--font-weight-heading);
  line-height: var(--line-height-tight);
}

.text-h4 {
  font-family: var(--font-heading);
  font-size: var(--font-size-h4);
  font-weight: var(--font-weight-heading);
  line-height: var(--line-height-snug);
}

.text-h5 {
  font-family: var(--font-heading);
  font-size: var(--font-size-h5);
  font-weight: var(--font-weight-heading);
  line-height: var(--line-height-normal);
}

/* ── Body styles ── */
.text-lead {
  font-size: var(--font-size-lead);
  line-height: var(--line-height-normal);
}

.text-lg {
  font-size: var(--font-size-lg);
  line-height: var(--line-height-normal);
}

.text-md {
  font-size: var(--font-size-md);
  line-height: var(--line-height-normal);
}

.text-sm {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-normal);
}

.text-xs {
  font-size: var(--font-size-xs);
  line-height: var(--line-height-normal);
}

/* ── Label / overline ── */
.text-overline {
  font-family: var(--font-body);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-normal);
  letter-spacing: var(--letter-spacing-overline);
  text-transform: uppercase;
}

/* ── Utility modifiers ── */
.text-muted {
  opacity: 0.7;
}

.text-center {
  text-align: center;
}

/* Heading sizes respond to breakpoints via token overrides in tokens.css */

@media (max-width: 375px) {
  .text-lead { font-size: 1rem; }
}
