/* ==========================================================================
   UPSE Design Update - approved 2026 design layer.
   Ported verbatim from the client-approved mock (finlay0/upsemock @ 3c42308);
   loaded after the parent UPSE Theme stylesheet. The parent theme is never
   edited. Covers: homepage hero + shortcuts rail, /join-upse/ page sections,
   internal split hero, calendar/event join CTA band, shared CTA button, and
   the full mobile/responsive overhaul.
   NOTE: the mock's reCAPTCHA-hiding rules were intentionally NOT ported -
   the real Gravity Forms verification flow must stay visible.
   ========================================================================== */

/* ---------------------------------------------------------
   0. CSS-first header offset (kills the first-paint jump)
   The theme makes the header position:fixed and relies on late JS
   (upse.js at jQuery-ready) to push <main> down by the header height.
   Until that JS runs, content paints ~166px too high, then the whole
   page jumps when the margin lands - the flash seen on every load.
   Fix: on desktop the header becomes position:sticky, which occupies
   its own space in normal flow (identical pinned-on-scroll behavior,
   zero JS needed), and main's margin is locked to 0 with !important
   so the theme's late inline write can never shift the page.
   --------------------------------------------------------- */
@media screen and (min-width: 801px) {
    body > header {
        position: sticky !important;
        top: 0;
    }

    /* Admin bar: WP pushes the page down via html{margin-top:32px}; the
       sticky header must pin below the fixed admin bar, and the theme's
       .logged-in header margin (a fixed-header workaround) must not add
       a phantom 32px strip above the in-flow header. */
    body.admin-bar > header {
        top: 32px;
    }

    .logged-in > header {
        margin-top: 0 !important;
    }

    /* Beats the inline style the theme's upse.js writes at jQuery-ready
       (and its +45px logged-in overshoot). First paint is already right. */
    main {
        margin-top: 0 !important;
    }

    /* Pre-size candidate internal heroes to the split-hero frame height so
       the JS enhancement doesn't change the page height when it wraps the
       hero at DOMContentLoaded (was a second, ~137px, flash). Once built,
       .hero_image moves inside the split hero and this stops matching. */
    body:not(.home):not(.upse-design-join) main > .hero_image {
        position: relative;
        overflow: hidden;
        height: clamp(500px, 59vh, 690px);
        background: #0d2563;
    }

    body:not(.home):not(.upse-design-join) main > .hero_image img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: 50% 50%;
        display: block;
    }
}

/* Shared CTA button: Grounded & Resolute */
.upse-cta-btn {
    display: inline-block;
    box-sizing: border-box;
    background: #ffffff;
    color: #1e429a !important;
    padding: 1.15rem 2.25rem;
    font-weight: 800 !important;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.95rem;
    border: 3px solid #1e429a;
    position: relative;
    cursor: pointer;
    overflow: hidden;
    z-index: 1;
    transition: color 0.2s ease, transform 0.15s ease, box-shadow 0.15s ease, border-color 0.2s ease;
    box-shadow: 6px 6px 0 0 rgba(30, 66, 154, 0.15);
}

.upse-cta-btn::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #1e429a;
    z-index: -1;
    transform: translateY(101%);
    transition: transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.upse-cta-btn:hover {
    color: #efe938 !important;
    box-shadow: 8px 8px 0 0 #efe938;
    transform: translate(-2px, -2px);
}

.upse-cta-btn:hover::before {
    transform: translateY(0);
}

.upse-cta-btn:active {
    transform: translate(2px, 2px);
    box-shadow: 4px 4px 0 0 #efe938;
}

.upse-cta-btn--invert {
    background: #1e429a;
    color: #ffffff !important;
    border-color: #1e429a;
    box-shadow: 6px 6px 0 0 #efe938;
}

.upse-cta-btn--invert::before {
    background: #efe938;
}

.upse-cta-btn--invert:hover {
    color: #1e429a !important;
    box-shadow: 8px 8px 0 0 rgba(30, 66, 154, 0.2);
}

.upse-cta-btn--ghost-light {
    background: transparent;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.5);
    box-shadow: none;
}

.upse-cta-btn--ghost-light:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: #ffffff;
    color: #ffffff !important;
    transform: none;
    box-shadow: none;
}

/* Small inline CTA the theme can use on About/Contact/How pages */
.upse-inline-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: wrap;
    padding: 1.5rem 1.75rem;
    background: #f4f6fb;
    border-left: 4px solid #1e429a;
    margin: 2.5rem auto;
    max-width: 1280px;
    width: 95%;
}

.upse-inline-cta p {
    margin: 0;
    font-size: 1.05rem;
    color: #0d2563;
    flex: 1 1 20rem;
}

.upse-inline-cta p strong {
    color: #1e429a;
}

.nav_menu a.nav-title-only {
    cursor: default;
}

/* ==========================================================================
   Standalone Join CTA band - calendar/event pages (no hero image)
   Card-style: white background, navy type, navy pill CTA, contained width.
   ========================================================================== */
.join-cta-band {
    box-sizing: border-box;
    display: block;
    max-width: 1200px;
    margin: 0 auto 1.75rem;
    padding: 2.75rem clamp(1rem, 3vw, 2rem) 0;
    color: #0f2a63;
}

.join-cta-band__inner {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(1.25rem, 3vw, 2.5rem);
    background:
        radial-gradient(
            ellipse 120% 80% at 100% 0%,
            rgba(239, 233, 56, 0.1) 0%,
            transparent 55%
        ),
        linear-gradient(180deg, #ffffff 0%, #f4f7fd 100%);
    border: 1px solid rgba(15, 42, 99, 0.14);
    border-radius: 14px;
    box-shadow:
        0 1px 1px rgba(10, 20, 50, 0.03),
        0 14px 32px -22px rgba(10, 20, 50, 0.18);
    padding: 1.1rem 1.35rem 1.1rem 1.75rem;
}

.join-cta-band__inner::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: linear-gradient(180deg, #efe938 0%, #f4ee3f 55%, #e5dc24 100%);
    pointer-events: none;
}

.join-cta-band__brief {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
    min-width: 0;
}

.join-cta-band__eyebrow {
    display: block;
    margin: 0 0 0.25rem;
    padding: 0;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #3a5aa4;
}

.join-cta-band__title {
    margin: 0;
    padding: 0;
    font-weight: 400;
    line-height: 1.2;
}

.join-cta-band__title-primary {
    font-size: clamp(1.2rem, 0.9rem + 0.75vw, 1.65rem);
    font-weight: 800;
    letter-spacing: -0.015em;
    color: #0f2a63;
}

.join-cta-band__title-secondary {
    font-size: clamp(1.2rem, 0.9rem + 0.75vw, 1.65rem);
    font-weight: 400;
    letter-spacing: -0.01em;
    color: #6a7a99;
}

.join-cta-band__title-rule {
    display: none;
}

.join-cta-band__lede {
    margin: 0.15rem 0 0;
    padding: 0;
    border: none;
    font-size: 0.88rem;
    line-height: 1.45;
    color: #6a7a99;
    max-width: 38rem;
}

.join-cta-band__cta {
    flex: 0 0 auto;
    display: inline-flex;
    box-sizing: border-box;
    align-items: center;
    gap: 0.6rem;
    padding: 0.35rem 0.35rem 0.35rem 1.05rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #ffffff;
    background-color: #0f2a63;
    border: 1px solid rgba(10, 20, 50, 0.08);
    border-radius: 999px;
    box-shadow:
        0 1px 1px rgba(10, 20, 50, 0.06),
        0 10px 22px -14px rgba(10, 20, 50, 0.35);
    text-decoration: none;
    will-change: transform;
    transition:
        background-color 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
        box-shadow 260ms cubic-bezier(0.2, 0.8, 0.2, 1),
        transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.join-cta-band__cta,
.join-cta-band__cta:visited {
    color: #ffffff;
}

.join-cta-band__cta:hover,
.join-cta-band__cta:focus-visible {
    background-color: #153884;
    box-shadow:
        0 1px 1px rgba(10, 20, 50, 0.08),
        0 16px 28px -16px rgba(10, 20, 50, 0.4);
    transform: translateY(-1px);
    outline: none;
}

.join-cta-band__cta:active {
    background-color: #0a1d4b;
    transform: translateY(1px);
    transition-duration: 90ms;
}

.join-cta-band__cta:focus-visible {
    outline: 2px solid rgba(18, 52, 115, 0.55);
    outline-offset: 3px;
}

.join-cta-band__cta-label {
    white-space: nowrap;
}

.join-cta-band__cta-arrow {
    display: inline-flex;
    width: 1.75rem;
    height: 1.75rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #efe938;
    color: #0f2a63;
    font-size: 0.82rem;
    line-height: 1;
    transition:
        background-color 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
        transform 320ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.join-cta-band__cta:hover .join-cta-band__cta-arrow,
.join-cta-band__cta:focus-visible .join-cta-band__cta-arrow {
    background: #f4ee3f;
    transform: translateX(3px);
}

@media screen and (max-width: 1000px) {
    .join-cta-band {
        margin: 0 auto 1.25rem;
        padding-top: 2rem;
    }

    .join-cta-band__inner {
        padding: 0.95rem 1rem 1rem 1.2rem;
        gap: 1rem;
    }
}

@media screen and (max-width: 640px) {
    .join-cta-band {
        margin: 0 auto 1rem;
        padding: 1.5rem 0.85rem 0;
    }

    .join-cta-band__inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
        padding: 0.9rem 1rem 1rem;
        border-radius: 12px;
    }

    .join-cta-band__eyebrow {
        font-size: 0.64rem;
        letter-spacing: 0.2em;
    }

    .join-cta-band__title-primary,
    .join-cta-band__title-secondary {
        font-size: 1.1rem;
    }

    .join-cta-band__lede {
        font-size: 0.84rem;
        line-height: 1.4;
    }

    .join-cta-band__cta {
        align-self: flex-start;
        padding: 0.4rem 0.4rem 0.4rem 1.05rem;
        font-size: 0.75rem;
    }

    .join-cta-band__cta-arrow {
        width: 1.65rem;
        height: 1.65rem;
        font-size: 0.78rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .join-cta-band__cta,
    .join-cta-band__cta-arrow {
        transition: none;
    }
}

/* Match the real homepage section heading alignment. */
#latest-news-information {
    text-align: center;
}

/* ---------------------------------------------------------
   3. /join-upse/ page sections
   --------------------------------------------------------- */
html {
    scroll-behavior: smooth;
    scroll-padding-top: 110px;
}

body.upse-design-join main {
    background: #f4f6fb;
}

body.upse-design-join main > .hero_image,
body.upse-design-join main > .blue_bg,
body.upse-design-join main > .wp-block-group.blue_bg,
body.upse-design-join main > .metaslider,
body.upse-design-join main > [id^="metaslider-id-"],
body.upse-design-join main > [id^="metaslider_container_"] {
    display: none !important;
}

body.upse-design-join main > .wp-block-group:not(.blue_bg),
body.upse-design-join main > .wp-block-group > .wp-block-group__inner-container,
body.upse-design-join main > .entry-content,
body.upse-design-join main .wp-block-post-content {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.upse-design-join main > p:empty,
body.upse-design-join main .entry-title,
body.upse-design-join main h1.wp-block-post-title {
    display: none !important;
}

@media screen and (max-width: 800px) {
    html {
        scroll-padding-top: 1.5rem;
    }
}

/* Hero */
.join-hero {
    background: linear-gradient(180deg, #1e429a 0%, #0d2563 100%);
    color: #ffffff;
    padding: 1.6rem 0 0.55rem;
    position: relative;
    overflow: hidden;
    overflow: hidden;
}

.join-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
    background-size: 72px 72px;
    mask-image: radial-gradient(ellipse at 50% 120%, black 40%, transparent 80%);
    -webkit-mask-image: radial-gradient(ellipse at 50% 120%, black 40%, transparent 80%);
    pointer-events: none;
}

.join-hero .indented {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 1rem;
    align-items: end;
    position: relative;
    z-index: 1;
    width: min(1280px, calc(100% - 3rem));
    max-width: 1280px;
    margin-inline: auto;
}

.join-hero__copy {
    align-self: start;
    margin-top: 2.2rem;
}

.join-hero h1 {
    color: #ffffff !important;
    font-size: clamp(2.75rem, 2rem + 3.1vw, 4.75rem);
    line-height: 0.98;
    margin: 0 0 1.55rem;
    font-weight: 800;
    letter-spacing: -0.025em;
    text-wrap: balance;
}

.join-hero__title-primary {
    display: block;
}

.join-hero__title-subtitle {
    display: block;
    margin-top: 0.52rem;
    font-size: clamp(1.28rem, 0.95rem + 0.95vw, 1.85rem);
    font-weight: 500;
    line-height: 1.18;
    letter-spacing: 0.004em;
    color: rgba(255, 255, 255, 0.8);
}

.join-hero p {
    font-size: 1rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.88);
    max-width: 38rem;
    margin: 0;
}

.join-hero__jump {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin: 1.45rem 0 0;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: color 0.2s ease;
}

.join-hero__jump::after {
    content: "\2193";
    transition: transform 0.2s ease;
}

.join-hero__jump:hover {
    color: #efe938;
}

.join-hero__jump:hover::after {
    transform: translateY(3px);
}

.join-hero__visual {
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.join-hero__visual img {
    width: min(106%, 530px);
    max-width: none;
    height: auto;
    object-fit: contain;
    clip-path: inset(5% 0 13% 0);
    filter: drop-shadow(0 8px 24px rgba(0, 0, 0, 0.25));
    margin-top: -4px;
    margin-bottom: -5.18rem;
}

/* Five-step process */
.join-steps {
    padding: 4.8rem 0 5rem;
    background: #f4f6fb;
}

.join-steps .indented {
    width: min(1280px, calc(100% - 3rem));
    max-width: 1280px;
    margin-inline: auto;
}

.join-steps__title {
    margin: 0 0 2.5rem !important;
    font-size: 2em !important;
}

.join-steps__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
    border-top: 2px solid #1e429a;
}

.join-step {
    background: #ffffff;
    padding: 2.5rem 2rem 2.75rem;
    border-right: 1px solid #e3e6ee;
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    position: relative;
    transition: background 0.25s ease, transform 0.25s ease;
}

.join-step:last-child {
    border-right: none;
}

.join-step::before {
    content: "";
    position: absolute;
    top: -2px;
    left: 0;
    width: 0;
    height: 2px;
    background: #efe938;
    transition: width 0.3s ease;
}

.join-step:hover {
    background: #0d2563;
    transform: translateY(-3px);
}

.join-step:hover::before {
    width: 100%;
}

.join-step:hover .join-step__num {
    color: #efe938;
}

.join-step:hover .join-step__title,
.join-step:hover .join-step__desc {
    color: #ffffff !important;
}

.join-step__num {
    font-size: 2.5rem;
    line-height: 1;
    font-weight: 800;
    color: #1e429a;
    letter-spacing: -0.04em;
    transition: color 0.25s ease;
}

.join-step__num small {
    font-size: 0.9rem;
    color: #9aa1b3;
    font-weight: 500;
    margin-left: 0.25em;
}

.join-step__title {
    margin: 0 !important;
    font-size: 1.2rem !important;
    color: #0d2563 !important;
    line-height: 1.2;
    text-wrap: balance;
    transition: color 0.25s ease;
}

.join-step__desc {
    font-size: 1rem;
    color: #4a5168;
    margin: 0;
    line-height: 1.55;
    text-wrap: balance;
    transition: color 0.25s ease;
}

/* Form section */
.join-form-section {
    padding: 3.85rem 0 4.5rem;
    background: #f4f6fb;
}

.join-form-section .indented {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 2.35rem;
    align-items: start;
    width: min(1280px, calc(100% - 3rem));
    max-width: 1280px;
    margin-inline: auto;
}

.join-form-section__intro h2 {
    margin: 0 0 1.25rem !important;
    font-size: 2em !important;
}

#join-form-title {
    scroll-margin-top: 7.5rem;
}

.join-form-section__intro p {
    font-size: 1rem;
    color: #4a5168;
    line-height: 1.6;
    max-width: 28rem;
}

.join-form-section__intro dl {
    margin: 1.6rem 0 0;
    padding: 1.4rem 0 0;
    border-top: 2px solid #1e429a;
    display: grid;
    gap: 0;
}

.join-form-section__intro dt {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: #1e429a;
    font-weight: 700;
    margin: 1.25rem 0 0;
}

.join-form-section__intro dt:first-child {
    margin-top: 0;
}

.join-form-section__intro dd {
    margin: 0.3rem 0 0;
    font-size: 0.95rem;
    color: #0d2563;
}

.join-form-section__intro dd a {
    color: #1e429a;
}

.join-form {
    background: #ffffff;
    border: 1px solid #e3e6ee;
    border-top: 3px solid #1e429a;
    border-radius: 6px;
    overflow: hidden;
    padding: 1.95rem 2rem 1.75rem;
}

.join-form__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
    margin-bottom: 1.25rem;
    border-bottom: 1px dashed #c3c9d6;
}

