.bnr.v2 {
    --bnr-tls-pd-v-tp: 90;
    --bnr-tls-pd-v-tp-mbl: 50;
    --bnr-tls-pd-v-bt: 40;
    --bnr-tls-pd-v-bt-mbl: 30;
    --bnr-img-bg-o: .2;
    --bnr-v2-oft: 4.72rem;

    position: relative;

    /* Full-bleed background must cover. A PNG background (e.g.
       /media/bannerv2/about.png) is otherwise letterboxed by the global
       object-fit: contain rule for PNGs; the [src] token lifts specificity
       above it. */
    .bg img[src] {
        object-fit: cover;
    }

    .bnr-v2-cnt {
        position: relative;
        z-index: 1;
        /* Padding above and below the title (above keeps the title low over
           the image; both use the responsive banner spacing tokens). */
        padding-block: 6rem 2rem;
        text-align: left;

        /* Left-align the title (override the global centered .ta_ + m-ato). */
        .fnt_t-big {
            margin-inline: 0;
            font-size: 3.5rem;
        }
    }

    .bg-bx.frst-bg {
        --frst-bg-o: .75;
        --frst-blur: 7px;
        background-color: hsl(from var(--frst-bg-clr) h s l / var(--frst-bg-o));
        padding: 2rem 2.78rem;
        border: none;

        @media screen and (min-width:1280px) {
            & {
                gap: 4.4rem;
                margin-bottom: calc((4.72rem + var(--bnr-tls-pd-v-bt-clc)) * -1);
                .itm {
                    gap: 3.33rem;
                }
            }
        }

        .bnr-v2-cta-sub {
            --title-color: var(--fnt-t-co);
            font-family: var(--fnt-t);
            font-weight: var(--fnt-t-co-w);
            text-transform: uppercase;
            margin: 0;
        }
    }
}

header:has(.hdr.v1) + main .bnr.v2 {
    --bnr-tls-pd-v-tp: 68;
    --bnr-tls-pd-v-bt: 64;
}

.bnr.v2:has(.bg-bx.frst-bg) + section {
    --bnr-v2-oft: 4.72rem;
    padding-top: calc(var(--pd-v, 0px) + var(--bnr-v2-oft));
}
