/* Homepage enhancement only. The approved photograph always stays underneath. */
.hero-visual { position: absolute; inset: 0; }
/* Keep the original photo opacity; do not dim the video with its parent. */
.hero-visual img { opacity: 0.35; }
/* Only presented video frames enable this overlay; photo fallback uses ::after. */
.hero-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--hero-side-shade);
  opacity: 0;
}
.hero-video-visible .hero-bg::before { opacity: 1; }
.hero-video-visible .hero-bg::after { opacity: 0; }
.hero-video-visible .hero-bg::before,
.hero-video-visible .hero-bg::after { transition: opacity 400ms ease; }
.hero-bg .hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 400ms ease;
  pointer-events: none;
}
.hero-bg .hero-video.is-playing { opacity: 1; }
/* Return immediately to the photograph on buffering, failure or preference change. */
.hero-bg .hero-video:not(.is-playing) { transition: none; }
.hero-video-toggle {
  position: absolute;
  right: 24px;
  bottom: 16px;
  z-index: 2;
  min-height: 44px;
  padding: 8px 14px;
  border: 1px solid var(--gold);
  border-radius: var(--radius);
  background: var(--dark);
  color: var(--cream);
  font: inherit;
  font-size: 0.85rem;
  cursor: pointer;
}
.hero-video-toggle[hidden] { display: none; }
.hero-video-toggle:hover { color: var(--gold-light); }
.hero-video-toggle:focus-visible { outline: 2px solid var(--gold-light); outline-offset: 4px; }
@media (min-width: 961px) {
  .hero {
    --hero-copy-left: max(24px, calc((100vw - var(--max-width)) / 2 + 24px));
    --hero-side-shade: linear-gradient(90deg, rgba(32,32,32,0.94) 0%, rgba(32,32,32,0.88) calc(var(--hero-copy-left) + 360px), rgba(32,32,32,0.82) calc(var(--hero-copy-left) + 600px), rgba(32,32,32,0.22) max(85%, calc(var(--hero-copy-left) + 700px)), rgba(32,32,32,0) 100%);
  }
  /* Anchor the actual column to the site's left gutter in every media state. */
  .hero-content {
    max-width: 600px;
    margin-left: var(--hero-copy-left);
    margin-right: auto;
    text-align: left;
  }
  .hero-bg::after { background: var(--hero-side-shade); }
  .hero-stats { gap: 24px; }
  .hero-stat .label { color: rgba(248, 245, 238, 0.85); }
}
@media (max-width: 960px), (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce) {
  .hero-bg .hero-video, .hero-video-toggle { display: none; }
}
