.kelc {
  --kelc-gap: 32px;
  --kelc-per-view: 5;
  position: relative;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.kelc__viewport {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}

.kelc__track {
  display: flex;
  gap: var(--kelc-gap);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  touch-action: pan-y pinch-zoom;
}

.kelc[data-animation-mode="continuous"] .kelc__track {
  scroll-behavior: auto;
  scroll-snap-type: none;
}

.kelc__track::-webkit-scrollbar { display: none; }

.kelc__item {
  flex: 0 0 var(--kelc-item-width, 20%);
  min-width: 0;
  scroll-snap-align: start;
}

.kelc__item-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.kelc[data-normalize="1"] .kelc__item-inner { overflow: hidden; }

.kelc__link { cursor: pointer; }
.kelc__logo { display: block; width: 100%; max-width: 100%; height: 90px; object-fit: contain; transform: scale(var(--kelc-logo-scale, 1)); transition: filter .25s ease, opacity .25s ease, transform .25s ease; }
/* Individual sizing must override Elementor’s optional cover setting. */
.kelc .kelc__logo--contained { object-fit: contain !important; }
.kelc--grayscale .kelc__logo { filter: grayscale(1); }
.kelc--grayscale .kelc__item:hover .kelc__logo { filter: grayscale(0); }

.kelc__arrow {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  color: currentColor;
  background: #fff;
  border: 1px solid currentColor;
  border-radius: 50%;
  cursor: pointer;
}
.kelc__arrow:disabled { opacity: .35; cursor: default; }

.kelc__arrows {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 20px;
}

.kelc__arrow-icon {
  display: block;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.kelc__arrow-icon--custom {
  background-color: currentColor;
  -webkit-mask: var(--kelc-arrow-svg) center / contain no-repeat;
  mask: var(--kelc-arrow-svg) center / contain no-repeat;
}

.kelc__dots { display: flex; justify-content: center; gap: 8px; margin-top: 18px; }
.kelc__dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: currentColor; opacity: .3; cursor: pointer; }
.kelc__dot.is-active { opacity: 1; }

@media (max-width: 767px) {
  .kelc {
    overflow-x: hidden;
  }
}

@media (prefers-reduced-motion: reduce) {
  .kelc__track { scroll-behavior: auto; }
  .kelc__logo { transition: none; }
}
