:root {
  color: #0f172a;
  background: #f8fafc;
  font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
  line-height: 1.75;
}
* { box-sizing: border-box; }
body { margin: 0; }
a { color: #1d4ed8; }
a:visited { color: #1d4ed8; }
.skip {
  position: absolute;
  left: 1rem;
  top: -4rem;
}
.skip:focus { top: 1rem; background: #fff; padding: .5rem; }
.wrap { max-width: 880px; margin: 0 auto; padding: 0 1.25rem; }
.site-header {
  position: sticky;
  top: 0;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid #e2e8f0;
}
.bar { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.brand, .back { text-decoration: none; font-weight: 700; }
.brand { color: #0f172a; }
.hero { background: #fff; border-bottom: 1px solid #e2e8f0; padding: 3rem 0; }
.crumbs { color: #64748b; font-size: .8rem; }
.crumbs span { margin: 0 .35rem; }
.label {
  display: inline-block;
  margin: 1rem 0;
  padding: .15rem .7rem;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  background: #eff6ff;
  color: #1e40af;
  font-size: .75rem;
  font-weight: 700;
}
h1 { margin: 0; font-size: clamp(1.6rem, 3vw, 2.25rem); line-height: 1.35; letter-spacing: -.02em; }
h2 { margin: 0 0 .75rem; font-size: 1.35rem; }
h3 { margin: 0 0 .4rem; font-size: 1.02rem; }
.section { padding: 2.5rem 0; }
.note, .source, .legal { color: #64748b; font-size: .85rem; }
.table-wrap { overflow-x: auto; border: 1px solid #e2e8f0; border-radius: 16px; background: #fff; }
table { width: 100%; min-width: 640px; border-collapse: collapse; }
th, td { text-align: left; vertical-align: top; padding: .85rem 1rem; border-top: 1px solid #f1f5f9; }
thead th { background: #f1f5f9; border-top: 0; }
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.card, .faq { background: #fff; border: 1px solid #e2e8f0; border-radius: 16px; padding: 1.25rem; }
.faq { margin-top: .75rem; }
.card ul { margin: 0; padding-left: 1.2rem; }
.cta { background: #0f172a; color: #fff; border-radius: 24px; padding: 1.5rem; }
.cta p, .cta h2 { color: #fff; }
.actions { display: flex; flex-wrap: wrap; gap: .75rem; }
a.button,
a.button:link,
a.button:visited,
a.button:hover,
a.button:active {
  display: inline-block;
  padding: .7rem 1rem;
  border-radius: 10px;
  text-decoration: none;
  font-weight: 700;
}
a.button.primary,
a.button.primary:link,
a.button.primary:visited,
a.button.primary:hover,
a.button.primary:active {
  background: #fff;
  color: #0f172a;
}
a.button.secondary,
a.button.secondary:link,
a.button.secondary:visited,
a.button.secondary:hover,
a.button.secondary:active {
  border: 1px solid #cbd5e1;
  color: #fff;
}
a.cta-link,
a.cta-link:link,
a.cta-link:visited,
a.cta-link:hover,
a.cta-link:active {
  color: #fff;
  font-weight: 700;
  text-decoration: underline;
}
.site-footer { background: #0f172a; color: #e2e8f0; padding: 2rem 0 2.5rem; font-size: .9rem; }
.site-footer p { color: #e2e8f0; }
.site-footer a,
.site-footer a:link,
.site-footer a:visited,
.site-footer a:hover,
.site-footer a:active,
footer.site-footer a:visited {
  color: #fff;
  font-weight: 700;
}
.legal, .site-footer .legal { color: #e2e8f0; }
@media (max-width: 720px) {
  .grid { grid-template-columns: 1fr; }
  .hero { padding: 2rem 0; }
}
