.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content {
    font-weight: 900;
}

/* Style any navigation block with a style variation */
:root :where(.wp-block-navigation[class*="is-style-"]) {
    --nav-link-padding-x: 0.5rem;
    --nav-link-padding-y: 0.563rem;
    --nav-link-color: currentColor;
    --nav-link-hover-color: var(--wp--preset--color--primary);
    --nav-link-active-color: var(--nav-link-hover-color);
    --nav-font-size: 1.063rem;
    --nav-link-gap: var(--wp--preset--spacing--20);
    --nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out;
    --nav-dropdown-toggle-icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" stroke="%23212529" aria-hidden="true"><path stroke-width="1.5" d="M1.5 4 6 8l4.5-4"/></svg>');
    --nav-dropdown-toggle-icon-margin: .438rem;
    --nav-dropdown-toggle-icon-width: .75rem;
    --nav-dropdown-toggle-icon-height: var(--nav-dropdown-toggle-icon-width);
    --nav-dropdown-toggle-icon-offset: calc(var(--nav-dropdown-toggle-icon-width) + var(--nav-link-padding-x) + var(--nav-dropdown-toggle-icon-margin));
    
    font-size: var(--nav-font-size);
    gap: var(--nav-link-gap);
}

:root :where(ul.wp-block-navigation[class*="is-style-"]) {
    --wp--custom--focus--offset: calc(var(--wp--custom--focus--width) * -2);
}

/* Responsive navs like use use high-specificity overrides, so make sure they use our styles */
    :root :where(.wp-block-navigation[class*="is-style-"]),
    .wp-block-navigation[class*="is-style-"]:not(.has-background) .wp-block-navigation__responsive-container {
        background-color: var(--nav-bg-color, inherit);
    }

    :root :where(.wp-block-navigation[class*="is-style-"]),
    .wp-block-navigation[class*="is-style-"]:not(.has-text-color) .wp-block-navigation__responsive-container {
        color: var(--nav-link-color);
    }

    .wp-block-navigation[class*="is-style-"] .wp-block-navigation-item,
    .wp-block-navigation[class*="is-style-"] .wp-block-navigation__container {
        background: inherit !important;
        color: inherit !important;
    }

    .wp-block-navigation[class*="is-style-"]:not(.has-background) .wp-block-navigation__submenu-container {
        background-color: var(--nav-dropdown-bg-color, var(--nav-bg-color, inherit)) !important;
    }

    .wp-block-navigation[class*="is-style-"]:not(.has-text-color) .wp-block-navigation__submenu-container {
        color: var(--nav-dropdown-color, var(--nav-link-color)) !important;
    }
/* End force to use our colors */


:root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation-item__content:hover {
    color: var(--nav-link-hover-color);
}

:root :where(.wp-block-navigation[class*="is-style-"]) .current-menu-item > .wp-block-navigation-item__content,
:root :where(.wp-block-navigation[class*="is-style-"]) .current-menu-ancestor > .wp-block-navigation-item__content,
:root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation-item > .wp-block-navigation-item__content[aria-expanded="true"] {
    color: var(--nav-link-active-color);
}

:root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation-item__content {
    transition: var(--nav-link-transition);
}

:root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation-item__content.wp-block-navigation-item__content,
:root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation__submenu-container .wp-block-navigation-item__content.wp-block-navigation-item__content.wp-block-navigation-item__content {
    padding: var(--nav-link-padding-y) var(--nav-link-padding-x);
}

:root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation__submenu-container {
    --nav-dropdown-min-width: 16rem;
    --nav-dropdown-padding-x: .25rem;
    --nav-dropdown-padding-y: .25rem;
    --nav-dropdown-border-radius: 0;
    --nav-dropdown-border-width: 1px;
    --nav-dropdown-border-color: rgba(0, 0, 0, 0.175);
    --nav-dropdown-bg-color: var(--wp--preset--color--base);
    --nav-dropdown-color: var(--wp--preset--color--contrast);
    --nav-dropdown-font-size: .938rem;
    --nav-submenu-offset-x: 0;
    --nav-dropdown-top-spacer: 0;

    --nav-link-padding-y: .438rem;

    padding: var(--nav-dropdown-padding-x) var(--nav-dropdown-padding-y);
    border-radius: var(--nav-dropdown-border-radius);
    font-size: var(--nav-dropdown-font-size);
}

:root :where(.wp-block-navigation[class*="is-style-"]).wp-block-navigation .wp-block-navigation__submenu-container {
    border: var(--nav-dropdown-border-width) solid var(--nav-dropdown-border-color);
}

