.nxb-site-header { position: relative; z-index: 50; width: 100%; color: var(--nxb-colour-ink); background: #fff; }
.nxb-site-header--overlay { position: relative; top: auto; left: auto; background: #fff; }
.nxb-site-header__inner { display: grid; width: min(100% - (var(--nxb-gutter) * 2),var(--nxb-container)); min-height: 6.5rem; margin-inline: auto; grid-template-columns: auto 1fr auto; align-items: center; gap: clamp(1.5rem,4vw,4rem); }
.nxb-site-header__brand { display: flex; align-items: center; color: var(--nxb-colour-ink); text-decoration: none; }
.nxb-site-header__brand-crop { position: relative; display: block; width: 13.5rem; height: 5.75rem; overflow: hidden; }
.nxb-site-header__brand-crop img { position: absolute; width: 16.4rem; max-width: none; height: auto; transform: translate(-1.65rem,-2.55rem); mix-blend-mode: multiply; }
.nxb-site-header__brand-mark { display: grid; width: 3.4rem; height: 3.4rem; place-items: center; border: .45rem solid var(--nxb-colour-brand); color: #fff; background: #06100d; font-size: 1.65rem; font-weight: 900; transform: rotate(30deg); }
.nxb-site-header__brand-mark::first-letter { transform: rotate(-30deg); }
.nxb-site-header__brand-text { display: flex; flex-direction: column; line-height: 1; text-transform: uppercase; }
.nxb-site-header__brand-text strong { font-size: 2rem; letter-spacing: -.04em; }
.nxb-site-header__brand-text small { margin-top: .28rem; font-size: .58rem; font-weight: 700; letter-spacing: .24em; }
.nxb-main-navigation { justify-self: center; }
.nxb-main-navigation__list, .nxb-main-navigation__submenu { margin: 0; padding: 0; list-style: none; }
.nxb-main-navigation__list { display: flex; align-items: center; gap: clamp(1.2rem,2.5vw,2.7rem); }
.nxb-main-navigation__item { position: relative; display: flex; align-items: center; }
.nxb-main-navigation a { position: relative; padding: 1rem 0; color: var(--nxb-colour-ink); font-size: .78rem; font-weight: 750; letter-spacing: .025em; text-decoration: none; text-transform: uppercase; }
.nxb-main-navigation__item > a::after { content: ""; position: absolute; right: 0; bottom: .65rem; left: 0; height: 2px; background: var(--nxb-colour-brand-bright); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.nxb-main-navigation__item > a:hover::after, .nxb-main-navigation__item.is-active > a::after { transform: scaleX(1); }
.nxb-main-navigation__item.has-children:hover > a::after, .nxb-main-navigation__item.has-children:focus-within > a::after, .nxb-main-navigation__item.has-children.submenu-open > a::after { transform: scaleX(0); }
.nxb-submenu-toggle { width: 1.6rem; height: 2.5rem; padding: 0; border: 0; background: transparent; cursor: pointer; }
.nxb-submenu-toggle span { display: block; width: .5rem; height: .5rem; margin: -.2rem auto 0; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.nxb-main-navigation__submenu { position: absolute; top: calc(100% - .5rem); left: -.9rem; display: none; width: 15rem; padding: .75rem; border-top: 3px solid var(--nxb-colour-brand); border-radius: 0 0 var(--nxb-radius-small) var(--nxb-radius-small); background: #fff; box-shadow: 0 18px 35px rgba(0,0,0,.18); }
.nxb-main-navigation__submenu a { display: block; padding: .7rem .6rem; font-size: .72rem; }
.nxb-main-navigation__item:hover > .nxb-main-navigation__submenu, .nxb-main-navigation__item:focus-within > .nxb-main-navigation__submenu, .nxb-main-navigation__item.submenu-open > .nxb-main-navigation__submenu { display: block; }
.nxb-menu-toggle { display: none; }

@media (max-width: 1050px) {
    .nxb-site-header__inner { min-height: 5.8rem; grid-template-columns: auto auto 1fr; }
    .nxb-site-header__brand-crop { width: 10rem; height: 4.25rem; }
    .nxb-site-header__brand-crop img { width: 12.2rem; transform: translate(-1.22rem,-1.9rem); }
    .nxb-menu-toggle { display: flex; justify-self: end; align-items: center; gap: .65rem; padding: .65rem; border: 0; color: var(--nxb-colour-ink); background: transparent; cursor: pointer; }
    .nxb-menu-toggle__label { font-size: .75rem; font-weight: 800; text-transform: uppercase; }
    .nxb-menu-toggle__icon, .nxb-menu-toggle__icon::before, .nxb-menu-toggle__icon::after { display: block; width: 1.5rem; height: 2px; background: currentColor; transition: transform .2s ease; }
    .nxb-menu-toggle__icon { position: relative; }
    .nxb-menu-toggle__icon::before, .nxb-menu-toggle__icon::after { content: ""; position: absolute; left: 0; }
    .nxb-menu-toggle__icon::before { top: -.45rem; }
    .nxb-menu-toggle__icon::after { top: .45rem; }
    .nxb-menu-toggle[aria-expanded="true"] .nxb-menu-toggle__icon { background: transparent; }
    .nxb-menu-toggle[aria-expanded="true"] .nxb-menu-toggle__icon::before { top: 0; transform: rotate(45deg); }
    .nxb-menu-toggle[aria-expanded="true"] .nxb-menu-toggle__icon::after { top: 0; transform: rotate(-45deg); }
    .nxb-main-navigation { position: fixed; inset: 5.8rem 0 0; display: none; overflow-y: auto; padding: 1rem var(--nxb-gutter) 3rem; background: #fff; box-shadow: inset 0 1px 0 var(--nxb-colour-line); }
    .nxb-main-navigation.menu-open { display: block; }
    .nxb-main-navigation__list { display: block; }
    .nxb-main-navigation__item { display: grid; grid-template-columns: 1fr auto; border-bottom: 1px solid var(--nxb-colour-line); }
    .nxb-main-navigation a { display: block; padding: 1rem 0; font-size: 1rem; }
    .nxb-main-navigation__item > a::after { display: none; }
    .nxb-submenu-toggle { width: 3rem; height: 3rem; }
    .nxb-main-navigation__submenu { position: static; grid-column: 1/-1; width: 100%; padding: 0 0 .7rem 1.2rem; border: 0; background: var(--nxb-colour-surface); box-shadow: none; }
    .nxb-main-navigation__submenu a { font-size: .85rem; }
    .nxb-site-header__cta { justify-self: end; min-height: 2.8rem; padding: .65rem 1rem; }
}
@media (max-width: 620px) {
    .nxb-site-header__inner { grid-template-columns: 1fr auto; gap: .5rem; }
    .nxb-menu-toggle { grid-column: 2; grid-row: 1; }
    .nxb-site-header__cta { display: none; }
    .nxb-site-header__brand-text strong { font-size: 1.55rem; }
}
