.nav-cta {
  min-height: 48px;
  padding: 0 22px;
  display: flex;
  align-items: center;
}

.hero {
  grid-template-columns: minmax(420px, .9fr) minmax(620px, 1.1fr);
  gap: 46px;
}

.hero h1 {
  font-size: clamp(48px, 4.25vw, 62px);
  line-height: 1.06;
  letter-spacing: -.065em;
  text-wrap: wrap;
}

.hero h1 span,
.hero h1 em,
.section-heading h2 span,
.proof-copy h2 span,
.download h2 span {
  display: block;
  white-space: nowrap;
}

.section-heading h2 {
  font-size: clamp(40px, 4vw, 58px);
}

.proof-copy h2 {
  font-size: 38px;
}

.primary-cta {
  min-width: 320px;
  min-height: 70px;
  padding: 0 30px;
  border-radius: 18px;
  font-size: 19px;
}

.download > a {
  min-width: 360px;
  min-height: 82px;
  padding: 0 30px;
  border-radius: 19px;
}

.primary-cta,
.download > a,
.nav-cta {
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.primary-cta:hover,
.download > a:hover,
.nav-cta:hover {
  transform: translateY(-2px);
}

.primary-cta:active,
.download > a:active,
.nav-cta:active {
  transform: translateY(0);
}

@media (max-width: 1000px) {
  .hero {
    grid-template-columns: 1fr;
  }

  .hero-copy {
    max-width: 820px;
  }
}

@media (max-width: 640px) {
  .nav-cta {
    min-height: 44px;
    padding: 0 15px;
  }

  .hero h1 {
    font-size: clamp(39px, 11.7vw, 47px);
    letter-spacing: -.06em;
  }

  .section-heading h2 {
    font-size: clamp(31px, 9.2vw, 38px);
  }

  .proof-copy h2,
  .download h2 {
    font-size: clamp(30px, 8.8vw, 34px);
  }

  .primary-cta,
  .download > a {
    min-width: 0;
    width: 100%;
    min-height: 74px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .primary-cta,
  .download > a,
  .nav-cta {
    transition: none;
  }
}
