/* Original main-site footer, with an added Games column, shared by both builds. */
.family-footer {
  --footer-ink: var(--text-main, var(--ink, #2c2a29));
  --footer-muted: var(--text-muted, var(--muted, #5f5c58));
  --footer-subtle: var(--text-subtle, var(--muted, #6d6965));
  --footer-paper: var(--base-bg, var(--paper, #f1ede7));
  --footer-card: var(--base-card, var(--card, #f7f4ed));
  --footer-line: var(--hairline, var(--line, #d4cec4));
  --footer-accent: var(--primary-text, var(--red, #8f2a1e));
  position: relative;
  z-index: 1;
  padding: 32px;
  border-top: 1px solid var(--footer-line);
  background: color-mix(in srgb, var(--footer-paper) 80%, transparent);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: var(--footer-ink);
  font: 400 14px/1.7 "Sora", system-ui, sans-serif;
}
[data-theme="dark"] .family-footer { background: color-mix(in srgb, var(--footer-card) 72%, transparent); }
.family-footer:lang(ja) { font-family: var(--font-jp-sans, system-ui), sans-serif; }
.family-footer__inner { max-width: var(--container, 1120px); margin: auto; display: grid; grid-template-columns: 1.8fr repeat(4, minmax(0, 1fr)); gap: 40px; align-items: start; }
.family-footer__brand-block { display: flex; flex-direction: column; gap: 12px; }
.family-footer a { color: inherit; text-decoration: none; }
.family-footer a:focus-visible { outline: 2px solid var(--footer-accent); outline-offset: 5px; border-radius: 2px; }
.family-footer .family-footer__brand { font: 500 20px/1.7 "Outfit", sans-serif; letter-spacing: -.01em; white-space: nowrap; }
.family-footer__brand span { color: var(--footer-accent); }
.family-footer__col { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.family-footer__col h2 { margin: 0 0 4px; font: 500 11px/1.7 var(--font-mono, ui-monospace, monospace); letter-spacing: .14em; text-transform: uppercase; color: var(--footer-subtle); }
.family-footer__col a { color: var(--footer-muted); font-size: 14px; overflow-wrap: anywhere; transition: color .2s; }
.family-footer__col a:hover { color: var(--footer-ink); }
.family-footer:lang(ja) .family-footer__col a { word-break: keep-all; }
.family-footer__base { max-width: var(--container, 1120px); margin: 32px auto 0; padding-top: 20px; border-top: 1px solid var(--footer-line); color: var(--footer-subtle); font: 400 11px/1.7 var(--font-mono, ui-monospace, monospace); letter-spacing: .06em; }
@media (max-width: 960px) {
  .family-footer__inner { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 20px; }
  .family-footer__brand-block { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .family-footer { padding: 28px 20px; }
  .family-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
  .family-footer__col { gap: 0; }
  .family-footer__col h2 { margin-bottom: 8px; }
  .family-footer__col a { display: block; padding-block: 10px; min-height: 44px; font-size: 13px; }
}
