/* Elementor Scroll-Triggered Canvas Video
   Scope: ONLY the hero scroll video scrub. Text/CTA animations are intentionally excluded. */

.gs-scroll-video {
  --gs-hero-bg: #02070d;
  position: relative;
  min-height: 280vh; /* scroll-lock zone length; tune 240vh-320vh */
  background: var(--gs-hero-bg);
}

.gs-scroll-video__sticky {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
  background: var(--gs-hero-bg);
}

.gs-scroll-video__canvas {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: var(--gs-hero-bg);
}

.gs-scroll-video__fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  pointer-events: none;
}

.gs-scroll-video.is-ready .gs-scroll-video__fallback {
  display: none;
}

@media (max-width: 767px) {
  .gs-scroll-video {
    min-height: 190vh; /* faster on mobile so users don't feel trapped */
  }
}

@media (prefers-reduced-motion: reduce) {
  .gs-scroll-video {
    min-height: 100vh;
  }

  .gs-scroll-video__sticky {
    position: relative;
  }
}
