/**
 * Modern Navigation Styles
 * Beautiful, accessible, and animated navigation
 */

/* ==========================================================================
   Z-index Fix for WordPress Themes
   ========================================================================== */

/* Force high z-index on common containers that might block dropdowns */
.off-canvas-wrapper,
.off-canvas-content,
#page,
.site-content,
.entry-content,
main {
  position: relative;
  z-index: 1 !important;
}

/* Ensure header is always on top */
header,
.allegiant-header,
#allegiant-header {
  position: relative;
  z-index: 99999 !important;
}

/* ==========================================================================
   Variables and Reset
   ========================================================================== */

:root {
  --nav-primary: #01589b;
  --nav-text: #333333;
  --nav-bg: #ffffff;
  --nav-dropdown-bg: #ffffff;
  --nav-border: rgba(0, 0, 0, 0.1);
  --nav-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* ==========================================================================
   Skip Link (Accessibility)
   ========================================================================== */

.skip-link {
  position: absolute;
  top: -60px;
  left: 0;
  background: var(--nav-primary);
  color: white;
  padding: 12px 16px;
  text-decoration: none;
  z-index: 100000;
  border-radius: 0 0 8px 0;
  font-weight: 600;
  font-size: 14px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.skip-link:focus {
  top: 0;
  outline: 3px solid rgba(255, 255, 255, 0.8);
  outline-offset: 2px;
}

/* ==========================================================================
   Base Navigation Structure
   ========================================================================== */

#allegiant-header {
  background: var(--nav-bg);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
  position: relative;
  z-index: 9999 !important;
  transition: var(--nav-transition);
}

/* Force navigation containers to have high z-index */
#allegiant-header nav {
  position: relative;
  z-index: 9999 !important;
}

#allegiant-header .main-navigation {
  position: relative;
  z-index: 9999 !important;
}

.nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  position: static !important; /* Prevent clipping */
}

.nav-item {
  position: relative;
  margin: 0;
  padding: 0;
}

/* Ensure no overflow hidden on parent containers */
.main-navigation {
  overflow: visible !important;
}

nav.desktop,
nav.tablet,
nav.mobile-only {
  overflow: visible !important;
}

/* ==========================================================================
   Navigation Links
   ========================================================================== */

.nav-link {
  display: inline-flex;
  align-items: center;
  padding: 16px 20px;
  color: var(--nav-primary);
  text-decoration: none;
  font-weight: 500;
  font-size: 15px;
  white-space: nowrap;
}

.nav-link:hover,
.nav-link:focus {
  color: var(--nav-primary);
  text-decoration: underline;
  outline: none;
}

/* Simple dropdown arrow indicator */
.nav-link.has-dropdown::after {
  content: "▼";
  font-size: 10px;
  margin-left: 8px;
  color: var(--nav-primary);
}

.nav-item.dropdown-open > .nav-link.has-dropdown::after {
  content: "▲";
}

/* ==========================================================================
   Dropdown Menus
   ========================================================================== */

.dropdown,
.sub-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  min-width: 280px;
  background: var(--nav-dropdown-bg);
  border-radius: var(--nav-radius);
  box-shadow: var(--nav-shadow);
  padding: 8px 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: var(--nav-transition);
  z-index: 99999 !important;

  /* Glass morphism effect */
  backdrop-filter: blur(10px);
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid var(--nav-border);
}

.dropdown[data-state="open"],
.sub-menu[data-state="open"] {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Animation classes for JavaScript control */
.dropdown.is-open,
.sub-menu.is-open {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) !important;
}

.nested-dropdown.is-open {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateX(0) !important;
}

/* Simple dropdown items */
.dropdown-item {
  list-style: none;
  margin: 0;
  padding: 0;
}

.dropdown-link,
.nested-dropdown-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  color: var(--nav-text);
  text-decoration: none;
  font-size: 14px;
  font-weight: 400;
  border-bottom: 1px solid var(--nav-border);
}

.dropdown-link:hover,
.dropdown-link:focus,
.nested-dropdown-link:hover,
.nested-dropdown-link:focus {
  background: #f5f5f5;
  color: var(--nav-text);
}

/* Simple accordion arrow indicator */
.dropdown-link.has-nested::after,
.nested-dropdown-link.has-nested::after {
  content: "▶";
  font-size: 10px;
  color: var(--nav-primary);
}

.dropdown-item.submenu-open > .dropdown-link.has-nested::after,
.nested-dropdown-item.submenu-open > .nested-dropdown-link.has-nested::after {
  content: "▼";
}

