.footer { background:var(--background); border-top:1px solid var(--border); padding:3.5rem 0; }
.footer-grid { display:grid; gap:2rem; }
@media(min-width:768px){.footer-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.footer-grid{grid-template-columns:repeat(4,1fr);gap:3rem}}
.footer-logo { font-family:var(--font-heading); font-size:1.5rem; font-weight:700; color:var(--primary); margin-bottom:1rem; }
.footer-desc { font-size:.875rem; color:var(--muted-foreground); margin-bottom:1rem; line-height:1.8; }
.footer-contact { display:flex; flex-direction:column; gap:.5rem; }
.footer-contact-item { display:flex; align-items:center; gap:.5rem; font-size:.875rem; color:var(--muted-foreground); }
.footer-contact-item svg { color:var(--primary); }
.footer-title { font-weight:600; color:var(--foreground); margin-bottom:1rem; }
.footer-links { display:flex; flex-direction:column; gap:.5rem; }
.footer-links a { font-size:.875rem; color:var(--muted-foreground); transition:color .3s; }
.footer-links a:hover { color:var(--primary); }
.footer-offices { display:flex; flex-direction:column; gap:.75rem; }
.footer-office { display:flex; align-items:flex-start; gap:.5rem; }
.footer-office svg { margin-top:.125rem; color:var(--primary); flex-shrink:0; }
.footer-office-name { font-size:.875rem; color:var(--foreground); display:block; }
.footer-office-phone { font-size:.875rem; color:var(--primary); }
.footer-office-phone:hover { text-decoration:underline; }
.footer-bottom { margin-top:3rem; padding-top:2rem; border-top:1px solid var(--border); display:flex; flex-direction:column; align-items:center; gap:1rem; }
@media(min-width:768px){.footer-bottom{flex-direction:row;justify-content:space-between}}
.footer-bottom p { font-size:.875rem; color:var(--muted-foreground); }
@media(max-width:767px){body{padding-bottom:4rem}}