.join-form__header h3 {
    margin: 0 !important;
    font-size: 1.1rem !important;
    color: #0d2563 !important;
}

.join-form__header .req-note {
    font-size: 0.72rem;
    color: #7a8294;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.join-form__header .req-note span {
    color: #1e429a;
    font-weight: 700;
}

.join-form__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem 1.3rem;
}

.join-form__field {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
}

.join-form__field--full {
    grid-column: 1 / -1;
}

.join-form__field label {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 700;
    color: #0d2563;
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

.join-form__field label .req {
    color: #1e429a;
}

.join-form__field label .opt {
    color: #7a8294;
    font-weight: 500;
    letter-spacing: 0.06em;
    font-size: 0.68rem;
}

.join-form__field input,
.join-form__field textarea {
    font-family: inherit;
    font-size: 1rem;
    padding: 0.68rem 0.82rem;
    border: 1px solid #c3c9d6;
    background: #ffffff;
    color: #0b1426;
    border-radius: 4px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.join-form__field textarea {
    min-height: 112px;
    resize: vertical;
    line-height: 1.5;
}

.join-form__field input:hover,
.join-form__field textarea:hover {
    border-color: #3d6cde;
}

.join-form__field input:focus,
.join-form__field textarea:focus {
    outline: none;
    border-color: #1e429a;
    box-shadow: inset 0 0 0 1px #1e429a, 0 0 0 3px rgba(30, 66, 154, 0.12);
}

.join-form__field.is-error input,
.join-form__field.is-error textarea {
    border-color: #b7331e;
    background: #fef6f5;
}

.join-form__error {
    font-size: 0.8rem;
    color: #a83222;
    font-weight: 600;
    min-height: 1.1em;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.join-form__error:not(:empty)::before {
    content: "";
    width: 6px;
    height: 6px;
    background: #b7331e;
    display: inline-block;
}

.join-form__footer {
    margin-top: 1.2rem;
    padding-top: 1rem;
    border-top: 1px dashed #c3c9d6;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.join-form__footer p {
    font-size: 0.82rem;
    color: #4a5168;
    margin: 0;
    max-width: 26rem;
}

.join-form__contact-compact {
    display: none;
    font-size: 0.82rem;
    color: #4a5168;
    margin: 0;
}

.join-form__contact-compact a {
    color: #1e429a;
    font-weight: 700;
}

.join-form__submit {
    display: inline-flex;
    justify-content: center;
    padding: 0.82rem 2rem;
    background: #1e429a;
    color: #ffffff;
    border: none;
    border-radius: 4px;
    font-weight: 700;
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    cursor: pointer;
    font-family: inherit;
    box-shadow: 0 4px 12px rgba(30, 66, 154, 0.25);
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.join-form__submit:hover {
    background: #0d2563;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(13, 37, 99, 0.35);
}

.join-form__submit:active {
    transform: translateY(0);
    box-shadow: 0 2px 4px rgba(13, 37, 99, 0.2);
}

.join-form__success {
    display: none;
    padding: 2rem;
    background: linear-gradient(160deg, #1e429a 0%, #0d2563 100%);
    color: #ffffff;
    border: 1px solid #1e429a;
    position: relative;
    overflow: hidden;
}

.join-form__success.is-visible {
    display: block;
}

.join-form__success-eyebrow {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-weight: 700;
    color: #efe938;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.75rem;
}

.join-form__success-eyebrow::before {
    content: "";
    width: 24px;
    height: 2px;
    background: #efe938;
}

.join-form__success h3 {
    color: #ffffff !important;
    font-size: 1.65rem !important;
    line-height: 1.15;
    margin: 0 0 0.75rem !important;
}

.join-form__success p {
    color: rgba(255, 255, 255, 0.9);
    line-height: 1.6;
    margin: 0 0 1rem;
}

.join-form__success ul {
    list-style: none;
    margin: 1rem 0 0;
    padding: 1.1rem 0 0;
    border-top: 1px dashed rgba(255, 255, 255, 0.25);
    display: grid;
    gap: 0.5rem;
    font-size: 0.92rem;
}

.join-form__success ul li {
    display: flex;
    gap: 0.6rem;
    color: rgba(255, 255, 255, 0.92);
}

.join-form__success ul li::before {
    content: "\2014";
    color: #efe938;
    font-weight: 700;
}

.join-form__success-reset {
    margin-top: 1.5rem;
    background: transparent;
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.4);
    padding: 0.7rem 1.2rem;
    font-weight: 700;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.2s ease, border-color 0.2s ease;
}

.join-form__success-reset:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: #ffffff;
}

/* ---------------------------------------------------------
   4. Mobile fixes
   The cloned UPSE theme has a couple of obvious issues on
   small screens. Fix the worst ones without redesigning.
   --------------------------------------------------------- */

/* Give the fixed header room to breathe on mobile and keep
   the logo / hamburger from crashing into each other. */
@media screen and (max-width: 1000px) {
    .join-hero {
        padding: 3.65rem 0 2.4rem;
    }

    .join-hero .indented,
    .join-form-section .indented {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .join-hero__copy {
        margin-top: 0;
    }

    #join-form-title {
        scroll-margin-top: 2rem;
    }

    .join-hero__visual img {
        width: 100%;
        margin-top: 0;
        margin-bottom: -1.6rem;
        clip-path: inset(2% 0 12% 0);
    }

    .join-hero__jump {
        margin-bottom: 0.5rem;
    }

    .join-steps__list {
        grid-template-columns: repeat(2, 1fr);
    }

    .join-step {
        border-bottom: 1px solid #e3e6ee;
    }

    .join-step:nth-child(2n) {
        border-right: none;
    }

    .join-step:last-child {
        border-bottom: none;
        grid-column: 1 / -1;
    }

}

@media screen and (min-width: 1001px) and (max-width: 1600px) {
    .join-hero {
        padding: 1.45rem 0 0.48rem;
    }

    .join-hero .indented {
        gap: 1.2rem;
        align-items: end;
    }

    .join-hero__copy {
        align-self: start;
        margin-top: 1.9rem;
    }

    .join-hero h1 {
        margin-bottom: 1.4rem;
    }

    .join-hero__title-subtitle {
        margin-top: 0.46rem;
        font-size: clamp(1.18rem, 0.82rem + 0.82vw, 1.55rem);
    }

    .join-hero p {
        font-size: 1rem;
        line-height: 1.55;
    }

    .join-hero__jump {
        margin-top: 1.25rem;
        padding-top: 0.9rem;
    }

    .join-hero__visual img {
        width: min(106%, 530px);
        clip-path: inset(5% 0 13% 0);
        margin-top: -4px;
        margin-bottom: -5.18rem;
    }

    .join-form-section {
        padding: 1.5rem 0 2.2rem;
    }

    .join-form-section .indented {
        gap: 1rem;
    }

    .join-form-section__intro h2 {
        margin-bottom: 0.9rem !important;
    }

    .join-form-section__intro p {
        font-size: 1rem;
        line-height: 1.55;
    }

    .join-form-section__intro dl {
        margin-top: 1.15rem;
        padding-top: 1rem;
    }

    .join-form-section__intro dt {
        margin-top: 0.85rem;
        font-size: 0.72rem;
    }

    .join-form-section__intro dd {
        font-size: 0.95rem;
    }

    .join-form {
        padding: 1.55rem 1.7rem 1.45rem;
    }

    .join-form__header {
        margin-bottom: 1rem;
        padding-bottom: 0.8rem;
    }

    .join-form__header h3 {
        font-size: 1.1rem !important;
    }

    .join-form__header .req-note {
        font-size: 0.72rem;
    }

    .join-form__grid {
        gap: 0.85rem 1rem;
    }

    .join-form__field label {
        font-size: 0.72rem;
        letter-spacing: 0.1em;
    }

    .join-form__field input,
    .join-form__field textarea {
        padding: 0.68rem 0.82rem;
        font-size: 1rem;
    }

    .join-form__field textarea {
        height: 7rem;
        min-height: 7rem;
    }

    .join-form__footer {
        margin-top: 1rem;
        padding-top: 0.8rem;
        gap: 1rem;
    }

    .join-form__footer p {
        font-size: 0.82rem;
    }

    .join-form__submit {
        padding: 0.82rem 1.7rem;
        font-size: 0.88rem;
    }
}

@media screen and (max-width: 700px) {

    /* Footer columns cleanly stack rather than overlap on phones. */
    footer .footer_bar {
        flex-direction: column;
        padding: 2rem 0;
    }

    footer .footer_bar>li {
        flex-basis: 100%;
        margin: 0 0 1.5rem;
    }

    .join-hero {
        padding: 3rem 0 0;
    }

    .join-hero h1 {
        font-size: 2.5rem;
        margin-bottom: 0.95rem;
    }

    .join-hero__title-subtitle {
        margin-top: 0.36rem;
        font-size: 1.25rem;
    }

    .join-hero__visual {
        display: flex;
        justify-content: center;
        align-items: flex-end;
        margin-top: -1.95rem;
    }

    .join-hero__visual img {
        width: min(69vw, 17.1rem);
        max-width: 17.1rem;
        margin-top: 0;
        margin-bottom: -2.2rem;
        transform: translateX(-0.15rem);
        clip-path: inset(7.5% 0 18% 0);
        filter: drop-shadow(0 10px 26px rgba(0, 0, 0, 0.2));
        display: block;
    }

    .join-hero__jump {
        margin-top: 1.35rem;
        padding-top: 1.1rem;
    }

    .join-steps {
        padding: 2.45rem 0 3.5rem;
    }

    .join-steps__title {
        margin-bottom: 1.9rem !important;
        font-size: 1.75em !important;
    }

    .join-steps__list {
        grid-template-columns: 1fr;
    }

    .join-step {
        border-right: none;
        padding: 1.5rem 1.25rem 1.75rem;
    }

    .join-form-section {
        padding: 2.3rem 0 3.5rem;
    }

    .join-form-section__intro dl {
        display: none;
    }

    .join-form__contact-compact {
        display: block;
    }

    .join-form__grid {
        grid-template-columns: 1fr;
    }

    .join-form {
        padding: 1.5rem;
    }

    .join-form__field label {
        font-size: 0.82rem;
    }

    .join-form__field label .opt {
        font-size: 0.72rem;
    }

    .join-form__header .req-note {
        font-size: 0.78rem;
    }

    .join-form__footer {
        flex-direction: column;
        align-items: stretch;
    }

    .join-form__submit {
        justify-content: center;
        width: 100%;
    }

    .upse-inline-cta {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media screen and (max-width: 500px) {
    .join-hero {
        padding: 1.8rem 0 0;
    }

    .join-hero h1 {
        font-size: 1.85rem;
        line-height: 1.02;
        margin-bottom: 0.82rem;
    }

    .join-hero p {
        font-size: 1rem;
        line-height: 1.5;
    }

    .join-hero__title-subtitle {
        margin-top: 0.28rem;
        font-size: 1.02rem;
        line-height: 1.2;
    }

    .join-hero__visual {
        align-items: flex-end;
        margin-top: -2.35rem;
    }

    .join-hero__visual img {
        width: min(67vw, 14.8rem);
        max-width: 14.8rem;
        margin-bottom: -4.55rem;
        transform: translateX(-0.22rem);
        clip-path: inset(9% 0 18% 0);
    }

    .join-steps {
        padding: 2.05rem 0 3rem;
    }

    .join-steps__title {
        font-size: 1.5em !important;
        margin-bottom: 1.55rem !important;
    }

    .join-step {
        padding: 1.25rem 1rem 1.5rem;
    }

    .join-step__num {
        font-size: 1.75rem;
    }

    .join-form-section {
        padding: 1.85rem 0 3rem;
    }

    .join-form {
        padding: 1.25rem 1rem;
    }

    .join-form__header {
        flex-direction: column;
        gap: 0.5rem;
    }

    .join-form__field label {
        font-size: 0.85rem;
    }
}

/* ---------------------------------------------------------
   4. Homepage hero - 62/38 split
   MetaSlider on the left (62%), organising CTA panel on the right (38%).
   Replaces the previous full-viewport-width slider with a designed entry
   point that signposts /join-upse/.
   --------------------------------------------------------- */
.homepage-hero {
    position: relative;
    width: 100%;
    background: linear-gradient(180deg, #1e429a 0%, #0d2563 100%);
    min-height: clamp(520px, 61vh, 720px);
    overflow: hidden;
}

.homepage-stage {
    position: relative;
}

.homepage-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 3.2fr) minmax(0, 1fr);
    align-items: stretch;
    min-height: inherit;
}

/* Slider column - rewrap the MetaSlider so it fills the left column at any ratio */
.homepage-hero__slider {
    position: relative;
    overflow: hidden;
    background: #0d2563;
}

.homepage-hero__slider,
.homepage-hero__slider .metaslider,
.homepage-hero__slider #metaslider_container_1283,
.homepage-hero__slider #metaslider_1283,
.homepage-hero__slider .flexslider,
.homepage-hero__slider .flex-viewport,
.homepage-hero__slider .slides {
    height: 100% !important;
    max-height: none !important;
}

.homepage-hero__slider .flexslider {
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* FlexSlider positions each <li> with float + negative margin for the overlap stack.
   Force them to fill the viewport and stack via absolute positioning so object-fit
   cover can do its job on the images. */
.homepage-hero__slider .slides>li {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    float: none !important;
    margin: 0 !important;
}

.homepage-hero__slider .slides {
    position: relative;
}

.homepage-hero__slider .slides img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
}

.homepage-hero__slider .metaslider_image_link,
.homepage-hero__slider .slides>li>a {
    display: block;
    width: 100%;
    height: 100%;
}

/* Pull the metaslider dot controls inside the slider and anchor them bottom-left */
.homepage-hero__slider .flex-control-nav {
    position: absolute;
    bottom: 1.15rem;
    left: 1.4rem;
    width: auto;
    margin: 0;
    padding: 0;
    text-align: left;
    z-index: 2;
}

.homepage-hero__slider .flex-direction-nav {
    display: block;
}

.homepage-hero__slider .flex-direction-nav a {
    width: 70px !important;
    height: 70px !important;
    margin: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, 0.9) !important;
    background-image: none !important;
    box-shadow: none !important;
    opacity: 0 !important;
    overflow: hidden !important;
    text-indent: -9999px !important;
}

.homepage-hero__slider .flex-direction-nav .flex-prev {
    left: 2% !important;
}

.homepage-hero__slider .flex-direction-nav .flex-next {
    right: 2% !important;
    text-align: left !important;
}

.homepage-hero__slider .flex-direction-nav .flex-prev::before,
.homepage-hero__slider .flex-direction-nav .flex-next::before {
    content: "" !important;
    position: absolute;
    left: 50%;
    top: 50%;
    width: 23px !important;
    height: 24px !important;
    transform: translate(-50%, -50%);
    background-color: #6c6c6c !important;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: 23px auto;
    mask-size: 23px auto;
}

.homepage-hero__slider .flex-direction-nav .flex-prev::before {
    -webkit-mask-image: url("/wp-content/plugins/ml-slider/themes/bubble/v1.0.0/images/arrow-left.svg");
    mask-image: url("/wp-content/plugins/ml-slider/themes/bubble/v1.0.0/images/arrow-left.svg");
    -webkit-mask-position: 3px 1px;
    mask-position: 3px 1px;
}

.homepage-hero__slider .flex-direction-nav .flex-next::before {
    -webkit-mask-image: url("/wp-content/plugins/ml-slider/themes/bubble/v1.0.0/images/arrow-right.svg");
    mask-image: url("/wp-content/plugins/ml-slider/themes/bubble/v1.0.0/images/arrow-right.svg");
    -webkit-mask-position: -3px 1px;
    mask-position: -3px 1px;
}

.homepage-hero__slider .flexslider:hover .flex-direction-nav .flex-prev,
.homepage-hero__slider .flexslider:hover .flex-direction-nav .flex-next,
.homepage-hero__slider .flexslider:focus-within .flex-direction-nav .flex-prev,
.homepage-hero__slider .flexslider:focus-within .flex-direction-nav .flex-next {
    opacity: 0.8 !important;
}

.homepage-hero__slider .flexslider:hover .flex-direction-nav .flex-prev:hover,
.homepage-hero__slider .flexslider:hover .flex-direction-nav .flex-next:hover,
.homepage-hero__slider .flexslider:focus-within .flex-direction-nav .flex-prev:focus,
.homepage-hero__slider .flexslider:focus-within .flex-direction-nav .flex-next:focus {
    opacity: 1 !important;
}

/* ==========================================================================
   Homepage Hero - Pitch Column (Grounded & Resolute)
   ========================================================================== */
.homepage-hero__pitch {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: clamp(2.45rem, 4vw, 4.75rem) clamp(1.25rem, 1.9vw, 2.15rem);
    background: #1e429a;
    border-left: 2px solid rgba(255, 255, 255, 0.05);
    /* Architectural seam */
    overflow: hidden;
}

/* Hard geometric texture overlay instead of soft bokeh */
.homepage-hero__pitch::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
    background-size: 40px 40px;
    background-position: center top;
    opacity: 0.6;
    z-index: 0;
}

/* Deep inset shadow to create a recessed architectural feel on the right side */
.homepage-hero__pitch::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    box-shadow: inset 0px 40px 60px rgba(0, 0, 0, 0.3);
    z-index: 1;
}

.homepage-hero__pitch-inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 21.5rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-top: 1.5rem;
    margin-left: 0.85rem;
}

