/* Tripper Ticket — type system. One H1 per page; logical hierarchy. */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--tt-font-heading);
  font-weight: var(--tt-fw-bold);
  line-height: var(--tt-lh-tight);
  color: var(--tt-color-text);
  text-wrap: balance;
}
h1 { font-size: var(--tt-fs-h1); letter-spacing: -0.02em; }
h2 { font-size: var(--tt-fs-h2); letter-spacing: -0.015em; }
h3 { font-size: var(--tt-fs-h3); }
h4 { font-size: var(--tt-fs-h4); font-weight: var(--tt-fw-semibold); }
h5 { font-size: var(--tt-fs-h5); font-weight: var(--tt-fw-semibold); }
h6 { font-size: var(--tt-fs-h6); font-weight: var(--tt-fw-semibold); }

p { max-width: 70ch; }
p + p { margin-top: var(--tt-space-16); }

.tt-display    { font-family: var(--tt-font-heading); font-weight: var(--tt-fw-bold); font-size: var(--tt-fs-display); line-height: var(--tt-lh-tight); letter-spacing: -0.025em; }
.tt-lead       { font-size: var(--tt-fs-body-lg); color: var(--tt-color-text-soft); line-height: var(--tt-lh-normal); }
.tt-small      { font-size: var(--tt-fs-small); }
.tt-caption    { font-size: var(--tt-fs-caption); color: var(--tt-color-text-soft); }
.tt-overline   { font-size: var(--tt-fs-caption); font-weight: var(--tt-fw-semibold); letter-spacing: 0.08em; text-transform: uppercase; color: var(--tt-color-primary); }

strong, b { font-weight: var(--tt-fw-semibold); }

/* --- Prose (rendered Gutenberg content: legal pages, blog articles) ------
   The global reset (`* { margin:0 }`) strips every browser default spacing
   rule, so raw the_content() output — headings, paragraphs, lists — has no
   vertical rhythm without this. Applies wherever admin-authored block
   content is rendered directly (single.php's .tt-article__body, page.php,
   page-about.php). Discovered as a real, silent gap: single.php has shipped
   since Milestone 4 with zero styling on its own content wrapper. */
.tt-prose { max-width: 70ch; }
.tt-prose > * + * { margin-block-start: var(--tt-space-24); }
.tt-prose h2, .tt-prose h3, .tt-prose h4 { margin-block-start: var(--tt-space-40); margin-block-end: var(--tt-space-4); }
.tt-prose h2 + *, .tt-prose h3 + *, .tt-prose h4 + * { margin-block-start: var(--tt-space-8); }
.tt-prose ul, .tt-prose ol { padding-inline-start: 1.25em; }
.tt-prose ul { list-style: disc; }
.tt-prose ol { list-style: decimal; }
.tt-prose li + li { margin-block-start: var(--tt-space-8); }
.tt-prose a { color: var(--tt-color-primary); text-decoration: underline; text-underline-offset: 2px; }
.tt-prose a:hover { color: var(--tt-color-primary-hover, var(--tt-color-primary)); }
.tt-prose em { color: var(--tt-color-text-soft); }
