/* Every page cover occupies exactly one viewport across all breakpoints. */
body > :is(.hero,.explore-hero,.exhibits-hero,.visit-hero) {
  box-sizing: border-box;
  position: relative;
  width: 100%;
  height: 100vh;
  height: 100svh;
  min-height: 0;
  margin-top: 0;
}
body > :is(.hero,.explore-hero,.exhibits-hero,.visit-hero) picture {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform: none;
}
body > :is(.hero,.explore-hero,.exhibits-hero,.visit-hero) :is(.hero-image,.carousel-image,.exhibits-hero-img,.visit-hero-img) {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: center bottom;
}
body > .explore-hero > .carousel,
body > .explore-hero .carousel-slide {
  height: 100%;
  min-height: 0;
}

/* Slightly shorter covers on phones; desktop/tablet remain full height. */
@media (max-width: 600px) {
  body > :is(.hero,.explore-hero,.exhibits-hero,.visit-hero) {
    height: 80vh;
    height: 80svh;
  }
}
