.carousel-wrapper {
  max-width: 420px; /* pick what looks best on desktop */
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
  position: relative;
}

.carousel-track {
  width: 100%;
  overflow: hidden;
  position: relative;
}

.carousel-slide {
  display: none;
  width: 100%;
  box-sizing: border-box;
  animation: fade 0.5s ease-in-out;
}

.carousel-slide.active {
  display: block;
}

/* Make sure card contents fit! */
.lists.products,
.element.flex {
  width: 100%;
  max-width: 100%;
  flex-direction: column;
  display: block;
}

/* Image responsive */
.carousel-slide img,
.lists.products .img img,
.lists.products .inner-img img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

/* Carousel buttons (hidden by default) */
.carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,0.6);
  color: #fff;
  border: none;
  font-size: 2rem;
  padding: 0.5rem 1.2rem;
  border-radius: 5px;
  cursor: pointer;
  z-index: 10;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}
.carousel-btn.prev { left: 10px; }
.carousel-btn.next { right: 10px; }

/* Show arrows on hover (desktop only) */
.carousel-wrapper:hover .carousel-btn {
  opacity: 1;
  pointer-events: auto;
}

/* Always show arrows and adjust for mobile */
@media (max-width: 700px) {
  .carousel-wrapper {
    max-width: 98vw;
    padding: 0;
  }
  .carousel-btn {
    opacity: 1 !important;
    pointer-events: auto !important;
    font-size: 1.3rem;
    padding: 0.35rem 0.7rem;
  }
  .carousel-slide {
    min-height: 180px;
  }
}

/* Fade animation for slides */
@keyframes fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}
