.mws-site-header {
  --mws-menu-overlay-backdrop: rgba(0, 0, 0, .42);
  position: relative;
  z-index: var(--mws-z-header);
  background: color-mix(in srgb, var(--mws-header-bg) var(--mws-header-bg-opacity), transparent);
  color: var(--mws-header-text);
  border-bottom: var(--mws-header-border-width) solid var(--mws-header-border);
}


body.mws-transparent-hero-header {
  --mws-header-bg-opacity: 0%;
  --mws-header-border-width: 0px;
  --mws-header-text: var(--mws-transparent-header-text);
  --mws-header-link: var(--mws-transparent-header-link);
  --mws-header-link-hover: var(--mws-transparent-header-link-hover);
  --mws-header-link-active: var(--mws-transparent-header-link-active);
  --mws-header-icon: var(--mws-transparent-header-icon);
  --mws-header-icon-hover: var(--mws-transparent-header-icon-hover);
  --mws-transparent-header-admin-bar-offset: 0px;
}

body.admin-bar.mws-transparent-hero-header {
  --mws-transparent-header-admin-bar-offset: var(--wp-admin--admin-bar--height, 32px);
}

/* WordPress changes the admin toolbar height at its own 782px breakpoint. */
@media screen and (max-width: 782px) {
  body.admin-bar.mws-transparent-hero-header {
    --mws-transparent-header-admin-bar-offset: var(--wp-admin--admin-bar--height, 46px);
  }
}


/* Frontend admin-bar isolation: contain only top-level toolbar items that have
 * wrapped below WordPress' normal toolbar row. Controls are restored while the
 * toolbar is actively hovered/focused, without changing storefront geometry. */
body.admin-bar.mws-adminbar-overflowing:not(.mws-adminbar-overflow-reveal)
#wpadminbar .mws-adminbar-overflow-item {
  visibility: hidden !important;
  pointer-events: none !important;
}

body.admin-bar.mws-adminbar-overflowing.mws-adminbar-overflow-reveal #wpadminbar {
  height: calc(var(--wp-admin--admin-bar--height, 32px) + var(--mws-adminbar-overflow-height, 0px));
  background: #1d2327;
}

@media screen and (max-width: 782px) {
  body.admin-bar.mws-adminbar-overflowing.mws-adminbar-overflow-reveal #wpadminbar {
    height: calc(var(--wp-admin--admin-bar--height, 46px) + var(--mws-adminbar-overflow-height, 0px));
  }
}

body.mws-transparent-hero-header .mws-site-header {
  position: absolute;
  inset-block-start: var(--mws-transparent-header-admin-bar-offset);
  inset-inline: 0;
  background: transparent;
  border-bottom: 0;
}

body.mws-transparent-hero-header .mws-main-header,
.mws-primary-menu,
.mws-mobile-menu,
.mws-mobile-secondary-menu {
  list-style: none;
  padding: 0;
  margin: 0;
}

.mws-primary-menu a,
.mws-mobile-menu a {
  color: var(--mws-header-link);
  text-decoration: none;
}

.mws-primary-menu a:hover,
.mws-mobile-menu a:hover {
  color: var(--mws-header-link-hover);
  text-decoration: underline;
  text-underline-offset: .2em;
}

.mws-main-header {
  position: relative;
  margin: 0;
  background: color-mix(in srgb, var(--mws-header-bg) var(--mws-header-bg-opacity), transparent);
}

.mws-main-header__inner {
  min-height: 64px;
  padding-inline: var(--mws-header-padding-x);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--mws-space-sm);
}

.mws-site-branding {
  min-width: 0;
}

.mws-site-title {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--mws-header-link);
  font-family: var(--mws-font-heading);
  font-weight: 850;
  text-decoration: none;
  font-size: clamp(1.12rem, 5vw, 1.35rem);
  letter-spacing: -.035em;
}

.mws-site-title:hover,
.mws-site-title:focus-visible {
  color: var(--mws-header-link-hover);
}

.mws-primary-nav {
  display: none;
}

.mws-primary-menu {
  gap: var(--mws-menu-link-spacing, 26px);
  align-items: center;
}


