/* Shared editorial masthead and accessible mobile navigation. */
.nx-header { position: sticky; top: 0; z-index: 99; background: var(--nx-surface); border-bottom: 1px solid var(--nx-border); }
.nx-header-inner { position: relative; }
.nx-header-bar { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 88px; }
.nx-branding { display: flex; align-items: center; gap: 12px; }
.nx-logo { display: inline-flex; align-items: center; }
.nx-logo svg { width: auto; height: 30px; }
.site-title { font-size: 26px; margin: 0; white-space: nowrap; }
.nx-nav { display: flex; align-items: center; }
.nx-menu { display: flex; align-items: center; gap: 28px; margin: 0; padding: 0; list-style: none; }
.nx-menu a { display: block; padding: 20px 0; font-size: var(--nx-type-nav); font-weight: 500; color: var(--nx-heading); }
.nx-menu a:hover, .nx-menu .current-menu-item > a { color: var(--nx-brand); text-decoration: underline; text-underline-offset: 6px; }
.nx-nav-toggle { display: none; min-height: 44px; align-items: center; justify-content: center; gap: 8px; padding: 8px 0 8px 12px; background: none; border: 0; color: var(--nx-heading); cursor: pointer; }
.nx-nav-toggle-open { display: flex; }
.nx-nav-toggle-close { display: none; font-size: 26px; line-height: 1; }
.nx-nav-toggle[aria-expanded="true"] .nx-nav-toggle-open { display: none; }
.nx-nav-toggle[aria-expanded="true"] .nx-nav-toggle-close { display: block; }
.nx-top-banner { padding-block: 16px; }
.nx-top-banner:not(:has(.nx-ad-slot)) { display: none; }
@media (max-width: 1024px) {
  .nx-header-bar { min-height: 72px; }
  .nx-nav-toggle { display: flex; }
  .nx-nav-panel { position: absolute; top: 100%; right: 0; left: 0; display: none; background: var(--nx-surface); border-bottom: 1px solid var(--nx-border); padding-inline: var(--nx-container-pad); }
  .nx-nav-panel.is-open { display: block; }
  .nx-menu { display: block; max-width: var(--nx-container); margin: auto; }
  .nx-menu li + li { border-top: 1px solid var(--nx-border); }
  .nx-menu a { padding: 16px 0; font-size: 1.25rem; }
}
@media (max-width: 544px) {
  .nx-header-bar { min-height: 68px; gap: 12px; }
  .site-title { font-size: 22px; }
  .nx-logo svg { height: 26px; }
  .nx-branding { gap: 9px; }
}
