/* ============================================================================
   Carousel Google Reviews - Styles de base
   ============================================================================ */

/* Surcharge des styles Elementor par défaut qui interfèrent */
.elementor-element.elementor-arrows-position-outside .swiper,
.elementor-element.elementor-arrows-position-tablet-outside .swiper,
.elementor-element.elementor-arrows-position-mobile-outside .swiper {
    width: 100% !important;
}

.elementor-carousel-google-reviews-wrapper {
    position: relative;
    width: 100%;
    --swiper-slide-gap: 20px; /* Valeur par défaut */
    --dots-margin-top: 20px; /* Margin-top de la pagination */
    --dots-height: 10px; /* Hauteur par défaut des dots */
}

/* En conteneur flex Elementor, le widget peut se réduire a 0px en mode images (fond sans contenu textuel). */
.elementor-widget-carousel-google-reviews,
.elementor-widget-carousel-google-reviews > .elementor-widget-container {
    width: 100%;
    max-width: 100%;
}

.elementor-carousel-google-reviews-wrapper.s4-has-stage-padding {
    box-sizing: border-box;
    padding-inline-end: var(--s4-stage-padding-end, 0px);
    overflow: visible;
}

.elementor-carousel-google-reviews {
    display: flex;
}

.elementor-carousel-google-reviews .swiper-slide {
    /* Largeur calculée en déduisant les gaps : pour n slides, il y a n-1 gaps */
    width: calc((100% - (var(--e-carousel-slides-to-show, 3) - 1) * var(--swiper-slide-gap, 20px)) / var(--e-carousel-slides-to-show, 3));
    max-width: calc((100% - (var(--e-carousel-slides-to-show, 3) - 1) * var(--swiper-slide-gap, 20px)) / var(--e-carousel-slides-to-show, 3));
    flex: 0 0 calc((100% - (var(--e-carousel-slides-to-show, 3) - 1) * var(--swiper-slide-gap, 20px)) / var(--e-carousel-slides-to-show, 3));
    box-sizing: border-box;
}

.google-review-card {
    display: flex;
    flex-direction: column;
    padding: 30px;
    height: 100%;
    min-height: 250px;
    transition: all 0.3s ease;
}

.google-review-image-card {
    width: 100%;
    height: 100%;
    min-height: 250px;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    background-color: rgba(0, 0, 0, 0.15);
}

/* État étendu (quand on clique sur "Lire plus") */
.google-review-card.expanded {
    height: auto !important; /* Override la hauteur fixe */
}

.google-review-card.expanded .google-review-card__text {
    -webkit-line-clamp: unset; /* Enlève la limite de lignes */
    line-clamp: unset;
    max-height: none;
}

/* ============================================================================
   Étoiles
   ============================================================================ */

.google-review-card__stars {
    display: flex;
    gap: 5px;
    margin-bottom: 20px;
    font-size: 20px;
}

.google-review-card__stars .star {
    display: inline-block;
}

/* ============================================================================
   Texte de l'avis
   ============================================================================ */

.google-review-card__text {
    flex: 1;
    font-size: 16px;
    line-height: 1.6;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 8; /* Limite le nombre de lignes */
    line-clamp: 8;
    transition: all 0.4s ease;
    position: relative;
}

/* Lien "Lire plus" / "Lire moins" - maintenant après le texte */
.google-review-card .read-more-link {
    display: block;
    font-size: 14px;
    font-weight: 600;
    text-decoration: underline;
    cursor: pointer;
    transition: opacity 0.3s ease;
    margin-top: 10px;
    margin-bottom: 20px;
}

.google-review-card .read-more-link:hover {
    opacity: 0.7;
}

/* Styles spécifiques pour "Lire plus" selon le style de carte */
.carousel-google-reviews-style-white .google-review-card .read-more-link {
    color: #666666;
}

.carousel-google-reviews-style-black .google-review-card .read-more-link {
    color: #AAAAAA;
}

/* ============================================================================
   Footer (auteur + date)
   ============================================================================ */

.google-review-card__footer {
    margin-top: auto;
    padding-top: 15px;
}

