﻿.site-footer{padding:28px 16px;background-color:#f8f8f8;color:#333;font-size:.9rem;position:relative;text-align:center}
.footer-brand-name{display:block;font-size:clamp(.95rem,4vw,1.45rem);font-weight:700;color:#333;letter-spacing:.05em;font-family:'Poppins',sans-serif;word-break:break-word}
.footer-nav{display:grid;grid-template-columns:1fr;gap:4px 24px;max-width:480px;margin:0 auto 16px;text-align:left}
.footer-nav-link{color:#0b66c2;text-decoration:none;padding:4px 8px;white-space:nowrap;transition:color .18s}
.footer-nav-link:hover{color:#1a56d6}
@media(min-width:600px){
  .site-footer{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;gap:32px;padding-left:48px!important;padding-right:48px!important}
  .footer-nav{grid-template-columns:1fr 1fr;grid-template-rows:repeat(5,auto);grid-auto-flow:column;max-width:640px;margin:0;flex-shrink:1}
  .footer-brand{text-align:right;flex-shrink:0;line-height:1.9;margin-bottom:0}
}

  #floatTopBtn{position:fixed;right:18px;bottom:28px;width:56px;height:56px;border-radius:999px;background:linear-gradient(135deg,#0b66c2,#42a5f5);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(11,102,194,0.28);border:none;cursor:pointer;z-index:2000;opacity:0;transform:translateY(12px) scale(.98);transition:opacity .26s,transform .26s}
  #floatTopBtn.show{opacity:1;transform:translateY(0) scale(1)} #floatTopBtn.hidden{display:none!important}
  #floatTopBtn svg{width:22px;height:22px;display:block}

.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.28s ease, transform 0.28s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-d1 { transition-delay: 0.05s; }
.reveal-d2 { transition-delay: 0.10s; }
.reveal-d3 { transition-delay: 0.15s; }

/* ロゴリンク（ヘッダー） */
.logo-link {
  text-decoration: none;
  color: inherit;
}
/* モバイルパネル下部のコピーライト */
.mobile-panel-copyright {
  margin-top: auto;
  text-align: center;
  font-size: 0.8rem;
  color: #666;
}
/* 本文セクションの見出し */
.section-heading {
  font-family: 'Poppins', sans-serif;
  color: #0b66c2;
  margin-bottom: 14px;
}
/* 本文セクションのブロック余白 */
.section-block {
  margin-bottom: 40px;
}
/* 下層ページ共通のメインコンテナ幅 */
.page-main {
  padding: 20px;
  max-width: 1000px;
  margin: 0 auto;
  box-sizing: border-box;
}
/* 本文の行間・段落間の基本余白（各ページ * リセットで潰れるため補完） */
.page-main {
  line-height: 1.8;
}
.page-main p {
  margin-bottom: 1em;
}
.page-main p:last-child {
  margin-bottom: 0;
}
.page-main ul,
.page-main ol {
  line-height: 1.8;
}

/* ===== 印刷対応 =====
   スクロール連動の表示アニメーション(.reveal)や折りたたみUIは
   印刷時にJSが発火せず内容が非表示のままになるため、強制的に表示する。
   ヘッダーやフローティングUIなど画面操作専用の要素は印刷では非表示にする。 */
@media print {
  .reveal,
  .reveal.visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .news-older {
    max-height: none !important;
    overflow: visible !important;
    margin-top: 20px !important;
  }

  .news-toggle {
    display: none !important;
  }

  .site-header,
  .hamburger,
  .mobile-panel,
  #floatTopBtn,
  .hero-quick-links,
  .controls,
  .dots,
  #scroll-indicator,
  .gallery-arrow {
    display: none !important;
  }

  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }
}
