/* Readable type scale. Load after the original stylesheet. */
:root {
  --type-body: clamp(1.125rem, 1.05rem + .3vw, 1.25rem);
  --type-support: 1rem;
  --type-heading: clamp(2rem, 1.35rem + 2.2vw, 3rem);
}

body { font-size: var(--type-body); line-height: 1.6; }
button, input, select, textarea { font: inherit; }
p { text-wrap: pretty; }
h1, h2, h3 { text-wrap: balance; }

.hero h1 {
  font-size: clamp(2.125rem, 1rem + 4.2vw, 4.5rem);
  line-height: 1.14;
  letter-spacing: -.045em;
  max-width: 1100px;
}
.section h2, .join-section h2 {
  font-size: var(--type-heading);
  line-height: 1.2;
  letter-spacing: -.035em;
}
.hero .lead {
  font-size: clamp(1.125rem, .95rem + .55vw, 1.375rem);
  line-height: 1.65;
  max-width: 46rem;
}
.body-copy, .community-copy p, .testimonial-heading > p,
.join-section > p:not(.eyebrow), .legal p {
  font-size: var(--type-body);
  line-height: 1.7;
  max-width: 62ch;
}
.testimonial-heading > p { max-width: 34ch; }
.join-section > p:not(.eyebrow) { margin-inline: auto; }

.eyebrow, .panel-top, .event-kicker, .caption-label {
  font-size: .9375rem;
  line-height: 1.5;
  letter-spacing: .065em;
}
.pill { padding: 8px 17px; }
.header nav { font-size: .9375rem; letter-spacing: .015em; }
.button, .hero-cta, .small-cta, .join-section .button {
  font-size: 1rem;
  line-height: 1.45;
  letter-spacing: .015em;
}
.text-link, .hero-secondary, .event-note > a, .footer-links {
  font-size: 1rem;
  line-height: 1.55;
}

.benefits h2 { font-size: 1.25rem; line-height: 1.35; }
.benefits p, .check-row p, .learning-step p, .event-note > p {
  font-size: 1.0625rem;
  line-height: 1.65;
}
.check-row strong, .learning-step h3 {
  font-size: 1.125rem;
  line-height: 1.45;
  letter-spacing: .015em;
}
.learning-step > span { font-size: 2rem; }
.event-note h3 {
  font-size: clamp(1.875rem, 1.5rem + 1vw, 2.5rem);
  line-height: 1.25;
  letter-spacing: -.03em;
}
.event-note dl div { font-size: 1rem; line-height: 1.55; }
.testimonial-caption h3 { font-size: 1.25rem; letter-spacing: .02em; }
.testimonial-caption a { font-size: 1rem; }
.video-load-label { font-size: .9375rem; letter-spacing: .04em; }
.workshop-location { font-size: .9375rem; letter-spacing: .05em; }
.workshop-overlay strong {
  font-size: clamp(1.375rem, 1rem + 1.3vw, 2rem);
  line-height: 1.3;
  letter-spacing: -.025em;
}
.watch-label { font-size: 1rem; line-height: 1.5; }
.video-duration { font-size: 1rem; line-height: 1.4; }
.film-caption { font-size: 1rem; line-height: 1.5; }

.faq-list summary { font-size: 1.125rem; line-height: 1.5; }
.faq-list p { font-size: 1.0625rem; line-height: 1.75; max-width: 65ch; }
.faq-list summary span { flex-shrink: 0; font-size: 1.5rem; }

/* Necessary disclosures should remain legible, never turn into fine print. */
.preview-note, .workshop-privacy, .hero-foot, .panel-note,
.risk-note, .risk-note strong, .risk-note p, .footer p, .footer > span {
  font-size: var(--type-support);
  line-height: 1.65;
}
.media-service-note, .join-section .destination-note {
  font-size: var(--type-support) !important;
  line-height: 1.65;
  max-width: 70ch;
}
.hero-foot { max-width: 60ch; margin-inline: auto; }
.risk-note { gap: 26px; }
.risk-note strong { letter-spacing: .035em; }
.legal h1 { font-size: clamp(2rem, 1.5rem + 2vw, 3rem); }
.legal h2 { font-size: 1.5rem; line-height: 1.35; }

@media (max-width: 1050px) {
  .header nav { font-size: .9375rem; gap: 18px; }
  .small-cta { font-size: 1rem; }
  .header { flex-wrap: wrap; }
}

@media (max-width: 700px) {
  .hero h1 { font-size: clamp(2rem, 6.8vw, 2.75rem); line-height: 1.18; }
  .section h2, .join-section h2 { font-size: clamp(1.875rem, 6.1vw, 2.5rem); }
  .hero .lead { font-size: 1.125rem; line-height: 1.65; }
  .eyebrow, .event-kicker, .panel-top { font-size: .9375rem; }
  .header nav { font-size: .9375rem; gap: 12px; flex-wrap: wrap; }
  .small-cta { font-size: .9375rem; padding-inline: 13px; }
  .benefits h2 { font-size: 1.125rem; }
  .benefits p { font-size: 1.0625rem; }
  .workshop-location { font-size: .875rem; top: 14px; left: 14px; }
  .workshop-overlay strong { font-size: 1.375rem; max-width: 260px; }
  .watch-label { font-size: .9375rem; }
  .workshop-privacy { padding: 12px 16px 16px; }
  .film-caption { flex-wrap: wrap; font-size: 1rem; }
  .video-duration { font-size: .9375rem; }
  .hero-cta, .join-section .button { font-size: 1rem; }
  .testimonial-heading > p { font-size: 1.125rem; }
  .testimonial-caption h3 { font-size: 1.25rem; }
  .testimonial-caption a { font-size: 1rem; }
  .faq-list summary { font-size: 1.125rem; }
  .risk-note p { font-size: 1rem; }
  .footer-links { font-size: 1rem; }
}