.google-review-card__author {
    font-weight: 600;
    font-size: 16px;
    margin-bottom: 5px;
}

.google-review-card__date {
    font-size: 14px;
    opacity: 0.8;
}

/* ============================================================================
   STYLE: Arrière-plan blanc
   ============================================================================ */

.carousel-google-reviews-style-white .google-review-card {
    background: #FFFFFF;
    color: #000000;
}

.carousel-google-reviews-style-white .google-review-card__stars .star-full,
.carousel-google-reviews-style-white .google-review-card__stars .star-half {
    color: #D6BB81; /* Jaune/doré pour les étoiles */
}

.carousel-google-reviews-style-white .google-review-card__stars .star-empty {
    color: #E0E0E0; /* Gris clair pour les étoiles vides */
}

.carousel-google-reviews-style-white .google-review-card__author {
    color: #D6BB81;
}

.carousel-google-reviews-style-white .google-review-card__date {
    color: #D6BB81;
}

/* ============================================================================
   STYLE: Arrière-plan noir
   ============================================================================ */

.carousel-google-reviews-style-black .google-review-card {
    background: #000000;
    color: #FFFFFF;
}

.carousel-google-reviews-style-black .google-review-card__stars .star-full,
.carousel-google-reviews-style-black .google-review-card__stars .star-half {
    color: #D6BB81; /* Jaune/doré pour les étoiles */
}

.carousel-google-reviews-style-black .google-review-card__stars .star-empty {
    color: #444444; /* Gris foncé pour les étoiles vides */
}

.carousel-google-reviews-style-black .google-review-card__author {
    color: #D6BB81;
}

.carousel-google-reviews-style-black .google-review-card__date {
    color: #D6BB81;
}

/* ============================================================================
   Type de fond des vignettes
   ============================================================================ */

/* Opaque (défaut) - 100% opacité */
.carousel-google-reviews-bg-opaque.carousel-google-reviews-style-white .google-review-card {
    background: #FFFFFF;
    opacity: 1;
}

.carousel-google-reviews-bg-opaque.carousel-google-reviews-style-black .google-review-card {
    background: #000000;
    opacity: 1;
}

/* Semi-transparent - ~70% opacité */
.carousel-google-reviews-bg-semi-transparent.carousel-google-reviews-style-white .google-review-card {
    background: rgba(255, 255, 255, 0.7);
}

.carousel-google-reviews-bg-semi-transparent.carousel-google-reviews-style-black .google-review-card {
    background: rgba(0, 0, 0, 0.7);
}

/* Flou (blur + brightness) avec backdrop-filter */
.carousel-google-reviews-bg-blur.carousel-google-reviews-style-white .google-review-card {
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(23px) brightness(115%);
    -webkit-backdrop-filter: blur(23px) brightness(115%);
}

.carousel-google-reviews-bg-blur.carousel-google-reviews-style-black .google-review-card {
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(23px) brightness(115%);
    -webkit-backdrop-filter: blur(23px) brightness(115%);
}


/* ============================================================================
   Navigation - Flèches
   ============================================================================ */

.elementor-carousel-google-reviews-wrapper .elementor-swiper-button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: 2px solid #FFFFFF;
    transition: all 0.3s ease;
}

/* Pseudo-élément pour le background avec opacité au hover */
.elementor-carousel-google-reviews-wrapper .elementor-swiper-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border-radius: 50%;
    background-color: var(--arrow-hover-bg, #FFFFFF);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: -1;
}

.elementor-carousel-google-reviews-wrapper .elementor-swiper-button:hover::before {
    opacity: 0.5;
}

.elementor-carousel-google-reviews-wrapper .elementor-swiper-button-prev {
    left: 20px;
}

.elementor-carousel-google-reviews-wrapper .elementor-swiper-button-next {
    right: 20px;
}

/* ============================================================================
   Position des flèches - Desktop (défaut)
   ============================================================================ */

/* Position "Outside" pour les flèches - Desktop par défaut */
.elementor-arrows-position-outside .elementor-carousel-google-reviews-wrapper {
    position: static;
}

/* Position "Inside" - Desktop par défaut */
.elementor-arrows-position-inside .elementor-carousel-google-reviews-wrapper {
    padding-top: 0 !important;
}

