:root{
  --brand:#004c8c;
  --bg:#f7f9fc;
  --ink:#222;
  --line:#e0e4e8;
  --card:#fff;
}

/* Base */
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Noto Sans JP",Meiryo,sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.7;
}
a{ color:inherit; text-decoration:none; }
.container{ width:min(92%,1200px); margin-inline:auto; }

/* Header */
.site-header{ background:var(--brand); color:#fff; }
.header-inner{ display:flex; justify-content:space-between; align-items:center; padding:1rem 0; }
.logo-text{ font-size:1.4rem; font-weight:700; }
.site-nav{ display:flex; gap:1.2rem; font-size:.95rem; }
.site-nav a{ color:#fff; opacity:.95; }
.site-nav a[aria-current="page"]{ text-decoration:underline; text-underline-offset:4px; }
.btn-primary.small{
  background:#fff; color:var(--brand); padding:.45rem 1rem; border-radius:6px; font-weight:700;
}

/* Section */
.section{ padding:3rem 0; }
.section-title{
  font-size:2rem;
  color:var(--brand);
  margin-bottom:1.5rem;
  border-bottom:3px solid var(--brand);
  padding-bottom:.5rem;
}

/* Grid */
.grid-2{
  display:grid;
  gap:2rem;
  grid-template-columns:1fr 1fr;
}
.mt-24{ margin-top:1.5rem; }

/* Lists */
.about-list{
  list-style:none;
  margin:0; padding:0;
}
.about-list li{ margin-bottom:.6rem; }

/* Footer */
.site-footer{ background:#e9eef2; margin-top:3rem; }
.footer-inner{ text-align:center; padding:2rem 0 1rem; }
.footer-links{
  list-style:none; margin:1rem 0; padding:0;
  display:flex; gap:1rem; flex-wrap:wrap; justify-content:center;
}
.footer-links a{ color:var(--brand); font-weight:600; }
.copy{ font-size:.85rem; color:#666; }

/* Responsive */
@media(max-width:768px){
  .header-inner{ flex-direction:column; gap:.6rem; text-align:center; }
  .site-nav{ flex-wrap:wrap; justify-content:center; }
  .grid-2{ grid-template-columns:1fr; }
}
/* ===== Map Section ===== */
.map-section{
  background:#fff;
  padding:2rem 0;
  margin-top:3rem;
}
.map-title{
  font-size:1.4rem;
  color:var(--brand);
  margin-bottom:1rem;
  border-left:4px solid var(--brand);
  padding-left:.5rem;
}
.map-embed{
  width:100%;
  max-width:1200px;
  margin:0 auto;
  border-radius:8px;
  overflow:hidden;
  box-shadow:0 2px 12px rgba(0,0,0,.08);
}