.df-card-gallery {
  position: relative;
  overflow: hidden;
  width: 100%;
  background: var(--df-cream);
}

.df-featured-card__img-wrap .df-card-gallery,
.df-shop-card__media .df-card-gallery {
  aspect-ratio: 1 / 1;
}

.df-card-gallery__slides {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 100%;
}

.df-card-gallery__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.4s ease;
  pointer-events: none;
}

.df-card-gallery__slide.is-active {
  opacity: 1;
  pointer-events: auto;
}

.df-card-gallery__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Dots */
.df-card-gallery__dots {
  position: absolute;
  bottom: var(--df-sp-3);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 5px;
  z-index: 6;
}

.df-card-gallery__dot {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--df-dark);
  opacity: 0.5;
  transition:
    width var(--df-ease),
    opacity var(--df-ease);
}

.df-card-gallery__dot.is-active {
  width: 18px;
  opacity: 1;
}

/* Prev / Next */
.df-card-gallery__prev,
.df-card-gallery__next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 6;
  color: var(--df-dark);
  background: transparent;
  width: auto;
  height: auto;
  border: none;
  border-radius: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity var(--df-ease);
  cursor: pointer;
  padding: 0;
  line-height: 0;
}

.df-card-gallery__prev {
  left: var(--df-sp-2);
}

.df-card-gallery__next {
  right: var(--df-sp-2);
}

.df-card-gallery__prev:hover,
.df-card-gallery__next:hover {
  opacity: 0.55;
}

.df-card-gallery__prev svg,
.df-card-gallery__next svg {
  width: 36px;
  height: 36px;
  stroke-width: 1.5;
}
