/* Warriors Academy — full-bleed story poster (content boxes) */

.content_boxes.content_boxes_main {
    margin: 0;
}

.content_main_empty > :not(.content_boxes) {
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: var(--site-inline-pad, 24px);
    box-sizing: border-box;
}

.content_boxes {
    --cbox-accent: var(--color-orange, #e87722);
    --cbox-accent-rgb: var(--color-orange-rgb, 232, 119, 34);
    --cbox-ink: #0e141c;
    --cbox-script: "Caveat", "Segoe Script", cursive;
    --cbox-radius: 14px;
    --cbox-rail: 84px;
    --cbox-badge-size: clamp(98px, 10.8vw, 134px);
    --cbox-pad-inline: var(--section-edge-pad, clamp(24px, 6vw, 96px));
    --cbox-content-max: var(--section-content-max, 1200px);
    --cbox-edge-gutter: var(--section-edge-gutter, max(var(--cbox-pad-inline), calc((100% - var(--cbox-content-max)) / 2 + var(--cbox-pad-inline))));
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: visible;
    background: #080c11;
}

.content_boxes .content_box:last-child {
    margin-bottom: 0 !important;
}

.content_boxes .content_box {
    position: relative;
    isolation: isolate;
    width: 100%;
    min-height: 0;
    padding: 10px;
    overflow: visible;
    box-sizing: border-box;
    color: #fff;
    background: #0b1016;
}

.content_boxes .content_box_bg,
.content_boxes .content_box_topo,
.content_boxes .content_box_ridges {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

.content_boxes .content_box_bg {
    background:
        radial-gradient(70% 90% at 12% 80%, rgba(var(--cbox-accent-rgb), 0.12) 0%, transparent 50%),
        linear-gradient(180deg, #141b24 0%, #0b1016 55%, #080c11 100%);
}

.content_boxes .content_box_ridges {
    width: 58%;
    background: url("../images/content-box-ridges.svg") left bottom / cover no-repeat;
    opacity: 0.95;
    mask-image: linear-gradient(90deg, #000 0%, #000 46%, transparent 88%);
}

.content_boxes .content_box_scene_2 .content_box_ridges {
    background-image: url("../images/content-box-ridges-2.svg");
}

.content_boxes .content_box_scene_3 .content_box_ridges {
    background-image: url("../images/content-box-ridges-3.svg");
}

.content_boxes .content_box_topo {
    opacity: 0.22;
    background-image: url("../images/contour-map-widescreen-v3.svg");
    background-size: cover;
    background-position: left center;
    mix-blend-mode: soft-light;
    mask-image: linear-gradient(90deg, #000 0%, #000 42%, transparent 72%);
}

.content_boxes .content_box_scene_2 .content_box_bg {
    background:
        radial-gradient(70% 90% at 88% 78%, rgba(var(--cbox-accent-rgb), 0.12) 0%, transparent 50%),
        linear-gradient(180deg, #101820 0%, #0b1016 55%, #080c11 100%);
}

.content_boxes .content_box_scene_3 .content_box_bg {
    background:
        radial-gradient(80% 70% at 50% 12%, rgba(var(--cbox-accent-rgb), 0.1) 0%, transparent 52%),
        linear-gradient(180deg, #161e28 0%, #0b1016 58%, #070b10 100%);
}

.content_boxes .content_box_scene_2 .content_box_topo {
    background-position: right center;
    opacity: 0.18;
}

.content_boxes .content_box_scene_3 .content_box_topo {
    background-position: 30% 40%;
    opacity: 0.26;
}

.content_boxes .content_box_text_right .content_box_ridges {
    left: auto;
    right: 0;
    background-position: right bottom;
    mask-image: linear-gradient(270deg, #000 0%, #000 46%, transparent 88%);
}

.content_boxes .content_box_text_right .content_box_topo {
    background-position: right center;
    mask-image: linear-gradient(270deg, #000 0%, #000 42%, transparent 72%);
}

.content_boxes .content_box_shell {
    position: relative;
    z-index: 1;
    width: 100%;
    padding:
        0
        clamp(20px, 3vw, 40px)
        0
        var(--cbox-edge-gutter);
    box-sizing: border-box;
}

.content_boxes .content_box_text_right .content_box_shell {
    padding-left: clamp(20px, 3vw, 40px);
    padding-right: var(--cbox-edge-gutter);
}

.content_boxes .content_box_inner {
    position: relative;
    display: grid;
    grid-template-columns:
        minmax(280px, 1fr)
        minmax(0, 1fr)
        var(--cbox-rail);
    align-items: stretch;
    column-gap: clamp(20px, 2.4vw, 40px);
    width: 100%;
}

.content_boxes .content_box_text_right .content_box_inner {
    grid-template-columns:
        var(--cbox-rail)
        minmax(0, 1fr)
        minmax(280px, 1fr);
}

.content_boxes .content_box_text_right .content_box_copy { order: 3; }
.content_boxes .content_box_text_right .content_box_stage { order: 2; }
.content_boxes .content_box_text_right .content_box_copy {
    margin-left: auto;
}

.content_boxes .content_box_no_media .content_box_inner {
    grid-template-columns: minmax(0, 720px);
}

.content_boxes .content_box_copy {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 0;
    width: 100%;
    max-width: none;
    padding-block: 0;
}

.content_boxes .content_box_copy > * {
    opacity: 0;
    transform: translateY(18px);
}

.content_boxes .content_box_stage {
    opacity: 0;
}

.content_boxes .is-inview .content_box_copy > * {
    animation: contentBoxRise 0.8s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.content_boxes .is-inview .content_box_copy > :nth-child(1) { animation-delay: 0.04s; }
.content_boxes .is-inview .content_box_copy > :nth-child(2) { animation-delay: 0.1s; }
.content_boxes .is-inview .content_box_copy > :nth-child(3) { animation-delay: 0.16s; }
.content_boxes .is-inview .content_box_copy > :nth-child(4) { animation-delay: 0.22s; }

.content_boxes .is-inview .content_box_stage {
    opacity: 1;
    transition: opacity 0.85s ease;
}

.content_boxes .content_box_eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 18px;
}

.content_boxes .content_box_eyebrow_mark {
    width: 34px;
    height: 3px;
    background: var(--cbox-accent);
    border-radius: 999px;
}

.content_boxes .content_box_eyebrow_text {
    color: var(--cbox-accent);
    font-family: var(--font-heading, "Montserrat", sans-serif);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.content_boxes .content_box_heading {
    margin: 0 0 18px;
    color: #fff;
    font-family: var(--font-heading, "Montserrat", sans-serif);
    font-weight: 800;
    line-height: 0.92;
    letter-spacing: -0.045em;
}

.content_boxes .content_box_heading_main,
.content_boxes .content_box_heading_accent {
    display: block;
    font-size: clamp(2.1rem, 4.2vw, 3.8rem);
}

.content_boxes .content_box_heading_accent {
    color: var(--cbox-accent);
}

.content_boxes .content_box_body {
    max-width: none;
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: clamp(1rem, 1.15vw, 1.12rem);
    line-height: 1.65;
}

.content_boxes .content_box_body p {
    margin: 0 0 0.9em;
}

.content_boxes .content_box_body p:last-child {
    margin-bottom: 0;
}

.content_boxes .content_box_btn {
    --cbox-btn-x: 0px;
    --cbox-btn-y: 0px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    margin-top: 28px;
    padding: 12px 22px 12px 24px;
    border: 2px solid var(--cbox-accent);
    border-radius: 12px;
    background: transparent;
    color: #fff;
    font-family: var(--font-heading, "Montserrat", sans-serif);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    text-decoration: none;
    transform: translate(var(--cbox-btn-x), var(--cbox-btn-y));
    transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.content_boxes .content_box_btn_icon {
    width: 16px;
    height: 16px;
}

.content_boxes .content_box_btn:hover,
.content_boxes .content_box_btn:focus-visible {
    background: var(--cbox-accent);
    color: #fff;
    outline: none;
}

.content_boxes .content_box_btn:hover .content_box_btn_icon,
.content_boxes .content_box_btn:focus-visible .content_box_btn_icon {
    transform: translateX(3px);
}

.content_boxes .content_box_stage {
    position: relative;
    min-width: 0;
    align-self: stretch;
    height: 100%;
    display: flex;
    overflow: visible;
}

.content_boxes .content_box_media_frame {
    position: relative;
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 100%;
    overflow: hidden;
    border-radius: var(--cbox-radius);
    box-shadow: 0 30px 70px rgba(0, 0, 0, 0.45);
}

.content_boxes .content_box_photo {
    --cbox-photo-y: 0px;
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    float: none !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: cover;
    transform: scale(1.03) translateY(var(--cbox-photo-y));
}

.content_boxes .content_box_location {
    position: absolute;
    z-index: 3;
    top: 18px;
    left: 18px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(12, 16, 22, 0.78);
    backdrop-filter: blur(8px);
    font-family: var(--font-heading, "Montserrat", sans-serif);
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.content_boxes .content_box_location_pin {
    width: 13px;
    height: 13px;
    color: var(--cbox-accent);
}

.content_boxes .content_box_partners {
    position: absolute;
    z-index: 5;
    left: 22px;
    bottom: 0;
    width: auto;
    padding: 0;
    transform: translateY(50%);
    pointer-events: none;
}

.content_boxes .content_box_partners_logos {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 0;
}

.content_boxes .content_box_partner {
    flex: 0 0 var(--cbox-badge-size);
    width: var(--cbox-badge-size);
    height: var(--cbox-badge-size);
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.content_boxes .content_box_partner + .content_box_partner {
    margin-left: calc(var(--cbox-badge-size) * -0.22);
}

.content_boxes .content_box_partner img {
    display: block;
    width: 76%;
    height: 76%;
    object-fit: contain;
}

.content_boxes .content_box_rail {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-start;
    align-self: stretch;
    padding: 0;
}

.content_boxes .content_box_index {
    color: rgba(255, 255, 255, 0.22);
    -webkit-text-stroke: 0;
    paint-order: fill;
    font-family: var(--font-heading, "Montserrat", sans-serif);
    font-size: clamp(3rem, 4.6vw, 4.4rem);
    font-weight: 800;
    letter-spacing: -0.06em;
    line-height: 1;
    user-select: none;
}

.content_boxes .content_box_no_media .content_box_index {
    color: rgba(255, 255, 255, 0.22);
    -webkit-text-stroke: 0;
}

.content_boxes .content_box_heading,
.content_boxes .content_box_body,
.content_boxes .content_box_eyebrow_text,
.content_boxes .content_box_btn {
    text-shadow: 0 3px 9px rgba(0, 0, 0, 0.62);
}

@keyframes contentBoxRise {
    from { opacity: 0; transform: translateY(18px); }
    to { opacity: 1; transform: translateY(0); }
}

@media screen and (max-width: 1100px) {
    .content_boxes .content_box_inner,
    .content_boxes .content_box_text_right .content_box_inner {
        column-gap: 20px;
    }

    .content_boxes .content_box_heading_main,
    .content_boxes .content_box_heading_accent {
        font-size: clamp(1.75rem, 4vw, 2.9rem);
    }
}

@media screen and (max-width: 860px) {
    .content_boxes .content_box {
        min-height: 0;
        overflow: hidden;
        padding: 10px;
    }

    .content_boxes .content_box_shell {
        padding: 0 0 28px;
    }

    .content_boxes .content_box_inner,
    .content_boxes .content_box_text_right .content_box_inner,
    .content_boxes .content_box_no_media .content_box_inner {
        grid-template-columns: 1fr;
        min-height: 0;
        row-gap: 0;
        padding-block: 0;
    }

    .content_boxes .content_box_text_right .content_box_copy,
    .content_boxes .content_box_text_right .content_box_stage {
        order: initial;
        margin-left: 0;
    }

    .content_boxes .content_box_stage {
        order: -1;
        grid-row: 1;
    }

    .content_boxes .content_box_rail {
        position: absolute;
        top: 12px;
        right: 14px;
        z-index: 4;
        grid-row: 1;
        height: auto;
        padding: 0;
        pointer-events: none;
    }

    .content_boxes .content_box_copy {
        max-width: none;
        min-height: 0;
        padding: calc(28px + var(--cbox-badge-size) * 0.42) var(--cbox-pad-inline) 48px;
    }

    .content_boxes .content_box_media_frame {
        min-height: 0;
        height: auto;
        aspect-ratio: 16 / 11;
        border-radius: 0;
    }

    .content_boxes .content_box_index {
        font-size: 2.8rem;
        color: rgba(255, 255, 255, 0.28);
        -webkit-text-stroke: 0;
    }

    .content_boxes .content_box_body {
        max-width: none;
    }

    .content_boxes .content_box_partners {
        left: 16px;
        bottom: 0;
    }

    .content_boxes .content_box_photo {
        display: block !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .content_boxes .content_box_copy > *,
    .content_boxes .content_box_stage,
    .content_boxes .content_box_btn,
    .content_boxes .content_box_photo {
        animation: none !important;
        transition: none !important;
        opacity: 1;
        transform: none;
    }
}

/* Equal breathing room around each content box and its image. */
.content_boxes .content_box { margin-top: 10px; }
.content_boxes .content_box_photo { box-sizing: border-box; padding-block: clamp(18px, 3vw, 36px); }

/* Enforce visible, equal vertical breathing room inside the media frame. */
.content_boxes .content_box_media_frame {
    box-sizing: border-box;
    padding-top: clamp(24px, 4vw, 48px);
    padding-bottom: clamp(24px, 4vw, 48px);
    background: #111923;
}
.content_boxes .content_box_media_frame .content_box_photo {
    inset: clamp(24px, 4vw, 48px) 0;
    width: 100% !important;
    height: calc(100% - clamp(48px, 8vw, 96px)) !important;
    padding-block: 0;
    background: transparent;
}
@media screen and (max-width: 767px) {
    .content_boxes .content_box_media_frame {
        padding-top: 24px;
        padding-bottom: 24px;
    }
    .content_boxes .content_box_media_frame .content_box_photo {
        inset: 24px 0;
        height: calc(100% - 48px) !important;
    }
}

/* Keep photos full-bleed; place equal vertical spacing on the copy panel instead. */
.content_boxes .content_box_media_frame {
    padding-top: 0;
    padding-bottom: 0;
}
.content_boxes .content_box_media_frame .content_box_photo {
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    padding: 0;
    object-fit: cover;
    background: transparent;
}
.content_boxes .content_box_copy {
    padding-top: clamp(56px, 7vw, 104px);
    padding-bottom: clamp(56px, 7vw, 104px);
}
@media screen and (max-width: 767px) {
    .content_boxes .content_box_copy {
        padding-top: 48px;
        padding-bottom: 48px;
    }
}

/* Match the photo height to the complete content panel. */
.content_boxes .content_box_media {
    align-self: stretch;
    min-height: 100%;
    display: flex;
}
.content_boxes .content_box_media_stack,
.content_boxes .content_box_media_frame {
    flex: 1 1 auto;
    min-height: 100%;
    height: auto;
}
.content_boxes .content_box_photo {
    min-height: 100%;
}

/* Align media with the copy area, excluding the copy panel's vertical padding. */
.content_boxes .content_box_media_frame {
    margin-top: var(--cbox-copy-pad-y);
    margin-bottom: var(--cbox-copy-pad-y);
    min-height: 0;
    height: auto;
}
@media screen and (max-width: 767px) {
    .content_boxes .content_box_media_frame {
        margin-top: 0;
        margin-bottom: 0;
        min-height: 260px;
    }
}

/* Place vertical spacing on the card parent so copy and media share one height. */
.content_boxes .content_box {
    padding-top: var(--cbox-copy-pad-y);
    padding-bottom: var(--cbox-copy-pad-y);
}
.content_boxes .content_box_copy {
    padding-top: 0;
    padding-bottom: 0;
}
.content_boxes .content_box_media_frame {
    margin-top: 0;
    margin-bottom: 0;
    min-height: 100%;
    height: 100%;
}
@media screen and (max-width: 767px) {
    .content_boxes .content_box {
        padding-top: 48px;
        padding-bottom: 48px;
    }
    .content_boxes .content_box_media_frame {
        min-height: 260px;
        height: auto;
    }
}

/* Guaranteed inset spacing on every individual content box. */
.content_boxes .content_box {
    box-sizing: border-box !important;
    padding-top: clamp(40px, 5vw, 72px) !important;
    padding-bottom: clamp(40px, 5vw, 72px) !important;
}
.content_boxes .content_box_inner {
    min-height: 0;
    height: auto;
}
.content_boxes .content_box_copy {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
.content_boxes .content_box_media_frame {
    height: 100%;
    min-height: 100%;
    margin: 0 !important;
}
@media screen and (max-width: 767px) {
    .content_boxes .content_box {
        padding-top: 32px !important;
        padding-bottom: 32px !important;
    }
}

/* Uniform horizontal inset on every individual content box. */
.content_boxes .content_box {
    padding-left: clamp(24px, 4vw, 56px) !important;
    padding-right: clamp(24px, 4vw, 56px) !important;
}
.content_boxes .content_box_inner {
    width: 100%;
}
@media screen and (max-width: 767px) {
    .content_boxes .content_box {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}

/* Use the parent inset consistently for both the text and image columns. */
.content_boxes .content_box_text_left .content_box_copy,
.content_boxes .content_box_text_right .content_box_copy {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Keep the content and photo inset uniform inside every box shell. */
.content_boxes .content_box_shell,
.content_boxes .content_box_text_right .content_box_shell {
    padding-left: clamp(24px, 4vw, 56px) !important;
    padding-right: clamp(24px, 4vw, 56px) !important;
}

/* Prevent Content Box images from becoming too short. */
.content_boxes .content_box_stage,
.content_boxes .content_box_media_frame {
    min-height: clamp(320px, 34vw, 480px);
}
@media screen and (max-width: 767px) {
    .content_boxes .content_box_stage,
    .content_boxes .content_box_media_frame {
        min-height: 260px;
    }
}

/* Reduce the image minimum height by 150px. */
.content_boxes .content_box_stage,
.content_boxes .content_box_media_frame {
    min-height: clamp(170px, 34vw, 330px);
}
@media screen and (max-width: 767px) {
    .content_boxes .content_box_stage,
    .content_boxes .content_box_media_frame {
        min-height: 110px;
    }
}

/* Creative detail pass for the elements inside each Content Box. */
.content_boxes .content_box_copy {
    isolation: isolate;
}
.content_boxes .content_box_index {
    position: static !important;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    width: auto;
    height: auto;
    margin: 0;
    color: rgba(255, 255, 255, 0.3);
    font-size: clamp(1.35rem, 2.4vw, 2rem);
    letter-spacing: -0.06em;
    line-height: 1;
    opacity: 1;
    transform: none !important;
    transition: color .3s ease, transform .3s ease;
}
.content_boxes .content_box_eyebrow .content_box_index {
    order: -1;
}
.content_boxes .content_box:hover .content_box_eyebrow .content_box_index {
    color: var(--color-orange-bright, #f08832);
    transform: translateY(-2px) !important;
}
.content_boxes .content_box_eyebrow {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding-left: 14px;
}
.content_boxes .content_box_eyebrow_mark {
    position: absolute;
    left: 0;
    width: 4px;
    height: 100%;
    min-height: 18px;
    border-radius: 99px;
    transition: height .3s ease, background-color .3s ease;
}
.content_boxes .content_box:hover .content_box_eyebrow_mark {
    height: 130%;
    background: var(--color-orange-bright, #f08832);
}
.content_boxes .content_box_body {
    max-width: 40rem;
    text-wrap: pretty;
}
.content_boxes .content_box_btn {
    box-shadow: 0 8px 0 rgba(var(--color-orange-rgb, 232, 119, 34), .18);
    transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease;
}
.content_boxes .content_box_btn:hover,
.content_boxes .content_box_btn:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 12px 18px rgba(var(--color-orange-rgb, 232, 119, 34), .28);
}

/* Element-level motion pass: animate the card, image, copy and accents. */
@keyframes contentBoxGlow {
    0%, 100% { opacity: .35; transform: scaleX(.7); }
    50% { opacity: .9; transform: scaleX(1); }
}
@keyframes contentBoxAccentSweep {
    from { transform: translateX(-110%); }
    to { transform: translateX(110%); }
}
.content_boxes .content_box {
    transition: transform .55s cubic-bezier(.22,1,.36,1), box-shadow .55s ease;
}
.content_boxes .content_box::after {
    content: "";
    position: absolute;
    left: 8%;
    right: 8%;
    bottom: 0;
    height: 3px;
    z-index: 4;
    border-radius: 99px;
    background: linear-gradient(90deg, transparent, var(--cbox-accent), transparent);
    opacity: 0;
    transform: scaleX(.5);
    transition: opacity .4s ease, transform .6s ease;
}
.content_boxes .content_box:hover::after {
    opacity: 1;
    transform: scaleX(1);
    animation: contentBoxGlow 2.2s ease-in-out infinite;
}
.content_boxes .content_box:hover {
    transform: translateY(-8px);
    box-shadow: 0 30px 70px rgba(9, 14, 20, .28);
}
.content_boxes .content_box_media_frame::after {
    transition: opacity .4s ease, background-position .8s ease;
}
.content_boxes .content_box:hover .content_box_media_frame::after {
    opacity: .75;
    background-position: 120% 0;
}
.content_boxes .content_box:hover .content_box_photo {
    transform: scale(1.09) translate(8px, var(--cbox-photo-y));
    filter: saturate(1.2) contrast(1.06);
}
.content_boxes .content_box_heading_accent::after {
    transform-origin: left center;
    animation: contentBoxAccentSweep 3s ease-in-out infinite;
}
.content_boxes .content_box_btn {
    box-shadow: none !important;
}
.content_boxes .content_box_btn:hover,
.content_boxes .content_box_btn:focus-visible {
    box-shadow: none !important;
}
@media (prefers-reduced-motion: reduce) {
    .content_boxes .content_box:hover,
    .content_boxes .content_box:hover .content_box_photo,
    .content_boxes .content_box:hover::after,
    .content_boxes .content_box_heading_accent::after {
        animation: none;
        transform: none;
    }
}

/* Smooth, progressive image hover motion. */
.content_boxes .content_box_photo {
    transform-origin: center center;
    transition: transform 1.25s cubic-bezier(.22, 1, .36, 1), filter 1.1s ease !important;
}
.content_boxes .content_box:hover .content_box_photo,
.content_boxes .content_box:focus-within .content_box_photo {
    transform: scale(1.07) translate3d(0, var(--cbox-photo-y), 0) !important;
    filter: saturate(1.12) contrast(1.03);
}
@media (prefers-reduced-motion: reduce) {
    .content_boxes .content_box_photo {
        transition: none !important;
    }
}

/* Responsive layout safeguards for Content Boxes. */
@media screen and (max-width: 1024px) {
    .content_boxes .content_box_inner,
    .content_boxes .content_box_text_right .content_box_inner {
        grid-template-columns: minmax(0, 1fr) minmax(280px, .9fr);
        column-gap: 24px;
    }
    .content_boxes .content_box_shell,
    .content_boxes .content_box_text_right .content_box_shell {
        padding-left: 28px !important;
        padding-right: 28px !important;
    }
    .content_boxes .content_box_heading_main,
    .content_boxes .content_box_heading_accent {
        font-size: clamp(1.75rem, 4vw, 3rem);
    }
}
@media screen and (max-width: 767px) {
    .content_boxes .content_box_inner,
    .content_boxes .content_box_text_right .content_box_inner {
        display: flex;
        flex-direction: column;
        gap: 24px;
    }
    .content_boxes .content_box_copy,
    .content_boxes .content_box_text_right .content_box_copy {
        order: 1;
        width: 100%;
    }
    .content_boxes .content_box_stage,
    .content_boxes .content_box_text_right .content_box_stage {
        order: 2;
        width: 100%;
        min-height: 240px;
    }
    .content_boxes .content_box_media_frame {
        min-height: 240px;
        aspect-ratio: 16 / 10;
    }
    .content_boxes .content_box_shell,
    .content_boxes .content_box_text_right .content_box_shell {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
    .content_boxes .content_box_heading_main,
    .content_boxes .content_box_heading_accent {
        font-size: clamp(1.6rem, 9vw, 2.6rem);
    }
}
@media screen and (max-width: 420px) {
    .content_boxes .content_box_shell,
    .content_boxes .content_box_text_right .content_box_shell {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    .content_boxes .content_box_stage,
    .content_boxes .content_box_media_frame {
        min-height: 210px;
    }
}

/* Align Content Box inner content with the shared Icon Boxes edge gutter. */
.content_boxes .content_box {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}
.content_boxes .content_box_shell,
.content_boxes .content_box_text_right .content_box_shell {
    padding-left: var(--cbox-edge-gutter) !important;
    padding-right: var(--cbox-edge-gutter) !important;
}
@media screen and (max-width: 767px) {
    .content_boxes .content_box_shell,
    .content_boxes .content_box_text_right .content_box_shell {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}

/* Match the Icon Boxes shell exactly, rather than using the wider CBox gutter. */
.content_boxes .content_box_shell,
.content_boxes .content_box_text_right .content_box_shell {
    padding-left: var(--section-edge-pad, var(--site-inline-pad, 24px)) !important;
    padding-right: var(--section-edge-pad, var(--site-inline-pad, 24px)) !important;
}
@media screen and (max-width: 767px) {
    .content_boxes .content_box_shell,
    .content_boxes .content_box_text_right .content_box_shell {
        padding-left: var(--site-inline-pad, 24px) !important;
        padding-right: var(--site-inline-pad, 24px) !important;
    }
}

/* The shell is the only horizontal alignment boundary, matching Icon Boxes. */
.content_boxes .content_box {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Remove the decorative rail from layout width so content aligns with Icon Boxes. */
.content_boxes {
    --cbox-rail: 0px !important;
}

/* Stack Content Boxes before the split layout becomes cramped. */
@media screen and (max-width: 1080px) {
    .content_boxes .content_box_inner,
    .content_boxes .content_box_text_right .content_box_inner {
        display: flex;
        flex-direction: column;
        gap: 28px;
    }
    .content_boxes .content_box_copy,
    .content_boxes .content_box_text_right .content_box_copy {
        order: 1;
        width: 100%;
        max-width: none;
    }
    .content_boxes .content_box_stage,
    .content_boxes .content_box_text_right .content_box_stage {
        order: 2;
        width: 100%;
        min-height: 280px;
    }
    .content_boxes .content_box_media_frame {
        width: 100%;
        min-height: 280px;
        aspect-ratio: 16 / 9;
    }
}

@media screen and (max-width: 1080px) {
    .content_boxes {
        padding-top: 12px;
    }
    .content_boxes .content_box {
        padding-top: 24px !important;
        padding-bottom: 24px !important;
    }
    .content_boxes .content_box_copy {
        padding-top: 0 !important;
    }
}

/* Final mobile spacing correction: compact top, safe number, clear image bottom. */
@media screen and (max-width: 1080px) {
    .content_boxes {
        padding-top: 0 !important;
        padding-bottom: 18px !important;
    }
    .content_boxes .content_box {
        padding-top: 0 !important;
        padding-bottom: 36px !important;
        overflow: hidden !important;
    }
    .content_boxes .content_box_copy {
        padding-top: 18px !important;
        padding-bottom: 0 !important;
    }
    .content_boxes .content_box_stage,
    .content_boxes .content_box_media_frame {
        margin-bottom: 0 !important;
        min-height: 280px;
    }
    .content_boxes .content_box_index,
    .content_boxes .content_box_text_right .content_box_index {
        top: 10px;
        left: 0;
        right: auto;
        transform: none !important;
        font-size: clamp(4.5rem, 16vw, 7rem);
        line-height: .8;
        opacity: .1;
    }
}
@media screen and (max-width: 767px) {
    .content_boxes .content_box {
        padding-bottom: 32px !important;
    }
    .content_boxes .content_box_stage,
    .content_boxes .content_box_media_frame {
        min-height: 240px;
    }
}

/* Mobile polish: separate the decorative number from the compact content spacing. */
@media screen and (max-width: 1080px) {
    .content_boxes .content_box_copy { padding-top: 0 !important; }
    .content_boxes .content_box_index,
    .content_boxes .content_box_text_right .content_box_index {
        top: 28px;
        font-size: clamp(4.8rem, 17vw, 7.5rem);
    }
    .content_boxes .content_box_media_frame {
        overflow: visible;
    }
    .content_boxes .content_box_partners {
        left: 12px;
        bottom: -28px;
    }
    .content_boxes .content_box_partner {
        width: clamp(98px, 20vw, 128px);
        height: clamp(98px, 20vw, 128px);
        flex-basis: clamp(98px, 20vw, 128px);
    }
}
@media screen and (max-width: 560px) {
    .content_boxes .content_box_partners { bottom: -22px; }
    .content_boxes .content_box_partner {
        width: 96px;
        height: 96px;
        flex-basis: 96px;
    }
}

/* Final responsive vertical alignment and badge clearance. */
@media screen and (max-width: 1080px) {
    .content_boxes .content_box {
        padding-top: 0 !important;
        padding-bottom: 88px !important;
        overflow: visible !important;
    }
    .content_boxes .content_box_shell {
        padding-top: 0 !important;
    }
    .content_boxes .content_box_copy {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
    .content_boxes .content_box_index,
    .content_boxes .content_box_text_right .content_box_index {
        top: 18px;
        transform: none !important;
    }
    .content_boxes .content_box_partners {
        bottom: -34px;
    }
}
@media screen and (max-width: 560px) {
    .content_boxes .content_box {
        padding-bottom: 72px !important;
    }
    .content_boxes .content_box_partners {
        bottom: -28px;
    }
}

/* Remove inherited desktop height/centering from the mobile stacked layout. */
@media screen and (max-width: 1080px) {
    .content_boxes .content_box_inner,
    .content_boxes .content_box_text_right .content_box_inner {
        min-height: 0 !important;
        height: auto !important;
    }
    .content_boxes .content_box_copy,
    .content_boxes .content_box_text_right .content_box_copy {
        justify-content: flex-start !important;
        min-height: 0 !important;
    }
    .content_boxes .content_box_index,
    .content_boxes .content_box_text_right .content_box_index {
        top: 18px;
    }
}

/* Definitive mobile/tablet top alignment: no blank band above the eyebrow. */
@media screen and (max-width: 1080px) {
    .content_boxes .content_box,
    .content_boxes .content_box_shell,
    .content_boxes .content_box_inner,
    .content_boxes .content_box_copy {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
    .content_boxes .content_box_inner {
        align-items: flex-start !important;
    }
    .content_boxes .content_box_copy {
        justify-content: flex-start !important;
    }
    .content_boxes .content_box_eyebrow {
        margin-top: 0 !important;
    }
    .content_boxes .content_box_index,
    .content_boxes .content_box_text_right .content_box_index {
        top: 0 !important;
        transform: none !important;
    }
}

/* Final override: the number belongs to the eyebrow row, never the card top. */
.content_boxes .content_box_eyebrow .content_box_index,
.content_boxes .content_box_text_right .content_box_eyebrow .content_box_index {
    position: static !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    display: inline-flex !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: clamp(1.35rem, 2.4vw, 2rem) !important;
    line-height: 1 !important;
    opacity: 1 !important;
    transform: none !important;
}

/* Keep the photo hover effect; disable only the main Content Box hover movement. */
.content_boxes .content_box_photo {
    transform: scale(1.03) translateY(var(--cbox-photo-y)) !important;
    transition: transform 1.25s cubic-bezier(.22, 1, .36, 1), filter 1.1s ease !important;
}
.content_boxes .content_box:hover .content_box_photo,
.content_boxes .content_box:focus-within .content_box_photo {
    transform: scale(1.07) translate3d(0, var(--cbox-photo-y), 0) !important;
    filter: saturate(1.12) contrast(1.03);
}
.content_boxes .content_box:hover {
    transform: none !important;
    box-shadow: none !important;
}

/* Use the number as a non-layout watermark on the right side of the text panel. */
.content_boxes .content_box_copy > .content_box_index {
    position: absolute !important;
    top: 50% !important;
    right: 0 !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 0 !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    color: rgba(255, 255, 255, 0.1) !important;
    font-size: clamp(7rem, 15vw, 13rem) !important;
    font-weight: 800;
    letter-spacing: -0.12em;
    line-height: 0.8 !important;
    opacity: 1 !important;
    pointer-events: none;
    transform: translateY(-50%) !important;
}

/* Ambient motion for the Read More section background. */
.content_boxes .content_box_bg {
    overflow: hidden;
    background-size: 140% 140%, 100% 100%;
    animation: contentBoxBackgroundDrift 18s ease-in-out infinite alternate;
}

.content_boxes .content_box_bg::before,
.content_boxes .content_box_bg::after {
    position: absolute;
    inset: -18%;
    content: "";
    pointer-events: none;
}

.content_boxes .content_box_bg::before {
    background:
        radial-gradient(circle at 18% 28%, rgba(255, 255, 255, 0.16) 0 1px, transparent 2px),
        radial-gradient(circle at 74% 22%, rgba(var(--cbox-accent-rgb), 0.38) 0 1px, transparent 2px),
        radial-gradient(circle at 88% 68%, rgba(255, 255, 255, 0.12) 0 1px, transparent 2px),
        radial-gradient(circle at 42% 82%, rgba(var(--cbox-accent-rgb), 0.28) 0 1px, transparent 2px);
    background-size: 180px 160px, 240px 220px, 210px 190px, 260px 240px;
    opacity: 0.52;
    animation: contentBoxSparkleDrift 16s linear infinite;
}

.content_boxes .content_box_bg::after {
    background:
        radial-gradient(ellipse at 22% 42%, rgba(var(--cbox-accent-rgb), 0.2), transparent 32%),
        radial-gradient(ellipse at 82% 72%, rgba(74, 144, 226, 0.12), transparent 34%);
    filter: blur(8px);
    opacity: 0.7;
    animation: contentBoxGlowDrift 12s ease-in-out infinite alternate;
}

@keyframes contentBoxBackgroundDrift {
    0% { background-position: 0% 40%, 0 0; }
    100% { background-position: 100% 60%, 0 0; }
}

@keyframes contentBoxSparkleDrift {
    0% { transform: translate3d(-1%, -1%, 0) rotate(0deg); opacity: 0.34; }
    50% { opacity: 0.68; }
    100% { transform: translate3d(2%, 1%, 0) rotate(3deg); opacity: 0.42; }
}

@keyframes contentBoxGlowDrift {
    0% { transform: translate3d(-3%, 2%, 0) scale(0.92); }
    100% { transform: translate3d(4%, -3%, 0) scale(1.08); }
}

@media (prefers-reduced-motion: reduce) {
    .content_boxes .content_box_bg,
    .content_boxes .content_box_bg::before,
    .content_boxes .content_box_bg::after {
        animation: none !important;
    }
}
.content_boxes .content_box_copy > :not(.content_box_index) {
    position: relative;
    z-index: 1;
}
@media screen and (max-width: 1080px) {
    .content_boxes .content_box_copy {
        padding-bottom: clamp(42px, 6vw, 64px) !important;
    }
    .content_boxes .content_box_copy > .content_box_index {
        top: 50% !important;
        right: 0 !important;
        font-size: clamp(6rem, 20vw, 10rem) !important;
    }
}
@media screen and (max-width: 560px) {
    .content_boxes .content_box_copy {
        padding-bottom: 48px !important;
    }
}

/* Preserve the requested spacing and soften the watermark. */
.content_boxes .content_box {
    margin-top: 10px !important;
}
.content_boxes .content_box_copy > .content_box_index {
    color: rgba(255, 255, 255, 0.045) !important;
}

/* Stable responsive spacing for stacked Content Boxes. */
@media screen and (max-width: 1080px) {
    .content_boxes .content_box {
        padding-top: clamp(24px, 4vw, 40px) !important;
        padding-bottom: clamp(64px, 8vw, 88px) !important;
    }
}
@media screen and (max-width: 560px) {
    .content_boxes .content_box {
        padding-top: 24px !important;
        padding-bottom: 64px !important;
    }
}

/* Lift overflowing partner badges by 10px on stacked layouts. */
@media screen and (max-width: 1080px) {
    .content_boxes .content_box_partners {
        bottom: -24px !important;
    }
}
@media screen and (max-width: 560px) {
    .content_boxes .content_box_partners {
        bottom: -18px !important;
    }
}

/* Mobile Content Box polish below 1080px. */
@media screen and (max-width: 1080px) {
    .content_boxes .content_box_inner,
    .content_boxes .content_box_text_right .content_box_inner {
        gap: 16px !important;
    }
    .content_boxes .content_box_copy {
        padding-bottom: clamp(24px, 4vw, 40px) !important;
    }
    .content_boxes .content_box_photo,
    .content_boxes .content_box:hover .content_box_photo,
    .content_boxes .content_box:focus-within .content_box_photo {
        transform: none !important;
        filter: none !important;
        transition: none !important;
    }
}
@media screen and (max-width: 560px) {
    .content_boxes .content_box_copy {
        padding-bottom: 24px !important;
    }
}

/* Small-mobile Content Box layout: larger badges and centered copy/CTA. */
@media screen and (max-width: 560px) {
    .content_boxes .content_box_partner {
        width: 112px !important;
        height: 112px !important;
        flex-basis: 112px !important;
    }
    .content_boxes .content_box_copy {
        align-items: center !important;
        text-align: center !important;
    }
    .content_boxes .content_box_eyebrow {
        justify-content: center;
    }
    .content_boxes .content_box_heading,
    .content_boxes .content_box_body {
        text-align: center;
    }
    .content_boxes .content_box_btn {
        margin-left: auto;
        margin-right: auto;
    }
}

/* Remove excess space beneath stacked Content Boxes while preserving badge clearance. */
@media screen and (max-width: 1080px) {
    .content_boxes .content_box {
        padding-bottom: 32px !important;
    }
}
@media screen and (max-width: 560px) {
    .content_boxes .content_box {
        padding-bottom: 24px !important;
    }
}

/* The section itself must end at the final Content Box on mobile. */
@media screen and (max-width: 1080px) {
    .content_boxes,
    .content_boxes.content_boxes_main {
        margin-bottom: 0 !important;
        padding-bottom: 0 !important;
    }
}

/* Keep overflowing partner badges visible on all smaller layouts. */
@media screen and (max-width: 1080px) {
    .content_boxes,
    .content_boxes .content_box,
    .content_boxes .content_box_shell,
    .content_boxes .content_box_inner,
    .content_boxes .content_box_stage,
    .content_boxes .content_box_media_frame,
    .content_boxes .content_box_partners {
        overflow: visible !important;
    }
}

/* Let overflowing badges layer above the following Content Box on mobile. */
@media screen and (max-width: 1080px) {
    .content_boxes .content_box {
        isolation: auto !important;
        z-index: auto !important;
    }
    .content_boxes .content_box_stage {
        position: relative;
        z-index: 2;
    }
    .content_boxes .content_box_partners {
        position: absolute !important;
        z-index: 100 !important;
        overflow: visible !important;
        pointer-events: none;
    }
}

/* Keep mobile partner badges fully inside each Content Box and image panel. */
@media screen and (max-width: 1080px) {
    .content_boxes .content_box {
        overflow: hidden !important;
        isolation: isolate !important;
    }
    .content_boxes .content_box_media_frame {
        overflow: hidden !important;
    }
    /* Badges straddle the bottom edge of the image (half over the photo,
       half below it) — the box makes room for the overhang. */
    .content_boxes .content_box {
        overflow: visible !important;
    }
    .content_boxes .content_box_stage {
        overflow: visible !important;
    }
    .content_boxes .content_box_stage:has(.content_box_partners) {
        margin-bottom: calc(var(--cbox-badge-size) * 0.5 + 12px);
    }
    .content_boxes .content_box_partners {
        bottom: 0 !important;
        transform: translateY(50%) !important;
        z-index: 5 !important;
    }
}
@media screen and (max-width: 560px) {
    .content_boxes .content_box_stage:has(.content_box_partners) {
        margin-bottom: 68px;
    }
}

/* Live-server fallback: never hide Content Box content if reveal JS is unavailable. */
.content_boxes .content_box_copy > *,
.content_boxes .content_box_stage {
    opacity: 1;
    transform: none;
}
