/* A scrollable menu sized to the visible screen, including landscape phones. */
body.header--menu-open { overflow: hidden; }
body.header--menu-open #header { pointer-events: none; }
body.header--menu-open #header .header-title, body.header--menu-open #header .header-nav, body.header--menu-open #header .header-actions { visibility: hidden; }
body.header--menu-open .header-menu {
  position: fixed !important; inset: 0 !important; width: 100% !important;
  height: 100vh !important; height: 100dvh !important;
  overflow-y: auto !important; overflow-x: hidden !important;
  overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
  pointer-events: auto !important; z-index: 10000;
  padding: 64px 24px max(32px, env(safe-area-inset-bottom)) !important;
  box-sizing: border-box;
}
body.header--menu-open .header-menu-bg { position: fixed; inset: 0; pointer-events: none; }
body.header--menu-open .header-menu-nav,
body.header--menu-open .header-menu-nav-list,
body.header--menu-open .header-menu-nav-folder[data-folder=root],
body.header--menu-open .header-menu-nav-folder-content {
  position: relative !important; display: flex !important; flex-direction: column;
  height: auto !important; min-height: 0 !important; max-height: none !important;
  flex: none !important; transform: none !important; overflow: visible !important;
  justify-content: flex-start !important; margin: 0 !important;
}
body.header--menu-open .header-menu-nav-item { margin: 0 !important; padding: 0 !important; }
body.header--menu-open .header-menu-nav-item a { display: block; padding: 12px 16px !important; min-height: 48px; box-sizing: border-box; font-size: 24px !important; line-height: 1.2 !important; touch-action: manipulation; }
body.header--menu-open .header-menu-cta { margin: 20px auto !important; }
body.header--menu-open .header-menu-cta a { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 28px !important; }
.smooth-mobile-menu-close { position: fixed; top: max(12px,env(safe-area-inset-top)); right: max(18px,env(safe-area-inset-right)); z-index: 10002; border: 1px solid currentColor; border-radius: 999px; padding: 10px 18px; min-height: 44px; background: #fff; color: #111; font: 16px/1.3 sans-serif; cursor: pointer; }
body:not(.header--menu-open) .smooth-mobile-menu-close { display: none; }
@media (orientation:landscape) and (max-height:600px) {
 body.header--menu-open .header-menu { padding-top: 62px !important; }
 body.header--menu-open .header-menu-nav-item a { font-size: 21px !important; }
}
