.site-footer { flex-shrink: 0; margin-top: auto; padding: var(--spacing-xl) var(--spacing-lg) var(--spacing-md); border-top: 1px solid var(--color-border); background: var(--color-bg-card); color: var(--color-text-secondary); }
.site-footer-groups { display: grid; grid-template-columns: repeat(auto-fit,minmax(160px,1fr)); gap: var(--spacing-xl); max-width: 1440px; margin: 0 auto var(--spacing-xl); }
.site-footer-group { min-width: 0; }
.site-footer-social { grid-column: span 2; }
.site-footer-group.site-footer-social ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.site-footer-group h2 { margin: 0 0 var(--spacing-md); font-size: 14px; font-weight: 600; color: var(--color-text); overflow-wrap: anywhere; }
.site-footer-group ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--spacing-sm); }
.site-footer-group li { font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
.site-footer-group a { color: var(--color-text-secondary); text-decoration: none; }
.site-footer-group a:hover { color: var(--color-primary); }
.site-footer-group a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }
.site-footer-qr { display: inline-flex; flex-direction: column; align-items: flex-start; gap: var(--spacing-xs); max-width: 100%; }
.site-footer-qr img { width: 112px; height: 112px; max-width: 100%; object-fit: contain; background: var(--color-qr-background); padding: var(--spacing-xs); border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.site-footer-group p { margin: var(--spacing-xs) 0 0; font-size: 12px; }
.site-footer-bottom { max-width: 1440px; margin: auto; padding-top: var(--spacing-md); border-top: 1px solid var(--color-border); text-align: center; font-size: 11px; }
.site-footer-groups:empty { display: none; }
@media (max-width: 640px) {
  .home-body > .site-footer { display: block; padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
  .site-footer { padding: var(--spacing-lg) var(--spacing-md); }
  .site-footer-groups { grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--spacing-lg); }
}
.site-footer-simple { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--spacing-sm) var(--spacing-lg); padding: var(--spacing-md); }
.site-footer-simple a { color: var(--color-text-secondary); font-size: 13px; text-decoration: none; }
.site-footer-simple a:hover { color: var(--color-primary); }
.site-footer-simple a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
