@import url('/public/theme.css');
/* Shared footer navigation styles */
/* Brand-aware: uses existing CSS variables when available */
:root {
  --footer-fg: var(--text, #0f172a);
  --footer-bg-hover: rgba(124,58,237,0.12);
  --brand: var(--primary, #7c3aed);
  --brand-contrast: #ffffff;
  --muted: var(--muted, #64748b);
  --border: var(--border, #e2e8f0);
}

/* Global sticky footer layout: body fills viewport, footer stays at bottom */
html, body { height: 100%; }
body { min-height: 100vh; display: flex; flex-direction: column; }

footer { border-top: 1px solid var(--border); background: var(--footer-bg, #000); color: var(--footer-fg-contrast, #e5e7eb); margin-top: auto; }
footer .container { padding: 28px 0; }

.footer-link { color: #e5e7eb; text-decoration: none; padding: 10px 14px; border-radius: 8px; transition: color .15s ease, background-color .15s ease, box-shadow .15s ease; font-size: 14px; line-height: 1.6; }
.footer-link.hidden { display: none !important; }
.footer-link:hover { color: var(--brand-contrast); background: var(--footer-bg-hover); }
.footer-link:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.footer-link:active { background: rgba(124,58,237,0.18); color: var(--brand-contrast); }
.footer-link.active, .footer-link[aria-current="page"] { color: var(--brand-contrast); background: var(--brand); box-shadow: 0 0 0 1px rgba(255,255,255,0.08) inset; }

/* Unified column grid and spacing for footer sections */
.footer-grid { display: grid; grid-template-columns: repeat(3, minmax(220px, 1fr)); justify-content: stretch; align-items: start; column-gap: 24px; row-gap: 18px; }
.footer-column { min-width: 220px; }
.footer-column h3 { margin: 0 0 10px; font-size: 16px; font-weight: 600; letter-spacing: 0.2px; color: #ffffff; line-height: 1.4; }

/* Legal: single column vertical layout */
.footer-nav {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

/* Services/Connect: single column vertical layout */
.footer-links {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

/* Responsive breakpoints */
@media (max-width: 640px) {
  /* Mobile: single column */
  .footer-nav, .footer-links { grid-template-columns: 1fr; gap: 8px; }
  .footer-grid { grid-template-columns: 1fr; }
}
@media (min-width: 641px) and (max-width: 1024px) {
  .footer-grid { grid-template-columns: repeat(2, minmax(220px, 1fr)); }
}
@media (min-width: 1025px) {
  .footer-grid { grid-template-columns: repeat(3, minmax(220px, 1fr)); }
}

/* Reduced motion for accessibility */
@media (prefers-reduced-motion: reduce) { .footer-link { transition: none; } }