    /* SHELL — relative positioning context for sticky header */
    body .wol-shell.wol-shell {
        position: relative;
    }

    /* ============================================
       STRIP — full-width, normal flow, scrolls away
       ============================================ */
    body .wol-strip.wol-strip {
        background-color: var(--color-granite);
        color: var(--color-white);
        font-family: var(--font-sans);
        font-size: var(--font-ps);
        font-weight: 500;
        letter-spacing: var(--ls-tight);
        width: 100%;
    }
    body .wol-strip.wol-strip .wol-strip__inner {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: var(--space-m);
        max-width: 1920px;
        margin: 0 auto;
        padding: var(--space-3xs) var(--space-l);
    }
    body .wol-strip.wol-strip .wol-strip__item,
    body .wol-strip.wol-strip .wol-strip__appt {
        display: inline-flex;
        align-items: center;
        gap: var(--space-3xs);
        color: inherit;
        text-decoration: none;
        transition: color var(--dur-fast) var(--ease-snap);
    }
    body .wol-strip.wol-strip .wol-strip__item:hover,
    body .wol-strip.wol-strip .wol-strip__appt[href]:hover { color: var(--color-accent); }
    body .wol-strip.wol-strip .wol-strip__appt {
        flex: 1;
        justify-content: center;
        text-align: center;
    }
    body .wol-strip.wol-strip .wol-strip__icon { display: inline-flex; align-items: center; flex-shrink: 0; }
    body .wol-strip.wol-strip .wol-strip__icon svg { width: 12px; height: 14px; display: block; }

    @media (max-width: 1024px) {
        body .wol-strip.wol-strip { display: none; }
    }

