.carousel {
  --gutter: var(--spacing-sm);
  --page-size: 1;

  @media (min-width: 768px) {
    --page-size: 3;
  }
}

.carousel__slides {
  display: flex;
  gap: var(--gutter);
  overflow-x: hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
}

.carousel__slide {
  flex-shrink: 0;
  width: calc(
    (100% - (var(--gutter) * (var(--page-size) - 1))) / var(--page-size)
  );
  scroll-snap-align: start;
}

.carousel__slide figure {
  width: 100%;
  height: auto;
}

.carousel__slide img {
  object-fit: contain;
}

.carousel__controls {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--spacing-sm);
  z-index: 1;
  border-bottom: 1px solid var(--color-fog-grey);
  padding-block: var(--spacing-sm);

  &.hidden {
    display: none;
  }
}

.carousel__controls button {
  padding: 0;
  aspect-ratio: 1;
}

.carousel__prev > svg {
  transform: translateX(-1px) rotate(90deg);
}

.carousel__next > svg {
  transform: translateX(1px) rotate(-90deg);
}

.carousel__prev > svg,
.carousel__next > svg {
  padding: 0.25rem;
}

.carousel__indicators {
  display: flex;
  gap: var(--spacing-xxs);
}

.carousel__indicators > button {
  transition: none;
  width: auto;
  height: 0.75rem;
}

.carousel__indicators > .active {
  border-color: var(--color-black);
  background-color: var(--color-black);
  pointer-events: none;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jc3MvY2Fyb3VzZWwucGNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLDJCQUEyQjtFQUMzQixjQUFjOztFQUVkO0lBQ0UsY0FBYztFQUNoQjtBQUNGOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsOEJBQThCO0VBQzlCLDZCQUE2QjtBQUMvQjs7QUFFQTtFQUNFLGNBQWM7RUFDZDs7R0FFQztFQUNELHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQixzQkFBc0I7RUFDdEIsVUFBVTtFQUNWLDhDQUE4QztFQUM5QyxnQ0FBZ0M7O0VBRWhDO0lBQ0UsYUFBYTtFQUNmO0FBQ0Y7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLHlDQUF5QztBQUMzQzs7QUFFQTtFQUNFLHlDQUF5QztBQUMzQzs7QUFFQTs7RUFFRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxlQUFlO0FBQ2pCOztBQUVBO0VBQ0UsZ0NBQWdDO0VBQ2hDLG9DQUFvQztFQUNwQyxvQkFBb0I7QUFDdEIiLCJmaWxlIjoiY2Fyb3VzZWwuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmNhcm91c2VsIHtcbiAgLS1ndXR0ZXI6IHZhcigtLXNwYWNpbmctc20pO1xuICAtLXBhZ2Utc2l6ZTogMTtcblxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAtLXBhZ2Utc2l6ZTogMztcbiAgfVxufVxuXG4uY2Fyb3VzZWxfX3NsaWRlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tZ3V0dGVyKTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyc2Nyb2xsLWJlaGF2aW9yLXg6IGNvbnRhaW47XG4gIHNjcm9sbC1zbmFwLXR5cGU6IHggbWFuZGF0b3J5O1xufVxuXG4uY2Fyb3VzZWxfX3NsaWRlIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiBjYWxjKFxuICAgICgxMDAlIC0gKHZhcigtLWd1dHRlcikgKiAodmFyKC0tcGFnZS1zaXplKSAtIDEpKSkgLyB2YXIoLS1wYWdlLXNpemUpXG4gICk7XG4gIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDtcbn1cblxuLmNhcm91c2VsX19zbGlkZSBmaWd1cmUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uY2Fyb3VzZWxfX3NsaWRlIGltZyB7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi5jYXJvdXNlbF9fY29udHJvbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLXNtKTtcbiAgei1pbmRleDogMTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWZvZy1ncmV5KTtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tc3BhY2luZy1zbSk7XG5cbiAgJi5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmNhcm91c2VsX19jb250cm9scyBidXR0b24ge1xuICBwYWRkaW5nOiAwO1xuICBhc3BlY3QtcmF0aW86IDE7XG59XG5cbi5jYXJvdXNlbF9fcHJldiA+IHN2ZyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMXB4KSByb3RhdGUoOTBkZWcpO1xufVxuXG4uY2Fyb3VzZWxfX25leHQgPiBzdmcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KSByb3RhdGUoLTkwZGVnKTtcbn1cblxuLmNhcm91c2VsX19wcmV2ID4gc3ZnLFxuLmNhcm91c2VsX19uZXh0ID4gc3ZnIHtcbiAgcGFkZGluZzogMC4yNXJlbTtcbn1cblxuLmNhcm91c2VsX19pbmRpY2F0b3JzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1zcGFjaW5nLXh4cyk7XG59XG5cbi5jYXJvdXNlbF9faW5kaWNhdG9ycyA+IGJ1dHRvbiB7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDAuNzVyZW07XG59XG5cbi5jYXJvdXNlbF9faW5kaWNhdG9ycyA+IC5hY3RpdmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJsYWNrKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmxhY2spO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbiJdfQ== */