.elementor-arrows-position-inside > .elementor-widget-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Position "Above" - Desktop par défaut */
.elementor-arrows-position-above > .elementor-widget-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.elementor-arrows-position-above .elementor-swiper-button {
    top: 0 !important;
    transform: unset !important;
}

/* Position "Bottom" - Desktop par défaut */
.elementor-arrows-position-bottom > .elementor-widget-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.elementor-arrows-position-bottom .elementor-carousel-google-reviews-wrapper {
    position: relative;
}

.elementor-arrows-position-bottom .elementor-swiper-button {
    top: unset !important;
    bottom: 0 !important;
    transform: unset !important;
}

.elementor-arrows-position-bottom .elementor-swiper-button-prev {
    left: unset !important;
    right: 60px !important;
}

.elementor-arrows-position-bottom .elementor-swiper-button-next {
    left: unset !important;
    right: 0 !important;
}

/* ============================================================================
   Position des flèches - Responsive
   ============================================================================ */

/* Écran large (à partir de 2000px) */
@media (min-width: 2000px) {
    /* Position Inside */
    .elementor-arrows-position-widescreen-inside .elementor-carousel-google-reviews-wrapper {
        position: relative;
        padding-top: 0 !important;
    }
    
    .elementor-arrows-position-widescreen-inside > .elementor-widget-container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .elementor-arrows-position-widescreen-inside .elementor-swiper-button {
        top: 50% !important;
        transform: translateY(-50%) !important;
    }
    
    /* Position Outside */
    .elementor-arrows-position-widescreen-outside .elementor-carousel-google-reviews-wrapper {
        position: static;
        padding-top: 0 !important;
    }
    
    .elementor-arrows-position-widescreen-outside > .elementor-widget-container {
        padding-left: calc(max(50px, var(--arrows-size-widescreen, 50px)) + 20px) !important;
        padding-right: calc(max(50px, var(--arrows-size-widescreen, 50px)) + 20px) !important;
    }
    
    .elementor-arrows-position-widescreen-outside .elementor-swiper-button {
        top: 50% !important;
        transform: translateY(-50%) !important;
    }
    
    /* Position Above */
    .elementor-arrows-position-widescreen-above > .elementor-widget-container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .elementor-arrows-position-widescreen-above .elementor-carousel-google-reviews-wrapper {
        position: relative;
        padding-top: calc(max(50px, var(--arrows-size-widescreen, 50px)) + 20px) !important;
    }
    
    .elementor-arrows-position-widescreen-above .elementor-swiper-button {
        top: 0 !important;
        transform: unset !important;
    }
    
    .elementor-arrows-position-widescreen-above .elementor-swiper-button-prev {
        left: unset !important;
        right: calc(max(50px, var(--arrows-size-widescreen, 50px)) + 10px) !important;
    }
    
    .elementor-arrows-position-widescreen-above .elementor-swiper-button-next {
        left: unset !important;
        right: 0 !important;
    }
    
    /* Ajustement du positionnement des flèches quand dots activés en position outside */
    .elementor-arrows-position-widescreen-inside:not(.elementor-pagination-position-inside):not(.elementor-arrows-position-widescreen-above) .elementor-carousel-google-reviews-wrapper:has(.swiper-pagination) .elementor-swiper-button,
    .elementor-arrows-position-widescreen-outside:not(.elementor-pagination-position-inside):not(.elementor-arrows-position-widescreen-above) .elementor-carousel-google-reviews-wrapper:has(.swiper-pagination) .elementor-swiper-button {
        top: calc(50% - (var(--dots-height, 10px) + var(--dots-margin-top, 20px) + 30px) / 2) !important;
    }
}

