/**
 * RESPONSIVE CSS
 * Media queries pour les différentes tailles d'écran
 */

/* ===============================================
   GLOBAL - Éviter tout débordement horizontal
   =============================================== */

html {
    overflow-x: hidden;
    -webkit-text-size-adjust: 100%;
}

body {
    overflow-x: hidden;
    min-width: 0;
}

img,
video {
    max-width: 100%;
    height: auto;
}

iframe,
embed,
object {
    max-width: 100%;
}


/* ===============================================
   TABLETTES (max-width: 1024px)
   =============================================== */

@media (max-width: 1024px) {
    /* Ancres / focus : ne pas finir sous la barre « Signaler » fixe */
    html {
        scroll-padding-bottom: calc(var(--reserve-signal-bar-h) + env(safe-area-inset-bottom, 0px) + var(--espacement-sm));
    }

    /* Dernière zone de contenu (footer, etc.) : ne pas rester sous la barre fixe */
    body {
        padding-bottom: calc(var(--reserve-signal-bar-h) + env(safe-area-inset-bottom, 0px) + var(--espacement-xs));
    }

    .section-container {
        width: 100%;
        max-width: 100%;
        padding-left: var(--espacement-lg);
        padding-right: var(--espacement-lg);
    }

    .header-container {
        flex-direction: row;
        gap: var(--espacement-lg);
        padding: 0 var(--espacement-lg);
    }

    /* À partir de 1024px et moins, on passe
       sur la navigation mobile (burger) pour
       éviter que le menu horizontal déborde. */
    .menu-toggle {
        display: block;
    }

    .main-nav {
        display: none;
    }

    .mobile-menu-overlay {
        display: block;
    }

    .mobile-nav {
        display: block;
    }

    /* Actualités : même structure que desktop mais empilée (featured puis liste) */
    .actualites-layout {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
        grid-auto-flow: row;
        width: 100%;
        gap: var(--espacement-xl);
    }

    .actualites-layout .featured-card {
        order: 1;
    }

    .actualites-layout .actualites-wrapper {
        order: 2;
    }

    /* Filtres actualités : empiler comme sur desktop (tablette) */
    .actualites-filters {
        flex-direction: column;
        align-items: stretch;
    }

    .actualites-tabs {
        padding-bottom: 4px;
    }

    .services-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--espacement-md);
    }

    .experts-cards-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--espacement-lg);
    }

    /* Experts page : hero et section */
    .experts-audit-certifies-page .page-hero-inner {
        padding: 4rem var(--espacement-lg) 4rem;
        min-height: 150px;
    }
    .experts-audit-certifies-page .section-container {
        padding-left: var(--espacement-lg);
        padding-right: var(--espacement-lg);
    }
    .experts-verification-form {
        padding: var(--espacement-lg);
    }
    .experts-audit-certifies-container {
        padding: var(--espacement-xl) var(--espacement-lg);
    }

    .mega-menu {
        position: static;
        flex-direction: column;
        box-shadow: none;
        margin-top: 0;
        width: 100%;
    }

    .mega-menu-highlight {
        min-width: 100%;
        padding: var(--espacement-lg) var(--espacement-md);
    }

    .mega-menu-list {
        min-width: 100%;
        padding: var(--espacement-md);
    }

    .hero-content-wrapper {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .hero-cta {
        align-self: center;
    }

    /* Footer tablette : conserver la disposition horizontale desktop */
    .footer-grid {
        flex-direction: row;
        align-items: flex-start;
        gap: var(--espacement-xl);
    }

    .footer-column:first-child {
        flex: 0 0 220px;
        min-width: 0;
    }

    .footer-social-icons {
        gap: var(--espacement-sm);
        row-gap: var(--espacement-sm);
    }

    .footer-columns-right {
        flex: 1;
        flex-direction: row;
        flex-wrap: wrap;
        gap: var(--espacement-md) var(--espacement-lg);
    }

    .footer-columns-right .footer-column {
        flex: 1 1 130px;
        min-width: 110px;
    }
}

/* ===============================================
   MOBILE (max-width: 768px)
   =============================================== */

