/* ========================================================================== 
   Project: NOK Bouwadvies
   Component: Divi 5 hoofdmenu — basisstyling
   Requires: .nokba-main-menu on the active Divi Menu module.
   ========================================================================== */

body #page-container .nokba-header {
  position: relative;
  z-index: 50;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background: #ffffff !important;
}

body #page-container .nokba-header .et_pb_row {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body #page-container .nokba-header .et_pb_column {
  margin: 0 !important;
  padding: 0 !important;
}

.nokba-main-menu,
.nokba-main-menu * {
  box-sizing: border-box;
}

.nokba-main-menu {
  position: relative !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid rgba(49, 39, 131, .12) !important;
  background: #ffffff !important;
  box-shadow: 0 7px 22px rgba(49, 39, 131, .045) !important;
}

.nokba-main-menu .et_pb_menu_inner_container {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  width: min(1280px, calc(100% - 64px)) !important;
  max-width: 1280px !important;
  min-height: 7.5rem;
  margin: 0 auto !important;
  padding: 0 !important;
}

.nokba-main-menu .et_pb_menu__logo-wrap {
  display: flex !important;
  flex: 0 0 auto !important;
  align-items: center;
  width: auto !important;
  margin: 0 clamp(1.5rem, 2.5vw, 2.75rem) 0 0 !important;
}

.nokba-main-menu .et_pb_menu__logo,
.nokba-main-menu .et_pb_menu__logo a {
  display: block !important;
  margin: 0 !important;
  line-height: 0 !important;
}

.nokba-main-menu .et_pb_menu__logo img {
  display: block;
  width: clamp(11.75rem, 14vw, 13.75rem) !important;
  max-height: 4rem !important;
  height: auto;
  object-fit: contain;
}

.nokba-main-menu .et_pb_menu__wrap {
  display: flex !important;
  flex: 1 1 auto !important;
  justify-content: flex-end;
  min-width: 0;
}

@media (min-width: 1240px) {
  .nokba-main-menu .et_pb_menu__menu {
    display: flex !important;
    align-items: center;
  }

  .nokba-main-menu .et_mobile_nav_menu {
    display: none !important;
  }

  .nokba-main-menu .et-menu {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(.625rem, 1vw, .9375rem);
    margin: 0 !important;
    padding: 0 !important;
  }

  .nokba-main-menu .et-menu > li {
    display: flex !important;
    flex: 0 0 auto !important;
    align-items: center;
    margin: 0 !important;
    padding: 0 !important;
  }

  body #page-container .nokba-main-menu.et_pb_menu .et-menu > li > a {
    position: relative !important;
    display: inline-flex !important;
    align-items: center;
    min-height: 3rem;
    padding: .75rem 0 !important;
    border-radius: 4px !important;
    background-color: transparent !important;
    background-image: linear-gradient(#009BD9, #009BD9) !important;
    background-repeat: no-repeat !important;
    background-position: 0 calc(100% - 4px) !important;
    background-size: 0 2px !important;
    color: #434E5C !important;
    font-size: clamp(1.0625rem, 1.02rem + .12vw, 1.125rem) !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    white-space: nowrap;
    transition:
      color .18s ease,
      background-color .18s ease,
      background-size .24s cubic-bezier(.2, .75, .25, 1),
      box-shadow .18s ease,
      transform .18s ease !important;
  }

  /* Remove Divi's default underline pseudo-element. */
  body #page-container .nokba-main-menu.et_pb_menu .et-menu > li > a::after {
    display: none !important;
    content: none !important;
  }

  body #page-container .nokba-main-menu.et_pb_menu .et-menu > li.current-menu-item > a:not([href*="/contact"]),
  body #page-container .nokba-main-menu.et_pb_menu .et-menu > li.current-menu-ancestor > a:not([href*="/contact"]) {
    color: #312783 !important;
  }

  body #page-container .nokba-main-menu.et_pb_menu .et-menu > li > a[href*="/contact"] {
    justify-content: center;
    min-height: 3.125rem;
    margin-left: .5rem;
    padding: .75rem 1.25rem !important;
    border: 1px solid #00ABA0 !important;
    border-radius: 20px !important;
    background-color: #00ABA0 !important;
    background-image: none !important;
    background-size: 0 0 !important;
    color: #ffffff !important;
    font-size: clamp(1.0625rem, 1.02rem + .12vw, 1.125rem) !important;
    font-weight: 600 !important;
    box-shadow: 0 6px 16px rgba(0, 171, 160, .20);
    transition:
      background-color .18s ease,
      border-color .18s ease,
      box-shadow .18s ease,
      transform .18s ease !important;
  }

  @media (hover: hover) and (pointer: fine) {
    body #page-container .nokba-main-menu.et_pb_menu .et-menu > li > a:not([href*="/contact"]):hover {
      background-color: transparent !important;
      background-size: 100% 2px !important;
      opacity: 1 !important;
      filter: none !important;
      transform: none !important;
    }

    body #page-container .nokba-main-menu.et_pb_menu .et-menu > li > a[href*="/contact"]:hover {
      border-color: #312783 !important;
      background-color: #312783 !important;
      color: #ffffff !important;
      box-shadow: none;
      transform: translateY(-1px);
    }
  }

  body #page-container .nokba-main-menu.et_pb_menu .et-menu > li > a:not([href*="/contact"]):focus-visible {
    background-color: transparent !important;
    background-size: 100% 2px !important;
  }
}