/* Simple main dropdowns (override theme styles) */
#allegiant-header .dropdown,
#allegiant-header .sub-menu,
.nav-item .dropdown,
.nav-item .sub-menu {
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  min-width: 280px !important;
  max-width: none !important;
  width: auto !important;
  max-height: none !important;
  height: auto !important;
  background: var(--nav-dropdown-bg) !important;
  box-shadow: var(--nav-shadow) !important;
  padding: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  z-index: 99999 !important;
  display: block !important;
  overflow: visible !important;
  pointer-events: auto !important;
  border: 1px solid var(--nav-border) !important;
}

/* Simple accordion nested dropdowns inside main dropdowns */
#allegiant-header .dropdown .nested-dropdown,
#allegiant-header .dropdown .sub-menu .sub-menu,
#allegiant-header .sub-menu .nested-dropdown,
#allegiant-header .sub-menu .sub-menu .sub-menu,
.dropdown .nested-dropdown,
.dropdown .sub-menu .sub-menu,
.sub-menu .nested-dropdown,
.sub-menu .sub-menu .sub-menu {
  position: static !important;
  top: auto !important;
  left: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  background: #f9f9f9 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  height: 0 !important;
  max-height: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  box-shadow: none !important;
  border: none !important;
  pointer-events: none !important;
}

/* Main dropdown open states (override theme styles) */
#allegiant-header .dropdown[data-state="open"],
#allegiant-header .sub-menu[data-state="open"],
.nav-item .dropdown[data-state="open"],
.nav-item .sub-menu[data-state="open"],
.dropdown.is-open,
.sub-menu.is-open {
  opacity: 1 !important;
  visibility: visible !important;
  max-height: 1000px !important;
  height: auto !important;
  overflow: visible !important;
  pointer-events: auto !important;
  display: block !important;
}

/* Nested accordion open states */
#allegiant-header .dropdown .nested-dropdown[data-state="open"],
#allegiant-header .dropdown .sub-menu .sub-menu[data-state="open"],
#allegiant-header .sub-menu .nested-dropdown[data-state="open"],
#allegiant-header .sub-menu .sub-menu .sub-menu[data-state="open"],
.dropdown .nested-dropdown[data-state="open"],
.dropdown .sub-menu .sub-menu[data-state="open"],
.sub-menu .nested-dropdown[data-state="open"],
.sub-menu .sub-menu .sub-menu[data-state="open"] {
  opacity: 1 !important;
  visibility: visible !important;
  max-height: 1000px !important;
  pointer-events: auto !important;
}