.mws-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}

.mws-header-action {
  position: relative;
  width: 42px;
  min-width: 42px;
  height: 42px;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: var(--mws-header-icon);
  background: transparent;
  text-decoration: none;
  padding: 0;
  border: 0;
  line-height: 1;
}

button.mws-header-action {
  color: var(--mws-header-icon);
}

.mws-header-action:hover {
  color: var(--mws-header-icon-hover);
  background: var(--mws-color-surface);
}

.mws-header-action__icon {
  width: 21px;
  height: 21px;
  display: block;
  flex: 0 0 auto;
  line-height: 1;
}

.mws-header-action__label,
.mws-header-cart__text {
  display: none;
}

.mws-header-cart__count {
  position: absolute;
  top: 4px;
  right: 1px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--mws-color-cart-badge-bg);
  color: var(--mws-color-cart-badge-text);
  font-size: .68rem;
  font-weight: 700;
  line-height: 1;
}

.mws-menu-toggle,
.mws-desktop-menu-toggle {
  color: var(--mws-mobile-menu-toggle-base-color, var(--mws-mobile-menu-toggle-color));
}

.mws-menu-toggle {
  width: var(--mws-mobile-menu-toggle-touch-size);
  min-width: var(--mws-mobile-menu-toggle-touch-size);
  height: var(--mws-mobile-menu-toggle-touch-size);
  min-height: var(--mws-mobile-menu-toggle-touch-size);
  color: var(--mws-mobile-menu-toggle-color);
}

.mws-desktop-menu-toggle {
  display: none;
}

.mws-menu-toggle:hover {
  color: var(--mws-mobile-menu-toggle-hover-color);
}

.mws-menu-toggle:focus-visible {
  color: var(--mws-mobile-menu-toggle-focus-color);
}

.mws-desktop-menu-toggle:hover,
.mws-desktop-menu-toggle:focus-visible {
  color: var(--mws-mobile-menu-toggle-base-color, var(--mws-mobile-menu-toggle-color));
}

.mws-menu-toggle__line,
.mws-menu-toggle__line::before,
.mws-menu-toggle__line::after {
  display: block;
  width: 20px;
  height: 2px;
  background: currentColor;
  content: "";
  position: relative;
  border-radius: 999px;
}

.mws-menu-toggle__line::before {
  position: absolute;
  top: -6px;
}

.mws-menu-toggle__line::after {
  position: absolute;
  top: 6px;
}


.mws-menu-toggle .mws-menu-toggle__line,
.mws-menu-toggle .mws-menu-toggle__line::before,
.mws-menu-toggle .mws-menu-toggle__line::after {
  width: var(--mws-mobile-menu-toggle-size);
  height: max(2px, calc(var(--mws-mobile-menu-toggle-size) * .1));
}

.mws-menu-toggle .mws-menu-toggle__line::before {
  top: calc(var(--mws-mobile-menu-toggle-size) * -.3);
}

.mws-menu-toggle .mws-menu-toggle__line::after {
  top: calc(var(--mws-mobile-menu-toggle-size) * .3);
}

.mws-header-search {
  position: absolute;
  inset-inline: 0;
  top: 100%;
  z-index: calc(var(--mws-z-header) + 1);
  border-top: var(--mws-header-border-width) solid var(--mws-header-border);
  border-bottom: var(--mws-header-border-width) solid var(--mws-header-border);
  background: color-mix(in srgb, var(--mws-header-bg) var(--mws-header-bg-opacity), transparent);
  box-shadow: var(--mws-shadow-sm);
}

.mws-header-search__inner {
  padding-block: var(--mws-space-sm);
}

.mws-search-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--mws-space-xs);
  align-items: center;
  width: 100%;
}

.mws-search-form__field {
  min-width: 0;
}

.mws-search-form__submit {
  white-space: nowrap;
  border-radius: var(--mws-radius-sm);
}

.mws-mobile-drawer {
  position: fixed;
  inset: 0;
  background: var(--mws-menu-overlay-backdrop);
  z-index: var(--mws-z-overlay);
}

