/* Basis */
.slider {
  position: relative;
  width: 100%;
  max-width: 1240px; /* updated */
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
  user-select: none;
}


.slider-viewport {
  overflow: hidden;
  width: 100%;
}

.slider-track {
  display: flex;
  gap: 12px;
  transition: transform 0.35s ease;
  will-change: transform;
  padding: 0;
  margin: 0;
}

.slide-item {
  list-style: none;
  flex: 0 0 var(--item-width, 100%);
  border-radius: 10px;
  overflow: hidden;
  background: #f3f3f3;
}

.slide-item img {
  display: block;
  width: 100%;
  height: 220px;
  object-fit: cover;
}

/* Navigation */
.slider-btn {
  border: none;
  background: #111;
  color: #fff;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  font-size: 22px;
  line-height: 36px;
  text-align: center;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.slider-btn[disabled] {
  opacity: 0.35;
  cursor: default;
}

/* Responsive: Anzahl sichtbarer Items */
@media (min-width: 1024px) {
  /* Desktop: 3 pro Sicht */
  .slider { --visible: 3; }
}
@media (min-width: 640px) and (max-width: 1023.98px) {
  /* Tablet: 2 pro Sicht */
  .slider { --visible: 2; }
}
@media (max-width: 639.98px) {
  /* Phone: 1 pro Sicht */
  .slider { --visible: 1; }
}

/* Item-Breite aus Anzahl Sichtbarer ableiten */
.slider {
  --gap: 12px;
}
.slider-track { gap: var(--gap); }
.slide-item {
  /* Breite: (Viewport - Gesamt-Gaps) / sichtbare Elemente */
  --item-width: calc((100% - (var(--gap) * (var(--visible) - 1))) / var(--visible));
  flex-basis: var(--item-width);
}