/* Simple nested dropdown items */
.nested-dropdown .nested-dropdown-link,
.nested-dropdown .dropdown-link {
  padding: 8px 20px;
  margin: 0;
  font-size: 13px;
  color: var(--nav-text);
  background: transparent;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.nested-dropdown .nested-dropdown-link:last-child,
.nested-dropdown .dropdown-link:last-child {
  border-bottom: none;
}

.nested-dropdown .nested-dropdown-link:hover,
.nested-dropdown .dropdown-link:hover {
  background: #f0f0f0;
}

/* ==========================================================================
   Hamburger Menu
   ========================================================================== */

.hamburger-container {
  position: relative;
  display: none;
}

@media (max-width: 994px) {
  .hamburger-container {
    display: block;
  }
}

.hamburger-container label {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  cursor: pointer;
  border-radius: var(--nav-radius);
  transition: var(--nav-transition);
  position: relative;
  overflow: hidden;
}

.hamburger-container label:hover,
.hamburger-container label:focus {
  background: var(--nav-primary-dark);
  transform: scale(1.05);
}

/* Modern hamburger icon */
.hamburger-icon {
  width: 24px;
  height: 16px;
  position: relative;
  display: block;
}

.hamburger-icon span {
  display: block;
  position: absolute;
  height: 2px;
  width: 100%;
  background: var(--nav-primary);
  opacity: 1;
  left: 0;
  transform: rotate(0deg);
  transition: var(--nav-transition);
}

.hamburger-icon span:nth-child(1) {
  top: 0;
}

.hamburger-icon span:nth-child(2) {
  top: 7px;
}

.hamburger-icon span:nth-child(3) {
  top: 14px;
}

/* Animate to X when open */
.menu-open .hamburger-icon span:nth-child(1) {
  top: 7px;
  transform: rotate(45deg);
}

.menu-open .hamburger-icon span:nth-child(2) {
  opacity: 0;
  left: -60px;
}

.menu-open .hamburger-icon span:nth-child(3) {
  top: 7px;
  transform: rotate(-45deg);
}

/* Hide checkbox */
.hamburger-container input[type="checkbox"] {
  display: none;
}

/* ==========================================================================
   Dialog-based Mobile Menu - Override any existing styles
   ========================================================================== */

/* Force override any existing mobile menu container styles */
body .allegiant-menu-container-mobile,
#allegiant-header .allegiant-menu-container-mobile,
.allegiant-menu-container-mobile {
  background: transparent !important;
  position: static !important;
  top: auto !important;
  right: auto !important;
  left: auto !important;
  z-index: auto !important;
  width: auto !important;
  height: auto !important;
  min-width: auto !important;
  max-width: none !important;
  display: none !important; /* Hidden when not in dialog */
}

/* Override hamburger container SVG background image */
body .hamburger-container,
#allegiant-header .hamburger-container,
.hamburger-container {
  background-image: none !important;
  background: transparent !important;
}

/* Dialog element styling - High specificity to override theme styles */
body dialog.mobile-menu-dialog,
dialog.mobile-menu-dialog {
  position: fixed !important;
  top: 20px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 90% !important;
  max-width: 360px !important;
  height: fit-content !important;
  max-height: calc(100vh - 40px) !important;
  min-height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  border-radius: 16px !important;
  background: var(--nav-bg) !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(0, 0, 0, 0.04) !important;
  overflow: visible !important;
  z-index: 999999 !important;
  opacity: 0;
  transition: opacity 0.3s ease, transform 0.3s ease !important;
  display: none;
}

/* Dialog open animation */
body dialog.mobile-menu-dialog[open],
dialog.mobile-menu-dialog[open] {
  opacity: 1 !important;
  display: block !important;
  animation: dialogSlideIn 0.3s ease forwards !important;
}

@keyframes dialogSlideIn {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}

/* Dialog backdrop */
body dialog.mobile-menu-dialog::backdrop,
dialog.mobile-menu-dialog::backdrop {
  background: rgba(0, 0, 0, 0.5) !important;
  backdrop-filter: blur(4px) !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 999998 !important;
}

/* Dialog header with close button */
body dialog.mobile-menu-dialog .dialog-header,
dialog.mobile-menu-dialog .dialog-header,
.dialog-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 20px 24px 16px !important;
  position: relative !important;
  margin: 0 !important;
  border: none !important;
  box-shadow: none !important;
}

body dialog.mobile-menu-dialog .dialog-header h2,
dialog.mobile-menu-dialog .dialog-header h2,
.dialog-header h2 {
  margin: 0 !important;
  padding: 0 !important;
  font-size: 20px !important;
  font-weight: 600 !important;
  color: var(--nav-primary) !important;
  letter-spacing: -0.5px !important;
  line-height: 1.2 !important;
}