.mws-mobile-drawer__panel {
  width: min(92vw, var(--mws-mobile-menu-width));
  min-height: 100%;
  max-height: 100dvh;
  margin-left: auto;
  background-color: var(--mws-mobile-menu-bg);
  background: color-mix(in srgb, var(--mws-mobile-menu-bg) var(--mws-mobile-menu-bg-opacity), transparent);
  padding: var(--mws-mobile-menu-padding);
  box-shadow: var(--mws-shadow-md);
  overflow-y: auto;
  overscroll-behavior: contain;
  text-align: var(--mws-mobile-menu-align);
  display: flex;
  flex-direction: column;
}

.mws-mobile-drawer--fullscreen .mws-mobile-drawer__panel {
  width: 100%;
  max-width: none;
  margin-left: 0;
}

.mws-mobile-drawer__header {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--mws-space-sm);
  margin-bottom: var(--mws-space-md);
  padding-bottom: 0;
}

.mws-mobile-drawer__title {
  color: var(--mws-mobile-menu-primary-link);
  font-weight: 700;
  font-size: 1.12rem;
}

.mws-mobile-drawer__close {
  width: var(--mws-mobile-menu-close-size);
  height: var(--mws-mobile-menu-close-size);
  min-width: var(--mws-mobile-menu-close-size);
  min-height: var(--mws-mobile-menu-close-size);
  padding: 0;
  border: var(--mws-menu-close-border-width, var(--mws-mobile-menu-close-border-width)) solid var(--mws-menu-close-border, var(--mws-mobile-menu-close-border));
  border-radius: var(--mws-menu-close-radius, var(--mws-mobile-menu-close-radius));
  background: var(--mws-menu-close-bg, var(--mws-mobile-menu-close-bg));
  color: var(--mws-menu-close-color, var(--mws-mobile-menu-close-color));
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1;
}

.mws-mobile-drawer__close:hover,
.mws-mobile-drawer__close:focus-visible {
  border-color: var(--mws-mobile-menu-close-hover-border);
  background: var(--mws-mobile-menu-close-hover-bg);
  color: var(--mws-mobile-menu-close-hover-color);
}

.mws-mobile-drawer__search {
  margin-bottom: var(--mws-space-md);
}

.mws-mobile-drawer--fullscreen .mws-mobile-drawer__search {
  width: min(100%, 520px);
  margin-inline: auto;
}

.mws-mobile-drawer__search .mws-search-form {
  grid-template-columns: minmax(0, 1fr);
}

.mws-mobile-drawer--fullscreen .mws-mobile-drawer__search .mws-search-form__field {
  min-height: 44px;
  padding-block: .6rem;
}

.mws-mobile-drawer__search .mws-search-form__field {
  border-color: var(--mws-mobile-menu-search-border);
  background: var(--mws-mobile-menu-search-bg);
  color: var(--mws-mobile-menu-search-text);
}

.mws-mobile-drawer__search .mws-search-form__field::placeholder {
  color: color-mix(in srgb, var(--mws-mobile-menu-search-text) 65%, transparent);
}

.mws-mobile-drawer__search .mws-search-form__submit {
  display: none;
}

.mws-mobile-menu a,
.mws-mobile-secondary-menu a {
  display: flex;
  align-items: center;
  justify-content: var(--mws-mobile-menu-align);
  min-height: 40px;
  padding: var(--mws-mobile-menu-link-spacing);
  color: var(--mws-mobile-menu-link);
  font-family: var(--mws-mobile-menu-font, var(--mws-font-menu));
  font-size: var(--mws-mobile-menu-link-size);
  font-weight: var(--mws-mobile-menu-link-weight);
  text-transform: var(--mws-mobile-menu-text-transform);
  text-decoration: none;
  border: 0;
}

.mws-mobile-menu a:hover,
.mws-mobile-menu a:focus-visible,
.mws-mobile-secondary-menu a:hover,
.mws-mobile-secondary-menu a:focus-visible {
  color: var(--mws-mobile-menu-link-hover);
  text-decoration: var(--mws-mobile-menu-hover-decoration, underline);
}

