/* Shared spacing for content sections; heroes, full-bleed galleries and closing
   photo banners keep their own layout. Loaded after each page's stylesheet. */
:root {
  --site-section-space: 40px;
  --site-section-intro-gap: 32px;
  --site-section-controls-gap: 24px;
}

@media (max-width: 1024px) {
  :root { --site-section-space: 32px; --site-section-intro-gap: 28px; --site-section-controls-gap: 20px; }
}

@media (max-width: 640px) {
  :root { --site-section-space: 24px; --site-section-intro-gap: 24px; --site-section-controls-gap: 16px; }
}

/* Some legacy pages use important padding declarations. Keep the override
   restricted to explicitly marked top-level sections, never nested cards. */
body [data-section-spacing] {
  padding-block: var(--site-section-space) !important;
  margin-block: 0;
  height: auto;
  min-height: 0;
}

/* Account for visible type edges and content that extends beyond its wrapper.
   The homepage has its own equivalent enhancement. */
body[data-spacing-enhanced] [data-section-spacing] {
  padding-top: var(--section-padding-top, var(--site-section-space)) !important;
  padding-bottom: var(--section-padding-bottom, var(--site-section-space)) !important;
}

/* Intro wrappers must not add a second layer of section padding. */
body [data-section-spacing] > :is(.kn-editorial-intro, .sl-editorial-intro) {
  padding-block: 0 var(--site-section-intro-gap);
}

body [data-section-spacing] > :is(.kn-chapter-intro, .sl-chapter-intro) {
  padding-block: var(--site-section-space) var(--site-section-intro-gap);
}

body .about-intro[data-section-spacing] > .about-intro__grid {
  padding-block: 0;
  min-height: 0;
}

/* The Educational FAQ shell carries padding in addition to its section. */
.service-page [data-service-faq][data-section-spacing] > .edu-page-shell {
  padding-block: 0;
}

/* The home expertise band previously enforced a 402px minimum height. */
body #why-chale[data-section-spacing] {
  height: auto;
  min-height: 0;
}

/* Georgia's journey controls already occupy a header-aware viewport. Allocate
   the closing space inside that viewport so all controls still fit together. */
body .geo-journeys-section[data-section-spacing] {
  padding-bottom: 0 !important;
}

body[data-spacing-enhanced] .geo-journeys-section[data-section-spacing] {
  padding-bottom: 0 !important;
}

body .geo-journeys-section[data-section-spacing] > .geo-journey-view {
  padding-bottom: var(--site-section-space);
}

/* Native details reserve no space for answers until opened. The outer FAQ
   sections no longer need the previous fixed heights. */
body [data-section-spacing] > :is(.shell, .holiday-shell, .delegation-shell,
  .mice-shell, .ie-shell, .wd-faq-shell, .geo-faq-shell, .container) {
  margin-block: 0;
}

/* Keep heading-to-card and slider-control gaps consistent within service pages. */
.service-page :is(.holiday-heading, .delegation-heading, .mice-heading, .ie-heading,
  .wd-related-header) { margin-bottom: var(--site-section-intro-gap); }
.service-page :is(.holiday-destination-scroll, .delegation-destination-scroll,
  .mice-destination-scroll, .ie-destination-scroll, .wd-destination-scroller,
  .edu-destination-rail, .holiday-tabs, .delegation-tabs, .mice-tabs, .ie-tabs) {
  margin-top: var(--site-section-intro-gap);
}
.service-page :is(.service-destination-nav, .wd-related-grid, .edu-services-grid) {
  margin-top: var(--site-section-controls-gap);
}
.service-page :is(.wd-specialisation-grid, .wd-service-grid) { margin-top: var(--site-section-intro-gap); }

/* Shorten large editorial pauses without changing the card or collage layout. */
.about-page .who__opening,
.about-page .people-stack,
.about-page .destination-mini-grid { margin-top: var(--site-section-intro-gap); }
.about-page .who__proof { padding-top: var(--site-section-intro-gap); }
.georgia-page .geo-journeys-section > header > p:last-child { margin-top: var(--site-section-intro-gap); }
.georgia-page .geo-network-section > .geo-reveal:last-child > p:last-child { margin-bottom: 0; }
.kn-page .kn-chapter-intro,
.sl-page .sl-chapter-intro { padding-top: var(--site-section-space); }
