.ls-f440b588-wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.ls-f440b588-container {
    --ls-cols: 4;
    --ls-gap: 20px;
    --ls-speed: 30s;
}

/* Item styling */
.ls-f440b588-item {
    display: flex;
    align-items: center;
    justify-content: center;
}

.ls-f440b588-item img {
    max-width: 100%;
    height: auto;
    object-fit: contain;
    transition: all 0.3s ease;
}

.ls-f440b588-item a {
    display: block;
    width: 100%;
}

/* Grayscale Effects */
.ls-f440b588-effect-hover_color .ls-f440b588-item img {
    filter: grayscale(100%);
    opacity: 0.7;
}
.ls-f440b588-effect-hover_color .ls-f440b588-item:hover img {
    filter: grayscale(0%);
    opacity: 1;
}

.ls-f440b588-effect-hover_gray .ls-f440b588-item img {
    filter: grayscale(0%);
}
.ls-f440b588-effect-hover_gray .ls-f440b588-item:hover img {
    filter: grayscale(100%);
    opacity: 0.7;
}

/* Layout: Grid */
.ls-f440b588-layout-grid {
    display: grid;
    grid-template-columns: repeat(var(--ls-cols), 1fr);
    gap: var(--ls-gap);
}

/* Layout: Justified */
.ls-f440b588-layout-justified {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--ls-gap);
}
.ls-f440b588-layout-justified .ls-f440b588-item {
    flex: 0 1 auto;
    min-width: 120px;
}

/* Layout: Carousel (Infinite Marquee) */
.ls-f440b588-layout-carousel {
    display: flex;
    gap: var(--ls-gap);
    width: max-content;
    animation: ls-f440b588-marquee var(--ls-speed) linear infinite;
}

.ls-f440b588-layout-carousel:hover {
    animation-play-state: paused;
}

.ls-f440b588-layout-carousel .ls-f440b588-item {
    flex: 0 0 auto;
    width: 150px; /* Base width for carousel items, adjustable via CSS if needed */
}

@keyframes ls-f440b588-marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(calc(-50% - (var(--ls-gap) / 2))); }
}
