
.pls-wrap{
  width:100%;
  overflow:hidden;
  background: var(--pls-bg, #fff);
  border: 1px solid var(--pls-border, #e5e7eb);
  border-radius: var(--pls-radius, 12px);
  padding: var(--pls-pad, 10px) 0;
}
.pls-track{ width:100%; overflow:hidden; }
.pls-row{
  display:inline-flex;
  align-items:center;
  gap: var(--pls-gap, 30px);
  will-change: transform;
  animation: pls-marquee var(--pls-speed, 25s) linear infinite;
}
.pls-wrap[data-dir="right"] .pls-row{
  animation-direction: reverse;
}
.pls-pause:hover .pls-row{
  animation-play-state: paused;
}
.pls-item{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
}
.pls-item img{
  height: var(--pls-height, 70px);
  width:auto;
  max-width:220px;
  object-fit:contain;
  display:block;
  opacity:0.95;
}
.pls-link{ display:inline-flex; align-items:center; justify-content:center; }
@keyframes pls-marquee{
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
@media (max-width: 600px){
  .pls-item img{ max-width:160px; }
}



/* Animation styles */
.pls-wrap[data-anim="marquee"] .pls-row{
  animation-name: pls-marquee;
}

.pls-wrap[data-anim="step"] .pls-row{
  animation-name: pls-step;
  animation-timing-function: steps(12, end);
}

.pls-wrap[data-anim="fade"] .pls-row,
.pls-wrap[data-anim="zoom"] .pls-row{
  /* No translate animation */
  animation: none !important;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap: var(--pls-gap, 30px);
  padding: 0 var(--pls-gap, 30px);
}

/* Fade: each logo fades in/out in sequence */
.pls-wrap[data-anim="fade"] .pls-item{
  animation: pls-fade 2.8s ease-in-out infinite;
}
.pls-wrap[data-anim="fade"] .pls-item:nth-child(1) { animation-delay: 0s; }
.pls-wrap[data-anim="fade"] .pls-item:nth-child(2) { animation-delay: .2s; }
.pls-wrap[data-anim="fade"] .pls-item:nth-child(3) { animation-delay: .4s; }
.pls-wrap[data-anim="fade"] .pls-item:nth-child(4) { animation-delay: .6s; }
.pls-wrap[data-anim="fade"] .pls-item:nth-child(5) { animation-delay: .8s; }
.pls-wrap[data-anim="fade"] .pls-item:nth-child(6) { animation-delay: 1.0s; }
.pls-wrap[data-anim="fade"] .pls-item:nth-child(7) { animation-delay: 1.2s; }
.pls-wrap[data-anim="fade"] .pls-item:nth-child(8) { animation-delay: 1.4s; }
.pls-wrap[data-anim="fade"] .pls-item:nth-child(9) { animation-delay: 1.6s; }
.pls-wrap[data-anim="fade"] .pls-item:nth-child(10){ animation-delay: 1.8s; }
.pls-wrap[data-anim="fade"] .pls-item:nth-child(11){ animation-delay: 2.0s; }
.pls-wrap[data-anim="fade"] .pls-item:nth-child(12){ animation-delay: 2.2s; }

/* Zoom pulse */
.pls-wrap[data-anim="zoom"] .pls-item{
  animation: pls-zoom 3.2s ease-in-out infinite;
}
.pls-wrap[data-anim="zoom"] .pls-item:nth-child(odd){ animation-delay: .25s; }

@keyframes pls-step{
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

@keyframes pls-fade{
  0%, 100% { opacity: .45; transform: scale(.98); }
  50% { opacity: 1; transform: scale(1); }
}

@keyframes pls-zoom{
  0%, 100% { transform: scale(.92); opacity: .75; }
  50% { transform: scale(1.04); opacity: 1; }
}



/* Non-scroll effect layouts */
.pls-wrap[data-anim="fade"] .pls-row,
.pls-wrap[data-anim="zoom"] .pls-row,
.pls-wrap[data-anim="zoomout"] .pls-row,
.pls-wrap[data-anim="pop"] .pls-row,
.pls-wrap[data-anim="wipe"] .pls-row,
.pls-wrap[data-anim="blur"] .pls-row,
.pls-wrap[data-anim="succession"] .pls-row,
.pls-wrap[data-anim="breath"] .pls-row,
.pls-wrap[data-anim="drift"] .pls-row,
.pls-wrap[data-anim="stomp"] .pls-row,
.pls-wrap[data-anim="flicker"] .pls-row,
.pls-wrap[data-anim="neon"] .pls-row{
  animation: none !important;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap: var(--pls-gap, 30px);
  padding: 0 var(--pls-gap, 30px);
}

/* Fade */
.pls-wrap[data-anim="fade"] .pls-item{
  animation: pls-fade 2.8s ease-in-out infinite;
}

/* Flicker */
.pls-wrap[data-anim="flicker"] .pls-item{
  animation: pls-flicker 2.4s ease-in-out infinite;
}

/* Zoom In */
.pls-wrap[data-anim="zoom"] .pls-item{
  animation: pls-zoom-in 3.0s ease-in-out infinite;
}

/* Zoom Out */
.pls-wrap[data-anim="zoomout"] .pls-item{
  animation: pls-zoom-out 3.0s ease-in-out infinite;
}

/* Pop */
.pls-wrap[data-anim="pop"] .pls-item{
  animation: pls-pop 2.6s ease-in-out infinite;
}

/* Wipe In */
.pls-wrap[data-anim="wipe"] .pls-item{
  overflow:hidden;
}
.pls-wrap[data-anim="wipe"] .pls-item img{
  animation: pls-wipe 2.8s ease-in-out infinite;
}

/* Blur Focus */
.pls-wrap[data-anim="blur"] .pls-item img{
  animation: pls-blur 3.0s ease-in-out infinite;
}

/* Succession (one-by-one) */
.pls-wrap[data-anim="succession"] .pls-item{
  opacity: .25;
  animation: pls-succession 3.2s ease-in-out infinite;
}

/* Breath */
.pls-wrap[data-anim="breath"] .pls-item{
  animation: pls-breath 3.6s ease-in-out infinite;
}

/* Drift */
.pls-wrap[data-anim="drift"] .pls-item{
  animation: pls-drift 4.0s ease-in-out infinite;
}

/* Stomp */
.pls-wrap[data-anim="stomp"] .pls-item{
  animation: pls-stomp 2.2s ease-in-out infinite;
}

/* Neon */
.pls-wrap[data-anim="neon"] .pls-item img{
  animation: pls-neon 2.8s ease-in-out infinite;
  filter: drop-shadow(0 0 0 rgba(0,0,0,0));
}

/* Stagger delays for many logos (up to 24) */
.pls-wrap[data-anim] .pls-item:nth-child(1){ animation-delay: 0s; }
.pls-wrap[data-anim] .pls-item:nth-child(2){ animation-delay: .15s; }
.pls-wrap[data-anim] .pls-item:nth-child(3){ animation-delay: .30s; }
.pls-wrap[data-anim] .pls-item:nth-child(4){ animation-delay: .45s; }
.pls-wrap[data-anim] .pls-item:nth-child(5){ animation-delay: .60s; }
.pls-wrap[data-anim] .pls-item:nth-child(6){ animation-delay: .75s; }
.pls-wrap[data-anim] .pls-item:nth-child(7){ animation-delay: .90s; }
.pls-wrap[data-anim] .pls-item:nth-child(8){ animation-delay: 1.05s; }
.pls-wrap[data-anim] .pls-item:nth-child(9){ animation-delay: 1.20s; }
.pls-wrap[data-anim] .pls-item:nth-child(10){ animation-delay: 1.35s; }
.pls-wrap[data-anim] .pls-item:nth-child(11){ animation-delay: 1.50s; }
.pls-wrap[data-anim] .pls-item:nth-child(12){ animation-delay: 1.65s; }
.pls-wrap[data-anim] .pls-item:nth-child(13){ animation-delay: 1.80s; }
.pls-wrap[data-anim] .pls-item:nth-child(14){ animation-delay: 1.95s; }
.pls-wrap[data-anim] .pls-item:nth-child(15){ animation-delay: 2.10s; }
.pls-wrap[data-anim] .pls-item:nth-child(16){ animation-delay: 2.25s; }
.pls-wrap[data-anim] .pls-item:nth-child(17){ animation-delay: 2.40s; }
.pls-wrap[data-anim] .pls-item:nth-child(18){ animation-delay: 2.55s; }
.pls-wrap[data-anim] .pls-item:nth-child(19){ animation-delay: 2.70s; }
.pls-wrap[data-anim] .pls-item:nth-child(20){ animation-delay: 2.85s; }
.pls-wrap[data-anim] .pls-item:nth-child(21){ animation-delay: 3.00s; }
.pls-wrap[data-anim] .pls-item:nth-child(22){ animation-delay: 3.15s; }
.pls-wrap[data-anim] .pls-item:nth-child(23){ animation-delay: 3.30s; }
.pls-wrap[data-anim] .pls-item:nth-child(24){ animation-delay: 3.45s; }

@keyframes pls-flicker{
  0%, 100% { opacity: .55; transform: scale(.99); }
  20% { opacity: 1; }
  35% { opacity: .35; }
  55% { opacity: 1; }
  70% { opacity: .6; }
}

@keyframes pls-zoom-in{
  0%, 100% { transform: scale(.92); opacity: .75; }
  50% { transform: scale(1.06); opacity: 1; }
}

@keyframes pls-zoom-out{
  0%, 100% { transform: scale(1.06); opacity: 1; }
  50% { transform: scale(.92); opacity: .75; }
}

@keyframes pls-pop{
  0%, 100% { transform: scale(.96); opacity: .8; }
  40% { transform: scale(1.10); opacity: 1; }
  60% { transform: scale(1.00); opacity: 1; }
}

@keyframes pls-wipe{
  0% { clip-path: inset(0 100% 0 0); opacity:.5; }
  35% { clip-path: inset(0 0 0 0); opacity:1; }
  80% { clip-path: inset(0 0 0 0); opacity:1; }
  100% { clip-path: inset(0 0 0 100%); opacity:.5; }
}

@keyframes pls-blur{
  0%, 100% { filter: blur(2.5px); opacity:.65; transform: scale(.98); }
  50% { filter: blur(0px); opacity:1; transform: scale(1); }
}

@keyframes pls-succession{
  0%, 100% { opacity: .25; transform: scale(.98); }
  45% { opacity: 1; transform: scale(1.03); }
  60% { opacity: .6; transform: scale(1.0); }
}

@keyframes pls-breath{
  0%, 100% { transform: scale(.98); opacity:.85; }
  50% { transform: scale(1.04); opacity:1; }
}

@keyframes pls-drift{
  0%, 100% { transform: translateY(0) translateX(0); opacity:.85; }
  50% { transform: translateY(-6px) translateX(6px); opacity:1; }
}

@keyframes pls-stomp{
  0%, 100% { transform: translateY(0) scale(1); opacity:.85; }
  30% { transform: translateY(-4px) scale(1.06); opacity:1; }
  50% { transform: translateY(0) scale(.98); }
  70% { transform: translateY(-2px) scale(1.02); }
}

@keyframes pls-neon{
  0%, 100% { filter: drop-shadow(0 0 2px rgba(0,255,180,.2)) drop-shadow(0 0 8px rgba(0,180,255,.15)); opacity:.9; }
  50% { filter: drop-shadow(0 0 6px rgba(0,255,180,.45)) drop-shadow(0 0 16px rgba(0,180,255,.35)); opacity:1; }
}


/* Headline */
.pls-headline-wrap{
  margin-bottom: var(--pls-h-space, 12px);
}
.pls-headline{
  text-align: var(--pls-h-align, center);
  font-size: var(--pls-h-size, 26px);
  font-weight: var(--pls-h-weight, 700);
  color: var(--pls-h-color, #0f172a);
  letter-spacing: 0.4px;
  position: relative;
}
.pls-headline:after{
  content: "";
  display: block;
  width: var(--pls-h-uw, 80px);
  height: var(--pls-h-uh, 4px);
  margin: 8px auto 0;
  border-radius: 10px;
  background: linear-gradient(to right, var(--pls-h-c1, #22c55e), var(--pls-h-c2, #06b6d4));
  opacity: 1;
}
.pls-headline-wrap[style*="--pls-h-uline:0"] .pls-headline:after{
  display:none;
}
