html{scroll-behavior:smooth}
main {flex: 1;}
a{text-decoration:none;color:inherit}
a:hover {opacity:.9}
ul{list-style:none}
img{max-width:100%;height:auto}
h2,h3{text-align: center;}
h2{font-size: 2em;margin-bottom: 60px;}
.skip{position:absolute;left:-9999px;top:auto}
.skip:focus{left:12px;top:12px;background:#fff;padding:6px 10px;outline:2px solid #2563eb;border-radius:4px}
.fade-in {
  opacity: 0;
  visibility: hidden;
  transition: opacity 2.4s ease-out;
}

.fade-in.is-visible {
  opacity: 1;
  visibility: visible;
}
.fade-in-up {
  opacity: 0;
  visibility: hidden;
  transform: translateY(25px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-in-up.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* ===== Buttons / UI 共通 ===== */
.cta{text-align: center;margin-top: 90px;}

.btn:hover {
  opacity:.92;box-shadow:0 6px 20px rgba(0,0,0,.06);
  transform: translateY(-2px);
}

/* 下層（ドロップダウン） */
.has-sub > .sub{
  position:absolute; left:0; top:100%;
  min-width:220px; padding:8px;
  background:#fff; border:1px solid #e5e7eb; border-radius:8px;
  box-shadow:0 10px 30px rgba(0,0,0,.08);
  display:none; z-index:30;
}
.has-sub:hover > .sub,
.has-sub:focus-within > .sub{display:block}
.sub li a{padding:8px 12px;display:block;border-radius:6px}
.sub li a:hover{background:#f5f7fb}

/* モバイルナビ（details/summaryでJS不要） */

.nav-mobile > summary{
  list-style:none; cursor:pointer; border:1px solid #e5e7eb; border-radius:6px;
  padding:8px 12px; background:#fff; user-select:none;
}
.nav-mobile > summary::marker, .nav-mobile summary::-webkit-details-marker{display:none}
.nav-mobile[open] > summary{background:#f8fafc}
.nav-mobile nav{margin-top:10px; border:1px solid #e5e7eb; border-radius:8px; background:#fff; padding:8px}
.nav-mobile ul{display:flex; flex-direction:column; gap:6px}
.nav-mobile a{padding:10px 12px; border-radius:6px; color:#222}
.nav-mobile a:hover{background:#f5f7fb}
.nav-mobile details{border:1px solid #eef2f7; border-radius:6px; padding:6px}
.nav-mobile details > summary{padding:8px; border-radius:6px}
.nav-mobile details[open] > summary{background:#f8fafc}
.nav-mobile details ul{padding:6px 6px 10px 6px}

/* 現在地の強調（各ページで aria-current="page" を付与） */
a[aria-current="page"]{color:#2563eb;font-weight:700}

/* ==== Footer: フラットメニュー ==== */
#footer{background:#0f172a;padding: 20px 0;}
.footer-inner{padding:60px 0}

.footer-simple ul{
  display:flex; flex-wrap:wrap;
  justify-content:center;
  gap:8px 14px;                     /* 行間8 / 文字間14 */
  list-style:none; margin:0; padding:0;
}
.footer-simple a{
  color:#e5e7eb; text-decoration:none;
  font-size:14px; line-height:1.6;
  display:inline-block; padding:2px 0;
}

/* 区切り（視認性向上・余白最小） */
.footer-simple li{
  position:relative; padding-left:0; margin-left:0;
}
.footer-simple li+li::before{
  content:"|";
  color:#6b7280;                    /* 薄めの区切り色 */
  margin:0 12px;
}

/* コピーライト */
.footer-copy{
  border-top:1px solid rgba(255,255,255,.12);
  text-align:center; padding:10px 0 14px;
  font-size:.9rem; color:#94a3b8;
}

/* スマホ調整 */
@media (max-width:960px){
  .footer-inner{padding:24px 0}
  .footer-simple ul{
    flex-direction:column;         /* ← 横並び→縦並び */
    align-items:center;            /* 中央寄せ */
    gap:4px;                       /* 間隔詰める */
  }
  .footer-simple li+li::before{
    content:none;                  /* 区切り線を消す */
  }
  .footer-simple a{font-size:14px}
}
