/* === ICONOS (base) ============================================== */
.icon_calendar, .icon_baseball, .icon_tennis, .icon_soccer,
.icon_football, .icon_basketball, .icon_hockey, .icon_golf,
.icon_mma, .icon_nascar, .icon_esports, .icon_trophy {
  width: 25px;
  height: 25px;
  display: inline-block;
  border-radius: 4px;
  background-color: #999999;
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25);
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
}

/* === ICONOS (URL de cada PNG) =================================== */
.icon_calendar { mask: url('calendar.png') no-repeat center / contain; -webkit-mask: url('calendar.png') no-repeat center / contain; }
.icon_trophy { mask: url('trophy.png') no-repeat center / contain; -webkit-mask: url('trophy.png') no-repeat center / contain; }
.icon_baseball { mask: url('baseball.png') no-repeat center / contain; -webkit-mask: url('baseball.png') no-repeat center / contain; }
.icon_basketball { mask: url('basketball.png') no-repeat center / contain; -webkit-mask: url('basketball.png') no-repeat center / contain; }
.icon_football { mask: url('football.png') no-repeat center / contain; -webkit-mask: url('football.png') no-repeat center / contain; }
.icon_soccer { mask: url('soccer.png') no-repeat center / contain; -webkit-mask: url('soccer.png') no-repeat center / contain; }
.icon_mma { mask: url('mma.png') no-repeat center / contain; -webkit-mask: url('mma.png') no-repeat center / contain; }
.icon_nascar { mask: url('nascar.png') no-repeat center / contain; -webkit-mask: url('nascar.png') no-repeat center / contain; }
.icon_tennis { mask: url('tennis.png') no-repeat center / contain; -webkit-mask: url('tennis.png') no-repeat center / contain; }
.icon_hockey { mask: url('hockey.png') no-repeat center / contain; -webkit-mask: url('hockey.png') no-repeat center / contain; }
.icon_golf { mask: url('golf.png') no-repeat center / contain; -webkit-mask: url('golf.png') no-repeat center / contain; }
.icon_esports { mask: url('esports.png') no-repeat center / contain; -webkit-mask: url('esports.png') no-repeat center / contain; }

/* === ICONOS (hover) ============================================= */
.icon_calendar:hover, .icon_baseball:hover, .icon_tennis:hover, .icon_soccer:hover,
.icon_football:hover, .icon_basketball:hover, .icon_hockey:hover, .icon_golf:hover,
.icon_mma:hover, .icon_nascar:hover, .icon_esports:hover, .icon_trophy:hover {
  background-color: #09ff00;
  box-shadow: 0 6px 12px rgba(0, 255, 0, 0.35);
}

/* === CONTENEDOR GENERAL PARA CENTRAR EL NAV ===================== */
.nav-bar {
  width: 100%;
  height: 60px;
  background-color: #1b1c1d;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

/* Contenedor padre del carrusel */
.nav-scroll {
  width: 100%;
  overflow: hidden;
}

.nav-scroll .inner {
  width: 100%;
  display: flex;
  justify-content: center;
}

/* === CARRUSEL / SWIPE-CONTAINER (PC y General) ================== */
.swipe-container {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 60px;
  overflow-x: auto;
  white-space: nowrap;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  background-color: #1b1c1d;
  gap: 6px;
}

.swipe-container::-webkit-scrollbar {
  display: none;
}

/* === ELEMENTOS DEL NAV ========================================== */
.nav-item {
  color: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 50px;
  text-decoration: none;
  text-transform: uppercase;
  flex: 0 0 84px;
  min-width: 84px;
  padding-inline: 1rem;
  margin: 0;
  gap: 4px;
  transition: background-color 0.3s;
}

.nav-item:hover {
  background-color: #374151;
}

.nav-item span.text-xs,
.nav-item span.txt-xs {
  font-size: 0.75rem;
  line-height: 0.75rem;
  text-align: center;
}

/* === RESPONSIVE (Móvil 320px – 640px) =========================== */
@media (max-width: 640px) {
  .swipe-container {
    justify-content: flex-start !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 4px;
  }
  .nav-item {
    scroll-snap-align: start;
    flex: 0 0 80px;
    min-width: 80px;
    width: 64px;
    height: 56px;
    padding-inline: 0.05rem;
  }
}

/* ======= SAFARI FIX FINAL Y FUNCIONAL ======== */
@media not all and (min-resolution: 0.001dpcm) {
  @supports (-webkit-appearance: none) {

    .nav-scroll .inner {
      display: -webkit-box;
      display: -webkit-flex;
      -webkit-box-pack: center;
      -webkit-justify-content: center;
    }

    .swipe-container {
      display: -webkit-flex;
      -webkit-overflow-scrolling: touch;
    }

    .nav-item {
      flex: 0 0 84px !important;
      min-width: 84px !important;
      width: 84px !important;
      padding-inline: 0 !important;
    }

    @media (max-width: 640px) {
      .nav-item {
        flex: 0 0 80px !important;
        min-width: 80px !important;
        width: 80px !important;
      }
    }

  }
}

/* =========SCROLL EN LAPTOP RESPONSIVE (Chrome y Safari) =========== */
@media (min-width: 641px) and (max-width: 1100px) {

  /* El contenedor principal se vuelve scrollable */
  .nav-scroll {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .nav-scroll::-webkit-scrollbar {
    display: none;
  }

  /* El contenido interno puede ser más ancho que la ventana */
  .nav-scroll .inner {
    width: max-content;
    display: flex;
    justify-content: flex-start;
  }

  /* Alineación tipo móvil cuando la ventana es pequeña */
  .swipe-container {
    justify-content: flex-start !important;
  }

}
