/* Общая шапка двух страниц: «Культурный код» и «История Подольских курсантов». */
:root { --sh-h: 64px; --sh-bronze: #c99d66; --sh-cream: #f8f1e3; --sh-dark: #15120f; }
.site-header { position: fixed; inset: 0 0 auto 0; z-index: 90; color: var(--sh-cream); font-family: 'Golos Text', system-ui, sans-serif; }
.site-header::before { content: ""; position: absolute; inset: 0 0 -1px 0; background: rgba(21, 18, 15, 0.9); border-bottom: 1px solid rgba(248, 241, 227, 0.16); opacity: 0; transition: opacity 0.3s ease; pointer-events: none; }
.site-header.is-scrolled::before, html.menu-open .site-header::before { opacity: 1; }
.sh-inner { position: relative; height: var(--sh-h); display: flex; align-items: center; gap: clamp(20px, 4vw, 56px); padding: 0 clamp(16px, 4vw, 48px); }
.sh-brand { display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-decoration: none; font-weight: 700; font-size: 0.9rem; letter-spacing: 0.1em; white-space: nowrap; }
.sh-brand i { font-family: 'Stolzl', 'Golos Text', sans-serif; font-weight: 400; font-style: normal; letter-spacing: 0; text-transform: lowercase; font-size: 1em; color: var(--sh-bronze); margin-left: 0.3em; }
.sh-nav { display: flex; align-items: center; gap: clamp(18px, 3vw, 40px); }
.sh-link { position: relative; display: inline-flex; align-items: center; min-height: 44px; color: rgba(248, 241, 227, 0.72); text-decoration: none; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; transition: color 0.25s ease; }
.sh-link::after { content: ""; position: absolute; left: 0; right: 0; bottom: 6px; height: 2px; background: var(--sh-bronze); transform: scaleX(0); transform-origin: left; transition: transform 0.35s ease; }
.sh-link:hover { color: var(--sh-cream); }
.sh-link:hover::after { transform: scaleX(0.4); }
.sh-link.is-active { color: var(--sh-cream); }
.sh-link.is-active::after { transform: scaleX(1); }
.sh-tools { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.sh-btn { width: 44px; height: 44px; padding: 0; display: grid; place-items: center; color: var(--sh-cream); background: transparent; border: 1px solid rgba(248, 241, 227, 0.24); border-radius: 2px; cursor: pointer; transition: border-color 0.25s ease, background 0.25s ease, color 0.25s ease; }
.sh-btn svg { width: 22px; height: 22px; }
.sh-btn:hover { border-color: var(--sh-bronze); color: var(--sh-bronze); }
.sh-btn[aria-pressed="true"], .sh-btn[aria-expanded="true"] { border-color: var(--sh-bronze); color: var(--sh-bronze); }
.site-header :focus-visible { outline: 2px solid #f3d9a8; outline-offset: 3px; }
.sh-menu { position: absolute; top: calc(var(--sh-h) + 6px); right: clamp(16px, 4vw, 48px); width: min(400px, calc(100vw - 32px)); max-height: calc(100vh - var(--sh-h) - 24px); overflow-y: auto; padding: 8px 20px 20px; background: rgba(21, 18, 15, 0.98); border: 1px solid rgba(248, 241, 227, 0.16); }
.sh-menu[hidden] { display: none; }
.sh-menu-main { display: none; }
.sh-menu-label { margin: 18px 0 4px; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--sh-bronze); }
.sh-menu-list { list-style: none; margin: 0; padding: 0; }
.sh-menu-list a { display: flex; align-items: center; min-height: 44px; color: var(--sh-cream); text-decoration: none; font-family: 'Stolzl', 'Golos Text', sans-serif; font-weight: 500; letter-spacing: -0.01em; font-size: 1.1rem; border-bottom: 1px solid rgba(248, 241, 227, 0.1); transition: color 0.2s ease, padding-left 0.25s ease; }
.sh-menu-list--plain a { font-family: 'Golos Text', system-ui, sans-serif; font-size: 0.95rem; }
.sh-menu-list a:hover { color: var(--sh-bronze); padding-left: 6px; }
.sh-menu-big { display: flex; align-items: center; min-height: 56px; color: rgba(248, 241, 227, 0.78); text-decoration: none; font-family: 'Stolzl', 'Golos Text', sans-serif; font-weight: 500; letter-spacing: -0.015em; font-size: 1.35rem; border-bottom: 1px solid rgba(248, 241, 227, 0.14); }
.sh-menu-big.is-active { color: var(--sh-cream); box-shadow: inset 3px 0 0 var(--sh-bronze); padding-left: 14px; }
@media (max-width: 767px) {
  .sh-nav { display: none; }
  .sh-inner { gap: 8px; padding: 0 14px; }
  .sh-brand { font-size: 0.8rem; }
  .sh-menu { right: 0; left: 0; width: auto; top: var(--sh-h); height: calc(100svh - var(--sh-h)); max-height: none; border-width: 1px 0 0; padding: 4px 16px 32px; }
  .sh-menu-main { display: block; }
}
html.a11y-mode .sh-link, html.a11y-mode .sh-menu-list a { font-size: 1.05rem; }
html.a11y-mode .site-header :focus-visible { outline-width: 3px; }
@media (prefers-reduced-motion: reduce) { .site-header *, .site-header::before { transition: none !important; } }

/* Header wordmark: preserve handwriting, use uppercase CODE. */
.sh-brand { font-family: 'Stolzl', 'Golos Text', sans-serif; }
.sh-brand i { font-family: 'Stolzl', 'Golos Text', sans-serif; font-style: normal; font-weight: inherit; text-transform: uppercase; font-size: 1em; }