/* Portable (jusqu'à 1549px) */
@media (max-width: 1549px) {
    /* Position Inside */
    .elementor-arrows-position-laptop-inside .elementor-carousel-google-reviews-wrapper {
        position: relative;
        padding-top: 0 !important;
    }
    
    .elementor-arrows-position-laptop-inside > .elementor-widget-container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .elementor-arrows-position-laptop-inside .elementor-swiper-button {
        top: 50% !important;
        transform: translateY(-50%) !important;
    }
    
    /* Position Outside */
    .elementor-arrows-position-laptop-outside .elementor-carousel-google-reviews-wrapper {
        position: static;
        padding-top: 0 !important;
    }
    
    .elementor-arrows-position-laptop-outside > .elementor-widget-container {
        padding-left: calc(max(50px, var(--arrows-size-laptop, 50px)) + 20px) !important;
        padding-right: calc(max(50px, var(--arrows-size-laptop, 50px)) + 20px) !important;
    }
    
    .elementor-arrows-position-laptop-outside .elementor-swiper-button {
        top: 50% !important;
        transform: translateY(-50%) !important;
    }
    
    /* Position Above */
    .elementor-arrows-position-laptop-above > .elementor-widget-container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .elementor-arrows-position-laptop-above .elementor-carousel-google-reviews-wrapper {
        position: relative;
        padding-top: calc(max(50px, var(--arrows-size-laptop, 50px)) + 20px) !important;
    }
    
    .elementor-arrows-position-laptop-above .elementor-swiper-button {
        top: 0 !important;
        transform: unset !important;
    }
    
    .elementor-arrows-position-laptop-above .elementor-swiper-button-prev {
        left: unset !important;
        right: calc(max(50px, var(--arrows-size-laptop, 50px)) + 10px) !important;
    }
    
    .elementor-arrows-position-laptop-above .elementor-swiper-button-next {
        left: unset !important;
        right: 0 !important;
    }
    
    /* Ajustement du positionnement des flèches quand dots activés en position outside */
    .elementor-arrows-position-laptop-inside:not(.elementor-pagination-position-inside):not(.elementor-arrows-position-laptop-above) .elementor-carousel-google-reviews-wrapper:has(.swiper-pagination) .elementor-swiper-button,
    .elementor-arrows-position-laptop-outside:not(.elementor-pagination-position-inside):not(.elementor-arrows-position-laptop-above) .elementor-carousel-google-reviews-wrapper:has(.swiper-pagination) .elementor-swiper-button {
        top: calc(50% - (var(--dots-height, 10px) + var(--dots-margin-top, 20px) + 30px) / 2) !important;
    }
}

/* Tablette en mode paysage (jusqu'à 1199px) */
@media (max-width: 1199px) {
    /* Position Inside */
    .elementor-arrows-position-tablet_extra-inside .elementor-carousel-google-reviews-wrapper {
        position: relative;
        padding-top: 0 !important;
    }
    
    .elementor-arrows-position-tablet_extra-inside > .elementor-widget-container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .elementor-arrows-position-tablet_extra-inside .elementor-swiper-button {
        top: 50% !important;
        transform: translateY(-50%) !important;
    }
    
    /* Position Outside */
    .elementor-arrows-position-tablet_extra-outside .elementor-carousel-google-reviews-wrapper {
        position: static;
        padding-top: 0 !important;
    }
    
    .elementor-arrows-position-tablet_extra-outside > .elementor-widget-container {
        padding-left: calc(max(50px, var(--arrows-size-tablet-extra, 50px)) + 20px) !important;
        padding-right: calc(max(50px, var(--arrows-size-tablet-extra, 50px)) + 20px) !important;
    }
    
    .elementor-arrows-position-tablet_extra-outside .elementor-swiper-button {
        top: 50% !important;
        transform: translateY(-50%) !important;
    }
    
    /* Position Above */
    .elementor-arrows-position-tablet_extra-above > .elementor-widget-container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .elementor-arrows-position-tablet_extra-above .elementor-carousel-google-reviews-wrapper {
        position: relative;
        padding-top: calc(max(50px, var(--arrows-size-tablet-extra, 50px)) + 20px) !important;
    }
    
    .elementor-arrows-position-tablet_extra-above .elementor-swiper-button {
        top: 0 !important;
        transform: unset !important;
    }
    
    .elementor-arrows-position-tablet_extra-above .elementor-swiper-button-prev {
        left: unset !important;
        right: calc(max(50px, var(--arrows-size-tablet-extra, 50px)) + 10px) !important;
    }
    
    .elementor-arrows-position-tablet_extra-above .elementor-swiper-button-next {
        left: unset !important;
        right: 0 !important;
    }
    
    /* Ajustement du positionnement des flèches quand dots activés en position outside */
    .elementor-arrows-position-tablet_extra-inside:not(.elementor-pagination-position-inside):not(.elementor-arrows-position-tablet_extra-above) .elementor-carousel-google-reviews-wrapper:has(.swiper-pagination) .elementor-swiper-button,
    .elementor-arrows-position-tablet_extra-outside:not(.elementor-pagination-position-inside):not(.elementor-arrows-position-tablet_extra-above) .elementor-carousel-google-reviews-wrapper:has(.swiper-pagination) .elementor-swiper-button {
        top: calc(50% - (var(--dots-height, 10px) + var(--dots-margin-top, 20px) + 30px) / 2) !important;
    }
}

