/*
 * Pretty Reviews — APR Sol
 * Carrousel responsive
 */

.prettyreviews {
    --pr-gold: #c8912f;
    --pr-gold-light: #e2b65f;
    --pr-anthracite: #242424;
    --pr-anthracite-light: #3a3a3a;
    --pr-text: #4b4b4b;
    --pr-muted: #888;
    --pr-surface: #fff;
    --pr-border: rgba(200, 145, 47, 0.28);
    --pr-shadow: 0 10px 28px rgba(0, 0, 0, 0.08);
    --pr-radius: 14px;

    position: relative;
    width: 100%;
}

/*
 * Titre de la section
 */

.prettyreviews-title {
    position: relative;
    margin: 0 0 40px;
    padding-bottom: 18px;
    color: var(--pr-anthracite);
    font-size: clamp(26px, 2.2vw, 36px);
    font-weight: 400;
    text-align: center;
}

.prettyreviews-title::after {
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 80px;
    height: 2px;
    content: "";
    background: linear-gradient(
        90deg,
        transparent,
        var(--pr-gold),
        transparent
    );
    transform: translateX(-50%);
}

/*
 * Conteneur du carrousel
 */

[data-prettyreviews-carousel-wrapper] {
    position: relative;
    width: 100%;
    min-width: 0;
}

/*
 * Piste horizontale du carrousel
 */

.prettyreviews-track {
    --pr-cols: 1;
    --pr-gap: 1.5rem;

    display: flex !important;
    width: 100%;
    max-width: 100%;
    flex-flow: row nowrap !important;
    gap: var(--pr-gap);
    padding: 12px 6px 26px;
    overflow-x: auto !important;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scroll-padding-inline: 6px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
}

.prettyreviews-track::-webkit-scrollbar {
    display: none;
}

/*
 * Emplacement de chaque avis
 */

.prettyreviews-slide {
    display: flex !important;
    flex: 0 0 calc(
        (100% - (var(--pr-cols) - 1) * var(--pr-gap))
        / var(--pr-cols)
    ) !important;
    width: auto;
    min-width: 0;
    max-width: none;
    scroll-snap-align: start;
    scroll-snap-stop: always;
}

/*
 * Carte
 */

.prettyreviews-card {
    position: relative;
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 230px;
    flex-direction: column;
    overflow: hidden;
    color: var(--pr-text);
    background: var(--pr-surface);
    border: 1px solid var(--pr-border) !important;
    border-radius: var(--pr-radius);
    box-shadow: var(--pr-shadow) !important;
    transition:
        border-color 0.3s ease,
        box-shadow 0.3s ease,
        transform 0.3s ease;
}

.prettyreviews-card:hover {
    border-color: rgba(200, 145, 47, 0.65) !important;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.13) !important;
    transform: translateY(-4px);
}

/*
 * Trait décoratif supérieur
 */

.prettyreviews-card::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 2;
    height: 3px;
    content: "";
    background: linear-gradient(
        90deg,
        var(--pr-anthracite),
        var(--pr-gold),
        var(--pr-gold-light)
    );
}

/*
 * Guillemet décoratif
 */

.prettyreviews-card::after {
    position: absolute;
    top: 10px;
    right: 20px;
    z-index: 0;
    content: "“";
    color: rgba(200, 145, 47, 0.10);
    font-family: Georgia, serif;
    font-size: 85px;
    font-weight: 700;
    line-height: 1;
    pointer-events: none;
}

/*
 * Corps de la carte Bootstrap
 */

.prettyreviews-card .card-body {
    position: relative;
    z-index: 1;
    display: flex;
    width: 100%;
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: column;
}

/*
 * Première ligne :
 * avatar + nom + date
 */

.prettyreviews-header {
    display: flex;
    width: 100%;
    min-width: 0;
    align-items: center;
    gap: 14px;
    margin-bottom: 16px;
}

/*
 * Avatar
 */

.prettyreviews-avatar {
    display: block;
    width: 52px !important;
    height: 52px !important;
    flex: 0 0 52px;
    object-fit: cover;
    background: #f1f1f1;
    border: 2px solid var(--pr-gold);
    border-radius: 50%;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.12);
}

/*
 * Nom et date
 */

.prettyreviews-author-info {
    min-width: 0;
}