/* Sturdy, sharp accent bar */
.homepage-hero__bar {
    display: block;
    width: 52px;
    height: 4px;
    /* Thicker and bolder */
    background: #efe938;
    margin: 0 0 1.25rem;
    transform-origin: left center;
    animation: homepage-hero-bar-in 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes homepage-hero-bar-in {
    from {
        transform: scaleX(0);
    }

    to {
        transform: scaleX(1);
    }
}

.homepage-hero__eyebrow {
    margin: 0 0 1rem;
    font-size: 0.85rem;
    font-weight: 800;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: #efe938;
    line-height: 1.2;
}

/* Stacked title block - primary phrase ("Organize your workplace.") sits above
   a lighter subtitle line ("Join UPSE."). Sized to keep the primary on two
   lines max in the narrow ~21rem pitch column. */
.homepage-hero__title {
    margin: 0 0 1.18rem !important;
    font-size: clamp(2.3rem, 1.4rem + 2vw, 3.6rem) !important;
    font-weight: 900;
    /* Extra bold */
    letter-spacing: -0.035em;
    line-height: 0.94;
    color: #ffffff !important;
    text-wrap: balance;
}

.homepage-hero__title-primary {
    display: block;
}

.homepage-hero__title-subtitle {
    display: block;
    margin-top: 0.48rem;
    font-size: clamp(1.02rem, 0.72rem + 0.46vw, 1.22rem);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.005em;
    color: rgba(255, 255, 255, 0.78);
}

/* Highlighted period for emphasis */
.yellow-period {
    color: #efe938;
}

.homepage-hero__subtext {
    margin: 0 0 1.85rem;
    font-size: 1.05rem;
    line-height: 1.55;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.85);
    max-width: 20rem;
}

/* Pitch-specific CTA - sized to sit comfortably in the narrow 30% column. */
.homepage-hero__pitch .homepage-hero__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    padding: 1.1rem 2rem;
    font-size: 1rem;
    justify-content: center;
    text-decoration: none;
    box-shadow: 4px 4px 0 0 rgba(0, 0, 0, 0.36);
    border: 3px solid #efe938;
    background: #efe938;
    color: #1e429a !important;
}

.homepage-hero__pitch .homepage-hero__cta::before {
    background: #ffffff;
}

.homepage-hero__pitch .homepage-hero__cta:hover {
    color: #1e429a !important;
    box-shadow: 6px 6px 0 0 rgba(0, 0, 0, 0.45);
    border-color: #ffffff;
}

