/* === Carrousel de logos (remplace wow-carousel-for-divi) ================================ */
/* Exception 0,4,0 : 3 classes nécessaires dans :has() pour détecter une galerie carrousel du cœur (pas une galerie statique), aucun id en jeu. */
.wp-block-group:has(> .wp-block-gallery.has-nested-images.is-style-carrousel) {
    width: 80%;
    max-width: 1080px;
    margin: 0 auto;
}
.wp-block-gallery.has-nested-images.is-style-carrousel { --x-carrousel-visibles: 4; width: 100%; flex-wrap: nowrap; align-items: flex-start; gap: var(--x-carrousel-ecart, 20px); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
/* Exception 0,3,1 : ::-webkit-scrollbar ajoute un pseudo-élément aux 3 classes déjà nécessaires, aucun id en jeu. */
.wp-block-gallery.has-nested-images.is-style-carrousel::-webkit-scrollbar { display: none; }
/* Exception 1,4,1 : id réel nécessaire — égalise la spécificité de wp-includes/blocks/gallery/style.css:409 (`:not(.is-cropped) figure...:not(#individual-image) { margin-bottom:auto }`), gagné par l'ordre d'impression ; sans l'id, margin-bottom repasse à auto (enquête et mesures dans docs/refonte/css-notes.md). */
.wp-block-gallery.has-nested-images.is-style-carrousel figure.wp-block-image:not(#individual-image) {
    flex: 0 0 calc((100% - (var(--x-carrousel-visibles) - 1) * var(--x-carrousel-ecart, 20px)) / var(--x-carrousel-visibles));
    width: auto; margin: 0; scroll-snap-align: start;
    /* Correctif du 25/09 (point 1 bis) : la figure est elle-même un conteneur flex en colonne (cœur) ; sans ceci, son axe transversal (la largeur) étire l'image à la largeur… */
    align-items: flex-start;
}
@media (max-width: 980px) { .wp-block-gallery.has-nested-images.is-style-carrousel { --x-carrousel-visibles: 4; } }
@media (max-width: 767px) { .wp-block-gallery.has-nested-images.is-style-carrousel { --x-carrousel-visibles: 3; } }
/* Correctif du 25/09 (re-vérification e696d29, point 1) : depuis le retrait de is-cropped, le cœur étire chaque <img> à la hauteur de la plus haute diapositive de sa lig… */
/* Exception 1,4,2 : id conservé par cohérence avec la règle figure ci-dessus, non nécessaire ici (gagne déjà par les seules classes, 0,4,2, contre le cœur qui plafonne à 0,3,2 hors .is-cropped — vérifié, cf. css-notes.md). */
.wp-block-gallery.has-nested-images.is-style-carrousel figure.wp-block-image:not(#individual-image) img {
    width: auto;
    height: auto;
    max-width: 100%;
}
/* Exception 1,5,1 : id conservé par cohérence, non nécessaire ici (padding-bottom, aucun conflit avec la règle margin-bottom:auto du cœur — vérifié, cf. css-notes.md). */
.x-partenaires .wp-block-gallery.has-nested-images.is-style-carrousel figure.wp-block-image:not(#individual-image) {
    padding-bottom: 8px;
}
/* Exception 1,6,1 : id conservé par cohérence, non nécessaire ici (padding-left/right, même raison que ci-dessus). */
.x-partenaires .wp-block-gallery.has-nested-images.is-style-carrousel figure.wp-block-image:nth-child(2):not(#individual-image) {
    padding-left: 20px;
    padding-right: 20px;
}
.x-carrousel__fleche { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 69px; height: 69px; padding: 0; border: 0; border-radius: 50%; background: rgb(255 255 255 / 0); cursor: pointer; }
.x-carrousel__fleche--precedent { left: 0; }
.x-carrousel__fleche--suivant { right: 0; }
.x-carrousel__fleche::before { content: ""; position: absolute; top: 50%; left: 50%; width: 0; height: 0; border-style: solid; }
.x-carrousel__fleche--precedent::before { transform: translate(-30%, -50%); border-width: 25px 20px 25px 0; border-color: transparent rgb(57 58 57 / .5) transparent transparent; }
.x-carrousel__fleche--suivant::before { transform: translate(-70%, -50%); border-width: 25px 0 25px 20px; border-color: transparent transparent transparent rgb(57 58 57 / .5); }
.x-carrousel__fleche:focus-visible { outline: 2px solid rgb(57 58 57 / .8); outline-offset: 2px; }
@media (max-width: 767px) { .x-carrousel__fleche { display: none; } }
.x-carrousel__pause { position: absolute; right: .5rem; bottom: .5rem; z-index: 2; width: 1.25rem; height: 1.25rem; padding: 0; border: 0; border-radius: 50%; background: rgb(57 58 57 / .5); cursor: pointer; }
.x-carrousel__pause::before, .x-carrousel__pause::after { content: ""; position: absolute; top: .3125rem; width: .1875rem; height: .625rem; background: rgb(255 255 255 / .9); }
.x-carrousel__pause::before { left: .4rem; }
.x-carrousel__pause::after { left: .65rem; }
.x-carrousel__pause[aria-pressed="true"]::before { left: .45rem; width: 0; height: 0; background: none; border-style: solid; border-width: .3125rem 0 .3125rem .5rem; border-color: transparent transparent transparent rgb(255 255 255 / .9); }
.x-carrousel__pause[aria-pressed="true"]::after { display: none; }
.x-carrousel__pause:focus-visible { outline: 2px solid rgb(57 58 57 / .8); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
    .x-carrousel__pause { display: none; }
}
