/* Partner Logo Shortcode Styles */

.partner-logo-shortcode {
  margin: 40px 0;
  overflow: hidden;
}

/* Logo Scroller Container */
.logo-scroller {
  width: 100%;
  overflow: hidden;
  mask: linear-gradient(90deg, transparent, white 20%, white 80%, transparent);
  -webkit-mask: linear-gradient(
    90deg,
    transparent,
    white 20%,
    white 80%,
    transparent
  );
}

/* Logo Track */
.logo-scroller__track {
  display: flex;
  align-items: center;
  animation: scroll-left var(--scroll-duration, 40s) linear infinite;
  width: max-content;
}

/* Logo Items */
.logo-scroller__item {
  flex-shrink: 0;
  margin-right: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 15px;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.logo-scroller__item:hover {
  transform: scale(1.1);
  opacity: 0.8;
}

.logo-scroller__item img {
  max-height: 60px;
  max-width: 190px;
  height: auto;
  width: auto;
  object-fit: contain;
  filter: grayscale(1) opacity(0.7);
  transition: filter 0.3s ease;
}

.logo-scroller__item:hover img {
  filter: grayscale(0) opacity(1);
}

/* Animation */
@keyframes scroll-left {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* Pause animation on hover */
.logo-scroller:hover .logo-scroller__track {
  animation-play-state: paused;
}

/* Responsive Design */
@media (max-width: 768px) {
  .logo-scroller__item {
    margin-right: 30px;
    padding: 10px;
  }

  .logo-scroller__item img {
    max-height: 45px;
    max-width: 120px;
  }
}

@media (max-width: 480px) {
  .logo-scroller__item {
    margin-right: 20px;
    padding: 8px;
  }

  .logo-scroller__item img {
    max-height: 35px;
    max-width: 100px;
  }
}

/* Loading State */
.partner-logo-shortcode.loading {
  opacity: 0.5;
}

.partner-logo-shortcode.loading .logo-scroller__track {
  animation: none;
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  .logo-scroller__track {
    animation: none;
  }

  .logo-scroller__item {
    transition: none;
  }

  .logo-scroller__item img {
    transition: none;
  }
}

/* Print Styles */
@media print {
  .logo-scroller {
    mask: none;
    -webkit-mask: none;
  }

  .logo-scroller__track {
    animation: none;
    flex-wrap: wrap;
    justify-content: center;
  }

  .logo-scroller__item {
    margin: 10px;
  }

  .logo-scroller__item img {
    filter: none;
  }
}