:root :where(.wp-block-navigation[class*="is-style-"]) .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true]~.wp-block-navigation__submenu-container,
:root :where(.wp-block-navigation[class*="is-style-"]) .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within>.wp-block-navigation__submenu-container {
    min-width: var(--nav-dropdown-min-width);
}

:where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation__submenu-container:not(.wp-block-navigation__overlay-container *) {
    --nav-link-padding-x: 1em;
    --nav-link-padding-y: calc(var(--nav-link-padding-x) * 0.5);
}

:root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
    text-decoration: underline;
}


/* Submenu Icon */
:root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation__submenu-icon svg {
    display: none;
}

:root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation__submenu-icon {
    --wp--custom--focus--offset: 0;

    width: var(--nav-dropdown-toggle-icon-width);
    height: var(--nav-dropdown-toggle-icon-height);
    margin-left: 0;
}

:root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation__submenu-icon::before {
    content: "";
    display: block;
    height: 100%;
    background-color: currentColor;
    -webkit-mask-image: var(--nav-dropdown-toggle-icon);
        mask-image: var(--nav-dropdown-toggle-icon);
    -webkit-mask-repeat: no-repeat;
        mask-repeat: no-repeat;
    mask-size: cover;
}

:root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation-submenu:not(.open-always) > .wp-block-navigation-item__content,
:root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation__submenu-container .wp-block-navigation-submenu:not(.open-always) > .wp-block-navigation-item__content.wp-block-navigation-item__content {
    padding-right: calc(var(--nav-dropdown-toggle-icon-offset));
}

:root .wp-block-navigation[class*="is-style-"] .wp-block-navigation-submenu .wp-block-navigation__submenu-icon {
    transform: translateX(calc((var(--nav-dropdown-toggle-icon-width) + var(--nav-link-padding-x)) * -1));
    margin-left: 0;
    margin-right: calc(var(--nav-dropdown-toggle-icon-width) * -1);
    flex-shrink: 0;
}

:root :where(.wp-block-navigation[class*="is-style-"]) > .current-menu-item > .wp-block-navigation__submenu-icon,
:root :where(.wp-block-navigation[class*="is-style-"]) > .current-menu-ancestor > .wp-block-navigation__submenu-icon {
    color: var(--nav-link-active-color);
}


@media (prefers-reduced-motion: no-preference) {
    /* Transition toggle arrows */
    :root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation__submenu-icon::before {
        transition: transform 0.15s ease-in-out;
    }
}

:root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation-submenu__toggle[aria-expanded="true"] + .wp-block-navigation__submenu-icon::before {
    transform: rotate(-180deg);
}

/* Override the submenu icon rotation for toggles inside dropdowns */
:root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon::before,
:root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation__submenu-container .wp-block-navigation-submenu__toggle[aria-expanded="true"] + .wp-block-navigation__submenu-icon::before {
    transform: rotate(-90deg);
}

/* Mobile Menu Toggle */
:root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation__responsive-container-open {
    padding: .75rem;
    border: var(--wp--custom--border--width) solid var(--wp--preset--color--borders);
    border-radius: var(--wp--custom--border--radius);
}


@media (max-width: 782px) {
    /* Use custom classes to make the mobile nav/logo site side by side */
    .navbar {
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .navbar__brand {
        flex-grow: 1;
    }

    :root .navbar__nav-wrapper {
        /* Remove all possible group styles to they don't afect the mobile nav */
        border: 0 !important;
        background-color: transparent !important;
    }

    /* Alter the breakpoint at which the menu switches to non-collapsed nav */
    .wp-block-navigation__responsive-container-open:not(.always-shown) {
        display: flex;
    }
    .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
        display: none;
    }
}

/* Submenus always open adjustments */
/* Menus are always vertical in this case, since that's the only time 'Always' is shown as an option */
:root :where(.wp-block-navigation[class*="is-style-"]) .has-child.open-always .wp-block-navigation__submenu-container,
:root :where(.wp-block-navigation[class*="is-style-"]) .has-child.open-always.wp-block-navigation-submenu {
    gap: var(--nav-link-gap);
}

:root :where(.wp-block-navigation[class*="is-style-"]) .has-child.open-always .wp-block-navigation__submenu-container {
    padding-left: var(--nav-dropdown-padding-x);
    padding-right: var(--nav-dropdown-padding-x);
    align-items: var(--navigation-layout-align);
}

