/* Base Carousel */
.ds-carousel {
  position: relative;
  width: 100%;
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
}

/* Viewport */
.ds-carousel__viewport {
  position: relative;
  width: 100%;
  overflow: hidden;
}

/* Track */
.ds-carousel__track {
  display: flex;
  width: 100%;
}

/* Slide */
.ds-carousel__slide {
  flex: 0 0 100%;
  width: 100%;
}

/* Controls */
.ds-carousel__control {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  background-color: var(--semantic-bg-surface-default);
  border: 1px solid var(--semantic-border-default-default);
  border-radius: var(--br-full, 9999px);
  box-shadow: var(--semantic-elevation-elevation1);
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}

.ds-carousel__control:hover:not(:disabled) {
  background-color: var(--dropdown-bg-hover);
  box-shadow: var(--semantic-elevation-elevation2);
}

.ds-carousel__control:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.ds-carousel__control--prev {
  left: var(--size3, 12px);
}

.ds-carousel__control--next {
  right: var(--size3, 12px);
}

/* Indicators */
.ds-carousel__indicators {
  position: absolute;
  bottom: var(--size3, 12px);
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  display: flex;
  gap: var(--size2, 8px);
  padding: var(--size2, 8px) var(--size3, 12px);
  background-color: rgba(0, 0, 0, 0.5);
  border-radius: var(--br-full, 9999px);
}

.ds-carousel__indicator {
  width: 8px;
  height: 8px;
  padding: 0;
  background-color: rgba(255, 255, 255, 0.5);
  border: none;
  border-radius: var(--br-full, 9999px);
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}

.ds-carousel__indicator:hover {
  background-color: rgba(255, 255, 255, 0.8);
}

.ds-carousel__indicator--active {
  width: 24px;
  background-color: rgba(255, 255, 255, 1);
}
