/* Shared footer, with the site's existing blue palette and typography. */
.fw-footer { background:#0b2230; color:#cbd7dd; font:400 16px/1.55 Overpass,Arial,sans-serif; text-align:left; }
.fw-footer,.fw-footer * { box-sizing:border-box; }
.fw-footer-inner { width:min(1140px,calc(100% - 48px)); margin:0 auto; padding-top:64px; }
.fw-footer-grid { display:grid; grid-template-columns:1.2fr 1.15fr .9fr 1fr; gap:40px; padding-bottom:44px; }
.fw-footer-grid > * { min-width:0; }
.fw-footer h2 { color:#fff; font:600 18px/1.4 Overpass,Arial,sans-serif; letter-spacing:0; margin:0 0 22px; }
.fw-footer p { margin:0; }
.fw-footer a,.fw-footer a:visited { color:inherit; text-decoration:none; text-underline-offset:4px; transition:color .15s,background-color .15s; }
.fw-footer a:hover { color:#fff; text-decoration:underline; }
.fw-footer a:focus-visible { outline:2px solid #b1d8f0; outline-offset:5px; border-radius:2px; }
.fw-footer .fw-footer-logo { display:inline-flex; padding:7px 9px; background:#fff; border-radius:5px; max-width:100%; }
.fw-footer-logo img { display:block; width:212px; max-width:100%; height:auto; }
.fw-footer .fw-footer-description { margin-top:20px; max-width:270px; }
.fw-footer .fw-footer-phone { display:inline-block; color:#fff; font-size:25px; font-weight:700; letter-spacing:-.3px; line-height:1.25; padding:8px 0 4px; margin-top:17px; }
.fw-footer .fw-footer-hours { font-size:14px; color:#adbfca; }
.fw-footer .fw-footer-button { display:flex; align-items:center; justify-content:space-between; gap:12px; width:fit-content; min-height:46px; padding:11px 18px; margin-top:22px; background:#285e81; color:#fff; font-weight:600; border-radius:3px; }
.fw-footer .fw-footer-button:hover { background:#33749a; text-decoration:none; }
.fw-footer .fw-footer-whatsapp { display:inline-flex; align-items:center; gap:8px; min-height:44px; margin-top:5px; font-size:14px; }
.fw-footer address { font-style:normal; }
.fw-footer-label { display:block; color:#afc2cd; font-size:13px; font-weight:600; letter-spacing:.025em; margin-bottom:5px; }
.fw-footer .fw-footer-address { display:inline-block; color:#f4f8fa; }
.fw-footer-former,.fw-footer-email { margin-top:19px; }
.fw-footer-email a { overflow-wrap:anywhere; }
.fw-footer .fw-footer-service-note { font-size:13px; line-height:1.6; color:#adbfca; margin-top:22px; max-width:250px; }
.fw-footer ul { padding:0; margin:0; list-style:none; }
.fw-footer li { margin:0; }
.fw-footer li a { display:block; padding:7px 0; width:fit-content; max-width:100%; overflow-wrap:break-word; hyphens:auto; }
.fw-footer li:first-child a { padding-top:0; }
.fw-footer .fw-footer-all { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:14px; font-weight:600; color:#fff; margin-top:13px; }
.fw-footer-bottom { border-top:1px solid #2d4554; padding:21px 0 25px; display:flex; align-items:center; justify-content:space-between; gap:16px 24px; font-size:13px; color:#adbfca; }
.fw-footer-bottom nav { display:flex; gap:8px 24px; flex-wrap:wrap; }
.fw-footer-bottom a { display:inline-block; padding:6px 0; }
@media (max-width:1100px) {
 .fw-footer-grid { grid-template-columns:1.1fr 1.1fr 1fr 1fr; gap:24px; }
 .fw-footer-phone { white-space:nowrap; }
}
@media (max-width:900px) {
 .fw-footer-grid { grid-template-columns:1fr 1fr; gap:38px 56px; }
 .fw-footer-bottom { align-items:flex-start; flex-direction:column; }
 .fw-footer-services,.fw-footer-areas { border-top:1px solid #2d4554; padding-top:28px; }
}
@media (max-width:600px) {
 .fw-footer-inner { width:calc(100% - 40px); padding-top:38px; }
 .fw-footer-grid { gap:30px 24px; padding-bottom:30px; }
 .fw-footer-brand,.fw-footer-contact { grid-column:1 / -1; }
 .fw-footer-brand { border-bottom:1px solid #2d4554; padding-bottom:26px; }
 .fw-footer .fw-footer-description { max-width:350px; margin-top:16px; }
 .fw-footer .fw-footer-phone { font-size:27px; margin-top:12px; }
 .fw-footer .fw-footer-button { margin-top:18px; }
 .fw-footer .fw-footer-service-note { max-width:350px; margin-top:16px; }
 .fw-footer h2 { font-size:17px; margin-bottom:15px; }
 .fw-footer li a,.fw-footer li:first-child a { min-height:44px; padding:9px 0; }
 .fw-footer .fw-footer-all { align-items:flex-start; padding:10px 0; line-height:1.45; }
 .fw-footer-bottom { padding-top:18px; padding-bottom:86px; gap:12px; }
 .fw-footer-bottom nav { gap:0 24px; }
 .fw-footer-bottom nav a { min-height:44px; padding:12px 0; }
}
@media (prefers-reduced-motion:reduce) { .fw-footer a { transition:none; } }
