.site-header {
    position: fixed;
    top:0;
    left:50%;
    transform:translateX(-50%);
    width:100vw;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    transition: transform var(--anim-duration) var(--anim-easing);
    will-change: transform;
    isolation: isolate;
    /* contain: paint; */
    box-sizing: border-box;
}
.site-header .header-bg {
    position: absolute;
    inset: 0;
    top:0;
    left:0;
    /* z-index: -1; */
    /* transition: background var(--anim-duration) var(--anim-easing); */
    backdrop-filter: blur(5px);
    will-change: background;
}
.header-scrolled .header-bg {
    background: rgba(0,0,0,0.45);
}
.site-header .header-message {
    display: flex;
    align-items: center;
    justify-content: center;
    padding:var(--s5-8) var(--block-padding-x);
    background-color: var(--light-grey);
    flex: 1 0 100%;
    width: 100%;
    font-size: var(--s10-14);
    text-align: center;
}
:root {
    --header-content-padding-y: var(--s5-8);
}
.site-header .header-content {
    z-index: 1;
    max-width: var(--maxWidthPX);
    /* width: 100%; */
    padding: var(--s10-20) var(--block-padding-x);
    justify-content: space-between;
    width: 100%;
    flex: 1;
    min-width: 0;
    /* margin: auto; */
    display: flex;
    flex-direction: row;
    /* will-change: padding; */
    /* transition: padding var(--anim-duration) var(--anim-easing); */
    gap: var(--list-gap-wide);
    justify-content: space-around;
    flex-wrap:nowrap;
    box-sizing: border-box;
    position: relative;
}

.site-header .header-content > * {
    display:flex;
    flex-direction: row;
    flex: 1 1 0; 
    min-width: 0;
}
.site-header .header-content > .logo-container {
    display:flex;
    flex-direction:column;
    position: relative;
    justify-self: center;
    align-self: center;
    flex: 0 0 auto;
    overflow:visible;
    z-index: 999;
}
.site-header .header-logo {
    width: clamp(50px, calc((82 / var(--maxWidth)) * 100vw), 82px);
    will-change: transform;
    transition: 
        transform var(--anim-duration) var(--anim-easing);
    display:flex;
    justify-content: center;
    color: var(--white);
    mix-blend-mode: normal;
    filter: drop-shadow(0px 0px var(--s3-5) rgba(0,0,0,0.15));
}

.site-header .header-nav-container,
.site-header .header-nav-container nav, 
.site-header .header-nav-container .nav-wrapper{
    display: flex;
    flex-direction: row;
    gap:var(--list-gap-med);
    justify-content: center;
    justify-items: center;
    align-items: center;
}
.site-header .header-nav-container, 
.site-header .header-nav-container .menu-container {
    justify-content: flex-start;
    display:flex;
    align-items:center;
}
.site-header .header-nav-container .menu-container .feature-nav {
    display:none;
}
.site-header .header-content >:last-of-type:not(.nav-toggle) {
    align-content:flex-end;
    justify-content:flex-end;
}

.site-header .header-nav-container a:not(.btn) {
    color: var(--white);
    text-decoration: none;
    font-size: var(--s12-16);
    position: relative;
    z-index: 1;
}
.site-header .header-nav-container a:not(.btn):hover,
.site-header .header-nav-container a:not(.btn)[aria-expanded='true'] {
    text-decoration: underline;
}
.site-header .header-nav-container a + ul {
    /* height:0; */
    max-height:0;
    overflow:hidden;
    width:0;
    margin: 0 0 0 calc(var(--list-gap-med) * -1);
    padding: 0;
    position: relative;
    transition: max-height var(--anim-duration) var(--anim-easing);
    will-change: max-height;
}

