:root {
    /* assuming logo is tallest element, then use: header padding * 2 + logo height */
    --site-header--height: calc(var(--wp--preset--spacing--medium) * 2 + 2.889em);
    --site-header--height-pinned: calc(1em + 2em + 5px);
}

.wp-block-site-header {
    position: relative;
    z-index: 9999;
}

.wp-block-site-header .site-header {
    background-color: var(--wp--preset--color--base);
    margin: 0 auto;
    padding: calc(1.5rem + var(--wp--preset--font-size--x-small) + var(--wp--preset--spacing--medium))
        var(--wp--preset--spacing--medium) var(--wp--preset--spacing--medium);
    position: absolute;
    top: 0;
    transition: padding var(--transition);
    width: 100%;
    z-index: 1;
}

.site-header__container {
    align-items: center;
    column-gap: 3.2em; /* 60 / 18.64 */
    display: flex;
    margin: 0 auto;
    max-width: var(--wp--style--global--wide-size);
}

.site-header__logo img {
    display: block;
    height: 2.889em;
    transition: all var(--transition);
    width: auto;
}

.site-header__mobile-nav-status {
    display: none;
}

/* Pinned Header
--------------------------------------------- */

.wp-block-site-header--is-pinned .site-header {
    border-bottom: 5px solid var(--wp--preset--color--secondary);
    padding-bottom: 0.5em;
    padding-top: 0.5em;
    position: fixed;
}

.wp-block-site-header--is-pinned .site-header__logo {
    clip-path: inset(0 80% 0 0);
}

.wp-block-site-header--is-pinned .site-header__logo img {
    height: 2em;
}

/* Desktop Navigation
--------------------------------------------- */

