/*
 Theme Name:     Soreba
 Theme URI:      http://wptheme.fr/theme-wordpress-divi/
 Description:    Theme Enfant Divi
 Author:         Extragraph.fr
 Author URI:     http://extragraph.fr/
 Template:       Divi
 Version:        2026
*/
 
 
/* =Vous pouvez personnalisez à partir d'ici. 
------------------------------------------------------- */

/* HAUTEUR SLIDER MOBILE - CLS FIX */
@media (max-width: 767px) {
  .et_pb_slider,
  .et_pb_slider_2,
  .et_pb_slider_2 .et_pb_slide,
  .et_pb_slider .et_pb_slide,
  .et_pb_fullwidth_slider,
  .et_pb_fullwidth_slider .et_pb_slide {
    min-height: 440px !important;
  }

  /* Évite que le texte ne saute en hauteur à l'arrivée de la police Google */
  .et_pb_slider .et_pb_slide_title {
    font-size: 24px !important;
    line-height: 1.25em !important;
  }
  .et_pb_slider .et_pb_slide_content {
    font-size: 14px !important;
    line-height: 1.3em !important;
  }
}

/* TITRES */
h1, h2, h3, h4, h5, h6 { line-height:130%; }

/* MENU */
.menu-top-contact { background-color:#f2ca46; padding-left:20px; padding-right:20px; }

/*BARRE SOUS MENU */
/* Cible la colonne via son ID de ligne fiable */
#barre-contact .et_pb_column,
.et_pb_column_4_tb_header {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 30px !important;
}

/* Réinitialise TOUS les modules de la barre (téléphone, mail, réseaux) */
#barre-contact .et_pb_module,
.et_pb_column_4_tb_header .et_pb_module {
    width: auto !important;
    margin: 0 !important;
}

/* Force le téléphone ET le mail à rester sur une seule ligne */
#barre-contact .et_pb_text p,
.et_pb_text_0_tb_header p {
    margin-bottom: 0 !important;
    white-space: nowrap !important;
}

/* Alignement des réseaux sociaux */
#barre-contact .et_pb_social_media_follow {
    margin: 0 !important;
}

/* MENU MOBILE */

@media (max-width: 980px) {
    /* On force la ligne à ne pas dépasser de l'écran */
    #main-header .container {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 10px !important;
    }

    /* On réduit la taille du logo pour laisser de la place */
    #logo {
        max-width: 100px !important; /* Ajustez selon votre logo */
        height: auto !important;
    }

    /* On s'assure que le menu burger reste bien à droite */
    .et_mobile_nav_menu {
        margin-left: 10px !important;
        float: none !important;
    }
}

@media (max-width: 980px) {
    /* Masquer les réseaux sociaux sur mobile */
    #barre-contact .et_pb_social_media_follow {
        display: none !important;
    }
    
    .et_mobile_menu {
        margin-top:25px;
        left: auto !important;
        right: 0 !important; /* S'aligne sur le bord droit */
        width: 60vw !important; /* Ne prend que 80% de la largeur pour rester lisible */
        z-index: 9999 !important;
    }
}
/* --- CODE FINAL NETTOYÉ : PLUS D'OUVERTURE AUTOMATIQUE SUR MOBILE --- */
@media (max-width: 980px) {
    
    /* 1. Structure et Scroll du menu blanc (Ligne display: block retirée) */
    body #page-container .et_pb_row_1_tb_header {
        overflow-y: auto !important;
        max-height: calc(100vh - 130px) !important;
    }
    body #page-container .et_pb_column_1_tb_header,
    body #page-container .et_pb_column_2_tb_header,
    body #page-container .et_pb_column_3_tb_header {
        display: block !important;
        position: static !important;
    }

    /* 2. Compactage des produits */
    body #page-container .et_pb_row_1_tb_header [class*="et_pb_blurb_"] {
        height: auto !important;
        padding-bottom: 10px !important;
        margin-bottom: 10px !important;
        padding-right: 0 !important;
    }

    /* 3. La croix fixe et décalée à droite */
    body #page-container .et_pb_icon_0_tb_header {
        position: fixed !important;
        right: calc(5vw + 10px) !important; 
        margin: 0 !important;
        width: 30px !important;
        height: 30px !important;
        z-index: 999999 !important;
    }

    /* 4. Alignement vertical de la croix */
    body.logged-in .et_pb_icon_0_tb_header {
        top: 185px !important; 
    }
    body:not(.logged-in) .et_pb_icon_0_tb_header {
        top: 140px !important; 
    }
}