.site-header .header-nav-container > .header-nav a {
    transition: color var(--anim-duration) var(--anim-easing);
    will-change: color;
}
.site-header .header-nav-container > .header-nav a.active:hover {
    text-decoration: none;
} 
.site-header .header-nav-container > .header-nav a::before,
.site-header .header-nav-container > .header-nav a::after {
    z-index: -1;
    position: absolute;
    top:50%;
    left:50%;
    width: calc(100% + var(--s10-14));
    height: calc(100% + (var(--s10-14) * 0.66));
    border-radius: var(--s1-3);
    content: "";
    transform: translate(-50%, -50%) scale(0.5);
    transition:
        opacity var(--anim-duration) var(--anim-easing),
        transform var(--anim-duration) var(--anim-easing);
    will-change: opacity, transform;
    opacity: 0;
    pointer-events: none;
}
.site-header .btn {
    font-size: var(--s12-18);
    min-width:0;
    padding: var(--button-padding-y) var(--s16-25);
}
.site-header .nav-toggle {
    display: block;
    background: none;
    border: none;
    cursor: pointer;
    z-index: 1001;
    height: 35px;
    width: 35px;
    max-width: 35px;
    box-sizing: border-box;
    /* background: var(--white); */
    position:absolute;
    padding: 0;
    right:0;
    pointer-events: none;
    top: 50%;
    transform: translate(-50%, -50%);
    visibility: hidden;
    opacity:0;
    transition:opacity var(--anim-duration) var(--anim-easing);
    will-change: opacity, visibility;
}
.hamburger, .hamburger::before, .hamburger::after,
[burger], [burger]::before, [burger]::after {
    display: block;
    width: 100%;
    max-width: 35px;
    /* box-sizing: border-box; */
    /* border-top: calc(var(--s0_5-1) * 0.5) solid var(--white); */
    /* border-right: 0!important; */
    /* border-left: 0 !important; */
    /* background: var(--main-text-colour); */
    position: absolute;
    top: 50%;
    transition: all var(--anim-duration);
    border-radius: var(--s0_5-1);
    left: 50%;
    transform: translate(-50%, -50%);
    /* transform-origin: center; */
    /* box-sizing: border-box; */
    height: var(--s0_5-1);
    background: var(--white);
    /* transform: translate(calc((35px / 2) * -1), -50%); */
    border: 0;
    padding: 0;
}
.hamburger::before, .hamburger::after,
[burger]::before, [burger]::after {
    content: '';
    position: absolute;
    top: -8px;
    left: 50%;
    width: 100%;
    max-width: 35px;
    height: var(--s0_5-1);
    background: var(--white);
    transform: translate(calc((35px / 2) * -1), -50%);
 }
.hamburger::after,
[burger]::after
 {
    top: 8px;
    /* bottom: -8px; */
    width: 80%;
}
.hamburger:hover,
[burger]:hover {
    transform: scale(1.1) translate(-50%, -50%);
}
.is-open .hamburger,
.site-header.header-scrolled .is-open .hamburger {
    background: #fff0;
    border-color: #fff0;
    
}
.is-open .hamburger::before {
    transform: translate(-50%, -50%) rotate(45deg);
    top: 0;
    border-color: var(--white);
}
.is-open .hamburger::after {
    transform: translate(-50%, -50%) rotate(-45deg);
    top: 0;
    width:100%;
    border-color: var(--white);
}

/* Header States */

.site-header.header-hidden {
    transform: translateY(-100%) translateX(-50%);
}

.site-header.header-scrolled .header-bg {
    box-shadow: 0 2px 20px rgba(0,0,0,0.1);
    opacity: 0.95;
}

.site-header.header-scrolled .hamburger, 
.site-header.header-scrolled .hamburger::before, 
.site-header.header-scrolled .hamburger::after {
    /* background:var(--main-text-colour); */
}
/* Mobile Nav State */
html.nav-open {
    overflow: hidden; /* Prevents background scroll when menu is open */
    position: relative;
    touch-action: none
}

