/*
 * Accessible responsive navigation for the native Divi 5 Theme Builder header.
 * Layout and content stay editable in Divi; this file supplies behavior that
 * Divi 5.9.0 does not expose through native mobile-menu controls.
 */

.jmre-header-nav .jmre-primary-menu .et_pb_menu__wrap {
  justify-content: center;
}

@media (min-width: 1101px) {
  .jmre-header-nav .jmre-primary-menu .et_pb_menu__menu {
    display: flex !important;
  }

  .jmre-header-nav .jmre-primary-menu .et_mobile_nav_menu {
    display: none !important;
  }
}

@media (max-width: 1100px) {
  .jmre-header-topbar {
    display: none !important;
  }

  .jmre-header-brand {
    position: relative;
    z-index: 1001;
  }

  .jmre-header-brand .et_pb_row {
    display: block;
    width: 100%;
    max-width: none;
    padding: 10px 86px 10px 16px;
  }

  .jmre-header-brand .et_pb_column:first-child {
    display: block;
    float: none;
    width: 100%;
    margin: 0;
  }

  .jmre-header-brand .et_pb_column:nth-child(2),
  .jmre-header-brand .et_pb_column:nth-child(3) {
    display: none !important;
  }

  .jmre-header-brand .et_pb_column:first-child .et_pb_image {
    width: min(100%, 260px);
    max-width: 260px;
    margin: 0;
  }

  .jmre-header-nav {
    position: absolute;
    top: 38px;
    right: 10px;
    z-index: 1002;
    width: 68px;
    padding: 0 !important;
    background: transparent !important;
  }

  .jmre-header-nav .jmre-primary-menu {
    width: 68px;
    padding: 0 !important;
    background: transparent !important;
  }

  .jmre-header-nav .jmre-primary-menu .et_pb_menu__menu {
    display: none !important;
  }

  .jmre-header-nav .jmre-primary-menu .et_mobile_nav_menu {
    display: block !important;
    margin: 0;
  }

  .jmre-header-nav .jmre-primary-menu .mobile_menu_bar {
    display: flex;
    width: 68px;
    height: 68px;
    align-items: center;
    justify-content: center;
    padding: 0;
  }

  .jmre-header-nav .jmre-primary-menu .mobile_menu_bar::before {
    color: #e02b20 !important;
    font-size: 44px !important;
    line-height: 1 !important;
  }

  .jmre-header-nav .jmre-primary-menu .et_mobile_menu {
    position: fixed;
    top: var(--jmre-mobile-menu-top, 72px);
    right: 12px;
    left: 12px;
    width: auto !important;
    max-width: none;
    max-height: calc(100dvh - var(--jmre-mobile-menu-top, 72px) - 12px);
    margin: 0;
    padding: 8px 0 18px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box;
    border: 1px solid #eadfda;
    border-top: 3px solid #b3261e;
    border-radius: 0 0 8px 8px;
    color: #292929;
    background: #f8f6f3 !important;
    box-shadow: 0 12px 30px rgb(40 32 28 / 18%);
  }

  /* Theme Builder dynamic styles load after the child-theme stylesheet and
     otherwise restore the module's former solid-red mobile background. */
  html body .et-l--header .jmre-header-nav .jmre-primary-menu ul.et_mobile_menu {
    max-height: calc(100dvh - var(--jmre-mobile-menu-top, 72px) - 12px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    border-color: #eadfda !important;
    border-top-color: #b3261e !important;
    background-color: #f8f6f3 !important;
  }

  html body .et-l--header .jmre-header-nav .jmre-primary-menu ul.et_mobile_menu > li {
    background-color: #f8f6f3 !important;
  }

  html body .et-l--header .jmre-header-nav .jmre-primary-menu ul.sub-menu > li {
    background-color: #fff !important;
  }

  .jmre-header-nav .jmre-primary-menu .et_mobile_menu li {
    position: relative;
    box-sizing: border-box;
  }

  .jmre-header-nav .jmre-primary-menu .et_mobile_menu li > a {
    padding: 12px 54px 12px 18px;
    border-bottom: 1px solid #e8dfda !important;
    color: #292929 !important;
    background: transparent !important;
    line-height: 1.35;
  }

  .jmre-header-nav .jmre-primary-menu .et_mobile_menu li > a:hover,
  .jmre-header-nav .jmre-primary-menu .et_mobile_menu li > a:focus-visible,
  .jmre-header-nav .jmre-primary-menu .et_mobile_menu li.current-menu-item > a,
  .jmre-header-nav .jmre-primary-menu .et_mobile_menu li.current-menu-ancestor > a {
    color: #8f211b !important;
    background: #f5e8e5 !important;
    opacity: 1;
  }

  .jmre-header-nav .jmre-primary-menu .et_mobile_menu li li > a {
    padding-left: 34px;
  }

  .jmre-header-nav .jmre-primary-menu .et_mobile_menu li li li > a {
    padding-left: 50px;
  }

  .jmre-header-nav .jmre-primary-menu .menu-item-has-children > a::after {
    content: none !important;
  }

  .jmre-header-nav .jmre-primary-menu .et_mobile_menu ul.sub-menu {
    display: none !important;
    visibility: hidden !important;
    padding-left: 0;
    background: #fff !important;
  }

  .jmre-header-nav .jmre-primary-menu .et_mobile_menu .jmre-submenu-open > ul.sub-menu {
    display: block !important;
    visibility: visible !important;
  }

  .jmre-submenu-toggle {
    position: absolute;
    top: 3px;
    right: 4px;
    z-index: 2;
    display: inline-flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 4px;
    color: #8f211b;
    background: #f3e4e1;
    cursor: pointer;
  }

  .jmre-submenu-toggle::before {
    content: "+";
    font-size: 24px;
    line-height: 1;
  }

  .jmre-submenu-toggle[aria-expanded="true"]::before {
    content: "−";
  }

  .jmre-submenu-toggle:focus-visible {
    outline: 3px solid #b3261e;
    outline-offset: -3px;
  }

  body.jmre-mobile-menu-open {
    overflow: hidden;
  }
}

@media (max-width: 420px) {
  .jmre-header-nav {
    top: 30px;
    right: 8px;
    width: 64px;
  }

  .jmre-header-nav .jmre-primary-menu,
  .jmre-header-nav .jmre-primary-menu .mobile_menu_bar {
    width: 64px;
  }

  .jmre-header-nav .jmre-primary-menu .mobile_menu_bar {
    height: 64px;
  }

  .jmre-header-nav .jmre-primary-menu .mobile_menu_bar::before {
    font-size: 42px !important;
  }

  .jmre-header-brand .et_pb_column:first-child .et_pb_image {
    max-width: 220px;
  }
}
