.games-slider {
  position: relative;
  margin-top: var(--space-h2-text);
  width: 100%;
  max-width: 100%;
}

/* Native horizontal scroll container — this alone gives every touch
   device smooth, momentum-driven drag scrolling with no JS required. */
.games-slider__viewport {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 4px;
}

.games-slider__viewport::-webkit-scrollbar {
  display: none;
  height: 0;
}

.games-slider__track {
  display: flex;
  gap: 16px;
}

.game-card-slot {
  flex: 0 0 62%;
  scroll-snap-align: start;
}

@media (min-width: 480px) {
  .game-card-slot {
    flex-basis: 42%;
  }
}

@media (min-width: 640px) {
  .game-card-slot {
    flex-basis: 32%;
  }
}

@media (min-width: 768px) {
  .games-slider__track {
    gap: 20px;
  }
  .game-card-slot {
    flex-basis: 29%;
  }
}

@media (min-width: 1024px) {
  .game-card-slot {
    flex-basis: 22%;
  }
}

@media (min-width: 1440px) {
  .game-card-slot {
    flex-basis: 18.5%;
  }
}

.game-card {
  background: var(--color-card-bg);
  clip-path: var(--clip-cut);
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: 100%;
}

.game-card__image {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  clip-path: var(--clip-cut);
}

.game-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-base);
}

.game-card:hover .game-card__image img {
  transform: scale(1.06);
}

.game-card__name {
  color: var(--color-white);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-small);
  min-height: 2.6em;
}

.game-card__play {
  font-size: var(--fs-small);
  padding: 10px 16px;
  margin-top: auto;
}

/* </> buttons: smooth scrollBy() carousel controls for pointer/desktop
   users. Hidden below 768px — mobile relies on native touch scrolling,
   where overlaid buttons tend to just get in the way of the cards. */
.games-slider__nav {
  display: none;
  position: absolute;
  align-items: center;
  justify-content: center;
  top: 42%;
  transform: translateY(-50%);
  color: var(--color-heading-accent);
  width: 38px;
  height: 38px;
  background: var(--color-bg-dark);
  clip-path: var(--clip-cut);
  z-index: 2;
  transition: opacity var(--transition-fast);
}

.games-slider__nav:disabled {
  opacity: 0.35;
  pointer-events: none;
}

.games-slider__nav--prev {
  left: -6px;
}

.games-slider__nav--next {
  right: -6px;
}

@media (min-width: 768px) {
  .games-slider__nav {
    display: flex;
  }
  .games-slider__nav--prev {
    left: -20px;
  }
  .games-slider__nav--next {
    right: -20px;
  }
}