@media(max-width:1080px){
    .site-header .nav-toggle {
        opacity:1;
        visibility:visible;
        pointer-events: auto;
    }
    .site-header .header-nav-container .menu-container {
        position: fixed;
        top: 0;
        z-index: 1;
        right: -100%;
        height: 100vh;
        width: 90%;
        padding-right: var(--header-content-padding-y);
        background: rgb(0 0 0 / .45);
        flex-direction: column;
        padding: 80px 10% 80px 0;
        will-change: right, opacity, transform, filter;
        transition: 
            right var(--anim-duration) var(--anim-easing),
            opacity var(--anim-duration) var(--anim-easing);
        overflow-y: auto;
        box-shadow: 0 10px rgb(0 0 0 / .15);
        opacity: 0;
        backdrop-filter: blur(10px);
        flex-direction: column;
        color:var(--white);
        box-sizing: border-box;
        border-left: 0.5px solid var(--white);
        justify-content: center;
        justify-content: flex-start;
        /* mask: linear-gradient(to bottom, black 0%, rgba(0,0,0,0) 100%); */
    }
    .site-header .header-nav-container .menu-container .header-nav {
        flex-direction:column;
    }
    
    .site-header .header-nav a.header-link {
        color: var(--white);
        font-size: var(--s18-22-min-768);
    }
    .site-header .feature-nav {
        position: fixed;
        bottom: calc(-100vh + 100%);
        transform: translate(0vw, 0%);
        width: 100vw;
        box-sizing: border-box;
        left: 0%;
        padding: var(--s8-16);
        will-change: transform, bottom;
        transition: 
            bottom var(--anim-duration) var(--anim-easing),
            transform var(--anim-duration) var(--anim-easing);
    }
    .site-header .feature-nav:before {
         content:"";
         position:absolute;
         bottom:0;
         left:50%;
         transform:translate(-50%, 100%);
         background:rgba(0,0,0,0.45);
         pointer-events:none;
         height:200%;
         width:200vw;
         mask:linear-gradient(to top, black 0%, transparent 100%);
         z-index:-1;
         transition:transform var(--anim-duration) var(--anim-easing);
         will-change:transform;
         backdrop-filter:blur(10px);
         filter:blur(25px);
         opacity:0.85;
     }
     .site-header .feature-nav:hover:before {
         transform:translate(-50%, 0);
     }
    .site-header .feature-nav > .btn {
        display: flex;
        flex: 0 0 25%;
        /* width: 22%; */
        max-width: 45%;
        font-size: calc(var(--s12-18) * 0.85);
        padding: calc(var(--button-padding-y) * 0.85) calc(var(--s16-25) * 1.5);
        opacity: 0.5;
        transition: 
            opacity var(--anim-duration) var(--anim-easing),
            transform var(--anim-duration) var(--anim-easing);
        will-change: opacity, transform;
    }
    .site-header .feature-nav:hover > .btn {
        opacity: 1;
    }

    .site-header .feature-nav > a.btn:after {
        border: 0.5px solid var(--white);
        box-shadow: var(--engagement-shadow);
        /* border-radius: var(--s1-3); */
    }
    .site-header.header-hidden .feature-nav {
        transform: translate(0vw, 100%);
        bottom: calc(-100vh - 100%);
    } 

    /* mob menu */
    .kw-nav-panels {
        opacity:0;
        pointer-events:none;
    }
    .site-header .header-nav-container .nav-wrapper {
        --vp: 80px;
        --o: calc(var(--vp) + var(--s16-36));
        padding: calc(--vp) 0;
        mask: linear-gradient(to bottom, rgba(0,0,0,0) var(--vp), #000 var(--o), #000 calc(100% - var(--o)), rgba(0,0,0,0) calc(100% - var(--vp)));
        overflow-y: auto;
        height: calc(100% + (var(--vp) * 2));
        max-height: 100vh;
        align-items: start;
        width: 100%;
        margin: calc(var(--vp) * -1) 0;
        position: relative;
        padding: var(--o) 0;
    }
    .site-header .header-nav-container nav.kw-nav {
        flex-direction:column;
        width: 100%;
        gap: var(--s16-36);
    }
    .site-header .header-nav-container nav.kw-nav ul {
        display:flex;
        flex-direction:column;
        justify-content:center;
        align-items:center;
        max-height: unset;
        padding:0;
        margin:auto;
        opacity: 1;
        z-index: 1;
        width: 100%;
        overflow: visible;
        list-style:none;
        text-align:center;
        margin-bottom: var(--s16-36);
    }
    .site-header .header-nav-container nav.kw-nav ul a[show-in-mob="false"],
    .site-header .header-nav-container nav.kw-nav ul a[show-in-mob="0"],
    .site-header .header-nav-container nav.kw-nav ul li[show-in-mob="false"] > a:first-of-type,
    .site-header .header-nav-container nav.kw-nav ul a[show-in-mob="0"] > a:first-of-type {
        display:none;
    }
    .site-header .header-nav-container a:not(.btn):not(.sub-menu a) {
        font-size: calc(var(--s12-16) * 1.4);
    }
    
    .site-header .header-nav-container nav.kw-nav .sub-menu .sub-menu {
        margin-bottom:var(--list-gap-med);
    }
    .site-header .header-nav-container nav.kw-nav ul ul:last-of-type, .site-header .header-nav-container nav.kw-nav .sub-menu .sub-menu:last-of-type {
        margin-bottom: 0;
        padding-bottom: 0;
    }
    
}

.site-header .menu-container.nav-active {
    right: 0%;
    opacity: 1;
}