/* Scoped to viewmode 3; existing gallery and slideshow styles remain unchanged. */
.gallery-carousel {
  min-width: 0;
  --swiper-pagination-color: var(--bs-primary, #0d6efd);
}
.gallery-carousel__swiper {
  overflow: hidden;
  border-radius: var(--bs-border-radius, .375rem);
}
.gallery-carousel__slide {
  box-sizing: border-box;
  padding: 16px 12px 28px;
  height: auto;
  opacity: .6;
  transition: opacity .45s ease;
}
.gallery-carousel__slide.swiper-slide-active {
  opacity: 1;
}
.gallery-carousel__figure {
  margin: 0;
}
.gallery-carousel__image-link {
  display: block;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  border-radius: var(--bs-border-radius, .375rem);
  background: var(--bs-tertiary-bg, #f5f5f5);
  cursor: zoom-in;
}
/* Keep the soft shadow inside the padded slide so overflow does not clip it. */
.gallery-carousel__slide.swiper-slide-active .gallery-carousel__image-link {
  box-shadow: 0 8px 24px rgba(0, 0, 0, .15);
}
.gallery-carousel__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.gallery-carousel__caption {
  padding: .75rem .5rem 0;
  overflow-wrap: anywhere;
}
.gallery-carousel__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-top: 1.25rem;
}
.gallery-carousel__arrow {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
}
.gallery-carousel__arrow.swiper-button-disabled {
  opacity: .35;
  cursor: default;
}
.gallery-carousel__arrow.swiper-button-lock {
  display: none;
}
/* Override Swiper's absolute pagination placement, including dynamic bullets. */
.gallery-carousel .gallery-carousel__controls > .gallery-carousel__pagination.swiper-pagination {
  position: relative;
  inset: auto;
  transform: none;
  flex: 0 0 auto;
  max-width: calc(100% - 120px);
}
.gallery-carousel .gallery-carousel__pagination .swiper-pagination-bullet {
  width: 12px;
  height: 12px;
}
.gallery-carousel__image-link:focus-visible,
.gallery-carousel__arrow:focus-visible,
.gallery-carousel__pagination .swiper-pagination-bullet:focus-visible {
  outline: 3px solid var(--bs-primary, #0d6efd);
  outline-offset: -3px;
}
@media (prefers-reduced-motion: reduce) {
  .gallery-carousel .swiper-wrapper,
  .gallery-carousel__slide,
  .gallery-carousel .swiper-pagination-bullet {
    transition-duration: 0ms !important;
  }
}
