@charset "utf-8";
/* CSS Document */

:root {
  --bg:#ffffff;
  --nav-bg:#0f1724; /* ナビ背景色 */
  --accent:#06b6d4; /* ホバー・アクセント色 */
  --text:#ffffff;   /* メニュー文字色 */
  --btn-bg:transparent; /* ボタン背景（通常）*/
  --btn-radius:8px;
  --gap:12px;
  --max-width:1100px;
  --breakpoint:768px; /* この変数は使わず、@media内は固定値で指定 */
}

/* ナビ全体 */
.site-nav {
  background:var(--nav-bg);
  color:var(--text);
  position:sticky;
  top:0;
  z-index:100;
  box-shadow:0 2px 8px rgba(2,6,23,.2);
}
.nav-inner {
  max-width:var(--max-width);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--gap);
  padding:10px 16px;
}

/* ロゴ */
.site-logo {
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--text);
  text-decoration:none;
  font-weight:700;
  font-size:1.05rem;
  letter-spacing:0.02em;
}
.site-logo .mark {
  width:36px;
  height:36px;
  background:linear-gradient(135deg,var(--accent),#3b82f6);
  border-radius:8px;
  display:inline-block;
}

.site-logo img {
  width:180px;
height: auto;
}

/* メニュー（デスクトップ） */
.nav-links {
  display:flex;
  gap:8px;
  align-items:center;
}
.nav-links a {
  display:inline-block;
  text-decoration:none;
  color:var(--text);
  background:var(--btn-bg);
  padding:10px 14px;
  border-radius:var(--btn-radius);
  transition: all 180ms ease;
  font-weight:600;
  font-size:0.95rem;
  border:2px solid transparent;
}
.nav-links a:hover,
.nav-links a:focus {
  background: linear-gradient(90deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
  transform:translateY(-2px);
  box-shadow: 0 6px 14px rgba(6,22,44,0.4);
  outline: none;
  border-color: rgba(255,255,255,0.08);
}
/* 目立たせたい項目（例：申込み）*/
.nav-links a.primary {
  background:var(--accent);
  color: #062024;
}
.nav-links a.primary:hover,
.nav-links a.primary:focus {
  filter:brightness(.95);
  transform:translateY(-2px) scale(1.01);
}

/* ハンバーガー（モバイル） */
.nav-toggle {
  display:none;
  background:transparent;
  border:0;
  color:var(--text);
  padding:8px;
  cursor:pointer;
  position: relative;
  z-index: 200; /* メニューより前面にしてクリック可能に */
}
.nav-toggle .bar {
  width:22px;
  height:2px;
  background:var(--text);
  display:block; /* 縦に並べる */
  margin:4px 0;
  transition:transform .2s ease, opacity .2s ease;
}

/* モバイルメニュー（スライドダウン） */
.mobile-menu {
  display:none;
  padding:10px 16px;
  border-top:1px solid rgba(255,255,255,0.04);
  background:var(--nav-bg);
  position: relative;
  z-index:150;
}
.mobile-menu a {
  display:block;
  padding:12px 10px;
  border-radius:8px;
  margin:6px 0;
  background:transparent;
  color:var(--text);
  text-decoration:none;
  transition: background 160ms ease;
}
.mobile-menu a:hover,
.mobile-menu a:focus {
  background:rgba(255,255,255,0.03);
}

/* レスポンシブ（モバイル表示設定） */
@media (max-width: 767px) {
  .nav-links { display:none; }
  .nav-toggle { display:block; align-items:center; justify-content:center; }
  .mobile-menu { display:none; }
  .nav-inner { padding:10px; }
}

/* メニュー開いた状態（必ずメディアクエリの後に置く） */
.nav-open .mobile-menu {
  display:block !important;
}
.nav-open .nav-toggle .bar.top { transform: translateY(6px) rotate(45deg); }
.nav-open .nav-toggle .bar.mid { opacity:0; }
.nav-open .nav-toggle .bar.bottom { transform: translateY(-6px) rotate(-45deg); }

/* 小さな調整（PC時の強制非表示） */
@media (min-width: 768px) {
  .mobile-menu { display:none !important; }
}

/* フォーカスの可視化（アクセシビリティ向上） */
a:focus {
  box-shadow: 0 0 0 3px rgba(6,182,212,0.18);
}
