/* One owner for each section boundary: the following section supplies the gap.
   Applied only to public page sections; nested cards/forms/heroes keep their layout. */
.page-rhythm {
  --section-gap: 96px;
  --spacing-section: var(--section-gap);
}
@media (max-width:1023.98px) { .page-rhythm { --section-gap: 64px; } }
@media (max-width:639.98px) { .page-rhythm { --section-gap: 48px; } }

body.page-rhythm main > :is(.ambition,.stairs,.selected-work,.insights,.booking-section,.article-body,.next-project,leadpilots-founder-section) {
  margin-top: 0;
  margin-bottom: 0;
  padding-top: var(--section-gap);
  padding-bottom: 0;
}
body.page-rhythm main > :is(.selected-work,.insights) > .container:first-child {
  padding-top: 0;
}
/* Trailing heading and outer row padding must not add another section gap. */
body.page-rhythm main > .ambition > .container:last-child > h2:last-child,
body.page-rhythm main > .article-body > :last-child {
  margin-bottom: 0;
}
body.page-rhythm main > .stairs > .container > .stairs-list > .stair-item:first-child {
  padding-top: 0;
}
body.page-rhythm main > .stairs > .container > .stairs-list > .stair-item:last-child,
body.page-rhythm main > .selected-work > .container > .stairs-list > .stair-item:last-child {
  padding-bottom: 0;
}
/* Photo/video sections own their internal height. The gap sits before their edge. */
body.page-rhythm main > .cta-section {
  margin-top: var(--section-gap);
  margin-bottom: 0;
}
body.page-rhythm main > .article-hero-img { margin-top: var(--section-gap); }
body.page-rhythm main > :is(.ambition,.stairs,.selected-work,.insights,.booking-section,.article-body,.next-project,leadpilots-founder-section):last-child {
  padding-bottom: var(--section-gap);
}
/* Explicit hooks cross the founder component's shadow boundary.
   Defaults in the portable component remain unchanged elsewhere. */
body.page-rhythm main > leadpilots-founder-section {
  --founder-outer-gap: 0px;
  --founder-top-space: 0px;
  --founder-bottom-space: 0px;
  --founder-min-height: 0px;
}
body.page-rhythm .legal-main { padding-block: var(--section-gap); }
body.page-rhythm .footer-conversation-grid {
  padding-top: var(--section-gap);
  padding-bottom: var(--section-gap);
  min-height: 0;
}

/* Override the homepage hero-adjacency rule with the same shared spacing. */
body.page-rhythm.home-page main > .ambition { padding-top: var(--section-gap); }