.homepage-hero__cta-arrow {
    display: inline-block;
    font-weight: 800;
    font-size: 1.1em;
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.homepage-hero__pitch .homepage-hero__cta:hover .homepage-hero__cta-arrow {
    transform: translateX(6px);
}

/* ---------------------------------------------------------
   5. Homepage shortcuts rail
   Rebuilt to match the clean, modern UPSE styling of the Join section.
   --------------------------------------------------------- */
.homepage-shortcuts {
    background: #1e429a;
    position: relative;
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.homepage-shortcuts__inner {
    display: flex;
    flex-wrap: wrap;
    padding: 0 !important;
    gap: 0;
}
.homepage-shortcut {
    position: relative;
    display: flex;
    box-sizing: border-box;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 1.05rem 1.1rem;
    color: #ffffff !important;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
    flex: 1 1 0;
    min-width: 190px; /* 2 columns on mobile */
    overflow: hidden;
}

.homepage-shortcut--join {
    display: none;
}
.homepage-shortcut::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 3px;
    background: #efe938;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}
.homepage-shortcut:hover,
.homepage-shortcut:focus-visible {
    color: #efe938 !important;
    background: rgba(0, 0, 0, 0.18);
    outline: none;
}
.homepage-shortcut:hover::after,
.homepage-shortcut:focus-visible::after {
    transform: scaleX(1);
}
.homepage-shortcut:hover .homepage-shortcut__icon,
.homepage-shortcut:focus-visible .homepage-shortcut__icon {
    transform: translateX(-1px);
}
.homepage-shortcut__icon {
    width: 46px;
    height: 46px;
    font-size: 46px;
    line-height: 1;
    color: inherit;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.homepage-shortcuts .homepage-shortcut__icon.dashicons {
    width: 46px !important;
    height: 46px !important;
    font-size: 46px !important;
}

.homepage-shortcut__icon::before {
    font-size: inherit;
    width: 1em;
    height: 1em;
    line-height: 1;
}

.homepage-shortcut__icon.dashicons::before {
    font-size: inherit !important;
    width: 1em !important;
    height: 1em !important;
    line-height: 1 !important;
    display: block;
    transform: scale(0.9);
    transform-origin: center;
}
.homepage-shortcut__icon svg {
    width: 100%;
    height: 100%;
    display: block;
    stroke-width: 2.25;
}
.homepage-shortcut__label {
    font-size: 0.86rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    white-space: nowrap;
    text-align: left;
}

@media screen and (max-width: 900px) {
    .homepage-shortcuts {
        /* Subtle hairline separating the pitch panel above from the rail */
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 0.08),
            inset 0 -1px 0 rgba(0, 0, 0, 0.25);
    }
    .homepage-shortcuts__inner {
        flex-direction: column;
    }

    body.home[data-home-variant="standard"] .homepage-shortcut--join {
        display: flex;
    }

    .homepage-shortcut {
        min-width: 0;
        width: 100%;
        flex: 0 0 auto;
        justify-content: flex-start;
        gap: 0.95rem;
        padding: 0.95rem 3.25rem 0.95rem 1.15rem;
        border-bottom: 1px solid rgba(255, 255, 255, 0.09);
        background: rgba(255, 255, 255, 0.04);
        box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
    }
    .homepage-shortcut::before {
        content: "\2192";
        position: absolute;
        top: 50%;
        right: 1.15rem;
        color: rgba(239, 233, 56, 0.76);
        font-size: 1.05rem;
        font-weight: 800;
        line-height: 1;
        transform: translateY(-50%);
        transition:
            color 0.22s ease,
            transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .homepage-shortcut:last-child {
        border-bottom: 0;
    }
    /* Swap the yellow slide-up bar for a soft left accent on mobile */
    .homepage-shortcut::after {
        left: 0;
        top: 0;
        right: auto;
        bottom: 0;
        width: 3px;
        height: auto;
        transform: translateX(-100%);
        transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .homepage-shortcut:hover::after,
    .homepage-shortcut:focus-visible::after {
        transform: translateX(0);
    }
    .homepage-shortcut:hover::before,
    .homepage-shortcut:focus-visible::before {
        color: #efe938;
        transform: translate(4px, -50%);
    }
    .homepage-shortcut__icon {
        width: 36px;
        height: 36px;
        font-size: 36px;
    }

    .homepage-shortcuts .homepage-shortcut__icon.dashicons {
        width: 36px !important;
        height: 36px !important;
        font-size: 36px !important;
    }

    .homepage-shortcut__icon.dashicons::before {
        font-size: inherit !important;
        width: 1em !important;
        height: 1em !important;
    }
    .homepage-shortcut__label {
        font-size: 0.86rem;
        letter-spacing: 0.09em;
        white-space: normal;
    }
}

/* Responsive Overrides */
@media screen and (min-width: 1001px) and (max-width: 1600px) {
    .homepage-hero {
        min-height: clamp(340px, 42vh, 400px);
    }
}

@media screen and (max-width: 1000px) {
    .homepage-hero {
        min-height: 0;
    }

    .homepage-hero__grid {
        grid-template-columns: 1fr;
    }

    /* On mobile/stacked layouts the slider adopts the images' native aspect ratio
       (2000 x 750) - FlexSlider keeps fading between stacked slides, but with the
       container matching the image ratio, object-fit: cover no longer crops.
       This mirrors how the legacy UPSE homepage banner sits on mobile. */
    .homepage-hero__slider {
        aspect-ratio: 2000 / 750;
    }

    .homepage-hero__slider,
    .homepage-hero__slider .metaslider,
    .homepage-hero__slider #metaslider_container_1283,
    .homepage-hero__slider #metaslider_1283,
    .homepage-hero__slider .flexslider,
    .homepage-hero__slider .flex-viewport,
    .homepage-hero__slider .slides {
        height: 100% !important;
        max-height: none !important;
    }

    .homepage-hero__slider .flex-direction-nav a {
        width: 58px !important;
        height: 58px !important;
    }

    .homepage-hero__slider .flex-direction-nav .flex-prev {
        left: 1rem !important;
    }

    .homepage-hero__slider .flex-direction-nav .flex-next {
        right: 1rem !important;
    }

    .homepage-hero__pitch {
        padding: 3.25rem 2rem 3rem;
        border-left: none;
        border-top: 2px solid rgba(255, 255, 255, 0.05);
    }

    /* Align rail items with the pitch's inner content edge on mobile */
    .homepage-shortcuts__inner.indented {
        width: 100%;
        max-width: none;
    }
    .homepage-shortcut {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

@media screen and (max-width: 700px) {
    .homepage-hero__bar {
        width: 48px;
        height: 3px;
        margin-bottom: 1rem;
    }

    .homepage-hero__eyebrow {
        font-size: 0.75rem;
        letter-spacing: 0.2em;
    }

    .homepage-hero__subtext {
        font-size: 1.05rem;
        margin-bottom: 2rem;
    }

    .homepage-hero__pitch .homepage-hero__cta {
        display: flex;
        width: calc(100% - 8px); /* accounts for the 6px box-shadow on the right edge */
        min-width: 0;
        padding: 0.85rem 1.5rem;
        font-size: 0.88rem;
    }

    .homepage-hero__slider .flex-direction-nav a {
        width: 48px !important;
        height: 48px !important;
    }








}

@media screen and (max-width: 500px) {
    .homepage-hero__pitch {
        padding: 2.5rem 1.5rem 2.25rem;
    }

    .homepage-shortcut {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

@media (hover: none) {
    .join-step:hover {
        transform: none;
    }

    .join-step:hover,
    .join-step:focus-visible,
    .join-step:active {
        background: #ffffff;
    }

    .join-step:hover::before,
    .join-step:focus-visible::before,
    .join-step:active::before {
        width: 0;
    }

    .join-step:hover .join-step__num,
    .join-step:focus-visible .join-step__num,
    .join-step:active .join-step__num {
        color: #1e429a;
    }

    .join-step:hover .join-step__title,
    .join-step:hover .join-step__desc,
    .join-step:focus-visible .join-step__title,
    .join-step:focus-visible .join-step__desc,
    .join-step:active .join-step__title,
    .join-step:active .join-step__desc {
        color: inherit !important;
    }

    .join-form__submit:hover {
        transform: none;
    }

    .upse-cta-btn:hover {
        transform: none;
        box-shadow: 4px 4px 0 0 rgba(11, 26, 69, 0.15);
    }

    .upse-cta-btn:hover::before {
        transform: translateY(101%);
    }

    .upse-cta-btn--invert:hover {
        box-shadow: 6px 6px 0 0 #efe938;
    }

    .homepage-hero__pitch .homepage-hero__cta:hover {
        box-shadow: 6px 6px 0 0 rgba(0, 0, 0, 0.4);
        border-color: #efe938;
    }

    .homepage-hero__pitch .homepage-hero__cta:hover .homepage-hero__cta-arrow {
        transform: none;
    }

    body.home .homepage-shortcut:hover {
        background: transparent;
    }

}

/* ---------------------------------------------------------
   6. Homepage recommended presentation
   --------------------------------------------------------- */
body.home {
    --home-hero-frame-height: clamp(449px, 33.1vw, 477px);
    --home-hero-height-override: clamp(500px, 60vh, 700px);
    --home-hero-laptop-height-override: clamp(390px, 48vh, 470px);
    --home-hero-current-height: var(--home-hero-height-override);
    --home-hero-columns-override: minmax(0, 2fr) minmax(0, 1fr);
    --home-pitch-padding-block-override: clamp(2.7rem, 4.1vw, 5rem);
    --home-pitch-padding-inline-override: clamp(1.35rem, 2vw, 2.45rem);
    --home-pitch-max-override: 21rem;
    --home-pitch-offset-override: 1.3rem;
    --home-pitch-bg-override: #1e429a;
    --home-pitch-border-override: rgba(255, 255, 255, 0.05);
    --home-title-size-override: clamp(2.18rem, 1.2rem + 1.9vw, 3.35rem);
    --home-subtext-size-override: 1rem;
    --home-subtext-line-override: 1.55;
    --home-subtext-max-override: 20rem;
    --home-subtext-margin-override: 0 0 1.85rem;
    --home-cta-gap-override: 0.62rem;
    --home-cta-padding-block-override: 1rem;
    --home-cta-padding-inline-override: 1.7rem;
    --home-cta-font-override: 0.95rem;
    --home-cta-shadow-override: 6px 6px 0 0 rgba(0, 0, 0, 0.4);
}

body.home[data-home-variant="compact"] {
    --home-hero-height-override: clamp(500px, 59vh, 690px);
    --home-hero-laptop-height-override: clamp(340px, 42vh, 400px);
    --home-hero-columns-override: minmax(0, 3.2fr) minmax(0, 1fr);
    --home-pitch-padding-block-override: clamp(2.45rem, 4vw, 4.75rem);
    --home-pitch-padding-inline-override: clamp(1.25rem, 1.9vw, 2.15rem);
    --home-pitch-max-override: 21.5rem;
    --home-pitch-offset-override: 1.5rem;
    --home-title-size-override: clamp(1.82rem, 1.05rem + 1.36vw, 2.72rem);
    --home-subtext-size-override: 1.05rem;
    --home-subtext-max-override: 20rem;
    --home-subtext-margin-override: 0 0 2rem;
    --home-cta-gap-override: 0.65rem;
    --home-cta-padding-block-override: 1.1rem;
    --home-cta-padding-inline-override: 2rem;
    --home-cta-font-override: 1rem;
    --home-cta-shadow-override: 4px 4px 0 0 rgba(0, 0, 0, 0.36);
}

body.home {
    --home-hero-height-override: clamp(500px, 59vh, 690px);
    --home-hero-laptop-height-override: clamp(340px, 42vh, 400px);
    --home-hero-columns-override: minmax(0, 3.2fr) minmax(0, 1fr);
    --home-pitch-padding-block-override: clamp(2.45rem, 4vw, 4.75rem);
    --home-pitch-padding-inline-override: clamp(1.25rem, 1.9vw, 2.15rem);
    --home-pitch-max-override: 21.5rem;
    --home-pitch-offset-override: 1.5rem;
    --home-title-size-override: clamp(2.05rem, 1.2rem + 1.72vw, 3.15rem);
    --home-subtext-size-override: 1.05rem;
    --home-subtext-max-override: 20rem;
    --home-cta-gap-override: 0.65rem;
    --home-cta-padding-block-override: 1.1rem;
    --home-cta-padding-inline-override: 2rem;
    --home-cta-font-override: 1rem;
}

body.home[data-home-variant="standard"] {
    --home-hero-height-override: var(--home-hero-frame-height);
    --home-hero-laptop-height-override: var(--home-hero-frame-height);
    --home-hero-current-height: var(--home-hero-frame-height);
    --home-hero-columns-override: 1fr;
}

body.home[data-home-variant="left"] {
    --home-hero-columns-override: minmax(0, 1fr) minmax(0, 2fr);
}

body.home .homepage-hero {
    min-height: var(--home-hero-height-override);
}

body.home .homepage-hero__grid {
    grid-template-columns: var(--home-hero-columns-override);
}

body.home .homepage-hero__pitch {
    padding: var(--home-pitch-padding-block-override) var(--home-pitch-padding-inline-override);
    background: var(--home-pitch-bg-override);
    border-left: 2px solid var(--home-pitch-border-override);
}

body.home[data-home-variant="standard"] .homepage-hero {
    min-height: 0;
    height: auto;
    background: transparent;
}

body.home[data-home-variant="standard"] .homepage-hero__grid {
    display: block;
    min-height: 0;
    height: auto;
}

body.home[data-home-variant="standard"] .homepage-hero__pitch {
    display: none;
}

body.home[data-home-variant="standard"] .homepage-hero__slider {
    aspect-ratio: 2000 / 750;
    height: auto;
    background: transparent;
}

body.home[data-home-variant="standard"] .homepage-hero__slider,
body.home[data-home-variant="standard"] .homepage-hero__slider .metaslider,
body.home[data-home-variant="standard"] .homepage-hero__slider #metaslider_container_1283,
body.home[data-home-variant="standard"] .homepage-hero__slider #metaslider_1283,
body.home[data-home-variant="standard"] .homepage-hero__slider .flexslider,
body.home[data-home-variant="standard"] .homepage-hero__slider .flex-viewport,
body.home[data-home-variant="standard"] .homepage-hero__slider .slides {
    height: 100% !important;
    max-height: none !important;
}

body.home[data-home-variant="standard"] .homepage-hero__slider .slides img {
    object-fit: cover !important;
    object-position: center !important;
}

@media screen and (min-width: 1025px) {
    body.home[data-home-variant="standard"] .homepage-shortcut--join {
        display: flex;
    }

    body.home[data-home-variant="standard"] .homepage-shortcuts__inner {
        display: grid;
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    body.home[data-home-variant="standard"] .homepage-shortcut {
        min-width: 0;
        width: 100%;
        flex: none;
        min-height: 0;
        gap: clamp(0.55rem, 0.7vw, 0.8rem);
        padding: 1rem clamp(0.45rem, 0.75vw, 0.9rem);
        flex-direction: row;
    }

    body.home[data-home-variant="standard"] .homepage-shortcut__icon {
        width: 40px;
        height: 40px;
        font-size: 40px;
    }

    body.home[data-home-variant="standard"] .homepage-shortcuts .homepage-shortcut__icon.dashicons {
        width: 40px !important;
        height: 40px !important;
        font-size: 40px !important;
    }

    body.home[data-home-variant="standard"] .homepage-shortcut__label {
        font-size: clamp(0.68rem, 0.64rem + 0.12vw, 0.78rem);
        letter-spacing: 0.055em;
        line-height: 1.12;
        max-width: 7.6rem;
        text-align: left;
        white-space: normal;
    }
}

body.home .homepage-hero__pitch-inner {
    max-width: var(--home-pitch-max-override);
    margin-top: var(--home-pitch-offset-override);
}

body.home .homepage-hero__title {
    font-size: var(--home-title-size-override) !important;
}

body.home .homepage-hero__subtext {
    margin: var(--home-subtext-margin-override);
    font-size: var(--home-subtext-size-override);
    line-height: var(--home-subtext-line-override);
    max-width: var(--home-subtext-max-override);
}

body.home .homepage-hero__pitch .homepage-hero__cta {
    gap: var(--home-cta-gap-override);
    padding: var(--home-cta-padding-block-override) var(--home-cta-padding-inline-override);
    font-size: var(--home-cta-font-override);
    box-shadow: var(--home-cta-shadow-override);
}

body.home .homepage-hero__pitch-inner {
    visibility: hidden;
    pointer-events: none;
}

body.home[data-home-variant="compact"] .homepage-shortcuts {
    background: transparent;
    overflow: hidden;
    box-shadow: none;
    position: relative;
}

body.home[data-home-variant="compact"] .homepage-stage {
    background: #1e429a;
    overflow: hidden;
}

body.home[data-home-variant="compact"] .homepage-stage::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.034) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.034) 1px, transparent 1px);
    background-size: 40px 40px;
    background-position: 0 0;
    opacity: 0.62;
    z-index: 0;
}

body.home[data-home-variant="compact"] .homepage-stage::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(2, 8, 24, 0.06) 0%, rgba(2, 8, 24, 0.03) 46%, rgba(0, 0, 0, 0.08) 74%, rgba(0, 0, 0, 0.18) 100%);
    z-index: 0;
}

body.home[data-home-variant="compact"] .homepage-stage > * {
    position: relative;
    z-index: 1;
}

body.home[data-home-variant="compact"] .homepage-shortcuts::before,
body.home[data-home-variant="compact"] .homepage-shortcuts::after {
    content: "";
    display: none;
}

body.home[data-home-variant="compact"] .homepage-shortcuts::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    display: block;
    height: 1px;
    background: linear-gradient(
        to right,
        transparent 0%,
        rgba(239, 233, 56, 0.3) 18%,
        rgba(239, 233, 56, 0.3) 82%,
        transparent 100%
    );
    z-index: 2;
}

body.home[data-home-variant="compact"] .homepage-shortcuts__inner {
    position: relative;
    z-index: 2;
}

body.home[data-home-variant="compact"] .homepage-hero {
    background: transparent;
}

body.home[data-home-variant="compact"] .homepage-hero__pitch {
    background: transparent;
}

body.home[data-home-variant="compact"] .homepage-hero__pitch::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    box-shadow: none;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.24) 0%, rgba(0, 0, 0, 0.14) 18%, rgba(0, 0, 0, 0.03) 56%, rgba(0, 0, 0, 0) 100%);
    z-index: 1;
}

