.candidate-static-fallback .candidate-hero {
  min-height: 100vh;
  padding-top: 96px;
}

/* Candidate scheduling is conversion-critical. Keep every section visible even
   when Safari delays IntersectionObserver during navigation or cache restore,
   including landscape iPhone widths above the ordinary phone breakpoint. */
.candidate-page [data-reveal] {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
  transition-delay: 0s !important;
}

@media (max-width: 760px) {
  .candidate-hero {
    padding-top: 88px;
    padding-bottom: 56px;
  }

  .candidate-hero-grid {
    gap: 30px;
  }

  .candidate-package-card {
    width: 100%;
  }
}

@media (max-width: 420px) {
  .candidate-hero-copy h1 {
    font-size: clamp(2.8rem, 14vw, 3.75rem);
    line-height: .98;
  }

  .candidate-lead {
    font-size: 1rem;
  }

  .candidate-package-card,
  .candidate-footprint-card {
    padding: 25px 22px;
  }

  .candidate-package-card dl div {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .candidate-package-card dd {
    text-align: left;
  }
}
