/* Infinite Scroll Animation */
@keyframes scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@keyframes scroll-reverse {
    0% { transform: translateX(-50%); }
    100% { transform: translateX(0); }
}

/* Carousel Container */
.carousel-container {
    display: flex;
    width: 100%;
    overflow: hidden;
    position: relative;
    mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
}

/* Carousel Track */
.carousel-track {
    display: flex;
    width: max-content;
    animation: scroll 40s linear infinite;
    cursor: grab;
    user-select: none;
    -webkit-user-select: none;
}

.carousel-track:active {
    cursor: grabbing;
}

.carousel-track-reverse {
    display: flex;
    width: max-content;
    animation: scroll-reverse 40s linear infinite;
}

/* Pause on hover */
.carousel-container:hover .carousel-track,
.carousel-container:hover .carousel-track-reverse {
    animation-play-state: paused;
}

/* Testimonial Card Styling */
.testimonial-card {
    flex-shrink: 0;
}

/* Shadow Gradients for Carousels */
.shadow-scroll::before,
.shadow-scroll::after {
    content: "";
    position: absolute;
    top: 0; width: 100px; height: 100%;
    z-index: 2;
}
.shadow-scroll::before { left: 0; background: linear-gradient(to right, #050505, transparent); }
.shadow-scroll::after { right: 0; background: linear-gradient(to left, #050505, transparent); }

/* Reveal on scroll animation */
.reveal { opacity: 0; transform: translateY(30px); transition: all 0.8s cubic-bezier(0.22, 1, 0.36, 1); }
.reveal.active { opacity: 1; transform: translateY(0); }

/* === Video Carousel (Mobile) / Grid (Desktop) === */
.video-carousel-container {
    position: relative;
    overflow: hidden;
    width: 100%;
    max-width: 340px;
    margin: 0 auto;
}

.video-carousel-track {
    display: flex;
    transition: transform 0.5s ease-in-out;
    width: 100%;
}

.video-slide {
    min-width: 100%;
    padding: 0 8px;
    box-sizing: border-box;
}

/* Dots indicator - mobile only */
.video-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 20px;
}

.video-dots .dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255,255,255,0.2);
    transition: all 0.3s ease;
}

.video-dots .dot.active {
    background: #10b981;
    width: 24px;
    border-radius: 4px;
}

/* Desktop: 2-column grid, no carousel */
@media (min-width: 640px) {
    .video-carousel-container {
        max-width: 700px;
        overflow: visible;
    }

    .video-carousel-track {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 2.5rem;
        transform: none !important;
        transition: none;
    }

    .video-slide {
        min-width: 0;
        padding: 0;
    }

    .video-dots {
        display: none;
    }
}

/* Mobile menu transition */
#mobile-menu {
    transition: max-height 0.4s ease-in-out, border-color 0.3s ease;
}

/* Lightbox animation */
#lightbox img {
    animation: lightboxIn 0.3s ease-out;
}

@keyframes lightboxIn {
    from { transform: scale(0.85); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}