/* Tablette en mode portrait (jusqu'à 991px) */
@media (max-width: 991px) {
    /* Position Inside */
    .elementor-arrows-position-tablet-inside .elementor-carousel-google-reviews-wrapper {
        position: relative;
        padding-top: 0 !important;
    }
    
    .elementor-arrows-position-tablet-inside > .elementor-widget-container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .elementor-arrows-position-tablet-inside .elementor-swiper-button {
        top: 50% !important;
        transform: translateY(-50%) !important;
    }
    
    /* Position Outside */
    .elementor-arrows-position-tablet-outside .elementor-carousel-google-reviews-wrapper {
        position: static;
        padding-top: 0 !important;
    }
    
    .elementor-arrows-position-tablet-outside > .elementor-widget-container {
        padding-left: calc(max(50px, var(--arrows-size-tablet, 50px)) + 20px) !important;
        padding-right: calc(max(50px, var(--arrows-size-tablet, 50px)) + 20px) !important;
    }
    
    .elementor-arrows-position-tablet-outside .elementor-swiper-button {
        top: 50% !important;
        transform: translateY(-50%) !important;
    }
    
    /* Position Above */
    .elementor-arrows-position-tablet-above > .elementor-widget-container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .elementor-arrows-position-tablet-above .elementor-carousel-google-reviews-wrapper {
        position: relative;
        padding-top: calc(max(50px, var(--arrows-size-tablet, 50px)) + 20px) !important;
    }
    
    .elementor-arrows-position-tablet-above .elementor-swiper-button {
        top: 0 !important;
        transform: unset !important;
    }
    
    .elementor-arrows-position-tablet-above .elementor-swiper-button-prev {
        left: unset !important;
        right: calc(max(50px, var(--arrows-size-tablet, 50px)) + 10px) !important;
    }
    
    .elementor-arrows-position-tablet-above .elementor-swiper-button-next {
        left: unset !important;
        right: 0 !important;
    }
    
    /* Ajustement du positionnement des flèches quand dots activés en position outside */
    .elementor-arrows-position-tablet-inside:not(.elementor-pagination-position-inside):not(.elementor-arrows-position-tablet-above) .elementor-carousel-google-reviews-wrapper:has(.swiper-pagination) .elementor-swiper-button,
    .elementor-arrows-position-tablet-outside:not(.elementor-pagination-position-inside):not(.elementor-arrows-position-tablet-above) .elementor-carousel-google-reviews-wrapper:has(.swiper-pagination) .elementor-swiper-button {
        top: calc(50% - (var(--dots-height, 10px) + var(--dots-margin-top, 20px) + 30px) / 2) !important;
    }
}

