/* Citiview Studios — one vertical rhythm for every page (loads last).
   Each top-level section carries the SAME gap above it and nothing below, so gaps never stack. */
:root { --sp: clamp(56px, 6vw, 96px); }

main > section,
main > section.section,
main > section.section--tight { padding: var(--sp) 0 0; }
main > section:last-child { padding-bottom: var(--sp); }

/* Full-bleed media blocks set their own frame */
main > section.hero,
main > section.ghero { padding: 0; }
main > section.phero { padding: calc(var(--header-h) + clamp(40px, 5vw, 80px)) 0 0; }
main > section.phero:last-child { padding-bottom: var(--sp); }

/* Background bands follow the same rule; no extra borders or margins */
main > section.platform { border-block: 0; }

/* Pinned franchise rail fills the screen on desktop; keep it flush */
@media (min-width: 901px) {
  main > section#series { padding: calc(var(--header-h) + 28px) 0 calc(var(--sp) * .5); margin-top: calc(var(--sp) * .5); }
}

/* Headings sit a consistent distance above their content */
.sec-head { margin-bottom: clamp(24px, 2.8vw, 40px); }
.stats { margin-top: clamp(36px, 4vw, 56px); }
.mosaic-wrap { margin-top: clamp(36px, 4vw, 56px); }

/* The hero no longer has a marquee under it: give the first section a clean start */
.hero + section { padding-top: var(--sp); }
.footer { padding-top: clamp(48px, 5vw, 80px); }
.footer__mark { margin-top: clamp(32px, 4vw, 56px); }

@media (max-width: 640px) {
  :root { --sp: 48px; }
}

/* The map page: map follows its title directly */
main > section.phero + section.dest { padding-top: calc(var(--sp) * .45); }
