/* ===========================================================
   Avis clients — diaporama (carrousel)
   Défilement auto 4 s · pause 5 s dès qu'on touche ou revient
   sur un avis · glissement manuel au doigt ou à la souris
   =========================================================== */

.reviews-carousel {
    position: relative;
    margin-top: clamp(40px, 5vw, 64px);
}

.reviews-viewport {
    overflow: hidden;
    border-radius: 24px;
    touch-action: pan-y;
    cursor: grab;
}
.reviews-carousel.is-dragging .reviews-viewport { cursor: grabbing; }

.reviews-track {
    display: flex;
    align-items: stretch;
    transition: transform 1.1s cubic-bezier(.33, .05, .15, 1);
    will-change: transform;
}

.reviews-track > .review-card {
    flex: 0 0 100%;
    min-width: 100%;
    margin: 0;
    opacity: 1;
    transform: none;
    animation: none;
}
.reviews-track > .review-card:hover { transform: none; box-shadow: none; }
.reviews-carousel .review-card { padding: clamp(32px, 4vw, 56px); }
.reviews-carousel .review-text {
    font-size: clamp(17px, 1.35vw, 21px);
    line-height: 1.55;
    max-width: 62ch;
}

.reviews-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin-top: clamp(20px, 2.4vw, 30px);
}

.reviews-arrow {
    width: 44px; height: 44px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 999px;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .18);
    color: rgba(255, 255, 255, .8);
    font-size: 16px; line-height: 1;
    cursor: pointer;
    transition: border-color .35s var(--ease), color .35s var(--ease), background .35s var(--ease);
}
.reviews-arrow:hover {
    border-color: rgba(255, 61, 46, .55);
    color: #fff;
    background: rgba(255, 61, 46, .08);
}
.reviews-arrow:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

.reviews-dots { display: flex; align-items: center; gap: 10px; }

.reviews-dot {
    width: 26px; height: 4px;
    padding: 0; border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .2);
    cursor: pointer;
    transition: background .4s var(--ease), width .4s var(--ease);
}
.reviews-dot[aria-current="true"] { background: var(--accent); width: 42px; }
.reviews-dot:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

.reviews-progress {
    position: relative;
    height: 1px;
    margin: 14px auto 0;
    max-width: 220px;
    background: rgba(255, 255, 255, .1);
    overflow: hidden;
}
.reviews-progress span {
    position: absolute; inset: 0 auto 0 0;
    width: 0;
    background: var(--accent);
    opacity: .55;
}

@media (max-width: 600px) {
    .reviews-arrow { display: none; }
    .reviews-carousel .review-card { padding: 26px 22px; gap: 26px; }
    .reviews-carousel .review-text { font-size: 16px; }
    .reviews-carousel .review-card::before { font-size: 88px; right: 14px; }
    .reviews-controls { margin-top: 16px; }
}

@media (prefers-reduced-motion: reduce) {
    .reviews-track { transition: none; }
}