body.home[data-home-variant="compact"] .homepage-hero__pitch::before {
    content: "";
    display: none;
}

body.home[data-home-variant="left"] .homepage-hero__pitch {
    order: -1;
    border-left: none;
    border-right: 2px solid var(--home-pitch-border-override);
}

body.home[data-home-variant="left"] .homepage-hero__slider {
    order: 2;
}

@media screen and (min-width: 1001px) and (max-width: 1600px) {
    body.home {
        --home-hero-current-height: var(--home-hero-laptop-height-override);
    }

    body.home .homepage-hero {
        min-height: var(--home-hero-frame-height);
        height: var(--home-hero-frame-height);
    }

    body.home .homepage-hero__grid,
    body.home .homepage-hero__slider {
        min-height: var(--home-hero-frame-height);
        height: var(--home-hero-frame-height);
    }

    body.home[data-home-variant="standard"] .homepage-hero,
    body.home[data-home-variant="standard"] .homepage-hero__grid {
        min-height: 0;
        height: auto;
    }

    body.home[data-home-variant="standard"] .homepage-hero__slider {
        aspect-ratio: 2000 / 750;
        height: auto;
    }

    body.home .homepage-hero__pitch {
        padding: clamp(2.2rem, 3.2vw, 3.8rem) clamp(1.25rem, 1.9vw, 2.15rem);
    }

    body.home .homepage-hero__brief {
        max-width: 22rem;
    }

    body.home .homepage-hero__brief-title {
        margin-bottom: 1.45rem;
    }

    body.home .homepage-hero__brief-title-primary {
        font-size: clamp(2.02rem, 1.15rem + 1.78vw, 3.05rem);
    }

    body.home .homepage-hero__brief-title-rule {
        width: 48px;
        margin: 1rem 0 0.9rem;
    }

    body.home .homepage-hero__brief-title-secondary {
        font-size: 1.05rem;
        line-height: 1.28;
    }

    body.home .homepage-hero__brief-lede {
        margin-bottom: 1.85rem;
        font-size: 1rem;
        line-height: 1.55;
        max-width: 21rem;
    }

    body.home .homepage-hero__brief-cta {
        padding: 0.82rem 0.72rem 0.82rem 1.5rem;
        font-size: 0.86rem;
    }

    body.home .homepage-hero__brief-cta-arrow {
        width: 2.35rem;
        height: 2.35rem;
        font-size: 1rem;
    }

}

@media screen and (max-width: 1000px) {
    body.home {
        --home-hero-current-height: 0px;
    }

    body.home .homepage-hero {
        min-height: 0;
        height: auto;
    }

    body.home .homepage-hero__grid {
        grid-template-columns: 1fr;
        height: auto;
    }

    body.home[data-home-variant="standard"] .homepage-hero,
    body.home[data-home-variant="standard"] .homepage-hero__grid {
        min-height: 0;
        height: auto;
    }

    body.home[data-home-variant="standard"] .homepage-hero__slider {
        aspect-ratio: 2000 / 750;
        height: auto;
    }

    body.home .homepage-hero__pitch,
    body.home[data-home-variant="left"] .homepage-hero__pitch {
        order: 0;
        padding: 3.5rem 2rem 4rem;
        border-left: none;
        border-right: none;
        border-top: 2px solid rgba(255, 255, 255, 0.05);
    }

}

@media screen and (max-width: 700px) {
    body.home .homepage-hero__bar {
        width: 48px;
        height: 3px;
        margin-bottom: 1rem;
    }

    body.home .homepage-hero__eyebrow {
        font-size: 0.75rem;
        letter-spacing: 0.2em;
    }

    body.home .homepage-hero__subtext {
        font-size: 1.05rem;
        margin-bottom: 2rem;
    }

    body.home .homepage-hero__pitch .homepage-hero__cta {
        display: flex;
        width: calc(100% - 8px);
        min-width: 0;
        padding: 0.85rem 1.5rem;
        font-size: 0.88rem;
    }

}

@media screen and (max-width: 500px) {
    body.home .homepage-hero__pitch {
        padding: 2.75rem 1.5rem 3rem;
    }

}

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
    }
}

/* ---------------------------------------------------------
   Homepage hero - Variant B (Editorial Ledger)
   Deep UPSE navy panel with subtle ledger hairline texture.
   Dual-statement headline with yellow rule. White outlined
   CTA ghosts to yellow on hover. Small EST 1966 discovered
   detail anchors the bottom-right corner.
   Scope: body.home only.
   --------------------------------------------------------- */

/* Scope the brief - hidden on all other variants */
body.home[data-home-variant="legacy-disabled"] .homepage-hero__brief {
    display: none;
    visibility: hidden;
}

/* Hide the EST 1966 mark on all other variants */
body.home[data-home-variant="legacy-disabled"] .homepage-hero__pitch-mark {
    display: none;
}

/* ---- Hero panel ---- */
body.home .homepage-hero__pitch {
    position: relative;
    overflow: hidden;
    background: #153884;
    border: none;
    padding: clamp(3rem, 4.8vw, 5.5rem) clamp(2rem, 3vw, 3.5rem);
}

/* Ledger hairline texture - subtle ruled-paper feel */
body.home .homepage-hero__pitch::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image: repeating-linear-gradient(
        to bottom,
        transparent,
        transparent 47px,
        rgba(255, 255, 255, 0.04) 47px,
        rgba(255, 255, 255, 0.04) 48px
    );
    z-index: 0;
}

/* Gentle top-right highlight for depth without vignette muddiness */
body.home .homepage-hero__pitch::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(
        ellipse 70% 55% at 95% 5%,
        rgba(255, 255, 255, 0.06) 0%,
        transparent 55%
    );
    z-index: 0;
}

/* Hide Variant A content */
body.home .homepage-hero__pitch-inner {
    display: none;
    visibility: hidden;
    pointer-events: none;
}

/* ---- Brief container ---- */
body.home .homepage-hero__brief {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    width: 100%;
    max-width: 22.5rem;
    color: #ffffff;
}

/* ---- Dual-statement title ---- */
body.home .homepage-hero__brief-title {
    margin: 0 0 1.45rem;
    padding: 0;
    font-weight: 400;
    display: flex;
    flex-direction: column;
}

body.home .homepage-hero__brief-title-primary {
    display: block;
    font-size: clamp(2.08rem, 1.22rem + 2.05vw, 3.35rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.028em;
    color: #ffffff;
    text-wrap: balance;
}

body.home .homepage-hero__brief-title-rule {
    display: block;
    width: 56px;
    height: 2px;
    background: #efe938;
    margin: 1rem 0 0.92rem;
}

body.home .homepage-hero__brief-title-secondary {
    display: block;
    font-size: clamp(1.05rem, 0.7rem + 0.85vw, 1.4rem);
    font-weight: 400;
    line-height: 1.3;
    letter-spacing: 0.005em;
    color: rgba(255, 255, 255, 0.85);
}

/* ---- Lede ---- */
body.home .homepage-hero__brief-lede {
    margin: 0 0 1.9rem;
    padding: 0;
    border: none;
    font-size: 1rem;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.68);
    max-width: 22rem;
}

