/* V2 navigation primitives. */
.maya-v2-rail-nav { width: 100%; display: grid; gap: 5px; overflow: hidden; }
.maya-v2-rail-nav a, .maya-v2-rail-bottom a {
  min-height: 56px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 5px;
  border-radius: 9px;
  text-align: center;
}
.maya-v2-rail-nav a i, .maya-v2-rail-bottom a i { font-size: 17px; }
.maya-v2-rail-nav a small, .maya-v2-rail-bottom a small { font-size: 9px; line-height: 1; }
.maya-v2-rail-nav a[data-rail-index], .maya-v2-more-menu a[data-rail-index] { position: relative; }
.maya-v2-rail-drag-handle {
  position: absolute;
  top: 4px;
  right: 3px;
  z-index: 2;
  width: 13px;
  height: 13px;
  display: grid;
  place-items: center;
  border-radius: 4px;
  color: currentColor;
  cursor: move;
  opacity: .62;
  transition: opacity .15s ease, background .15s ease;
}
.maya-v2-rail-drag-handle:hover,
.maya-v2-rail-drag-handle:focus-visible { opacity: 1; background: rgba(255, 255, 255, .12); }
.maya-v2-rail-nav a .maya-v2-rail-drag-handle i,
.maya-v2-more-menu a .maya-v2-rail-drag-handle i { font-size: 8px !important; }
/* More menu only: make the drag/drop marker easier to see. */
.maya-v2-more-menu a .maya-v2-rail-drag-handle i { font-size: 12px !important; }
.maya-v2-rail-drag-handle:active { cursor: move; }
.maya-v2-rail-nav a[data-rail-index]::after, .maya-v2-more-menu a[data-rail-index]::after {
  position: absolute;
  top: 6px;
  right: 6px;
  color: currentColor;
  content: none;
  font-family: FontAwesome;
  font-size: 11px;
  line-height: 1;
  opacity: 0;
  pointer-events: none;
  transition: opacity .15s ease;
}
.maya-v2-rail-nav a.is-dragging, .maya-v2-more-menu a.is-dragging { opacity: .16; transform: none; transition: transform .12s ease, opacity .12s ease; }
.maya-v2-rail-nav a.is-drop-target, .maya-v2-more-menu a.is-drop-target { box-shadow: inset 0 0 0 2px var(--maya-v2-accent); }
.maya-v2-rail-nav a:hover, .maya-v2-rail-nav a.active, .maya-v2-rail-bottom a:hover { background: #283149; }
.maya-v2-rail-nav a.active i { color: #a99cff; }
.maya-v2-rail-drag-ghost {
  position: fixed !important;
  z-index: 9999 !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  place-items: center !important;
  align-content: center !important;
  justify-items: center !important;
  gap: 5px !important;
  box-sizing: border-box;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 10px;
  color: #f3f0ff !important;
  background: #283149 !important;
  font-size: 12px !important;
  line-height: 1 !important;
  text-align: center !important;
  white-space: normal !important;
  box-shadow: 0 14px 32px rgba(15, 23, 42, .38), 0 0 0 1px rgba(169, 156, 255, .34);
  opacity: .98 !important;
  transform: none !important;
  pointer-events: none !important;
  cursor: move !important;
}
.maya-v2-rail-drag-ghost i { display: block !important; width: 100% !important; margin: 0 !important; color: #b4a8ff !important; font-size: 17px !important; line-height: 1 !important; text-align: center !important; opacity: 1 !important; }
.maya-v2-rail-drag-ghost small { display: block !important; width: 100% !important; margin: 0 !important; color: #f3f0ff !important; font-size: 9px !important; line-height: 1 !important; text-align: center !important; opacity: 1 !important; }

/* Keep rail contrast independent from legacy/global anchor and icon states. */
.maya-v2-shell .maya-v2-rail .maya-v2-rail-nav > a,
.maya-v2-shell .maya-v2-rail .maya-v2-rail-bottom > a { color: #b7c0d2 !important; opacity: 1 !important; }
.maya-v2-shell .maya-v2-rail .maya-v2-rail-nav > a i,
.maya-v2-shell .maya-v2-rail .maya-v2-rail-bottom > a i { color: #b7c0d2 !important; opacity: 1 !important; }
.maya-v2-shell .maya-v2-rail .maya-v2-rail-nav > a small,
.maya-v2-shell .maya-v2-rail .maya-v2-rail-bottom > a small { color: #9aa6bb !important; opacity: 1 !important; }
.maya-v2-shell .maya-v2-rail .maya-v2-rail-nav > a:hover,
.maya-v2-shell .maya-v2-rail .maya-v2-rail-bottom > a:hover { color: #fff !important; }
.maya-v2-shell .maya-v2-rail .maya-v2-rail-nav > a:hover i,
.maya-v2-shell .maya-v2-rail .maya-v2-rail-bottom > a:hover i { color: #b4a8ff !important; }
.maya-v2-shell .maya-v2-rail .maya-v2-rail-nav > a.active { color: #f3f0ff !important; background: #283149 !important; }
.maya-v2-shell .maya-v2-rail .maya-v2-rail-nav > a.active i { color: #b4a8ff !important; }
.maya-v2-shell .maya-v2-rail .maya-v2-rail-nav > a.active small { color: #f3f0ff !important; }

.maya-v2-rail-bottom { position: relative; width: 100%; }
.maya-v2-more-trigger { position: relative; z-index: 2; }
.maya-v2-more-pointer { position: fixed; right: calc(100vw - var(--maya-v2-rail) - 1px); bottom: 35px; z-index: 132; display: none; width: 16px; height: 24px; align-items: center; justify-content: center; color: var(--maya-v2-accent); background: #fff; border: 1px solid var(--maya-v2-border); border-right: 0; border-radius: 6px 0 0 6px; box-shadow: -3px 4px 10px rgba(15, 23, 42, .08); }
.maya-v2-more-pointer i { font-size: 15px; }
.maya-v2-more-menu { position: fixed; top: auto; bottom: 8px; left: calc(var(--maya-v2-rail) - 4px); z-index: 130; display: none; width: 250px; max-height: calc(100vh - var(--maya-v2-header) - 16px); overflow-y: auto; padding: 14px; border: 1px solid var(--maya-v2-border); border-radius: 10px; background: #fff; box-shadow: 0 12px 30px rgba(15, 23, 42, .18); }
.maya-v2-more-menu::before { content: ''; position: absolute; top: 0; bottom: 0; left: -8px; width: 8px; }
.maya-v2-rail-bottom:hover .maya-v2-more-menu, .maya-v2-rail-bottom:focus-within .maya-v2-more-menu { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.maya-v2-rail-bottom.is-dragging .maya-v2-more-menu { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.maya-v2-rail-bottom:hover .maya-v2-more-pointer, .maya-v2-rail-bottom:focus-within .maya-v2-more-pointer { display: flex; }
.maya-v2-more-menu a { min-height: 54px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding: 5px 6px; border: 1px solid #e5e9f0; border-radius: 9px; color: #596577; background: #f8f9fc; text-align: center; white-space: nowrap; transition: border-color .18s ease, color .18s ease, background .18s ease, transform .18s ease; }
.maya-v2-more-menu a:hover, .maya-v2-more-menu a.active { color: var(--maya-v2-accent); border-color: #d9d2ff; background: #f4f2ff; transform: translateX(2px); }
.maya-v2-more-menu a i { width: auto; color: var(--maya-v2-accent); text-align: center; font-size: 16px; }
.maya-v2-more-menu a span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.maya-v2-more-menu .maya-v2-more-manage { grid-column: 1 / -1; min-height: 38px; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 7px 10px; border: 1px solid #e5e9f0; border-radius: 8px; color: #596577; background: #fff; font: inherit; cursor: pointer; }
.maya-v2-more-menu .maya-v2-more-manage:hover { color: var(--maya-v2-accent); border-color: #d9d2ff; background: #f4f2ff; }
.maya-v2-more-menu .maya-v2-more-manage i { color: var(--maya-v2-accent); }
.maya-v2-rail-order-backdrop { position: fixed; inset: 0; z-index: 300; display: grid; place-items: center; padding: 20px; background: rgba(15, 23, 42, .42); }
.maya-v2-rail-order-panel { width: min(440px, 100%); max-height: min(680px, calc(100vh - 40px)); display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--maya-v2-border); border-radius: 14px; color: var(--maya-v2-text); background: #fff; box-shadow: 0 20px 60px rgba(15, 23, 42, .24); }
.maya-v2-rail-order-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 20px 22px 15px; border-bottom: 1px solid var(--maya-v2-border); }
.maya-v2-rail-order-header h2 { margin: 0 0 5px; font-size: 17px; font-weight: 650; }
.maya-v2-rail-order-header p { margin: 0; color: var(--maya-v2-muted); font-size: 12px; }
.maya-v2-rail-order-close { width: 32px; height: 32px; border: 0; border-radius: 7px; color: #647084; background: transparent; cursor: pointer; }
.maya-v2-rail-order-close:hover { color: var(--maya-v2-text); background: #f1f3f7; }
.maya-v2-rail-order-list { min-height: 0; margin: 0; padding: 8px 14px; overflow-y: auto; list-style: none; counter-reset: rail-order; }
.maya-v2-rail-order-list li { min-height: 48px; display: flex; align-items: center; gap: 11px; padding: 5px 7px; border-bottom: 1px solid #eef0f4; counter-increment: rail-order; }
.maya-v2-rail-order-list li::before { width: 22px; color: #98a2b3; content: counter(rail-order); font-size: 11px; text-align: center; }
.maya-v2-rail-order-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; color: var(--maya-v2-accent); background: #f4f2ff; }
.maya-v2-rail-order-name { flex: 1; min-width: 0; overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.maya-v2-rail-order-controls { display: flex; gap: 5px; }
.maya-v2-rail-order-controls button { width: 30px; height: 30px; border: 1px solid var(--maya-v2-border); border-radius: 7px; color: #596577; background: #fff; cursor: pointer; }
.maya-v2-rail-order-controls button:hover:not(:disabled) { color: var(--maya-v2-accent); border-color: #d9d2ff; background: #f4f2ff; }
.maya-v2-rail-order-controls button:disabled { opacity: .35; cursor: default; }
.maya-v2-rail-order-footer { display: flex; align-items: center; gap: 8px; padding: 13px 16px; border-top: 1px solid var(--maya-v2-border); }
.maya-v2-rail-order-footer > span { flex: 1; }
.maya-v2-rail-order-footer button { min-height: 34px; padding: 0 12px; border: 1px solid var(--maya-v2-border); border-radius: 7px; color: #596577; background: #fff; cursor: pointer; }
.maya-v2-rail-order-footer .maya-v2-rail-order-save { color: #fff; border-color: var(--maya-v2-accent); background: var(--maya-v2-accent); }
.maya-v2-rail-order-footer .maya-v2-rail-order-reset { margin-right: auto; }
.maya-v2-horizontal-subnav { z-index: 20; }
.maya-v2-horizontal-subnav-body > nav { height: 100%; margin: 0; }
.maya-v2-horizontal-subnav--sales { flex: 0 0 var(--maya-v2-subnav); height: var(--maya-v2-subnav); }
.maya-v2-horizontal-subnav--sales .maya-v2-horizontal-subnav-body { display: flex; align-items: stretch; width: 100%; min-width: 0; }
.maya-v2-horizontal-subnav--sales .maya-v2-horizontal-subnav-body > .maya-v2-sales-navigation { flex: 1 1 auto; width: 100%; min-width: 0; }
.maya-v2-horizontal-subnav-body > nav > ul.nav { height: 100%; display: flex; align-items: stretch; gap: 4px; margin: 0; padding: 0 18px; }
.maya-v2-horizontal-subnav-body > nav > ul.nav > li { position: relative; display: flex; align-items: stretch; }
.maya-v2-horizontal-subnav-body > nav > ul.nav > li > a { display: flex; align-items: center; gap: 8px; padding: 0 14px; color: #596577; border-bottom: 2px solid transparent; white-space: nowrap; }
.maya-v2-horizontal-subnav-body > nav > ul.nav > li > a > .pull-right { order: 2; float: none !important; flex: 0 0 auto; margin-left: 8px; }
.maya-v2-horizontal-subnav-body > nav > ul.nav > li > a:hover,
.maya-v2-horizontal-subnav-body > nav > ul.nav > li.active > a { color: #293852; background: #f4f6fa; border-bottom-color: var(--maya-v2-accent); }
.maya-v2-horizontal-subnav-body ul.nav-sub { position: absolute; top: calc(100% - 1px); left: 0; z-index: 120; display: none; min-width: 170px; height: auto !important; margin: 0; padding: 6px; overflow: visible; opacity: 1; border: 1px solid var(--maya-v2-border); border-radius: 0 0 8px 8px; background: #fff; box-shadow: 0 10px 22px rgba(15,23,42,.12); transition: none; }
.maya-v2-horizontal-subnav-body > nav > ul.nav > li:hover > ul.nav-sub,
.maya-v2-horizontal-subnav-body > nav > ul.nav > li:focus-within > ul.nav-sub { display: block; }
.maya-v2-horizontal-subnav-body ul.nav-sub > li:hover > ul.nav-sub,
.maya-v2-horizontal-subnav-body ul.nav-sub > li:focus-within > ul.nav-sub { display: block; }
.maya-v2-horizontal-subnav-body > nav > ul.nav > li.maya-v2-menu-selection-closed > ul.nav-sub { display: none !important; }
.maya-v2-horizontal-subnav-body ul.nav-sub li { display: block; }
.maya-v2-horizontal-subnav-body ul.nav-sub a { display: block; padding: 8px 10px; color: #596577; white-space: nowrap; }
.maya-v2-horizontal-subnav-body ul.nav-sub a:hover,
.maya-v2-horizontal-subnav-body ul.nav-sub li.active > a { color: var(--maya-v2-accent); background: #f4f6fa; }
.maya-v2-horizontal-subnav-body ul.nav-sub ul.nav-sub { top: -7px; left: 100%; }

/* Event navigation uses the legacy Bootstrap navbar structure. Normalize it for V2. */
.maya-v2-horizontal-subnav--event { position: relative; z-index: 30; flex: 0 0 var(--maya-v2-subnav); height: var(--maya-v2-subnav); }
.maya-v2-horizontal-subnav--event .maya-v2-horizontal-subnav-body,
.maya-v2-horizontal-subnav-body:has(> .maya-v2-event-subnav-header) { display: flex !important; flex-direction: row !important; align-items: stretch; width: 100%; min-width: 0; }
.maya-v2-horizontal-subnav:has(.maya-v2-event-subnav-header) { flex: 0 0 var(--maya-v2-subnav); height: var(--maya-v2-subnav); }
/* aside.nav.html wraps navigationHtml in nested spans; flatten those wrappers so
   the event selector and submenu become actual flex items of the V2 subnav. */
.maya-v2-horizontal-subnav-body:has(.maya-v2-event-subnav-header) span:has(.maya-v2-event-subnav-header),
.maya-v2-horizontal-subnav-body:has(.maya-v2-event-subnav-collapse) span:has(.maya-v2-event-subnav-collapse) { display: contents !important; }
.maya-v2-horizontal-subnav-body > .maya-v2-event-subnav-header { flex: 0 0 auto !important; display: flex !important; float: none !important; width: auto !important; min-width: 0; align-items: center; height: 100%; margin: 0 !important; }
.maya-v2-horizontal-subnav-body > .maya-v2-event-subnav-header .navbar-brand { float: none !important; display: inline-flex !important; flex: 0 0 auto; align-items: center; width: auto !important; height: 34px; max-width: 260px; margin: 0 8px 0 10px; padding: 0 11px; border-radius: 7px; color: #35445c !important; background: #f5f7fb; font-size: 12px; font-weight: 600; }
.maya-v2-horizontal-subnav-body > .maya-v2-event-subnav-header .navbar-brand:hover { color: var(--maya-v2-accent); background: #f1efff; }
.maya-v2-horizontal-subnav-body > .maya-v2-event-subnav-header .navbar-brand > .fa-caret-down { order: 2; float: none !important; margin: 0 0 0 8px !important; }
.maya-v2-horizontal-subnav-body > .maya-v2-event-subnav-header .visible-xs { display: none !important; }
.maya-v2-horizontal-subnav-body > .maya-v2-event-subnav-collapse { display: flex !important; flex: 1 1 0% !important; width: auto !important; min-width: 0; height: 100% !important; margin: 0 !important; padding: 0; border: 0; box-shadow: none; overflow: visible; }
.maya-v2-event-subnav-collapse > nav { flex: 1 1 auto; min-width: 0; height: 100%; }
.maya-v2-event-subnav-collapse > nav > ul.navbar-nav { display: flex; flex-wrap: nowrap; align-items: stretch; width: 100%; height: 100%; margin: 0; padding: 0 7px; overflow: visible; }
.maya-v2-event-subnav-collapse > nav > ul.navbar-nav::-webkit-scrollbar { display: none; }
.maya-v2-event-subnav-collapse > nav > ul.navbar-nav > li { position: relative; display: flex; flex: 0 0 auto; align-items: stretch; float: none; }
.maya-v2-event-subnav-collapse > nav > ul.navbar-nav > li > a { display: flex; align-items: center; gap: 7px; height: 100%; padding: 0 11px; color: #596577; border-bottom: 2px solid transparent; font-size: inherit !important; white-space: nowrap; }
.maya-v2-event-subnav-collapse > nav > ul.navbar-nav > li > a > .pull-right { order: 2; float: none !important; flex: 0 0 auto; margin-left: 2px; }
.maya-v2-event-subnav-collapse > nav > ul.navbar-nav > li > a:hover,
.maya-v2-event-subnav-collapse > nav > ul.navbar-nav > li.active > a { color: #293852; background: #f4f6fa; border-bottom-color: var(--maya-v2-accent); }
.maya-v2-event-subnav-collapse > nav > ul.navbar-nav > li:hover > ul.nav-sub,
.maya-v2-event-subnav-collapse > nav > ul.navbar-nav > li:focus-within > ul.nav-sub,
.maya-v2-event-subnav-collapse > nav > ul.navbar-nav > li.active > ul.nav-sub { display: block !important; }

@media (max-width: 760px) {
  .maya-v2-rail-nav > a,
  .maya-v2-rail-bottom > a { color: #b7c0d2 !important; opacity: 1 !important; }
  .maya-v2-rail-nav > a i,
  .maya-v2-rail-bottom > a i { color: #b7c0d2 !important; opacity: 1 !important; }
  .maya-v2-rail-nav > a small,
  .maya-v2-rail-bottom > a small { color: #9aa6bb !important; opacity: 1 !important; }
  .maya-v2-rail-nav > a.active { color: #f3f0ff !important; }
  .maya-v2-rail-nav > a.active i { color: #b4a8ff !important; }
  .maya-v2-rail-nav > a.active small { color: #f3f0ff !important; }
  .maya-v2-horizontal-subnav { z-index: 160; }
  .maya-v2-horizontal-subnav-body > nav > ul.nav > li > a { cursor: pointer; }
  .maya-v2-horizontal-subnav-body > nav { width: 100%; min-width: 0; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; touch-action: pan-x; scrollbar-width: thin; }
  .maya-v2-horizontal-subnav-body > nav.mobile-dropdown-active { overflow: visible !important; touch-action: auto; }
  .maya-v2-horizontal-subnav-body > nav.mobile-dropdown-active > ul.nav { position: relative; left: var(--maya-v2-subnav-scroll-offset, 0px); }
  .maya-v2-horizontal-subnav-body > nav > ul.nav { width: max-content; min-width: 100%; flex-wrap: nowrap; padding-left: 0; padding-right: 0; }
  .maya-v2-horizontal-subnav-body > nav > ul.nav > li { flex: 0 0 auto; }
  .maya-v2-horizontal-subnav-body > nav > ul.nav > li::after { position: fixed; top: calc(var(--maya-v2-header) + var(--maya-v2-subnav) - 1px); right: 0; left: 0; z-index: 149; display: none; height: 10px; content: ""; }
  .maya-v2-horizontal-subnav-body > nav > ul.nav > li:hover::after,
  .maya-v2-horizontal-subnav-body > nav > ul.nav > li:focus-within::after { display: block; }
  .maya-v2-horizontal-subnav-body > nav > ul.nav > li > ul.nav-sub { display: none !important; }
  .maya-v2-horizontal-subnav-body > nav > ul.nav > li > ul.nav-sub {
    position: fixed;
    top: calc(var(--maya-v2-header) + var(--maya-v2-subnav) - 1px);
    right: 8px;
    left: 8px;
    z-index: 150;
    display: none;
    width: auto;
    max-width: none;
    max-height: calc(100vh - var(--maya-v2-header) - var(--maya-v2-subnav) - 16px);
    overflow: auto;
    border-radius: 0 0 8px 8px;
    background: #fff;
    box-shadow: 0 10px 22px rgba(15, 23, 42, .14);
  }
  .maya-v2-horizontal-subnav-body > nav > ul.nav > li.mobile-dropdown-open > ul.nav-sub { display: block !important; }
  .maya-v2-horizontal-subnav-body ul.nav-sub ul.nav-sub { position: static; display: none; width: 100%; max-height: none; margin: 2px 0 4px; padding: 4px 0 4px 10px; overflow: visible; border: 0; border-left: 1px solid var(--maya-v2-border); border-radius: 0; box-shadow: none; }
  .maya-v2-horizontal-subnav-body ul.nav-sub li:hover > ul.nav-sub,
  .maya-v2-horizontal-subnav-body ul.nav-sub li:focus-within > ul.nav-sub,
  .maya-v2-horizontal-subnav-body ul.nav-sub li.active > ul.nav-sub,
  .maya-v2-horizontal-subnav-body ul.nav-sub li.mobile-dropdown-open > ul.nav-sub { display: block; }
  .maya-v2-horizontal-subnav-body > .maya-v2-event-subnav-header { flex: 0 0 auto; }
  .maya-v2-horizontal-subnav-body > .maya-v2-event-subnav-header .navbar-brand { max-width: min(220px, 42vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .maya-v2-horizontal-subnav-body > .maya-v2-event-subnav-collapse { display: flex !important; }
  .maya-v2-event-subnav-collapse > nav > ul.navbar-nav { padding: 0 4px; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
  .maya-v2-event-subnav-collapse > nav > ul.navbar-nav > li > a { padding: 0 9px; }
  .maya-v2-event-subnav-collapse > nav > ul.navbar-nav > li > ul.nav-sub { position: fixed; top: calc(var(--maya-v2-header) + var(--maya-v2-subnav) - 1px); right: 8px; left: 8px; z-index: 140; width: auto; max-width: none; max-height: calc(100vh - var(--maya-v2-header) - var(--maya-v2-subnav) - 75px); overflow: auto; border-radius: 0 0 8px 8px; }
  .maya-v2-rail { overflow: visible; }
  .maya-v2-rail-nav { flex: 1 1 auto; min-width: 0; display: flex; justify-content: flex-start; gap: 2px; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
  .maya-v2-rail-nav::-webkit-scrollbar { display: none; }
  .maya-v2-rail-nav a { min-height: 48px; flex: 0 0 66px; }
  .maya-v2-rail-bottom { flex: 0 0 58px; width: 58px; height: 58px; display: flex; align-items: center; justify-content: center; margin-top: 0; background: var(--maya-v2-rail-bg); }
  .maya-v2-more-menu { top: auto; right: 8px; bottom: 59px; left: auto; width: 250px; max-height: calc(100vh - var(--maya-v2-header) - 67px); }
  .maya-v2-more-pointer { display: none !important; }
}
