/* Shared right-side mobile drawer styles for header navigation */
/* Variables and defaults */
:root {
  --header-height: 64px;
  --menu-width: 70vw;
  --menu-bg: #2A241F;
  --menu-text: #FFFFFF;
  --menu-active: #E67E22;
  --menu-shadow: -6px 0 24px rgba(0, 0, 0, 0.35);
  --menu-radius: 16px;
  --menu-transition: 300ms cubic-bezier(0.4, 0, 0.2, 1);
  --base-font-size: 24px;
  --menu-item-font-size: calc(var(--base-font-size) * 0.85);
  --menu-item-line-height: 1.45;
  --menu-item-padding-y: 18px; /* ensures >=48px touch targets */
}

body.menu-open { overflow: hidden; }

@media (max-width: 1024px) {
  header { z-index: 2000 !important; }

  header .nav {
    position: fixed;
    top: var(--header-height) !important;
    right: 0 !important;
    left: auto !important;
    height: calc(100vh - var(--header-height)) !important;
    width: var(--menu-width) !important;
    padding: 24px !important;
    background-color: var(--menu-bg) !important;
    color: var(--menu-text) !important;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    box-shadow: var(--menu-shadow);
    transform: translateX(100%) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: transform var(--menu-transition), opacity var(--menu-transition), visibility var(--menu-transition) !important;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    pointer-events: none;
    will-change: transform;
    contain: layout style paint;
    z-index: 1500;
    text-align: left;
  }

  header .nav.active {
    transform: translateX(0) !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  /* Backdrop overlay outside the drawer */
  header .nav::before {
    content: '';
    position: fixed;
    top: var(--header-height);
    left: 0;
    right: var(--menu-width);
    bottom: 0;
    background: rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: opacity var(--menu-transition);
    pointer-events: none;
    z-index: -1;
  }
  header .nav.active::before { opacity: 1; }

  header .nav a {
    color: var(--menu-text) !important;
    font-size: var(--menu-item-font-size) !important;
    line-height: var(--menu-item-line-height) !important;
    font-weight: 400 !important;
    display: block !important;
    padding: var(--menu-item-padding-y) 8px !important;
    margin: 4px 0 !important;
    text-decoration: none !important;
    width: 100% !important;
    border-radius: 8px !important;
  }

  header .nav a:hover,
  header .nav a:focus-visible { background-color: rgba(255, 255, 255, 0.08) !important; }
  header .nav .active { color: var(--menu-active) !important; }
  header .nav a.active::after { display: none !important; }

  /* Ensure hamburger meets 48x48 touch target on mobile */
  .hamburger { width: 48px !important; height: 48px !important; }
  .hamburger span { width: 28px !important; height: 2px !important; }
}

@media (max-width: 480px) {
  :root { --base-font-size: 22px; }
}

/* Right-align anchors and icons inside the drawer */
@media (max-width: 1024px) {
  header .nav { align-items: stretch !important; }
  header .nav a {
    display: flex !important;
    flex-direction: row-reverse !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 10px !important;
    text-align: right !important;
  }
  header .nav a img,
  header .nav a svg { width: 24px; height: 24px; flex-shrink: 0; }
}