@media (min-width: 1024px) {
    .site-header__mobile-nav-trigger {
        display: none;
    }

    /* Desktop Nav Links
    --------------------------------------------- */

    .site-header__nav {
        align-items: center;
        display: flex;
        gap: var(--wp--preset--spacing--medium);
        margin-left: auto;
    }

    .site-nav-links {
        align-items: center;
        display: flex;
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .site-nav-links > .menu-item {
        margin: 0;
        position: relative;
    }

    .site-nav-links > .menu-item:not(.wp-element-button) > a {
        color: var(--wp--preset--color--main);
        display: block;
        font-weight: 600;
        line-height: 1.2;
        padding-inline: calc(var(--wp--preset--spacing--medium) / 2);
        text-decoration: none;
    }

    @media (max-width: 1250px) {
        .site-nav-links > .menu-item:not(.wp-element-button) > a {
            padding-inline: calc(var(--wp--preset--spacing--small) / 2);
        }
    }

    @media (max-width: 1200px) {
        .site-nav-links > .menu-item:not(.wp-element-button) > a {
            font-size: var(--wp--preset--font-size--small);
        }
    }

    .site-nav-links > .menu-item:not(.wp-element-button):first-child > a {
        padding-left: 0;
    }

    .site-nav-links > .menu-item:not(.wp-element-button):last-child > a {
        padding-right: 0;
    }

    .site-nav-links > .menu-item:not(.wp-element-button, .menu-item--is-donate) > a:hover {
        color: var(--wp--preset--color--secondary-accent);
        font-weight: 700;
        letter-spacing: -0.0275em;
    }

    .site-nav-links > .menu-item:not(.wp-element-button) > a:hover {
        text-decoration: underline;
        text-decoration-thickness: 12.5%;
    }

    .site-nav-links > .menu-item.menu-item--is-donate > a {
        color: var(--wp--preset--color--primary-accent);
        font-weight: 700;
    }

    .site-nav-links > .menu-item:is(.wp-element-button) > a {
        color: var(--wp--preset--color--base);
    }

    .site-nav-links > .menu-item:is(.wp-element-button) > a:hover {
        text-decoration: none;
    }

    .site-nav-links .sub-menu {
        display: none;
    }
}

/* Mobile Navigation
--------------------------------------------- */

@media (max-width: 1023px) {
    :root {
        --site-header--height: calc(var(--wp--preset--spacing--x-small) * 2 + 2.889em + 1px);
        --site-header--height-pinned: calc(var(--wp--preset--spacing--xx-small) * 2 + 2em + 1px);
        --site-header--mobile-nav-background:
            url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22200%22%20height%3D%22200%22%3E%3Cfilter%20id%3D%22n%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%220.80%22%20numOctaves%3D%223%22%20stitchTiles%3D%22stitch%22%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20filter%3D%22url(%23n)%22%20opacity%3D%220.3%22%2F%3E%3C%2Fsvg%3E"),
            linear-gradient(
                130deg,
                var(--wp--preset--color--primary) 1.69%,
                var(--wp--preset--color--secondary) 183.48%
            );
    }

    .wp-block-site-header .site-header {
        border-bottom: 1px solid var(--wp--preset--color--border-light);
    }

    .wp-block-site-header:not(.wp-block-site-header--is-pinned) .site-header {
        padding: var(--wp--preset--spacing--x-small) calc(4.5rem + var(--wp--preset--spacing--x-small))
            var(--wp--preset--spacing--x-small) var(--wp--preset--spacing--x-small);
    }

    .wp-block-site-header.wp-block-site-header--is-pinned .site-header {
        padding: var(--wp--preset--spacing--xx-small) calc(4.5rem + var(--wp--preset--spacing--x-small))
            var(--wp--preset--spacing--xx-small) var(--wp--preset--spacing--x-small);
    }

    /* Mobile Menu Trigger
    --------------------------------------------- */

    .site-header__mobile-nav-trigger {
        --mobile-nav-trigger-color: var(--wp--preset--color--base);
        align-items: center;
        background: var(--site-header--mobile-nav-background);
        border: 0;
        cursor: pointer;
        gap: var(--wp--preset--spacing--20);
        height: 100%;
        isolation: isolate;
        justify-content: center;
        padding: 0;
        position: absolute;
        right: 0;
        text-transform: uppercase;
        top: 0;
        width: 4.5rem;
    }

    .site-header__mobile-nav-trigger::before {
        background: #000;
        content: "";
        inset: 0;
        opacity: 0;
        pointer-events: none;
        position: absolute;
        transition: opacity var(--transition);
        z-index: -1;
    }

    .site-header__mobile-nav-status:checked ~ .site-header__mobile-nav-trigger::before {
        opacity: 1;
    }

    .site-header__mobile-nav-trigger-text {
        color: var(--mobile-nav-trigger-color);
        font-size: 14px;
        font-weight: 600;
        line-height: 1;
    }

    .site-header__mobile-nav-burger {
        background: var(--mobile-nav-trigger-color);
        display: block;
        height: 2px;
        position: relative;
        top: 0;
        width: 14px;
    }

    .site-header__mobile-nav-burger::before,
    .site-header__mobile-nav-burger::after {
        background: var(--mobile-nav-trigger-color);
        content: "";
        display: block;
        height: 100%;
        position: absolute;
        top: 5px;
        transition: all var(--transition);
        width: 100%;
    }

    .site-header__mobile-nav-burger::after {
        top: -5px;
    }

    .site-header__mobile-nav-status:checked ~ .site-header__mobile-nav-trigger .site-header__mobile-nav-burger {
        background: transparent;
    }

    .site-header__mobile-nav-status:checked ~ .site-header__mobile-nav-trigger .site-header__mobile-nav-burger::before,
    .site-header__mobile-nav-status:checked ~ .site-header__mobile-nav-trigger .site-header__mobile-nav-burger::after {
        top: 0;
    }

    .site-header__mobile-nav-status:checked ~ .site-header__mobile-nav-trigger .site-header__mobile-nav-burger::before {
        transform: rotate(-45deg);
    }

    .site-header__mobile-nav-status:checked ~ .site-header__mobile-nav-trigger .site-header__mobile-nav-burger::after {
        transform: rotate(45deg);
    }

    .site-header__mobile-nav-trigger {
        display: flex;
    }

    /* Mobile Flyout Menu 
    --------------------------------------------- */

    .site-header__logo,
    .site-header__mobile-nav-trigger {
        z-index: 3;
    }

    .wp-block-site-header::before {
        background-color: var(--wp--preset--color--primary);
        content: "";
        height: 100%;
        left: 0;
        top: 0;
        position: absolute;
        width: 100%;
        z-index: 2;
    }

    .site-header__nav {
        background: #fff;
        border-bottom: 1px solid var(--wp--preset--color--border-light);
        border-top: 1px solid var(--wp--preset--color--border-light);
        display: block;
        left: 0;
        max-height: max(0px, calc(100dvh - var(--site-header--bottom, var(--site-header--height))));
        overflow-y: auto;
        overscroll-behavior: contain;
        position: absolute;
        top: 100%;
        transform: translateY(calc(-200% - 5px));
        transition:
            transform var(--transition),
            visibility var(--transition);
        visibility: hidden;
        width: 100%;
        z-index: 1;
    }

    .site-header__mobile-nav-status:checked ~ .site-header__nav {
        transform: translateY(0);
        visibility: visible;
    }

    .wp-block-site-header--is-pinned .site-header__nav {
        top: calc(100% + 1px);
    }

    .site-header__nav-links {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .site-header__nav-links > .menu-item {
        font-size: var(--wp--preset--font-size--large);
    }

    .site-header__nav-links > .menu-item > a {
        background: var(--site-header--mobile-nav-background);
        color: var(--wp--preset--color--base);
        display: block;
        font-weight: 600;
        padding: 0.75em var(--wp--preset--spacing--small);
    }

    .site-header__nav-links > .menu-item > a:hover {
        text-decoration: none;
    }

    .site-header__nav-links > .menu-item.wp-element-button {
        display: inline-block;
        margin-top: var(--wp--preset--spacing--small);
    }

    .site-header__nav-links > .menu-item.wp-element-button > a {
        color: var(--wp--preset--color--base);
        padding: 0.5em var(--wp--preset--spacing--small);
    }

    .site-header__nav-links .sub-menu {
        display: none;
    }
}
