.page-menu, .section-menu { position: relative; font: 600 14px/1.4 Arial, sans-serif; letter-spacing: 0; }
.page-menu summary, .section-menu summary { min-height: 44px; padding: 12px 14px; cursor: pointer; white-space: nowrap; list-style: none; border: 1px solid currentColor; border-radius: 4px; }
.page-menu summary::after, .section-menu summary::after { content: "+"; margin-left: 12px; }
.page-menu[open] summary::after, .section-menu[open] summary::after { content: "−"; }
.page-menu summary::-webkit-details-marker, .section-menu summary::-webkit-details-marker { display: none; }
.page-menu nav, .section-menu nav { position: absolute; top: calc(100% + 8px); right: 0; z-index: 200; width: min(310px, calc(100vw - 32px)); padding: 8px; max-height: 70svh; overflow-y: auto; background: #11100f; color: #fff9ed; border: 1px solid #807b72; box-shadow: 0 8px 24px #0005; }
.desktop-nav .page-menu nav { right: auto; left: 0; }
.page-menu nav a, .section-menu nav a { display: flex; align-items: center; min-height: 44px; padding: 10px 12px; color: #fff9ed; font: 600 14px/1.4 Arial, sans-serif; text-transform: none; letter-spacing: 0; text-decoration: none; border: 0; }
.page-menu nav a:hover, .section-menu nav a:hover, .page-menu nav a[aria-current] { background: #ffe45c; color: #11100f; }
.page-menu :focus-visible, .section-menu :focus-visible { outline: 3px solid #287cff; outline-offset: 2px; }
.mobile-menu nav { max-height: 70svh; overflow-y: auto; }
.mobile-menu a[aria-current] { text-decoration: underline; text-underline-offset: 4px; }
@media (min-width:1121px) { .site-header { gap: 18px; } .desktop-nav { gap: 18px; } }
@media print { .page-menu, .section-menu { display: none; } }