/* BARRE SOUS MENU MOBILE */
@media (max-width: 767px) {
    .et_pb_column_4_tb_header {
        gap: 15px;
    }
}

@media (max-width: 980px) {
    /* 1. On force la ligne à être ultra fine en supprimant les marges Divi */
    #barre-contact.et_pb_row {
        padding-top: 5px !important;
        padding-bottom: 5px !important;
        height: auto !important;
        min-height: 20px !important; /* Hauteur minimale très basse */
    }

    /* 2. On retire les marges de la colonne */
    #barre-contact .et_pb_column {
        padding: 0 !important;
        margin: 0 !important;
    }

    /* 3. On ajuste le texte pour qu'il ne "pousse" pas les bords */
    .et_pb_text_0_tb_header p {
        font-size: 12px !important;
        line-height: 1 !important; /* Supprime l'espace vertical du texte */
        margin: 0 !important;
        padding: 2px 0 !important;
    }
}

/* Aligner la colonne sur Desktop */
@media (min-width: 981px) {
    #barre-contact .et_pb_column,
    .et_pb_column_4_tb_header {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 25px !important;
    }
}

/* Nettoyage Follow */
#barre-contact .et_pb_social_media_follow_network_name {
    display: none !important;
}

/* Centrage des icônes dans leurs carrés */
#barre-contact .et_pb_social_media_follow li a.icon {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 35px !important;
    height: 35px !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Reset des marges sur TOUS les textes de la barre */
#barre-contact .et_pb_text {
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
}

#barre-contact .et_pb_text p {
    margin: 0 !important;
    line-height: 1.2em !important;
    white-space: nowrap !important;
}

/* --- DESKTOP (Menu classique) --- */
#top-menu li.current-menu-item > a {
    color: #b52a1e !important;
}

/* --- MOBILE (Menu Burger) --- */
/* Cible le menu déroulant standard de Divi */
.et_mobile_menu li.current-menu-item > a,
#mobile_menu li.current-menu-item > a {
    color: #b52a1e !important;
}

/* --- THEME BUILDER (Si utilisé) --- */
/* Si vous avez créé votre menu via le Theme Builder */
.et_pb_menu .current-menu-item > a {
    color: #b52a1e !important;
}

/* MAIN-CONTENT */
#page-container { margin-top:105px; }

/* CAROUSEL PRODUITS */
/* Supprimer ombre */
#carousel-produits * {
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
    -moz-box-shadow: none !important;
}

/* GRILLE ACTUS */
#accueil-actus .et_pb_portfolio_image:hover .et_overlay:before {
    top: 70%;
}

