/* ==========================================================================
   ELEMENTS · TYPOGRAPHY — bare text elements. Headings are Newsreader, set
   tight and dark; body prose carries the reading rhythm. "Serif speaks": no
   classes needed for a plain article to read like a published piece.
   ========================================================================== */

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-reading);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  color: var(--text);
}

h1 { font-size: var(--text-2xl); font-weight: var(--weight-bold); }
h2 { font-size: var(--text-xl); }
h3 { font-size: var(--text-lg); line-height: var(--leading-snug); }
h4 { font-size: var(--text-md); line-height: var(--leading-snug); }

/* h5 / h6 step down into furniture: grotesque small-caps labels */
h5, h6 {
  font-family: var(--font-furniture);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-normal);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--text-secondary);
}
h5 { font-size: var(--text-xs); }
h6 { font-size: var(--text-2xs); }

p { font-size: var(--text-base); }
p + p { margin-top: var(--gap-prose); }

small { font-size: var(--text-sm); }

strong, b { font-weight: var(--weight-bold); }
em, i, cite { font-style: italic; }

mark {
  background: var(--highlight);
  color: var(--text);
  padding: 0 0.12em;
}

sub, sup { font-size: 0.72em; line-height: 0; }
sup { vertical-align: 0.55em; }
sub { vertical-align: -0.2em; }

abbr[title] {
  text-decoration: underline dotted var(--rule-strong);
  text-underline-offset: 0.18em;
  cursor: help;
}

blockquote {
  font-style: italic;
  color: var(--text-secondary);
  padding-left: var(--space-md);
  border-left: 2px solid var(--accent-keyline);
}

hr {
  border: 0;
  height: 1px;
  background: var(--rule);
  margin-block: var(--space-lg);
}

dt { font-family: var(--font-furniture); font-weight: var(--weight-semibold); }
dd { color: var(--text-secondary); }
