/* Preserve flythrough: full frame on every screen. */
.hero.hero-video { display: block; min-height: 0; padding: 0; background: #102c2a; }
.hero.hero-video::before { display: none; }
.hero-video-shell { position: relative; width: 100%; aspect-ratio: 16 / 9; background: #102c2a; }
.hero-video-shell video { display: block; width: 100%; height: 100%; object-fit: contain; }
.hero-video .hero-video-copy { position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 80px 24px; text-align: center; background: linear-gradient(rgba(10,45,35,.58),rgba(10,45,35,.70)), url("../img/preserve-welcome.jpg") center 55% / cover no-repeat; pointer-events: none; }
.hero-video h2 { font-size: clamp(30px, 3.8vw, 58px); max-width: 1000px; text-shadow: 0 2px 15px #000; }
.hero-video p { color: #fff; text-shadow: 0 2px 10px #000; }
.hero-video-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 24px; pointer-events: auto; }
.hero-video-actions a, .hero-video-toggle { border: 1px solid rgba(255,255,255,.8); border-radius: 7px; padding: 10px 18px; background: rgba(8,30,29,.8); color: #fff; font: inherit; font-weight: 700; }
.hero-video-actions a:hover, .hero-video-toggle:hover { background: #fff; color: #183b32; }
.hero-video-actions a:focus-visible, .hero-video-toggle:focus-visible { outline: 3px solid #ffce8c; outline-offset: 4px; }
.hero-video-toggle { position: absolute; bottom: 18px; left: 24px; z-index: 4; cursor: pointer; }
.hero-video-toggle[hidden] { display: none; }
.hero-video-status { position: absolute; left: 24px; bottom: 72px; max-width: calc(100% - 48px); z-index: 4; background: #102c2a; color: #fff; padding: 8px 12px; font-size: 14px; }
.hero-video-status:empty { display: none; }
@media (max-width: 767px) {
  .hero.hero-video { padding-top: 84px; }
  .hero-video .hero-video-copy { position: relative; padding: 42px 20px; }
  .hero-video h2 { font-size: clamp(27px, 6vw, 36px); text-shadow: none; }
  .hero-video p { font-size: 18px; text-shadow: none; }
  .hero-video-toggle { bottom: 10px; left: 12px; padding: 7px 10px; font-size: 13px; }
  .hero-video-status { left: 12px; bottom: 52px; font-size: 12px; }
  .index-page .header { background: #102c2a; }
  .index-page .header .logo h1 { font-size: clamp(18px, 5vw, 24px); }
  .index-page .header .cta-btn { display: none; }
}
