/* LAC VISION — Phase 4E : robustesse responsive, accessibilité et stabilité visuelle */
html { overflow-x: clip; text-size-adjust: 100%; }
body { min-width: 320px; overflow-wrap: anywhere; }
main { overflow: clip; }
img, svg, video, canvas { max-width: 100%; }
img { height: auto; }
.container, .header-inner, .footer-top, .footer-legal { min-width: 0; }
:where(.project-card, .service-card, .visual-service-card, .print-tile, .team-card, .contact-card, .form-card) { min-width: 0; }
:where(a, button, input, select, textarea, summary):focus-visible {
    outline: 3px solid #6f8cff;
    outline-offset: 3px;
}
:where(.button, .nav-cta, .menu-toggle, .footer-cookie-button) { min-height: 44px; }
:where(input, select, textarea, button) { font: inherit; }
:where(input, select, textarea) { max-width: 100%; }
.service-image-card img, .project-card img, .project-hero img, .gallery img, .print-tile img {
    background: #eef0f4;
}
.site-header img, .site-footer img { object-fit: contain; }
.skip-link { z-index: 1000; }

@media (max-width: 1180px) {
    .container { width: min(100% - 40px, 1180px); }
    .nav-dropdown-panel { max-width: calc(100vw - 40px); }
}

@media (max-width: 900px) {
    .container { width: min(100% - 30px, 1180px); }
    .site-header { padding-top: env(safe-area-inset-top); }
    #main-nav { max-height: calc(100dvh - 92px - env(safe-area-inset-top)); overflow-y: auto; overscroll-behavior: contain; }
    .nav-dropdown-panel { position: static; width: auto; max-width: none; box-shadow: none; }
    .nav-dropdown-links { max-height: none; }
    .home-hero-grid, .service-hero-grid, .contact-grid, .agency-hero-grid { min-width: 0; }
    .cookie-modal-panel { max-height: calc(100dvh - 30px); }
}

@media (max-width: 620px) {
    .container { width: min(100% - 22px, 1180px); }
    :where(input, select, textarea) { font-size: 16px; }
    .button, .nav-cta { width: 100%; justify-content: center; text-align: center; }
    .hero-actions, .thanks-actions, .cookie-modal-actions { width: 100%; }
    .site-footer address, .site-footer a, .footer-cookie-button { line-height: 1.6; }
    .legal-hero h1, .home-hero h1, .service-hero h1, .page-hero h1, .project-hero h1, .agency-hero h1, .contact-hero h1 {
        hyphens: auto;
        overflow-wrap: break-word;
    }
}

@media print {
    .site-header, .site-footer, .cookie-banner, .cookie-modal, .cta-band, .menu-toggle { display: none !important; }
    body { color: #000; background: #fff; }
    main { overflow: visible; }
    a { color: inherit; text-decoration: underline; }
}
