/* Shared navigation and reading aids; no script required. */
.mobile-menu { display: none; position: relative; }
.page-toc { border-bottom: 1px solid var(--border,#E8E1D6); background: var(--surface,#fff); padding: 1.4rem 0; }
.page-toc h2 { font-size: 1.1rem; margin-bottom: .7rem; }
.page-toc ul { display: grid; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); gap: .4rem 1.5rem; list-style: none; margin: 0; padding: 0; }
.page-toc a { display: block; padding: .35rem 0; color: var(--navy,#0C1A2A); text-decoration: underline; text-underline-offset: 3px; }
[id] { scroll-margin-top: 6rem; }
a:focus-visible, summary:focus-visible, button:focus-visible { outline: 3px solid var(--accent,#D8A13C); outline-offset: 4px; }
@media (max-width:767px) {
  .mobile-menu { display: block; }
  .mobile-menu summary { min-height: 44px; padding: .65rem .7rem; color: #F4F1EC; font-weight: 700; cursor: pointer; border: 1px solid #C7CBD4; border-radius: 8px; display:flex; align-items:center; gap:.55rem; list-style:none; }
  .mobile-menu summary::-webkit-details-marker { display:none; }
  .menu-mark { width: .85rem; height: .6rem; display: inline-block; border-top: 2px solid currentColor; border-bottom: 2px solid currentColor; position: relative; }
  .menu-mark::after { content:""; position:absolute; left:0; right:0; top:calc(50% - 1px); border-top:2px solid currentColor; }
  .mobile-menu[open] summary { border-color: #E3B45A; color: #E3B45A; background: rgba(255,255,255,.06); }
  .mobile-menu[open] .menu-mark { transform: rotate(90deg); }
  .mobile-menu__links { position: absolute; left: 0; right: 0; top: 100%; background: #0C1A2A; border-top: 1px solid #55616E; padding: .6rem 1.25rem 1rem; box-shadow: 0 12px 20px rgba(0,0,0,.2); max-height: 65vh; overflow-y: auto; }
  .mobile-menu__links a { display: block; color: #F4F1EC; padding: .65rem .4rem; min-height: 44px; text-decoration: none; }
  .mobile-menu__links a:hover, .mobile-menu__links a[aria-current="page"] { color: #E3B45A; text-decoration: underline; }
  .nav-right { gap: .45rem; }
  .nav { gap: .55rem; padding-left: .25rem; padding-right: .25rem; }
  .btn--nav { padding-left: .65rem; padding-right: .65rem; }
  .page-toc ul { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior: auto !important; } }
