.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  backdrop-filter: blur(8px);
  background: rgb(247 249 252 / 88%);
  border-bottom: 1px solid var(--border);
}
.nav-wrap { display:flex; justify-content:space-between; align-items:center; padding: .9rem 0; gap: 1rem; }
.logo { font-weight: 800; }
.nav { display:flex; gap:.7rem; flex-wrap:wrap; }
.nav a { font-size:.92rem; padding:.4rem .5rem; border-radius:8px; }
.nav a:hover,.nav a:focus-visible { background:#eaf0ff; }

.hero { padding: 6rem 0 4.5rem; }
.hero-copy { max-width: 760px; display:grid; gap:1.1rem; }

.grid { display:grid; gap: 1rem; }
.grid-3 { grid-template-columns: 1fr; }
.grid-2 { grid-template-columns: 1fr; }

.site-footer { border-top:1px solid var(--border); background:#fff; padding:2rem 0; margin-top:4rem; }
.footer-links { display:flex; gap:.8rem; flex-wrap:wrap; font-size:.9rem; }

@media (min-width: 760px) {
  .grid-3 { grid-template-columns: repeat(3, 1fr); }
  .grid-2 { grid-template-columns: repeat(2, 1fr); }
}


.menu-toggle { display:none; border:1px solid var(--border); background:#fff; border-radius:10px; padding:.4rem .65rem; font-size:1rem; }
@media (max-width: 759px) {
  .menu-toggle { display:inline-block; }
  .nav { display:none; position:absolute; top:100%; left:0; right:0; background:#fff; border-bottom:1px solid var(--border); padding:.6rem 1rem 1rem; flex-direction:column; }
  .site-header.nav-open .nav { display:flex; }
  .nav-wrap { position:relative; }
}

.section { padding: 4.5rem 0; }
.section:nth-of-type(even) { background: #f7f9fc; }
.hero { padding: 7.5rem 0 5.5rem; }
.hero h1 { font-size: clamp(2rem, 4.5vw, 3.5rem); line-height: 1.15; letter-spacing: -0.02em; }
.section-title-ja { font-size: clamp(1.5rem, 3vw, 2.35rem); margin-bottom: 1rem; }
