/* =====================================================
   RESPONSIVE FIX - NUIZ - Toutes les pages
   Empêche tout débordement horizontal sur mobile
   ===================================================== */

/* Base : aucun débordement possible */
html {
    overflow-x: hidden !important;
}

body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
    width: 100% !important;
}

*,
*::before,
*::after {
    box-sizing: border-box !important;
}

/* Exception : logo navbar — doit TOUJOURS être 50px */
nav.navbar .logo img {
    height: 50px !important;
    width: auto !important;
    max-width: 200px !important;
    object-fit: contain !important;
}

img,
video,
iframe,
embed,
object {
    max-width: 100% !important;
    height: auto !important;
}

@media (max-width: 900px) {

    /* Conteneurs */
    .container {
        padding: 0 14px !important;
        max-width: 100% !important;
    }

    /* Navbar */
    .nav-content {
        flex-wrap: wrap !important;
    }

    /* ---- HERO ---- */
    .hero {
        padding: 2rem 0 !important;
    }

    .hero-content {
        flex-direction: column !important;
        gap: 1.5rem !important;
        align-items: center !important;
    }

    .hero-text {
        width: 100% !important;
        flex: none !important;
        text-align: center !important;
        padding: 0 10px !important;
    }

    .hero-image {
        width: 100% !important;
        flex: none !important;
        justify-content: center !important;
    }

    .hero-img-real {
        max-width: 90vw !important;
        width: 100% !important;
        height: auto !important;
    }

    .hero-text h1 {
        font-size: 1.8rem !important;
        line-height: 1.3 !important;
        word-wrap: break-word !important;
    }

    .hero-text p {
        font-size: 1rem !important;
    }

    .hero-trust {
        flex-direction: column !important;
        align-items: center !important;
        gap: 0.5rem !important;
    }

    .search-bar {
        flex-direction: column !important;
        border-radius: 12px !important;
        max-width: 100% !important;
    }

    .search-bar input {
        width: 100% !important;
        padding: 0.75rem 1rem !important;
    }

    .hero-text .btn {
        display: block !important;
        width: 100% !important;
        margin-bottom: 0.75rem !important;
        text-align: center !important;
    }

    /* ---- GRILLES ---- */
    .services-grid {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
    }

    .testimonials-grid {
        grid-template-columns: 1fr !important;
    }

    .features-grid {
        grid-template-columns: 1fr !important;
    }

    .faq-grid {
        grid-template-columns: 1fr !important;
    }

    .footer-content {
        grid-template-columns: 1fr 1fr !important;
        gap: 1.5rem !important;
    }

    .steps-grid {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .step-card {
        min-width: 0 !important;
        width: 100% !important;
    }

    .step-arrow {
        display: none !important;
    }

    /* ---- SECTIONS ---- */
    .section {
        padding: 2rem 0 !important;
    }

    .section-title {
        font-size: 1.5rem !important;
        padding: 0 10px !important;
        margin-bottom: 1.5rem !important;
    }

    /* ---- CARTES ---- */
    .service-card,
    .testimonial-card,
    .faq-item {
        width: 100% !important;
        min-width: 0 !important;
    }

    /* ---- CTA ---- */
    .cta-section {
        padding: 2rem 14px !important;
    }

    .cta-section h2 {
        font-size: 1.6rem !important;
    }

    .cta-section .btn {
        display: block !important;
        width: 100% !important;
        max-width: 320px !important;
        margin: 0 auto !important;
    }

    /* ---- FORMULAIRES ---- */
    .form-container {
        margin: 1rem 10px !important;
        padding: 1.25rem !important;
        width: auto !important;
    }

    .form-row,
    .form-group-row {
        grid-template-columns: 1fr !important;
        flex-direction: column !important;
    }

    input,
    textarea,
    select {
        max-width: 100% !important;
        width: 100% !important;
    }

    /* ---- TEXTE ---- */
    h1,
    h2,
    h3,
    h4,
    h5,
    p,
    li,
    td,
    th {
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
        max-width: 100% !important;
    }

    /* ---- TABLEAUX ---- */
    table {
        display: block !important;
        overflow-x: auto !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* ---- FOOTER ---- */
    .footer {
        padding: 2rem 14px 5rem !important;
    }

    .copyright {
        font-size: 0.8rem !important;
    }

    /* ---- PAGES SPÉCIFIQUES (dératisation, punaises, etc.) ---- */
    /* Sections info avec image + texte côte à côte */
    .info-section,
    .content-section,
    .deux-colonnes,
    .two-col,
    [class*="split"],
    [class*="row"],
    [class*="flex"] {
        flex-direction: column !important;
        flex-wrap: wrap !important;
    }

    /* Toutes div avec display flex qui pourraient déborder */
    div[style*="display: flex"],
    div[style*="display:flex"] {
        flex-wrap: wrap !important;
    }

    /* Large fixed-width elements */
    [style*="width: 1"],
    [style*="min-width: 1"],
    [style*="width:1"],
    [style*="min-width:1"] {
        width: 100% !important;
        min-width: 0 !important;
    }
}