/* ============================================================
   Type utilities — the nine steps, as classes.
   Consumes tokens.css. Nothing here invents a value.

   Width law: expanded is a display property. .t-lockup,
   .t-display, .t-head and .t-figure carry width; everything
   below them stays at text width. Never mix.
   ============================================================ */

.t-lockup,
.t-display,
.t-head,
.t-figure {
  font-weight: var(--kdb-wght-heavy);
  text-wrap: balance;
}

.t-lockup {
  font-variation-settings: "wdth" var(--kdb-wdth-lockup);
  font-size: var(--kdb-size-lockup);
  line-height: var(--kdb-leading-lockup);
  letter-spacing: var(--kdb-track-lockup);
  text-transform: uppercase;
  text-wrap: nowrap;
}

.t-display {
  font-variation-settings: "wdth" var(--kdb-wdth-display);
  font-size: var(--kdb-size-display);
  line-height: var(--kdb-leading-display);
  letter-spacing: var(--kdb-track-display);
}

.t-head {
  font-variation-settings: "wdth" var(--kdb-wdth-head);
  font-size: var(--kdb-size-head);
  line-height: var(--kdb-leading-head);
  letter-spacing: var(--kdb-track-head);
}

.t-figure {
  font-variation-settings: "wdth" var(--kdb-wdth-display);
  font-size: var(--kdb-size-figure);
  line-height: var(--kdb-leading-figure);
  letter-spacing: var(--kdb-track-head);
  font-variant-numeric: lining-nums tabular-nums;
}

.t-deck {
  font-size: var(--kdb-size-deck);
  line-height: var(--kdb-leading-deck);
  letter-spacing: var(--kdb-track-deck);
  max-width: var(--kdb-measure-deck);
}

.t-body {
  font-size: var(--kdb-size-body);
  line-height: var(--kdb-leading-body);
  letter-spacing: var(--kdb-track-body);
  max-width: var(--kdb-measure-body);
}

.t-small {
  font-size: var(--kdb-size-small);
  line-height: var(--kdb-leading-tight);
}

.t-caption {
  font-size: var(--kdb-size-caption);
  line-height: var(--kdb-leading-tight);
  color: var(--kdb-text-muted);
  max-width: var(--kdb-measure-caption);
}

.t-label,
.t-micro {
  font-weight: var(--kdb-wght-medium);
  text-transform: uppercase;
  line-height: var(--kdb-leading-flat);
  color: var(--kdb-text-muted);
}

.t-label {
  font-size: var(--kdb-size-label);
  letter-spacing: var(--kdb-track-caps);
}

.t-micro {
  font-size: var(--kdb-size-micro);
  letter-spacing: var(--kdb-track-caps-wide);
}

/* Emphasis is 600, never 700. 700 belongs to display alone. */
strong, b, .t-strong {
  font-weight: var(--kdb-wght-medium);
  color: var(--kdb-text-primary);
}

/* Tables --------------------------------------------------- */

.t-table { width: 100%; border-collapse: collapse; }
.t-table th,
.t-table td {
  /* Phase 8: was 0.5rem 0.6rem. 9.6px is on no scale — the kind of
     value the auditor exists to catch. */
  padding: var(--kdb-table-row-pad) var(--kdb-space-tight);
  text-align: right;
  border-bottom: 1px solid var(--kdb-border-faint);
}
.t-table th:first-child,
.t-table td:first-child { text-align: left; padding-left: 0; }
.t-table th:last-child,
.t-table td:last-child { padding-right: 0; }
.t-table thead th {
  font-size: var(--kdb-size-label);
  letter-spacing: var(--kdb-track-caps);
  text-transform: uppercase;
  font-weight: var(--kdb-wght-medium);
  color: var(--kdb-text-muted);
  border-bottom-color: var(--kdb-border-strong);
}
.t-table tbody td { font-size: var(--kdb-size-small); }
.t-table tbody tr:last-child td {
  border-bottom: 1px solid var(--kdb-border-strong);
  font-weight: var(--kdb-wght-medium);
}