:root :where(.wp-block-navigation[class*="is-style-"]) .has-child.open-always .wp-block-navigation__submenu-container > .wp-block-navigation-item>.wp-block-navigation-item__content,
:root :where(.wp-block-navigation[class*="is-style-"]) .has-child.open-always > .wp-block-navigation-item__content {
    flex-grow: 1;
}


/* Vertical Layout Styles */
:is(nav, div).wp-block-navigation {
    container-name: nav-wrapper;
}

@container nav-wrapper style(--navigation-layout-direction: column) {
    :root :where(.wp-block-navigation[class*="is-style-"]) {
        --nav-link-gap: 0;
    }    

    .wp-block-navigation.wp-block-navigation {
        --navigation-layout-align: stretch;

        align-self: stretch; /* cant'style container, so set itself */
    }

    .wp-block-navigation[class*="is-style-"] .wp-block-navigation-item__content {
        flex-grow: 1;
    }

    .wp-block-navigation[class*="is-style-"] .has-child {
        flex-wrap: wrap;
    }

    :root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation__submenu-container {
        --nav-dropdown-min-width: 100%;
        --nav-dropdown-border-width: 0;
        --nav-dropdown-bg-color: transparent;
        --nav-dropdown-padding-x: 0;
        --nav-dropdown-padding-y: 0; /* No height showing on collapses submenus */
        --nav-submenu-offset-x: .75em;
    }

    :root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation__submenu-container .wp-block-navigation-item {
        padding-left: var(--nav-submenu-offset-x);
    }

    :root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon::before {
        transform: rotate(0deg);
    } 
    
    :root :where(.wp-block-navigation[class*="is-style-"]) .wp-block-navigation__submenu-container .wp-block-navigation-submenu__toggle[aria-expanded="true"] + .wp-block-navigation__submenu-icon::before {
        transform: rotate(-180deg);
    }

    :where(.wp-block-navigation[class*="is-style-"]) .has-child .wp-block-navigation-submenu__toggle ~ .wp-block-navigation__submenu-container,
    :where(.wp-block-navigation[class*="is-style-"]) .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within>.wp-block-navigation__submenu-container {
        position: static;
    }

    /* Override some dropdown styles to prep for fancy open/close animations */
    :root :where(.wp-block-navigation[class*="is-style-"]) .open-on-click > .wp-block-navigation-submenu__toggle ~ .wp-block-navigation__submenu-container {
        display: none; /* so dropdown items aren't focusable */
        visibility: visible;
        opacity: 1;
        width: 100%;
    }

    @media (prefers-reduced-motion: no-preference) {
        /* Transition open/close */
        :root :where(.wp-block-navigation[class*="is-style-"]) .open-on-click > .wp-block-navigation-submenu__toggle ~ .wp-block-navigation__submenu-container {
            interpolate-size: allow-keywords;
            transition-behavior: allow-discrete;
            overflow-y: clip;
            overflow-x: visible;
            transition: block-size 0.2s, display 0.2s allow-discrete;
            min-block-size: 0;
        }
        
        :root :where(.wp-block-navigation[class*="is-style-"]) .open-on-click > .wp-block-navigation-submenu__toggle[aria-expanded="false"] ~ .wp-block-navigation__submenu-container {
            block-size: 0;
        }

        :root :where(.wp-block-navigation[class*="is-style-"]) .open-on-click > .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
            block-size: auto;
            display: flex;
        }

        @starting-style {
            :root :where(.wp-block-navigation[class*="is-style-"]) .open-on-click > .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
                block-size: 0;
            }
        }
    }
}

/* "Mobile" styles, but they are scoped to the navs inside the navigation overlay container */
    :root :where(.wp-block-navigation__overlay-container) .wp-block-navigation[class*="is-style-"] {
        --nav-dropdown-toggle-icon-width: .875rem;
    }


/* BOTTOM BORDER STYLE */
    :root :where(ul.is-style-bottom-border-nav) {
        --nav-underline-border-width: 4px;
        --nav-underline-border-color: currentColor;
    }

    :root :where(ul.is-style-bottom-border-nav) > .wp-block-navigation-item > .wp-block-navigation-item__content {
        border-bottom: var(--nav-underline-border-width) solid transparent;
        transition: var(--nav-link-transition), border-color .15s ease-in-out;
    }

    :root :where(ul.is-style-bottom-border-nav) > .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
    :root :where(ul.is-style-bottom-border-nav) > .current-menu-item > .wp-block-navigation-item__content,
    :root :where(ul.is-style-bottom-border-nav) > .current-menu-ancestor > .wp-block-navigation-item__content,
    :root :where(ul.is-style-bottom-border-nav) > .wp-block-navigation-item > .wp-block-navigation-item__content[aria-expanded="true"] {
        border-bottom-color: var(--nav-underline-border-color);
    }

    @container nav-wrapper style(--navigation-layout-direction: column) {
        :root :where(ul.is-style-bottom-border-nav) .wp-block-navigation__submenu-container {
            --nav-dropdown-top-spacer: .75rem;
            --nav-submenu-offset-x: var(--nav-dropdown-top-spacer);
        }

        :root :where(ul.is-style-bottom-border-nav) > .has-child:not(.open-always) > .wp-block-navigation__submenu-container > .wp-block-navigation-item:first-child {
            margin-top: var(--nav-dropdown-top-spacer);
        }
    }