/* Mobile Paysage (jusqu'à 767px) */
@media (max-width: 767px) {
    /* Position Inside */
    .elementor-arrows-position-mobile_extra-inside .elementor-carousel-google-reviews-wrapper {
        position: relative;
        padding-top: 0 !important;
    }
    
    .elementor-arrows-position-mobile_extra-inside > .elementor-widget-container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .elementor-arrows-position-mobile_extra-inside .elementor-swiper-button {
        top: 50% !important;
        transform: translateY(-50%) !important;
    }
    
    /* Position Outside */
    .elementor-arrows-position-mobile_extra-outside .elementor-carousel-google-reviews-wrapper {
        position: static;
        padding-top: 0 !important;
    }
    
    .elementor-arrows-position-mobile_extra-outside > .elementor-widget-container {
        padding-left: calc(max(50px, var(--arrows-size-mobile-extra, 40px)) + 20px) !important;
        padding-right: calc(max(50px, var(--arrows-size-mobile-extra, 40px)) + 20px) !important;
    }
    
    .elementor-arrows-position-mobile_extra-outside .elementor-swiper-button {
        top: 50% !important;
        transform: translateY(-50%) !important;
    }
    
    /* Position Above */
    .elementor-arrows-position-mobile_extra-above > .elementor-widget-container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .elementor-arrows-position-mobile_extra-above .elementor-carousel-google-reviews-wrapper {
        position: relative;
        padding-top: calc(max(40px, var(--arrows-size-mobile-extra, 40px)) + 20px) !important;
    }
    
    .elementor-arrows-position-mobile_extra-above .elementor-swiper-button {
        top: 0 !important;
        transform: unset !important;
    }
    
    .elementor-arrows-position-mobile_extra-above .elementor-swiper-button-prev {
        left: unset !important;
        right: calc(max(50px, var(--arrows-size-mobile-extra, 50px)) + 10px) !important;
    }
    
    .elementor-arrows-position-mobile_extra-above .elementor-swiper-button-next {
        left: unset !important;
        right: 0 !important;
    }
    
    /* Ajustement du positionnement des flèches quand dots activés en position outside */
    .elementor-arrows-position-mobile_extra-inside:not(.elementor-pagination-position-inside):not(.elementor-arrows-position-mobile_extra-above) .elementor-carousel-google-reviews-wrapper:has(.swiper-pagination) .elementor-swiper-button,
    .elementor-arrows-position-mobile_extra-outside:not(.elementor-pagination-position-inside):not(.elementor-arrows-position-mobile_extra-above) .elementor-carousel-google-reviews-wrapper:has(.swiper-pagination) .elementor-swiper-button {
        top: calc(50% - (var(--dots-height, 10px) + var(--dots-margin-top, 20px) + 30px) / 2) !important;
    }
}