/* ---- CTA: flat yellow pill, restrained elevation, motion lives in the arrow ---- */
body.home .homepage-hero__brief-cta {
    display: inline-flex;
    box-sizing: border-box;
    align-items: center;
    gap: 1rem;
    padding: 0.88rem 0.78rem 0.88rem 1.75rem;
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: #0f2a63;

    background-color: #efe938;
    border: 1px solid rgba(10, 20, 50, 0.06);
    border-radius: 999px;
    box-shadow:
        0 1px 1px rgba(10, 20, 50, 0.04),
        0 10px 22px -14px rgba(10, 20, 50, 0.32);

    text-decoration: none;
    will-change: transform;
    transition:
        background-color 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
        border-color 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
        box-shadow 260ms cubic-bezier(0.2, 0.8, 0.2, 1),
        transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

body.home .homepage-hero__brief-cta:hover,
body.home .homepage-hero__brief-cta:focus-visible {
    background-color: #f4ee3f;
    border-color: rgba(10, 20, 50, 0.1);
    box-shadow:
        0 1px 1px rgba(10, 20, 50, 0.05),
        0 16px 28px -16px rgba(10, 20, 50, 0.4);
    transform: translateY(-1px);
    outline: none;
}

body.home .homepage-hero__brief-cta:active {
    background-color: #e5dc24;
    border-color: rgba(10, 20, 50, 0.12);
    transform: translateY(1px);
    box-shadow: 0 1px 2px rgba(10, 20, 50, 0.08);
    transition-duration: 90ms;
}

body.home .homepage-hero__brief-cta:focus-visible {
    outline: 2px solid rgba(18, 52, 115, 0.55);
    outline-offset: 3px;
}

body.home .homepage-hero__brief-cta-arrow {
    display: inline-flex;
    width: 2.55rem;
    height: 2.55rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #0f2a63;
    color: #efe938;
    font-size: 1.08rem;
    line-height: 1;
    transition:
        background-color 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
        color 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
        transform 320ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

body.home .homepage-hero__brief-cta:hover .homepage-hero__brief-cta-arrow,
body.home .homepage-hero__brief-cta:focus-visible .homepage-hero__brief-cta-arrow {
    background: #061943;
    color: #ffffff;
    transform: translateX(4px);
}

/* ---- EST mark removed for the cleaner presentation variant ---- */
body.home .homepage-hero__pitch-mark {
    display: none;
}

/* ---------------------------------------------------------
   Icon strip - Variant B: same navy surface as the panel,
   A-sized icons, B's left-bar hover motion.
   --------------------------------------------------------- */
body.home .homepage-shortcuts {
    background: #153884;
    box-shadow: none;
    position: relative;
}

/* Top hairline - subtle yellow separator from hero panel */
body.home .homepage-shortcuts::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(
        to right,
        transparent 0%,
        rgba(239, 233, 56, 0.3) 18%,
        rgba(239, 233, 56, 0.3) 82%,
        transparent 100%
    );
    z-index: 2;
}

body.home .homepage-shortcut {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 1.05rem 1.1rem;
    color: rgba(255, 255, 255, 0.92) !important;
    border-right: none;
    transition:
        color 0.22s ease,
        background-color 0.22s ease;
}

body.home .homepage-shortcut:last-child {
    border-right: none;
}

body.home .homepage-shortcut__icon {
    display: inline-flex;
    width: 46px !important;
    height: 46px !important;
    font-size: 46px !important;
    color: inherit;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

body.home .homepage-shortcut__icon::before {
    font-size: inherit !important;
    width: 1em !important;
    height: 1em !important;
    line-height: 1 !important;
    display: block;
    transform: scale(0.9);
    transform-origin: center;
}

body.home .homepage-shortcut__label {
    font-size: 0.86rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: inherit;
    line-height: 1.2;
    white-space: nowrap;
    text-align: left;
}

body.home .homepage-shortcut__sublabel {
    font-size: 0.8rem;
    font-weight: 400;
    letter-spacing: 0.01em;
    text-transform: none;
    color: rgba(255, 255, 255, 0.3);
    transition: color 0.22s ease;
}

/* Full-bottom indicator like Style A, with Style B's scale-in motion. */
body.home .homepage-shortcut::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    width: auto;
    height: 3px;
    background: #efe938;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

body.home .homepage-shortcut:hover,
body.home .homepage-shortcut:focus-visible {
    color: #efe938 !important;
    background: rgba(255, 255, 255, 0.03);
    outline: none;
}

body.home .homepage-shortcut:hover .homepage-shortcut__icon,
body.home .homepage-shortcut:focus-visible .homepage-shortcut__icon {
    transform: translateX(-1px);
}

body.home .homepage-shortcut:hover::after,
body.home .homepage-shortcut:focus-visible::after {
    transform: scaleX(1);
}

body.home .homepage-shortcut:hover .homepage-shortcut__sublabel,
body.home .homepage-shortcut:focus-visible .homepage-shortcut__sublabel {
    color: rgba(239, 233, 56, 0.55);
}

/* ---------------------------------------------------------
   Responsive - Variant B
   --------------------------------------------------------- */
@media screen and (max-width: 1000px) {
    body.home .homepage-hero__pitch {
        border-left: none;
        border-top: none;
    }

    body.home .homepage-hero__brief {
        max-width: 100%;
    }

    body.home .homepage-hero__brief-title-primary {
        font-size: clamp(2.18rem, 7vw, 3.55rem);
    }

    body.home .homepage-hero__brief-title-secondary {
        font-size: clamp(1rem, 2.6vw, 1.3rem);
    }
}

@media screen and (max-width: 640px) {
    body.home .homepage-hero__pitch {
        padding: 2.8rem 1.5rem 3.4rem;
    }

    body.home .homepage-hero__brief-cta {
        width: 100%;
        justify-content: space-between;
        padding: 0.72rem 0.65rem 0.72rem 1.4rem;
        font-size: 0.82rem;
    }

    body.home .homepage-hero__pitch-mark {
        display: none;
    }
}

@media screen and (max-width: 900px) {
    body.home[data-home-variant="compact"] .homepage-shortcuts {
        background: #153884;
        box-shadow: none;
    }

    body.home[data-home-variant="compact"] .homepage-shortcut {
        border-bottom: none;
    }

    body.home[data-home-variant="compact"] .homepage-shortcut::after {
        left: 0;
        right: 0;
        bottom: 0;
        top: auto;
        width: auto;
        height: 3px;
        transform: scaleX(0);
        transform-origin: center;
    }

    body.home[data-home-variant="compact"] .homepage-shortcut:hover::after,
    body.home[data-home-variant="compact"] .homepage-shortcut:focus-visible::after {
        transform: scaleX(1);
    }

    body.home .homepage-shortcut {
        border-right: none;
        border-bottom: none;
        width: 100%;
        flex: 0 0 auto;
        justify-content: flex-start;
        gap: 0.95rem;
        padding-left: 1.15rem;
        padding-right: 3.35rem;
    }

    body.home .homepage-shortcut:last-child {
        border-bottom: none;
    }
}

@media screen and (max-width: 900px) {
    .homepage-shortcut:hover {
        color: #ffffff !important;
        background: rgba(255, 255, 255, 0.04);
    }

    body.home .homepage-shortcut:hover {
        color: rgba(255, 255, 255, 0.92) !important;
        background: rgba(255, 255, 255, 0.04);
    }

    .homepage-shortcut:hover::after,
    body.home[data-home-variant="compact"] .homepage-shortcut:hover::after,
    body.home .homepage-shortcut:hover::after {
        transform: scaleX(0);
    }

    .homepage-shortcut:hover::before {
        color: rgba(239, 233, 56, 0.76);
        transform: translateY(-50%);
    }

    .homepage-shortcut:hover .homepage-shortcut__icon,
    body.home .homepage-shortcut:hover .homepage-shortcut__icon {
        transform: none;
    }

    .homepage-shortcut:active {
        color: #efe938 !important;
        background: rgba(255, 255, 255, 0.08);
    }

    body.home .homepage-shortcut:active {
        color: #efe938 !important;
        background: rgba(255, 255, 255, 0.08);
    }

    .homepage-shortcut:active::after,
    body.home[data-home-variant="compact"] .homepage-shortcut:active::after,
    body.home .homepage-shortcut:active::after {
        transform: scaleX(1);
    }

    .homepage-shortcut:active::before {
        color: #efe938;
        transform: translate(4px, -50%);
    }

    .homepage-shortcut:active .homepage-shortcut__icon {
        transform: translateX(-1px);
    }
}

@media (prefers-reduced-motion: reduce) {
    body.home .homepage-hero__brief-cta,
    body.home .homepage-hero__brief-cta-arrow,
    body.home .homepage-shortcut,
    .homepage-shortcut::before,
    body.home .homepage-shortcut::after {
        transition: none;
    }
}

/* ---------------------------------------------------------
   7. Reusable internal Join band (top, blue)
   --------------------------------------------------------- */
.upse-join-band {
    position: relative;
    display: block;
    isolation: isolate;
    overflow: hidden;
    color: #ffffff;
    background:
        radial-gradient(ellipse 55% 160% at 100% 50%, rgba(239, 233, 56, 0.11), transparent 58%),
        radial-gradient(ellipse 60% 140% at 0% 120%, rgba(20, 53, 123, 0.55), transparent 60%),
        linear-gradient(180deg, #15387f 0%, #0e265a 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        inset 0 -1px 0 rgba(6, 20, 55, 0.55);
}

.upse-join-band::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 1px 1px, rgba(255, 255, 255, 0.05) 1px, transparent 1.4px);
    background-size: 22px 22px;
    mask-image: linear-gradient(105deg, black 0%, transparent 52%);
    -webkit-mask-image: linear-gradient(105deg, black 0%, transparent 52%);
    pointer-events: none;
    opacity: 0.8;
    z-index: 0;
}

.upse-join-band,
.upse-join-band * {
    box-sizing: border-box;
}

.upse-join-band__inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: clamp(1rem, 2.2vw, 2.2rem);
    width: min(100%, 1180px);
    margin: 0 auto;
    padding: 1rem 1.25rem 1.05rem;
}

.upse-join-band__mark {
    flex: 0 0 auto;
    display: block;
    width: 4px;
    height: 42px;
    border-radius: 4px;
    background: linear-gradient(180deg, #f5ef48 0%, #e5df26 100%);
    box-shadow:
        0 0 0 1px rgba(239, 233, 56, 0.4),
        0 0 22px rgba(239, 233, 56, 0.38);
}

.upse-join-band__message {
    display: grid;
    gap: 0.3rem;
    min-width: 0;
    flex: 1 1 auto;
    max-width: 46rem;
}

.upse-join-band__eyebrow {
    margin: 0;
    padding: 0 !important;
    font-size: 0.64rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.62);
    line-height: 1.2;
}

.upse-join-band__title {
    margin: 0;
    padding: 0 !important;
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.18rem 0.6rem;
    line-height: 1.1;
    color: #ffffff;
    font-size: clamp(1.08rem, 0.92rem + 0.5vw, 1.35rem);
    letter-spacing: -0.015em;
}

.upse-join-band__title span {
    display: inline-block;
    font-size: inherit;
    line-height: inherit;
}

.upse-join-band__title-primary {
    font-weight: 800;
    color: #ffffff;
}

.upse-join-band__title-secondary {
    font-weight: 400;
    color: rgba(255, 255, 255, 0.78);
}

.upse-join-band__action {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
}

.upse-join-band__cta {
    display: inline-flex;
    box-sizing: border-box;
    align-items: center;
    gap: 0.5rem;
    min-height: 42px;
    padding: 0.32rem 0.4rem 0.32rem 1.05rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #0b2051;
    background: linear-gradient(180deg, #f5ef48 0%, #e8e12d 100%);
    border: 0;
    border-radius: 999px;
    text-decoration: none;
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.45) inset,
        0 -1px 0 rgba(130, 118, 0, 0.22) inset,
        0 12px 26px -14px rgba(239, 233, 56, 0.45),
        0 2px 8px -4px rgba(6, 20, 55, 0.35);
    transition:
        background-color 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
        box-shadow 260ms cubic-bezier(0.2, 0.8, 0.2, 1),
        transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
    will-change: transform;
}

.upse-join-band__cta,
.upse-join-band__cta:visited {
    color: #0b2051;
}

.upse-join-band__cta:hover,
.upse-join-band__cta:focus-visible {
    background: linear-gradient(180deg, #f9f464 0%, #eee733 100%);
    transform: translateY(-1px);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.55) inset,
        0 -1px 0 rgba(130, 118, 0, 0.22) inset,
        0 20px 32px -14px rgba(239, 233, 56, 0.55),
        0 4px 12px -4px rgba(6, 20, 55, 0.4);
    outline: none;
}

.upse-join-band__cta:active {
    transform: translateY(1px);
    transition-duration: 90ms;
}

.upse-join-band__cta:focus-visible {
    outline: 2px solid rgba(239, 233, 56, 0.6);
    outline-offset: 3px;
}

.upse-join-band__cta-label {
    white-space: nowrap;
}

