/* ========================================
   GRAPHISCANN - Z-INDEX UNIFIÉ V4.4
   ========================================
   
   CE FICHIER REMPLACE :
   - fix-search-zindex.css
   - fix-menu-mobile-zindex-v4.css
   - header-mobile-fix.css (styles z-index)
   - Toutes les règles z-index dispersées
   
   CHARGER CE FICHIER EN DERNIER (après header-v4-final.css)
   
   Version : 4.4.0
   Date : 5 Décembre 2025
   
   CORRECTIONS V4.4 :
   - Header masqué quand menu mobile ouvert
   - Zone blanche supprimée
   - Menu mobile fullscreen sans éléments parasites
   - Bouton hamburger toujours visible et cliquable
   ======================================== */

/* ========================================
   HIÉRARCHIE Z-INDEX GLOBALE
   ========================================
   
   NIVEAU 1 (Base) :
   - Contenu page : 1
   - Footer : 10
   
   NIVEAU 2 (Navigation Desktop) :
   - Menu rouge (nav) : 100
   - Header blanc : 200
   - Résultats recherche : 300
   
   NIVEAU 3 (Mobile - Menu fermé) :
   - Header mobile : 100
   - Navigation mobile : 90
   
   NIVEAU 4 (Mobile - Menu ouvert) :
   - Menu mobile overlay : 9000
   - Bouton hamburger : 9500
   
   ======================================== */

/* ========================================
   1. DESKTOP - Z-INDEX
   ======================================== */

/* Header principal */
.main-header {
    position: relative;
    z-index: 200 !important;
}

.main-header.header-sticky {
    position: fixed;
    z-index: 200 !important;
}

/* Navigation rouge */
.main-navigation {
    position: relative;
    z-index: 100 !important;
}

.main-navigation.nav-sticky {
    position: fixed;
    z-index: 100 !important;
}

/* Section recherche */
.search-section {
    position: relative;
    z-index: 10 !important;
}

/* RÉSULTATS DE RECHERCHE - AU-DESSUS DU MENU ROUGE */
#resultatrecherche {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 9999 !important;
    background: #fff !important;
    border: 1px solid #ddd !important;
    border-radius: 8px !important;
    box-shadow: 0 8px 30px rgba(0,0,0,0.25) !important;
    max-height: 400px !important;
    overflow-y: auto !important;
    margin-top: 5px !important;
}

/* Forcer l'affichage quand display:block via JS */
#resultatrecherche[style*="display: block"],
#resultatrecherche[style*="display:block"] {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Dropdown menu produits desktop */
.dropdown-menu-custom {
    z-index: 600 !important;
}

/* ========================================
   2. MOBILE - Z-INDEX ET STRUCTURE
   ======================================== */

