/* Shared footer: matches the owner-approved five-column mockup. */
:root {
  --footer-canvas: #111222;
  --footer-primary: #f4f4fb;
  --footer-muted: #bdbdcc;
  --footer-line: #ffffff2e;
  --footer-column-gap: 40px;
  --footer-row-gap: 48px;
  --footer-target: 44px;
}
#site-footer {
  background: var(--footer-canvas);
  color: var(--footer-primary);
  padding-block: 72px 24px;
  font-size: 16px;
  line-height: 1.5;
  color-scheme: dark;
}
#site-footer .footer-inner { width:min(1280px,calc(100% - 64px)); max-width:none; margin-inline:auto; }
#site-footer .footer-columns {
  display:grid;
  grid-template-columns:minmax(210px,1.25fr) repeat(5,minmax(140px,1fr));
  gap:var(--footer-row-gap) var(--footer-column-gap);
}
#site-footer .footer-brand { min-width:0; }
#site-footer .brand { min-height:var(--footer-target); color:var(--footer-primary); font-size:22px; }
#site-footer .brand img { width:32px; height:32px; border-radius:8px; }
#site-footer .footer-tagline { margin-top:20px; color:var(--footer-primary); font-size:16px; }
#site-footer .footer-requirements { max-width:34ch; margin-top:24px; color:var(--footer-muted); font-size:14px; line-height:1.6; }
#site-footer .footer-nav { display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
#site-footer .footer-nav h3 { margin:8px 0 16px; color:var(--footer-muted); font-size:14px; font-weight:600; line-height:1.5; letter-spacing:.08em; text-transform:uppercase; }
#site-footer .footer-nav a { display:inline-flex; align-items:center; min-width:var(--footer-target); min-height:var(--footer-target); padding-block:10px; font-size:16px; overflow-wrap:anywhere; }
#site-footer a { color:var(--footer-muted); text-underline-offset:4px; text-decoration-thickness:1px; touch-action:manipulation; }
#site-footer a:active { color:var(--footer-primary); text-decoration:underline; }
#site-footer a:focus-visible { outline:2px solid var(--footer-primary); outline-offset:4px; border-radius:3px; }
#site-footer .footer-store-status { display:block; padding-top:12px; color:var(--footer-muted); font-size:14px; }
#site-footer .footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-top:48px; border-top:1px solid var(--footer-line); padding-block:24px; }
#site-footer .footer-bottom p { color:var(--footer-muted); font-size:14px; }
#site-footer .footer-bottom a { display:inline-flex; align-items:center; min-height:var(--footer-target); font-size:16px; }
#site-footer .footer-nav .footer-direct-download { display:none; }
html[data-platform="mac"] #site-footer .footer-direct-download { display:inline-flex; }
html[data-platform="mac"] #site-footer .footer-mac-link { display:none; }
#site-footer ::selection { color:var(--footer-canvas); background:var(--footer-primary); }
@media (hover:hover) and (pointer:fine) {
  #site-footer a:hover { color:var(--footer-primary); text-decoration:underline; }
}
@media (max-width:1199px) {
  #site-footer .footer-columns { grid-template-columns:repeat(3,minmax(0,1fr)); }
  #site-footer .footer-brand { grid-column:1 / -1; }
  #site-footer .footer-requirements { max-width:54ch; }
}
@media (max-width:899px) {
  #site-footer .footer-columns { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:24px; }
}
@media (max-width:599px) {
  #site-footer { padding-block:48px calc(24px + env(safe-area-inset-bottom)); }
  #site-footer .footer-inner { width:calc(100% - 32px); }
  #site-footer .footer-bottom { flex-direction:column; align-items:flex-start; gap:8px; margin-top:40px; }
}
@media print { #site-footer { display:none; } }
