/* The viewport is a minimum, so short windows and zoom never compress content. */
main > section.section,
footer.footer.closing {
  height: auto;
  min-height: 100svh;
}

main > section.section > .wrap,
footer.footer.closing > .wrap {
  height: auto;
}

main > section.section > .wrap > * {
  flex-shrink: 0;
}

/* Keep the closing invitation and the directory in separate intrinsic rows. */
footer.footer.closing {
  display: block;
}

footer.footer.closing > .wrap {
  display: flex;
  flex-direction: column;
  gap: var(--s-8);
}

footer.footer.closing .closing__cta,
footer.footer.closing .closing__links {
  flex: 0 0 auto;
  min-height: auto;
}

/* The photo hero also grows when its copy exceeds the available window height. */
main > section.hero.hero--photo {
  height: auto;
  min-height: 100svh;
}

.hero.hero--photo > .wrap {
  display: block;
  height: auto;
}

.hero.hero--photo > .wrap > .hero-text {
  height: auto;
  min-height: max(0px, calc(100svh - var(--nav) - var(--photo, 0px) - var(--hgap) - var(--hpadb) - var(--bar)));
}

@media (max-width: 639px) {
  footer.footer.closing > .wrap {
    gap: var(--s-7);
  }
}
