/* Front page hero banner — slider mechanics */

.bsp-hero-banner--slider .bsp-hero-banner__viewport {
  position: relative;
  overflow: hidden;
}

.bsp-hero-banner--slider .bsp-hero-banner__track {
  position: relative;
  display: flex;
  transition: transform 0.65s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}

.bsp-hero-banner--slider .bsp-hero-banner__slide {
  flex: 0 0 100%;
  width: 100%;
  min-width: 100%;
}

.bsp-hero-banner--slider[data-transition="fade"] .bsp-hero-banner__track {
  display: block;
  transition: none;
}

.bsp-hero-banner--slider[data-transition="fade"] .bsp-hero-banner__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.55s ease, visibility 0.55s ease;
  pointer-events: none;
}

.bsp-hero-banner--slider[data-transition="fade"] .bsp-hero-banner__slide.is-active {
  position: relative;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  z-index: 1;
}

.bsp-hero-banner {
  background: var(--bsp-hero-bg, #111111);
  overflow: hidden;
}

.bsp-hero-banner--no-decor .bsp-hero-banner__inner::before,
.bsp-hero-banner--no-decor .bsp-hero-banner__inner::after {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .bsp-hero-banner--slider .bsp-hero-banner__track {
    transition: none;
  }

  .bsp-hero-banner--slider[data-transition="fade"] .bsp-hero-banner__slide {
    transition: none;
  }
}

@media (max-width: 767px) {
  .bsp-hero-banner--slider .bsp-hero-banner__track {
    min-height: var(--bsp-hero-min-height, 100svh);
  }
}
