/* Supporting pages follow their content instead of filling one screen per
   section. Homepage heroes and their existing presentation remain separate. */
body main:not(.home-page) > :is(.section, .cv-section),
body main:not(.home-page) > .program-detail-list > .program-detail-row {
  height: auto;
  min-height: 0;
  max-height: none;
  padding-block: clamp(40px, 4vw, 64px);
}

/* All four contact pages share this structure. A concise opening brings
   visitors to the inquiry sooner while retaining the photo and text motion. */
body main:not(.home-page):has(> .contact-section) > :is(.inner-hero, .inner-hero.compact) {
  min-height: 0;
}

body main:not(.home-page):has(> .contact-section) > .inner-hero .inner-hero-copy {
  padding-block: 40px;
}

body main:not(.home-page):has(> .contact-section) .business-breadcrumbs {
  margin-bottom: 20px;
}

body main:not(.home-page):has(> .contact-section) > :is(.inner-hero, .inner-hero.compact) .inner-hero-copy h1 {
  font-size: clamp(2.125rem, 3.4vw, 3.25rem);
  line-height: 1.12;
}

body main:not(.home-page):has(> .contact-section) .inner-hero-description {
  margin-top: 18px;
}

body main:not(.home-page):has(> .contact-section) .inner-hero-actions {
  margin-top: 22px;
}

/* Sidebar cards keep their natural height alongside longer inquiry forms. */
body main:not(.home-page) > .contact-section .contact-grid {
  align-items: start;
}

body main:not(.home-page) > .contact-section .contact-aside {
  align-self: start;
  align-content: start;
}

body main:not(.home-page):has(> .contact-section) > .closing-cta {
  min-height: 0;
}

@media (max-width: 680px) {
  body main:not(.home-page) > :is(.section, .cv-section),
  body main:not(.home-page) > .program-detail-list > .program-detail-row {
    padding-block: 32px;
  }

  body main:not(.home-page):has(> .contact-section) > .inner-hero .inner-hero-copy {
    padding-block: 28px 32px;
  }
}