/* ============================================
       HEADER — fixed, positioned below strip at rest, snaps to top on scroll
       ============================================ */
    .wol-header {
        position: fixed;
        top: var(--wol-strip-height, 0px);
        left: 0;
        right: 0;
        z-index: 1000;
        width: 100%;
        transition: top var(--dur-fast) var(--ease-snap);
    }
    .wol-header.is-scrolled {
        top: 0;
    }

    /* No transitions until the header has settled.
       --wol-strip-height is unset in CSS, so `top` first resolves to the 0px
       fallback and only becomes the real strip height once global.js has
       measured it. With `transition: top` live from the start, that change
       animates — which is the header sliding down on every page load. Same
       for the is-scrolled background/padding when a page opens part-scrolled.
       global.js adds .is-ready after the first painted frame. */
    .wol-header:not(.is-ready),
    .wol-header:not(.is-ready)::before,
    .wol-header:not(.is-ready) * {
        transition: none !important;
    }

    /* WP admin bar offsets — only affects logged-in users */
    body.admin-bar .wol-header { top: calc(var(--wol-strip-height, 0px) + 32px); }
    body.admin-bar .wol-header.is-scrolled { top: 32px; }
    @media screen and (max-width: 782px) {
        body.admin-bar .wol-header { top: calc(var(--wol-strip-height, 0px) + 46px); }
        body.admin-bar .wol-header.is-scrolled { top: 46px; }
    }
    @media screen and (max-width: 600px) {
        body.admin-bar .wol-header { top: var(--wol-strip-height, 0px); }
        body.admin-bar .wol-header.is-scrolled { top: 0; }
    }
    .wol-header::before {
        content: "";
        position: absolute;
        inset: 0;
        background-color: transparent;
        transition: background-color var(--dur-normal) var(--ease-snap);
        pointer-events: none;
        z-index: -1;
    }
    .wol-header.is-scrolled::before {
        background-color: var(--color-granite);
    }

    body .wol-header.wol-header .wol-header__row {
        position: relative;
        z-index: 2;
        transition: padding var(--dur-normal) var(--ease-snap);
        padding-block: var(--space-xs);
    }
    body .wol-header.wol-header.is-scrolled .wol-header__row {
        padding-block: var(--space-2xs);
    }
    body .wol-header.wol-header .wol-header__inner {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        align-items: center;
        gap: var(--space-m);
        padding-inline: var(--space-l);
        max-width: 1920px;
        margin: 0 auto;
    }
    body .wol-header.wol-header .wol-header__logo { justify-self: start; }
    body .wol-header.wol-header .wol-nav { justify-self: center; }
    body .wol-header.wol-header .wol-header__cta,
    body .wol-header.wol-header .wol-header__hamburger { justify-self: end; }

    body .wol-header.wol-header .wol-header__logo {
        display: inline-flex;
        align-items: center;
        flex-shrink: 0;
    }
    body .wol-header.wol-header .wol-header__logo .wol-logo-svg {
        display: block;
        width: 54px;
        height: auto;
        transition: width var(--dur-normal) var(--ease-snap);
    }
    body .wol-header.wol-header.is-scrolled .wol-header__logo .wol-logo-svg { width: 44px; }

    /* Desktop nav */
    body .wol-header.wol-header .wol-nav {
        display: flex;
        justify-content: center;
    }
    body .wol-header.wol-header .wol-nav__list {
        display: flex;
        gap: var(--space-m);
        list-style: none;
        margin: 0;
        padding: 0;
    }
    body .wol-header.wol-header .wol-nav__item { position: static; }

    body .wol-header.wol-header .wol-nav__link {
        display: inline-flex;
        align-items: center;
        gap: var(--space-4xs);
        padding-block: var(--space-3xs);
        color: var(--color-white);
        font-family: var(--font-sans);
        font-size: var(--font-pm);
        font-weight: 600;
        letter-spacing: var(--ls-tight);
        text-decoration: none;
        transition: color var(--dur-fast) var(--ease-snap);
        cursor: pointer;
    }
    body .wol-header.wol-header .wol-nav__link:hover,
    body .wol-header.wol-header .wol-nav__item.is-active .wol-nav__link,
    body .wol-header.wol-header .wol-nav__item.is-open .wol-nav__link { color: var(--color-accent); }

    body .wol-header.wol-header .wol-nav__chevron {
        display: inline-flex;
        width: 10px;
        height: 6px;
        transition: transform var(--dur-fast) var(--ease-snap);
    }
    body .wol-header.wol-header .wol-nav__chevron svg { width: 100%; height: 100%; display: block; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-nav__chevron { transform: rotate(180deg); }

    body .wol-header.wol-header .wol-nav__item.is-active .wol-nav__text { position: relative; }
    body .wol-header.wol-header .wol-nav__item.is-active .wol-nav__text::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: -5px;
        height: 1px;
        background: var(--color-accent);
    }

    /* Mega menu */
    body .wol-header.wol-header .wol-mega {
        position: absolute;
        left: 0;
        right: 0;
        top: 100%;
        background-color: var(--color-granite);
        background-size: cover;
        background-position: center bottom;
        background-repeat: no-repeat;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-6px);
        transition:
            opacity var(--dur-normal) var(--ease-out),
            transform var(--dur-normal) var(--ease-out),
            visibility 0s linear var(--dur-normal);
        pointer-events: none;
        z-index: 1;
    }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
        pointer-events: auto;
        transition:
            opacity var(--dur-normal) var(--ease-out),
            transform var(--dur-normal) var(--ease-out),
            visibility 0s;
    }
    body .wol-header.wol-header:not(.is-scrolled).is-mega-open .wol-mega {
        top: 0;
        padding-top: var(--wol-header-height, 100px);
    }

    body .wol-header.wol-header .wol-mega__inner {
        display: grid;
        grid-template-columns: 1.4fr 1fr;
        gap: var(--space-m) var(--space-l);
        max-width: 1400px;
        margin: 0 auto;
        padding: 0 var(--space-l) var(--space-l) var(--space-l);
        align-items: start;
    }
    body .wol-header.wol-header .wol-mega__content { max-width: 640px; }
    body .wol-header.wol-header .wol-mega__eyebrow {
        display: block;
        font-family: var(--font-sans);
        font-size: var(--font-ps);
        font-weight: 500;
        letter-spacing: var(--ls-widest);
        text-transform: uppercase;
        color: var(--color-mushroom);
        margin-bottom: var(--space-2xs);
    }
    body .wol-header.wol-header .wol-mega__list {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0 var(--space-l);
        list-style: none;
        margin: 0;
        padding: 0;
    }
    body .wol-header.wol-header .wol-mega__item { border-bottom: 1px solid rgba(247, 247, 247, 0.12); }
    body .wol-header.wol-header .wol-mega__link {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: var(--space-s);
        padding-block: var(--space-2xs);
        color: var(--color-white);
        font-family: var(--font-sans);
        font-size: var(--font-pm);
        font-weight: 400;
        letter-spacing: var(--ls-tight);
        text-decoration: none;
        transition: color var(--dur-fast) var(--ease-snap), padding-left var(--dur-fast) var(--ease-snap);
    }
    body .wol-header.wol-header .wol-mega__link:hover,
    body .wol-header.wol-header .wol-mega__item.is-active .wol-mega__link {
        color: var(--color-accent);
        padding-left: var(--space-3xs);
    }
    body .wol-header.wol-header .wol-mega__arrow {
        display: inline-flex;
        width: 8px;
        height: 12px;
        opacity: 0.5;
        transition: opacity var(--dur-fast) var(--ease-snap), transform var(--dur-fast) var(--ease-snap);
        flex-shrink: 0;
    }
    body .wol-header.wol-header .wol-mega__arrow svg { width: 100%; height: 100%; display: block; }
    body .wol-header.wol-header .wol-mega__link:hover .wol-mega__arrow {
        opacity: 1;
        transform: translateX(3px);
    }

    /* Slim mega — image left, single column links right. Add class 'mega-slim' to the top-level menu item in WP Appearance > Menus. */
    body .wol-header.wol-header .wol-nav__item.mega-slim .wol-mega__inner {
        grid-template-columns: 2fr 1fr;
        align-items: stretch;
    }
    body .wol-header.wol-header .wol-nav__item.mega-slim .wol-mega__content {
        grid-column: 2;
        grid-row: 1;
    }
    body .wol-header.wol-header .wol-nav__item.mega-slim .wol-mega__image {
        grid-column: 1;
        grid-row: 1;
        aspect-ratio: unset;
        min-height: 320px;
    }
    body .wol-header.wol-header .wol-nav__item.mega-slim .wol-mega__list {
        grid-template-columns: 1fr;
    }

    body .wol-header.wol-header .wol-mega__image {
        position: relative;
        aspect-ratio: 4 / 3;
        min-height: 240px;
        overflow: hidden;
    }
    body .wol-header.wol-header .wol-mega__image img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        opacity: 0;
        transition: opacity var(--dur-fast) var(--ease-snap);
    }
    body .wol-header.wol-header .wol-mega__image img.is-visible { opacity: 1; }

    /* CTA */
    body .wol-header.wol-header a.wol-header__cta.btn,
    body .wol-header.wol-header .wol-header__cta {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: var(--space-3xs) !important;
        overflow: hidden !important;
        position: relative !important;
        padding: var(--btn-py) var(--btn-px-s) !important;
        line-height: 1 !important;
        transform: translateY(-1px) !important;
        background-color: transparent !important;
        background-image: none !important;
        border: 1px solid var(--color-white) !important;
        border-radius: var(--radius-xl) !important;
        color: var(--color-white) !important;
        font-family: var(--font-sans) !important;
        font-size: var(--font-pr) !important;
        font-weight: 500 !important;
        letter-spacing: var(--ls-tight) !important;
        text-decoration: none !important;
        box-shadow: none !important;
        min-width: 0 !important;
        min-height: 0 !important;
        transition:
            background-color var(--dur-fast) var(--ease-snap),
            border-color var(--dur-fast) var(--ease-snap),
            color var(--dur-fast) var(--ease-snap);
        flex-shrink: 0;
        cursor: pointer;
    }
    body .wol-header.wol-header.is-scrolled a.wol-header__cta.btn,
    body .wol-header.wol-header.is-scrolled .wol-header__cta {
        background-color: rgba(255, 255, 255, 0.2) !important;
        border-color: rgba(255, 255, 255, 0.2) !important;
    }
    body .wol-header.wol-header a.wol-header__cta.btn:hover,
    body .wol-header.wol-header .wol-header__cta:hover {
        background-color: var(--color-sage) !important;
        border-color: var(--color-sage) !important;
        color: var(--color-white) !important;
    }

    /* Hamburger */
    body .wol-header.wol-header .wol-header__hamburger {
        display: none;
        flex-direction: column;
        justify-content: center;
        gap: 5px;
        width: 32px;
        height: 32px;
        padding: 0;
        background: transparent;
        border: 0;
        cursor: pointer;
        flex-shrink: 0;
    }
    body .wol-header.wol-header .wol-header__hamburger span {
        display: block;
        width: 22px;
        height: 1.5px;
        background: var(--color-white);
        margin: 0 auto;
        transition: transform var(--dur-fast) var(--ease-snap), opacity var(--dur-fast) var(--ease-snap);
    }
    body.wol-mnav-open .wol-header.wol-header .wol-header__hamburger span:nth-child(1) {
        transform: translateY(3.25px) rotate(45deg);
    }
    body.wol-mnav-open .wol-header.wol-header .wol-header__hamburger span:nth-child(2) {
        transform: translateY(-3.25px) rotate(-45deg);
    }

    /* Stacking */
    body .wol-header.wol-header .wol-header__logo,
    body .wol-header.wol-header .wol-nav__link,
    body .wol-header.wol-header .wol-header__cta,
    body .wol-header.wol-header .wol-header__hamburger {
        position: relative;
        z-index: 3;
    }

    @media (max-width: 1024px) {
        body .wol-header.wol-header .wol-nav,
        body .wol-header.wol-header a.wol-header__cta.btn,
        body .wol-header.wol-header .wol-header__cta { display: none !important; }
        body .wol-header.wol-header .wol-header__hamburger { display: flex; }
        body .wol-header.wol-header .wol-header__inner { padding-inline: var(--space-s); grid-template-columns: 1fr auto; }
    }

    /* Mobile overlay */
    body .wol-mnav.wol-mnav {
        position: fixed;
        inset: 0;
        z-index: 1;
        background-color: var(--color-granite);
        background-size: cover;
        background-position: center;
        visibility: hidden;
        opacity: 0;
        transition: opacity var(--dur-normal) var(--ease-out), visibility 0s linear var(--dur-normal);
        display: flex;
        flex-direction: column;
        padding-top: var(--wol-header-height, 70px);
    }
    body .wol-mnav.wol-mnav.is-open {
        visibility: visible;
        opacity: 1;
        transition: opacity var(--dur-normal) var(--ease-out), visibility 0s;
    }

    body .wol-mnav.wol-mnav .wol-mnav__body {
        flex: 1;
        position: relative;
        overflow: hidden;
        min-height: 0;
    }
    body .wol-mnav.wol-mnav .wol-mnav__root {
        position: absolute;
        inset: 0;
        overflow-y: auto;
        padding: var(--space-s);
        transition: transform var(--dur-normal) var(--ease-inout);
        transform: translateX(0);
    }
    body .wol-mnav.wol-mnav.has-panel-open .wol-mnav__root { transform: translateX(-100%); }
    body .wol-mnav.wol-mnav .wol-mnav__list { list-style: none; margin: 0; padding: 0; }
    body .wol-mnav.wol-mnav .wol-mnav__item { border-bottom: 1px solid rgba(247, 247, 247, 0.12); }

    body .wol-mnav.wol-mnav .wol-mnav__btn {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: var(--space-s) 0;
        background: transparent; border: 0;
        color: var(--color-white);
        font-family: var(--font-sans);
        font-size: var(--font-m);
        font-weight: 400;
        letter-spacing: var(--ls-tight);
        text-decoration: none;
        text-align: left;
        cursor: pointer;
    }
    body .wol-mnav.wol-mnav .wol-mnav__item.is-active > .wol-mnav__btn { color: var(--color-accent); }
    body .wol-mnav.wol-mnav .wol-mnav__chev { display: inline-flex; width: 8px; height: 12px; opacity: 0.6; }
    body .wol-mnav.wol-mnav .wol-mnav__chev svg { width: 100%; height: 100%; display: block; }

    body .wol-mnav.wol-mnav .wol-mnav__panel {
        position: absolute;
        inset: 0;
        overflow-y: auto;
        padding: var(--space-s);
        /* Match the drawer behind it — carbon black read as a different,
           darker screen when sliding through to a sub-menu. */
        background-color: var(--color-granite);
        background-size: cover;
        background-position: center;
        transform: translateX(100%);
        transition: transform var(--dur-normal) var(--ease-inout);
        visibility: hidden;
    }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active {
        transform: translateX(0);
        visibility: visible;
    }
    body .wol-mnav.wol-mnav .wol-mnav__back {
        display: inline-flex;
        align-items: center;
        gap: var(--space-2xs);
        padding: var(--space-2xs) 0;
        margin-bottom: var(--space-s);
        background: transparent; border: 0;
        color: var(--color-mushroom);
        font-family: var(--font-sans);
        font-size: var(--font-pr);
        font-weight: 500;
        letter-spacing: var(--ls-wider);
        text-transform: uppercase;
        cursor: pointer;
    }
    body .wol-mnav.wol-mnav .wol-mnav__back svg { width: 8px; height: 12px; }
    body .wol-mnav.wol-mnav .wol-mnav__sublist { list-style: none; margin: 0; padding: 0; }
    body .wol-mnav.wol-mnav .wol-mnav__subitem { border-bottom: 1px solid rgba(247, 247, 247, 0.12); }
    body .wol-mnav.wol-mnav .wol-mnav__sublink {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: var(--space-s) 0;
        color: var(--color-white);
        font-family: var(--font-sans);
        font-size: var(--font-r);
        font-weight: 400;
        letter-spacing: var(--ls-tight);
        text-decoration: none;
    }
    body .wol-mnav.wol-mnav .wol-mnav__subitem.is-active .wol-mnav__sublink { color: var(--color-accent); }
    body .wol-mnav.wol-mnav .wol-mnav__arrow { display: inline-flex; width: 8px; height: 12px; opacity: 0.5; }
    body .wol-mnav.wol-mnav .wol-mnav__arrow svg { width: 100%; height: 100%; display: block; }

    body .wol-mnav.wol-mnav .wol-mnav__foot {
        padding: var(--space-s);
        padding-top: var(--space-xs);
        flex-shrink: 0;
        border-top: 1px solid rgba(255,255,255,0.12);
        display: flex;
        flex-direction: column;
        gap: var(--space-xs);
    }
    body .wol-mnav.wol-mnav .wol-mnav__cta {
        background-color: var(--color-accent) !important;
        color: var(--color-carbon-black) !important;
        border-color: var(--color-accent) !important;
        align-self: flex-start;
    }
    body .wol-mnav.wol-mnav .wol-mnav__details {
        display: flex;
        flex-direction: column;
        gap: var(--space-3xs);
    }
    body .wol-mnav.wol-mnav .wol-mnav__detail {
        display: inline-flex;
        align-items: center;
        gap: var(--space-3xs);
        color: rgba(247,247,247,0.6);
        font-family: var(--font-sans);
        font-size: var(--font-ps);
        font-weight: 400;
        text-decoration: none;
        transition: color var(--dur-fast) var(--ease-snap);
    }
    body .wol-mnav.wol-mnav a.wol-mnav__detail:hover { color: var(--color-white); }
    body .wol-mnav.wol-mnav .wol-mnav__detail svg { flex-shrink: 0; opacity: 0.6; }

    body.wol-mnav-open { overflow: hidden; }

    /* Mega stagger */
    body .wol-header.wol-header .wol-mega__eyebrow,
    body .wol-header.wol-header .wol-mega__item,
    body .wol-header.wol-header .wol-mega__image {
        opacity: 0;
        transform: translateY(8px);
        transition:
            opacity var(--dur-normal) var(--ease-out),
            transform var(--dur-normal) var(--ease-out);
    }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__eyebrow,
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item,
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__image {
        opacity: 1;
        transform: translateY(0);
    }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__eyebrow { transition-delay: 0ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(1)  { transition-delay: 100ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(2)  { transition-delay: 160ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(3)  { transition-delay: 220ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(4)  { transition-delay: 280ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(5)  { transition-delay: 340ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(6)  { transition-delay: 400ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(7)  { transition-delay: 460ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(8)  { transition-delay: 520ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(9)  { transition-delay: 580ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(10) { transition-delay: 640ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(11) { transition-delay: 700ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(12) { transition-delay: 760ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(13) { transition-delay: 820ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(14) { transition-delay: 880ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(15) { transition-delay: 940ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(16) { transition-delay: 1000ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(17) { transition-delay: 1060ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(18) { transition-delay: 1120ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(19) { transition-delay: 1180ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(20) { transition-delay: 1240ms; }
    /* Safety net: items past 20 land with the last one rather than
       falling back to 0ms and popping in ahead of the stagger. */
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__item:nth-child(n+21) { transition-delay: 1240ms; }
    body .wol-header.wol-header .wol-nav__item.is-open .wol-mega__image { transition-delay: 200ms; }

    /* Mobile root stagger */
    body .wol-mnav.wol-mnav .wol-mnav__item {
        opacity: 0;
        transform: translateY(8px);
        transition:
            opacity var(--dur-normal) var(--ease-out),
            transform var(--dur-normal) var(--ease-out);
    }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item {
        opacity: 1;
        transform: translateY(0);
    }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(1)  { transition-delay: 150ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(2)  { transition-delay: 210ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(3)  { transition-delay: 270ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(4)  { transition-delay: 330ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(5)  { transition-delay: 390ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(6)  { transition-delay: 450ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(7)  { transition-delay: 510ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(8)  { transition-delay: 570ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(9)  { transition-delay: 630ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(10) { transition-delay: 690ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(11) { transition-delay: 750ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(12) { transition-delay: 810ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(13) { transition-delay: 870ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(14) { transition-delay: 930ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(15) { transition-delay: 990ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(16) { transition-delay: 1050ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(17) { transition-delay: 1110ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(18) { transition-delay: 1170ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(19) { transition-delay: 1230ms; }
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(20) { transition-delay: 1290ms; }
    /* Safety net: items past 20 land with the last one rather than
       falling back to 0ms and popping in ahead of the stagger. */
    body .wol-mnav.wol-mnav.is-open .wol-mnav__item:nth-child(n+21) { transition-delay: 1290ms; }

    /* Mobile sub-panel stagger */
    body .wol-mnav.wol-mnav .wol-mnav__subitem {
        opacity: 0;
        transform: translateY(8px);
        transition:
            opacity var(--dur-normal) var(--ease-out),
            transform var(--dur-normal) var(--ease-out);
    }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem {
        opacity: 1;
        transform: translateY(0);
    }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(1)  { transition-delay: 250ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(2)  { transition-delay: 310ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(3)  { transition-delay: 370ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(4)  { transition-delay: 430ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(5)  { transition-delay: 490ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(6)  { transition-delay: 550ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(7)  { transition-delay: 610ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(8)  { transition-delay: 670ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(9)  { transition-delay: 730ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(10) { transition-delay: 790ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(11) { transition-delay: 850ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(12) { transition-delay: 910ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(13) { transition-delay: 970ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(14) { transition-delay: 1030ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(15) { transition-delay: 1090ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(16) { transition-delay: 1150ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(17) { transition-delay: 1210ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(18) { transition-delay: 1270ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(19) { transition-delay: 1330ms; }
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(20) { transition-delay: 1390ms; }
    /* Safety net: items past 20 land with the last one rather than
       falling back to 0ms and popping in ahead of the stagger. */
    body .wol-mnav.wol-mnav .wol-mnav__panel.is-active .wol-mnav__subitem:nth-child(n+21) { transition-delay: 1390ms; }

    @media (prefers-reduced-motion: reduce) {
        body .wol-strip.wol-strip,
        body .wol-header.wol-header .wol-mega,
        body .wol-mnav.wol-mnav,
        body .wol-mnav.wol-mnav .wol-mnav__root,
        body .wol-mnav.wol-mnav .wol-mnav__panel,
        body .wol-header.wol-header .wol-mega__image img,
        body .wol-header.wol-header .wol-header__cta,
        body .wol-header.wol-header .wol-mega__eyebrow,
        body .wol-header.wol-header .wol-mega__item,
        body .wol-header.wol-header .wol-mega__image,
        body .wol-mnav.wol-mnav .wol-mnav__item,
        body .wol-mnav.wol-mnav .wol-mnav__subitem {
            opacity: 1;
            transform: none;
            transition: none !important;
        }
    }


/* ============================================================
   Logo SVG fill defaults
   ============================================================ */
body .wol-header__logo .wol-logo__mark { fill: var(--color-white); }
body .wol-header__logo .wol-logo__accent { fill: var(--color-accent); }


/* ============================================================
   DARK HEADER — for pages with a light background

   Applies to single Project and single Insight, plus any template
   that opts in with the wol-header-dark body class
   (see inc/coming-soon.php).
   ============================================================ */
body.single-project .wol-header:not(.is-scrolled) .wol-nav__link,
body.single-insight .wol-header:not(.is-scrolled) .wol-nav__link,
body.wol-header-dark .wol-header:not(.is-scrolled) .wol-nav__link {
    color: var(--color-carbon-black);
}
body.single-project .wol-header:not(.is-scrolled) .wol-nav__link:hover,
body.single-project .wol-header:not(.is-scrolled) .wol-nav__item.is-open .wol-nav__link,
body.single-project .wol-header:not(.is-scrolled) .wol-nav__item.is-active .wol-nav__link,
body.single-insight .wol-header:not(.is-scrolled) .wol-nav__link:hover,
body.single-insight .wol-header:not(.is-scrolled) .wol-nav__item.is-open .wol-nav__link,
body.single-insight .wol-header:not(.is-scrolled) .wol-nav__item.is-active .wol-nav__link,
body.wol-header-dark .wol-header:not(.is-scrolled) .wol-nav__link:hover,
body.wol-header-dark .wol-header:not(.is-scrolled) .wol-nav__item.is-open .wol-nav__link,
body.wol-header-dark .wol-header:not(.is-scrolled) .wol-nav__item.is-active .wol-nav__link {
    color: var(--color-granite);
}
body.single-project .wol-header:not(.is-scrolled) .wol-nav__item.is-active .wol-nav__text::after,
body.single-insight .wol-header:not(.is-scrolled) .wol-nav__item.is-active .wol-nav__text::after,
body.wol-header-dark .wol-header:not(.is-scrolled) .wol-nav__item.is-active .wol-nav__text::after {
    background: var(--color-granite);
}
body.single-project .wol-header:not(.is-scrolled) a.wol-header__cta.btn,
body.single-project .wol-header:not(.is-scrolled) .wol-header__cta,
body.single-insight .wol-header:not(.is-scrolled) a.wol-header__cta.btn,
body.single-insight .wol-header:not(.is-scrolled) .wol-header__cta,
body.wol-header-dark .wol-header:not(.is-scrolled) a.wol-header__cta.btn,
body.wol-header-dark .wol-header:not(.is-scrolled) .wol-header__cta {
    border-color: var(--color-carbon-black) !important;
    color: var(--color-carbon-black) !important;
}
body.single-project .wol-header:not(.is-scrolled) .wol-header__hamburger span,
body.wol-header-dark .wol-header:not(.is-scrolled) .wol-header__hamburger span {
    background: var(--color-granite);
}
body.single-insight .wol-header:not(.is-scrolled) .wol-header__hamburger span {
    background: var(--color-carbon-black);
}
body.single-project .wol-header:not(.is-scrolled) .wol-header__logo .wol-logo__mark,
body.single-insight .wol-header:not(.is-scrolled) .wol-header__logo .wol-logo__mark,
body.wol-header-dark .wol-header:not(.is-scrolled) .wol-header__logo .wol-logo__mark { fill: var(--color-granite); }
body.single-project .wol-header:not(.is-scrolled) .wol-header__logo .wol-logo__accent,
body.single-insight .wol-header:not(.is-scrolled) .wol-header__logo .wol-logo__accent,
body.wol-header-dark .wol-header:not(.is-scrolled) .wol-header__logo .wol-logo__accent { fill: var(--color-accent); }

/* Revert to light when mobile nav is open */
body.single-project.wol-mnav-open .wol-header:not(.is-scrolled) .wol-header__logo .wol-logo__mark,
body.single-insight.wol-mnav-open .wol-header:not(.is-scrolled) .wol-header__logo .wol-logo__mark,
body.wol-header-dark.wol-mnav-open .wol-header:not(.is-scrolled) .wol-header__logo .wol-logo__mark { fill: var(--color-white); }
body.single-project.wol-mnav-open .wol-header:not(.is-scrolled) .wol-header__hamburger span,
body.single-insight.wol-mnav-open .wol-header:not(.is-scrolled) .wol-header__hamburger span,
body.wol-header-dark.wol-mnav-open .wol-header:not(.is-scrolled) .wol-header__hamburger span { background: var(--color-white); }

/* Revert to light when mega menu is open */
body.single-project .wol-header:not(.is-scrolled).is-mega-open .wol-nav__link,
body.single-insight .wol-header:not(.is-scrolled).is-mega-open .wol-nav__link,
body.wol-header-dark .wol-header:not(.is-scrolled).is-mega-open .wol-nav__link {
    color: var(--color-white);
}
body.single-project .wol-header:not(.is-scrolled).is-mega-open .wol-nav__link:hover,
body.single-project .wol-header:not(.is-scrolled).is-mega-open .wol-nav__item.is-open .wol-nav__link,
body.single-insight .wol-header:not(.is-scrolled).is-mega-open .wol-nav__link:hover,
body.single-insight .wol-header:not(.is-scrolled).is-mega-open .wol-nav__item.is-open .wol-nav__link,
body.wol-header-dark .wol-header:not(.is-scrolled).is-mega-open .wol-nav__link:hover,
body.wol-header-dark .wol-header:not(.is-scrolled).is-mega-open .wol-nav__item.is-open .wol-nav__link {
    color: var(--color-accent);
}
body.single-project .wol-header:not(.is-scrolled).is-mega-open a.wol-header__cta.btn,
body.single-project .wol-header:not(.is-scrolled).is-mega-open .wol-header__cta,
body.single-insight .wol-header:not(.is-scrolled).is-mega-open a.wol-header__cta.btn,
body.single-insight .wol-header:not(.is-scrolled).is-mega-open .wol-header__cta,
body.wol-header-dark .wol-header:not(.is-scrolled).is-mega-open a.wol-header__cta.btn,
body.wol-header-dark .wol-header:not(.is-scrolled).is-mega-open .wol-header__cta {
    border-color: var(--color-white) !important;
    color: var(--color-white) !important;
}
body.single-project .wol-header:not(.is-scrolled).is-mega-open .wol-header__logo .wol-logo__mark,
body.single-insight .wol-header:not(.is-scrolled).is-mega-open .wol-header__logo .wol-logo__mark,
body.wol-header-dark .wol-header:not(.is-scrolled).is-mega-open .wol-header__logo .wol-logo__mark { fill: var(--color-white); }
body.single-project .wol-header:not(.is-scrolled).is-mega-open .wol-header__logo .wol-logo__accent,
body.single-insight .wol-header:not(.is-scrolled).is-mega-open .wol-header__logo .wol-logo__accent,
body.wol-header-dark .wol-header:not(.is-scrolled).is-mega-open .wol-header__logo .wol-logo__accent { fill: var(--color-accent); }
