/**
 * ACEMAN - Présentation mobile publique
 * Refonte complète : layout dynamique sans superpositions
 * Mobile-first, empilement vertical strict
 */

/* ========== BASE MOBILE ========== */
@media (max-width: 991px) {
    html {
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
    }
    
    body {
        overflow-x: hidden !important;
        min-width: 0 !important;
        width: 100% !important;
    }
    
    .container,
    .container-fluid {
        max-width: 100% !important;
        padding-left: max(1rem, env(safe-area-inset-left)) !important;
        padding-right: max(1rem, env(safe-area-inset-right)) !important;
        overflow-x: hidden !important;
    }
}

/* ========== ZONE SÉCURITÉ ENCOCHES ========== */
@supports (padding: env(safe-area-inset-top)) {
    body {
        padding-left: env(safe-area-inset-left);
        padding-right: env(safe-area-inset-right);
    }
    .navbar .container {
        padding-left: max(1rem, env(safe-area-inset-left));
        padding-right: max(1rem, env(safe-area-inset-right));
    }
}

/* ========== NAVBAR MOBILE ========== */
@media (max-width: 991px) {
    .navbar {
        position: relative !important;
        z-index: 1030;
        padding-left: max(0.5rem, env(safe-area-inset-left));
        padding-right: max(0.5rem, env(safe-area-inset-right));
    }
    
    .navbar .navbar-toggler {
        padding: 0.6rem 0.85rem;
        font-size: 1.25rem;
        min-height: 44px;
    }
    
    .navbar-collapse {
        position: relative !important;
        z-index: 1;
        margin-top: 0.75rem;
        padding-top: 0.75rem;
        border-top: 1px solid rgba(0, 0, 0, 0.08);
    }
    
    .navbar-collapse .navbar-nav {
        flex-direction: column;
        width: 100%;
    }
    
    .navbar .nav-link {
        padding: 0.85rem 0 !important;
        min-height: 44px;
        display: flex;
        align-items: center;
    }
}

/* ========== CONTENU CMS - SANS SUPERPOSITIONS ========== */
.cms-content img,
.cms-content video,
.cms-content iframe,
.cms-content embed,
.cms-content object {
    max-width: 100% !important;
    height: auto !important;
}

