/* Layout/media behaviour only; typography, buttons and grid use theme.css. */
.strand-hero { position: relative; isolation: isolate; background: #252322; }
.strand-hero__image, .strand-hero__video, .strand-hero__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.strand-hero__image, .strand-hero__video { object-fit: cover; }
.strand-hero__video { opacity: 0; transition: opacity .8s ease; }
.strand-hero.is-playing .strand-hero__video { opacity: 1; }
.strand-hero__shade { background: linear-gradient(90deg, rgba(0,0,0,.65), rgba(0,0,0,.24)); }
.strand-hero__content { position: relative; display: flex; align-items: center; min-height: 100vh; min-height: 100svh; padding-top: 7rem; padding-bottom: 5rem; }
.strand-hero__card { max-width: 19rem; }
.strand-hero__teaser { width: 100%; height: auto; }
.strand-hero__toggle { position: absolute; bottom: 1rem; right: 1rem; }
.strand-hero__toggle[hidden] { display: none; }
.strand-booking-photo { aspect-ratio: 16 / 10; object-fit: cover; }
#online-booking { scroll-margin-top: 5rem; }
@media (max-width: 991.98px) {
  .strand-hero__card { display: flex; align-items: center; gap: 1rem; max-width: 26rem; text-align: left !important; }
  .strand-hero__teaser { width: 30%; }
  .strand-hero__card h2 { margin-top: 0 !important; }
}
@media (prefers-reduced-motion: reduce) {
  .strand-hero__video { transition: none; }
}