@media (max-width: 992px) {
    
    /* ==========================================
       2.1 HEADER MOBILE - NOUVELLE STRUCTURE
       Logo centré + Recherche en dessous
       ========================================== */
    
    /* Masquer le bandeau "Livraison partout en France" en mobile */
    .top-bar {
        display: none !important;
    }
    
    /* Header principal - padding réduit */
    .main-header {
        padding: 15px 0 10px 0 !important;
        z-index: 100 !important;
        transition: opacity 0.3s ease, visibility 0.3s ease;
    }
    
    .main-header.header-sticky {
        z-index: 100 !important;
        padding: 10px 0 8px 0 !important;
    }
    
    /* Masquer les coordonnées en mobile */
    .contact-info {
        display: none !important;
    }
    
    /* Réorganiser le header content en COLONNE */
    .header-content {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 12px !important;
        padding: 0 15px !important;
    }
    
    /* Logo centré */
    .logo-section {
        width: 100% !important;
        text-align: center !important;
        order: 1 !important;
    }
    
    .logo-section a {
        display: inline-block !important;
    }
    
    .logo-section img {
        height: 45px !important;
        width: auto !important;
    }
    
    /* Recherche pleine largeur sous le logo */
    .search-section {
        width: 100% !important;
        max-width: 100% !important;
        order: 2 !important;
        position: relative !important;
    }
    
    .search-form {
        width: 100% !important;
        display: flex !important;
    }
    
    .search-form input {
        flex: 1 !important;
        width: 100% !important;
        padding: 12px 50px 12px 15px !important;
        font-size: 16px !important; /* Évite le zoom sur iOS */
        border: 1px solid #ddd !important;
        border-radius: 8px !important;
        background: #f8f9fa !important;
    }
    
    .search-form input:focus {
        background: #fff !important;
        border-color: #c41e3a !important;
        outline: none !important;
        box-shadow: 0 0 0 3px rgba(196, 30, 58, 0.1) !important;
    }
    
    .search-form input::placeholder {
        color: #999 !important;
    }
    
    .search-form button {
        position: absolute !important;
        right: 5px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        padding: 8px 12px !important;
        background: #c41e3a !important;
        border: none !important;
        border-radius: 6px !important;
        color: white !important;
    }
    
    /* ==========================================
       2.2 MASQUER LE HEADER QUAND MENU OUVERT
       ========================================== */
    
    /* Quand body a la classe menu-open, cacher le header blanc */
    body.menu-open .main-header {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }
    
    /* Cacher la navigation rouge (on garde juste le menu) */
    body.menu-open .main-navigation {
        background: transparent !important;
    }
    
    /* ==========================================
       2.3 MENU MOBILE OVERLAY - FULLSCREEN
       ========================================== */
    
    .main-menu {
        display: none !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        height: 100vh !important;
        
        /* Style */
        background: linear-gradient(180deg, #c41e3a 0%, #a01829 100%) !important;
        
        /* Layout */
        flex-direction: column !important;
        padding: 80px 20px 30px 20px !important;
        
        /* Scroll */
        overflow-y: auto !important;
        overflow-x: hidden !important;
        
        /* Z-index très élevé */
        z-index: 9000 !important;
        
        /* Animation */
        opacity: 0;
        transform: translateX(-100%);
        transition: opacity 0.3s ease, transform 0.3s ease;
    }
    
    /* Menu OUVERT */
    .main-menu.active {
        display: flex !important;
        opacity: 1 !important;
        transform: translateX(0) !important;
    }
    
    /* ==========================================
       2.4 BOUTON HAMBURGER - TOUJOURS AU-DESSUS
       ========================================== */
    
    /* Barre de navigation avec le hamburger */
    .main-navigation {
        z-index: 200 !important; /* Au-dessus du header sticky */
    }
    
    .main-navigation.nav-sticky {
        z-index: 200 !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
    }
    
    /* Conteneur nav en mode sticky - laisser de la place pour le contenu */
    .nav-container {
        position: relative !important;
    }
    
    .menu-toggle {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 50px !important;
        height: 50px !important;
        background: rgba(255,255,255,0.15) !important;
        border: 2px solid rgba(255,255,255,0.3) !important;
        border-radius: 8px !important;
        color: white !important;
        font-size: 1.5rem !important;
        cursor: pointer !important;
        position: relative !important;
        z-index: 9500 !important;
        transition: all 0.3s ease !important;
    }
    
    .menu-toggle:hover {
        background: rgba(255,255,255,0.25) !important;
    }
    
    /* Bouton en position FIXED quand menu ouvert */
    .menu-toggle.active {
        position: fixed !important;
        top: 15px !important;
        left: 15px !important;
        z-index: 9500 !important;
        background: rgba(255,255,255,0.2) !important;
        border-color: rgba(255,255,255,0.4) !important;
    }
    
    /* ==========================================
       2.5 ITEMS DU MENU MOBILE
       ========================================== */
    
    .main-menu .menu-item {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
        border-bottom: 1px solid rgba(255,255,255,0.1) !important;
    }
    
    .main-menu .menu-item:last-child {
        border-bottom: none !important;
    }
    
    .main-menu .menu-link {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 18px 15px !important;
        color: white !important;
        font-size: 1.1rem !important;
        font-weight: 500 !important;
        text-decoration: none !important;
        background: transparent !important;
        transition: all 0.2s ease !important;
    }
    
    .main-menu .menu-link:hover,
    .main-menu .menu-item.active .menu-link {
        background: rgba(255,255,255,0.15) !important;
        padding-left: 25px !important;
    }
    
    /* ==========================================
       2.6 DROPDOWN PRODUITS EN MOBILE
       ========================================== */
    
    .main-menu .dropdown-menu-custom {
        position: static !important;
        display: none !important;
        background: rgba(0,0,0,0.15) !important;
        padding: 0 !important;
        margin: 0 !important;
        box-shadow: none !important;
        border: none !important;
        border-radius: 0 !important;
        max-height: 0 !important;
        overflow: hidden !important;
        z-index: 9100 !important;
        transition: max-height 0.4s ease, opacity 0.3s ease !important;
    }
    
    /* Dropdown ouvert */
    .main-menu .menu-item.products-open .dropdown-menu-custom,
    .main-menu .menu-products.open .dropdown-menu-custom {
        display: block !important;
        max-height: 2000px !important;
        opacity: 1 !important;
    }
    
    /* Colonnes de catégories */
    .main-menu .dropdown-columns {
        display: block !important;
        padding: 15px !important;
    }
    
    .main-menu .dropdown-column {
        display: block !important;
        width: 100% !important;
    }
    
    /* Titres de catégories */
    .main-menu .category-title {
        display: block !important;
        color: white !important;
        font-size: 1rem !important;
        font-weight: 700 !important;
        margin: 15px 0 10px 0 !important;
        padding: 12px 15px !important;
        background: rgba(255,255,255,0.1) !important;
        border-left: 4px solid white !important;
        border-radius: 6px !important;
    }
    
    .main-menu .category-title:first-child {
        margin-top: 0 !important;
    }
    
    /* Liens produits */
    .main-menu .dropdown-column ul {
        list-style: none !important;
        padding: 0 !important;
        margin: 0 0 15px 0 !important;
    }
    
    .main-menu .dropdown-column li {
        margin: 0 !important;
        padding: 0 !important;
        border-bottom: 1px solid rgba(255,255,255,0.05) !important;
    }
    
    .main-menu .dropdown-column li a {
        display: block !important;
        padding: 12px 15px 12px 30px !important;
        color: rgba(255,255,255,0.9) !important;
        font-size: 0.95rem !important;
        text-decoration: none !important;
        transition: all 0.2s ease !important;
    }
    
    .main-menu .dropdown-column li a:hover {
        background: rgba(255,255,255,0.1) !important;
        color: white !important;
        padding-left: 35px !important;
    }
    
    /* Lien "Voir tous nos produits" */
    .main-menu .view-all-products {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 12px !important;
        background: white !important;
        color: #c41e3a !important;
        width: calc(100% - 30px) !important;
        margin: 15px !important;
        padding: 18px 25px !important;
        font-size: 1.05rem !important;
        font-weight: 700 !important;
        border: none !important;
        border-radius: 12px !important;
        text-decoration: none !important;
        box-shadow: 0 4px 15px rgba(0,0,0,0.2) !important;
        transition: all 0.3s ease !important;
    }
    
    .main-menu .view-all-products:hover {
        background: #f8f9fa !important;
        transform: scale(1.02) !important;
    }
    
    /* ==========================================
       2.7 RÉSULTATS RECHERCHE EN MOBILE
       ========================================== */
    
    #resultatrecherche {
        position: absolute !important;
        top: 100% !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 500 !important;
        width: 100% !important;
        max-width: none !important;
        transform: none !important;
        border-radius: 0 0 8px 8px !important;
    }
}