/* Close button */
.dialog-close {
  background: rgba(0, 0, 0, 0.05);
  border: none;
  padding: 0;
  cursor: pointer;
  color: var(--nav-text);
  font-size: 20px;
  line-height: 1;
  border-radius: 50%;
  transition: all 0.2s ease;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dialog-close:hover {
  background: rgba(0, 0, 0, 0.1);
  transform: rotate(90deg);
}

.dialog-close:focus {
  outline: none;
}

.dialog-close:focus-visible {
  outline: 2px solid var(--nav-primary);
  outline-offset: 2px;
}

/* Dialog content */
.dialog-content {
  padding: 8px 0 20px;
  height: fit-content;
  max-height: calc(100vh - 120px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* Subtle scrollbar styling */
.dialog-content::-webkit-scrollbar {
  width: 6px;
}

.dialog-content::-webkit-scrollbar-track {
  background: transparent;
}

.dialog-content::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.2);
  border-radius: 3px;
}

/* Mobile container inside dialog - override theme styles */
dialog .allegiant-menu-container-mobile,
.dialog-content .allegiant-menu-container-mobile {
  display: block !important;
  background: transparent !important;
  padding: 0 !important;
  position: static !important;
  top: auto !important;
  right: auto !important;
  left: auto !important;
  width: 100% !important;
  height: auto !important;
  z-index: auto !important;
  margin: 0 !important;
}

/* Stack menu containers vertically in dialog */
dialog .allegiant-menu-container-mobile .allegiant-menu-container,
.dialog-content .allegiant-menu-container-mobile .allegiant-menu-container {
  display: block !important;
  width: 100% !important;
  float: none !important;
  margin: 0 0 20px 0 !important;
  padding: 0 0 16px 0 !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
}

/* Remove border from last menu container */
dialog .allegiant-menu-container-mobile .allegiant-menu-container:last-child,
.dialog-content
  .allegiant-menu-container-mobile
  .allegiant-menu-container:last-child {
  border-bottom: none !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Stack the main mobile menu lists vertically */
dialog .allegiant-menu-container-mobile > ul,
.dialog-content .allegiant-menu-container-mobile > ul {
  display: block !important;
  width: 100% !important;
  margin: 0 0 20px 0 !important;
  padding: 0 0 16px 0 !important;
  float: none !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
}

/* Remove border from last top-level menu */
dialog .allegiant-menu-container-mobile > ul:last-child,
.dialog-content .allegiant-menu-container-mobile > ul:last-child {
  border-bottom: none !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Simple mobile menu items */
.allegiant-menu-container-mobile ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

.allegiant-menu-container-mobile li {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  display: block !important;
}

.allegiant-menu-container-mobile > ul > li:not(:last-child) {
  border-bottom: 1px solid rgba(0, 0, 0, 0.06) !important;
}

.allegiant-menu-container-mobile a {
  display: block !important;
  padding: 16px 20px !important;
  color: var(--nav-text) !important;
  text-decoration: none !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  border-radius: 0 !important;
  transition: background 0.2s ease !important;
  width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  border: none !important;
}

.allegiant-menu-container-mobile a:hover,
.allegiant-menu-container-mobile a:focus {
  background: rgba(1, 88, 155, 0.08);
  color: var(--nav-primary);
}

/* Force mobile sub-menus to be inline accordions - override all theme styles */
.allegiant-menu-container-mobile .dropdown,
.allegiant-menu-container-mobile .sub-menu,
.allegiant-menu-container-mobile .nested-dropdown {
  /* Force static positioning - no popups */
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;

  /* Force full width inline display */
  width: 100% !important;
  max-width: 100% !important;
  min-width: auto !important;

  /* Collapsed by default with smooth transition */
  max-height: 0 !important;
  overflow: hidden !important;
  transition: max-height 0.3s ease-out !important;

  /* Inline accordion styling */
  background: #f9f9f9 !important;
  border-left: 3px solid var(--nav-primary) !important;
  padding-left: 20px !important;
  margin: 0 !important;

  /* Remove any popup styling */
  box-shadow: none !important;
  border-radius: 0 !important;
  z-index: auto !important;
  transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.allegiant-menu-container-mobile .nested-dropdown {
  background: #f0f0f0 !important;
  padding-left: 40px !important;
  border-left: 3px solid rgba(1, 88, 155, 0.5) !important;
}

/* Show when open - force inline accordion display */
.allegiant-menu-container-mobile .dropdown[data-state="open"],
.allegiant-menu-container-mobile .sub-menu[data-state="open"],
.allegiant-menu-container-mobile .nested-dropdown[data-state="open"] {
  /* Expand accordion with smooth animation */
  max-height: 1000px !important;
  overflow: visible !important;

  /* Ensure it stays inline, no positioning */
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;

  /* Full width inline */
  width: 100% !important;
  max-width: 100% !important;

  /* Visible inline accordion */
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  z-index: auto !important;
}

.allegiant-menu-container-mobile .dropdown a,
.allegiant-menu-container-mobile .sub-menu a,
.allegiant-menu-container-mobile .nested-dropdown a {
  font-size: 14px;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

/* Mobile accordion arrows (same as desktop) */
.allegiant-menu-container-mobile a.has-dropdown::after,
.allegiant-menu-container-mobile a.has-nested::after {
  content: "▶";
  float: right;
  font-size: 10px;
  color: var(--nav-primary);
}

.allegiant-menu-container-mobile .submenu-open > a.has-dropdown::after,
.allegiant-menu-container-mobile .submenu-open > a.has-nested::after {
  content: "▼";
}

/* ==========================================================================
   Screen Reader Only
   ========================================================================== */

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ==========================================================================
   Responsive Adjustments
   ========================================================================== */

/* Tablet */
@media (min-width: 768px) and (max-width: 994px) {
  nav.tablet {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
  }

  nav.desktop,
  nav.mobile-only {
    display: none !important;
  }

  .nav-link {
    padding: 12px 16px;
    font-size: 14px;
  }
}

/* Mobile */
@media (max-width: 767px) {
  nav.mobile-only {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
  }

  nav.desktop,
  nav.tablet {
    display: none !important;
  }
}

/* Desktop */
@media (min-width: 995px) {
  nav.desktop {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 20px;
  }

  nav.tablet,
  nav.mobile-only {
    display: none !important;
  }
}

/* ==========================================================================
   Animations
   ========================================================================== */

/* No animations - simple show/hide */

/* ==========================================================================
   Dark Mode Support (Optional)
   ========================================================================== */

@media (prefers-color-scheme: dark) {
  :root {
    --nav-bg: #1a1a1a;
    --nav-dropdown-bg: #2a2a2a;
    --nav-text: #e0e0e0;
    --nav-border: rgba(255, 255, 255, 0.1);
  }
}

/* ==========================================================================
   Details/Summary Semantic Navigation (Mobile)
   ========================================================================== */

/* Style details elements as dropdowns in mobile menu */
.allegiant-menu-container-mobile details {
  position: static !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  display: block !important;
}

.allegiant-menu-container-mobile summary {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 16px 20px !important;
  color: var(--nav-text) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  list-style: none !important;
  background: transparent !important;
  border-radius: 0 !important;
  position: relative !important;
  user-select: none !important;
  -webkit-user-select: none !important;
  transition: background 0.2s ease !important;
  width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  border: none !important;
  text-decoration: none !important;
  text-align: center !important;
}

/* Remove default marker */
.allegiant-menu-container-mobile summary::-webkit-details-marker {
  display: none !important;
}

.allegiant-menu-container-mobile summary::marker {
  display: none !important;
}

/* Custom arrow indicator */
.allegiant-menu-container-mobile summary::after {
  content: "▶" !important;
  margin-left: 8px !important;
  font-size: 10px !important;
  color: var(--nav-primary) !important;
  transition: transform 0.3s ease !important;
  flex-shrink: 0 !important;
}

/* Rotate arrow when open */
.allegiant-menu-container-mobile details[open] > summary::after {
  transform: rotate(90deg) !important;
}

/* Style the dropdown content */
.allegiant-menu-container-mobile details .detail-content {
  background: rgba(0, 0, 0, 0.02) !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Nested details elements */
.allegiant-menu-container-mobile details details {
  margin: 0 !important;
}

.allegiant-menu-container-mobile details details summary {
  padding: 14px 40px !important;
  font-size: 14px !important;
  color: var(--nav-text) !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}

.allegiant-menu-container-mobile details details .detail-content {
  background: rgba(0, 0, 0, 0.03) !important;
  margin: 0 !important;
}

/* Links inside details */
.allegiant-menu-container-mobile details a {
  display: block !important;
  padding: 14px 40px !important;
  margin: 0 !important;
  color: var(--nav-text) !important;
  text-decoration: none !important;
  font-size: 14px !important;
  border-radius: 0 !important;
  transition: background 0.2s ease !important;
  width: 100% !important;
  box-sizing: border-box !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.04) !important;
}

.allegiant-menu-container-mobile details details a {
  padding-left: 60px !important;
  font-size: 13px !important;
}

/* Remove border from last dropdown item */
.allegiant-menu-container-mobile details a:last-child {
  border-bottom: none !important;
}

.allegiant-menu-container-mobile details a:hover,
.allegiant-menu-container-mobile details a:focus {
  background: rgba(1, 88, 155, 0.1) !important;
}

/* Summary hover/focus states */
.allegiant-menu-container-mobile summary:hover,
.allegiant-menu-container-mobile summary:focus {
  background: rgba(1, 88, 155, 0.08) !important;
  outline: none !important;
}

.allegiant-menu-container-mobile summary:focus-visible {
  outline: 2px solid var(--nav-primary) !important;
  outline-offset: -2px !important;
}

/* Enhanced keyboard navigation focus styles */
.allegiant-menu-container-mobile a:focus-visible,
.allegiant-menu-container-mobile summary:focus-visible {
  outline: 2px solid var(--nav-primary) !important;
  outline-offset: -2px !important;
  background: rgba(1, 88, 155, 0.1) !important;
}

/* Dialog keyboard focus styles */
dialog.mobile-menu-dialog:focus {
  outline: none !important;
}

/* Ensure all interactive elements are keyboard accessible */
.allegiant-menu-container-mobile summary,
.allegiant-menu-container-mobile a {
  -webkit-tap-highlight-color: rgba(1, 88, 155, 0.1) !important;
}

/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {
  .hamburger-container,
  .dropdown,
  .sub-menu,
  .nested-dropdown {
    display: none !important;
  }
}
