/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!./node_modules/@wordpress/scripts/node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[3]!./packages/module-library/style.scss ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
.dsm-cart-preview-hidden {
  display: none !important;
}

/*
 * Page dim overlay (Dim Page When Open).
 * MUST live inside `.et_pb_module_inner` (VB/FE) — not body, and not as a
 * sibling above the inner wrapper. A module-root mount with a high z-index
 * steals hover from menu items and causes an open/close flicker loop.
 *
 * z-index:0 !important beats stale Dynamic Assets caches that used 10000.
 */
.dsm-mega-menu-page-overlay {
  position: fixed;
  inset: 0;
  z-index: 0 !important;
  margin: 0;
  padding: 0;
  border: 0;
  background: var(--dsm-page-overlay-color, rgba(0, 0, 0, 0.5));
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  cursor: pointer;
  -webkit-transition: opacity 0.2s ease, visibility 0.2s ease;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}

.dsm-mega-menu-page-overlay.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/*
 * Menu chrome + panels above the in-module overlay.
 * - Sibling selectors: overlay inside `.et_pb_module_inner` (VB + fixed FE).
 * - `.dsm-page-overlay-active`: also covers legacy module-root mounts.
 */
.dsm_mega_menu.dsm-page-overlay-active > .et_pb_module_inner,
.dsm_mega_menu.dsm-page-overlay-active > .dsm-mega-menu-container,
.dsm_mega_menu.dsm-page-overlay-active > .et_pb_module_inner > .dsm-mega-menu-container,
.dsm_mega_menu.dsm-page-overlay-active > .dsm-mobile-menu-open-button-container,
.dsm_mega_menu.dsm-page-overlay-active > .et_pb_module_inner > .dsm-mobile-menu-open-button-container,
.et_pb_module_inner > .dsm-mega-menu-page-overlay.is-visible ~ .dsm-mega-menu-container,
.et_pb_module_inner > .dsm-mega-menu-page-overlay.is-visible ~ .dsm-mobile-menu-open-button-container {
  position: relative;
  z-index: 1;
}

.dsm_mega_menu.dsm-page-overlay-active > .dsm-mega-menu-container.mobile-menu,
.dsm_mega_menu.dsm-page-overlay-active > .et_pb_module_inner > .dsm-mega-menu-container.mobile-menu {
  z-index: 2;
}

.dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-box {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: none;
  margin-top: 20px;
  max-width: calc(100vw - 32px);
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}

.dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-box form,
.dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-box .et_pb_menu__search-input {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  max-width: calc(100vw - 32px);
}

.dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-box.dsm-show-search-box {
  display: block;
  margin-top: 0;
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
  z-index: 10002;
}

.dsm-mega-menu-container.mobile-menu {
  opacity: 0;
  /*
   * Keep drawer content inside the panel height (e.g. 50vh / 100vh).
   * `overflow: visible` let accordion / Divi Layout paint past the wrapper.
   */
  overflow-x: hidden;
  overflow-y: auto;
  visibility: hidden;
}

.dsm-root-menu .dsm-mega-menu-item .dsm-menu-text {
  margin-right: 0px !important;
}

.dsm-mega-menu-container .dsm-root-menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 5px;
}

/* Desktop bar: flex so Alignment (logo vs nav) matches VB. */
@media screen and (min-width: 981px) {
  .dsm-mega-menu-container:not(.mobile-menu) {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
  }
  .dsm-mega-menu-container:not(.mobile-menu) nav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  /*
   * Logo width % must apply to the flex item (link/wrap). Otherwise the
   * <a> sizes to the intrinsic img (e.g. 300px) and wrap width:4% is
   * resolved against that content box — logo stays full-size.
   *
   * `display: contents` makes .dsm-logo-wrap participate as the flex item
   * so Divi's sizing width:% resolves against the menu container.
   */
  .dsm-mega-menu-container:not(.mobile-menu) > .dsm-logo-link {
    display: contents;
  }
  .dsm-mega-menu-container:not(.mobile-menu) > .dsm-logo-link > .dsm-logo-wrap,
  .dsm-mega-menu-container:not(.mobile-menu) > .dsm-logo-wrap {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    min-width: 0;
  }
}
.dsm-mega-menu-container .dsm-logo-wrap {
  display: block;
  max-width: 100%;
}

.dsm-mega-menu-container .dsm-logo-wrap img {
  display: block;
  height: auto;
  max-width: 100%;
  width: 100%;
}

/*
 * Default dropdown chevrons (D4 etmodules &#x32; / &#x33;).
 * Converted items often have empty icon attrs; without these ::before
 * rules the spans exist but render invisible.
 */