.upse-join-band__cta-arrow {
    display: inline-flex;
    width: 1.65rem;
    height: 1.65rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #0f2a63;
    color: #f5ef48;
    font-size: 0.92rem;
    line-height: 1;
    transition:
        background-color 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
        color 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
        transform 320ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.upse-join-band__cta:hover .upse-join-band__cta-arrow,
.upse-join-band__cta:focus-visible .upse-join-band__cta-arrow {
    background: #0b2051;
    transform: translateX(3px);
}

@media (max-width: 820px) {
    .upse-join-band__inner {
        align-items: flex-start;
        gap: 0.9rem;
        padding: 0.95rem 1rem 1.05rem;
    }

    .upse-join-band__mark {
        height: 36px;
        margin-top: 0.2rem;
    }

    .upse-join-band__title {
        gap: 0.05rem 0.5rem;
    }
}

@media (max-width: 560px) {
    .upse-join-band__inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.85rem;
        padding: 1rem 1rem 1.1rem;
    }

    .upse-join-band__mark {
        width: 28px;
        height: 3px;
    }

    .upse-join-band__title {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.1rem;
    }

    .upse-join-band__title-secondary {
        font-size: 0.94em;
    }

    .upse-join-band__eyebrow {
        font-size: 0.58rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .upse-join-band__cta,
    .upse-join-band__cta-arrow {
        transition: none;
    }
}

/* ---------------------------------------------------------
   8. Internal split hero rollout (mock only)
   Replaces the old injected CTA treatments on qualifying
   public internal pages while preserving the homepage.
   --------------------------------------------------------- */
body.has-internal-split-hero {
    --internal-hero-frame-height: clamp(500px, 59vh, 690px);
    --internal-hero-laptop-height: clamp(449px, 33.1vw, 477px);
    --internal-hero-columns: minmax(0, 3.2fr) minmax(0, 1fr);
}

body.has-internal-split-hero .internal-split-hero .hero_image {
    background: #0d2563;
}

body.has-internal-split-hero .internal-split-hero .hero_image img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    object-fit: cover !important;
    object-position: var(--legacy-hero-focus, 50% 50%) !important;
    transform: none !important;
}

body.has-internal-split-hero .internal-split-hero-source {
    display: block;
}

body.has-internal-split-hero .internal-split-hero,
body.has-internal-split-hero .internal-split-hero * {
    box-sizing: border-box;
}

body.has-internal-split-hero .internal-split-hero {
    position: relative;
    width: 100%;
    background: linear-gradient(180deg, #1e429a 0%, #0d2563 100%);
    min-height: var(--internal-hero-frame-height);
    height: var(--internal-hero-frame-height);
    overflow: hidden;
}

body.has-internal-split-hero .internal-split-hero-titlebar.wp-block-group.blue_bg,
body.has-internal-split-hero .internal-split-hero-titlebar.blue_bg,
body.has-internal-split-hero .internal-split-hero + .wp-block-group.blue_bg,
body.has-internal-split-hero .internal-split-hero + .blue_bg {
    position: relative;
    background: #153884 !important;
    background-color: #153884 !important;
}

body.has-internal-split-hero .internal-split-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: linear-gradient(
        to right,
        transparent 0%,
        rgba(239, 233, 56, 0.3) 18%,
        rgba(239, 233, 56, 0.3) 82%,
        transparent 100%
    );
    z-index: 4;
    pointer-events: none;
}

body.has-internal-split-hero .internal-split-hero__grid {
    display: grid;
    grid-template-columns: var(--internal-hero-columns);
    align-items: stretch;
    min-height: inherit;
    width: 100%;
    height: inherit;
}

body.has-internal-split-hero .internal-split-hero__media {
    position: relative;
    overflow: hidden;
    background: #0d2563;
}

body.has-internal-split-hero .internal-split-hero__media > .hero_image,
body.has-internal-split-hero .internal-split-hero__media > .metaslider,
body.has-internal-split-hero .internal-split-hero__media [id^="metaslider_container_"],
body.has-internal-split-hero .internal-split-hero__media [id^="metaslider_"],
body.has-internal-split-hero .internal-split-hero__media .flexslider,
body.has-internal-split-hero .internal-split-hero__media .flex-viewport,
body.has-internal-split-hero .internal-split-hero__media .slides {
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    margin: 0 !important;
}

body.has-internal-split-hero .internal-split-hero__media > .hero_image {
    position: relative;
}

body.has-internal-split-hero .internal-split-hero__media .flexslider {
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

body.has-internal-split-hero .internal-split-hero__media .slides {
    position: relative;
}

body.has-internal-split-hero .internal-split-hero__media .slides > li {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    float: none !important;
    margin: 0 !important;
}

body.has-internal-split-hero .internal-split-hero__media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: var(--internal-hero-focus, 50% 50%);
}

body.has-internal-split-hero .internal-split-hero.internal-split-hero--contain-media .internal-split-hero__media img {
    object-fit: contain !important;
}

body.has-internal-split-hero .internal-split-hero__panel {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    background: #153884;
    padding: clamp(3rem, 4.8vw, 5.5rem) clamp(2rem, 3vw, 3.5rem);
}

body.has-internal-split-hero .internal-split-hero__panel::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(
        ellipse 70% 55% at 95% 5%,
        rgba(255, 255, 255, 0.06) 0%,
        transparent 55%
    );
    box-shadow: inset 0px 40px 60px rgba(0, 0, 0, 0.3);
    z-index: 0;
}

body.has-internal-split-hero .internal-split-hero__brief {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    width: 100%;
    max-width: 22.5rem;
    color: #ffffff;
}

body.has-internal-split-hero .internal-split-hero__brief-title {
    margin: 0 0 1.45rem;
    padding: 0;
    font-weight: 400;
    display: flex;
    flex-direction: column;
}

body.has-internal-split-hero .internal-split-hero__brief-title-primary {
    display: block;
    font-size: clamp(2.08rem, 1.22rem + 2.05vw, 3.35rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.028em;
    color: #ffffff;
    text-wrap: balance;
}

body.has-internal-split-hero .internal-split-hero__brief-title-rule {
    display: block;
    width: 56px;
    height: 2px;
    background: #efe938;
    margin: 1rem 0 0.92rem;
}

body.has-internal-split-hero .internal-split-hero__brief-title-secondary {
    display: block;
    font-size: clamp(1.05rem, 0.7rem + 0.85vw, 1.4rem);
    font-weight: 400;
    line-height: 1.3;
    letter-spacing: 0.005em;
    color: rgba(255, 255, 255, 0.85);
}

body.has-internal-split-hero .internal-split-hero__brief-lede {
    margin: 0 0 1.9rem;
    padding: 0;
    border: none;
    font-size: 1rem;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.68);
    max-width: 22rem;
}

