/* Final presentation polish: keeps the site premium without poster-sized type. */
h1 {
  max-width: 900px;
  font-size: clamp(36px, 3.65vw, 54px);
  line-height: 1.06;
}

h2 {
  font-size: clamp(27px, 2.65vw, 38px);
  line-height: 1.12;
}

h3 {
  font-size: clamp(19px, 1.65vw, 23px);
  line-height: 1.22;
}

p {
  font-size: 15px;
  line-height: 1.68;
}

.topbar {
  min-height: 72px;
}

.hero,
.content-hero {
  gap: clamp(30px, 5vw, 64px);
  padding: clamp(54px, 6.5vw, 86px) clamp(20px, 5vw, 72px);
}

.hero p,
.content-hero p {
  font-size: clamp(15px, 1.1vw, 18px);
  line-height: 1.68;
}

.section {
  padding: clamp(58px, 7vw, 88px) clamp(20px, 5vw, 72px);
}

.section-head,
.split,
.form-layout,
.contact-grid {
  gap: clamp(26px, 5vw, 62px);
  margin-bottom: 30px;
}

.cards article,
.mock-form,
.contact-panel,
.calendar,
.journal article,
.content-card,
.route-card,
.briefing-panel,
.brief-card,
.lead-route,
.lead-form {
  padding: clamp(22px, 2.4vw, 32px);
}

.brief-card {
  min-height: 280px;
}

.content-hero {
  grid-template-columns: minmax(0, 0.92fr) minmax(300px, 0.45fr);
  align-items: center;
}

.content-hero h1,
.content-hero .lead-intro h1 {
  max-width: 820px;
  font-size: clamp(34px, 3.35vw, 50px);
  line-height: 1.06;
}

.theme-journal h1,
.theme-journal .content-hero h1,
.theme-journal.claims-home .hero h1 {
  max-width: 980px;
  font-size: clamp(36px, 3.9vw, 56px);
  line-height: 1.05;
}

.claims-home .hero h1,
.theme-protocol.claims-home .hero h1 {
  max-width: 820px;
  font-size: clamp(34px, 3.5vw, 52px);
  line-height: 1.06;
}

.theme-protocol .hero {
  min-height: 620px;
}

.theme-protocol .content-hero {
  min-height: auto;
}

.theme-journal .hero {
  padding-top: clamp(56px, 7vw, 88px);
  padding-bottom: clamp(56px, 7vw, 88px);
}

.theme-journal.claims-home .hero {
  grid-template-columns: minmax(0, 0.92fr) minmax(320px, 0.42fr);
  align-items: center;
}

.theme-journal.claims-home .hero-card {
  max-width: none;
  margin-top: 0;
}

.path-cards,
.why-grid,
.proof-grid,
.lead-routes,
.content-grid,
.route-grid {
  gap: 16px;
}

.path-card,
.proof-card,
.content-card,
.route-card,
.lead-route {
  min-width: 0;
}

.module {
  gap: clamp(20px, 3vw, 42px);
  padding: clamp(24px, 3vw, 38px) 0;
}

.research-list {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 4px;
}

.research-row {
  padding: clamp(26px, 3vw, 38px) clamp(22px, 3.2vw, 42px);
}

.research-row h3 {
  max-width: 520px;
  overflow-wrap: anywhere;
}

.module-number {
  font-size: clamp(34px, 3.4vw, 54px);
}

.timeline-step {
  min-height: 180px;
  padding: 22px;
}

.lead-form-wrap {
  grid-template-columns: minmax(0, 0.72fr) minmax(380px, 1fr);
}

.lead-form-copy {
  top: 18px;
}

.lead-form-copy h2 {
  font-size: clamp(28px, 2.7vw, 40px);
}

.lead-form input,
.lead-form select,
.lead-form textarea,
.rich-form input,
.rich-form select,
.rich-form textarea {
  font-size: 14px;
}

.review-shell h1 {
  font-size: clamp(36px, 3.7vw, 54px);
}

.review-card h2 {
  font-size: clamp(26px, 2.35vw, 34px);
}

@media (max-width: 1080px) {
  .content-hero,
  .hero {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .theme-protocol .hero {
    min-height: auto;
  }

  .theme-journal.claims-home .hero {
    grid-template-columns: 1fr;
  }

  .theme-journal.claims-home .hero-card {
    max-width: 760px;
    margin-top: 0;
  }

  .lead-form-wrap {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  h1,
  .content-hero h1,
  .content-hero .lead-intro h1,
  .claims-home .hero h1,
  .theme-journal h1,
  .theme-journal .content-hero h1,
  .theme-journal.claims-home .hero h1 {
    font-size: clamp(30px, 8.4vw, 38px);
    line-height: 1.08;
  }

  h2,
  .lead-form-copy h2 {
    font-size: clamp(24px, 6.4vw, 32px);
  }

  .hero,
  .content-hero,
  .section {
    padding-inline: 20px;
  }

  .hero,
  .content-hero {
    padding-top: 44px;
    padding-bottom: 54px;
  }

  .section {
    padding-top: 52px;
    padding-bottom: 58px;
  }

  .brief-card,
  .lead-route,
  .lead-form,
  .content-card,
  .route-card {
    padding: 20px;
  }

  .research-row {
    padding: 24px 20px;
  }
}
