.banner-slider {
  position: relative;
  width: 100%;
}

/* hide radio buttons */
.banner-slider input[type="radio"] {
  display: none;
}

.slider {
  width: 100%;
  overflow: hidden;
  position: relative;
}

.slides {
  display: flex;
  width: 100%;
  animation: slide 12s infinite;
  animation-play-state: running;
}

.slide {
  min-width: 100%;
  flex: 0 0 100%;
}

.slide img {
  width: 100%;
  height: auto;
  display: block;
}

/* pause on hover */
.slider:hover .slides {
  animation-play-state: paused;
}

/* manual slide selection */
#slide-1:checked ~ .slider .slides {
  animation: none;
  transform: translateX(0%);
}

#slide-2:checked ~ .slider .slides {
  animation: none;
  transform: translateX(-100%);
}

#slide-3:checked ~ .slider .slides {
  animation: none;
  transform: translateX(-200%);
}

/* auto mode */
#auto-slide:checked ~ .slider .slides {
  animation: slide 12s infinite;
  transform: translateX(0%);
}

/* controls */
.controls {
  position: absolute;
  bottom: 15px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 12px;
}

/* dots */
.dots {
  display: flex;
  gap: 8px;
}

.dots label {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(255,255,255,0.75);
  border: 1px solid rgba(0,0,0,0.2);
  cursor: pointer;
  display: block;
}

#slide-1:checked ~ .slider .dots label:nth-child(1),
#slide-2:checked ~ .slider .dots label:nth-child(2),
#slide-3:checked ~ .slider .dots label:nth-child(3) {
  background: #fff;
  transform: scale(1.15);
}

.auto-btn {
  background: rgba(0,0,0,0.65);
  color: #fff;
  padding: 6px 12px;
  border-radius: 4px;
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
  font-family: Arial, sans-serif;
  user-select: none;
}

#auto-slide:checked ~ .slider .auto-btn {
  background: rgba(0,0,0,0.85);
}

@keyframes slide {
  0%, 28% { transform: translateX(0%); }
  33%, 61% { transform: translateX(-100%); }
  66%, 94% { transform: translateX(-200%); }
  100% { transform: translateX(0%); }
}