/* IIVR Keyboard Accessibility — menu layout + submenu visibility */

/* Whenever WE mark a parent open, its submenu must be visible at ANY width.
   (The desktop rules below are gated to min-width:1025px, so without this the
   submenu stayed hidden at high zoom / narrow widths where there is no real
   burger — making the items unreachable.) */
.elementor-nav-menu li.menu-item-has-children.iivr-submenu-open > .sub-menu,
.elementor-nav-menu--main li.iivr-submenu-open > .sub-menu,
.elementor-nav-menu--dropdown li.iivr-submenu-open > .sub-menu {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

@media (min-width: 1025px) {
  .elementor-widget-nav-menu .elementor-widget-container {
    position: relative !important;
    overflow: visible !important;
    height: auto !important;
    min-height: 0 !important;
  }

  .elementor-nav-menu--main.elementor-nav-menu__container {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .elementor-nav-menu--main > .elementor-nav-menu {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
    justify-content: center !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .elementor-nav-menu--main > .elementor-nav-menu > li {
    flex: 0 1 auto !important;
    position: relative !important;
    list-style: none !important;
  }

  .elementor-nav-menu--main .sub-menu {
    position: absolute !important;
    z-index: 9999 !important;
    list-style: none !important;
    background: #ffffff !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18) !important;
    border-radius: 4px !important;
    padding: 6px 0 !important;
    min-width: 220px !important;
  }

  .elementor-nav-menu--main .sub-menu a,
  .elementor-nav-menu--main .sub-menu a.elementor-sub-item {
    color: #0a3d32 !important;
    background: transparent !important;
  }

  .elementor-nav-menu--main .sub-menu a:hover,
  .elementor-nav-menu--main .sub-menu a:focus-visible,
  .elementor-nav-menu--main .sub-menu a.elementor-sub-item:hover,
  .elementor-nav-menu--main .sub-menu a.elementor-sub-item:focus-visible {
    background: #e8f5f2 !important;
    color: #063d34 !important;
  }

  /* Mouse: hover or Enter-open */
  html:not(.iivr-kb-nav) .elementor-nav-menu--main > .elementor-nav-menu li.menu-item-has-children:not(:hover):not(.iivr-submenu-open) > .sub-menu,
  html:not(.iivr-kb-nav) .elementor-nav-menu--main > .elementor-nav-menu li.menu-item-has-children:not(:hover):not(.iivr-submenu-open):focus-within > .sub-menu {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    max-height: 0 !important;
    overflow: hidden !important;
  }

  html:not(.iivr-kb-nav) .elementor-nav-menu--main > .elementor-nav-menu li.menu-item-has-children:hover > .sub-menu,
  html:not(.iivr-kb-nav) .elementor-nav-menu--main > .elementor-nav-menu li.menu-item-has-children.iivr-submenu-open > .sub-menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  /* Keyboard: only .iivr-submenu-open */
  html.iivr-kb-nav .elementor-nav-menu--main > .elementor-nav-menu li.menu-item-has-children:not(.iivr-submenu-open) > .sub-menu,
  html.iivr-kb-nav .elementor-nav-menu--main > .elementor-nav-menu li.menu-item-has-children:not(.iivr-submenu-open):focus-within > .sub-menu {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    max-height: 0 !important;
    overflow: hidden !important;
  }

  html.iivr-kb-nav .elementor-nav-menu--main > .elementor-nav-menu li.menu-item-has-children.iivr-submenu-open > .sub-menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
}

/* ---------------------------------------------------------------------
   Mobile / hamburger menu (small screens AND high browser zoom e.g. 200%).
   When the burger is open, every menu item (incl. sub-menus) must be
   visible and keyboard-reachable so all links work. Also give the toggle
   and links a clearly visible keyboard focus ring.
--------------------------------------------------------------------- */
@media (max-width: 1024px) {
  /* When OUR open state is on, make sure the dropdown is shown (JS also forces
     this inline). We do NOT force-hide by default, so Elementor's own burger
     keeps working as a fallback if our toggle detection ever misses. */
  .iivr-burger-open .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    display: block !important;
  }

  .elementor-menu-toggle:focus-visible,
  .elementor-menu-toggle:focus {
    outline: 3px solid #0b5fff !important;
    outline-offset: 2px !important;
  }

  /* Open dropdown: expand all sub-menus so every link is tabbable. */
  .iivr-burger-open .elementor-nav-menu--dropdown .sub-menu,
  .elementor-nav-menu--dropdown .elementor-nav-menu .sub-menu,
  .elementor-nav-menu--dropdown-tablet .elementor-nav-menu .sub-menu,
  .elementor-nav-menu--dropdown-mobile .elementor-nav-menu .sub-menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    max-height: none !important;
    overflow: visible !important;
    position: static !important;
  }

  .elementor-nav-menu--dropdown a:focus-visible,
  .elementor-nav-menu--dropdown a:focus,
  .elementor-nav-menu--dropdown .elementor-item:focus-visible,
  .elementor-nav-menu--dropdown .elementor-sub-item:focus-visible {
    outline: 3px solid #0b5fff !important;
    outline-offset: -3px !important;
  }
}