@media (max-width: 768px) {
    /* === FLASH INFOS (bande fixe) - plus compact sur mobile === */
    .flash-infos-wrapper {
        --flash-infos-height: 48px;
    }

    .flash-infos-bar {
        padding: 5px 0;
        max-height: 48px;
        overflow: hidden;
    }

    .flash-infos-container {
        flex-direction: row;
        align-items: center;
        gap: var(--espacement-xs);
        flex-wrap: wrap;
        padding: 0 var(--espacement-lg);
    }

    /* Icônes sociales : affichées en mobile mais plus compactes,
       elles passent à la ligne sous le texte si besoin */
    .flash-infos-social {
        display: flex;
        align-items: center;
        gap: var(--espacement-xs);
        margin-left: auto;
    }

    .flash-infos-label {
        align-self: center;
        padding: 4px 8px;
        font-size: 10px;
    }

    .flash-infos-ticker-wrap {
        flex: 1;
        min-width: 0;
    }

    .flash-infos-ticker {
        font-size: 11px;
    }

    .flash-infos-actions {
        flex-wrap: nowrap;
        justify-content: flex-end;
    }

    .flash-infos-cta {
        min-height: 28px;
        padding: 2px 6px;
        font-size: 10px;
    }

    /* === BANDE L'ANSSI === */
    .anssi-band-inner {
        padding: var(--espacement-lg) var(--espacement-md);
    }

    .anssi-band-nav-list {
        min-height: 44px;
        justify-content: center;
    }

    .anssi-band-nav-link {
        font-size: var(--taille-petit);
        padding: var(--espacement-sm) var(--espacement-xs);
    }

    /* === HEADER - plus compact sur mobile === */
    .header {
        padding: 2px 0;
        z-index: 1010;
    }

    body.has-flash-infos .header {
        top: 48px;
    }

    /* Décale le contenu sous flash + header sur mobile */
    body.has-flash-infos {
        padding-top: 86px; /* 48px flash + ~38px header */
    }
    body:not(.has-flash-infos) {
        padding-top: 40px; /* header seul */
    }

    /* Le menu mobile (panneau slide-in) démarre après la flash bar */
    body.has-flash-infos .mobile-nav {
        top: 48px;
        height: calc(100vh - 48px);
    }

    body:not(.has-flash-infos) .mobile-nav {
        top: 0;
        height: 100vh;
    }

    .header-container {
        flex-direction: row;
        gap: 0;
        padding: 0 var(--espacement-lg);
        justify-content: space-between;
        align-items: center;
    }

    .logo {
        margin-left: 0;
        min-width: 0;
    }

    .logo img {
        height: 32px;
    }

    .menu-toggle {
        display: block;
    }

    .main-nav {
        display: none;
    }

    .mobile-menu-overlay {
        display: block;
    }

    .mobile-nav {
        display: block;
    }

    /* === MEGA MENU MOBILE === */
    .mobile-nav .mega-menu {
        position: static;
        flex-direction: column;
        box-shadow: none;
        padding: 0;
        margin-top: 0;
        background: transparent;
    }

    .mobile-nav .mega-menu-highlight {
        padding: var(--espacement-md) var(--espacement-md);
        min-width: 100%;
        background: rgba(0, 0, 0, 0.1);
    }

    .mega-menu-highlight h3 {
        font-size: var(--taille-moyen);
    }

    .mega-menu-highlight p {
        font-size: var(--taille-petit);
    }

    .mega-menu-list {
        padding: var(--espacement-sm) var(--espacement-md) var(--espacement-md) var(--espacement-xl);
        min-width: 100%;
    }

    .mega-menu-list a {
        padding: 8px 0;
    }

    /* ── Sous-menus (has-submenu) en mobile : clic au lieu de hover ── */
    .mega-menu-list li.has-submenu:hover > .sub-submenu {
        display: none;  /* désactiver le hover sur mobile */
    }

    .mega-menu-list li.has-submenu.sub-open > .sub-submenu {
        display: block;
    }

    .mega-menu-list li.has-submenu > a::after {
        content: " ▼";
        font-size: 9px;
        opacity: 0.6;
        transition: none;
    }

    .mega-menu-list li.has-submenu.sub-open > a::after {
        content: " ▲";
    }

    .mobile-nav .mega-menu-list .sub-submenu a {
        padding: 6px 0 6px 16px;
        border-left: 3px solid rgba(255, 255, 255, 0.5);
        font-size: var(--taille-normal);
        color: #fff;
    }

    /* === HERO === */
    /* Pas de padding sur .hero : sinon le fond #0a1628 reste visible en bandes
       autour / sous l’image (slides en absolute dans la boîte de padding). */
    .hero {
        height: 460px;
        padding: 0;
    }

    .hero-slide-cta {
        top: 57%;
    }

    /* Bouton CTA hero : plus compact sur tablette/mobile */
    .hero-slide-cta .cta-button {
        font-size: 0.9rem;
        padding: var(--espacement-sm) var(--espacement-xl);
        border-radius: var(--rayon-moyen);
    }

    .hero-nav-arrow {
        width: 40px;
        height: 40px;
        font-size: 20px;
    }

    .hero-nav-arrow.prev {
        left: var(--espacement-sm);
    }

    .hero-nav-arrow.next {
        right: var(--espacement-sm);
    }

    .hero-logos {
        gap: var(--espacement-lg);
        margin-top: var(--espacement-xl);
    }

    .hero-logos-wrapper {
        gap: var(--espacement-lg);
    }

    .hero-logo-item {
        padding: var(--espacement-md) var(--espacement-lg);
        font-size: var(--taille-normal);
    }

    /* Réserve sous le hero : la barre « Signaler » (fixe) ne doit pas masquer logos / texte */
    .hero-content {
        padding-bottom: calc(var(--espacement-xxl) + var(--reserve-signal-bar-h) + env(safe-area-inset-bottom, 0px));
    }

    /* === SEARCH SECTION === */
    .search-section {
        padding: 60px var(--espacement-lg);
    }

    .search-section h2 {
        font-size: var(--taille-titre-3);
        margin-bottom: var(--espacement-lg);
    }

    .search-form {
        flex-direction: column;
        max-width: 100%;
    }

    .search-input {
        padding: var(--espacement-md) var(--espacement-lg);
        font-size: var(--taille-normal);
    }

    .search-button {
        padding: 10px var(--espacement-md);
        font-size: 14px;
        min-height: 40px;
        width: 100%;
    }

    .cta-button {
        padding: 10px var(--espacement-md);
        font-size: 14px;
        min-height: 40px;
    }

    /* === ACCOMPAGNEMENTS / FORMATIONS === */
    .accompagnements-hero-inner,
    .bonnes-pratiques-hero-inner {
        padding-left: var(--espacement-xl);
        padding-right: var(--espacement-xl);
    }
    .accompagnements-nav {
        padding-left: var(--espacement-xl);
        padding-right: var(--espacement-xl);
    }
    .accompagnements-content-outer,
    .bonnes-pratiques-content-outer {
        padding-left: var(--espacement-xl);
        padding-right: var(--espacement-xl);
    }
    .accompagnements-content-inner,
    .bonnes-pratiques-content-inner {
        padding-left: var(--espacement-xl);
        padding-right: var(--espacement-xl);
    }
    .formations-certifications-page .formations-banner {
        padding-left: var(--espacement-xl);
        padding-right: var(--espacement-xl);
    }

    /* === NAV BAR === */
    .nav-bar {
        padding: var(--espacement-md) 0;
    }

    .nav-bar-items {
        flex-wrap: wrap;
        gap: var(--espacement-sm);
    }

    .nav-bar-item a {
        font-size: var(--taille-petit);
        padding: var(--espacement-xs) 8px;
    }

    /* === SECTIONS === */
    .section-title {
        font-size: 28px;
        margin-bottom: var(--espacement-xl);
    }

    .section-container {
        width: 100%;
        max-width: 100%;
        padding-left: var(--espacement-md);
        padding-right: var(--espacement-md);
    }

    .actualites-section,
    .services-section,
    .stats-section,
    .facebook-feed-section {
        padding: 60px var(--espacement-md);
        width: 100%;
        max-width: 100%;
    }

    /* Même hauteur / typo pour « Voir plus » à la une et en liste (≤1024px) */
    .actualites-section {
        --voir-plus-min-height: 40px;
        --voir-plus-padding-y: 8px;
        --voir-plus-padding-x: var(--espacement-md);
        --voir-plus-font-size: var(--taille-petit);
    }

    .facebook-feed-title {
        font-size: var(--taille-titre-2);
    }

    .facebook-feed-container {
        width: 100%;
        max-width: 100%;
    }

    .facebook-feed-main {
        display: flex;
        flex-direction: column;
        gap: var(--espacement-lg);
        min-width: 0;
    }

    /* Sur mobile, on annule le placement en grille personnalisé
       pour empiler proprement les cartes */
    .facebook-feed-embed,
    .linkedin-feed-card,
    .youtube-feed-card,
    .tiktok-feed-card {
        grid-column: auto !important;
        grid-row: auto !important;
        width: 100%;
    }

    .facebook-feed-header {
        text-align: center;
    }

    .facebook-feed-embed {
        padding: var(--espacement-md);
        min-height: 500px;
        width: 100%;
        overflow: hidden;
    }

    .facebook-feed-embed .fb-page,
    .facebook-feed-embed .fb-page span,
    .facebook-feed-embed iframe {
        max-width: 100% !important;
    }

    .facebook-feed-page-plugin-wrap {
        max-width: 100%;
        width: 100%;
        min-width: 0;
    }

    .facebook-feed-page-iframe {
        width: 100% !important;
        max-width: 100% !important;
    }

    .social-feed-other-grid {
        width: 100%;
        grid-template-rows: none;
    }

    .linkedin-feed-card,
    .youtube-feed-card,
    .tiktok-feed-card {
        width: 100%;
    }

    /* === PRESSE & CONTACTS === */
    .presse-contacts-form-map-wrapper {
        grid-template-columns: 1fr;
        gap: var(--espacement-xl);
    }
    .presse-contacts-info-grid {
        grid-template-columns: repeat(2, 1fr);
        min-width: 0;
    }
    .presse-contacts-info-block {
        min-width: 0;
    }
    .presse-contacts-layout {
        padding-left: var(--espacement-lg);
        padding-right: var(--espacement-lg);
    }
    .presse-contacts-content-outer {
        padding: var(--espacement-xl) var(--espacement-lg);
        overflow-x: hidden;
    }

    /* === STATS === */
    .stats-section {
        margin-top: 80px;
        width: 100%;
    }

    .stats-container {
        width: 100%;
        max-width: 100%;
        padding-left: var(--espacement-md);
        padding-right: var(--espacement-md);
    }

    .stats-image-wrapper {
        top: -80px;
        position: relative;
        transform: translateX(0);
        left: auto;
        margin-bottom: var(--espacement-xl);
    }

    .stats-container {
        padding-top: var(--espacement-xxl);
    }

    .stats-intro {
        font-size: var(--taille-grand);
        margin-bottom: var(--espacement-xl);
    }

    .stats-intro h3 {
        font-size: 22px;
    }

    .stat-number {
        font-size: var(--taille-hero);
    }

    .stat-label {
        font-size: var(--taille-normal);
    }

    /* === ACTUALITÉS === */
    /* Actualités : même structure que desktop mais empilée verticalement */
    .actualites-layout {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
        grid-auto-flow: row;
        gap: var(--espacement-xl);
    }

    .actualites-layout .featured-card {
        order: 1;
    }

    .actualites-layout .actualites-wrapper {
        order: 2;
    }

    /* Filtres actualités */
    .actualites-filters {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }

    .actualites-category-mobile {
        width: 100%;
    }

    /* Tous les filtres : label + select sur la même ligne */
    .actualites-date-filter,
    .actualites-sort-filter {
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 6px;
        width: 100%;
    }

    .date-filter-label {
        font-size: 12px;
        white-space: nowrap;
        flex-shrink: 0;
        min-width: 60px;
    }

    .date-filter-select {
        flex: 1;
        min-width: 0;
        font-size: 12px;
        padding: 7px 8px;
        border-radius: 8px;
    }

    .actualites-wrapper .card-thumbnail-block {
        width: 90px;
        min-width: 0;
        max-width: 100%;
    }

    .actualites-wrapper .actualite-thumbnail {
        width: 90px;
        height: 62px;
        max-width: 100%;
    }

    .actualites-wrapper .actualite-thumbnail img {
        max-width: 100%;
    }

    /* « À la une » : tablette / iPad — zone plus haute (380px coupait le bas des affiches en paysage) */
    .featured-card {
        --featured-img-height: min(68vw, 400px);
        --featured-image-object-position: left 92%;
        min-height: auto;
        max-height: none;
    }

    .featured-card .featured-image-wrap {
        height: var(--featured-img-height);
        min-height: 240px;
        max-height: min(400px, 72vh);
        aspect-ratio: unset;
    }

    .featured-image {
        width: 100%;
        max-width: 100%;
        height: 100%;
        object-position: var(--featured-image-object-position, left 92%);
    }

    /* Points de pagination : alignés sous la zone image (variable --featured-img-height) */
    .featured-dots {
        top: calc(var(--featured-img-height) + var(--featured-dots-gap, 22px));
        bottom: auto;
        gap: 3px;
        z-index: 25;
    }

    .featured-dot {
        width: 5px;
        height: 5px;
        min-width: 14px;
        min-height: 14px;
        padding: 5px;
        margin: 0;
        border-width: 1.5px;
    }

    .featured-nav-arrow {
        width: 40px;
        height: 40px;
        min-width: 40px;
        min-height: 40px;
        z-index: 20;
        font-size: 1.25rem;
    }

    .featured-card {
        position: relative;
    }

    .featured-content {
        padding: var(--espacement-sm) var(--espacement-sm) var(--espacement-md);
        /* Évite les artefacts Safari iOS (badge URGENT décoloré sous backdrop-filter) */
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        background: #ffffff;
    }

    .actualites-section .featured-badge {
        background-color: #b91c1c;
        background-image: linear-gradient(135deg, #dc2626 0%, #991b1b 100%);
        color: #ffffff;
        -webkit-text-fill-color: #ffffff;
    }

    .tab-btn {
        min-height: 34px;
        padding: 6px 12px;
        font-size: 12px;
    }

    .card-actions {
        flex-direction: column;
        align-items: stretch;
        gap: var(--espacement-sm);
    }

    .card-actions .card-btn {
        width: 100%;
        min-height: 36px;
        padding: 8px var(--espacement-sm);
        font-size: 12px;
        white-space: normal;
    }

    .featured-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .featured-actions .featured-button,
    .featured-actions .featured-button-secondary {
        flex: none;
        width: 100%;
        text-align: center;
    }

    .card-btn {
        min-height: 36px;
        padding: 8px var(--espacement-sm);
        font-size: 12px;
    }

    .pagination {
        flex-wrap: wrap;
        gap: var(--espacement-xs);
    }

    .pagination-btn {
        min-height: 36px;
        padding: 8px var(--espacement-sm);
        font-size: 12px;
    }

    .featured-title {
        font-size: var(--taille-moyen);
    }

    .featured-modules h4 {
        font-size: var(--taille-normal);
    }

    .module-item {
        font-size: var(--taille-petit);
    }

    /* === PRESSE & CONTACTS (768px) === */
    .presse-contacts-page {
        overflow-x: hidden;
    }
    .presse-contacts-content-outer {
        padding: var(--espacement-xl) var(--espacement-md);
        min-width: 0;
        max-width: 100%;
    }
    .presse-contacts-layout {
        min-width: 0;
        max-width: 100%;
    }
    .presse-contacts-form-map-wrapper {
        min-width: 0;
    }
    .presse-contacts-hero-inner {
        padding: 3rem var(--espacement-md) 2.5rem;
        min-height: auto;
    }
    .presse-contacts-hero-title {
        font-size: 1.15rem;
        text-align: center;
    }
    .presse-contacts-form-section,
    .presse-contacts-map-section {
        padding: var(--espacement-xl) var(--espacement-md);
        min-width: 0;
    }
    .presse-contacts-form {
        min-width: 0;
        max-width: 100%;
    }
    .presse-contacts-section-title {
        text-align: center;
        margin-bottom: var(--espacement-lg);
    }
    .presse-contacts-form-grid {
        grid-template-columns: 1fr;
        min-width: 0;
    }
    .presse-contacts-form-field input,
    .presse-contacts-form-field textarea {
        max-width: 100%;
        box-sizing: border-box;
    }
    .presse-contacts-submit-btn {
        min-width: 0;
        width: 100%;
        max-width: 100%;
    }
    .presse-contacts-map-wrapper {
        min-height: 240px;
    }
    /* 1 colonne pour éviter le débordement (ex. Surface Duo 540px) */
    .presse-contacts-info-grid {
        grid-template-columns: 1fr;
        gap: var(--espacement-md);
    }
    .presse-contacts-info-block {
        min-width: 0;
        max-width: 100%;
    }

    /* === SERVICES === */
    .actualites-grid {
        grid-template-columns: 1fr;
        gap: var(--espacement-lg);
    }

    .actualite-thumbnail {
        width: 160px;
        height: 110px;
    }
    
    .services-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--espacement-md);
    }

    .experts-cards-grid {
        grid-template-columns: 1fr;
        gap: var(--espacement-lg);
    }

    /* Experts page : hero, recherche, cartes */
    .experts-audit-certifies-page .page-hero-inner {
        padding: 3rem var(--espacement-md) 3rem;
        min-height: 120px;
    }
    .experts-audit-certifies-page .page-hero-title {
        font-size: 1.25rem;
    }
    .experts-audit-certifies-page .section-container {
        padding-left: var(--espacement-md);
        padding-right: var(--espacement-md);
    }
    .experts-audit-certifies-container {
        padding: var(--espacement-xl) var(--espacement-md);
    }
    .experts-verification-section {
        margin: var(--espacement-lg) 0;
        padding: 0 var(--espacement-sm);
    }
    .experts-verification-form {
        flex-direction: column;
        gap: var(--espacement-sm);
        max-width: 100%;
    }
    .experts-verification-field input {
        width: 100%;
        font-size: 16px; /* évite zoom auto iOS */
    }
    .experts-verification-btn {
        width: 100%;
    }
    /* Fiche vérification : libellé au-dessus de la valeur sur petit écran */
    .expert-verification-row {
        grid-template-columns: 1fr;
        gap: 0.35rem;
    }
    .expert-verification-card-head {
        flex-direction: column;
        text-align: center;
    }
    .expert-verification-card-head-text {
        text-align: center;
    }
    .experts-verification-pdf-btn {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    .expert-card-body {
        padding: var(--espacement-md);
    }
    .expert-card-name {
        font-size: var(--taille-petit);
    }
    .experts-pagination .reglementation-pagination-list {
        flex-wrap: wrap;
        justify-content: center;
        gap: var(--espacement-xs);
    }
    .experts-pagination .reglementation-page-btn {
        min-width: 36px;
        padding: var(--espacement-xs) var(--espacement-sm);
        font-size: var(--taille-petit);
    }

    .service-card {
        padding: var(--espacement-sm) var(--espacement-sm);
    }

    .service-icon {
        width: min(100%, 200px);
        max-width: 200px;
        max-height: 200px;
        aspect-ratio: 1;
        height: auto;
        font-size: 2.5rem;
        padding: 8px;
    }
    
    .service-icon img {
        max-width: min(170px, 100%);
        max-height: min(170px, 100%);
    }

    .service-title {
        font-size: 13px;
    }
    
    .service-social-icon {
        width: 30px;
        height: 30px;
    }
    
    .service-social-icon span {
        font-size: 14px;
    }

    .service-social-icon img,
    .service-social-icon svg {
        width: 14px;
        height: 14px;
    }

    /*
     * FOOTER mobile : même rendu que capture 2 (tout centré comme le bas).
     * layout.css impose justify-content: flex-end + align-items: flex-start
     * sur .footer-columns-right — il faut les réinitialiser ici.
     */
    footer.footer {
        padding: var(--espacement-xl) var(--espacement-md) var(--espacement-md);
        text-align: center;
    }

    footer.footer .footer-container {
        text-align: center;
        margin-left: auto;
        margin-right: auto;
    }

    footer.footer .footer-logo-section {
        display: flex;
        justify-content: center;
        margin-bottom: var(--espacement-md);
    }

    footer.footer .footer-logo-section img {
        height: 48px;
    }

    footer.footer .footer-grid {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: var(--espacement-xl);
        text-align: center;
        width: 100%;
    }

    footer.footer .footer-column-left {
        width: 100%;
        max-width: 26rem;
        margin-left: auto;
        margin-right: auto;
        flex: none;
        align-self: center;
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.15);
        padding-right: 0;
        padding-bottom: var(--espacement-lg);
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    footer.footer .footer-column-left h4,
    footer.footer .footer-column-left p {
        text-align: center;
        width: 100%;
    }

    footer.footer .footer-column-left p a {
        word-break: break-word;
    }

    footer.footer .footer-social-icons {
        flex-wrap: wrap;
        justify-content: center;
        gap: var(--espacement-sm);
        margin-top: var(--espacement-sm);
        max-width: 100%;
    }

    footer.footer .footer-social-icons a {
        width: 34px;
        height: 34px;
        min-width: 34px;
        min-height: 34px;
    }

    footer.footer .footer-columns-right {
        width: 100%;
        max-width: 26rem;
        margin-left: auto;
        margin-right: auto;
        padding-left: 0;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: var(--espacement-lg);
        text-align: center;
    }

    footer.footer .footer-columns-right .footer-column {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        align-self: stretch;
        flex: none;
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    footer.footer .footer-columns-right .footer-column:nth-child(3) {
        grid-column: unset;
    }

    footer.footer .footer-columns-right .footer-column h4 {
        margin-bottom: var(--espacement-sm);
        font-size: 14px;
        text-align: center;
        width: 100%;
    }

    footer.footer .footer-column-list {
        width: 100%;
        max-width: 100%;
        margin: 0;
        padding: 0;
        list-style: none;
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    footer.footer .footer-column-list li {
        margin-bottom: 6px;
        width: 100%;
        max-width: 100%;
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        text-align: center;
    }

    footer.footer .footer-column-list a {
        font-size: 13px;
        display: inline-block;
        max-width: 100%;
        word-break: break-word;
        text-align: center;
    }

    footer.footer .footer-column p {
        font-size: 12px;
        margin: 4px 0;
    }

    /*
     * iPhone SE (~320px), iPhone 16 (~393px) : même centrage horizontal
     * que le bouton « Signaler » (marges latérales + contenu centré).
     */
    @media (max-width: 430px) {
        footer.footer {
            padding-left: max(var(--espacement-sm), env(safe-area-inset-left, 0px));
            padding-right: max(var(--espacement-sm), env(safe-area-inset-right, 0px));
        }

        footer.footer .footer-column-left,
        footer.footer .footer-columns-right {
            max-width: min(
                26rem,
                calc(
                    100vw - 2 * var(--espacement-sm)
                    - env(safe-area-inset-left, 0px)
                    - env(safe-area-inset-right, 0px)
                )
            );
            margin-inline: auto;
        }

        footer.footer .footer-columns-right .footer-column h4,
        footer.footer h4 {
            text-align: center;
        }

        footer.footer .footer-columns-right .footer-column {
            align-items: center;
        }

        footer.footer .footer-column-list {
            text-align: center;
        }

        footer.footer .footer-column-list li {
            text-align: center;
            justify-content: center;
        }

        footer.footer .footer-column-list a {
            display: inline-block;
            text-align: center;
        }
    }

    footer.footer .footer-bottom {
        text-align: center;
    }

    .footer-bottom-content {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: var(--espacement-xs);
    }

    .footer-bottom-separator {
        display: none;
    }

    .pre-footer-image img {
        max-height: 400px;
    }

    /* === SIGNAL BUTTON === */
    .signal-button {
        bottom: max(env(safe-area-inset-bottom, 0px), var(--espacement-sm));
        left: var(--espacement-md);
        right: var(--espacement-md);
        max-width: calc(100% - 2 * var(--espacement-md));
        margin: 0 auto;
        padding: 10px var(--espacement-sm);
        font-size: 12px;
        min-height: 40px;
        text-align: center;
        white-space: normal;
        justify-content: center;
    }

    /* === AIDE WIDGET === */
    .aide-widget {
        bottom: calc(var(--reserve-signal-bar-h) + 14px + var(--espacement-md) + env(safe-area-inset-bottom, 0));
        left: calc(var(--espacement-md) + env(safe-area-inset-left, 0));
    }

    .aide-widget-trigger {
        min-width: 48px;
        min-height: 48px;
        padding: var(--espacement-sm);
        justify-content: center;
    }

    .aide-widget-trigger .aide-widget-label {
        display: none;
    }

    .aide-widget-panel {
        width: min(320px, calc(100vw - var(--espacement-md) * 2));
        left: 0;
        max-height: calc(100vh - 100px);
        -webkit-overflow-scrolling: touch;
    }

    .aide-widget-content {
        padding: var(--espacement-md);
        max-height: 55vh;
    }

    .aide-widget-header {
        padding: var(--espacement-sm) var(--espacement-md);
    }

    .aide-widget-header h3 {
        font-size: var(--taille-normal);
    }

    .aide-chat-messages {
        max-height: 400px;
    }

    .aide-chat-suggestion {
        font-size: var(--taille-petit);
    }

    /* === MODAL (mobile) ===
       Garder le modal centré et entièrement visible,
       tout en restant plein écran en largeur. */
    .modal-overlay.active {
        /* flex-start : en paysage la fenêtre n'est plus « centrée » verticalement
           de façon à rogner le bas — le texte du modal reste accessible au scroll. */
        align-items: flex-start;
        padding: 1.25rem;
        padding-top: max(1rem, env(safe-area-inset-top, 0));
    }

    .modal-content {
        max-width: 100%;
        width: 100%;
        min-height: 0;
        max-height: 92vh;
        max-height: 92dvh;
        border-radius: var(--rayon-arrondi);
        margin: 0;
        -webkit-overflow-scrolling: touch;
    }

    .modal-header-image {
        max-height: min(48vh, 400px);
        border-radius: var(--rayon-arrondi) var(--rayon-arrondi) 0 0;
    }

    .modal-header-image--default {
        max-height: 110px;
        padding: 1rem 1.5rem;
    }

    .modal-body {
        padding: 1rem;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-y;
        /* Assure une hauteur de scroll utilisable sous l'image */
        flex: 1 1 auto;
        min-height: 0;
    }

    .modal-title {
        font-size: var(--taille-lg);
    }

    .modal-text {
        font-size: var(--taille-normal);
    }
}

/* ===============================================
   MOBILE PETIT (max-width: 480px)
   =============================================== */

@media (max-width: 480px) {
    /* === GLOBAL CONTENEURS === */
    .section-container {
        width: 100%;
        max-width: 100%;
        padding-left: var(--espacement-md);
        padding-right: var(--espacement-md);
    }

    /* === EXPERTS (480px) === */
    .experts-audit-certifies-page .page-hero-inner {
        padding: 2.5rem var(--espacement-sm) 2.5rem;
        min-height: 100px;
    }
    .experts-audit-certifies-page .page-hero-title {
        font-size: 1.1rem;
    }
    .experts-audit-certifies-page .section-container {
        padding-left: var(--espacement-md);
        padding-right: var(--espacement-md);
    }
    .experts-verification-section {
        margin: var(--espacement-md) 0;
        padding: 0 var(--espacement-xs);
    }
    .experts-cards-section {
        margin-top: var(--espacement-lg);
    }
    .experts-cards-grid {
        gap: var(--espacement-md);
    }
    .expert-card-body {
        padding: var(--espacement-sm);
    }
    .expert-card-line,
    .expert-card-contact {
        font-size: 0.8125rem;
    }
    .experts-pagination {
        margin-top: var(--espacement-xl);
        padding: 0 var(--espacement-xs);
    }
    .experts-pagination .reglementation-pagination-list {
        gap: 4px;
    }
    .experts-pagination .reglementation-page-btn {
        min-width: 32px;
        padding: 6px 8px;
        font-size: 0.8125rem;
    }
    .experts-empty {
        padding: var(--espacement-lg);
        margin: var(--espacement-md) var(--espacement-sm);
    }
    .experts-audit-certifies-page section[aria-labelledby="experts-audit-certifies-intro-title"] h2 {
        font-size: 1.1rem;
    }

    .actualites-section,
    .services-section,
    .stats-section,
    .facebook-feed-section {
        padding-left: var(--espacement-sm);
        padding-right: var(--espacement-sm);
    }

    /* === PRESSE & CONTACTS (480px) === */
    .presse-contacts-content-outer {
        padding: var(--espacement-lg) var(--espacement-sm);
        overflow-x: hidden;
    }
    .presse-contacts-hero-inner {
        padding: 2.5rem var(--espacement-sm) 2rem;
    }
    .presse-contacts-hero-title {
        font-size: 1.05rem;
    }
    .presse-contacts-form-section,
    .presse-contacts-map-section {
        padding: var(--espacement-lg) var(--espacement-sm);
    }
    .presse-contacts-form-field input,
    .presse-contacts-form-field textarea {
        font-size: 16px; /* évite le zoom auto sur iOS */
    }
    .presse-contacts-info-grid {
        grid-template-columns: 1fr;
        gap: var(--espacement-md);
    }
    .presse-contacts-info-block {
        padding: var(--espacement-xl) var(--espacement-md);
    }
    .presse-contacts-section-title {
        font-size: 1.25rem;
        text-align: center;
    }
    .presse-contacts-map-wrapper {
        min-height: 220px;
    }

    /* === ACCOMPAGNEMENTS / FORMATIONS - colonne plus étroite === */
    .accompagnements-hero-inner,
    .bonnes-pratiques-hero-inner {
        padding-left: var(--espacement-xxl);
        padding-right: var(--espacement-xxl);
    }
    .accompagnements-nav {
        padding-left: var(--espacement-xxl);
        padding-right: var(--espacement-xxl);
    }
    .accompagnements-content-outer,
    .bonnes-pratiques-content-outer {
        padding-left: var(--espacement-xxl);
        padding-right: var(--espacement-xxl);
    }
    .accompagnements-content-inner,
    .bonnes-pratiques-content-inner {
        padding-left: var(--espacement-xl);
        padding-right: var(--espacement-xl);
    }
    .formations-certifications-page .formations-banner {
        padding-left: var(--espacement-md);
        padding-right: var(--espacement-md);
        padding-top: var(--espacement-lg);
        padding-bottom: var(--espacement-lg);
        margin: var(--espacement-lg) 0;
    }

    /* === FORMATIONS & CERTIFICATIONS — cartes (480px) === */

    /* Supprimer le padding latéral du fond gris → boîte blanche pleine largeur */
    .formations-certifications-page .accompagnements-content-outer {
        padding-left: 0;
        padding-right: 0;
    }
    /* Boîte blanche : pleine largeur, coins carrés, padding réduit */
    .formations-certifications-page .accompagnements-content-inner {
        max-width: 100%;
        width: 100%;
        border-radius: 0;
        padding-left: var(--espacement-md);
        padding-right: var(--espacement-md);
        box-shadow: none;
    }
    /* Cartes internes : padding réduit */
    .formations-certifications-page .formations-col-left,
    .formations-certifications-page .formations-sidebar,
    .formations-certifications-page .formations-docs,
    .formations-certifications-page .formations-contact {
        padding: var(--espacement-md);
    }
    .formations-certifications-page .formations-modules-block {
        padding: var(--espacement-md);
    }
    .formations-certifications-page .formations-bottom {
        padding-top: var(--espacement-lg);
        gap: var(--espacement-lg);
    }
    /* Empêcher les longs emails/URLs de déborder */
    .formations-certifications-page .formations-contact a,
    .formations-certifications-page .formations-docs a,
    .formations-certifications-page .formations-contact p,
    .formations-certifications-page .formations-docs p {
        overflow-wrap: break-word;
        word-break: break-word;
    }
    .formations-certifications-page .formations-col-left h2:first-child,
    .formations-certifications-page .formations-sidebar h2:first-child,
    .formations-certifications-page .formations-docs h2:first-child,
    .formations-certifications-page .formations-contact h2:first-child {
        font-size: 1.05rem;
    }

    /* === HEADER === */
    .header-container {
        padding-left: var(--espacement-md);
        padding-right: var(--espacement-md);
    }

    .logo img {
        max-height: 44px;
        width: auto;
    }

    /* === HERO === */
    .hero {
        height: 480px;
        min-height: 420px;
        padding: 0;
    }

    .hero-content {
        padding-bottom: calc(var(--espacement-lg) + var(--reserve-signal-bar-h) + env(safe-area-inset-bottom, 0px));
    }

    .hero-slide-cta {
        top: 55%;
    }

    /* Bouton CTA hero : petit mobile */
    .hero-slide-cta .cta-button {
        font-size: 0.8rem;
        padding: 8px var(--espacement-lg);
        border-radius: var(--rayon-moyen);
        letter-spacing: 0.02em;
    }

    .hero-logos {
        flex-direction: column;
        gap: var(--espacement-sm);
        margin-top: var(--espacement-md);
    }

    .hero-logo-item {
        width: 100%;
        max-width: 100%;
    }

    /* === SEARCH === */
    .search-section {
        padding-left: var(--espacement-sm);
        padding-right: var(--espacement-sm);
    }

    .search-section h2 {
        font-size: var(--taille-grand);
    }

    /* === SECTIONS === */
    .section-title {
        font-size: var(--taille-titre-3);
    }

    .stats-section {
        margin-top: 60px;
        padding-left: var(--espacement-sm);
        padding-right: var(--espacement-sm);
    }

    .stats-intro {
        font-size: var(--taille-moyen);
    }

    .stat-number {
        font-size: 32px;
    }

    .featured-title {
        font-size: var(--taille-moyen);
    }

    .card-title {
        font-size: var(--taille-moyen);
    }

    /* === FACEBOOK / RÉSEAUX SOCIAUX === */
    .facebook-feed-embed {
        padding: var(--espacement-sm);
        min-height: 450px;
    }

    .social-feed-cta {
        width: 100%;
        justify-content: center;
    }

    .linkedin-feed-card,
    .youtube-feed-card,
    .tiktok-feed-card {
        padding: var(--espacement-md);
    }

    /* === FOOTER (très petit mobile ≤ 480px) === */
    footer.footer {
        padding-left: var(--espacement-sm);
        padding-right: var(--espacement-sm);
    }

    /* Très étroit : pleine largeur utile pour e-mails longs */
    @media (max-width: 400px) {
        footer.footer .footer-column-left,
        footer.footer .footer-columns-right {
            max-width: 100%;
        }
    }

    .pre-footer-image img {
        max-height: 320px;
    }

    .services-grid {
        grid-template-columns: 1fr;
        gap: var(--espacement-md);
    }

    .tab-btn {
        min-height: 28px;
        font-size: 11px;
        padding: 0 8px;
    }

    .pagination {
        flex-direction: column;
    }

    .pagination-btn,
    .pagination-btn-more {
        width: 100%;
        min-height: 44px;
    }

    .nav-bar-container {
        padding-left: var(--espacement-sm);
        padding-right: var(--espacement-sm);
    }

    .nav-bar-logo img {
        height: 40px;
    }

    .nav-bar-item a {
        font-size: var(--taille-petit);
        padding: var(--espacement-xs) var(--espacement-sm);
    }

    /* === AIDE WIDGET (480px) === */
    .aide-widget {
        bottom: calc(var(--reserve-signal-bar-h) + 19px + var(--espacement-sm) + env(safe-area-inset-bottom, 0));
        left: calc(var(--espacement-sm) + env(safe-area-inset-left, 0));
    }

    .aide-widget-panel {
        width: calc(100vw - var(--espacement-sm) * 2);
    }

    .aide-widget-content {
        padding: var(--espacement-sm);
    }

    .aide-widget-links a {
        font-size: var(--taille-petit);
    }
}

/* ===============================================
   TRÈS PETIT ÉCRAN (max-width: 360px)
   =============================================== */

@media (max-width: 360px) {
    .section-container {
        width: 100%;
        max-width: 100%;
        padding-left: var(--espacement-xs);
        padding-right: var(--espacement-xs);
    }

    /* === EXPERTS (360px) === */
    .experts-audit-certifies-page .page-hero-inner {
        padding: 2rem var(--espacement-xs) 2rem;
        min-height: 90px;
    }
    .experts-audit-certifies-page .page-hero-title {
        font-size: 1rem;
    }
    .experts-verification-section {
        padding: 0;
    }
    .expert-card-initials {
        font-size: 2rem;
    }

    .actualites-section,
    .services-section,
    .stats-section,
    .facebook-feed-section,
    footer.footer,
    .search-section {
        padding-left: var(--espacement-xs);
        padding-right: var(--espacement-xs);
    }

    /* === FORMATIONS & CERTIFICATIONS (360px) === */
    .formations-certifications-page .accompagnements-content-inner {
        padding-left: var(--espacement-sm);
        padding-right: var(--espacement-sm);
    }
    .formations-certifications-page .formations-col-left,
    .formations-certifications-page .formations-sidebar,
    .formations-certifications-page .formations-docs,
    .formations-certifications-page .formations-contact,
    .formations-certifications-page .formations-modules-block {
        padding: var(--espacement-sm);
    }
    .formations-certifications-page .formations-banner {
        padding: var(--espacement-sm);
        margin: var(--espacement-md) 0;
    }

    /* === PRESSE & CONTACTS (360px) === */
    .presse-contacts-content-outer {
        padding: var(--espacement-md) var(--espacement-xs);
    }
    .presse-contacts-hero-inner {
        padding: 2rem var(--espacement-xs) 1.5rem;
    }
    .presse-contacts-hero-title {
        font-size: 1rem;
    }
    .presse-contacts-form-section,
    .presse-contacts-map-section {
        padding: var(--espacement-md) var(--espacement-xs);
    }
    .presse-contacts-info-block {
        padding: var(--espacement-lg) var(--espacement-sm);
    }

    .featured-nav-arrow {
        width: 36px;
        height: 36px;
        min-width: 36px;
        min-height: 36px;
        font-size: 1.1rem;
    }

    .card-btn {
        width: 100%;
    }

    .featured-actions {
        flex-direction: column;
    }

    .featured-actions .featured-button,
    .featured-actions .featured-button-secondary {
        width: 100%;
    }

    .logo img {
        max-height: 40px;
    }

    /* Image featured : petits téléphones — garder le bas de l’affiche visible */
    .featured-card {
        --featured-img-height: min(76vw, 300px);
        --featured-image-object-position: left 94%;
    }

    .featured-card .featured-image-wrap {
        min-height: 220px;
    }

    .actualites-wrapper .actualite-thumbnail {
        width: 80px;
        height: 55px;
    }

    .actualites-wrapper .card-thumbnail-block {
        width: 80px;
    }

    /* === AIDE WIDGET (360px) === */
    .aide-widget {
        left: calc(var(--espacement-xs) + env(safe-area-inset-left, 0));
        bottom: calc(var(--reserve-signal-bar-h) + 19px + var(--espacement-xs) + env(safe-area-inset-bottom, 0));
    }

    .aide-widget-trigger {
        min-width: 44px;
        min-height: 44px;
    }

    .aide-widget-panel {
        width: calc(100vw - var(--espacement-xs) * 2);
    }
}

/* ===============================================
   MEDIA QUERIES POUR STATS NUMBER
   =============================================== */

@media (max-width: 768px) {
    .stat-number {
        font-size: 36px;
    }
}

@media (max-width: 480px) {
    .stat-number {
        font-size: 28px;
    }

    .facebook-feed-container {
        max-width: 100%;
    }

    .facebook-feed-embed {
        padding: var(--espacement-sm);
        min-height: 450px;
    }

    .featured-card .featured-image-wrap {
        min-height: 220px;
    }

    .actualites-wrapper .actualite-thumbnail {
        width: 85px;
        height: 58px;
    }

    .actualites-wrapper .card-thumbnail-block {
        width: 85px;
    }
}

/* ===============================================
   PAGE ORGANISATION - RESPONSIVE
   =============================================== */

@media (max-width: 1024px) {
    .organisation-page {
        padding-top: var(--espacement-xl);
        padding-bottom: var(--espacement-xl);
    }

    .poles-grid {
        grid-template-columns: 1fr;
        gap: var(--espacement-lg);
    }

    .missions-list {
        grid-template-columns: 1fr;
    }

    .missions-centres-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 4px;
    }
}

@media (max-width: 768px) {
    .organisation-main-title {
        font-size: var(--taille-titre-2);
    }

    .organisation-content {
        padding: var(--espacement-xl) var(--espacement-lg);
    }

    .organisation-missions .section-title,
    .organisation-conseil .section-title {
        font-size: var(--taille-moyen);
    }

    .pole-card {
        padding: var(--espacement-lg);
    }

    .pole-title {
        font-size: var(--taille-normal);
    }

    .mission-item {
        padding: var(--espacement-md);
    }

    .missions-centres-grid {
        grid-template-columns: 1fr;
    }

    .missions-contacts-row {
        flex-direction: column;
    }

    .missions-links-columns {
        grid-template-columns: 1fr;
    }

    .missions-centre-icon {
        width: min(100%, 6px);
        height: 6px;
        max-width: 6px;
    }

    .missions-centre-icon svg {
        width: 5px;
        height: 5px;
    }

    .missions-centre-logo {
        max-height: 11px;
    }

    .missions-centre-logo svg,
    .missions-centre-icon svg {
        max-height: 5px !important;
        max-width: 5px !important;
        width: 5px !important;
        height: 5px !important;
    }

    .missions-centre-logo > img,
    .missions-centre-logo picture img,
    .missions-centre-card .missions-centre-brand-img {
        max-height: 5px !important;
        max-width: min(100%, 26px) !important;
    }

    .missions-centre-card img {
        max-height: 5px !important;
        max-width: min(100%, 26px) !important;
    }

    .missions-centre-socials img,
    .missions-centre-social-icon img {
        max-height: 4px !important;
        max-width: 4px !important;
        width: 4px !important;
        height: 4px !important;
    }

    .missions-centre-card {
        max-width: 76px;
        padding: 0 1px;
    }
}

@media (max-width: 480px) {
    .organisation-page {
        padding-top: var(--espacement-lg);
        padding-bottom: var(--espacement-lg);
    }

    .organisation-intro .intro-text,
    .organisation-intro p.intro-text,
    .pole-description,
    .conseil-description,
    .conclusion-text,
    .organisation-synergy {
        font-size: 14px;
        line-height: 1.6;
    }

    .pole-card {
        padding: var(--espacement-md);
    }

    .mission-title {
        font-size: 14px;
    }

    /* Page Missions */
    .missions-page {
        padding-top: var(--espacement-lg);
        padding-bottom: var(--espacement-lg);
    }

    .missions-page .page-title {
        font-size: var(--taille-moyen);
    }

    .missions-intro .intro-text,
    .mission-card-description,
    .missions-conclusion .conclusion-text {
        font-size: 14px;
        line-height: 1.6;
    }

    .mission-card {
        padding: var(--espacement-md);
    }

    .mission-card-title {
        font-size: var(--taille-normal);
    }
}

/* ===============================================
   FLASH INFOS - Grands écrans : extrême gauche / réseaux à l'extrême droite
   =============================================== */

@media (min-width: 1024px) {
    .flash-infos-container {
        max-width: none;
        width: 100%;
        padding-left: 10px;
        padding-right: 10px;
        justify-content: flex-start;
        gap: 8px;
    }

    .flash-infos-label {
        margin-right: 0;
    }

    .flash-infos-ticker-wrap {
        flex: 1;
        min-width: 200px;
        margin-left: 0;
        margin-right: 0;
    }

    .flash-infos-actions {
        margin-left: auto;
        flex-shrink: 0;
    }

    .flash-infos-social {
        margin-left: var(--espacement-sm);
    }
}

/* ===============================================
   TABLETTES LARGES / iPad PAYSAGE (1025px–1439px)
   Hors du bloc max-width:1024 : zone image plus haute + bas d’affiche (cover trop agressif en largeur)
   =============================================== */

@media (min-width: 1025px) and (max-width: 1439px) {
    .featured-card {
        --featured-img-height: min(36vw, 400px);
        --featured-image-object-position: left 92%;
    }

    .featured-card .featured-image-wrap {
        min-height: 320px;
        max-height: min(440px, 65vh);
    }

    .featured-card .featured-image {
        object-position: var(--featured-image-object-position, left 92%);
    }
}

/* ===============================================
   GRANDS ÉCRANS (min-width: 1440px)
   =============================================== */

@media (min-width: 1440px) {
    :root {
        --largeur-container: 1360px;
        --largeur-medium: 1160px;
    }

    .flash-infos-ticker-wrap {
        margin-left: 0;
    }

    .hero {
        height: 720px;
    }

    .hero-content {
        max-width: 1000px;
        padding-bottom: var(--espacement-xxl);
    }

    .section-container {
        padding-left: var(--espacement-xxl);
        padding-right: var(--espacement-xxl);
    }

    .actualites-layout {
        gap: var(--espacement-xxl);
    }

    .actualites-section,
    .services-section,
    .stats-section,
    .facebook-feed-section {
        padding: var(--espacement-section) var(--espacement-xxl);
    }

    .featured-card {
        /* Cohérent avec le défaut desktop (~400px) */
        --featured-img-height: 400px;
    }

    .featured-image-wrap {
        height: var(--featured-img-height);
        min-height: 320px;
        max-height: 440px;
    }

    /* Logo plafonné à 52px pour éviter le flou (image source limitée en résolution) */
    .logo img {
        height: 52px;
    }
}

/* ===============================================
   TRÈS GRANDS ÉCRANS (min-width: 1600px)
   =============================================== */

@media (min-width: 1600px) {
    :root {
        --largeur-container: 1520px;
        --largeur-medium: 1280px;
    }

    .hero {
        height: 780px;
    }

    .hero-content {
        max-width: 1100px;
    }

    .hero-logos {
        margin-top: var(--espacement-xxl);
        gap: var(--espacement-xxl);
    }

    .hero-logos-wrapper {
        gap: var(--espacement-xxl);
    }

    .hero-logo-item {
        padding: var(--espacement-lg) var(--espacement-xl);
        font-size: var(--taille-moyen);
    }

    .featured-card {
        --featured-img-height: 420px;
    }

    .featured-image-wrap {
        height: var(--featured-img-height);
        min-height: 340px;
        max-height: 460px;
    }

    .logo img {
        height: 52px;
    }
}

/* ===============================================
   ÉCRANS ULTRA-LARGES (min-width: 1920px)
   =============================================== */

@media (min-width: 1920px) {
    :root {
        --largeur-container: 1680px;
        --largeur-medium: 1440px;
    }

    .hero {
        height: 820px;
    }

    .hero-content {
        max-width: 1200px;
        padding-bottom: 48px;
    }

    .section-container {
        padding-left: 48px;
        padding-right: 48px;
    }

    .actualites-section,
    .services-section,
    .stats-section,
    .facebook-feed-section {
        padding: 100px 48px;
    }

    .services-grid {
        gap: var(--espacement-xl);
    }

    .featured-card {
        --featured-img-height: 440px;
    }

    .featured-image-wrap {
        height: var(--featured-img-height);
        min-height: 360px;
        max-height: 480px;
    }

    .logo img {
        height: 52px;
    }

    .main-nav ul {
        gap: var(--espacement-xxl);
    }
}

/*
 * Pied de page ≤768px : règle finale en fin de fichier pour écraser tout
 * conflit (cache CDN, ordre de chargement, doublons de media queries).
 */
@media (max-width: 768px) {
    footer.footer .footer-grid,
    footer.footer .footer-columns-right,
    footer.footer .footer-columns-right .footer-column,
    footer.footer .footer-column-list,
    footer.footer .footer-column-list li,
    footer.footer .footer-column-list a,
    footer.footer .footer-columns-right .footer-column h4 {
        text-align: center !important;
    }

    footer.footer .footer-columns-right {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        padding-left: 0 !important;
        width: 100% !important;
        max-width: min(26rem, calc(100vw - 24px)) !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    footer.footer .footer-columns-right .footer-column {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
    }

    footer.footer .footer-column-list {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    footer.footer .footer-column-list li {
        display: flex !important;
        justify-content: center !important;
        width: 100% !important;
    }

    footer.footer .footer-column-list a {
        display: inline-block !important;
    }
}

/*
 * iPhone 16 (~393pt) et ≤430px : même logique que le bloc imbriqué
 * dans @media (max-width: 768px), mais après le « hammer » !important
 * pour que safe-area / largeur utile ne soient pas écrasés.
 */
@media (max-width: 430px) {
    footer.footer {
        padding-left: max(
            var(--espacement-sm),
            env(safe-area-inset-left, 0px)
        ) !important;
        padding-right: max(
            var(--espacement-sm),
            env(safe-area-inset-right, 0px)
        ) !important;
    }

    footer.footer .footer-column-left,
    footer.footer .footer-columns-right {
        max-width: min(
            26rem,
            calc(
                100vw - 2 * var(--espacement-sm)
                - env(safe-area-inset-left, 0px)
                - env(safe-area-inset-right, 0px)
            )
        ) !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}
