/**
 * Image Carousel Block Styles
 * Continuous looping carousel moving right to left
 */

.image-carousel-block {
    --carousel-height: 400px;
    --carousel-height-mobile: 250px;
    --carousel-gap: 20px;
    --carousel-duration: 30s;
    --carousel-scroll-distance: 50%;
    
    width: 100%;
    overflow: hidden;
    position: relative;
    height: var(--carousel-height);
}

.carousel-track {
    display: flex;
    gap: var(--carousel-gap);
    height: 100%;
    width: max-content;
    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

/* Only animate after JS has calculated exact distance */
.image-carousel-block.carousel-initialized .carousel-track {
    animation: scroll-left var(--carousel-duration) linear infinite;
}

/* Pause animation on hover when enabled */
.image-carousel-block[data-pause-hover="true"]:hover .carousel-track {
    animation-play-state: paused;
}

.carousel-slide {
    flex-shrink: 0;
    height: 100%;
    display: flex;
    align-items: center;
}

.carousel-slide img {
    height: 100%;
    width: auto;
    object-fit: cover;
    display: block;
    vertical-align: middle;
}

/* Continuous scroll animation using exact pixel value */
@keyframes scroll-left {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(calc(var(--carousel-scroll-distance) * -1));
    }
}

/* Mobile responsive */
@media screen and (max-width: 768px) {
    .image-carousel-block {
        height: var(--carousel-height-mobile);
    }
}

/* Editor placeholder styles */
.image-carousel-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 200px;
    background-color: #f0f0f0;
    border: 2px dashed #ccc;
    border-radius: 4px;
    padding: 20px;
}

.image-carousel-placeholder p {
    color: #666;
    font-size: 14px;
    margin: 0;
}
