/* ============================================================
   BAŞKENT SPOR — CAROUSEL COMPONENT
   carousel.css | Reusable | Arrows | Dots | Touch
   ============================================================ */

.carousel {
  position: relative;
  width: 100%;
}

/* Viewport — hides overflow */
.carousel__viewport {
  overflow: hidden;
  border-radius: var(--border-radius);
}

/* Track — holds all slides */
.carousel__track {
  display: flex;
  gap: var(--sp-3);
  transition: transform 0.45s cubic-bezier(0.25, 0.8, 0.25, 1);
  cursor: grab;
  user-select: none;
}
.carousel__track.is-dragging { cursor: grabbing; transition: none; }

/* Slides */
.carousel__slide {
  flex-shrink: 0;
}

/* Slide widths — overridden by data attributes via JS
   Defaults: 4 per view on desktop */
.carousel[data-desktop-slides="1"] .carousel__slide {
  width: 100%;
}
.carousel[data-desktop-slides="4"] .carousel__slide {
  width: calc((100% - 3 * var(--sp-3)) / 4);
}
.carousel[data-desktop-slides="3"] .carousel__slide {
  width: calc((100% - 2 * var(--sp-3)) / 3);
}

@media (max-width: 1024px) {
  .carousel[data-tablet-slides="2"] .carousel__slide {
    width: calc((100% - var(--sp-3)) / 2);
  }
}
@media (max-width: 768px) {
  .carousel[data-mobile-slides="1"] .carousel__slide {
    width: 100%;
  }
  .carousel[data-mobile-slides="2"] .carousel__slide {
    width: calc((100% - var(--sp-2)) / 2);
  }
}

/* ---- Arrow Buttons ---- */
.carousel__arrows {
  display: flex;
  gap: 8px;
}

.carousel__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px; height: 42px;
  border: 2px solid var(--navy);
  border-radius: var(--border-radius);
  background: var(--white);
  color: var(--navy);
  font-size: 0.85rem;
  cursor: pointer;
  transition: all var(--transition);
}
.carousel__arrow:hover {
  background: var(--navy);
  color: var(--white);
}
.carousel__arrow:disabled {
  opacity: 0.3;
  pointer-events: none;
}

/* ---- Header Row (title + arrows side by side) ---- */
.carousel__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: var(--sp-4);
  gap: var(--sp-3);
}

/* ---- Dot Indicators ---- */
.carousel__dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: var(--sp-4);
}

.carousel__dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--light-gray);
  border: none;
  cursor: pointer;
  transition: all var(--transition);
  padding: 0;
}
.carousel__dot.is-active {
  background: var(--red);
  transform: scale(1.25);
}
.carousel__dot:hover:not(.is-active) {
  background: var(--mid-gray);
}

/* ---- Responsive ---- */
@media (max-width: 768px) {
  .carousel__arrow { width: 36px; height: 36px; font-size: 0.75rem; }
  .carousel__track { gap: var(--sp-2); }
}