body.has-internal-split-hero .internal-split-hero__brief-cta {
    display: inline-flex;
    box-sizing: border-box;
    align-items: center;
    gap: 1rem;
    padding: 0.88rem 0.78rem 0.88rem 1.75rem;
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: #0f2a63;
    background-color: #efe938;
    border: 1px solid rgba(10, 20, 50, 0.06);
    border-radius: 999px;
    box-shadow:
        0 1px 1px rgba(10, 20, 50, 0.04),
        0 10px 22px -14px rgba(10, 20, 50, 0.32);
    text-decoration: none;
    will-change: transform;
    transition:
        background-color 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
        border-color 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
        box-shadow 260ms cubic-bezier(0.2, 0.8, 0.2, 1),
        transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

body.has-internal-split-hero .internal-split-hero__brief-cta,
body.has-internal-split-hero .internal-split-hero__brief-cta:visited {
    color: #0f2a63;
}

body.has-internal-split-hero .internal-split-hero__brief-cta:hover,
body.has-internal-split-hero .internal-split-hero__brief-cta:focus-visible {
    background-color: #f4ee3f;
    border-color: rgba(10, 20, 50, 0.1);
    box-shadow:
        0 1px 1px rgba(10, 20, 50, 0.05),
        0 16px 28px -16px rgba(10, 20, 50, 0.4);
    transform: translateY(-1px);
    outline: none;
}

body.has-internal-split-hero .internal-split-hero__brief-cta:active {
    background-color: #e5dc24;
    border-color: rgba(10, 20, 50, 0.12);
    transform: translateY(1px);
    box-shadow: 0 1px 2px rgba(10, 20, 50, 0.08);
    transition-duration: 90ms;
}

body.has-internal-split-hero .internal-split-hero__brief-cta:focus-visible {
    outline: 2px solid rgba(18, 52, 115, 0.55);
    outline-offset: 3px;
}

body.has-internal-split-hero .internal-split-hero__brief-cta-label {
    white-space: nowrap;
}

body.has-internal-split-hero .internal-split-hero__brief-cta-arrow {
    display: inline-flex;
    width: 2.55rem;
    height: 2.55rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #0f2a63;
    color: #efe938;
    font-size: 1.08rem;
    line-height: 1;
    transition:
        background-color 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
        color 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
        transform 320ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

body.has-internal-split-hero .internal-split-hero__brief-cta:hover .internal-split-hero__brief-cta-arrow,
body.has-internal-split-hero .internal-split-hero__brief-cta:focus-visible .internal-split-hero__brief-cta-arrow {
    background: #061943;
    color: #ffffff;
    transform: translateX(4px);
}

@media screen and (min-width: 1001px) and (max-width: 1600px) {
    body.has-internal-split-hero .internal-split-hero {
        min-height: var(--internal-hero-laptop-height);
        height: var(--internal-hero-laptop-height);
    }

    body.has-internal-split-hero .internal-split-hero__panel {
        padding: clamp(2.2rem, 3.2vw, 3.8rem) clamp(1.25rem, 1.9vw, 2.15rem);
    }

    body.has-internal-split-hero .internal-split-hero__brief {
        max-width: 22rem;
    }

    body.has-internal-split-hero .internal-split-hero__brief-title {
        margin-bottom: 1.45rem;
    }

    body.has-internal-split-hero .internal-split-hero__brief-title-primary {
        font-size: clamp(2.02rem, 1.15rem + 1.78vw, 3.05rem);
    }

    body.has-internal-split-hero .internal-split-hero__brief-title-rule {
        width: 48px;
        margin: 1rem 0 0.9rem;
    }

    body.has-internal-split-hero .internal-split-hero__brief-title-secondary {
        font-size: 1.05rem;
        line-height: 1.28;
    }

    body.has-internal-split-hero .internal-split-hero__brief-lede {
        margin-bottom: 1.85rem;
        font-size: 1rem;
        line-height: 1.55;
        max-width: 21rem;
    }

    body.has-internal-split-hero .internal-split-hero__brief-cta {
        padding: 0.82rem 0.72rem 0.82rem 1.5rem;
        font-size: 0.86rem;
    }

    body.has-internal-split-hero .internal-split-hero__brief-cta-arrow {
        width: 2.35rem;
        height: 2.35rem;
        font-size: 1rem;
    }
}

@media screen and (max-width: 1000px) {
    body.has-internal-split-hero .internal-split-hero {
        min-height: 0;
        height: auto;
    }

    body.has-internal-split-hero .internal-split-hero__grid {
        grid-template-columns: 1fr;
        min-height: 0;
        height: auto;
    }

    body.has-internal-split-hero .internal-split-hero__media {
        aspect-ratio: 2000 / 750;
        min-height: 0;
    }

    body.has-internal-split-hero .internal-split-hero.internal-split-hero--contain-media .internal-split-hero__media {
        aspect-ratio: 16 / 9;
    }

    body.has-internal-split-hero .internal-split-hero__panel {
        padding: 2rem 1.75rem 2.3rem;
    }

    body.has-internal-split-hero .internal-split-hero__brief {
        max-width: 100%;
    }

    body.has-internal-split-hero .internal-split-hero__brief-title {
        margin-bottom: 1.1rem;
    }

    body.has-internal-split-hero .internal-split-hero__brief-title-primary {
        font-size: clamp(2rem, 4.6vw, 2.7rem);
        line-height: 1.04;
    }

    body.has-internal-split-hero .internal-split-hero__brief-title-rule {
        width: 46px;
        margin: 0.75rem 0 0.7rem;
    }

    body.has-internal-split-hero .internal-split-hero__brief-title-secondary {
        font-size: clamp(1rem, 1.9vw, 1.18rem);
        line-height: 1.28;
    }

    body.has-internal-split-hero .internal-split-hero__brief-lede {
        margin-bottom: 1.35rem;
        font-size: 0.98rem;
        line-height: 1.55;
        max-width: 34rem;
    }

    body.has-internal-split-hero .internal-split-hero__brief-cta {
        padding: 0.62rem 0.6rem 0.62rem 1.4rem;
        font-size: 0.84rem;
    }

    body.has-internal-split-hero .internal-split-hero__brief-cta-arrow {
        width: 2.25rem;
        height: 2.25rem;
        font-size: 1rem;
    }
}

@media screen and (max-width: 640px) {
    body.has-internal-split-hero .internal-split-hero__panel {
        padding: 1.55rem 1.35rem 1.85rem;
    }

    body.has-internal-split-hero .internal-split-hero__brief-title {
        margin-bottom: 0.95rem;
    }

    body.has-internal-split-hero .internal-split-hero__brief-title-primary {
        font-size: clamp(1.85rem, 6.4vw, 2.4rem);
        line-height: 1.02;
    }

    body.has-internal-split-hero .internal-split-hero__brief-title-rule {
        width: 42px;
        margin: 0.65rem 0 0.6rem;
    }

    body.has-internal-split-hero .internal-split-hero__brief-title-secondary {
        font-size: clamp(0.95rem, 2.4vw, 1.1rem);
        line-height: 1.25;
    }

    body.has-internal-split-hero .internal-split-hero__brief-lede {
        margin-bottom: 1.1rem;
        font-size: 0.95rem;
        line-height: 1.5;
    }

    body.has-internal-split-hero .internal-split-hero__brief-cta {
        width: 100%;
        justify-content: space-between;
        padding: 0.5rem 0.55rem 0.5rem 1.25rem;
        font-size: 0.8rem;
        gap: 0.75rem;
    }

    body.has-internal-split-hero .internal-split-hero__brief-cta-arrow {
        width: 2.1rem;
        height: 2.1rem;
        font-size: 0.95rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.has-internal-split-hero .internal-split-hero__brief-cta,
    body.has-internal-split-hero .internal-split-hero__brief-cta-arrow {
        transition: none;
    }
}

@media (max-width: 800px) {
    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden !important;
    }

    body {
        position: relative;
    }

    body > header,
    main,
    footer,
    .hero_image,
    .blue_bg,
    .wp-block-group,
    .wp-block-group__inner-container,
    .indented,
    .gform_wrapper,
    .gform_fields,
    .tribe-common,
    .tribe-events,
    .cff-wrapper,
    .cff-wrapper-ctn,
    .mapp-layout {
        max-width: 100vw !important;
        box-sizing: border-box;
    }

    .menu-nav-menu-container {
        width: 100% !important;
        max-width: 100% !important;
        right: 0 !important;
        left: 0 !important;
        box-sizing: border-box;
    }

    .nav_menu,
    .nav_menu li,
    .nav_menu .sub-menu {
        max-width: 100% !important;
        box-sizing: border-box;
    }

    .nav_menu .sub-menu li a {
        white-space: normal !important;
        overflow-wrap: anywhere;
    }

    main,
    footer {
        overflow-x: hidden;
    }

    img,
    video,
    iframe,
    canvas,
    svg {
        max-width: 100%;
    }

    input,
    textarea,
    select,
    button {
        max-width: 100%;
        box-sizing: border-box;
    }

    .gform_wrapper .gfield,
    .gform_wrapper .ginput_container,
    .gform_wrapper input,
    .gform_wrapper textarea,
    .gform_wrapper select,
    .tribe-events .tribe-events-c-events-bar__search,
    .tribe-events .tribe-events-c-search,
    .tribe-events .tribe-events-c-search__input-group,
    .tribe-events .tribe-events-c-view-selector,
    .cff-item,
    .cff-post-text,
    .cff-shared-link {
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }

    .tribe-events .tribe-events-calendar-month,
    .tribe-events .tribe-events-calendar-list,
    .tribe-events .tribe-events-header,
    .tribe-events .tribe-events-l-container {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    /* Constrain the tribe container so it doesn't exceed viewport */
    .tribe-common-l-container.tribe-events-l-container {
        padding-left: 12px !important;
        padding-right: 12px !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .tribe-events-c-top-bar__datepicker {
        min-width: 0 !important;
    }

    table {
        max-width: 100%;
    }
}

/* ---------------------------------------------------------
   WordPress port: Gravity Forms fidelity bridge
   The mock's /join-upse/ form was static markup (.join-form__*).
   In WordPress the form is a real Gravity Form embedded inside the
   .join-form card rendered by the [upse_join_form] shortcode.
   These rules restyle GF output to match the approved mock design.
   Final pixel pass happens on staging against the real GF markup.
   --------------------------------------------------------- */
.join-form .gform_wrapper {
    margin: 0;
}

.join-form .gform_wrapper form {
    margin: 0;
}

.join-form .gform_fields {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 1rem 1.3rem;
}

.join-form .gfield {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
}

.join-form .gfield--width-full,
.join-form .gfield.gsection,
.join-form .gfield_html,
.join-form .gfield--type-textarea,
.join-form .gfield--type-captcha {
    grid-column: 1 / -1;
}

.join-form .gfield_label {
    font-size: 0.72rem !important;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 700 !important;
    color: #0d2563;
    display: flex;
    align-items: center;
    gap: 0.3rem;
    margin: 0;
}

.join-form .gfield_required {
    color: #1e429a !important;
}

.join-form .ginput_container input[type="text"],
.join-form .ginput_container input[type="email"],
.join-form .ginput_container input[type="tel"],
.join-form .ginput_container textarea {
    font-family: inherit;
    font-size: 1rem !important;
    padding: 0.68rem 0.82rem !important;
    border: 1px solid #c3c9d6 !important;
    background: #ffffff;
    color: #0b1426;
    border-radius: 4px;
    width: 100%;
    box-sizing: border-box;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.join-form .ginput_container textarea {
    height: 118px !important;
    min-height: 118px !important;
    resize: vertical;
    line-height: 1.5;
}

.join-form .ginput_container input:hover,
.join-form .ginput_container textarea:hover {
    border-color: #3d6cde !important;
}

.join-form .ginput_container input:focus,
.join-form .ginput_container textarea:focus {
    outline: none;
    border-color: #1e429a !important;
    box-shadow: inset 0 0 0 1px #1e429a, 0 0 0 3px rgba(30, 66, 154, 0.12);
}

.join-form .gfield_error input,
.join-form .gfield_error textarea {
    border-color: #b7331e !important;
    background: #fef6f5;
}

.join-form .gfield_validation_message,
.join-form .validation_message {
    font-size: 0.8rem !important;
    color: #a83222 !important;
    font-weight: 600;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    margin: 0.15rem 0 0 !important;
}

.join-form .gform_footer {
    margin-top: 1.2rem !important;
    padding-top: 1rem !important;
    border-top: 1px dashed #c3c9d6;
    display: flex;
    justify-content: flex-end;
}

.join-form .gform_footer input[type="submit"],
.join-form .gform_footer .gform_button {
    display: inline-flex;
    justify-content: center;
    padding: 0.82rem 2rem !important;
    background: #1e429a !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 4px;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    cursor: pointer;
    font-family: inherit;
    box-shadow: 0 4px 12px rgba(30, 66, 154, 0.25);
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.join-form .gform_footer input[type="submit"]:hover,
.join-form .gform_footer .gform_button:hover {
    background: #0d2563 !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(13, 37, 99, 0.3);
}

.join-form .gform_confirmation_message {
    color: #0d2563;
    font-size: 1rem;
    line-height: 1.6;
}

.join-form .gform_validation_errors {
    border: 1px solid #b7331e !important;
    background: #fef6f5 !important;
    border-radius: 4px;
    padding: 0.75rem 1rem !important;
    box-shadow: none !important;
    margin-bottom: 1rem;
}

.join-form .gform_validation_errors > h2 {
    font-size: 0.9rem !important;
    color: #a83222 !important;
    margin: 0 !important;
}

@media (max-width: 700px) {
    .join-form .gform_fields {
        grid-template-columns: 1fr;
    }

    .join-form .gform_footer {
        justify-content: stretch;
    }

    .join-form .gform_footer input[type="submit"],
    .join-form .gform_footer .gform_button {
        width: 100%;
    }
}

/* ---------------------------------------------------------
   WordPress port patch: Join page integration only.
   Keeps the approved mock sections, but neutralizes the legacy UPSE theme's
   page-title/hero chrome and tightens the real Gravity Forms output.
   --------------------------------------------------------- */
body.upse-design-join main {
    background: #f4f6fb;
}

body.upse-design-join main > .hero_image,
body.upse-design-join main > .blue_bg,
body.upse-design-join main > .wp-block-group.blue_bg,
body.upse-design-join main > .metaslider,
body.upse-design-join main > [id^="metaslider-id-"],
body.upse-design-join main > [id^="metaslider_container_"],
body.upse-design-join main > .entry-title,
body.upse-design-join main > h1 {
    display: none !important;
}

body.upse-design-join main > .wp-block-group:not(.blue_bg),
body.upse-design-join main > .wp-block-group > .wp-block-group__inner-container,
body.upse-design-join main > .entry-content,
body.upse-design-join main .wp-block-post-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.upse-design-join .join-hero .indented,
body.upse-design-join .join-steps .indented,
body.upse-design-join .join-form-section .indented {
    width: min(1280px, calc(100% - 3rem)) !important;
    max-width: 1280px !important;
    margin-inline: auto !important;
}

body.upse-design-join .join-form .gform_fields {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    column-gap: 1.25rem !important;
    row-gap: 0.9rem !important;
}

body.upse-design-join .join-form .gfield--type-textarea,
body.upse-design-join .join-form .gfield--width-full,
body.upse-design-join .join-form .gfield--type-captcha,
body.upse-design-join .join-form .gfield_html {
    grid-column: 1 / -1 !important;
}

body.upse-design-join .join-form .gfield {
    margin: 0 !important;
}

body.upse-design-join .join-form .gfield_label {
    margin-bottom: 0.28rem !important;
}

body.upse-design-join .join-form .ginput_container textarea,
body.upse-design-join .join-form textarea {
    height: 118px !important;
    min-height: 118px !important;
    max-height: 180px !important;
}

body.upse-design-join .join-form .gform_footer {
    margin-top: 1rem !important;
}

@media (max-width: 900px) {
    body.upse-design-join .join-form-section .indented {
        grid-template-columns: 1fr !important;
    }

    body.upse-design-join .join-form-section__intro p {
        max-width: 42rem;
    }
}

@media (max-width: 700px) {
    body.upse-design-join .join-hero .indented,
    body.upse-design-join .join-steps .indented,
    body.upse-design-join .join-form-section .indented {
        width: min(100% - 1.25rem, 1280px) !important;
    }

    body.upse-design-join .join-form .gform_fields {
        grid-template-columns: 1fr !important;
    }

    body.upse-design-join .join-form .ginput_container textarea,
    body.upse-design-join .join-form textarea {
        height: 112px !important;
        min-height: 112px !important;
    }
}

/* ---------------------------------------------------------
   WordPress port patch 1.0.5: remove paint-time artifacts.
   --------------------------------------------------------- */
body.upse-design-join main > p,
body.upse-design-join main > br {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
}

body.upse-design-join main > .join-hero,
body.upse-design-join main > section.join-hero,
body.upse-design-join main .join-hero:first-of-type {
    margin-top: 0 !important;
}

body.has-internal-split-hero .internal-split-hero.internal-split-hero--contain-media .internal-split-hero__media,
body.has-internal-split-hero .internal-split-hero.internal-split-hero--contain-media .internal-split-hero__media img {
    background: #0d2563 !important;
}

body.has-internal-split-hero .internal-split-hero.internal-split-hero--contain-media .internal-split-hero__media img,
body.has-internal-split-hero .internal-split-hero__media img {
    object-fit: cover !important;
    width: 100% !important;
    height: 100% !important;
}

body.upse-design-join .join-form__header .req-note {
    display: none !important;
}

body.home main > p:empty,
body.home main > br {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

body.home main > .homepage-stage,
body.home main > section.homepage-stage,
body.has-internal-split-hero main > .internal-split-hero {
    margin-top: 0 !important;
}

/* ---------------------------------------------------------
   WordPress port patch 1.1.0: keep the homepage stacked on mobile.
   The late inline critical CSS is intentionally desktop-first to prevent
   first-paint flashes; these matching mobile rules stop that block from
   leaking the desktop split layout onto phones.
   --------------------------------------------------------- */
@media screen and (max-width: 1000px) {
    body.home .homepage-hero {
        min-height: 0 !important;
        height: auto !important;
        overflow: hidden !important;
    }

    body.home .homepage-hero__grid {
        grid-template-columns: 1fr !important;
        min-height: 0 !important;
        height: auto !important;
        width: 100% !important;
    }

    body.home .homepage-hero__slider {
        aspect-ratio: 2000 / 750 !important;
        height: auto !important;
        min-height: 0 !important;
        width: 100% !important;
    }

    body.home .homepage-hero__pitch {
        width: 100% !important;
        padding: 2.8rem 1.5rem 3.4rem !important;
        border-left: none !important;
        border-top: none !important;
    }

    body.home .homepage-hero__brief {
        max-width: 100% !important;
    }
}

/* Mobile shortcuts: intentionally no grid override here. The approved mock's
   stacked one-column rail (full-width rows, icon left, yellow arrow right,
   hairline separators) is defined earlier in this file and wins on mobile. */
