/* Site-wide typography rhythm, relaxed heading tracking (load after page CSS, before hm-chrome) */

:root {
  --hm-track-display: -0.02em;
  --hm-track-heading: -0.015em;
  --hm-track-title: -0.008em;
  --hm-track-stat: -0.025em;
  --hm-leading-display: 1.06;
  --hm-leading-heading: 1.1;
  --hm-leading-title: 1.15;
  --hm-leading-body: 1.65;
  --hm-word-spacing: 0.02em;
}

.hm-page,
.hm-page--onboarding,
.legal-page {
  word-spacing: var(--hm-word-spacing);
}

/* Navbar is outside .hm-page, keep chrome typography independent */
header.hm-site-header,
header.hm-site-header * {
  word-spacing: normal;
}

/* Large display / hero headlines */
.hm-page :is(
  .hm-hero-display,
  .hm-block-head__title,
  .hm-finale-title,
  .hm-kse-waitlist-title,
  .hm-sv-cine__title,
  .hm-sv-mosaic__title,
  .hm-sv-finale__title,
  .hm-sv-protocol__title,
  .hm-prod-hero__title,
  .hm-prod-checks__title,
  .hm-prod-dash__title,
  .hm-pr-finale__title,
  .hm-pr-faq__title,
  .hm-ct-spine__title,
  .hm-ct-finale__title,
  h1
),
.hm-page--onboarding :is(.ob-hero-panel h2, .ob-card-header h1),
.legal-page h1 {
  letter-spacing: var(--hm-track-display) !important;
  line-height: var(--hm-leading-display) !important;
}

/* Section headings */
.hm-page :is(
  .hm-tile-title,
  .hm-sv-tile__title,
  .hm-sv-tile__bridge-title,
  .hm-prod-check__title,
  .hm-pr-addon__title,
  .hm-ct-form-panel__title,
  .hm-ct-dossier__title,
  .hm-report-cta__title,
  h2
),
.legal-page h2 {
  letter-spacing: var(--hm-track-heading) !important;
  line-height: var(--hm-leading-heading) !important;
}

.hm-page h3,
.hm-page--onboarding h3,
.legal-page h3 {
  letter-spacing: var(--hm-track-title) !important;
  line-height: var(--hm-leading-title) !important;
}

/* Lead / intro copy */
.hm-page :is(
  .hm-block-head__sub,
  .hm-hero-sub,
  .hm-sv-cine__lead,
  .hm-sv-mosaic__lead,
  .hm-prod-hero__sub,
  .hm-ct-form-panel__lead
) {
  letter-spacing: 0.012em;
  word-spacing: var(--hm-word-spacing);
  line-height: var(--hm-leading-body);
}

/* Kickers / eyebrows, already spaced; avoid crushing */
.hm-page .hm-hero-kicker {
  letter-spacing: 0.16em;
  word-spacing: 0.04em;
}

/* Onboarding side panel */
.hm-page--onboarding .ob-hero-panel h2 {
  letter-spacing: var(--hm-track-display);
  line-height: var(--hm-leading-heading);
}

.hm-page--onboarding .ob-hero-panel p,
.hm-page--onboarding .ob-lead {
  letter-spacing: 0.01em;
  word-spacing: var(--hm-word-spacing);
  line-height: var(--hm-leading-body);
}
