/* Navigation reliability / stacking fixes */
.offcanvas-nav { z-index: 10060; }
.offcanvas-backdrop { z-index: 10055; }
.offcanvas-nav .btn-close { position: relative; z-index: 2; cursor: pointer; }
.offcanvas-nav-btn { position: relative; z-index: 2; touch-action: manipulation; cursor: pointer; }

/* Right-side desktop drawer */
.main-overlay { inset: 0; z-index: 10040; height: 100dvh; filter: none; }
.canvas-menu { z-index: 10050; width: min(400px, 100vw); height: 100dvh; overscroll-behavior: contain; }
.canvas-menu .canvas-close { cursor: pointer; }
.canvas-menu a:focus-visible,
.canvas-menu button:focus-visible,
button.burger-menu:focus-visible,
.offcanvas-nav-btn:focus-visible { outline: 3px solid #00b8cc; outline-offset: 4px; }

@media (max-width: 1199.98px) {
  .offcanvas-nav { width: min(360px, 88vw); max-width: 100%; }
  .offcanvas-nav .offcanvas-body { overflow-y: auto; -webkit-overflow-scrolling: touch; }
  .offcanvas-nav .navbar-nav { align-items: stretch !important; }
  .offcanvas-nav .nav-link { width: 100%; }
}

@media (max-width: 575.98px) {
  .canvas-menu { padding: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .canvas-menu,
  .canvas-menu.open,
  .main-overlay,
  .offcanvas { transition: none !important; }
}
