/* === Carousel: Shared === */
.carouselContainer {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.carouselContainer.caro-Banner { height: 500px; }
.carouselContainer:not(.caro-Banner) { min-height: 344px; margin: 0.5rem 0; }

/* === Fade Mode === */
.carousel-slide {
  position: absolute;
  inset: 0;
  height: 100%;
  transition: opacity 1s ease-out;
}
.carousel-slide--active {
  opacity: 1;
  pointer-events: auto;
  z-index: 10;
}
.carousel-slide--hidden {
  opacity: 0;
  pointer-events: none;
  z-index: 0;
}

/* Text + Image layout (fade) */
.carousel-slide.caro-text-image {
  display: flex;
  flex-direction: column;
}
@media (min-width: 769px) {
  .carousel-slide.caro-text-image { flex-direction: row; }
}
.caro-text-col {
  padding: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (min-width: 769px) {
  .caro-text-col { width: 50%; }
}
.caro-text-col p { font-size: 0.875rem; }
.caro-img-col {
  padding: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (min-width: 769px) {
  .caro-img-col { width: 50%; }
}
.caro-img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

/* === Slider Mode === */
.caro-slider-track {
  width: 100%;
  height: 100%;
  display: flex;
  transition: transform 0.5s;
}
.caro-slider-item {
  flex-shrink: 0;
  width: 100%;
  height: 100%;
}
.caro-slider-text-image {
  flex-shrink: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
}
@media (min-width: 769px) {
  .caro-slider-text-image { flex-direction: row; }
}

/* === Indicators === */
.caro-indicators {
  position: absolute;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0.5rem;
  z-index: 10;
}
.caro-dot {
  width: 1.5rem;
  height: 0.25rem;
  border-radius: 20px;
  cursor: pointer;
  background: rgba(255,255,255,0.6);
}
.caro-dot--active {
  width: 1.5rem;
  height: 0.25rem;
  border-radius: 20px;
  cursor: pointer;
  background: #fff;
}
