/* ──────────────────────────────────────────────────────────────
   Dine Local — Carousel (Testimonials)
   Minimal carousel — no autoplay, prev/next + dots, swipe enabled.
   ────────────────────────────────────────────────────────────── */

.carousel {
    position: relative;
    overflow: hidden;
}

.carousel__track {
    display: flex;
    transition: transform var(--transition-base);
    scroll-snap-type: x mandatory;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

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

.carousel__slide {
    flex: 0 0 100%;
    scroll-snap-align: center;
    padding: var(--space-2);
}

.carousel__controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    margin-top: var(--space-3);
}

.carousel__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 2px solid var(--color-primary);
    border-radius: 50%;
    background: var(--color-bg);
    color: var(--color-primary);
    cursor: pointer;
    font-size: var(--text-lg);
    transition: background-color var(--transition-fast),
                color var(--transition-fast);
}

.carousel__btn:hover {
    background-color: var(--color-primary-tint);
}

.carousel__btn:focus-visible {
    outline: 3px solid var(--color-primary);
    outline-offset: 2px;
}

.carousel__btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.carousel__dots {
    display: flex;
    gap: var(--space-1);
}

.carousel__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: none;
    background-color: var(--color-border);
    cursor: pointer;
    transition: background-color var(--transition-fast);
    padding: 0;
}

.carousel__dot--active {
    background-color: var(--color-primary);
}

.carousel__dot:focus-visible {
    outline: 3px solid var(--color-primary);
    outline-offset: 2px;
}

/* ── Testimonial slide content ────────────────────────────── */
.testimonial {
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}

.testimonial__quote {
    font-size: var(--text-xl);
    line-height: var(--leading-normal);
    color: var(--color-ink);
    font-style: italic;
    margin-bottom: var(--space-3);
}

.testimonial__author {
    font-size: var(--text-base);
    font-weight: var(--weight-semibold);
    color: var(--color-ink);
}

.testimonial__restaurant {
    font-size: var(--text-sm);
    color: var(--color-muted);
}

/* Reduced motion: stack all slides, hide controls */
@media (prefers-reduced-motion: reduce) {
    .carousel__track {
        flex-direction: column;
        overflow-x: visible;
        scroll-snap-type: none;
    }

    .carousel__slide {
        flex: none;
    }

    .carousel__controls {
        display: none;
    }
}
