/* ---------- shared header + footer ---------- */
.site-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; border-bottom: 1px solid var(--line); background: rgba(15,17,43,0.82); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.site-nav .container { display: flex; align-items: center; justify-content: space-between; height: 56px; gap: 16px; }
.logo { display: flex; align-items: center; gap: 10px; font-family: var(--mono); font-weight: 700; font-size: 0.95rem; letter-spacing: -0.02em; color: var(--text); text-decoration: none; }
.logo img { width: 26px; height: 26px; border-radius: 6px; }
.nav-links { display: flex; gap: 28px; font-family: var(--mono); font-size: 0.8rem; color: var(--muted); }
.nav-links a { color: inherit; text-decoration: none; }
.nav-links a:hover { color: var(--text); }
.nav-links a::before { content: '/'; color: var(--dim); margin-right: 6px; }
.nav-cta { font-family: var(--mono); font-size: 0.8rem; font-weight: 600; border: 1px solid rgba(255,255,255,.28); padding: 8px 14px; border-radius: 6px; color: var(--text); text-decoration: none; white-space: nowrap; }
.nav-cta:hover { border-color: var(--accent); color: var(--accent); }
.nav-toggle { display: none; width: 40px; height: 40px; background: none; border: 0; cursor: pointer; padding: 10px; margin-left: auto; }
.nav-toggle span { display: block; height: 2px; background: var(--text); border-radius: 2px; transition: transform .25s, opacity .25s; }
.nav-toggle span + span { margin-top: 6px; }
.nav-toggle.open span:first-child { transform: translateY(4px) rotate(45deg); }
.nav-toggle.open span:last-child { transform: translateY(-4px) rotate(-45deg); }
.nav-sheet { display: none; flex-direction: column; padding: 8px 24px 20px; border-top: 1px solid var(--line); background: rgba(15,17,43,0.97); }
.nav-sheet.open { display: flex; }
.nav-sheet a { font-family: var(--mono); font-size: 0.95rem; color: var(--text); text-decoration: none; padding: 14px 0; border-bottom: 1px solid var(--line); }
.nav-sheet a:last-child { border-bottom: 0; }
.nav-sheet .sheet-cta { color: var(--accent); }
.site-footer { border-top: 1px solid var(--line); padding: 64px 0 28px; font-family: var(--mono); font-size: 0.78rem; color: var(--dim); position: relative; z-index: 1; }
.site-footer a { color: var(--muted); text-decoration: none; }
.site-footer a:hover { color: var(--text); }
.foot-top { display: flex; justify-content: space-between; gap: 40px; flex-wrap: wrap; margin-bottom: 48px; }
.foot-brand { display: flex; flex-direction: column; gap: 22px; max-width: 300px; }
.foot-brand .logo { font-size: 1.6rem; gap: 14px; }
.foot-brand .logo img { width: 48px; height: 48px; border-radius: 12px; }
.foot-brand p { font-family: var(--sans, inherit); font-size: 0.9rem; color: var(--muted); line-height: 1.5; margin: 0; }
.foot-cols { display: grid; grid-template-columns: repeat(3, minmax(140px, auto)); gap: 32px 56px; }
.foot-cols div { display: flex; flex-direction: column; gap: 10px; }
.foot-cols b { color: var(--text); font-weight: 600; font-size: 0.72rem; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 4px; }
.foot-bottom { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; border-top: 1px solid var(--line); padding-top: 24px; font-size: 0.72rem; }
.foot-social { display: flex; gap: 20px; }
@media (max-width: 960px) {
    .nav-links, .nav-cta { display: none; }
    .nav-toggle { display: block; }
    .foot-cols { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) { .foot-cols { grid-template-columns: 1fr; } }
