header.et-l--header {
  background-color: var(--blue);
}

#main-header-section {
  .et_pb_menu__logo img,
  .et_pb_menu_inner_container {
    transition: max-height 0.3s ease-in-out;
    max-height: 140px;
  }

  & > .et_pb_row {
    padding: 20px 0 !important;
    transition: padding 0.3s ease-in-out;
  }

  &.et_pb_sticky {
    .et_pb_menu__logo img,
    .et_pb_menu_inner_container {
      max-height: 80px;
    }

    & > .et_pb_row {
      padding: 10px 0 !important;
    }

    .et_pb_menu__menu .menu-item:not(.menu-item-type-gs_sim) {
      & > a {
        padding-top: 15px;
        padding-bottom: 15px;
      }
    }
  }

  .et_pb_menu__wrap,
  .et_pb_menu__menu,
  .et-menu-nav {
    width: 100%;
  }
}

.et_mobile_menu {
  overflow: auto !important;
  max-height: 80vh;
  max-width: 550px;
  margin: 0px auto;
  right: 0px;
  border-radius: var(--radius);

  li.menu-item {
    a {
      padding: 10px 0;
      color: var(--white);
    }
  }

  /* hide all sub-menus by default */
  .menu-item-has-children {
    > ul.sub-menu {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.3s ease;
    }
    &.open {
      > ul.sub-menu {
        max-height: 600px;
      }
    }
    & > a {
      position: relative;
      padding-right: 2em;
      cursor: pointer;

      .submenu-toggle {
        position: absolute;
        top: 50%;
        right: 0.5em;
        transform: translateY(-50%);
        background: none;
        border: none;
        font-size: 1em;
        color: var(--white);
        cursor: pointer;
        transition: transform 0.3s ease;
      }

      &.open > .submenu-toggle,
      .open > & .submenu-toggle {
        transform: translateY(-50%) rotate(90deg);
      }
    }
  }

  /* Add labels for search and cart in mobile menu */
  .menu-search-link,
  .menu-cart-link {
    padding: 6.5px 0 !important;

    a {
      position: relative;
      display: flex;
      align-items: center;
      padding-right: 0 !important;
      padding: 0 !important;

      &::after {
        content: attr(data-label);
        position: absolute;
        left: 2.5rem;
        top: 50%;
        transform: translateY(-50%);
        font-size: 0.9em;
        color: var(--white);
      }
    }
  }

  .menu-search-link a {
    &::after {
      content: "Search";
    }

    @media (max-width: 980px) {
      & {
        margin-left: -2px;

        img {
          background-color: transparent !important;
        }
      }
    }
  }

  .menu-cart-link a::after {
    content: "Cart";
  }

  /* Mobile-specific account and donate button styles */
  .menu-account-link,
  .menu-donate-link {
    margin-top: 1.5rem;

    a {
      height: 50px !important;
      max-width: 200px;
      margin: 0;
      display: flex !important;
      align-items: center !important;
      justify-content: center;
      border: 2px solid white !important;
    }
  }

  .menu-donate-link {
    margin-top: 1rem;

    a {
      color: var(--primary-color) !important;
    }
  }
}

/* Add overlay when mobile menu is open */
.et_mobile_menu_open {
  position: relative;

  &::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 999;
  }

  .et_mobile_menu {
    z-index: 1000;
  }
}

@media (max-width: 980px) {
  .et_pb_menu .et_mobile_menu {
    top: calc(100% + 10px);
  }

  /* Mobile menu overlay styles */
  #et-boc {
    background-color: var(--blue);
  }

  header.et-l--header {
    position: relative;
    z-index: 3;
  }

  #et-main-area {
    position: relative;
    z-index: 1;
  }

  /* Overlay styles - only when mobile menu is open */
  #et-boc.menu-open .overlay {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    pointer-events: none;
    backdrop-filter: blur(2px);
    z-index: 2;
  }
}

#et-boc #menu-main-menu {
  background-color: transparent;
  width: 100%;
  flex-grow: 1;

  ul.sub-menu {
    background-color: rgba(0, 91, 139, 0.8);
    border-radius: 10px;
    padding: 12px 0;
    width: max-content;
    display: flex;
    flex-direction: column;
    gap: 0;

    li {
      padding: 0;

      a {
        width: 100%;
        text-transform: none;
        font-weight: 400;
        padding: 12px 20px;
      }

      &.current-menu-item {
        a {
          color: white !important;
          font-weight: 600;
        }
      }
    }
  }

  li.menu-item {
    a {
      color: var(--white);
      line-height: 1 !important;
    }
  }

  li.menu-search-link,
  li.menu-cart-link,
  li.menu-account-link,
  li.menu-donate-link {
    align-items: center;
  }

  li.menu-account-link,
  li.menu-donate-link {
    a {
      height: 63px;
      &:hover {
        opacity: 1;
      }
    }
  }

  li.menu-account-link {
    a {
      transition-property: all;
      &:hover {
        color: var(--primary-color);
      }
    }
  }

  li.menu-search-link,
  li.menu-cart-link {
    padding-right: 20px;
  }

  li.menu-search-link {
    margin-left: auto;
    padding-left: 33px;
  }

  li.menu-cart-link {
    padding-left: 0;
    padding-right: 10px;
  }

  /* basic reset on the img */
  .menu-search img,
  .menu-cart img {
    display: inline-block;
    width: 30px;
    height: 30px;
    object-fit: contain;
    vertical-align: middle;
  }

  /* position your badge */
  .menu-cart {
    position: relative;
  }

  .menu-donate-link {
    a.menu-donate.primary-button {
      color: var(--primary-color);
    }
  }

  &.et-menu .menu-item-has-children > a:first-child {
    padding-right: 24px;

    &::after {
      font-size: 22px;
      transform: translateY(-54%);
    }
  }

  .et_pb_menu .et_pb_menu__menu > nav > & > li > ul {
    top: calc(100% - 24px);
  }

  @media (min-width: 981px) and (max-width: 1220px) {
    li.menu-item {
      padding: 0 0.4rem;

      a {
        font-size: var(--t-small) !important;
      }

      a.et_pb_button.button {
        padding-left: 0.5rem !important;
        padding-right: 0.5rem !important;
        height: 54px !important;
      }
    }

    li.menu-search-link {
      /* margin-left: 0; */
    }
  }

  .et_mobile_nav_menu {
    .mobile_nav {
      .et_mobile_menu {
        .menu-item {
          a {
            padding: 10px 0;
          }
        }
      }
    }
  }
}