.mws-mobile-secondary-nav__title {
  display: none;
}

.mws-mobile-secondary-nav {
  margin-top: 0;
  padding-top: 0;
  border: 0;
}

/* Header system: single source for logo, layout, colours, transform, and hover decoration. */

/* Logo */
.mws-site-header .mws-site-branding {
  display: flex;
  align-items: center;
  min-width: 0;
}

.mws-site-header .custom-logo-link {
  display: inline-block;
  width: var(--mws-logo-size);
  max-width: min(var(--mws-logo-size), 100%);
  line-height: 0;
}

.mws-site-header .custom-logo {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: calc(var(--mws-header-height) - 12px);
  object-fit: contain;
}

.mws-site-header .mws-site-title {
  color: var(--mws-header-link);
  text-decoration: none;
}

.mws-site-header .mws-site-title:hover,
.mws-site-header .mws-site-title:focus-visible {
  color: var(--mws-header-link-hover);
}

/* Menu colours and states */
.mws-site-header .mws-primary-nav .mws-primary-menu a {
  color: var(--mws-header-link);
}

.mws-site-header .mws-primary-nav .mws-primary-menu a:hover,
.mws-site-header .mws-primary-nav .mws-primary-menu a:focus-visible {
  color: var(--mws-header-link-hover);
  text-decoration: var(--mws-menu-hover-decoration);
}

.mws-site-header .mws-primary-nav .mws-primary-menu > .current-menu-item > a,
.mws-site-header .mws-primary-nav .mws-primary-menu > .current_page_item > a,
.mws-site-header .mws-primary-nav .mws-primary-menu > .current-menu-ancestor > a,
.mws-site-header .mws-primary-nav .mws-primary-menu > .current_page_ancestor > a {
  color: var(--mws-header-link-active);
}

.mws-site-header .mws-mobile-menu .current-menu-item > a,
.mws-site-header .mws-mobile-menu .current_page_item > a,
.mws-site-header .mws-mobile-secondary-menu .current-menu-item > a,
.mws-site-header .mws-mobile-secondary-menu .current_page_item > a {
  color: var(--mws-mobile-menu-link-active);
}

.mws-site-header .mws-primary-menu a {
  text-transform: var(--mws-menu-text-transform);
}

.mws-site-header .mws-primary-menu a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-family: var(--mws-font-menu);
  font-size: var(--mws-font-size-menu);
  font-weight: var(--mws-font-weight-menu);
}


/* Icons */
.mws-site-header .mws-header-action,
.mws-site-header button.mws-header-action {
  color: var(--mws-header-icon);
}

.mws-site-header .mws-header-action:hover,
.mws-site-header .mws-header-action:focus-visible {
  color: var(--mws-header-icon-hover);
}

.mws-site-header .mws-menu-toggle,
.mws-site-header button.mws-menu-toggle {
  color: var(--mws-mobile-menu-toggle-color);
}

.mws-site-header .mws-menu-toggle:hover {
  color: var(--mws-mobile-menu-toggle-hover-color);
}

.mws-site-header .mws-menu-toggle:focus-visible {
  color: var(--mws-mobile-menu-toggle-focus-color);
}

.mws-site-header .mws-desktop-menu-toggle,
.mws-site-header button.mws-desktop-menu-toggle,
.mws-site-header .mws-desktop-menu-toggle:hover,
.mws-site-header .mws-desktop-menu-toggle:focus-visible {
  color: var(--mws-mobile-menu-toggle-base-color, var(--mws-mobile-menu-toggle-color));
}