@media (max-width: 991px) {
    .cms-content {
        position: relative !important;
        overflow: visible !important;
        width: 100% !important;
    }
    
    /* Reset absolu : tout en block empilé */
    .cms-content *,
    .cms-content [class*="uagb-"],
    .cms-content [class*="ast-"],
    .cms-content [class*="wp-block"],
    .cms-content .row,
    .cms-content .row > [class*="col-"],
    .cms-content .d-flex,
    .cms-content .flex-row,
    .cms-content .uagb-infobox__content-wrap,
    .cms-content .uagb-ifb-content,
    .cms-content .uagb-ifb-title-wrap,
    .cms-content .entry-content > * {
        position: relative !important;
        float: none !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
        transform: none !important;
        max-width: 100% !important;
    }
    
    /* Colonnes Bootstrap → empilées */
    .cms-content .row {
        display: block !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    
    .cms-content .row > [class*="col-"] {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
        margin-bottom: 1rem !important;
    }
    
    /* Grilles Flex → empilées */
    .cms-content .d-flex,
    .cms-content .flex-row,
    .cms-content [style*="display: flex"],
    .cms-content [style*="display:grid"] {
        flex-direction: column !important;
        display: block !important;
    }
    
    .cms-content .d-flex > *,
    .cms-content .flex-row > * {
        width: 100% !important;
        margin-bottom: 0.75rem !important;
    }
    
    /* Tables → cartes empilées */
    .cms-content table {
        display: block !important;
        width: 100% !important;
        border-collapse: collapse;
    }
    
    .cms-content table thead,
    .cms-content table colgroup,
    .cms-content table col {
        display: none !important;
    }
    
    .cms-content table tbody {
        display: block !important;
    }
    
    .cms-content table tr {
        display: block !important;
        margin-bottom: 1.25rem;
        padding: 1rem;
        border: 1px solid #e9ecef;
        border-radius: 0.5rem;
        background: #fff;
        clear: both;
    }
    
    .cms-content table td,
    .cms-content table th {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0.5rem 0 !important;
        border: none !important;
        border-bottom: 1px solid #eee !important;
    }
    
    .cms-content table tr td:last-child,
    .cms-content table tr th:last-child {
        border-bottom: none !important;
    }
    
    .cms-content table td:empty,
    .cms-content table th:empty {
        display: none !important;
    }
    
    
    /* UAGB / Gutenberg */
    .cms-content [class*="uagb-"] {
        margin-bottom: 1.25rem !important;
    }
    
    .cms-content .uagb-infobox__content-wrap,
    .cms-content .uagb-ifb-content {
        margin-bottom: 0.75rem !important;
    }
    
    /* Astra / WordPress */
    .cms-content .ast-float,
    .cms-content .alignleft,
    .cms-content .alignright {
        float: none !important;
        margin: 1rem 0 !important;
    }
    
    .cms-content .ast-width-md-6,
    .cms-content .ast-width-md-4,
    .cms-content .ast-width-md-3,
    .cms-content .ast-width-50 {
        width: 100% !important;
    }
    
    /* UAGB containers - empêcher superposition Bienvenue / Qui sommes nous */
    .cms-content .wp-block-uagb-container,
    .cms-content .uagb-container-inner-blocks-wrap,
    .cms-content .uagb-layout-flex,
    .cms-content .uagb-is-root-container {
        display: block !important;
        flex-direction: column !important;
        width: 100% !important;
        max-width: 100% !important;
        clear: both !important;
        margin-bottom: 2rem !important;
        overflow: visible !important;
    }
    
    .cms-content .uagb-container-inner-blocks-wrap > *,
    .cms-content .uagb-layout-flex > * {
        display: block !important;
        width: 100% !important;
        margin-bottom: 1.5rem !important;
        clear: both !important;
    }
    
    /* Kadence row/colonnes */
    .cms-content .kb-row-layout-wrap,
    .cms-content .kt-row-column-wrap,
    .cms-content .wp-block-kadence-rowlayout {
        display: block !important;
        grid-template-columns: none !important;
    }
    
    .cms-content .wp-block-kadence-column,
    .cms-content .kt-row-column-wrap > div,
    .cms-content .inner-column-1,
    .cms-content .inner-column-2,
    .cms-content .inner-column-3 {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        grid-column: unset !important;
        margin-bottom: 1.5rem !important;
        clear: both !important;
    }
    
    /* Blocs info-box UAGB - chaque bloc isolé */
    .cms-content .wp-block-uagb-info-box,
    .cms-content .uagb-infobox-margin-wrapper {
        display: block !important;
        width: 100% !important;
        margin-bottom: 2rem !important;
        clear: both !important;
        contain: layout !important;
    }
}

/* ========== CAROUSELS CMS ========== */
@media (max-width: 991px) {
    .cms-random-companies-carousel,
    .cms-random-activities-carousel {
        margin: 1rem 0;
    }
    
    .carousel-item {
        padding: 1rem 0.5rem !important;
    }
    
    .carousel-control-prev,
    .carousel-control-next {
        opacity: 0.9;
    }
}

/* ========== FOOTER ========== */
@media (max-width: 991px) {
    footer {
        padding-left: max(1rem, env(safe-area-inset-left)) !important;
        padding-right: max(1rem, env(safe-area-inset-right)) !important;
    }
    
    footer a {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }
}

/* ========== FORMULAIRES & BOUTONS ========== */
@media (max-width: 991px) {
    .btn,
    .nav-link,
    .form-control,
    .form-select,
    a.btn,
    input[type="submit"],
    button[type="submit"] {
        min-height: 44px !important;
        padding: 0.6rem 1rem !important;
    }
    
    .btn-sm {
        min-height: 38px !important;
    }
    
    input,
    select,
    textarea {
        font-size: 16px !important; /* évite le zoom iOS */
    }
}

/* ========== CONTAINERS SPÉCIFIQUES ========== */
@media (max-width: 991px) {
    .main-container,
    .offer-container {
        margin: 1rem auto !important;
        padding: 1rem !important;
        max-width: 100% !important;
    }
    
    .login-container,
    .container-login {
        margin: 1rem !important;
        padding: 1.5rem !important;
    }
    
    body:has(.login-container) {
        align-items: flex-start !important;
        min-height: 100vh;
        padding-top: 1rem;
    }
    
    .filter-section {
        padding: 1rem !important;
    }
    
    .hero-section {
        padding: 1rem !important;
        font-size: 0.95rem;
    }
}

/* ========== MARKETPLACE ========== */
@media (max-width: 991px) {
    .marketplace-search-form input,
    .marketplace-search-form select {
        min-width: 0 !important;
        flex: 1 1 100% !important;
    }
    
    .marketplace-search-form {
        width: 100%;
    }
}

/* ========== PETITS ÉCRANS ========== */
@media (max-width: 576px) {
    .main-container,
    .offer-container {
        padding: 0.75rem !important;
    }
    
    h1, .h1 {
        font-size: 1.4rem !important;
    }
    
    .display-4 {
        font-size: 1.75rem !important;
    }
    
    .lead {
        font-size: 1rem;
    }
}

/* ========== ARTICLE / PAGE CONTENT ========== */
@media (max-width: 991px) {
    article,
    .cms-content {
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
    
    .cms-content p,
    .cms-content li {
        max-width: 100%;
    }
}

/* ========== ADAPTATIONS JQUERY (Android, iOS, Windows) ========== */
body.aceman-ios {
    -webkit-overflow-scrolling: touch;
}
body.aceman-ios .container,
body.aceman-ios .navbar {
    padding-left: max(1rem, env(safe-area-inset-left));
    padding-right: max(1rem, env(safe-area-inset-right));
}
body.aceman-android .btn,
body.aceman-android .nav-link {
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0.1);
}
body.aceman-windows {
    -ms-overflow-style: -ms-autohiding-scrollbar;
}
body.aceman-mobile .cms-content table {
    -webkit-overflow-scrolling: touch;
}
