:root{
  --brand:#004c8c;
  --bg:#f7f9fc;
  --ink:#222;
  --line:#e0e4e8;
  --card:#fff;
}

*,
*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; }
body{
  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 (unified) */
.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; }

/* Hero */
.hero{ background:#e9eef2; }
.hero .container{ padding:2.2rem 0; text-align:center; }
.hero h1{ font-size:2rem; color:var(--brand); margin:.2rem 0 .4rem; }

/* Section & Form */
.section{ padding:2.2rem 0 3rem; }
.contact-form{
  background:var(--card); border:1px solid var(--line); border-radius:12px; padding:1.6rem;
  box-shadow:0 2px 10px rgba(0,0,0,.05);
}
.grid-2{ display:grid; gap:1rem; grid-template-columns:1fr 1fr; }
.form-group{ display:flex; flex-direction:column; gap:.4rem; }
label{ font-weight:700; }
.req{ color:#c33838; }
input[type="text"],input[type="email"],input[type="tel"],select,textarea{
  border:1px solid var(--line); border-radius:8px; padding:.7rem .8rem; font-size:1rem;
  background:#fff;
}
textarea{ resize:vertical; }
.agree{ margin-top:1rem; display:flex; align-items:center; gap:.8rem; flex-wrap:wrap; }
.policy{ color:var(--brand); text-decoration:underline; text-underline-offset:3px; }
.submit{ margin-top:1rem; text-align:center; }
.btn-primary{ background:var(--brand); color:#fff; padding:.9rem 1.8rem; border-radius:8px; font-weight:800; border:0; cursor:pointer; }
.btn-primary:hover{ opacity:.92; }
.note{ margin-top:1rem; color:#555; text-align:center; }

/* honeypot (hidden) */
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* Footer (unified) */
.site-footer{ background:#e9eef2; margin-top:3rem; }
.footer-inner{ text-align:center; padding:2rem 0 1rem; }
.footer-links{ list-style:none; padding:0; margin:1rem 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; }
}
