.rz-carousel {
  position: relative;
  min-height: 400px; /* Adjust as needed */
}

.rz-carousel .carousel-inner {
  position: relative;
  overflow: hidden;
  min-height: 100%;
}

.rz-carousel .carousel-inner .carousel-item {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  z-index: 0;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.rz-carousel .carousel-inner .carousel-item.active {
  display: flex;
  position: relative;
  opacity: 1;
  z-index: 1;
}

.rz-carousel .slide-item {
  max-height: 300px;
  object-fit: contain;
  /* DO NOT define transform or transition here — let JS do it */
}

/* === Desktop layout === */
@media (min-width: 768px) {
  .rz-carousel .carousel-inner .carousel-item {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
  }

  .rz-carousel .carousel-control-prev,
  .rz-carousel .carousel-control-next {
    transform: translateX(-50%) rotate(90deg);
  }

  .rz-carousel .carousel-control-prev {
    top: 0%;
    left: 50%;
  }

  .rz-carousel .carousel-control-next {
    top: 65%;
    left: 50%;
  }
}

/* === Mobile layout === */
@media (max-width: 767.98px) {
  .rz-carousel .carousel-inner .carousel-item {
    flex-direction: column;
    align-items: center;
  }

  .rz-carousel .carousel-control-prev,
  .rz-carousel .carousel-control-next {
    transform: none;
    top: 50%;
    bottom: auto;
    translate: 0 -50%;
  }

  .rz-carousel .carousel-control-prev {
    left: 10%;
  }

  .rz-carousel .carousel-control-next {
    right: 10%;
    left: auto;
  }
}


@keyframes shudder {
  0% { transform: translateY(0); }
  25% { transform: translateY(-5px); }
  50% { transform: translateY(5px); }
  75% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}

@media (min-width: 768px) {
  .rz-carousel .carousel-item.shudder {
    animation: shudder 150ms ease-in-out;
  }
}

@media (max-width: 767.98px) {
  @keyframes shudder-x {
    0% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    50% { transform: translateX(5px); }
    75% { transform: translateX(-5px); }
    100% { transform: translateX(0); }
  }

  .rz-carousel .carousel-item.shudder {
    animation: shudder-x 150ms ease-in-out;
  }
}


/* === Base Control Style === */
.rz-carousel .carousel-control-prev,
.rz-carousel .carousel-control-next {
  position: absolute;
  width: 40px;
  height: 40px;
  z-index: 2;
  background: rgba(0, 0, 0, 0.1);
  border: none;
}

/* === Debug Borders (remove when done) === 
.rz-carousel .carousel-item {
  border: 2px dashed red;
}

.rz-carousel .slide-item {
  border: 1px solid blue;
}
*/
