/* Footer styles scoped to .site-footer; builds on base.css */
:root {
  --footer-bg: rgb(8 10 14);
  --footer-text: #dbe7ff;
  --footer-muted: #a9b7cc;
  --accent: #7ed0ff;
}
.site-footer {
  background: linear-gradient(180deg, rgba(8,10,14,1) 0%, rgba(6,8,12,1) 100%);
  color: var(--footer-text);
  border-top: 1px solid rgba(255,255,255,0.08);
}
.site-footer .footer-inner {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
  padding-top: 2rem;
  padding-bottom: 1.5rem;
}
@media (min-width: 768px) {
  .site-footer .footer-inner { grid-template-columns: 1.2fr 1fr; align-items: start; }
}
.site-footer .brand {
  font-family: "Playfair Display", ui-serif, Georgia, serif;
  font-weight: 700;
  color: var(--footer-text);
  text-decoration: none;
}
.site-footer .brand:hover,
.site-footer .brand:focus-visible { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--accent); }
.site-footer .tagline { color: var(--footer-muted); margin: .5rem 0 1rem; max-width: 46ch; }
.site-footer .social { list-style: none; display: flex; gap: .75rem; padding: 0; margin: 0; }
.site-footer .social a { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: 999px; background: rgba(255,255,255,0.06); color: var(--footer-text); }
.site-footer .social a:hover,
.site-footer .social a:focus-visible { outline: 2px solid rgba(126,208,255,.35); outline-offset: 2px; color: white; }

.site-footer .footer-links .links { columns: 2; column-gap: 2rem; list-style: none; padding: 0; margin: 0; }
@media (min-width: 768px) { .site-footer .footer-links .links { columns: 3; } }
.site-footer .footer-links a { color: var(--footer-muted); text-decoration: none; display: inline-block; padding: .25rem 0; }
.site-footer .footer-links a:hover,
.site-footer .footer-links a:focus-visible { color: var(--footer-text); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--accent); outline: none; }

.site-footer .footer-bottom { border-top: 1px solid rgba(255,255,255,0.08); padding: .75rem 0; text-align: center; color: var(--footer-muted); font-size: .95rem; }

/* Cookie banner */
.cookie-banner { position: fixed; left: 0; right: 0; bottom: 0; z-index: 2000; background: rgba(8,10,14,0.98); color: var(--footer-text); border-top: 1px solid rgba(255,255,255,0.12); box-shadow: 0 -10px 30px rgba(0,0,0,.4); transform: translateY(100%); opacity: 0; transition: transform .35s ease, opacity .35s ease; }
.cookie-banner .cookie-content { max-width: 1100px; margin: 0 auto; padding: 1rem clamp(1rem, 4vw, 2rem); display: grid; gap: .75rem; }
.cookie-banner h2 { margin: 0; font-size: 1rem; font-weight: 700; font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }
.cookie-banner p { margin: 0; color: var(--footer-muted); }
.cookie-banner .cookie-actions { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .25rem; }
.cookie-banner .btn { cursor: pointer; border-radius: 999px; padding: .55rem .9rem; font-weight: 700; border: 1px solid rgba(255,255,255,0.18); background: transparent; color: var(--footer-text); }
.cookie-banner .btn:hover,
.cookie-banner .btn:focus-visible { outline: 2px solid rgba(126,208,255,.35); outline-offset: 2px; }
.cookie-banner .btn-accept { background: linear-gradient(180deg, var(--accent) 0%, #36b1ff 100%); color: #06111a; border-color: transparent; }
.cookie-banner .btn-accept:hover,
.cookie-banner .btn-accept:focus-visible { filter: brightness(.96); }
.cookie-banner.show { transform: translateY(0); opacity: 1; }
.cookie-banner.hide { transform: translateY(100%); opacity: 0; }

/* Optional helper to avoid overlapping footer content when banner visible */
body.cookie-banner-visible { padding-bottom: 110px; }

/* Visually hidden utility */
.site-footer .sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }