/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */


/* ---------- Réglages globaux du bloc logos ---------- */
.container-brands.js-container-brands {
    position: relative;
    width: 100%;
    padding: 25px 0 35px;
    border-top: solid 1px #e8e8e8;
    border-bottom: solid 1px #e8e8e8;
}

/* Paramètres de la grille & du cadre (faciles à modifier) */

/* Grille 6×7 dans le slide (42 logos) */
.container-brands .logos-grid {
    display: grid;
    grid-template-columns: repeat(var(--cols), var(--cell));
    grid-auto-rows: var(--cell);
    gap: var(--gap);
    align-items: center;
    justify-items: center;
}

/* Carte logo (arrondis + bord + ombre au hover) */
.container-brands .logos-grid .logo {
    width: 160px;
    height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    transition: transform .18s ease, box-shadow .18s ease;
}
.container-brands .logos-grid .logo:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0,0,0,.06);
}
.container-brands .logos-grid .logo img {
    max-width: 80px; max-height: 30px;
    object-fit: contain; display: block;
}

/* ---------- Flèches façon "pancarte jaune" EN DEHORS du cadre ---------- */
.container-brands .logos-swiper-button-prev,
.container-brands .logos-swiper-button-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    /* hauteur alignée exactement sur la pile 7×160 + 6×gap */
    height: var(--frame-h);
    width: 62px;
    background: #FEFC8D;
    display: flex; align-items: center; justify-content: center;
    z-index: 5;
}

/* On calcule la position depuis le CENTRE de la page :
   on sort la flèche juste à l'extérieur du cadre centré */
.container-brands .logos-swiper-button-prev {
    left: calc(50% - (var(--frame-w) / 2) - 72px);  /* 72px = écart extérieur */
}
.container-brands .logos-swiper-button-next {
    right: calc(50% - (var(--frame-w) / 2) - 72px);
}

/* Pagination centrée sous le cadre */
.container-brands .logos-swiper-pagination {
    position: relative;
    left: 50%;
    bottom: 6px;
}
.container-brands .logos-swiper-pagination .swiper-pagination-bullet {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin: 0 7px;
    border-radius: 50%;
    background-color: #d8d8d8;
    opacity: 1;
}
.container-brands .logos-swiper-pagination .swiper-pagination-bullet-active { background: #222; }

/* 1) le viewport du slider DOIT couper ce qui déborde */
.container-brands .logos-swiper{
    overflow: hidden !important;   /* était visible avant */
    position: relative;
}

/* 2) le wrapper ne doit PAS avoir de gap (ça fait “dépasser” les slides) */
.container-brands .logos-swiper .swiper-wrapper{
    gap: 0 !important;             /* annule tout gap éventuel */
}

/* 3) un slide = 100% du viewport, pas plus */
.container-brands .logos-swiper .swiper-slide{
    width: 100% !important;        /* écrase toute largeur fixe précédente */
    max-width: 100% !important;
    flex-shrink: 0 !important;
}

/* 4) la grille 6×7 reste dans le slide ; on garde tes variables */
.container-brands .logos-grid{
    display: grid;
    grid-template-columns: repeat(6, 160px);
    grid-auto-rows: 58px;
    gap: 0px;
    align-items: center;
    justify-content: center;
    margin: 0 auto;                /* centré dans le slide */
}

/* (option) flèches… on va les sortir du slider via JS ci-dessous */
.container-brands .logos-swiper-button-prev,
.container-brands .logos-swiper-button-next{
    position:absolute; top:50%; transform:translateY(-50%);
    width: 105px; height: 180px; background:var(--e-global-color-accent);
    z-index:5;
}
.container-brands .logos-swiper-button-prev:hover,
.container-brands .logos-swiper-button-next:hover{
    background:#000;
    cursor: pointer;
}
.container-brands .logos-swiper-button-prev{ left:0px; }
.container-brands .logos-swiper-button-next{ right:0px; }

.container-brands .logos-swiper-button-prev .picto-container {
    width: 40px;
    position: relative;
    left: -40px;
    top: -25px;
    align-self: center;
}
.container-brands .logos-swiper-button-prev .picto-container svg {
    width:80px;
    transform: rotate(180deg);
}
.container-brands .logos-swiper-button-prev:hover .picto-container {
    -webkit-transform: translateX(-15px);
    -ms-transform: translateX(-15px);
    transform: translateX(-15px);
}
.container-brands .logos-swiper-button-prev:hover .picto-container svg {
    fill:#fff;
}
.container-brands .logos-swiper-button-next .picto-container {
    width: 40px;
    position: relative;
    left: 0px;
    top: 35px;
    align-self: center;
}
.container-brands .logos-swiper-button-next .picto-container svg {
    width:80px;
}
.container-brands .logos-swiper-button-next:hover .picto-container {
    -webkit-transform: translateX(15px);
    -ms-transform: translateX(15px);
    transform: translateX(15px);
}
.container-brands .logos-swiper-button-next:hover .picto-container svg {
    fill:#fff;
}


/* ---------- Responsive : on réduit proprement le cadre et les marges des flèches ---------- */
@media (max-width: 1200px) {
    .container-brands .logos-swiper { --cell: 140px; --gap: 0px; }
    .container-brands .logos-swiper-button-prev,
    .container-brands .logos-swiper-button-next { height: var(--frame-h); }
}
@media (max-width: 992px) {
    .container-brands .logos-swiper { --cell: 120px; --gap: 16px; }
}
@media (max-width: 768px) {
    .container-brands .logos-swiper { --cell: 100px; --gap: 12px; }
    .container-brands .logos-swiper-button-prev { left: calc(50% - (var(--frame-w)/2) - 56px); width: 48px; }
    .container-brands .logos-swiper-button-next { right: calc(50% - (var(--frame-w)/2) - 56px); width: 48px; }
}
@media (max-width: 576px){
    .container-brands .logos-grid{
        grid-template-columns: repeat(3, 100px);
        grid-auto-rows: 50px;
        gap: 0px;
    }
    .container-brands .logos-swiper-button-prev, .container-brands .logos-swiper-button-next { display: none; }
    .container-brands .logos-swiper-pagination { left: 0; bottom: 0px; text-align: center; }
}

/* ---------- Brand Card - Corrections ---------- */

/* Container principal */
.ct.ct--brand-card {
    display: block;
    text-decoration: none;
}

/* 1. Picture container avec position relative pour le badge NEW */
.ct.ct--brand-card .picture-container {
    position: relative;
    display: block;
    overflow: hidden; /* Important pour le zoom */
}

/* 2. Image avec zoom au hover */
.ct.ct--brand-card .picture-container .img {
    display: block;
    width: 100%;
    height: auto;
    transition: transform 0.4s ease;
}

.ct.ct--brand-card:hover .picture-container .img {
    transform: scale(1.08);
}

/* 3. Badge NEW positionné en bas de l'image */
.ct.ct--brand-card .picture-container .new {
    position: absolute;
    bottom: 0px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #F4F285;
    padding: 5px 20px;
    z-index: 2;
    white-space: nowrap;
}

/* Layer animé (si utilisé) */
.ct.ct--brand-card .picture-container .animated-layer {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    pointer-events: none;
}

/* Logo container */
.ct.ct--brand-card .logo-container {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 15px;
    background: #fff;
}

.ct.ct--brand-card .logo-container .logo {
    max-height: 50px;
    width: auto;
}