/* ========================================
   3. PETIT MOBILE (<576px)
   ======================================== */

@media (max-width: 576px) {
    
    /* Header ajustements petits écrans */
    .main-header {
        padding: 12px 0 8px 0 !important;
    }
    
    .header-content {
        gap: 10px !important;
        padding: 0 12px !important;
    }
    
    .logo-section img {
        height: 40px !important;
    }
    
    .search-form input {
        padding: 10px 45px 10px 12px !important;
        font-size: 16px !important;
    }
    
    /* Menu mobile */
    .main-menu {
        padding: 70px 15px 20px 15px !important;
    }
    
    .menu-toggle {
        width: 45px !important;
        height: 45px !important;
        font-size: 1.3rem !important;
    }
    
    .menu-toggle.active {
        top: 12px !important;
        left: 12px !important;
    }
    
    .main-menu .menu-link {
        font-size: 1rem !important;
        padding: 16px 12px !important;
    }
    
    .main-menu .view-all-products {
        font-size: 0.95rem !important;
        padding: 16px 20px !important;
    }
    
    .main-menu .category-title {
        font-size: 0.95rem !important;
        padding: 10px 12px !important;
    }
    
    .main-menu .dropdown-column li a {
        font-size: 0.9rem !important;
        padding: 10px 12px 10px 25px !important;
    }
}

