/* Keep a still image visible while desktop video loads and on smaller screens. */
.hero-media picture,
.hero-media video { position:absolute; inset:0; width:100%; height:100%; }
.hero-media picture img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
/* The media must never paint above the shade, headline or booking links. */
.hero { isolation:isolate; }
.hero-media { z-index:0; overflow:hidden; }
.hero-media video { z-index:1; object-fit:cover; }
.hero-shade { z-index:1; pointer-events:none; }
.hero-content,.hero-meta { z-index:2; }
.hero-media picture { z-index:0; }
/* Logo artwork is always contained; never stretch or crop the original files. */
.brand img,.footer-main img,.academy-partner-marks img,.hub-logo-only img {
  height:auto; object-fit:contain;
}
.brand { min-width:0; }
.footer-main img { max-width:min(260px,100%); flex:none; }
.hub-logo-only img { max-height:300px; }
.latest-release-mini img,.release-card img { height:auto; }
@media (max-width:767px) {
  .hero-media video { display:none; }
  .hero { height:auto; min-height:100svh; padding-block:105px 90px; }
  .hero-content { padding-top:0; }
  .hero-content h1 { font-size:clamp(42px,11vw,64px)!important; line-height:.96!important; overflow-wrap:normal; }
  .hero-copy { max-width:32rem; }
  .hero-meta { bottom:18px; }
  .footer-main { flex-wrap:wrap; }
  .footer-main img { width:min(190px,55vw); }
  .hub-logo-only { width:100%; max-width:420px; margin-inline:auto; }
  .hub-logo-only img { max-height:250px; }
  .hub-visual-grid { grid-template-columns:1fr!important; }
  .hub-visual { min-height:260px!important; background-size:cover!important; background-repeat:no-repeat; }
}
