/* Approved team-focused homepage copy, scoped to this page only. */
.hero h1 {
  max-width: 1050px;
  font-size: clamp(48px, 4.9vw, 76px);
  line-height: 1.02;
  letter-spacing: -.04em;
  word-spacing: normal;
  text-wrap: balance;
}
.hero h1 span { display: block; }
.hero-content > p { max-width: 650px; }
.hero-shade {
  background: linear-gradient(90deg, rgba(0,0,0,.9) 0%, rgba(0,0,0,.77) 48%, rgba(0,0,0,.45) 75%, rgba(0,0,0,.18) 100%);
}
.section-intro { align-items: start; }
.section-intro h2 { max-width: 850px; text-wrap: balance; }
.section-intro > p { flex: 0 0 330px; }
.service { display: flex; flex-direction: column; }
.service-image { flex-shrink: 0; }
.service-body { flex: 1; }
.service-body p { min-height: 0; }

#aanpak .poster-heading { grid-template-columns: 1.25fr 1fr; }
#aanpak .poster-heading h2 { letter-spacing: -.04em; }
#aanpak .poster-heading h2 span {
  display: block;
  max-width: 18ch;
  margin-top: 24px;
  font-size: clamp(32px, 3.6vw, 52px);
  line-height: 1.08;
  letter-spacing: -.035em;
  text-wrap: balance;
}
#aanpak .poster-intro { max-width: 360px; padding-right: 0; }
#aanpak .poster-intro > p:last-child { font-size: 18px; line-height: 1.7; }

.homepage-copy-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: start;
}
.homepage-copy-grid h2 {
  max-width: 630px;
  margin: 0;
  font-size: clamp(34px, 3.5vw, 50px);
  line-height: 1.08;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.homepage-copy-grid > p { max-width: 65ch; font-size: 17px; line-height: 1.75; }
.trainer-voice { margin-top: 56px; padding-top: 48px; border-top: 1px solid #455048; }
.trainer-voice > p { color: #d8dfda; }
.employer { background: var(--soft); }
.employer p { color: #474d49; }
.employer a { color: var(--green-text); }
.booking-intro h2 { font-size: clamp(38px, 4vw, 58px); letter-spacing: -.035em; text-wrap: balance; }
.booking-scan { margin-top: 22px; font-size: 16px; }
.booking-scan a { display: inline-block; min-height: 44px; padding-block: 8px; font-weight: 650; }

@media (max-width: 1150px) {
  .section-intro > p { flex-basis: 280px; }
  .homepage-copy-grid { gap: 40px; }
}
@media (max-width: 900px) {
  .hero h1 { font-size: clamp(42px, 6.6vw, 60px); }
  .section-intro > p { max-width: 650px; }
  .homepage-copy-grid { grid-template-columns: 1fr; gap: 24px; }
  .trainer-voice { margin-top: 43px; padding-top: 36px; }
  .booking-intro { grid-template-columns: 1fr; gap: 24px; align-items: start; }
  .booking-intro h2 { max-width: 850px; }
  .booking-intro > div { max-width: 650px; }
}
@media (max-width: 800px) {
  #aanpak .poster-heading { grid-template-columns: 1fr; }
  #aanpak .poster-intro { display: block; max-width: 560px; }
}
@media (max-width: 600px) {
  .hero h1 { font-size: clamp(32px, 8.7vw, 49px); line-height: 1.06; }
  .hero h1 span + span { margin-top: .25em; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .button { min-height: 52px; font-size: 15px; white-space: normal; }
  .hero-content > p { font-size: 16px; }
  .section-intro h2 { letter-spacing: -.035em; }
  .homepage-copy-grid h2 { font-size: 34px; }
  .homepage-copy-grid > p { font-size: 16px; }
  .trainer-voice { margin-top: 36px; padding-top: 30px; }
  .booking-intro h2 { font-size: 38px; }
  .booking-scan { font-size: 15px; }
  #aanpak .poster-heading h2 { font-size: clamp(64px, 15vw, 90px); }
  #aanpak .poster-heading h2 span { margin-top: 18px; font-size: 34px; }
  #aanpak .poster-intro > p:last-child { font-size: 16px; }
}
@media (max-width: 360px) {
  .homepage-copy-grid h2, .booking-intro h2 { font-size: 31px; }
  #aanpak .poster-heading h2 span { font-size: 30px; }
}