/* SIDE BORDERED STYLE */
    :root :where(ul.is-style-side-border-nav) {
        --nav-link-padding-x: 1rem;
        --nav-link-padding-y: 0.5rem;
        --nav-link-gap: 0;
        --nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out;
        --nav-dropdown-toggle-icon-width: .938rem;
        --nav-link-color: var(--wp--preset--color--contrast);
        --nav-bg-color: var(--wp--preset--color--base);
    }

    :root :where(ul.is-style-side-border-nav) > .wp-block-navigation-item {
        padding: 2px;
    }

    :root :where(ul.is-style-side-border-nav) > .wp-block-navigation-item  {
        border: var(--wp--custom--border--width) solid var(--wp--preset--color--borders);
    }    

    :root :where(ul.is-style-side-border-nav) .wp-block-navigation-item + .wp-block-navigation-item {
        border-top-width: 0;
    }

    :root :where(ul.is-style-side-border-nav) .wp-block-navigation-item > .wp-block-navigation-item__content {
        border-left: 3px solid transparent;
    }

    :root :where(ul.is-style-side-border-nav) .wp-block-navigation-item__content:hover {
        text-decoration: underline;
    }

    :root :where(ul.is-style-side-border-nav) > .current-menu-item > .wp-block-navigation-item__content,
    :root :where(ul.is-style-side-border-nav) > .current-menu-ancestor > .wp-block-navigation-item__content {
        border-color: var(--nav-link-active-color);
    }


/* SIMPLE UNDERLINE STYLE */
    :root :where(ul.is-style-simple-underline-nav) {
        --nav-link-padding-x: 0.89rem;
        --nav-link-padding-y: 0.5rem;
        --nav-link-hover-color: currentColor;
        --nav-link-gap: 0;
    }

    :root :where(ul.is-style-simple-underline-nav) > .current-menu-item > .wp-block-navigation-item__content,
    :root :where(ul.is-style-simple-underline-nav) .current-menu-ancestor > .wp-block-navigation-item__content,
    :root :where(ul.is-style-simple-underline-nav) .wp-block-navigation-item__content:hover {
        text-decoration: underline 1.5px currentColor;
        text-underline-offset: 6px;
    }

/* PLAIN STYLE */
:root :where(ul.is-style-plain-nav) {
    --nav-link-hover-color: currentColor;
}

:root :where(ul.is-style-plain-nav) .wp-block-navigation-item__content:hover {
    text-decoration: underline;
}

    @container nav-wrapper style(--navigation-layout-direction: column) {
        :root :where(ul.is-style-plain-nav) {
            --nav-link-margin-y: .25rem;

            --wp--custom--focus--offset: var(--wp--custom--focus--width);
        }

        :root :where(ul.is-style-plain-nav),
        :root :where(ul.is-style-plain-nav) .wp-block-navigation__submenu-container {
            --nav-link-padding-y: 0px;
            --nav-link-padding-x: 0px; /* px unit needed because property is used in calc() and can't be unitless */
        }

        :root :where(ul.is-style-plain-nav) .wp-block-navigation-item .wp-block-navigation-item__content.wp-block-navigation-item__content {
            margin-top: var(--nav-link-margin-y);
            margin-bottom: var(--nav-link-margin-y);
        }
    }


/* UTILITIES */
@media (max-width: 782px) {
    .is-vertical-on-mobile {
        --navigation-layout-direction: column;
    }
}

@media (min-width: 783px) {
    .has-nav-padding-offset .wp-block-navigation {
        position: relative;
        left: calc( var(--nav-link-padding-x) * -1 ); /* Offset the padding on the first item */
    }
}

.wp-block-navigation.no-active-marker .current-menu-item > .wp-block-navigation-item__content,
.wp-block-navigation.no-active-marker .current-menu-ancestor > .wp-block-navigation-item__content {
    font-weight: inherit;
}