/* ====== LOGO CAROUSEL (Lucrar Partners) — Canvas Auto-Crop ====== */

.lcr-partners {
  --h:        56px;
  --max-cell: 200px;
  --min-cell: 120px;
  --gap:      64px;
  --padX:     6vw;
  --padY:     20px;
  --bg:       #0b1014;
  --pxps:     80;
  --line:     2px;
  --line-color: #fff;
  color: #fff;
  font: normal 16px/1.4 system-ui, -apple-system, Segoe UI, Roboto, Arial;
}

/* Full-bleed inside a constrained WP content column */
.lcr-partners--full .lcr-partners-strip {
  margin-left:  calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* Strip */
.lcr-partners-strip {
  position: relative;
  overflow: hidden;
  background: var(--bg);
  padding: var(--padY) var(--padX);
  border-top:    var(--line) solid var(--line-color);
  border-bottom: var(--line) solid var(--line-color);
  -webkit-mask-image: linear-gradient(to right, transparent 0, black 6%, black 94%, transparent);
          mask-image: linear-gradient(to right, transparent 0, black 6%, black 94%, transparent);
}

/* Scroller track */
.lcr-scroller {
  display: flex;
  align-items: center;
  gap: var(--gap);
  list-style: none;
  will-change: transform;
  animation: lcr-scroll var(--duration, 30s) linear infinite;
}

/* Pause on hover */
.lcr-partners-strip:hover .lcr-scroller {
  animation-play-state: paused;
}

/* Logo cell — JS sets width; cell clips oversized images */
.lcr-logo {
  flex-shrink: 0;
  height: var(--h);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* IMG — JS sets width, height, transform: translateY(...) */
.lcr-logo img {
  display: block;
  flex-shrink: 0;
}

/* Accessibility: clones not read by screen readers */
.lcr-logo[aria-hidden="true"] {
  visibility: visible;
}

/* Responsive — only CSS vars; JS re-fits automatically */
@media (max-width: 1024px) {
  .lcr-partners {
    --h:        48px;
    --max-cell: 170px;
    --min-cell: 100px;
    --gap:      48px;
    --pxps:     60;
  }
}

@media (max-width: 640px) {
  .lcr-partners {
    --h:        38px;
    --max-cell: 140px;
    --min-cell: 90px;
    --gap:      32px;
    --padX:     4vw;
    --pxps:     50;
  }
}

/* Animation keyframe (distance --runW is set by JS) */
@keyframes lcr-scroll {
  from { transform: translate3d(0, 0, 0); }
  to   { transform: translate3d(calc(-1 * var(--runW, 1000px)), 0, 0); }
}

/* Force animation even when user prefers reduced motion */
.lcr-partners--force-motion .lcr-scroller {
  animation: lcr-scroll var(--duration, 30s) linear infinite !important;
}

@media (prefers-reduced-motion: reduce) {
  .lcr-scroller { animation: none; }
  .lcr-partners--force-motion .lcr-scroller {
    animation: lcr-scroll var(--duration, 30s) linear infinite !important;
  }
}
