/* Shared site footer: link groups (homepage and service pages). Markup: build/footer.py.
   Builds on the approved footer rules in components.css (light background, blue accent bar, footer-base). */
.site-footer .footer-top { align-items: flex-start; }
.footer-nav { display: grid; grid-template-columns: repeat(3, auto); gap: 8px 56px; }
.footer-heading { margin: 0 0 4px; font-family: var(--font-display); font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue); }
.site-footer .footer-group .footer-links { flex-direction: column; flex-wrap: nowrap; gap: 0; }
.site-footer .footer-group .footer-links a { min-height: 36px; }
.site-footer .footer-links a[aria-current="page"] { color: var(--blue-deep); text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 2px; }
@media (max-width: 860px) { .footer-nav { gap: 8px 36px; } }
@media (max-width: 700px) {
  .footer-nav { grid-template-columns: 1fr; gap: 18px; width: 100%; margin-top: 10px; }
  .site-footer .footer-group .footer-links a { min-height: 44px; }
}
/* Legal links beside the copyright (2026-11-12): small, separate from the link groups */
.footer-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 20px; }
.footer-legal { display: flex; flex-wrap: wrap; gap: 0 18px; margin: 0; padding: 0; list-style: none; }
.footer-base .footer-legal a { display: inline-flex; align-items: center; min-height: 24px; font-size: .86rem; color: var(--text-2); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--line-strong); }
.footer-base .footer-legal a:hover { color: var(--blue-deep); text-decoration-color: currentColor; }
.footer-base .footer-legal a[aria-current="page"] { color: var(--blue-deep); text-decoration-color: currentColor; }