/* Desktop layout */
@media (min-width: 768px) {
  .mws-main-header__inner {
    min-height: var(--mws-header-height);
    display: grid;
    align-items: center;
    gap: var(--mws-space-md);
    position: relative;
  }

  .mws-site-header--full-width .mws-main-header__inner {
    width: calc(100% - (var(--mws-content-side-padding) * 2));
    max-width: none;
  }

  .mws-primary-nav {
    display: flex;
  }

  .mws-primary-menu {
    display: flex;
  }

  .mws-primary-nav .mws-primary-menu > li > a {
    white-space: nowrap;
  }

  .mws-menu-toggle {
    display: none;
  }

  .mws-site-header--menu-right .mws-main-header__inner {
    grid-template-columns: minmax(170px, .8fr) minmax(0, 1.5fr) auto;
    grid-template-areas: "brand nav actions";
  }

  .mws-site-header--menu-right .mws-site-branding {
    grid-area: brand;
    justify-self: start;
    text-align: left;
  }

  .mws-site-header--menu-right .mws-primary-nav {
    grid-area: nav;
    justify-self: end;
    justify-content: flex-end;
    text-align: right;
  }

  .mws-site-header--menu-right .mws-header-actions {
    grid-area: actions;
    justify-self: end;
  }

  .mws-site-header--menu-center .mws-main-header__inner {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    grid-template-areas:
      "brand"
      "nav";
    justify-items: center;
    row-gap: 0;
  }

  .mws-site-header--menu-center .mws-site-branding {
    grid-area: brand;
    justify-self: center;
    text-align: center;
  }

  .mws-site-header--menu-center .mws-primary-nav {
    grid-area: nav;
    justify-self: center;
    justify-content: center;
    text-align: center;
  }

  .mws-site-header--menu-center .mws-header-actions {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    justify-self: end;
  }

  .mws-site-header--menu-left .mws-main-header__inner {
    grid-template-columns: auto auto 1fr;
    grid-template-areas: "actions nav brand";
  }

  .mws-site-header--menu-left .mws-header-actions {
    grid-area: actions;
    justify-self: start;
  }

  .mws-site-header--menu-left .mws-primary-nav {
    grid-area: nav;
    justify-self: start;
    justify-content: flex-start;
    text-align: left;
  }

  .mws-site-header--menu-left .mws-site-branding {
    grid-area: brand;
    justify-self: end;
    text-align: right;
  }

  .mws-site-header--menu-hamburger .mws-main-header__inner {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "brand actions";
  }

  .mws-site-header--menu-hamburger .mws-site-branding {
    grid-area: brand;
    justify-self: start;
    text-align: left;
  }

  .mws-site-header--menu-hamburger .mws-primary-nav {
    display: none;
  }

  .mws-site-header--menu-hamburger .mws-header-actions {
    grid-area: actions;
    justify-self: end;
  }

  .mws-site-header--menu-hamburger .mws-desktop-menu-toggle {
    display: inline-flex;
  }

  /* Adaptive desktop navigation: keep the horizontal menu only while it fits. */
  .mws-site-header:not(.mws-site-header--menu-hamburger).mws-primary-nav-compact .mws-main-header__inner {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto;
    grid-template-areas: "brand actions";
    justify-items: stretch;
    column-gap: var(--mws-space-sm);
    row-gap: 0;
  }

  .mws-site-header:not(.mws-site-header--menu-hamburger).mws-primary-nav-compact .mws-site-branding {
    grid-area: brand;
    justify-self: start;
    text-align: left;
  }

  .mws-site-header:not(.mws-site-header--menu-hamburger).mws-primary-nav-compact .mws-primary-nav {
    display: none;
  }

  .mws-site-header:not(.mws-site-header--menu-hamburger).mws-primary-nav-compact .mws-header-actions {
    position: static;
    grid-area: actions;
    justify-self: end;
    inset: auto;
    transform: none;
  }

  .mws-site-header:not(.mws-site-header--menu-hamburger).mws-primary-nav-compact .mws-menu-toggle {
    display: inline-flex;
    color: var(--mws-header-icon);
  }

  .mws-site-header:not(.mws-site-header--menu-hamburger).mws-primary-nav-compact .mws-menu-toggle:hover,
  .mws-site-header:not(.mws-site-header--menu-hamburger).mws-primary-nav-compact .mws-menu-toggle:focus-visible {
    color: var(--mws-header-icon-hover);
  }

}



