:root{
  --primary:#004887;
  --bg:#fff;
  --card:#fff;
  --muted:#6b7280;
  --radius:12px;
  --banner-size:420px;
  --header-height-fallback:72px;
  --nav-link-color:#0b1726;
  --scroll-offset: 84px; /* フォールバック値（JSが動かない環境向け） */
  font-family: -apple-system, "Hiragino Kaku Gothic ProN", "Meiryo","Segoe UI", Roboto, sans-serif;
}

/* リセット/基礎 */
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:#111827;line-height:1.6}

/* 固定ヘッダー */
.site-header{
  position:fixed;
  top:0; left:0; right:0;
  background:#ffffff;
  box-shadow:0 2px 8px rgba(13,24,40,0.06);
  z-index:120;
  display:flex;
  align-items:center;
  padding:8px 12px;
}

/* 内部コンテナ（1行） */
.site-inner{
  max-width:1100px;
  margin:0 auto;
  width:100%;
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 16px;
  flex-wrap:nowrap;
}

/* ロゴ */
.site-logo{margin-right:auto;display:flex;align-items:center}
.site-logo img{display:block;width:260px;max-width:100%;height:auto}

/* ハンバーガー */
.hamburger{display:none;background:none;border:0;padding:6px;cursor:pointer;flex:0 0 auto}
.hamburger .hamburger-box{display:inline-block;width:28px;height:18px;position:relative}
.hamburger .hamburger-inner,
.hamburger .hamburger-inner::before,
.hamburger .hamburger-inner::after{
  background:#0b1726;height:2px;width:28px;display:block;border-radius:2px;position:absolute;left:0;
}
.hamburger .hamburger-inner{top:50%;transform:translateY(-50%)}
.hamburger .hamburger-inner::before{content:'';top:-8px}
.hamburger .hamburger-inner::after{content:'';top:8px}

/* ナビ / リンク色リセット（visited 対策含む） */
.site-nav{display:flex;gap:12px;align-items:center}
.site-nav a,
.site-nav a:link,
.site-nav a:visited,
.site-nav a:active{
  color:var(--nav-link-color);
  text-decoration:none;
  font-weight:700;
  padding:8px 12px;
  border-radius:8px;
  background:transparent;
}
.site-nav a.nav-cta{background:var(--primary);color:#fff;box-shadow:0 6px 18px rgba(0,72,135,0.12)}
.site-nav a:focus{box-shadow:0 0 0 3px rgba(0,72,135,0.12);border-radius:8px}

/* 開いたナビ（オーバーレイ） — top は JS で設定 */
.site-nav.open{
  display:flex;
  position:absolute;
  left:0; right:0;
  background:#fff;
  padding:12px;
  flex-direction:column;
  gap:8px;
  box-shadow:0 8px 24px rgba(13,24,40,0.08);
  z-index:119;
}

/* 共通ボタン類（ヘッダーで定義して他ファイルで使う） */
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:11px 18px;
  border-radius:10px;
  background:var(--card);
  color:var(--primary);
  text-decoration:none;
  font-weight:700;
  box-shadow:0 6px 18px rgba(0,72,135,0.12);
}
.btn.alt{background:transparent;color:#fff;border:1px solid rgba(255,255,255,0.14);box-shadow:none}
.btn.primary{background:var(--primary);color:#fff}
.btn-outline{
  background:transparent;border:2px solid rgba(11,72,135,0.18);color:#0b1726;padding:10px 16px;border-radius:10px;font-weight:800;text-decoration:none;
}
.large-cta{padding:12px 22px;border-radius:12px;background:var(--primary);color:#fff;text-decoration:none;font-weight:800}

/* フローティングCTA */
.float-cta{
  position:fixed;right:18px;bottom:18px;z-index:110;background:var(--primary);color:#fff;padding:14px 16px;border-radius:12px;
  box-shadow:0 10px 30px rgba(0,72,135,0.18);text-decoration:none;font-weight:800;
}

/* コピー用トースト */
.copy-toast{position:fixed;left:50%;transform:translateX(-50%);bottom:92px;background:rgba(17,24,39,0.95);color:#fff;padding:8px 12px;border-radius:8px;opacity:0;transition:opacity .18s ease;z-index:180;font-weight:700;pointer-events:none}
.copy-toast.show{opacity:1}

/* ヘッダーのレスポンシブ（モバイルでハンバーガー表示） */
@media (max-width:680px){
  .site-logo img{width:140px;max-height:40px}
  .hamburger{display:block}
  .site-nav{display:none}
  .site-inner{flex-wrap:nowrap;padding:0 10px}
  .float-cta{left:50%;transform:translateX(-50%);right:auto;width:88%;bottom:14px;padding:12px;text-align:center}
}