.dsm-mega-menu-container .dsm_dropdown_open_icon::before,
.dsm-mega-menu-container .dsm_dropdown_close_icon::before {
  display: inline-block;
  font-family: ETmodules !important;
  font-weight: 400 !important;
  speak: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.dsm-mega-menu-container .dsm_dropdown_close_icon::before {
  content: "3";
}

.dsm-mega-menu-container .dsm_dropdown_open_icon::before {
  content: "2";
}

/* FE: li is a direct child. VB: Divi wraps each child in .et_pb_module. */
.dsm-mega-menu-container .dsm-root-menu > .dsm-mega-menu-item:last-child,
.dsm-mega-menu-container .dsm-root-menu > .et_pb_module:last-child .dsm-mega-menu-item {
  margin-right: 0 !important;
}

.dsm-mega-menu-container.mobile-menu .dsm-root-menu > .dsm-mega-menu-item:not(:last-child),
.dsm-mega-menu-container.mobile-menu .dsm-root-menu > .et_pb_module:not(:last-child) .dsm-mega-menu-item {
  margin-bottom: 10px;
}

.dsm-mega-menu-container .dsm-menu-text-wrapper {
  position: relative;
}

/*
 * D4 always applied default menu item color (#000000) from field defaults even
 * when the shortcode omitted the attr. Without this, theme link color wins.
 */
.dsm-mega-menu-container .dsm-root-menu .dsm-mega-menu-item .dsm-menu-text {
  color: #000000;
}

/*
 * Parent Badge Position = Absolute (D4 parity). Class is more reliable than
 * CommonStyle-only rules that can fail to emit position.
 */
.dsm_mega_menu_badge_position_absolute .dsm-mega-menu-item .dsm-mega-menu-link {
  position: relative;
}

.dsm_mega_menu_badge_position_absolute .dsm-mega-menu-item .dsm-menu-text-wrapper .dsm-badge-text {
  position: absolute !important;
  z-index: 1;
}

.dsm-mega-menu-container .dsm-menu-text-wrapper .dsm-image {
  line-height: 1;
}

.dsm-root-menu .dsm-mega-menu-item a:not(.et_pb_button),
.dsm-mega-menu-container .dsm-root-menu .dsm-mega-menu-item .dsm-mega-menu-link {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu {
  padding: 0 !important;
}
.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm-mega-menu-item {
  display: inline-block;
}
.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-item.dsm-native-menu .dsm-submenu-container {
  left: 100%;
  top: 0;
}
.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-item.dsm-native-menu > .dsm-submenu-container {
  left: auto;
  top: auto;
}
.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container .dsm-mega-menu-item.dsm-native-menu,
.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container .dsm-mega-menu-item.dsm-native-menu li {
  position: relative;
}

.dsm_mega_menu_layout_horizontal.dsm_mega_menu_width_container {
  /*
   * D4 parity: keep items static so absolute panels size to
   * `.dsm-mega-menu-container` (not the narrow item / module box).
   * Native WP menus MUST stay position:relative so nested flyouts
   * (`left:100%`) size to the item — not the full menu container.
   */
}
.dsm_mega_menu_layout_horizontal.dsm_mega_menu_width_container .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu > .dsm-mega-menu-item:not(.dsm-native-menu),
.dsm_mega_menu_layout_horizontal.dsm_mega_menu_width_container .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu > .et_pb_module > .dsm-mega-menu-item:not(.dsm-native-menu) {
  position: initial !important;
}
.dsm_mega_menu_layout_horizontal.dsm_mega_menu_width_container .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-item.dsm-native-menu,
.dsm_mega_menu_layout_horizontal.dsm_mega_menu_width_container .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-item.dsm-native-menu li {
  position: relative !important;
}
.dsm_mega_menu_layout_horizontal.dsm_mega_menu_width_container .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-item.dsm-native-menu .dsm-submenu-container {
  width: 200px;
}
.dsm_mega_menu_layout_horizontal.dsm_mega_menu_width_container .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm-mega-menu-item:not(.dsm-native-menu):not(.dsm_mega_menu_child_width_container):not(.dsm_mega_menu_child_width_fullwidth):not(.dsm_mega_menu_child_width_custom_width):not(.dsm-mega-menu-item-fixed-width) > .dsm-submenu-container {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  left: 0;
  right: auto;
  width: 100%;
}

.dsm_mega_menu_layout_horizontal.dsm_mega_menu_width_fullwidth .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-item.dsm-native-menu .dsm-submenu-container {
  width: 200px;
}
.dsm_mega_menu_layout_horizontal.dsm_mega_menu_width_fullwidth {
  /*
   * Pin to viewport via JS (--dsm-vb-fullwidth-submenu-*). The classic
   * left:50% + -50vw trick only works when the containing block is
   * viewport-centered — it shifts off-screen in multi-column rows.
   */
}
.dsm_mega_menu_layout_horizontal.dsm_mega_menu_width_fullwidth .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm-mega-menu-item:not(.dsm-native-menu):not(.dsm_mega_menu_child_width_container):not(.dsm_mega_menu_child_width_fullwidth):not(.dsm_mega_menu_child_width_custom_width):not(.dsm-mega-menu-item-fixed-width) > .dsm-submenu-container {
  left: var(--dsm-vb-fullwidth-submenu-left, 50%) !important;
  margin-left: var(--dsm-vb-fullwidth-submenu-margin-left, -50vw) !important;
  margin-right: var(--dsm-vb-fullwidth-submenu-margin-right, -50vw) !important;
  position: absolute;
  right: auto !important;
  top: auto;
  width: 100vw;
}

.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm_mega_menu_child.dsm-mega-menu-item.dsm-mega-menu-item-fixed-width {
  position: relative !important;
}

.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm_mega_menu_child.dsm-mega-menu-item.dsm-mega-menu-item-fixed-width > .dsm-submenu-container {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  left: var(--dsm-fixed-submenu-offset, 0px) !important;
  max-width: var(--dsm-available-viewport-width, calc(100vw - 32px));
  right: auto !important;
}

.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm_mega_menu_child.dsm-mega-menu-item.dsm-mega-menu-item-fixed-width:not(.dsm-fixed-submenu-ready):not(:hover):not(.dsm-active-menu) > .dsm-submenu-container,
.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm_mega_menu_child_width_custom_width.dsm_mega_menu_child.dsm-mega-menu-item:not(.dsm-fixed-submenu-ready):not(:hover):not(.dsm-active-menu) > .dsm-submenu-container {
  opacity: 0 !important;
  visibility: hidden !important;
}

.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm_mega_menu_child.dsm-mega-menu-item.dsm-mega-menu-item-fixed-width.dsm-fixed-submenu-preparing > .dsm-submenu-container {
  -webkit-transition-property: opacity, visibility !important;
  transition-property: opacity, visibility !important;
}

.dsm_mega_menu_layout_horizontal.dsm_mega_menu_width_custom_width .dsm-root-menu .dsm-mega-menu-item:not(.dsm_mega_menu_child_width_container):not(.dsm_mega_menu_child_width_fullwidth):not(.dsm_mega_menu_child_width_custom_width):not(.dsm-native-menu) {
  position: relative !important;
}
.dsm_mega_menu_layout_horizontal.dsm_mega_menu_width_custom_width .dsm-root-menu .dsm-mega-menu-item:not(.dsm_mega_menu_child_width_container):not(.dsm_mega_menu_child_width_fullwidth):not(.dsm_mega_menu_child_width_custom_width):not(.dsm-native-menu) > .dsm-submenu-container {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  left: var(--dsm-fixed-submenu-offset, 0px) !important;
  max-width: var(--dsm-available-viewport-width, calc(100vw - 32px));
  right: auto !important;
  top: auto;
}

.dsm_mega_menu_layout_horizontal.dsm_mega_menu_show_arrow_on .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm-mega-menu-item > .dsm-submenu-container::before {
  /*
   * Do not use background:inherit — the submenu ul is often transparent
   * (panel color lives on inner Divi layout). That made the arrow
   * invisible and also overrode dsm_arrow_color via higher specificity.
   * Color comes from dsm_arrow_color module styles.
   */
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  content: "";
  height: 15px;
  left: var(--dsm-arrow-center-position);
  position: absolute;
  top: -10px;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 20px;
  z-index: -1;
}

.dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-container {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
}

.dsm_mega_menu_layout_horizontal.dsm_mega_menu_search_field_position_top .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-container .dsm-mega-menu-search-box {
  position: absolute;
  bottom: 100%;
  left: 50%;
  -webkit-transform: translateX(calc(-50% + var(--dsm-search-edge-offset, 0px)));
          transform: translateX(calc(-50% + var(--dsm-search-edge-offset, 0px)));
  margin-top: 20px;
  opacity: 0;
  z-index: 99;
}

.dsm_mega_menu_layout_horizontal.dsm_mega_menu_search_field_position_bottom .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-container .dsm-mega-menu-search-box {
  position: absolute;
  top: 100%;
  left: 50%;
  -webkit-transform: translateX(calc(-50% + var(--dsm-search-edge-offset, 0px)));
          transform: translateX(calc(-50% + var(--dsm-search-edge-offset, 0px)));
  margin-top: 20px;
  opacity: 0;
  z-index: 99;
}

/* Top/Bottom horizontal alignment relative to the search icon/button. */
.dsm_mega_menu_layout_horizontal.dsm_mega_menu_search_field_position_top.dsm_mega_menu_search_field_alignment_left .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-container .dsm-mega-menu-search-box,
.dsm_mega_menu_layout_horizontal.dsm_mega_menu_search_field_position_bottom.dsm_mega_menu_search_field_alignment_left .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-container .dsm-mega-menu-search-box {
  left: 0;
  right: auto;
  -webkit-transform: translateX(var(--dsm-search-edge-offset, 0px));
          transform: translateX(var(--dsm-search-edge-offset, 0px));
}

.dsm_mega_menu_layout_horizontal.dsm_mega_menu_search_field_position_top.dsm_mega_menu_search_field_alignment_right .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-container .dsm-mega-menu-search-box,
.dsm_mega_menu_layout_horizontal.dsm_mega_menu_search_field_position_bottom.dsm_mega_menu_search_field_alignment_right .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-container .dsm-mega-menu-search-box {
  left: auto;
  right: 0;
  -webkit-transform: translateX(var(--dsm-search-edge-offset, 0px));
          transform: translateX(var(--dsm-search-edge-offset, 0px));
}

.dsm_mega_menu_layout_horizontal.dsm_mega_menu_search_field_position_top.dsm_mega_menu_search_field_alignment_icon .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-container .dsm-mega-menu-search-box,
.dsm_mega_menu_layout_horizontal.dsm_mega_menu_search_field_position_bottom.dsm_mega_menu_search_field_alignment_icon .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-container .dsm-mega-menu-search-box,
.dsm_mega_menu_layout_horizontal.dsm_mega_menu_search_field_position_top.dsm_mega_menu_search_field_alignment_center .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-container .dsm-mega-menu-search-box,
.dsm_mega_menu_layout_horizontal.dsm_mega_menu_search_field_position_bottom.dsm_mega_menu_search_field_alignment_center .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-container .dsm-mega-menu-search-box {
  left: 50%;
  right: auto;
  -webkit-transform: translateX(calc(-50% + var(--dsm-search-edge-offset, 0px)));
          transform: translateX(calc(-50% + var(--dsm-search-edge-offset, 0px)));
}

/* Left/Right: vertically center with the search icon (not top-aligned). */
.dsm_mega_menu_layout_horizontal.dsm_mega_menu_search_field_position_left .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-container .dsm-mega-menu-search-box {
  position: absolute;
  top: 50%;
  right: 100%;
  left: auto;
  margin-top: 0;
  -webkit-transform: translateY(-50%) translateX(var(--dsm-search-edge-offset, 0px));
          transform: translateY(-50%) translateX(var(--dsm-search-edge-offset, 0px));
  opacity: 0;
  z-index: 99;
}

.dsm_mega_menu_layout_horizontal.dsm_mega_menu_search_field_position_right .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-container .dsm-mega-menu-search-box {
  position: absolute;
  top: 50%;
  left: 100%;
  right: auto;
  margin-top: 0;
  -webkit-transform: translateY(-50%) translateX(var(--dsm-search-edge-offset, 0px));
          transform: translateY(-50%) translateX(var(--dsm-search-edge-offset, 0px));
  opacity: 0;
  z-index: 99;
}

.dsm_mega_menu_layout_vertical .dsm-mega-menu-container,
.dsm_mega_menu_layout_vertical .dsm-mega-menu-container nav {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.dsm_mega_menu_layout_vertical .dsm-mega-menu-container .dsm-root-menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding: 0;
}
.dsm_mega_menu_layout_vertical .dsm-mega-menu-container .dsm-root-menu > .dsm-mega-menu-item:last-child,
.dsm_mega_menu_layout_vertical .dsm-mega-menu-container .dsm-root-menu > .et_pb_module:last-child .dsm-mega-menu-item {
  margin-bottom: 0 !important;
}
.dsm_mega_menu_layout_vertical .dsm-mega-menu-container .dsm-root-menu .dsm-mega-menu-item .dsm-mega-menu-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.dsm_mega_menu_layout_vertical.dsm_mega_menu_vertical_dropdown_placement_top .dsm-mega-menu-container .dsm-root-menu {
  position: relative !important;
}

.dsm_mega_menu_layout_vertical.dsm_mega_menu_vertical_dropdown_placement_current_item .dsm-mega-menu-container .dsm-root-menu li {
  position: relative !important;
}

.dsm_mega_menu_layout_vertical.dsm_mega_menu_dropdown_position_left .dsm-mega-menu-container:not(.mobile-menu) .dsm-submenu-container {
  left: calc(100% + 30px);
  position: absolute;
  top: 0;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  z-index: 100;
}
.dsm_mega_menu_layout_vertical.dsm_mega_menu_dropdown_position_left .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-container .dsm-mega-menu-search-box {
  position: absolute;
  top: 100%;
  left: 0;
  -webkit-transform: translateX(var(--dsm-search-edge-offset, 0px));
          transform: translateX(var(--dsm-search-edge-offset, 0px));
  margin-top: 20px;
  opacity: 0;
  z-index: 99;
}

.dsm_mega_menu_layout_vertical.dsm_mega_menu_dropdown_position_left.dsm_mega_menu_show_arrow_on .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-item .dsm-submenu-container::before {
  /* Side pointer; Y is set by setArrowCenterPosition to the item midpoint. */
  clip-path: polygon(0 47%, 100% 100%, 100% 0);
  content: "";
  height: 27px;
  left: -17px;
  pointer-events: none;
  position: absolute;
  top: var(--dsm-arrow-center-position-y, 10px);
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 27px;
  z-index: 0;
}

.dsm_mega_menu_layout_vertical.dsm_mega_menu_dropdown_position_right .dsm-mega-menu-container .dsm-logo-wrap,
.dsm_mega_menu_layout_vertical.dsm_mega_menu_dropdown_position_right .dsm-mega-menu-container .dsm-root-menu {
  margin: 0 0 0 auto;
}
.dsm_mega_menu_layout_vertical.dsm_mega_menu_dropdown_position_right .dsm-mega-menu-container:not(.mobile-menu) .dsm-submenu-container {
  left: auto;
  position: absolute;
  right: calc(100% + 30px);
  top: 0;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  z-index: 100;
}
.dsm_mega_menu_layout_vertical.dsm_mega_menu_dropdown_position_right .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-container {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.dsm_mega_menu_layout_vertical.dsm_mega_menu_dropdown_position_right .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-search-container .dsm-mega-menu-search-box {
  position: absolute;
  top: 100%;
  right: 0;
  -webkit-transform: translateX(var(--dsm-search-edge-offset, 0px));
          transform: translateX(var(--dsm-search-edge-offset, 0px));
  margin-top: 20px;
  opacity: 0;
  z-index: 99;
}

.dsm_mega_menu_layout_vertical.dsm_mega_menu_dropdown_position_right.dsm_mega_menu_show_arrow_on .dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-item .dsm-submenu-container::before {
  clip-path: polygon(100% 52%, 0 0, 1% 100%);
  content: "";
  height: 27px;
  pointer-events: none;
  position: absolute;
  right: -17px;
  top: var(--dsm-arrow-center-position-y, 10px);
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 27px;
  z-index: 0;
}

.dsm_mega_menu_show_arrow_off .dsm-root-menu .dsm-mega-menu-item .dsm-submenu-container::before {
  clip-path: none !important;
  content: "";
  height: 0 !important;
  width: 0 !important;
}

/*
 * Desktop dropdown pointer must never paint in the mobile drawer.
 * VB phone preview often keeps a desktop viewport width, so phone
 * show_arrow media queries do not hide it — class-scope does.
 */
.dsm-mega-menu-container.mobile-menu .dsm-root-menu .dsm-mega-menu-item > .dsm-submenu-container::before {
  clip-path: none !important;
  content: none !important;
  display: none !important;
  height: 0 !important;
  width: 0 !important;
}

.dsm-mega-menu-container.mobile-menu nav {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /*
   * Fill the panel height from settings — do not use a fixed 75vh that can
   * exceed a shorter panel (e.g. 50vh) and spill outside the wrapper.
   */
  height: 100%;
  max-height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  /* Leave room for the absolute search bar pinned to the panel bottom. */
  padding: 24px 16px 72px;
}

.dsm-mega-menu-container.mobile-menu .dsm-root-menu,
.dsm-mega-menu-container.mobile-menu .dsm-root-menu > .dsm-mega-menu-item,
.dsm-mega-menu-container.mobile-menu .dsm-root-menu > .et_pb_module,
.dsm-mega-menu-container.mobile-menu .dsm-root-menu .dsm-mega-menu-link {
  overflow: visible;
}

.dsm-mega-menu-container.mobile-menu .dsm-mega-menu-search-box {
  bottom: 0;
  margin-top: 0 !important;
  opacity: 1 !important;
  position: absolute;
  /* Sit above accordion / Divi Layout content in the drawer. */
  z-index: 2;
}

.dsm-mega-menu-container.mobile-menu .dsm-mega-menu-search-box .et_pb_menu__search-input {
  width: 100% !important;
}

@media screen and (max-width: 980px) {
  .dsm_mega_menu_has_logo .dsm-mobile-menu-open-button-container {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    width: 100%;
  }
  .dsm_mega_menu_no_logo.dsm_mega_menu_hamburger_alignment_dsm_hamburger_right .dsm-mobile-menu-open-button-container {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    width: 100%;
  }
  .dsm_mega_menu_no_logo.dsm_mega_menu_hamburger_alignment_dsm_hamburger_left .dsm-mobile-menu-open-button-container {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    width: 100%;
  }
  .dsm-mobile-menu-open-button-container > a,
  .dsm-mobile-menu-open-button-container > .dsm-logo-wrap {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
    max-width: calc(100% - 40px);
    min-width: 0;
  }
  .dsm-mobile-menu-open-button-container .dsm-mega-menu-open-button {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-item-align: center;
        align-self: center;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    height: auto;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    line-height: 1;
    min-height: 0;
    padding: 0;
  }
  .dsm-mobile-menu-open-button-container .dsm-mobile-open-icon,
  .dsm-mobile-menu-open-button-container .et-pb-icon {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    line-height: 1;
  }
}
.dsm_mega_menu_mobile_search_alignment_left .dsm-mega-menu-container.mobile-menu .dsm-mega-menu-search-box {
  left: 0 !important;
}

.dsm_mega_menu_mobile_search_alignment_center .dsm-mega-menu-container.mobile-menu .dsm-mega-menu-search-box {
  left: 50% !important;
  -webkit-transform: translate(-50%);
          transform: translate(-50%);
}

.dsm_mega_menu_mobile_search_alignment_right .dsm-mega-menu-container.mobile-menu .dsm-mega-menu-search-box {
  right: 0 !important;
}

.dsm_mega_menu_mobile_container_alignment_left .dsm-mega-menu-container.mobile-menu {
  left: 0;
  right: auto;
}

.dsm_mega_menu_mobile_container_alignment_center .dsm-mega-menu-container.mobile-menu {
  left: 0;
  right: auto;
}

.dsm_mega_menu_mobile_container_alignment_right .dsm-mega-menu-container.mobile-menu {
  left: auto;
  right: 0;
}

.dsm_mega_menu_show_search_icon_off .dsm-mega-menu-container.mobile-menu .dsm-mega-menu-search-container {
  display: none !important;
}

.dsm-mega-menu-container .dsm-root-menu .dsm-submenu-inner-container {
  overflow: hidden;
}

/*
 * Nested WP flyouts (.dsm-submenu-inner-wrapper): default white so panels are
 * readable when Dropdown / Submenu Background is unset. Module styles override
 * this with dsm_dropdown_bg_color (default #fff) or dsm_submenu_bg_color.
 */
.dsm-mega-menu-container .dsm-root-menu .dsm-mega-menu-item.dsm-native-menu .dsm-submenu-inner-wrapper > .dsm-submenu-inner-container {
  background-color: #fff;
}

/*
 * Closed nested WP flyouts use left:100%. opacity/visibility alone still
 * expand document/VB scrollWidth — take them out of layout until open.
 */
.dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-item.dsm-native-menu .dsm-mega-menu-item-root:not(:hover):not(.dsm-active-menu) > .dsm-submenu-container {
  display: none;
}

.dsm-mega-menu-container[data-trigger=hover]:not(.mobile-menu) .dsm-mega-menu-item.dsm-native-menu .dsm-mega-menu-item-root:hover > .dsm-submenu-container,
.dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-item.dsm-native-menu .dsm-mega-menu-item-root.dsm-active-menu > .dsm-submenu-container {
  display: block;
}

/******** Link Animation CSS ***********/
/*
 * Anchor underlines on `.dsm-menu-text-wrapper` (label box), not the full flex
 * `.dsm-mega-menu-link` (padding + icon wrappers). D4 CSS still targets the
 * link; neutralize those pseudos so only the wrapper effects paint.
 * Hover: item / link / VB direct-child module chrome.
 */
.dsm-mega-menu-container.dsm_link_animation_effect_one .dsm-mega-menu-link::before,
.dsm-mega-menu-container .dsm-mega-menu-link.dsm_link_animation_effect_one::before,
.dsm-mega-menu-container.dsm_link_animation_effect_two .dsm-mega-menu-link::after,
.dsm-mega-menu-container .dsm-mega-menu-link.dsm_link_animation_effect_two::after,
.dsm-mega-menu-container.dsm_link_animation_effect_three .dsm-mega-menu-link::after,
.dsm-mega-menu-container .dsm-mega-menu-link.dsm_link_animation_effect_three::after,
.dsm-mega-menu-container.dsm_link_animation_effect_four .dsm-mega-menu-link::before,
.dsm-mega-menu-container.dsm_link_animation_effect_four .dsm-mega-menu-link::after,
.dsm-mega-menu-container .dsm-mega-menu-link.dsm_link_animation_effect_four::before,
.dsm-mega-menu-container .dsm-mega-menu-link.dsm_link_animation_effect_four::after,
.dsm-mega-menu-container.dsm_link_animation_effect_five .dsm-mega-menu-link::before,
.dsm-mega-menu-container .dsm-mega-menu-link.dsm_link_animation_effect_five::before {
  content: none !important;
  display: none !important;
}

.dsm_link_animation_effect_one .dsm-mega-menu-link .dsm-menu-text-wrapper,
.dsm_link_animation_effect_one.dsm-mega-menu-link .dsm-menu-text-wrapper {
  position: relative;
}

.dsm_link_animation_effect_one .dsm-mega-menu-link .dsm-menu-text-wrapper::before,
.dsm_link_animation_effect_one.dsm-mega-menu-link .dsm-menu-text-wrapper::before {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  bottom: 0;
  margin: -5px 0;
  background-color: #000000;
  visibility: hidden;
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  -webkit-transform-origin: left center;
          transform-origin: left center;
  -webkit-transition: all 0.4s ease-in-out 0s;
  transition: all 0.4s ease-in-out 0s;
  pointer-events: none;
}

.dsm_link_animation_effect_one .dsm-mega-menu-item:hover .dsm-menu-text-wrapper::before,
.dsm_link_animation_effect_one .dsm-root-menu > .et_pb_module:hover .dsm-menu-text-wrapper::before,
.dsm_link_animation_effect_one .dsm-mega-menu-link:hover .dsm-menu-text-wrapper::before,
.dsm-mega-menu-item:hover .dsm_link_animation_effect_one.dsm-mega-menu-link .dsm-menu-text-wrapper::before,
.dsm-root-menu > .et_pb_module:hover .dsm_link_animation_effect_one.dsm-mega-menu-link .dsm-menu-text-wrapper::before {
  visibility: visible;
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
}

.dsm_link_animation_effect_two .dsm-mega-menu-link .dsm-menu-text-wrapper,
.dsm_link_animation_effect_two.dsm-mega-menu-link .dsm-menu-text-wrapper {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.dsm_link_animation_effect_two .dsm-mega-menu-link .dsm-menu-text-wrapper::after,
.dsm_link_animation_effect_two.dsm-mega-menu-link .dsm-menu-text-wrapper::after {
  content: "";
  display: block;
  position: absolute;
  width: 0;
  bottom: 0;
  height: 2px;
  margin: -5px 0;
  right: 0;
  left: auto;
  background-color: #000000;
  -webkit-transition: all 0.4s ease-in 0s;
  transition: all 0.4s ease-in 0s;
  pointer-events: none;
}

.dsm_link_animation_effect_two .dsm-mega-menu-item:hover .dsm-menu-text-wrapper::after,
.dsm_link_animation_effect_two .dsm-root-menu > .et_pb_module:hover .dsm-menu-text-wrapper::after,
.dsm_link_animation_effect_two .dsm-mega-menu-link:hover .dsm-menu-text-wrapper::after,
.dsm-mega-menu-item:hover .dsm_link_animation_effect_two.dsm-mega-menu-link .dsm-menu-text-wrapper::after,
.dsm-root-menu > .et_pb_module:hover .dsm_link_animation_effect_two.dsm-mega-menu-link .dsm-menu-text-wrapper::after {
  width: 100%;
}

.dsm_link_animation_effect_three .dsm-mega-menu-link .dsm-menu-text-wrapper,
.dsm_link_animation_effect_three.dsm-mega-menu-link .dsm-menu-text-wrapper {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.dsm_link_animation_effect_three .dsm-mega-menu-link .dsm-menu-text-wrapper::after,
.dsm_link_animation_effect_three.dsm-mega-menu-link .dsm-menu-text-wrapper::after {
  content: "";
  display: block;
  position: absolute;
  width: 0;
  bottom: 0;
  height: 2px;
  margin: -5px 0;
  left: 0;
  background-color: #000000;
  -webkit-transition: all 0.4s ease-in 0s;
  transition: all 0.4s ease-in 0s;
  pointer-events: none;
}

.dsm_link_animation_effect_three .dsm-mega-menu-item:hover .dsm-menu-text-wrapper::after,
.dsm_link_animation_effect_three .dsm-root-menu > .et_pb_module:hover .dsm-menu-text-wrapper::after,
.dsm_link_animation_effect_three .dsm-mega-menu-link:hover .dsm-menu-text-wrapper::after,
.dsm-mega-menu-item:hover .dsm_link_animation_effect_three.dsm-mega-menu-link .dsm-menu-text-wrapper::after,
.dsm-root-menu > .et_pb_module:hover .dsm_link_animation_effect_three.dsm-mega-menu-link .dsm-menu-text-wrapper::after {
  width: 100%;
}

.dsm_link_animation_effect_four .dsm-mega-menu-link .dsm-menu-text-wrapper,
.dsm_link_animation_effect_four.dsm-mega-menu-link .dsm-menu-text-wrapper {
  position: relative;
}

.dsm_link_animation_effect_four .dsm-mega-menu-link .dsm-menu-text-wrapper::before,
.dsm_link_animation_effect_four.dsm-mega-menu-link .dsm-menu-text-wrapper::before,
.dsm_link_animation_effect_four .dsm-mega-menu-link .dsm-menu-text-wrapper::after,
.dsm_link_animation_effect_four.dsm-mega-menu-link .dsm-menu-text-wrapper::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 1px;
  background: #000000;
  top: 100%;
  left: 0;
  pointer-events: none;
}

.dsm_link_animation_effect_four .dsm-mega-menu-link .dsm-menu-text-wrapper::before,
.dsm_link_animation_effect_four.dsm-mega-menu-link .dsm-menu-text-wrapper::before {
  -webkit-transform-origin: 100% 50%;
          transform-origin: 100% 50%;
  -webkit-transform: scale3d(0, 1, 1);
          transform: scale3d(0, 1, 1);
  -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.7, 0, 0.2, 1);
  transition: -webkit-transform 0.3s cubic-bezier(0.7, 0, 0.2, 1);
  transition: transform 0.3s cubic-bezier(0.7, 0, 0.2, 1);
  transition: transform 0.3s cubic-bezier(0.7, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.7, 0, 0.2, 1);
}

.dsm_link_animation_effect_four .dsm-mega-menu-link .dsm-menu-text-wrapper::after,
.dsm_link_animation_effect_four.dsm-mega-menu-link .dsm-menu-text-wrapper::after {
  content: "";
  top: calc(100% + 4px);
  -webkit-transform-origin: 0% 50%;
          transform-origin: 0% 50%;
  -webkit-transform: scale3d(0, 1, 1);
          transform: scale3d(0, 1, 1);
  -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.7, 0, 0.2, 1);
  transition: -webkit-transform 0.3s cubic-bezier(0.7, 0, 0.2, 1);
  transition: transform 0.3s cubic-bezier(0.7, 0, 0.2, 1);
  transition: transform 0.3s cubic-bezier(0.7, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.7, 0, 0.2, 1);
}

.dsm_link_animation_effect_four .dsm-mega-menu-item:hover .dsm-menu-text-wrapper::before,
.dsm_link_animation_effect_four .dsm-root-menu > .et_pb_module:hover .dsm-menu-text-wrapper::before,
.dsm_link_animation_effect_four .dsm-mega-menu-link:hover .dsm-menu-text-wrapper::before,
.dsm-mega-menu-item:hover .dsm_link_animation_effect_four.dsm-mega-menu-link .dsm-menu-text-wrapper::before,
.dsm-root-menu > .et_pb_module:hover .dsm_link_animation_effect_four.dsm-mega-menu-link .dsm-menu-text-wrapper::before {
  -webkit-transform-origin: 0% 50%;
          transform-origin: 0% 50%;
  -webkit-transform: scale3d(1, 1, 1);
          transform: scale3d(1, 1, 1);
  -webkit-transition-timing-function: cubic-bezier(0.4, 1, 0.8, 1);
          transition-timing-function: cubic-bezier(0.4, 1, 0.8, 1);
}

.dsm_link_animation_effect_four .dsm-mega-menu-item:hover .dsm-menu-text-wrapper::after,
.dsm_link_animation_effect_four .dsm-root-menu > .et_pb_module:hover .dsm-menu-text-wrapper::after,
.dsm_link_animation_effect_four .dsm-mega-menu-link:hover .dsm-menu-text-wrapper::after,
.dsm-mega-menu-item:hover .dsm_link_animation_effect_four.dsm-mega-menu-link .dsm-menu-text-wrapper::after,
.dsm-root-menu > .et_pb_module:hover .dsm_link_animation_effect_four.dsm-mega-menu-link .dsm-menu-text-wrapper::after {
  -webkit-transform-origin: 100% 50%;
          transform-origin: 100% 50%;
  -webkit-transform: scale3d(1, 1, 1);
          transform: scale3d(1, 1, 1);
  -webkit-transition-timing-function: cubic-bezier(0.4, 1, 0.8, 1);
          transition-timing-function: cubic-bezier(0.4, 1, 0.8, 1);
}

.dsm_link_animation_effect_five .dsm-mega-menu-link .dsm-menu-text-wrapper,
.dsm_link_animation_effect_five.dsm-mega-menu-link .dsm-menu-text-wrapper {
  position: relative;
}

.dsm_link_animation_effect_five .dsm-mega-menu-link .dsm-menu-text-wrapper::before,
.dsm_link_animation_effect_five.dsm-mega-menu-link .dsm-menu-text-wrapper::before {
  content: "";
  position: absolute;
  width: 100%;
  left: 0;
  pointer-events: none;
  top: 50%;
  height: 2px;
  background: #000000;
  -webkit-transform-origin: 100% 50%;
          transform-origin: 100% 50%;
  -webkit-transform: scale3d(0, 1, 1);
          transform: scale3d(0, 1, 1);
  -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.4, 1, 0.8, 1);
  transition: -webkit-transform 0.3s cubic-bezier(0.4, 1, 0.8, 1);
  transition: transform 0.3s cubic-bezier(0.4, 1, 0.8, 1);
  transition: transform 0.3s cubic-bezier(0.4, 1, 0.8, 1), -webkit-transform 0.3s cubic-bezier(0.4, 1, 0.8, 1);
}

.dsm_link_animation_effect_five .dsm-mega-menu-item:hover .dsm-menu-text-wrapper::before,
.dsm_link_animation_effect_five .dsm-root-menu > .et_pb_module:hover .dsm-menu-text-wrapper::before,
.dsm_link_animation_effect_five .dsm-mega-menu-link:hover .dsm-menu-text-wrapper::before,
.dsm-mega-menu-item:hover .dsm_link_animation_effect_five.dsm-mega-menu-link .dsm-menu-text-wrapper::before,
.dsm-root-menu > .et_pb_module:hover .dsm_link_animation_effect_five.dsm-mega-menu-link .dsm-menu-text-wrapper::before {
  -webkit-transform-origin: 0% 50%;
          transform-origin: 0% 50%;
  -webkit-transform: scale3d(1, 1, 1);
          transform: scale3d(1, 1, 1);
  -webkit-transition-timing-function: cubic-bezier(0.4, 1, 0.8, 1);
          transition-timing-function: cubic-bezier(0.4, 1, 0.8, 1);
}

.admin-bar .dsm-mega-menu-container.mobile-menu {
  top: 46px;
}

.dsm-mega-menu-container.mobile-menu .dsm-root-menu {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.et-pb-icon.dsm_dropdown_icon {
  font-size: 22px;
}

.dsm-mobile-menu-open-button-container {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
}

.dsm-mobile-menu-open-button-container .dsm-logo-wrap,
.dsm-mobile-menu-open-button-container .dsm-logo-wrap img {
  display: block;
  max-width: 100%;
}

/************ Default CSS **********************/
/* Keep dropdowns above following rows/modules (D4 column z-index parity). */
.dsm_mega_menu {
  position: relative;
  z-index: 99;
}

.et_pb_column:has(.dsm_mega_menu),
.et_flex_column:has(.dsm_mega_menu),
.et_pb_row:has(.dsm_mega_menu),
.et_flex_row:has(.dsm_mega_menu),
.et_pb_section:has(.dsm_mega_menu),
.et_flex_section:has(.dsm_mega_menu) {
  overflow: visible !important;
  position: relative;
  z-index: 99;
}

.dsm_mega_menu:has(.dsm-mega-menu-item:hover),
.dsm_mega_menu:has(.dsm-active-menu),
.dsm_mega_menu:has(.dsm-show-search-box),
.dsm_mega_menu:has(.dsm-mobile-drawer-open),
.dsm_mega_menu.dsm-mobile-drawer-open,
.dsm_mega_menu.dsm-page-overlay-active,
.et_pb_column:has(.dsm_mega_menu .dsm-mega-menu-item:hover),
.et_pb_column:has(.dsm_mega_menu .dsm-active-menu),
.et_pb_column:has(.dsm_mega_menu .dsm-show-search-box),
.et_pb_column:has(.dsm_mega_menu .dsm-mobile-drawer-open),
.et_pb_column:has(.dsm_mega_menu.dsm-mobile-drawer-open),
.et_pb_column:has(.dsm_mega_menu.dsm-page-overlay-active),
.et_flex_column:has(.dsm_mega_menu .dsm-mega-menu-item:hover),
.et_flex_column:has(.dsm_mega_menu .dsm-active-menu),
.et_flex_column:has(.dsm_mega_menu .dsm-show-search-box),
.et_flex_column:has(.dsm_mega_menu .dsm-mobile-drawer-open),
.et_flex_column:has(.dsm_mega_menu.dsm-mobile-drawer-open),
.et_flex_column:has(.dsm_mega_menu.dsm-page-overlay-active),
.et_pb_row:has(.dsm_mega_menu .dsm-mega-menu-item:hover),
.et_pb_row:has(.dsm_mega_menu .dsm-active-menu),
.et_pb_row:has(.dsm_mega_menu .dsm-show-search-box),
.et_pb_row:has(.dsm_mega_menu .dsm-mobile-drawer-open),
.et_pb_row:has(.dsm_mega_menu.dsm-mobile-drawer-open),
.et_pb_row:has(.dsm_mega_menu.dsm-page-overlay-active),
.et_flex_row:has(.dsm_mega_menu .dsm-mega-menu-item:hover),
.et_flex_row:has(.dsm_mega_menu .dsm-active-menu),
.et_flex_row:has(.dsm_mega_menu .dsm-show-search-box),
.et_flex_row:has(.dsm_mega_menu .dsm-mobile-drawer-open),
.et_flex_row:has(.dsm_mega_menu.dsm-mobile-drawer-open),
.et_flex_row:has(.dsm_mega_menu.dsm-page-overlay-active),
.et_pb_section:has(.dsm_mega_menu .dsm-mega-menu-item:hover),
.et_pb_section:has(.dsm_mega_menu .dsm-active-menu),
.et_pb_section:has(.dsm_mega_menu .dsm-show-search-box),
.et_pb_section:has(.dsm_mega_menu .dsm-mobile-drawer-open),
.et_pb_section:has(.dsm_mega_menu.dsm-mobile-drawer-open),
.et_pb_section:has(.dsm_mega_menu.dsm-page-overlay-active),
.et_flex_section:has(.dsm_mega_menu .dsm-mega-menu-item:hover),
.et_flex_section:has(.dsm_mega_menu .dsm-active-menu),
.et_flex_section:has(.dsm_mega_menu .dsm-show-search-box),
.et_flex_section:has(.dsm_mega_menu .dsm-mobile-drawer-open),
.et_flex_section:has(.dsm_mega_menu.dsm-mobile-drawer-open),
.et_flex_section:has(.dsm_mega_menu.dsm-page-overlay-active) {
  overflow: visible !important;
  position: relative;
  z-index: 10001 !important;
}

.dsm-mega-menu-column-index {
  z-index: 10001 !important;
}

.dsm-mega-menu-container:not(.mobile-menu) .dsm-submenu-container {
  overflow: visible !important;
  position: absolute;
  opacity: 0;
  visibility: hidden;
  padding: 0;
  z-index: 1;
}

/*
 * Animate.css / style.css put the entrance class on `.dsm-submenu-container`
 * (or historically on the parent). Keep animation off until hover/click
 * actually opens the panel so mount/open does not flash.
 */
.dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-item:not(:hover):not(.dsm-active-menu) > .dsm-submenu-container {
  -webkit-animation: none !important;
          animation: none !important;
}

.dsm-mega-menu-container[data-trigger=hover] li:hover > .dsm-submenu-container,
.dsm-mega-menu-container[data-trigger=hover] .dsm-mega-menu-item-root.dsm-active-menu > .dsm-submenu-container,
.dsm-mega-menu-container:not(.mobile-menu) .dsm-mega-menu-item-root.dsm-active-menu > .dsm-submenu-container {
  opacity: 1;
  visibility: visible;
  z-index: 999999999999;
}

/* Same-page anchor clicks: force-hide while pointer is still over the item. */
.dsm-mega-menu-container.dsm-anchor-menu-closed:not(.mobile-menu) .dsm-submenu-container {
  opacity: 0 !important;
  pointer-events: none !important;
  visibility: hidden !important;
}

/*
 * Dropdown margin creates a dead zone between the item and the panel.
 * Bridge MUST be a pseudo on the item (not the submenu): a submenu bridge
 * vanishes the instant :hover is lost in the gap, so the panel can never be
 * reached. Item ::after stays part of the item for :hover hit-testing.
 *
 * Positioned against .dsm-mega-menu-container (item stays position:static so
 * container/fullwidth dropdowns keep working). Width is the item only so
 * siblings are not blocked.
 */
.dsm-mega-menu-container:not(.mobile-menu) {
  position: relative;
}

.dsm-mega-menu-container[data-trigger=hover]:not(.mobile-menu) .dsm-root-menu .dsm-mega-menu-item:has(> .dsm-submenu-container):hover::after,
.dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm-mega-menu-item.dsm-active-menu:has(> .dsm-submenu-container)::after {
  content: "";
  height: var(--dsm-dropdown-hover-bridge, 80px);
  left: var(--dsm-hover-bridge-left, 0);
  pointer-events: auto;
  position: absolute;
  top: var(--dsm-hover-bridge-top, 100%);
  width: var(--dsm-hover-bridge-width, 0);
  z-index: 10002;
}

/*
 * Item-local hover bridge when the positioning context is NOT the
 * mega-menu container:
 * - Fixed / custom-width items are position:relative (offset clamping).
 * - Native WP menus are position:relative (flyout panels).
 * - VB wraps each child in `.et_pb_module { position: relative }`.
 * Container-relative bridge coords then place ::after far off-screen and
 * create a horizontal scrollbar.
 */
.dsm-mega-menu-container[data-trigger=hover]:not(.mobile-menu) .dsm-root-menu .dsm-mega-menu-item.dsm-mega-menu-item-fixed-width:has(> .dsm-submenu-container):hover::after,
.dsm-mega-menu-container[data-trigger=hover]:not(.mobile-menu) .dsm-root-menu .dsm_mega_menu_child_width_custom_width.dsm-mega-menu-item:has(> .dsm-submenu-container):hover::after,
.dsm-mega-menu-container[data-trigger=hover]:not(.mobile-menu) .dsm-root-menu .dsm-mega-menu-item.dsm-native-menu:has(> .dsm-submenu-container):hover::after,
.dsm-mega-menu-container[data-trigger=hover]:not(.mobile-menu) .dsm-root-menu > .et_pb_module .dsm-mega-menu-item:has(> .dsm-submenu-container):hover::after,
.dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm-mega-menu-item.dsm-mega-menu-item-fixed-width.dsm-active-menu:has(> .dsm-submenu-container)::after,
.dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm_mega_menu_child_width_custom_width.dsm-mega-menu-item.dsm-active-menu:has(> .dsm-submenu-container)::after,
.dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm-mega-menu-item.dsm-native-menu.dsm-active-menu:has(> .dsm-submenu-container)::after,
.dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu > .et_pb_module .dsm-mega-menu-item.dsm-active-menu:has(> .dsm-submenu-container)::after {
  left: 0;
  top: 100%;
  width: 100%;
}

/* Vertical: keep side bridges on the submenu (gap is horizontal). */
.dsm_mega_menu_layout_vertical.dsm_mega_menu_dropdown_position_left .dsm-mega-menu-container[data-trigger=hover]:not(.mobile-menu) .dsm-root-menu .dsm-mega-menu-item > .dsm-submenu-container::after {
  bottom: 0;
  content: "";
  height: auto;
  left: auto;
  pointer-events: auto;
  position: absolute;
  right: 100%;
  top: 0;
  width: var(--dsm-dropdown-hover-bridge, 80px);
}

.dsm_mega_menu_layout_vertical.dsm_mega_menu_dropdown_position_right .dsm-mega-menu-container[data-trigger=hover]:not(.mobile-menu) .dsm-root-menu .dsm-mega-menu-item > .dsm-submenu-container::after {
  bottom: 0;
  content: "";
  height: auto;
  left: 100%;
  pointer-events: auto;
  position: absolute;
  right: auto;
  top: 0;
  width: var(--dsm-dropdown-hover-bridge, 80px);
}

.dsm_mega_menu .dsm-mega-menu-open-button .dsm-mobile-open-icon::before {
  font-family: ETmodules !important;
  font-weight: 400;
  content: "a";
  font-size: 32px;
}

.dsm_mega_menu .dsm-mega-menu-container.mobile-menu {
  background: #f1ede1;
}

.dsm_mega_menu .dsm-mega-menu-search-button .dsm_search_icon::before {
  font-family: ETmodules !important;
  font-weight: 400;
  content: "U";
  color: #000000;
  font-size: 18px;
}

/*
 * Close button: `left` positions the RIGHT edge (via translateX(-100%)) so
 * high Left % values (e.g. saved 96%) keep a large icon fully inside the
 * drawer instead of hanging past the edge and clipping.
 * Fallback matches Design defaults (Top 2% / Left 100%).
 */
.dsm-mega-menu-container.mobile-menu .dsm-mega-menu-close-button {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-color: transparent;
  border: none;
  border-width: 0;
  cursor: pointer;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  left: 100%;
  min-height: 44px;
  min-width: 44px;
  padding: 0;
  position: absolute;
  top: 2%;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
  z-index: 99;
}

.dsm_mega_menu .dsm-mega-menu-close-button .dsm_mobile_close_font_icon::before {
  font-family: ETmodules !important;
  font-weight: 400;
  content: "M";
  font-size: 32px;
}

.dsm_mega_menu .dsm-mega-menu-link:focus-visible,
.dsm_mega_menu .dsm-mega-menu-open-button:focus-visible,
.dsm_mega_menu .dsm-mega-menu-close-button:focus-visible,
.dsm_mega_menu .dsm-mega-menu-search-button:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.dsm_mega_menu_child {
  list-style: none;
}

.dsm_mega_menu_child.et_pb_module {
  margin-bottom: 0 !important;
}

.dsm-mega-menu-container.dsm-mega-menu-vertical-layout:not(.dsm-mega-menu-current-placement) .dsm-root-menu .dsm_mega_menu_child.dsm-mega-menu-item {
  position: initial !important;
}

.dsm-mega-menu-container:not(.mobile-menu) {
  /*
   * Custom height: keep overflow:hidden on the rounded wrapper so border-radius
   * clips all corners. Scroll on the inner .dsm-submenu-scroll instead — putting
   * overflow-y on the same node as border-radius reserves a scrollbar gutter and
   * squares off the top/bottom right corners.
   *
   * Selectors are intentionally more specific than cached module dynamic styles
   * (which may still set overflow-y:auto on the inner until the page is re-saved).
   * clip-path is synced via JS to also clip the descendant scrollbar.
   */
}
.dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu li.dsm_mega_menu_child_custom_height_on.dsm_mega_menu_child.dsm-mega-menu-item:not(.dsm-native-menu) > .dsm-submenu-container > .dsm-submenu-inner-container {
  overflow: hidden !important;
  overflow-x: hidden !important;
  overflow-y: hidden !important;
}
.dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu li.dsm_mega_menu_child_custom_height_on.dsm_mega_menu_child.dsm-mega-menu-item:not(.dsm-native-menu) > .dsm-submenu-container > .dsm-submenu-inner-container > .dsm-submenu-scroll {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  height: 100%;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

/*
 * Horizontal Dropdown Width (Container / Fullwidth / Custom) only.
 * Vertical layout uses Position Left/Right + Vertical Dropdown Width (D4 parity).
 */
.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm_mega_menu_child_width_container.dsm_mega_menu_child.dsm-mega-menu-item:not(.dsm-native-menu) .dsm-submenu-container {
  left: 0;
  position: absolute !important;
  width: 100%;
}
.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) {
  /* Same viewport-pin vars as parent fullwidth (FE JS + VB measure). */
}
.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm_mega_menu_child_width_fullwidth.dsm_mega_menu_child.dsm-mega-menu-item:not(.dsm-native-menu) > .dsm-submenu-container {
  left: var(--dsm-vb-fullwidth-submenu-left, 50%) !important;
  margin-left: var(--dsm-vb-fullwidth-submenu-margin-left, -50vw) !important;
  margin-right: var(--dsm-vb-fullwidth-submenu-margin-right, -50vw) !important;
  position: absolute;
  right: auto !important;
  top: auto;
  width: 100vw;
}
.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm_mega_menu_child_width_custom_width.dsm_mega_menu_child.dsm-mega-menu-item .dsm-submenu-container,
.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm_mega_menu_child.dsm-mega-menu-item.dsm-mega-menu-item-fixed-width .dsm-submenu-container {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  left: var(--dsm-fixed-submenu-offset, 0px) !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: var(--dsm-available-viewport-width, calc(100vw - 32px));
  position: absolute !important;
  right: auto !important;
}
.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm_mega_menu_child_width_custom_width.dsm_mega_menu_child.dsm-mega-menu-item,
.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm_mega_menu_child.dsm-mega-menu-item.dsm-mega-menu-item-fixed-width {
  position: relative !important;
}
.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm_mega_menu_child_width_custom_width.dsm_mega_menu_child.dsm-mega-menu-item:not(.dsm-fixed-submenu-ready):not(:hover):not(.dsm-active-menu) > .dsm-submenu-container,
.dsm_mega_menu_layout_horizontal .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu .dsm_mega_menu_child.dsm-mega-menu-item.dsm-mega-menu-item-fixed-width:not(.dsm-fixed-submenu-ready):not(:hover):not(.dsm-active-menu) > .dsm-submenu-container {
  opacity: 0 !important;
  visibility: hidden !important;
}

.dsm_mega_menu_custom_height_on .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu li.dsm-mega-menu-item:not(.dsm-native-menu) > .dsm-submenu-container > .dsm-submenu-inner-container {
  overflow: hidden !important;
  overflow-x: hidden !important;
  overflow-y: hidden !important;
}
.dsm_mega_menu_custom_height_on .dsm-mega-menu-container:not(.mobile-menu) .dsm-root-menu li.dsm-mega-menu-item:not(.dsm-native-menu) > .dsm-submenu-container > .dsm-submenu-inner-container > .dsm-submenu-scroll {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  height: 100%;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

.dsm-mega-menu-container .dsm-root-menu .dsm_mega_menu_child_width_container.dsm_mega_menu_child.dsm-mega-menu-item {
  position: initial !important;
}
.dsm-mega-menu-container .dsm-root-menu .dsm_mega_menu_child_badge_position_absolute.dsm_mega_menu_child.dsm-mega-menu-item .dsm-mega-menu-link {
  position: relative;
}
.dsm-mega-menu-container .dsm-root-menu .dsm_mega_menu_child_badge_position_absolute.dsm_mega_menu_child.dsm-mega-menu-item .dsm-menu-text-wrapper .dsm-badge-text {
  position: absolute;
}
.dsm-mega-menu-container .dsm-root-menu .dsm_mega_menu_child.dsm-native-menu .dsm-submenu-inner-container {
  overflow: visible !important;
}