.prettyreviews-author {
    display: block;
    overflow: hidden;
    color: var(--pr-anthracite) !important;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.prettyreviews-author:hover,
.prettyreviews-author:focus {
    color: var(--pr-gold) !important;
}

.prettyreviews-date {
    margin-top: 4px;
    color: var(--pr-muted) !important;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.2;
}

/*
 * Deuxième ligne :
 * étoiles sur toute la largeur
 */

.prettyreviews-stars {
    display: block;
    width: 100%;
    margin: 0 0 16px;
    clear: both;
    color: var(--pr-gold) !important;
    font-size: 19px;
    line-height: 1;
    letter-spacing: 2px;
}

.prettyreviews-stars .fa-star {
    color: var(--pr-gold);
}

/*
 * Troisième ligne :
 * texte limité à trois lignes
 */

.prettyreviews-excerpt {
    display: -webkit-box !important;
    width: 100%;
    min-width: 0;
    min-height: calc(3 * 1.6em);
    max-height: calc(3 * 1.6em);
    margin: 0;
    overflow: hidden !important;
    color: var(--pr-text) !important;
    font-size: 15px;
    line-height: 1.6;
    text-align: left;
    text-overflow: ellipsis;
    overflow-wrap: anywhere;
    white-space: normal !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
}

/*
 * Résumé général de la note
 */

.prettyreviews-card-carousel > .d-flex:first-child {
    position: relative;
    padding: 20px 24px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(200, 145, 47, 0.20);
    border-radius: var(--pr-radius);
}

.prettyreviews-card-carousel .text-warning {
    color: var(--pr-gold) !important;
}

/*
 * Boutons Bootstrap du résumé
 */

.prettyreviews .btn-primary {
    color: #fff;
    background-color: var(--pr-anthracite);
    border-color: var(--pr-anthracite);
}

.prettyreviews .btn-primary:hover,
.prettyreviews .btn-primary:focus {
    color: var(--pr-anthracite);
    background-color: var(--pr-gold);
    border-color: var(--pr-gold);
}

.prettyreviews .btn-outline-primary {
    color: var(--pr-anthracite);
    background-color: transparent;
    border-color: var(--pr-gold);
}

.prettyreviews .btn-outline-primary:hover,
.prettyreviews .btn-outline-primary:focus {
    color: var(--pr-anthracite);
    background-color: var(--pr-gold);
    border-color: var(--pr-gold);
}

/*
 * Commandes du carrousel
 */

[data-prettyreviews-carousel-controls] {
    align-items: center;
    justify-content: center;
}

/*
 * Le JavaScript retire normalement d-none
 * lorsque le carrousel peut défiler.
 */

[data-prettyreviews-prev],
[data-prettyreviews-next] {
    display: inline-flex;
    width: 44px;
    height: 44px;
    padding: 0;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: var(--pr-anthracite);
    border: 1px solid var(--pr-anthracite);
    border-radius: 50%;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15);
    transition:
        color 0.25s ease,
        background-color 0.25s ease,
        border-color 0.25s ease,
        transform 0.25s ease;
}

[data-prettyreviews-prev]:hover,
[data-prettyreviews-next]:hover,
[data-prettyreviews-prev]:focus,
[data-prettyreviews-next]:focus {
    color: var(--pr-anthracite);
    background: var(--pr-gold);
    border-color: var(--pr-gold);
    transform: scale(1.06);
}

[data-prettyreviews-prev]:disabled,
[data-prettyreviews-next]:disabled {
    cursor: not-allowed;
    opacity: 0.4;
    transform: none;
}

/*
 * Nombre de colonnes
 */

.pr-cols-1 {
    --pr-cols: 1;
}

.pr-cols-2 {
    --pr-cols: 2;
}

.pr-cols-3 {
    --pr-cols: 3;
}

.pr-cols-4 {
    --pr-cols: 4;
}

.pr-cols-5 {
    --pr-cols: 5;
}

.pr-cols-6 {
    --pr-cols: 6;
}

/*
 * Tablette
 */

@media (min-width: 768px) {
    .pr-cols-md-1 {
        --pr-cols: 1;
    }

    .pr-cols-md-2 {
        --pr-cols: 2;
    }

    .pr-cols-md-3 {
        --pr-cols: 3;
    }

    .pr-cols-md-4 {
        --pr-cols: 4;
    }

    .pr-cols-md-5 {
        --pr-cols: 5;
    }

    .pr-cols-md-6 {
        --pr-cols: 6;
    }
}

/*
 * Ordinateur
 */

@media (min-width: 992px) {
    .pr-cols-lg-1 {
        --pr-cols: 1;
    }

    .pr-cols-lg-2 {
        --pr-cols: 2;
    }

    .pr-cols-lg-3 {
        --pr-cols: 3;
    }

    .pr-cols-lg-4 {
        --pr-cols: 4;
    }

    .pr-cols-lg-5 {
        --pr-cols: 5;
    }

    .pr-cols-lg-6 {
        --pr-cols: 6;
    }
}

/*
 * Grand écran
 */

@media (min-width: 1200px) {
    .pr-cols-xl-1 {
        --pr-cols: 1;
    }

    .pr-cols-xl-2 {
        --pr-cols: 2;
    }

    .pr-cols-xl-3 {
        --pr-cols: 3;
    }

    .pr-cols-xl-4 {
        --pr-cols: 4;
    }

    .pr-cols-xl-5 {
        --pr-cols: 5;
    }

    .pr-cols-xl-6 {
        --pr-cols: 6;
    }
}

/*
 * Smartphone
 */

@media (max-width: 767.98px) {
    .prettyreviews {
        padding: 35px 0;
    }

    .prettyreviews-track {
        --pr-gap: 1rem;
        padding-inline: 4px;
    }

    .prettyreviews-card {
        min-height: 220px;
    }

    .prettyreviews-card .card-body {
        padding: 22px 20px !important;
    }

    .prettyreviews-avatar {
        width: 46px !important;
        height: 46px !important;
        flex-basis: 46px;
    }

    .prettyreviews-stars {
        font-size: 18px;
    }

    .prettyreviews-excerpt {
        font-size: 14px;
    }
}

/*
 * Accessibilité
 */

@media (prefers-reduced-motion: reduce) {
    .prettyreviews-track {
        scroll-behavior: auto;
    }

    .prettyreviews-card,
    [data-prettyreviews-prev],
    [data-prettyreviews-next] {
        transition: none;
    }
}