/*
 * SEO Image modern navigation v9
 * Loaded only on current marketing templates and always after page CSS.
 * All header/navigation selectors are namespaced to prevent legacy theme or
 * Bootstrap navigation rules from changing the layout.
 */

body.si-modern-navigation {
  margin: 0;
  overflow-x: clip;
}

body.si-modern-navigation .si9-header,
body.si-modern-navigation .si9-header *,
body.si-modern-navigation .si9-header *::before,
body.si-modern-navigation .si9-header *::after {
  box-sizing: border-box;
}

body.si-modern-navigation .si9-header {
  width: 100%;
  position: relative;
  z-index: 900;
  cursor: default;
  background: #f8f8f8;
  font-family: "Source Sans Pro", Arial, sans-serif;
}

body.si-modern-navigation .si9-header-shell {
  width: min(960px, calc(100% - 32px));
  margin: 0 auto;
}

body.si-modern-navigation .si9-nav.si9-header-shell {
  width: min(1180px, calc(100% - 24px));
}

/* Existing phone/social presentation, rebuilt without Bootstrap utilities. */
body.si-modern-navigation .si9-topbar {
  position: relative;
  z-index: 120;
  min-height: 42px;
  background: #202326;
  box-shadow: 0 3px 5px rgba(0, 0, 0, .25);
}