/* CONTENT */
.argument-produit { color:#8da0cb; }

/* PROJETS */
.projet-mot-cle { display:inline-block; background-color:#ffffff;color:#000000; padding:5px 10px; margin-right:10px;  border-radius:50px;}

#thematiques>div>div { display:inline-block; }

/* REALISATIONS */
/* 1. Force le centrage de l'image principale via ses classes spécifiques */
img.lazyloaded, 
img[class*="wp-image-"] {
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
    clear: both !important;
}

/* 2. Au cas où l'image est bloquée par un paragraphe ou un conteneur parent aligné à gauche */
.single-realisation .entry-content p,
.single-realisations .entry-content p {
    text-align: center !important;
}

.single-realisation .entry-content,
.single-realisations .entry-content {
    text-align: center !important;
}

#post-33 .de_ajax_filter_archive_loop_0 .entry-title { color:#666666!important; }

#page-id-33 h2.entry-title { color:#000000!important; }

h2.entry-title.dmach-post-title { color:#000000!important; }

/* Border image mise en avant */
.et_pb_title_featured_container img { border-radius:15px; }

/* Design boutons filtres */
/* --- BOUTON FILTRER --- */
body #divi_filter_button.et_pb_button {
    background-color: #f2ca46 !important;
    color: #000000 !important;
    border-radius: 50px !important;
    border: none !important;
    padding: 5px 15px !important;
    margin-right:10px !important;
    font-size:16px !important;
}
body #divi_filter_button.et_pb_button::after { display:none !important; }

/* --- BOUTON RÉINITIALISER --- */
body .reset-filters.et_pb_button {
    background-color: #84a2cf !important;
    color: #ffffff !important;
    border-radius: 50px !important;
    border: none !important;
    padding: 5px 15px !important;
    margin-right:10px !important;
    font-size:16px !important;
}

/* FORMULAIRES */
/* Newsletter */
input { border-radius:50px!important; }
textarea { border-radius:15px!important; }
.et_contact_bottom_container { margin-top:0; }

/* FOOTER */
#menu-menu-footer-produits, #menu-menu-footer-divers { display:block; }

/* MOBILE */
/* Pas de menu burger garder en liste */
/* Désactive le menu burger mobile dans le footer et force l'affichage en liste */
footer .et_mobile_nav_menu {
    display: none !important;
}

footer .nav {
    display: block !important;
}

/* Aligne les éléments les uns sous les autres proprement */
footer .et-menu {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px; /* Espace entre les liens */
}

/* Style des liens pour qu'ils soient faciles à cliquer sur mobile */
footer .et-menu li a {
    background: none !important;
    padding: 5px 0 !important;
    display: block !important;
}

/* 1. On force l'affichage de TOUS les menus mobiles dans le footer */
footer .et_mobile_menu,
footer .et_pb_menu__menu,
footer .nav {
    display: block !important;
    height: auto !important; /* Corrige le 0px de hauteur */
    min-height: 10px !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important; /* Les remet dans le flux normal */
    background-color: transparent !important;
    box-shadow: none !important;
    border: none !important;
    margin: 10px 0 !important;
    padding: 0 !important;
}

/* 2. Style unifié des liens jaunes pour tous les menus du footer */
footer .et_mobile_menu li a,
footer .nav li a {
    color: #f1c40f !important; /* Jaune Soreba */
    padding: 8px 0 !important;
    display: block !important;
    font-size: 15px !important;
    line-height: 1.3em !important;
    text-align: left !important;
}

/* 3. On s'assure que les icônes burger mobiles sont cachées partout dans le footer */
footer .et_mobile_nav_menu {
    display: none !important;
}

/* 4. Nettoyage des listes (suppression des puces et décalages) */
footer ul.et_mobile_menu, 
footer ul.nav {
    list-style: none !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
}

/* 1. On ajuste la structure globale pour gagner de la place */
footer .et_mobile_menu, 
footer .nav {
    margin: 5px 0 !important; /* Réduit l'espace autour du bloc menu */
    line-height: 1 !important;
}

/* 2. Style des liens : Blanc par défaut */
footer .et_mobile_menu li a, 
footer .nav li a {
    color: #ffffff !important; /* Texte en blanc */
    padding: 4px 0 !important; /* Réduit l'espace entre chaque ligne de texte */
    font-size: 14px !important; /* Taille légèrement réduite pour la discrétion */
    line-height: 1.2em !important;
    transition: color 0.3s ease !important; /* Transition douce pour le survol */
}

/* 3. Effet au survol : Devient Jaune Soreba */
footer .et_mobile_menu li a:hover, 
footer .nav li a:hover {
    color: #f1c40f !important; /* Jaune au survol */
}

/* 4. Suppression des bordures et marges résiduelles de Divi */
footer .et_mobile_menu li {
    border-bottom: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* 1. Aligner les listes sur la gauche et supprimer le décalage */
footer .et_mobile_menu, 
footer .nav,
#menu-menu-footer-produits,
#mobile_menu2 {
    margin-left: 0 !important;
    padding-left: 0 !important;
    text-align: left !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important; /* Force l'alignement à gauche */
}

/* 2. Rapprocher les listes des titres (Nos produits / Notre entreprise) */
footer .et_pb_menu {
    margin-top: -15px !important; /* Remonte le bloc menu vers le titre */
    padding-top: 0 !important;
}

/* 3. Ajuster le style des liens pour un alignement parfait */
footer .et_mobile_menu li, 
footer .nav li {
    width: 100% !important;
    text-align: left !important;
}

footer .et_mobile_menu li a, 
footer .nav li a {
    padding: 2px 0 !important; /* Espace vertical minimal entre liens */
    text-align: left !important;
    justify-content: flex-start !important;
}

/* Supprimer la marge gauche et top et décalage de TOUS les menus du footer et de leurs puces */
#menu-menu-footer-produits,
#menu-menu-footer-divers,
#mobile_menu2,
#mobile_menu3,
footer .et-menu li,
footer .et_mobile_menu li {
    margin-left: 0 !important;
    margin-top: 0 !important;
    padding-left: 0 !important;
    text-align: left !important; /* Force l'alignement sur le bord gauche */
}
footer h2 { padding-bottom: 0 !important; }

/* FLOATING MENU */
.sfm-floating-menu .sfm-button a.sfm-shape-button { border: 1px #bf9f37 solid; border-radius:7px; }

/* PONCTUATIONS */
p, h1, h2, h3, h4, h5, h6, li, span {
    text-wrap: pretty;
}

.et_pb_module_inner {
    word-break: keep-all;
}

/* FORMULAIRE CONTACT */
.et-pb-contact-message, .et_pb_contact_captcha_question { color:#ffffff; font-size:24px!important; line-height:1.3; }

/* CAROUSSEL FOND DOTS */
.et_pb_group_carousel_2 .et_pb_group_carousel_dots,
.et_pb_group_carousel_2 .et_pb_group_carousel_dots * {
    background: transparent !important;
    background-color: transparent !important;
}

.et_pb_group_carousel_2,
.et_pb_row .et_pb_column .et_pb_group_carousel_2,
.et_pb_section .et_pb_group_carousel_2 {
    background: transparent !important;
}

.et_pb_group_carousel_2 {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* FORMULAIRE BREVO */
.sib_signup_box_inside_1 input { border:none; border-radius:15px; font-size:16px; height:30px; width:100%; padding:5px 10px!important; }
.sib-default-btn { border:none; border-radius:15px; background-color:#84a2cf!important; color:#ffffff; }
.sib-terms-area { white-space: nowrap; }
.sib-terms-area input[type="checkbox"] {
    vertical-align: middle;
    margin-right: 6px;
    width:auto;
}

/* FORCER GRILLE ARTICLES CONSEILS IMG CARREES */
.divi-filter-loop-container .et_pb_image_wrap {
    display: block !important;
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    position: relative !important;
    overflow: hidden !important;
    border-radius: 20px 20px 0 0 !important;
}

.divi-filter-loop-container .et_pb_image_wrap img,
.divi-filter-loop-container .et_pb_image_wrap .lazyloaded {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    object-fit: contain !important;
    object-position: center !important;
    min-width: 100% !important;
    min-height: 100% !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;
}

.divi-filter-loop-container .dmach-post-title {
    min-height: 80px !important;
    padding: 15px !important;
    display: flex !important;
    align-items: center !important;
}

/* --- CORRECTION ABSOLUE POSITION DOTS SLIDER ACCUEIL --- */
.et_pb_slider .et_pb_slide {
    padding-bottom: 60px !important;
}

.et_pb_slider .et-pb-controllers {
    bottom: 40px !important;
    z-index: 10 !important;
    position: absolute !important;
}

.et_pb_slider {
    margin-bottom: 0 !important;
    overflow: hidden !important;
}

@media (max-width: 767px) {
    .et_pb_slider .et_pb_slide {
        padding-bottom: 40px !important;
    }
    .et_pb_slider .et-pb-controllers {
        bottom: 20px !important;
    }
}

/* --- RESPONSIVE FINAL : TRUSTINDEX PARFAIT SANS COUPURE --- */
.avis-trustindex {
    min-height: 120px !important; /* Réserve la hauteur pour bloquer le CLS */
}

@media (max-width: 767px) {
    .avis-trustindex {
        width: calc(100% - 60px) !important;
        margin-left: 20px !important;
        margin-right: 20px !important;
        display: block !important;
        min-height: 140px !important;
    }

    .avis-trustindex .ti-widget,
    body .ti-widget {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .avis-trustindex,
    .avis-trustindex .et_pb_code_inner,
    .ti-widget-container,
    .ti-reviews-container-wrapper,
    .ti-reviews-container {
        overflow: visible !important;
    }
}

/* FORCER LA COULEUR DES TITRES AU CHARGEMENT (Anti-flash blanc) */
.divi-filter-loop-container .de_ajax_filter_post_title,
.divi-filter-loop-container .de_ajax_filter_post_title a,
.divi-filter-loop-container h2,
.divi-filter-loop-container h3,
.divi-filter-loop-container h4 {
    color: #2b2b2b !important;
}

/* Verrouille uniquement l'image pour éviter le redimensionnement */
.divi-filter-loop-container img,
img[src*="ImagePrincipale"] {
    aspect-ratio: 400 / 284 !important;
    width: 100% !important;
    height: auto !important;
}

/* PASSER LE VOILE ET LA BANNIÈRE COMPLIANZ AU-DESSUS DU MENU */
.cmplz-backdrop {
    z-index: 9999998 !important;
}

#cmplz-cookiebanner-container,
.cmplz-cookiebanner {
    z-index: 9999999 !important;
}