/* =====================================================================
   RESPONSIVE
   ===================================================================== */

@media (max-width: 1080px) {
    .process-timeline { grid-template-columns: repeat(2, 1fr); gap: 48px 32px; }
    .footer-inner { grid-template-columns: 1fr 1fr; }
}

/* Menu burger dès 1100px : le logo agrandi laisse moins de place à la navigation */
@media (max-width: 1100px) {
    .main-nav { display: none; }
    .menu-toggle { display: flex; }
    .btn-nav-cta { display: none; }

    .main-nav.is-open {
        display: block;
        position: fixed;
        top: 0; left: 0; right: 0; bottom: 0;
        background: var(--c-black);
        padding: 150px 32px 40px;
        z-index: 99;
        overflow-y: auto;
    }
    .main-nav.is-open ul { flex-direction: column; gap: 26px; }
    .main-nav.is-open a { font-size: 1.3rem; }
}

@media (max-width: 900px) {
    .materials-head { grid-template-columns: 1fr; gap: 28px; margin-bottom: 40px; }
    .materials-grid { grid-template-columns: 1fr; }
    .grid-3 { grid-template-columns: 1fr; }
    .figures-grid { grid-template-columns: 1fr; gap: 32px; }
    .form-grid { grid-template-columns: 1fr; }
    .footer-inner { grid-template-columns: 1fr 1fr; }
    .mobile-sticky-cta { display: block; }
    body { padding-bottom: 64px; }
}

@media (max-width: 640px) {
    .container { padding: 0 20px; }
    .section { padding: 80px 0; }
    .hero { min-height: 600px; }
    .hero-cta { flex-direction: column; align-items: stretch; }
    .hero-cta .btn { text-align: center; }
    .gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 160px; }
    .gallery-large { grid-column: span 2; grid-row: span 2; }
    .gallery-vertical { grid-row: span 2; }
    .gallery-horizontal { grid-column: span 2; }
    .process-timeline { grid-template-columns: 1fr; }
    .method-step { gap: 20px; }
    .method-number { font-size: 1.8rem; min-width: 46px; }
    .footer-inner { grid-template-columns: 1fr; }
    .footer-compliance { flex-direction: column; align-items: flex-start; gap: 16px; }
}

/* Pages légales : le sommaire passe au-dessus, sur toute la largeur, non collant */
@media (max-width: 960px) {
    .legal-layout { grid-template-columns: 1fr; gap: 32px; }
    .legal-toc { position: static; }
    .legal-toc ul { flex-direction: row; flex-wrap: wrap; gap: 8px; border-inline-start: none; }
    .legal-toc a { border: 1px solid var(--c-border); border-radius: 999px; padding: 7px 14px; margin: 0; }
    .legal-toc a:hover { border-color: var(--c-green); }
    .legal-identity { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .legal-page { padding-top: 150px; }
}


/* --- Photos : mises en page adaptées mobile / tablette --- */
@media (max-width: 900px) {
    .split, .split-reverse, .contact-split { grid-template-columns: 1fr; gap: 40px; }
    .split-media, .split-reverse .split-media { order: -1; aspect-ratio: 16 / 10; }
    .contact-media { order: -1; aspect-ratio: 16 / 9; }
    .band-head { padding: 120px 0 80px; }
    .section-services .services-grid { margin-top: 48px; }
}
@media (max-width: 640px) {
    .split .grid.duo { grid-template-columns: 1fr; }
    .band-head { padding: 100px 0 64px; }
}

/* Logo : x2 sur ordinateur, ajusté sur mobile pour laisser la place à la langue et au menu */
@media (max-width: 640px) {
    .header-logo img { height: 60px; }
    .header-inner { padding: 10px 20px; }
    .footer-logo { height: 64px; }
    .legal-page { padding-top: 150px; }
}
