/* Technical corrections: preserve the existing palette, text and typography. */
img { max-width: 100%; }
.top-header > .container, .top-header > .container > .d-flex { flex-wrap: wrap; }
.top-header > .container > .d-flex { row-gap: .35rem; }
.top-header a, .vitrier-footer-contact a { overflow-wrap: anywhere; }
.navbar-brand { min-width: 0; }
.navbar-brand img { width: auto; max-width: 100%; }
.navbar-collapse, .hero-content, .vitrier-footer-col { min-width: 0; }
.main-navbar .dropdown-menu { max-width: min(440px, calc(100vw - 24px)); }
.main-navbar .dropdown-item { white-space: normal; }
.main-navbar .dropdown-item > div { min-width: 0; }
.city-page .hero-modern { grid-template-columns: minmax(0, .42fr) minmax(0, .58fr); }
.city-page .hero-visual { max-width: 100%; }
.city-page .hero-content h1 { overflow-wrap: break-word; }
.city-page .content-body p, .city-page .content-intro-text p { overflow-wrap: break-word; }
.city-page .hero-checks > span { min-width: 0; }
.vitrier-footer-main { grid-template-columns: minmax(0, 1.6fr) minmax(0, .8fr) minmax(0, 1fr) minmax(0, 1.1fr); }
.vitrier-footer-brand img { width: auto; }
.feature-heading { color: var(--black); font-size: 1rem; font-weight: 700; margin-bottom: .5rem; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #B10C2A; outline-offset: 4px; }
.skip-link { position: absolute; left: 12px; top: -300px; z-index: 10000; padding: 12px 16px; background: #fff; color: #30303A; border: 2px solid #B10C2A; }
.skip-link:focus { top: 12px; }
#contenu-principal:focus { outline: none; }
@media (max-width: 991px) {
 .city-page .hero-modern { grid-template-columns: minmax(0, 1fr); }
 .main-navbar .dropdown-menu { width: 100%; max-width: 100%; }
 .main-navbar .btn-call { width: max-content; max-width: 100%; }
 .vitrier-footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
 .top-header > .container > .d-flex { flex-direction: column; gap: .35rem !important; }
 .city-page .hero-visual { width: min(320px, 100%); }
 .city-page .hero-content h1 { font-size: clamp(1.65rem, 7vw, 2rem); }
 .vitrier-footer-main { grid-template-columns: minmax(0, 1fr); }
 .vitrier-footer-bottom { gap: 12px; flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
 *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
 .fade-in, .zoom-in, .service-card { opacity: 1 !important; transform: none !important; }
}
