/**
 * Logo Slider Widget Styles
 */

.cao-logo-slider {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.cao-logo-slider__track {
    overflow: hidden;
    width: 100%;
}

.cao-logo-slider__slides {
    display: flex;
    align-items: center;
    transition: transform 0.5s ease;
}

/* Static display (items fit viewport): center items. */
.cao-logo-slider--static .cao-logo-slider__slides {
    justify-content: center;
}

/* Scroll mode: left-align, no transition (CSS animation handles movement). */
.cao-logo-slider[data-slider-type="scroll"] .cao-logo-slider__slides {
    justify-content: flex-start;
    transition: none;
}

.cao-logo-slider__item {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.cao-logo-slider__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.cao-logo-slider__logo img {
    max-width: 100%;
    height: auto;
    object-fit: contain;
    transition: opacity 0.3s ease, filter 0.3s ease, transform 0.3s ease;
}

.cao-logo-slider__item:hover .cao-logo-slider__logo img,
.cao-logo-slider__item:focus-within .cao-logo-slider__logo img {
    transform: scale(1.05);
}

/* Auto Fit Width: JS calculates and forces item width from image natural size */
.cao-logo-slider--auto-fit .cao-logo-slider__item {
    flex-shrink: 0;
    box-sizing: content-box;
}

.cao-logo-slider--auto-fit .cao-logo-slider__logo {
    display: block;
    line-height: 0;
}

.cao-logo-slider--auto-fit .cao-logo-slider__logo img {
    display: block;
}

/* Grayscale effect */
.cao-logo-slider--grayscale .cao-logo-slider__logo img {
    filter: grayscale(100%);
}

.cao-logo-slider--grayscale.cao-logo-slider--color-hover .cao-logo-slider__item:hover .cao-logo-slider__logo img,
.cao-logo-slider--grayscale.cao-logo-slider--color-hover .cao-logo-slider__item:focus-within .cao-logo-slider__logo img {
    filter: grayscale(0%);
}

/* Continuous scroll animation */
.cao-logo-slider[data-slider-type="scroll"] .cao-logo-slider__slides {
    animation-name: cao-logo-scroll;
    animation-duration: var(--scroll-duration, 30s);
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}

.cao-logo-slider[data-slider-type="scroll"].cao-logo-slider--paused .cao-logo-slider__slides {
    animation-play-state: paused;
}

@keyframes cao-logo-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(var(--scroll-distance, -50%));
    }
}

@keyframes cao-logo-scroll-reverse {
    0% {
        transform: translateX(var(--scroll-distance, -50%));
    }
    100% {
        transform: translateX(0);
    }
}

.cao-logo-slider[data-scroll-direction="right"] .cao-logo-slider__slides {
    animation-name: cao-logo-scroll-reverse;
}

/* Navigation arrows */
.cao-logo-slider__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    border: none;
    background: rgba(255, 255, 255, 0.9);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.3s ease, opacity 0.3s ease;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.cao-logo-slider__arrow:hover,
.cao-logo-slider__arrow:focus-visible {
    background: #ffffff;
}

.cao-logo-slider__arrow:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.cao-logo-slider__arrow--prev {
    left: 10px;
}

.cao-logo-slider__arrow--next {
    right: 10px;
}

/* Navigation dots */
.cao-logo-slider__dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 20px;
}

.cao-logo-slider__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #cccccc;
    border: none;
    cursor: pointer;
    padding: 0;
    transition: background 0.3s ease, transform 0.3s ease;
}

.cao-logo-slider__dot:hover,
.cao-logo-slider__dot:focus-visible {
    transform: scale(1.2);
}

.cao-logo-slider__dot.active {
    background: #333333;
}

/* Placeholder for editor */
.cao-logo-slider__placeholder {
    padding: 40px;
    text-align: center;
    background: #f5f5f5;
    border: 2px dashed #ddd;
    border-radius: 4px;
}

.cao-logo-slider__placeholder p {
    margin: 0;
    color: #666;
}

/* Editor preview styles */
.cao-logo-slider--editor .cao-logo-slider__slides {
    justify-content: center;
}

/* Responsive */
@media (max-width: 1024px) {
    .cao-logo-slider__arrow {
        width: 35px;
        height: 35px;
    }
}

@media (max-width: 767px) {
    .cao-logo-slider__arrow {
        width: 30px;
        height: 30px;
    }

    .cao-logo-slider__arrow--prev {
        left: 5px;
    }

    .cao-logo-slider__arrow--next {
        right: 5px;
    }

    .cao-logo-slider__dots {
        margin-top: 15px;
    }
}
