/* V3.8.8 · Carrusel infinito estable */

#humanImpactMoviesSafeSection {
  overflow: hidden !important;
  margin-top: 1.35rem !important;
  margin-bottom: 1.45rem !important;
}

#humanImpactMoviesSafeSection .section-head {
  margin-bottom: .8rem !important;
}

#humanImpactMoviesSafeSection h2 {
  font-size: clamp(1.65rem, 2.5vw, 2.35rem) !important;
}

#humanImpactMoviesSafeSection .human-impact-safe-subtitle {
  max-width: 820px !important;
}

/* Importante: flex siempre, para que jamás caiga vertical */
#humanImpactMoviesSafeRail {
  position: relative !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: none !important;
  overflow: hidden !important;
  padding: .8rem 0 1.2rem !important;
  gap: 1rem !important;
  mask-image: linear-gradient(90deg, transparent 0, black 4%, black 96%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0, black 4%, black 96%, transparent 100%);
}

/* Track duplicado que se mueve infinito */
.human-impact-infinite-track {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 1rem !important;
  width: max-content !important;
  min-width: max-content !important;
  animation: humanImpactInfiniteScroll var(--human-impact-duration, 160s) linear infinite;
  will-change: transform;
}

#humanImpactMoviesSafeRail:hover .human-impact-infinite-track {
  animation-play-state: paused;
}

/* Si por alguna razón el JS viejo dejó tarjetas directas, también se verán horizontal */
#humanImpactMoviesSafeRail > .human-impact-safe-card {
  flex: 0 0 178px !important;
}

.human-impact-safe-card {
  flex: 0 0 178px !important;
  width: 178px !important;
  min-width: 178px !important;
  max-width: 178px !important;
  min-height: 350px !important;
  padding: 10px !important;
  border-radius: 18px !important;
}

.human-impact-safe-poster {
  height: 245px !important;
  border-radius: 14px !important;
  margin-bottom: .55rem !important;
}

.human-impact-safe-rank {
  min-width: 30px !important;
  height: 22px !important;
  font-size: .76rem !important;
  margin-bottom: .32rem !important;
}

.human-impact-safe-title {
  font-size: .93rem !important;
  line-height: 1.15 !important;
  margin-bottom: .25rem !important;
}

.human-impact-safe-description {
  font-size: .78rem !important;
  line-height: 1.25 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

.human-impact-safe-action {
  margin-top: .55rem !important;
  padding: .48rem .68rem !important;
  font-size: .76rem !important;
}

.human-impact-safe-poster.is-empty {
  display: grid;
  place-items: center;
  text-align: center;
  padding: 1rem;
  color: color-mix(in srgb, var(--text, #fff) 72%, transparent);
  background:
    radial-gradient(circle at top, color-mix(in srgb, var(--accent, #3daee9) 18%, transparent), transparent 58%),
    color-mix(in srgb, var(--surface-2, #222936) 90%, transparent) !important;
}

.human-impact-safe-poster.is-empty::after {
  content: "Sin portada";
  font-weight: 800;
  opacity: .75;
}

@keyframes humanImpactInfiniteScroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

@media (max-width: 760px) {
  .human-impact-safe-card {
    flex-basis: 158px !important;
    width: 158px !important;
    min-width: 158px !important;
    max-width: 158px !important;
    min-height: 330px !important;
  }

  .human-impact-safe-poster {
    height: 225px !important;
  }

  .human-impact-infinite-track {
    gap: .85rem !important;
    animation-duration: var(--human-impact-duration-mobile, 140s);
  }
}

@media (prefers-reduced-motion: reduce) {
  .human-impact-infinite-track {
    animation: none !important;
  }

  #humanImpactMoviesSafeRail {
    overflow-x: auto !important;
    mask-image: none !important;
    -webkit-mask-image: none !important;
  }
}