/* ========================================
   4. TRÈS PETIT MOBILE (<400px)
   ======================================== */

@media (max-width: 400px) {
    
    /* Header très petits écrans */
    .main-header {
        padding: 10px 0 6px 0 !important;
    }
    
    .header-content {
        gap: 8px !important;
        padding: 0 10px !important;
    }
    
    .logo-section img {
        height: 35px !important;
    }
    
    .search-form input {
        padding: 9px 42px 9px 10px !important;
        font-size: 16px !important;
    }
    
    .search-form button {
        padding: 6px 10px !important;
    }
    
    /* Menu mobile */
    .main-menu {
        padding: 65px 10px 15px 10px !important;
    }
    
    .menu-toggle {
        width: 42px !important;
        height: 42px !important;
        font-size: 1.2rem !important;
    }
    
    .menu-toggle.active {
        top: 10px !important;
        left: 10px !important;
    }
    
    .main-menu .view-all-products {
        font-size: 0.9rem !important;
        padding: 14px 18px !important;
        margin: 10px !important;
    }
}

/* ========================================
   5. STYLES RÉSULTATS RECHERCHE
   ======================================== */

#resultatrecherche #interieurrecherche {
    padding: 8px;
}

#resultatrecherche a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 15px;
    color: #333;
    text-decoration: none;
    border-bottom: 1px solid #f0f0f0;
    transition: all 0.2s ease;
}

#resultatrecherche a:hover {
    background: #f8f9fa;
    color: #c41e3a;
    padding-left: 20px;
}

#resultatrecherche a:last-child {
    border-bottom: none;
}

#resultatrecherche .no-results {
    padding: 20px;
    text-align: center;
    color: #666;
}

/* ========================================
   6. CONTENU PAGE - ÉVITER LES CONFLITS
   ======================================== */

#conteneurprincipal,
.main-content,
.product-container,
.gs-about-hero,
.gs-about-intro,
.gs-about-expertise,
.gs-about-timeline,
.gs-about-today,
.gs-about-commitments,
.gs-about-cta,
.gs-contact-v4,
.gs-devis-v4,
.hero-savoir-faire,
.section-intro,
.section-metier,
.gs-category-hero,
.gs-catalog-hero {
    position: relative;
    z-index: 1;
}

/* Breadcrumb */
.breadcrumb {
    position: relative;
    z-index: 1;
}

/* Footer */
footer,
.main-footer {
    position: relative;
    z-index: 10;
}

/* ========================================
   7. BODY LOCK POUR MENU MOBILE
   ======================================== */

body.menu-open {
    overflow: hidden !important;
    position: fixed !important;
    width: 100% !important;
    height: 100% !important;
}

/* ========================================
   8. ANIMATIONS
   ======================================== */

@media (max-width: 992px) {
    /* Animation d'entrée des items du menu */
    .main-menu.active .menu-item {
        animation: slideInLeft 0.3s ease backwards;
    }
    
    .main-menu.active .menu-item:nth-child(1) { animation-delay: 0.05s; }
    .main-menu.active .menu-item:nth-child(2) { animation-delay: 0.1s; }
    .main-menu.active .menu-item:nth-child(3) { animation-delay: 0.15s; }
    .main-menu.active .menu-item:nth-child(4) { animation-delay: 0.2s; }
    .main-menu.active .menu-item:nth-child(5) { animation-delay: 0.25s; }
    .main-menu.active .menu-item:nth-child(6) { animation-delay: 0.3s; }
    .main-menu.active .menu-item:nth-child(7) { animation-delay: 0.35s; }
    .main-menu.active .menu-item:nth-child(8) { animation-delay: 0.4s; }
    
    @keyframes slideInLeft {
        from {
            opacity: 0;
            transform: translateX(-20px);
        }
        to {
            opacity: 1;
            transform: translateX(0);
        }
    }
}

/* ========================================
   FIN DU FICHIER UNIFIÉ V4.4
   ======================================== */
