/* common.css — header, nav, hamburger, footer, responsive */
/* All templates load this via <link>. Page-specific styles stay inline. */

/* ヘッダー */
.header { background: #0f1b2d; box-shadow: 0 2px 8px rgba(0,0,0,0.15); position: sticky; top: 0; z-index: 100; }
.header-inner { width: 100%; margin: 0 auto; padding: 0 clamp(12px, 2.5vw, 38px); display: flex; align-items: center; height: 52px; }
.logo { font-size: 1.15em; font-weight: 800; letter-spacing: 0.08em; color: #fff; text-decoration: none; margin-right: 2.5em; flex-shrink: 0; }
.logo span { color: #f59e0b; }
.logo:hover { text-decoration: none; }
.nav { display: flex; gap: 0; flex: 1; align-items: center; overflow: hidden; }
.nav a { color: #94a3b8; font-size: 0.85em; font-weight: 600; padding: 16px 14px; text-decoration: none; border-bottom: 2px solid transparent; transition: all 0.15s; white-space: nowrap; }
.nav a:hover { color: #fff; text-decoration: none; }
.nav a.active { color: #f59e0b; border-bottom-color: #f59e0b; }
.nav a.nav-login { margin-left: auto; flex-shrink: 0; align-self: center; padding: 8px 14px; border-bottom: none; color: #94a3b8; }
.nav a.nav-login:hover { color: #fff; }
.nav a.nav-signup { background: #f59e0b; color: #0f1b2d; border-radius: 6px; padding: 7px 18px; border-bottom: none; flex-shrink: 0; align-self: center; font-weight: 700; }
.nav a.nav-signup:hover { background: #fbbf24; color: #0f1b2d; text-decoration: none; }
.nav a.nav-contact { }

/* ハンバーガーメニュー */
.hamburger { display: none; background: none; border: none; cursor: pointer; padding: 8px; margin-left: auto; flex-shrink: 0; }
.hamburger span { display: block; width: 22px; height: 2px; background: #94a3b8; margin: 5px 0; transition: all 0.3s; border-radius: 1px; }
.hamburger:hover span { background: #fff; }
.hamburger.open span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.hamburger.open span:nth-child(2) { opacity: 0; }
.hamburger.open span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }
.mobile-menu { display: none; background: #0f1b2d; border-top: 1px solid #1e293b; padding: 8px 0; }
.mobile-menu.open { display: block; }
.mobile-menu a { display: block; color: #94a3b8; font-size: 0.9em; font-weight: 600; padding: 12px clamp(12px, 2.5vw, 38px); text-decoration: none; border-left: 3px solid transparent; }
.mobile-menu a:hover { color: #fff; background: rgba(255,255,255,0.03); text-decoration: none; }
.mobile-menu a.active { color: #f59e0b; border-left-color: #f59e0b; }
.mobile-menu .mobile-auth { display: flex; gap: 10px; padding: 12px clamp(12px, 2.5vw, 38px); border-top: 1px solid #1e293b; margin-top: 4px; }
.mobile-menu .mobile-auth a { display: inline-block; padding: 8px 16px; border-left: none; }
.mobile-menu .mobile-auth a.nav-signup { background: #f59e0b; color: #0f1b2d; border-radius: 6px; font-weight: 700; }
.mobile-menu .mobile-auth a.nav-signup:hover { background: #fbbf24; }

/* フッター */
footer a { color: #94a3b8; }
footer a:hover { color: #f59e0b; text-decoration: none; }

/* レスポンシブ: ヘッダー/ナビ */
@media (max-width: 768px) {
  .hamburger { display: block; }
  .nav { display: none !important; }
  .header-inner { padding: 0 12px; height: 48px; }
  .logo { font-size: 1em; margin-right: 1em; }
}
