/* Native scrolling is shared by the promotional and research carousels. */
.carousel.native-scroll-carousel .carousel-viewport {
  overflow-x: auto;
  overflow-y: hidden;
  clip-path: none;
  touch-action: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 0;
  scroll-behavior: auto;
  overscroll-behavior-x: contain;
  overflow-anchor: none;
  scrollbar-width: none;
  cursor: grab;
}

.carousel.native-scroll-carousel .carousel-viewport::-webkit-scrollbar {
  display: none;
}

.carousel.native-scroll-carousel.hero-carousel .carousel-viewport {
  --hero-edge-fade: linear-gradient(
    to right,
    transparent,
    #000 clamp(10px, 1.2vw, 18px),
    #000 calc(100% - clamp(14px, 2.4vw, 36px)),
    transparent
  );
  -webkit-mask-image: var(--hero-edge-fade);
  mask-image: var(--hero-edge-fade);
}

.carousel.native-scroll-carousel .carousel-track {
  transform: none !important;
  transition: none;
  will-change: auto;
}

.carousel.native-scroll-carousel .carousel-slide {
  scroll-snap-align: start;
  scroll-snap-stop: normal;
}

.carousel.native-scroll-carousel.hero-carousel .carousel-slide {
  box-shadow: none;
}

.carousel.native-scroll-carousel .carousel-viewport.is-dragging,
.carousel.native-scroll-carousel .carousel-viewport.is-rebasing {
  scroll-snap-type: none;
  scroll-behavior: auto;
}

.carousel.native-scroll-carousel .carousel-viewport.is-dragging {
  cursor: grabbing;
  user-select: none;
}

.carousel.native-scroll-carousel .carousel-viewport.is-dragging * {
  cursor: grabbing;
  user-select: none;
}

.carousel.native-scroll-carousel .carousel-track img {
  -webkit-user-drag: none;
  user-select: none;
}

.carousel.native-scroll-carousel .carousel-controls {
  pointer-events: none;
}

.carousel.native-scroll-carousel .carousel-dots > span {
  display: block;
  flex: 0 0 auto;
  width: 6px;
  height: 4px;
  padding: 0;
  border: 0;
  border-radius: 12px;
  background: currentColor;
  opacity: .4;
  transition: width .35s, opacity .35s;
}

.carousel.native-scroll-carousel .carousel-dots > span.is-current {
  width: 21px;
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .carousel.native-scroll-carousel .carousel-dots > span {
    transition: none;
  }
}
