.site-footer .ap-footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  align-items: start;
}
.site-footer .ap-footer-brand p { margin-top: var(--space-3); }
.ap-footer-links { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-1); }
.ap-footer-links h2 { margin: 0 0 var(--space-2); color: var(--text); font-size: var(--type-body); font-weight: var(--weight-semibold); }
.site-footer a { overflow-wrap: anywhere; }
.ap-footer-links a { display: inline-flex; align-items: center; min-height: 32px; }
.site-footer a:hover { color: var(--text); text-decoration: underline; }
.site-footer a:focus-visible { outline: 2px solid var(--contrast); outline-offset: 4px; border-radius: 2px; }
.site-footer .ap-footer-bottom { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-4); margin-top: var(--space-5); padding-top: var(--space-4); border-top: 1px solid var(--line); }
.site-footer .ap-footer-bottom p { max-width: 620px; margin: 0; }
.ap-footer-bottom a { text-decoration: underline; }
@media (max-width: 900px) { .site-footer .ap-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) {
  .site-footer .ap-footer-grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  .site-footer .ap-footer-bottom { flex-direction: column; gap: var(--space-2); }
}
