/* Shared mobile header behavior for the Astro layout and API-rendered Insights. */
.site-header { z-index: 100; }
.mobile-menu-toggle, .mobile-nav { display: none; }

@media (max-width: 899px) {
  .header .header-btn, .site-header .apply-button { display: none; }

  .mobile-menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    background: none;
    border: 1px solid var(--line);
    border-radius: 4px;
    color: var(--ink);
    cursor: pointer;
  }
  .mobile-menu-toggle .icon-close { display: none; }
  .mobile-menu-toggle[aria-expanded="true"] .icon-menu { display: none; }
  .mobile-menu-toggle[aria-expanded="true"] .icon-close { display: block; }
  .mobile-menu-toggle:focus-visible, .mobile-nav a:focus-visible {
    outline: 2px solid var(--teal);
    outline-offset: 2px;
  }
  .mobile-nav {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: calc(100vh - 80px);
    height: calc(100dvh - 80px);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    background: var(--paper);
    border-bottom: 1px solid var(--line);
  }
  .mobile-nav.is-open { display: block; }
  .mobile-nav-inner {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 2rem;
  }
  .mobile-nav-section {
    display: flex;
    flex-direction: column;
    gap: .75rem;
  }
  .mobile-nav-heading {
    font-family: var(--app-font-mono, 'DM Mono', monospace);
    font-size: .75rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--teal);
    margin-bottom: .5rem;
  }
  .mobile-nav-link {
    display: block;
    font-size: 1.125rem;
    font-weight: 500;
    color: var(--ink);
    padding: .5rem 0;
    border-bottom: 1px solid var(--line);
    text-decoration: none;
  }
  .mobile-nav-link.view-all-mobile { color: var(--teal); font-weight: 600; }
  .mobile-nav-link.standalone {
    font-weight: 600;
    border-bottom: none;
    font-size: 1.25rem;
  }
  .mobile-nav .mobile-apply {
    display: inline-flex;
    width: 100%;
    justify-content: center;
    align-items: center;
    padding: .875rem 1.5rem;
    border: 1px solid transparent;
    background: var(--teal-deep);
    color: var(--paper);
    font-size: .9rem;
    font-weight: 700;
    text-decoration: none;
  }
  .mobile-nav .mobile-apply:hover { background: var(--teal); }
}