@media (max-width: 1239px) {
  body #page-container .nokba-main-menu.et_pb_menu .et_pb_menu__menu {
    display: none !important;
  }

  body #page-container .nokba-main-menu.et_pb_menu .et_mobile_nav_menu {
    display: block !important;
    margin-left: auto;
  }

  .nokba-main-menu .et_pb_menu_inner_container {
    min-height: 6.25rem;
  }

  .nokba-main-menu .et_pb_menu__logo img {
    width: 11rem !important;
    max-height: 3.75rem !important;
  }

  .nokba-main-menu .mobile_nav {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }

  .nokba-main-menu .mobile_nav .mobile_menu_bar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(49, 39, 131, .18);
    border-radius: 4px;
    cursor: pointer;
  }

  .nokba-main-menu .mobile_nav .mobile_menu_bar::before {
    color: #312783 !important;
    font-size: 1.75rem;
  }

  .nokba-main-menu .mobile_nav.closed > ul.et_mobile_menu {
    display: none !important;
  }

  .nokba-main-menu .mobile_nav.opened > ul.et_mobile_menu {
    display: block !important;
  }

  .nokba-main-menu ul.et_mobile_menu {
    position: absolute !important;
    z-index: 200;
    top: calc(100% + .625rem);
    right: 0;
    left: auto;
    width: min(24rem, calc(100vw - 40px));
    max-height: calc(100vh - 7rem);
    margin: 0 !important;
    padding: .5rem;
    overflow-y: auto;
    border: 1px solid rgba(49, 39, 131, .14) !important;
    border-top: 3px solid #009BD9 !important;
    border-radius: 0 0 4px 4px;
    background: #ffffff;
    box-shadow: 0 1rem 2.75rem rgba(49, 39, 131, .18);
  }

  .nokba-main-menu ul.et_mobile_menu li {
    margin: 0;
    padding: 0;
    border: 0;
  }

  .nokba-main-menu ul.et_mobile_menu li + li {
    border-top: 1px solid rgba(49, 39, 131, .10);
  }

  .nokba-main-menu ul.et_mobile_menu li a {
    display: flex;
    align-items: center;
    min-height: 3.25rem;
    padding: .875rem 1rem !important;
    border: 0 !important;
    border-radius: 3px;
    color: #39424D;
    font-size: 1.0625rem;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none !important;
  }

  .nokba-main-menu ul.et_mobile_menu li.current-menu-item > a,
  .nokba-main-menu ul.et_mobile_menu li.current-menu-ancestor > a {
    padding-left: .8125rem !important;
    border-left: 3px solid #009BD9 !important;
    color: #312783;
    background: rgba(0, 155, 217, .08);
  }

  body #page-container .nokba-main-menu.et_pb_menu ul.et_mobile_menu li > a[href*="/contact"] {
    justify-content: center;
    margin-top: .5rem;
    border: 1px solid #00ABA0 !important;
    border-radius: 20px !important;
    background: #00ABA0 !important;
    color: #ffffff !important;
  }
}

@media (max-width: 640px) {
  .nokba-main-menu .et_pb_menu_inner_container {
    width: min(calc(100% - 40px), 1280px) !important;
    min-height: 5.75rem;
  }

  .nokba-main-menu .et_pb_menu__logo img {
    width: 9.75rem !important;
  }
}

.nokba-main-menu a:focus-visible,
.nokba-main-menu .mobile_menu_bar:focus-visible {
  outline: 3px solid #009BD9 !important;
  outline-offset: 4px !important;
}

@media (prefers-contrast: more) {
  .nokba-main-menu {
    border-bottom-color: #312783 !important;
  }

  .nokba-main-menu .mobile_nav .mobile_menu_bar {
    border-color: #312783;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nokba-main-menu *,
  .nokba-main-menu *::before,
  .nokba-main-menu *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