body.si-modern-navigation .si9-topbar-inner {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

body.si-modern-navigation .si9-phone,
body.si-modern-navigation .si9-phone a,
body.si-modern-navigation .si9-phone strong {
  color: #fa713f !important;
  font-size: 17px;
  line-height: 1;
  font-weight: 800;
  text-decoration: none !important;
  white-space: nowrap;
}

body.si-modern-navigation .si9-phone-mobile { display: none; }

body.si-modern-navigation .si9-social {
  float: none !important;
  margin: 0 !important;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-height: 42px;
}

body.si-modern-navigation .si9-social .textwidget,
body.si-modern-navigation .si9-social .widget,
body.si-modern-navigation .si9-social .widget_text {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin: 0 !important;
}

body.si-modern-navigation .si9-livechat { margin: 0 !important; }

/* Main bar. */
body.si-modern-navigation .si9-stick { width: 100%; }
body.si-modern-navigation .si9-nav-bar {
  position: relative;
  z-index: 110;
  width: 100%;
  background: #303132;
  border: 0;
}

body.si-modern-navigation .si9-nav {
  position: relative;
  min-height: 64px;
  display: flex;
  align-items: stretch;
  justify-content: center;
}

body.si-modern-navigation .si9-menu-panel {
  display: flex;
  align-items: stretch;
  justify-content: center;
  width: 100%;
}

body.si-modern-navigation .si9-menu,
body.si-modern-navigation .si9-menu ul,
body.si-modern-navigation .si9-menu li {
  margin: 0;
  padding: 0;
  list-style: none;
}

body.si-modern-navigation .si9-menu {
  display: flex;
  align-items: stretch;
  justify-content: center;
  width: auto;
  max-width: 100%;
}

body.si-modern-navigation .si9-menu > li {
  position: relative;
  display: flex;
  align-items: stretch;
}

body.si-modern-navigation .si9-menu > li > a {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 64px;
  padding: 0 16px;
  color: #f4f5f7 !important;
  background: transparent !important;
  border: 0 !important;
  font-size: 16px;
  line-height: 1.12;
  font-weight: 700;
  letter-spacing: -.01em;
  text-align: center;
  text-decoration: none !important;
  text-shadow: none !important;
  white-space: nowrap;
  transition: background-color .18s ease, color .18s ease;
}

body.si-modern-navigation .si9-menu > li.menu-item-has-children > a {
  padding-right: 34px;
}

body.si-modern-navigation .si9-menu > li.menu-item-has-children > a::after {
  content: "";
  position: absolute;
  right: 16px;
  top: 50%;
  width: 7px;
  height: 7px;
  margin-top: -5px;
  border-right: 2px solid #8f98a4;
  border-bottom: 2px solid #8f98a4;
  transform: rotate(45deg);
  transition: transform .18s ease, border-color .18s ease;
}

body.si-modern-navigation .si9-menu > li:hover > a,
body.si-modern-navigation .si9-menu > li:focus-within > a,
body.si-modern-navigation .si9-menu > li.current-menu-item > a,
body.si-modern-navigation .si9-menu > li.current_page_item > a,
body.si-modern-navigation .si9-menu > li.current-menu-ancestor > a,
body.si-modern-navigation .si9-menu > li.current-menu-parent > a {
  color: #fff !important;
  background: #356ca7 !important;
}

body.si-modern-navigation .si9-menu > li:hover > a::after,
body.si-modern-navigation .si9-menu > li:focus-within > a::after,
body.si-modern-navigation .si9-menu > li.current-menu-ancestor > a::after,
body.si-modern-navigation .si9-menu > li.current-menu-parent > a::after {
  border-color: #fff;
}

/* Refined desktop dropdown panels. */
body.si-modern-navigation .si9-menu > li > .sub-menu {
  position: absolute;
  z-index: 500;
  top: 100%;
  left: 0;
  width: 270px;
  padding: 14px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 3px;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateY(9px);
  background: #fff;
  border: 1px solid #dce3eb;
  border-top: 3px solid #f15a24;
  border-radius: 0 0 12px 12px;
  box-shadow: 0 20px 45px rgba(8, 24, 43, .20), 0 5px 15px rgba(8, 24, 43, .10);
  transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}

body.si-modern-navigation .si9-menu > li:hover > .sub-menu,
body.si-modern-navigation .si9-menu > li:focus-within > .sub-menu {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

body.si-modern-navigation .si9-menu > li:nth-child(1) > .sub-menu,
body.si-modern-navigation .si9-menu > li:nth-child(3) > .sub-menu {
  width: 500px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.si-modern-navigation .si9-menu > li:nth-child(2) > .sub-menu {
  left: 50%;
  width: 560px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  transform: translate(-50%, 9px);
}

body.si-modern-navigation .si9-menu > li:nth-child(2):hover > .sub-menu,
body.si-modern-navigation .si9-menu > li:nth-child(2):focus-within > .sub-menu {
  transform: translate(-50%, 0);
}

body.si-modern-navigation .si9-menu > li:nth-last-child(-n+2) > .sub-menu {
  right: 0;
  left: auto;
}

body.si-modern-navigation .si9-menu .sub-menu li { min-width: 0; }

body.si-modern-navigation .si9-menu .sub-menu a {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 42px;
  padding: 9px 12px 9px 29px;
  border-radius: 7px;
  color: #26384b !important;
  background: transparent !important;
  font-size: 15px;
  line-height: 1.25;
  font-weight: 650;
  text-align: left !important;
  text-decoration: none !important;
  text-shadow: none !important;
  white-space: normal;
  transition: background-color .15s ease, color .15s ease, transform .15s ease;
}

body.si-modern-navigation .si9-menu .sub-menu a::before {
  content: "";
  position: absolute;
  left: 13px;
  top: 50%;
  width: 5px;
  height: 5px;
  margin-top: -2px;
  border-radius: 50%;
  background: #f15a24;
  opacity: .65;
}

body.si-modern-navigation .si9-menu .sub-menu a:hover,
body.si-modern-navigation .si9-menu .sub-menu a:focus,
body.si-modern-navigation .si9-menu .sub-menu .current-menu-item > a {
  color: #174f89 !important;
  background: #edf4fb !important;
  transform: translateX(2px);
}

body.si-modern-navigation .si9-mobile-logo,
body.si-modern-navigation .si9-menu-toggle,
body.si-modern-navigation .si9-mobile-proposal-wrap,
body.si-modern-navigation .si9-submenu-toggle {
  display: none;
}

/* Existing logo/proposal row, rebuilt with flex rather than Bootstrap spans. */
body.si-modern-navigation .si9-logo-band {
  width: 100%;
  background: #f8f8f8;
}

body.si-modern-navigation .si9-logo-row {
  min-height: 102px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 12px 0 14px;
}

body.si-modern-navigation .si9-desktop-logo {
  display: block;
  flex: 0 0 287px;
  width: 287px;
  max-width: 287px;
}

body.si-modern-navigation .si9-desktop-logo img {
  display: block;
  width: 287px;
  max-width: 287px;
  height: 59px;
  transform: translateY(4px);
}

body.si-modern-navigation .si9-header-proposal {
  flex: 0 0 220px;
  width: 220px;
}

body.si-modern-navigation .si9-header-proposal a,
body.si-modern-navigation .si9-mobile-proposal {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 11px 16px;
  border-radius: 8px;
  background: #f45b28 !important;
  color: #fff !important;
  font-size: 16px;
  line-height: 1.1;
  font-weight: 800;
  text-align: center;
  text-decoration: none !important;
  text-shadow: none !important;
  box-shadow: 0 12px 24px rgba(241, 90, 36, .18);
  transition: background-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

body.si-modern-navigation .si9-header-proposal a:hover,
body.si-modern-navigation .si9-header-proposal a:focus,
body.si-modern-navigation .si9-mobile-proposal:hover,
body.si-modern-navigation .si9-mobile-proposal:focus {
  background: #df4f1e !important;
  transform: translateY(-1px);
  box-shadow: 0 15px 28px rgba(241, 90, 36, .24);
}

/* Form visibility guard formerly supplied by the framework. */
body.si-bootstrap-free input[type="hidden"],
body.si-bootstrap-free [hidden],
body.si-bootstrap-free .hidden,
body.si-bootstrap-free .hide {
  display: none !important;
}

body.si-bootstrap-free input[type="hidden"] {
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Keep the sticky-menu plugin wrapper contained without old #main_menu rules. */
body.si-modern-navigation #mysticky-nav,
body.si-modern-navigation #mysticky-nav.wrapfixed,
body.si-modern-navigation #mysticky-nav .myfixed {
  width: 100% !important;
  max-width: 100% !important;
}

body.si-modern-navigation #mysticky-nav.wrapfixed .si9-nav-bar,
body.si-modern-navigation #mysticky-nav.wrapfixed .si9-nav,
body.si-modern-navigation #mysticky-nav.wrapfixed #stick {
  width: 100% !important;
  max-width: 100% !important;
}

@media (max-width: 1180px) and (min-width: 1024px) {
  body.si-modern-navigation .si9-menu > li > a {
    padding-left: 12px;
    padding-right: 12px;
    font-size: 15px;
  }
  body.si-modern-navigation .si9-menu > li.menu-item-has-children > a {
    padding-right: 28px;
  }
  body.si-modern-navigation .si9-menu > li.menu-item-has-children > a::after {
    right: 11px;
  }
}

/* Mobile/tablet navigation becomes a clean accordion at 1023px. */
@media (max-width: 1023px) {
  body.si-modern-navigation .si9-header-shell {
    width: auto;
    margin-left: 22px;
    margin-right: 22px;
  }

  body.si-modern-navigation .si9-phone-desktop { display: none; }
  body.si-modern-navigation .si9-phone-mobile { display: inline; }

  body.si-modern-navigation .si9-nav-bar {
    background: #fff;
    border-top: 0;
    border-bottom: 1px solid #dce2e8;
    box-shadow: 0 3px 12px rgba(15, 28, 42, .14);
  }

  body.si-modern-navigation .si9-nav {
    position: relative;
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  body.si-modern-navigation .si9-mobile-logo {
    display: block;
    width: min(235px, calc(100vw - 108px));
    padding: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  body.si-modern-navigation .si9-mobile-logo img {
    display: block;
    width: 100%;
    max-width: 235px;
    height: auto;
    transform: translateY(3px);
  }

  body.si-modern-navigation .si9-menu-toggle {
    display: inline-flex;
    width: 48px;
    height: 44px;
    padding: 10px;
    flex: 0 0 48px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 8px;
    background: #2b3035;
    box-shadow: none;
    cursor: pointer;
  }

  body.si-modern-navigation .si9-menu-toggle {
    position: relative;
  }

  body.si-modern-navigation .si9-menu-toggle span {
    position: absolute;
    left: 11px;
    display: block;
    width: 24px;
    height: 2px;
    margin: 0;
    border-radius: 2px;
    background: #fff;
    transition: transform .18s ease, opacity .18s ease, top .18s ease;
  }

  body.si-modern-navigation .si9-menu-toggle span:nth-child(1) { top: 12px; }
  body.si-modern-navigation .si9-menu-toggle span:nth-child(2) { top: 20px; }
  body.si-modern-navigation .si9-menu-toggle span:nth-child(3) { top: 28px; }

  body.si-modern-navigation .si9-nav.is-open .si9-menu-toggle span:nth-child(1) {
    top: 20px;
    transform: rotate(45deg);
  }
  body.si-modern-navigation .si9-nav.is-open .si9-menu-toggle span:nth-child(2) { opacity: 0; }
  body.si-modern-navigation .si9-nav.is-open .si9-menu-toggle span:nth-child(3) {
    top: 20px;
    transform: rotate(-45deg);
  }

  body.si-modern-navigation .si9-menu-panel {
    position: fixed;
    z-index: 99989;
    top: var(--si9-panel-top, 110px);
    right: 0;
    bottom: 0;
    left: 0;
    display: none;
    width: 100%;
    max-width: none;
    height: auto;
    min-height: 0;
    max-height: none;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
    touch-action: pan-y;
    padding: 18px 22px calc(38px + env(safe-area-inset-bottom));
    background: #202326;
    border-top: 1px solid rgba(255, 255, 255, .10);
    box-shadow: 0 20px 35px rgba(0, 0, 0, .28);
  }

  body.si-modern-navigation .si9-nav.is-open .si9-menu-panel { display: block; }

  body.si-modern-navigation .si9-mobile-proposal-wrap {
    display: block;
    margin: 0 0 14px;
  }

  body.si-modern-navigation .si9-mobile-proposal {
    min-height: 48px;
    font-size: 17px;
  }

  body.si-modern-navigation .si9-menu {
    display: block;
    width: 100%;
  }

  body.si-modern-navigation .si9-menu > li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px;
    border-bottom: 1px solid rgba(255, 255, 255, .09);
  }

  body.si-modern-navigation .si9-menu > li:not(.menu-item-has-children) {
    grid-template-columns: minmax(0, 1fr);
  }

  body.si-modern-navigation .si9-menu > li > a,
  body.si-modern-navigation .si9-menu > li.menu-item-has-children > a {
    min-height: 50px;
    padding: 13px 12px;
    justify-content: flex-start;
    color: #f6f7f8 !important;
    background: transparent !important;
    font-size: 17px;
    text-align: left;
    white-space: normal;
  }

  body.si-modern-navigation .si9-menu > li.menu-item-has-children > a::after { display: none; }

  body.si-modern-navigation .si9-menu > li.current-menu-item > a,
  body.si-modern-navigation .si9-menu > li.current_page_item > a,
  body.si-modern-navigation .si9-menu > li.current-menu-ancestor > a,
  body.si-modern-navigation .si9-menu > li.current-menu-parent > a {
    color: #fff !important;
    background: rgba(53, 108, 167, .28) !important;
  }

  body.si-modern-navigation .si9-submenu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    min-height: 50px;
    padding: 0;
    border: 0;
    border-left: 1px solid rgba(255, 255, 255, .08);
    background: transparent;
    cursor: pointer;
  }

  body.si-modern-navigation .si9-submenu-toggle::before {
    content: "";
    width: 8px;
    height: 8px;
    border-right: 2px solid #aeb8c3;
    border-bottom: 2px solid #aeb8c3;
    transform: rotate(45deg) translate(-2px, -2px);
    transition: transform .18s ease;
  }

  body.si-modern-navigation .si9-submenu-toggle[aria-expanded="true"]::before {
    transform: rotate(225deg) translate(-1px, -1px);
  }

  body.si-modern-navigation .si9-menu > li > .sub-menu,
  body.si-modern-navigation .si9-menu > li:nth-child(1) > .sub-menu,
  body.si-modern-navigation .si9-menu > li:nth-child(2) > .sub-menu,
  body.si-modern-navigation .si9-menu > li:nth-child(3) > .sub-menu,
  body.si-modern-navigation .si9-menu > li:nth-last-child(-n+2) > .sub-menu {
    position: static;
    grid-column: 1 / -1;
    display: none;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    right: auto !important;
    left: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    overflow: visible;
    padding: 5px 0 13px 14px;
    grid-template-columns: 1fr;
    gap: 2px;
    transform: none !important;
    background: #181b1e;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  body.si-modern-navigation .si9-menu > li.is-submenu-open > .sub-menu { display: grid; }

  body.si-modern-navigation .si9-menu .sub-menu a {
    min-height: 42px;
    padding: 10px 12px 10px 27px;
    color: #e3e8ed !important;
    font-size: 15px;
    font-weight: 600;
  }

  body.si-modern-navigation .si9-menu .sub-menu a::before {
    left: 11px;
    background: #f15a24;
  }

  body.si-modern-navigation .si9-menu .sub-menu a:hover,
  body.si-modern-navigation .si9-menu .sub-menu a:focus,
  body.si-modern-navigation .si9-menu .sub-menu .current-menu-item > a {
    color: #fff !important;
    background: rgba(53, 108, 167, .32) !important;
    transform: none;
  }

  body.si-modern-navigation .si9-menu,
  body.si-modern-navigation .si9-menu > li,
  body.si-modern-navigation .si9-menu .sub-menu,
  body.si-modern-navigation .si9-menu .sub-menu li,
  body.si-modern-navigation .si9-menu .sub-menu a {
    min-width: 0;
    max-width: 100%;
  }

  body.si-modern-navigation .si9-menu .sub-menu a {
    overflow-wrap: anywhere;
    word-break: normal;
  }

  body.si-modern-navigation .si9-logo-band { display: none; }

  body.si-modern-navigation .si9-nav-bar.is-mobile-sticky {
    position: fixed !important;
    z-index: 99990 !important;
    top: 0;
    right: 0;
    left: 0;
    width: 100%;
  }

  body.si-modern-navigation #stick.si9-has-mobile-sticky {
    padding-top: var(--si9-sticky-height, 76px);
  }

  body.admin-bar.si-modern-navigation .si9-nav-bar.is-mobile-sticky {
    top: 46px;
  }
}

@media (max-width: 767px) {
  body.si-modern-navigation .si9-header-shell {
    margin-left: 16px;
    margin-right: 16px;
  }

  body.si-modern-navigation .si9-topbar,
  body.si-modern-navigation .si9-topbar-inner { min-height: 40px; }

  body.si-modern-navigation .si9-phone a,
  body.si-modern-navigation .si9-phone strong { font-size: 15px; }

  body.si-modern-navigation .si9-social { min-height: 40px; }
  body.si-modern-navigation .si9-nav { min-height: 70px; }
  body.si-modern-navigation .si9-mobile-logo { width: min(230px, calc(100vw - 104px)); }
  body.si-modern-navigation .si9-menu-panel { padding-left: 16px; padding-right: 16px; }
}

@media (max-width: 430px) {
  body.si-modern-navigation .si9-topbar-inner { gap: 10px; }
  body.si-modern-navigation .si9-livechat { display: none !important; }
  body.si-modern-navigation .si9-mobile-logo { width: min(218px, calc(100vw - 100px)); }
  body.si-modern-navigation .si9-menu-toggle { width: 44px; flex-basis: 44px; }
}

@media (min-width: 783px) and (max-width: 1023px) {
  body.admin-bar.si-modern-navigation .si9-nav-bar.is-mobile-sticky { top: 32px; }
}

@media (max-width: 767px) {
  body.si-bootstrap-free #footer.si-site-footer .hidden-phone,
  body.si-bootstrap-free .si-btn.hidden-phone {
    display: none !important;
  }
}

@media (min-width: 768px) and (max-width: 979px) {
  body.si-bootstrap-free #footer.si-site-footer .hidden-tablet {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.si-modern-navigation .si9-header *,
  body.si-modern-navigation .si9-header *::before,
  body.si-modern-navigation .si9-header *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* v14 targeted form and mobile-header polish. */
body.si-bootstrap-free .wpcf7 form fieldset.hidden-fields-container,
body.si-bootstrap-free .wpcf7 form .hidden-fields-container,
body.si-modern-navigation .wpcf7 form fieldset.hidden-fields-container,
body.si-modern-navigation .wpcf7 form .hidden-fields-container {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

@media (max-width: 1023px) {
  /* Restore the stronger mobile logo presence while preserving toggle room. */
  body.si-modern-navigation .si9-mobile-logo {
    width: min(290px, calc(100vw - 104px));
  }

  body.si-modern-navigation .si9-mobile-logo img {
    max-width: 290px;
  }

  /* Light control treatment on the white mobile header. */
  body.si-modern-navigation .si9-menu-toggle {
    border-color: #c8cfd6;
    background: #f3f5f7;
    box-shadow: 0 1px 2px rgba(15, 28, 42, .08);
  }

  body.si-modern-navigation .si9-menu-toggle:hover,
  body.si-modern-navigation .si9-menu-toggle:focus-visible,
  body.si-modern-navigation .si9-nav.is-open .si9-menu-toggle {
    border-color: #aeb7c0;
    background: #fff;
  }

  body.si-modern-navigation .si9-menu-toggle span {
    background: #5f6872;
  }
}

@media (max-width: 430px) {
  body.si-modern-navigation .si9-mobile-logo {
    width: min(270px, calc(100vw - 96px));
  }
}

/* ==========================================================
   v15 stability corrections
   - Neutralize the legacy sticky plugin on modern-navigation pages.
   - Keep the mobile drawer header fixed while the drawer scrolls.
   - Lock the page behind an open mobile drawer.
   - Constrain the two modern templates that lost Bootstrap's container width.
   ========================================================== */

/* The old sticky plugin is still present on some templates and can add
   .wrapfixed inconsistently. Modern navigation uses its own fixed state. */
body.si-modern-navigation #mysticky-nav,
body.si-modern-navigation #mysticky-nav.wrapfixed,
body.si-modern-navigation #mysticky-nav .myfixed,
body.si-modern-navigation #mysticky-nav.wrapfixed .myfixed {
  position: static !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  transform: none !important;
  opacity: 1 !important;
}

@media (max-width: 1023px) {
  html.si9-menu-open,
  body.si9-menu-open {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    overscroll-behavior: none;
  }

  body.si9-menu-open {
    position: fixed !important;
    right: 0;
    left: 0;
  }

  body.si-modern-navigation .si9-nav-bar.is-menu-open,
  body.si-modern-navigation .si9-nav-bar.is-mobile-sticky {
    position: fixed !important;
    z-index: 99990 !important;
    top: 0;
    right: 0;
    left: 0;
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important;
  }

  body.si-modern-navigation #stick.si9-has-mobile-sticky,
  body.si-modern-navigation #stick.si9-has-open-menu {
    padding-top: var(--si9-sticky-height, 76px);
  }

  body.admin-bar.si-modern-navigation .si9-nav-bar.is-menu-open,
  body.admin-bar.si-modern-navigation .si9-nav-bar.is-mobile-sticky {
    top: 46px;
  }

  body.si-modern-navigation .si9-menu-panel {
    overscroll-behavior: contain;
  }

  /* Force the final light mobile control treatment even when older cached
     navigation rules or theme button rules are present. */
  body.si-modern-navigation .si9-menu-toggle,
  body.si-modern-navigation .si9-nav.is-open .si9-menu-toggle {
    border-color: #c5ccd3 !important;
    background: #fff !important;
    box-shadow: 0 1px 3px rgba(15, 28, 42, .10) !important;
  }

  body.si-modern-navigation .si9-menu-toggle:hover,
  body.si-modern-navigation .si9-menu-toggle:focus-visible {
    border-color: #aeb7c0 !important;
    background: #f5f7f9 !important;
  }

  body.si-modern-navigation .si9-menu-toggle span {
    background: #737c86 !important;
  }

  body.si-modern-navigation .si9-mobile-logo {
    width: min(305px, calc(100vw - 104px)) !important;
  }

  body.si-modern-navigation .si9-mobile-logo img {
    width: 100% !important;
    max-width: 305px !important;
    transform: translateY(2px) !important;
  }
}

@media (max-width: 430px) {
  body.si-modern-navigation .si9-mobile-logo {
    width: min(278px, calc(100vw - 96px)) !important;
  }

  body.si-modern-navigation .si9-mobile-logo img {
    max-width: 278px !important;
  }
}

@media (min-width: 783px) and (max-width: 1023px) {
  body.admin-bar.si-modern-navigation .si9-nav-bar.is-menu-open,
  body.admin-bar.si-modern-navigation .si9-nav-bar.is-mobile-sticky {
    top: 32px;
  }
}

/* Contact Form 7 6.x can emit the hidden fieldset directly inside the form
   with varying wrapper classes. The class itself is authoritative. */
fieldset.hidden-fields-container,
form fieldset.hidden-fields-container,
.wpcf7 fieldset.hidden-fields-container {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

/* v16 desktop tone and seam correction. */
@media (min-width: 1024px) {
  body.si-modern-navigation .si9-topbar {
    background: #202326;
  }

  body.si-modern-navigation .si9-nav-bar {
    background: #303132;
    border-top: 0 !important;
    border-bottom: 0 !important;
    box-shadow: none;
  }
}

/* ==========================================================
   v18 desktop seam correction
   Some legacy/Bootstrap pages supplied a border or shadow on the wrappers
   between the contact bar and navigation. Reset only the modern header stack.
   ========================================================== */
@media (min-width: 1024px) {
  body.si-modern-navigation #header.si9-header,
  body.si-modern-navigation .si9-topbar,
  body.si-modern-navigation #stick.si9-stick,
  body.si-modern-navigation .si9-nav-bar,
  body.si-modern-navigation .si9-nav {
    border-top: 0 !important;
    border-right: 0 !important;
    border-bottom: 0 !important;
    border-left: 0 !important;
    outline: 0 !important;
  }

  body.si-modern-navigation .si9-topbar,
  body.si-modern-navigation #stick.si9-stick,
  body.si-modern-navigation .si9-nav-bar,
  body.si-modern-navigation .si9-nav {
    box-shadow: none !important;
  }

  body.si-modern-navigation #stick.si9-stick::before,
  body.si-modern-navigation #stick.si9-stick::after,
  body.si-modern-navigation .si9-nav-bar::before,
  body.si-modern-navigation .si9-nav-bar::after {
    content: none !important;
    display: none !important;
  }
}


/* ==========================================================
   v20 desktop header divider
   Cover the legacy one-pixel gap instead of trying to recolor it underneath.
   Mobile header and drawer rules are unchanged.
   ========================================================== */
@media (min-width: 1024px) {
  body.si-modern-navigation .si9-topbar {
    background: #202326 !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body.si-modern-navigation #stick.si9-stick {
    position: relative;
    z-index: 111;
    margin-top: -1px !important;
    padding-top: 1px;
    background: #303132 !important;
    border: 0 !important;
  }

  body.si-modern-navigation .si9-nav-bar {
    background: #303132 !important;
    border-top: 1px solid #0b0c0d !important;
    border-right: 0 !important;
    border-bottom: 0 !important;
    border-left: 0 !important;
    box-shadow: none !important;
  }
}
