/* Footer styles */
.site-footer { background: var(--color-surface-1); border-top: 1px solid var(--color-border); margin-top: var(--space-40); padding-top: var(--space-32); }
.footer-grid { display: grid; gap: var(--space-24); grid-template-columns: 1.2fr 1fr 1fr; }
@media (max-width: 960px) { .footer-grid { grid-template-columns: 1fr; } }

.footer-logo { display: inline-flex; align-items: center; gap: var(--space-8); color: var(--color-text); font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; }
.footer-logo__mark { color: var(--color-primary); filter: drop-shadow(0 1px 0 var(--color-edge-highlight)); }
.footer-tagline { margin-top: var(--space-12); color: var(--gray-200); max-width: 42ch; }
.trust-badges { display: flex; flex-wrap: wrap; gap: var(--space-8); margin-top: var(--space-16); }
.social-links { display: flex; gap: var(--space-12); margin-top: var(--space-16); }
.social { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border: 1px solid var(--color-border); border-radius: var(--radius-md); color: var(--color-text); background: var(--color-surface-2); box-shadow: var(--shadow-sm); }
.social:hover { color: var(--color-primary); box-shadow: var(--shadow-md); }

.footer-heading { margin-bottom: var(--space-12); }
.footer-links .links-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
@media (max-width: 520px) { .footer-links .links-grid { grid-template-columns: 1fr; } }
.footer-links a { color: var(--color-text); text-decoration: none; }
.footer-links a:hover { color: var(--color-primary); text-decoration: underline; text-underline-offset: 2px; }

.footer-contact p { color: var(--gray-200); display: flex; align-items: center; gap: 8px; }
.footer-contact a { color: var(--color-text); }
.footer-contact a:hover { color: var(--color-primary); }

.footer-bottom { border-top: 1px solid var(--color-border); margin-top: var(--space-32); padding: var(--space-16) 0; display: flex; align-items: center; justify-content: space-between; gap: var(--space-16); color: var(--gray-200); }

/* Cookie banner */
.cookie-banner { position: fixed; left: 0; right: 0; bottom: 0; background: color-mix(in oklab, var(--color-surface-1) 92%, black 8%); border-top: 1px solid var(--color-border-strong); box-shadow: 0 -8px 24px rgba(0,0,0,0.5); transform: translateY(0); transition: transform var(--duration-slow) var(--ease-standard), opacity var(--duration-base) var(--ease-standard); will-change: transform; z-index: 1200; }
.cookie-inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-16); padding: var(--space-16) 0; }
.cookie-text p { color: var(--gray-100); max-width: 72ch; }
.cookie-text a { color: var(--color-primary); }
.cookie-actions { display: inline-flex; gap: var(--space-8); flex-shrink: 0; }
@media (max-width: 760px) { .cookie-inner { flex-direction: column; align-items: stretch; } .cookie-actions { justify-content: flex-end; } }

.cookie-banner.is-hidden { transform: translateY(calc(100% + env(safe-area-inset-bottom))); opacity: 0; pointer-events: none; }

@media (prefers-reduced-motion: reduce) { .cookie-banner { transition: none; } }