// stylelint-disable custom-property-pattern, csstools/value-no-unknown-custom-properties @use '../variables' as *; // stylelint-disable a11y/no-display-none, plugin/file-max-lines @media only screen and (min-width: $breakpoint-nav) { // Need to use display: none here to make sure mobile nav-toggle is visually hidden on desktop button.nav-toggle { display: none; } // Navigation wrapper .nav-primary { padding-bottom: 0; padding-top: 0; } // Navigation unordered list wrapper element .menu-items { align-items: center; background-color: transparent; display: flex; gap: var(--gap-main-level-horizontal); margin: 0; padding: 0; position: relative; } // Navigation list item .menu-item { margin: 0; position: relative; } // Menu items .menu-item > a, .menu-item-clickable { align-items: center; color: var(--color-main-level); display: inline-flex; font-size: var(--typography-size-main-level); font-weight: var(--typography-weight-main-level); margin-left: 0; margin-right: 0; padding-bottom: var(--padding-main-level-vertical); padding-left: var(--padding-main-level-horizontal); padding-right: var(--padding-main-level-horizontal); padding-top: var(--padding-main-level-vertical); white-space: nowrap; } .menu-item .sub-menu a, .menu-item .sub-menu .menu-item-clickable { align-items: center; color: var(--color-sub-menu); display: inline-flex; font-size: var(--typography-size-sub-menu); font-weight: var(--typography-weight-sub-menu); line-height: 1.5; padding-bottom: var(--padding-sub-menu-link-vertical); padding-left: var(--padding-sub-menu-link-horizontal); padding-right: var(--padding-sub-menu-link-horizontal); padding-top: var(--padding-sub-menu-link-vertical); white-space: normal; width: 100%; } // Current menu item color .menu-item.current-menu-parent > a, .menu-item.current-menu-item > a { color: var(--color-current); } // Let's make space for the nav-toggle/arrow .menu-item.menu-item-has-children a { transition: background-color 0.2s cubic-bezier(0.19, 1, 0.22, 1); } .menu-item > a:hover, .menu-item > a:focus { color: var(--color-hover-main-level); } .menu-item .sub-menu a:hover, .menu-item .sub-menu a:focus { color: var(--color-hover-sub-menu); } // Stop flash of submenus on page load, reduce CLS // add progressive enhancement for no JS .no-js { // Pretend its out of viewport since we cant measure it .sub-menu { display: none; left: unset; right: 0; // All dropdowns in level 2 and after .sub-menu { left: unset; right: 100%; } } .menu-item-has-children:focus, .menu-item-has-children:focus-within, .menu-item-has-children:hover { & > .sub-menu { display: block; } } } // Progressive enhancement: Dropdown toggle with js enabled .js .sub-menu { margin-top: var(--gap-dropdown); opacity: 0; visibility: hidden; } // All dropdowns in level 2 and after .js .sub-menu .sub-menu { margin-top: calc(-1 * var(--padding-sub-menu-vertical)); } // Dropdowns .sub-menu { background-color: var(--color-background-sub-menu); border: 1px solid var(--wp--preset--color--black); left: 0; margin-left: 0; opacity: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; padding-top: 0; position: absolute; top: 100%; transition: all 0.2s cubic-bezier(0.19, 1, 0.22, 1); width: var(--width-sub-menu); z-index: 9; // If dropdown is out of viewport from the right, move it to the left &.is-out-of-viewport { left: unset; right: 0; // All dropdowns in level 2 and after .sub-menu { left: unset; right: 100%; } } // If main level is not out of viewport but if sub-menu under it is .sub-menu.is-out-of-viewport { left: unset; right: 100%; } // All dropdowns in level 2 and after .sub-menu { left: 100%; margin-left: 0; top: 0; } li { padding: 0; } } .sub-menu.toggled-on { opacity: 1; transform: translateY(0%); visibility: visible; z-index: 12; } .menu-item-clickable { background-color: transparent; border: 0; cursor: pointer; gap: var(--gap-between-dropdown-toggle); justify-content: space-between; pointer-events: auto; position: relative; text-align: left; width: 100%; } .menu-item-clickable::after { background-image: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' width='var(--dropdown-toggle-size)' height='var(--dropdown-toggle-size)' viewBox='0 0 12 7'%3E%3Cpath fill-rule='evenodd' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M1.385 1.417L6 5.583m4.615-4.166L6 5.583'/%3E%3C/svg%3E "); background-position: 50% 50%; content: ''; height: var(--dropdown-toggle-size); transition: transform 0.35s cubic-bezier(0.19, 1, 0.22, 1); width: var(--dropdown-toggle-size); } .menu-item-clickable.toggled-on::after { transform: rotate(-90deg) rotateX(0deg); } // Main level dropdown toggle .menu-items > .menu-item-has-children > .menu-item-clickable.toggled-on::after { transform: rotate(-180deg) rotateX(0deg); } }