/* Mobile Portrait (par défaut, jusqu'à 575px) */
@media (max-width: 575px) {
    /* Position Inside */
    .elementor-arrows-position-mobile-inside .elementor-carousel-google-reviews-wrapper {
        position: relative;
        padding-top: 0 !important;
    }
    
    .elementor-arrows-position-mobile-inside > .elementor-widget-container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .elementor-arrows-position-mobile-inside .elementor-swiper-button {
        top: 50% !important;
        transform: translateY(-50%) !important;
    }
    
    /* Position Outside */
    .elementor-arrows-position-mobile-outside .elementor-carousel-google-reviews-wrapper {
        position: static;
        padding-top: 0 !important;
    }
    
    .elementor-arrows-position-mobile-outside > .elementor-widget-container {
        padding-left: calc(max(40px, var(--arrows-size-mobile, 40px)) + 20px) !important;
        padding-right: calc(max(40px, var(--arrows-size-mobile, 40px)) + 20px) !important;
    }
    
    .elementor-arrows-position-mobile-outside .elementor-swiper-button {
        top: 50% !important;
        transform: translateY(-50%) !important;
    }
    
    /* Position Above */
    .elementor-arrows-position-mobile-above > .elementor-widget-container {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .elementor-arrows-position-mobile-above .elementor-carousel-google-reviews-wrapper {
        position: relative;
        padding-top: calc(max(40px, var(--arrows-size-mobile, 40px)) + 20px) !important;
    }
    
    .elementor-arrows-position-mobile-above .elementor-swiper-button {
        top: 0 !important;
        transform: unset !important;
    }
    
    .elementor-arrows-position-mobile-above .elementor-swiper-button-prev {
        left: unset !important;
        right: calc(max(50px, var(--arrows-size-mobile, 50px)) + 10px) !important;
    }
    
    .elementor-arrows-position-mobile-above .elementor-swiper-button-next {
        left: unset !important;
        right: 0 !important;
    }
    
    /* Ajustement du positionnement des flèches quand dots activés en position outside */
    .elementor-arrows-position-mobile-inside:not(.elementor-pagination-position-inside):not(.elementor-arrows-position-mobile-above) .elementor-carousel-google-reviews-wrapper:has(.swiper-pagination) .elementor-swiper-button,
    .elementor-arrows-position-mobile-outside:not(.elementor-pagination-position-inside):not(.elementor-arrows-position-mobile-above) .elementor-carousel-google-reviews-wrapper:has(.swiper-pagination) .elementor-swiper-button {
        top: calc(50% - (var(--dots-height, 10px) + var(--dots-margin-top, 20px) + 30px) / 2) !important;
    }
}

/* ============================================================================
   Pagination (dots)
   ============================================================================ */

.elementor-carousel-google-reviews-wrapper .swiper-pagination {
    position: relative;
    margin-top: var(--dots-margin-top, 20px);
    text-align: center;
}

/* Ajustement du positionnement des flèches quand dots activés en position outside */
/* Pour les positions Inside et Outside (pas Above), quand pagination est présente et en position outside */
.elementor-arrows-position-inside:not(.elementor-pagination-position-inside):not(.elementor-arrows-position-widescreen-above):not(.elementor-arrows-position-laptop-above):not(.elementor-arrows-position-tablet_extra-above):not(.elementor-arrows-position-tablet-above):not(.elementor-arrows-position-mobile_extra-above):not(.elementor-arrows-position-mobile-above) .elementor-carousel-google-reviews-wrapper:has(.swiper-pagination) .elementor-swiper-button,
.elementor-arrows-position-outside:not(.elementor-pagination-position-inside):not(.elementor-arrows-position-widescreen-above):not(.elementor-arrows-position-laptop-above):not(.elementor-arrows-position-tablet_extra-above):not(.elementor-arrows-position-tablet-above):not(.elementor-arrows-position-mobile_extra-above):not(.elementor-arrows-position-mobile-above) .elementor-carousel-google-reviews-wrapper:has(.swiper-pagination) .elementor-swiper-button {
    top: calc(50% - (var(--dots-height, 10px) + var(--dots-margin-top, 20px) + 30px) / 2) !important;
}

/* Position Bottom: remonter les flèches au-dessus de la pagination "outside" */
.elementor-arrows-position-bottom:not(.elementor-pagination-position-inside) .elementor-carousel-google-reviews-wrapper:has(.swiper-pagination) .elementor-swiper-button {
    bottom: calc(var(--dots-height, 10px) + var(--dots-margin-top, 20px) + 10px) !important;
}

.elementor-pagination-position-inside .swiper-pagination {
    position: absolute;
    bottom: 20px;
    left: 0;
    right: 0;
    margin-top: 0;
}

.elementor-carousel-google-reviews-wrapper .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #CCCCCC;
    opacity: 1;
    transition: all 0.3s ease;
}

.elementor-carousel-google-reviews-wrapper .swiper-pagination-bullet-active {
    background: #D6BB81;
}

/* ============================================================================
   Barre de progression
   ============================================================================ */

.elementor-carousel-google-reviews-wrapper .swiper-progressbar {
    position: relative;
    width: var(--s4-progressbar-width, 400px);
    max-width: 100%;
    height: 5px;
    margin-top: 20px;
    border-radius: 0;
    cursor: pointer;
    touch-action: none;
    outline: none;
    background: rgba(130, 130, 130, 0.45);
}

/* Flèches en bas + progress bar: placement en absolute */
.elementor-arrows-position-bottom .elementor-carousel-google-reviews-wrapper:has(.swiper-progressbar) {
    --s4-progressbar-nav-gap: 40px;
    --s4-nav-gap-between: 10px;
    --s4-progressbar-buttons-space: calc((var(--s4-nav-button-size, 50px) * 2) + var(--s4-nav-gap-between) + var(--s4-progressbar-nav-gap));
    --s4-progressbar-effective-width: min(var(--s4-progressbar-width, 400px), calc(100% - var(--s4-progressbar-buttons-space)));
}