/* Mobile logo sizing */
@media (max-width: 767px) {
  .mws-main-header__inner {
    column-gap: 0;
  }

  .mws-site-header .custom-logo-link {
    width: var(--mws-mobile-logo-size);
    max-width: min(var(--mws-mobile-logo-size), 100%);
  }

  .mws-site-header--mobile-logo-hidden .mws-site-branding {
    display: none;
  }

  .mws-site-header--mobile-toggle-left .mws-main-header__inner {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas: "actions brand";
  }

  .mws-site-header--mobile-toggle-left .mws-header-actions {
    grid-area: actions;
    justify-self: start;
    margin-inline-end: 0;
  }

  .mws-site-header--mobile-toggle-left .mws-site-branding {
    grid-area: brand;
    justify-self: end;
    margin-inline-end: var(--mws-mobile-logo-gap);
    text-align: right;
  }

  .mws-site-header--mobile-toggle-right .mws-main-header__inner {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "brand actions";
  }

  .mws-site-header--mobile-toggle-right .mws-site-branding {
    grid-area: brand;
    justify-self: start;
    margin-inline-start: var(--mws-mobile-logo-gap);
    text-align: left;
  }

  .mws-site-header--mobile-toggle-right .mws-header-actions {
    grid-area: actions;
    justify-self: end;
    margin-inline-start: 0;
  }
}


/* Social links in header and mobile menu */
.mws-header-actions .mws-social-links--header-desktop,
.mws-header-actions .mws-social-links--header-mobile {
  margin-inline-end: 4px;
}

.mws-header-actions .mws-social-links--header-mobile {
  display: none;
}

.mws-mobile-drawer .mws-social-links--mobile-menu {
  width: 100%;
  margin-block: var(--mws-space-md);
  justify-content: var(--mws-mobile-menu-align);
}

.mws-mobile-drawer__panel > .mws-social-links--mobile-menu:last-child {
  margin-top: auto;
  padding-top: var(--mws-space-md);
}

/* Canonical theme shell breakpoint: mobile header through 767px. */
@media (max-width: 767px) {
  .mws-header-actions .mws-social-links--header-desktop {
    display: none;
  }

  .mws-header-actions .mws-social-links--header-mobile {
    display: inline-flex;
  }
}

/* Canonical theme shell breakpoint: desktop header from 768px. */
@media (min-width: 768px) {
  .mws-header-actions .mws-social-links--header-mobile {
    display: none;
  }
}





/* Primary menu hierarchy: native WordPress submenu ownership and disclosure controls. */
.mws-primary-menu .sub-menu,
.mws-mobile-menu .sub-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.mws-submenu-toggle {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  min-width: 36px;
  min-height: 36px;
  padding: 0;
  border-radius: var(--mws-radius-sm);
}

.mws-submenu-toggle:hover,
.mws-submenu-toggle:focus-visible {
  color: var(--mws-color-primary);
  background: color-mix(in srgb, currentColor 8%, transparent);
}

.mws-submenu-toggle__icon {
  width: 8px;
  height: 8px;
  display: block;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transform-origin: center;
  transition: transform .16s ease;
}

.mws-submenu-toggle[aria-expanded="true"] .mws-submenu-toggle__icon {
  transform: rotate(-135deg) translate(-1px, -1px);
}

