/* SDF本体・研究会・周年ページで共通。文字サイズはルート設定に依存しない。 */
.sdf-footer { box-sizing: border-box; margin-top: 64px; padding: 36px 0 24px; background: #eeeeee; color: #555555; border-top: 1px solid #dce1e9; font-size: 14px; line-height: 1.8; }
.sdf-footer * { box-sizing: border-box; }
.sdf-footer-inner { width: 70%; max-width: 1000px; margin: 0 auto; }
.sdf-footer-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px 40px; }
.sdf-footer-navigation { flex: 1 1 auto; min-width: 0; }
.sdf-footer-links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px 16px; list-style: none; padding: 0; margin: 0; }
.sdf-footer-links li { margin: 0; padding: 0; }
.sdf-footer a { color: #444444; text-decoration: none; }
.sdf-footer-links a { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; overflow-wrap: anywhere; }
.sdf-footer a:hover { color: #223878; text-decoration: underline; }
.sdf-footer a:focus-visible { outline: 3px solid #0b599b; outline-offset: 3px; }
.sdf-footer-socials { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 10px; }
.sdf-footer-socials a { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 8px 14px; border: 1px solid #aab4cc; border-radius: 4px; color: #223878; font-size: 14px; }
.sdf-footer-socials a:hover { background: #fff; text-decoration: none; }
.sdf-footer-meta { margin-top: 24px; padding-top: 20px; border-top: 1px solid #cfd4de; font-size: 12px; overflow-wrap: anywhere; }
.sdf-footer-meta p, .sdf-footer-meta div { margin: 0 0 10px; }
.sdf-footer-meta .disclaimer { padding: 0; border: 0; font-size: 12px; }
.sdf-footer-copyright { margin: 0; font-size: 12px; line-height: 1.8; overflow-wrap: anywhere; }
.sdf-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 1080px) {
  .sdf-footer-inner { width: 85%; }
  .sdf-footer-top { flex-direction: column; gap: 20px; }
}
@media (max-width: 640px) {
  .sdf-footer { margin-top: 48px; padding: 28px 0 24px; }
  .sdf-footer-inner { width: 90%; }
  .sdf-footer-navigation { width: 100%; }
  .sdf-footer-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 16px; }
  .sdf-footer-meta { margin-top: 20px; }
}