.elementor-arrows-position-bottom .elementor-carousel-google-reviews-wrapper:has(.swiper-progressbar) .swiper-progressbar {
    position: absolute;
    left: 20px;
    bottom: 18px;
    width: var(--s4-progressbar-effective-width);
    margin-top: 0;
}

.elementor-arrows-position-bottom .elementor-carousel-google-reviews-wrapper:has(.swiper-progressbar) .elementor-swiper-button-prev {
    left: calc(var(--s4-progressbar-effective-width) + var(--s4-progressbar-nav-gap)) !important;
    right: auto !important;
}

.elementor-arrows-position-bottom .elementor-carousel-google-reviews-wrapper:has(.swiper-progressbar) .elementor-swiper-button-next {
    left: calc(var(--s4-progressbar-effective-width) + var(--s4-progressbar-nav-gap) + var(--s4-nav-button-size, 50px) + var(--s4-nav-gap-between)) !important;
    right: auto !important;
}

.elementor-arrows-position-bottom .elementor-carousel-google-reviews-wrapper:has(.swiper-progressbar) .elementor-swiper-button {
    position: absolute !important;
    top: auto !important;
    bottom: 0 !important;
    transform: none !important;
}

.elementor-carousel-google-reviews-wrapper .swiper-progressbar:focus-visible {
    box-shadow: 0 0 0 2px rgba(214, 187, 129, 0.4);
}

.elementor-carousel-google-reviews-wrapper .swiper-progressbar__fill {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 0;
    border-radius: 0;
    background: var(--s4-progressbar-accent, #D6BB81);
    transition: width 0.2s ease;
}

.elementor-carousel-google-reviews-wrapper .swiper-progressbar__thumb {
    position: absolute;
    top: 50%;
    left: 0;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    background: var(--s4-progressbar-accent, #D6BB81);
    border: 2px solid rgba(255, 255, 255, 0.7);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    transition: left 0.2s ease, transform 0.2s ease;
}

.elementor-carousel-google-reviews-wrapper .swiper-progressbar.is-dragging .swiper-progressbar__thumb {
    transform: translate(-50%, -50%) scale(1.05);
}

.elementor-carousel-google-reviews-wrapper .swiper-progressbar.is-dragging .swiper-progressbar__fill,
.elementor-carousel-google-reviews-wrapper .swiper-progressbar.is-dragging .swiper-progressbar__thumb {
    transition: none;
}

/* Couleurs liées au style global des vignettes */
.carousel-google-reviews-style-white .elementor-carousel-google-reviews-wrapper .swiper-progressbar {
    background: rgba(35, 35, 35, 0.2);
}

.carousel-google-reviews-style-white .elementor-carousel-google-reviews-wrapper .swiper-progressbar__fill,
.carousel-google-reviews-style-white .elementor-carousel-google-reviews-wrapper .swiper-progressbar__thumb {
    background: var(--s4-progressbar-accent, #D6BB81);
}

.carousel-google-reviews-style-black .elementor-carousel-google-reviews-wrapper .swiper-progressbar {
    background: rgba(255, 255, 255, 0.25);
}

.carousel-google-reviews-style-black .elementor-carousel-google-reviews-wrapper .swiper-progressbar__fill,
.carousel-google-reviews-style-black .elementor-carousel-google-reviews-wrapper .swiper-progressbar__thumb {
    background: var(--s4-progressbar-accent, #D6BB81);
}

/* ============================================================================
   Responsive
   ============================================================================ */

@media (max-width: 768px) {
    .google-review-card {
        padding: 20px;
    }
    
    .google-review-card__text {
        font-size: 14px;
        -webkit-line-clamp: 6;
        line-clamp: 6;
    }
    
    .elementor-carousel-google-reviews-wrapper .elementor-swiper-button {
        width: 50px;
        height: 50px;
        font-size: 14px;
    }
}

/* ============================================================================
   Messages d'erreur
   ============================================================================ */

.carousel-google-reviews-error {
    padding: 20px;
    background: #FFF3CD;
    border: 1px solid #FFE69C;
    border-radius: 5px;
    color: #856404;
    text-align: center;
}