/* Standard desktop menu: dropdowns and nested flyouts. */
@media (min-width: 768px) {
  .mws-primary-nav .mws-primary-menu > li,
  .mws-primary-nav .mws-primary-menu .sub-menu > li {
    position: relative;
    display: flex;
    align-items: center;
  }

  .mws-primary-nav .mws-primary-menu > li > .mws-submenu-toggle {
    width: 30px;
    min-width: 30px;
    height: 30px;
    min-height: 30px;
    margin-inline-start: -4px;
    color: var(--mws-header-link);
  }

  .mws-primary-nav .mws-primary-menu > li > .mws-submenu-toggle:hover,
  .mws-primary-nav .mws-primary-menu > li > .mws-submenu-toggle:focus-visible {
    color: var(--mws-header-link-hover);
    background: transparent;
  }

  .mws-primary-nav .mws-primary-menu .sub-menu {
    position: absolute;
    z-index: calc(var(--mws-z-header) + 2);
    inset-block-start: calc(100% - 2px);
    inset-inline-start: 0;
    width: max-content;
    min-width: 220px;
    max-width: min(320px, calc(100vw - 32px));
    padding: 8px;
    border: 1px solid var(--mws-color-border);
    border-radius: var(--mws-radius-sm);
    background: var(--mws-color-surface);
    box-shadow: var(--mws-shadow-md);
    text-align: start;
  }

  .mws-primary-nav .mws-primary-menu .sub-menu .sub-menu {
    inset-block-start: -9px;
    inset-inline-start: calc(100% + 6px);
  }

  .mws-primary-nav .mws-primary-menu .sub-menu > li {
    width: 100%;
  }

  .mws-primary-nav .mws-primary-menu .sub-menu > li > a {
    flex: 1 1 auto;
    width: 100%;
    min-height: 38px;
    padding: 7px 10px;
    color: var(--mws-color-text);
    font-size: max(.88rem, calc(var(--mws-font-size-menu) * .92));
    line-height: 1.3;
    text-transform: none;
    white-space: normal;
  }

  .mws-primary-nav .mws-primary-menu .sub-menu > li > a:hover,
  .mws-primary-nav .mws-primary-menu .sub-menu > li > a:focus-visible,
  .mws-primary-nav .mws-primary-menu .sub-menu > .current-menu-item > a,
  .mws-primary-nav .mws-primary-menu .sub-menu > .current_page_item > a {
    color: var(--mws-color-link-hover);
    background: color-mix(in srgb, var(--mws-color-primary) 7%, transparent);
    text-decoration: none;
  }

  .mws-primary-nav .mws-primary-menu .sub-menu .mws-submenu-toggle {
    color: var(--mws-color-text);
  }

  .mws-primary-nav .mws-primary-menu .sub-menu .mws-submenu-toggle__icon {
    transform: rotate(-45deg);
  }

  .mws-primary-nav .mws-primary-menu .sub-menu .mws-submenu-toggle[aria-expanded="true"] .mws-submenu-toggle__icon {
    transform: rotate(135deg);
  }

  /* CSS hover/focus remains a no-JS fallback; JS toggles provide touch/keyboard disclosure. */
  .mws-primary-nav .mws-primary-menu li > .sub-menu {
    display: none;
  }

  .mws-primary-nav .mws-primary-menu li:hover > .sub-menu,
  .mws-primary-nav .mws-primary-menu li:focus-within > .sub-menu,
  .mws-primary-nav .mws-primary-menu li.mws-submenu-open > .sub-menu {
    display: block;
  }
}

/* Mobile and full-screen menu hierarchy: progressively enhanced accordion disclosures. */
.mws-mobile-menu li {
  list-style: none;
}

.mws-mobile-menu .menu-item-has-children {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.mws-mobile-menu .menu-item-has-children > a {
  min-width: 0;
}

.mws-mobile-menu .menu-item-has-children > .sub-menu {
  grid-column: 1 / -1;
  width: 100%;
}

.mws-submenus-ready .mws-mobile-menu .sub-menu[hidden] {
  display: none;
}

.mws-mobile-menu .sub-menu {
  padding-inline-start: clamp(12px, 4vw, 24px);
}

.mws-mobile-menu .sub-menu a {
  min-height: 36px;
  font-size: max(.88rem, calc(var(--mws-mobile-menu-link-size) * .9));
  font-weight: max(400, calc(var(--mws-mobile-menu-link-weight) - 100));
  text-transform: none;
}

.mws-mobile-menu .mws-submenu-toggle {
  color: var(--mws-mobile-menu-link);
}

.mws-mobile-menu .mws-submenu-toggle:hover,
.mws-mobile-menu .mws-submenu-toggle:focus-visible {
  color: var(--mws-mobile-menu-link-hover);
}

/* Keep the mobile close control available while very long menus scroll. */
.mws-mobile-drawer__header {
  position: sticky;
  top: 0;
  z-index: 3;
  background: color-mix(in srgb, var(--mws-mobile-menu-bg) var(--mws-mobile-menu-bg-opacity), transparent);
}

