/* ── Typography ──────────────────────────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-sans);
  font-weight: var(--weight-bold);
  line-height: var(--leading-tight);
  color: var(--color-text);
  letter-spacing: -0.02em;
}
h1 { font-size: clamp(var(--text-3xl), 5vw, var(--text-5xl)); }
h2 { font-size: clamp(var(--text-2xl), 3.5vw, var(--text-4xl)); }
h3 { font-size: clamp(var(--text-xl),  2.5vw, var(--text-2xl)); letter-spacing: -0.01em; }
h4 { font-size: var(--text-lg);  font-weight: var(--weight-semi); }
h5 { font-size: var(--text-base); font-weight: var(--weight-semi); }
h6 { font-size: var(--text-sm);  font-weight: var(--weight-semi); letter-spacing: 0.04em; text-transform: uppercase; }

p {
  font-size: var(--text-base);
  line-height: var(--leading-relaxed);
  color: var(--color-text-2);
}
p + p { margin-top: var(--space-4); }

.text-sm     { font-size: var(--text-sm); }
.text-xs     { font-size: var(--text-xs); }
.text-lg     { font-size: var(--text-lg); }
.text-muted  { color: var(--color-text-3); }
.text-center { text-align: center; }
.text-accent { color: var(--color-accent); }
.font-bold   { font-weight: var(--weight-bold); }
.font-semi   { font-weight: var(--weight-semi); }
.font-medium { font-weight: var(--weight-medium); }

/* Layout Helpers */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}
.section {
  padding-block: var(--section-pad);
}
.section--sm {
  padding-block: var(--section-pad-sm);
}
.section--lg {
  padding-block: var(--section-pad-lg);
}
/* Ensure no collapsed margin between page-header and a full-bleed section below */
.page-header + section,
.page-header + .cs-metrics-strip,
.page-header + .cs-results-strip,
.page-header + .booking-trust {
  /* keep the natural separation — padding already handles it */
}
.section-header {
  margin-bottom: var(--space-10);
}
.section-header h2 { margin-bottom: var(--space-3); }
.section-header p  { font-size: var(--text-base); color: var(--color-text-3); }
.section-header--center {
  margin-inline: auto;
  text-align: center;
}
.section-cta {
  margin-top: var(--space-12);
  display: flex;
  justify-content: center;
}

/* ── Smaller heading floors on narrow phones ─────────────────────────────── */
@media (max-width: 480px) {
  /* clamp() minimum floors can still be large on 320–375px screens */
  h1 { font-size: clamp(var(--text-2xl), 8vw, var(--text-4xl)); }
  h2 { font-size: clamp(var(--text-xl), 6vw, var(--text-3xl)); }
  h3 { font-size: clamp(var(--text-lg), 5vw, var(--text-2xl)); }
}
