/* Named page exceptions. The shared responsive contract is wy-responsive-system.css.
   Only preserve existing artwork, reference composition and meaningful media stages. */

/* Home / Solutions, 2026-10-26: user-requested 1.2x card and canvas sizes.
   Change native geometry only. The fit owner preserves the former UI scale,
   so artwork text and external copy keep their actual rendered sizes.
   Phone cards already fill the shared content width and retain that cap. */
html body.wy-responsive[data-responsive-page="index"] #solutions .card {
    --wy-sol-size-factor: 1.2;
    --wy-sol-width-factor: 1;
}

@media(min-width:1024px) {
    html body.wy-responsive[data-responsive-page="index"] #solutions .card {
        --wy-sol-width-factor: 1.2;
        width: min(55.2%, 792px);
        margin-left: calc(min(55.2%, 792px) / -2);
    }
}

@media(min-width:768px) and (max-width:1023px) {
    html body.wy-responsive[data-responsive-page="index"] #solutions .card {
        --wy-sol-width-factor: 1.2;
        width: min(86.4%, 672px);
        margin-left: calc(min(86.4%, 672px) / -2);
    }
}

/* Home / Solutions, 2026-10-26: phones use a native, manual swipe track.
   Remove the enlarged height floor and the caption's auto-filled CTA gap;
   preserve the shared type, artwork fit, labels and destination links. */
@media(max-width:767px) {
    html body.wy-responsive[data-responsive-page="index"] #solutions .sol__grid {
        display: flex;
        align-items: flex-start;
        gap: var(--wy-s4);
        height: auto;
        padding-block: var(--wy-s1) var(--wy-s5);
        overflow-x: auto;
        overflow-y: hidden;
        overscroll-behavior-inline: contain;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    html body.wy-responsive[data-responsive-page="index"] #solutions .sol__grid::-webkit-scrollbar {
        display: none;
    }

    html body.wy-responsive[data-responsive-page="index"] #solutions .sol__grid:focus-visible {
        outline: 2px solid var(--wy-primary);
        outline-offset: var(--wy-s1);
    }

    html body.wy-responsive[data-responsive-page="index"] #solutions .card {
        --wy-sol-size-factor: 1;
        --wy-sol-width-factor: 1;
        position: relative;
        inset: auto;
        flex: 0 0 100%;
        width: 100%;
        margin: 0;
        height: auto;
        min-height: 0;
        transform: none;
        opacity: 1;
        filter: none;
        pointer-events: auto;
        touch-action: auto;
        cursor: default;
        scroll-snap-align: start;
        scroll-snap-stop: always;
        transition: none;
        will-change: auto;
    }

    html body.wy-responsive[data-responsive-page="index"] #solutions .card__cap {
        flex: none;
        padding: var(--wy-s4) !important;
    }

    html body.wy-responsive[data-responsive-page="index"] #solutions .card__cap .h3 {
        margin-bottom: var(--wy-s3);
    }

    html body.wy-responsive[data-responsive-page="index"] #solutions .more {
        margin-top: var(--wy-s4);
    }
}

/* Home / Solutions, 2026-10-26: user-supplied component-library reference.
   Only the first card's 418x272 artwork changes: white icon/list panel,
   level CMS toolbar and a photographic EV/person banner shared
   by the dragged tile and website. Preserve the card, stage skin, caption,
   carousel geometry and existing .fit scaling owner. */
html body.wy-responsive[data-responsive-page="index"] #solutions .cms-demo .cms {
    /* Use the existing 1.2x card's spare space for the browser alone.
     Size its grid track by its rendered width so both panels stay centered.
     The fit owner caps the browser at the actual canvas capacity on phones. */
    display: grid;
    grid-template-columns: calc(104px * .9) calc(290.4px * var(--cms-browser-scale, 1.06));
    align-content: center;
    align-items: center;
    justify-content: center;
    padding: 0;
    gap: var(--wy-s2);
}

/* Both approved left panels retain their native geometry and scale as one
   unit. The reclaimed width and smaller scene insets enlarge the browser;
   no card, stage or external typography changes. */
#solutions .cms-demo .cms__rail {
    --cms-rail-scale: .9;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: none;
    align-self: center;
    width: calc(104px * var(--cms-rail-scale));
}

#solutions .cms-demo .cms__tree {
    width: 104px;
    height: 232px;
    padding: 7px 9px;
    gap: 0;
    border: 1px solid #DADDEC;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 7px 20px -14px rgba(47, 40, 83, .28);
    transform: scale(var(--cms-rail-scale));
    transform-origin: center;
}

#solutions .cms-demo .tr {
    position: relative;
    isolation: isolate;
    flex: 1;
    min-height: 0;
    height: 43px;
    padding: 0 2px;
    gap: 9px;
    border: 0;
    border-bottom: 1px solid var(--wy-g100, #E3E3E9);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--wy-g700, #3D3D46);
    font-family: var(--wy-font-display);
    font-size: 11px;
    font-weight: 400;
    opacity: 1;
    transition: color var(--wy-dur) var(--wy-ease), background var(--wy-dur) var(--wy-ease);
}

#solutions .cms-demo .tr:last-child {
    border-bottom: 0;
}

#solutions .cms-demo .tr::before {
    display: none;
}

/* 2026-10-26 refinement: the same inset, rounded selection surface in both
   scenes; separators stay on the row, outside the 31px-high highlight. */
#solutions .cms-demo .tr::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 6px -3px;
    border-radius: 6px;
    background: var(--wy-primary-subtle);
    box-shadow: inset 0 0 0 1px rgba(91, 62, 184, .10), 0 1px 2px rgba(47, 40, 83, .04);
    opacity: 0;
    transition: opacity var(--wy-dur) var(--wy-ease);
    pointer-events: none;
}

#solutions .cms-demo .tr--src.is-grab::after,
#solutions .cms-demo .tr--lang.is-on::after {
    opacity: 1;
}

#solutions .cms-demo .tr svg,
#solutions .cms-demo .ghost svg {
    display: block;
    width: 16px;
    height: 16px;
    flex: none;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}

#solutions .cms-demo .tr--src,
#solutions .cms-demo .tr--src.is-grab {
    color: var(--wy-primary);
    background: transparent;
    box-shadow: none;
    transform: none;
}

#solutions .cms-demo .cms__langs {
    align-self: center;
    height: 140px;
    padding-block: 9px;
    justify-content: center;
}

#solutions .cms-demo .cms__langs .tr {
    opacity: 1;
}

#solutions .cms-demo .tr--lang {
    flex: 0 0 40px;
    font-family: var(--wy-font-display);
    font-size: 12px;
}

#solutions .cms-demo .tr--lang.is-on {
    color: var(--wy-primary);
    background: transparent;
    border-color: var(--wy-g100, #E3E3E9);
}

#solutions .cms-demo .cms__view {
    width: 290.4px;
    height: 240px;
    transform: scale(var(--cms-browser-scale, 1.06));
    transform-origin: left center;
    border: 1px solid #CED3E0;
    border-radius: 10px;
    background: #fff;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: 0 10px 24px -16px rgba(43, 42, 64, .36);
}

/* 2026-10-26 user reference: page / save status at the leading edge,
   viewport tools in the middle, history / preview / publish at the end.
   Reuse the approved light chrome and brand purple, within the same stage. */
#solutions .cms-demo .vbar.vtoolbar {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    height: 22px;
    padding: 0;
    gap: 0;
    background: linear-gradient(#F5F5F7, #E7E8EC);
    border-bottom: 1px solid #DADBDF;
    color: var(--wy-g700);
    font: 6px/1 var(--wy-font-cn);
    white-space: nowrap;
}

#solutions .cms-demo .vtoolbar :is(.vtoolbar__start, .vtoolbar__center, .vtoolbar__end) {
    display: flex;
    align-items: center;
    min-width: 0;
    height: 100%;
}

#solutions .cms-demo .vtoolbar svg {
    display: block;
    flex: none;
    width: 8px;
    height: 8px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

#solutions .cms-demo .vtoolbar__brand {
    display: grid;
    place-items: center;
    width: 21px;
    height: 100%;
    border-inline-end: 1px solid var(--wy-g100);
}

#solutions .cms-demo .vtoolbar__brand img {
    width: 11px;
    height: auto;
    border-radius: 0;
}

#solutions .cms-demo .vtoolbar__page {
    display: flex;
    align-items: center;
    gap: 3px;
    height: 100%;
    padding-inline: 5px;
    border-inline-end: 1px solid var(--wy-g100);
}

#solutions .cms-demo .vtoolbar__saved {
    padding-inline: 5px;
    color: var(--wy-g500);
    font-size: 5.5px;
}

#solutions .cms-demo .vtoolbar .vtoolbar__center {
    justify-content: center;
    gap: var(--wy-s1);
}

#solutions .cms-demo :is(.vtoolbar__devices, .vtoolbar__history) {
    display: flex;
    align-items: center;
    gap: 3px;
}

#solutions .cms-demo .vtoolbar__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 8px;
    height: 10px;
    color: var(--wy-g500);
}

#solutions .cms-demo .vtoolbar__icon.is-active {
    color: var(--wy-primary);
}

#solutions .cms-demo .vtoolbar .vtoolbar__more {
    fill: currentColor;
    stroke: none;
}

#solutions .cms-demo .vtoolbar__width {
    font-family: var(--wy-font-en);
    font-variant-numeric: tabular-nums;
}

#solutions .cms-demo .vtoolbar__zoom {
    display: flex;
    align-items: center;
    gap: 1px;
    font-family: var(--wy-font-en);
}

#solutions .cms-demo .vtoolbar :is(.vtoolbar__page, .vtoolbar__zoom)>svg {
    width: 5px;
    height: 5px;
}

#solutions .cms-demo .vtoolbar__history {
    padding-inline: var(--wy-s1);
}

#solutions .cms-demo .vtoolbar__preview {
    display: grid;
    place-items: center;
    width: 18px;
    height: 100%;
    border-inline: 1px solid var(--wy-g100);
}

#solutions .cms-demo .vpub {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-width: 28px;
    padding: 0 5px;
    margin: 0;
    border-radius: 0;
    background: var(--wy-primary);
    color: var(--wy-g0);
    font-size: 6px;
    line-height: 1;
}

#solutions .cms-demo .vpub.is-done {
    background: var(--wy-primary);
    color: #fff;
}

#solutions .cms-demo .vpage {
    margin: 0;
    padding: 0;
    gap: 0;
    border-radius: 0;
    background: #fff;
    overflow: hidden;
}

/* 2026-10-26: the first scene starts as a labelled page structure, replacing
   the empty canvas with only Navbar / Banner / Section in very pale lilac
   gradients, per the latest review. This overlay fades out
   on the existing Banner drop; the finished site and later scenes stay as
   approved. No JS / reduced motion continue to show the completed website. */
#solutions .cms-demo .vpage #e1wireframe {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: grid;
    grid-template-rows: 26px minmax(0, 1fr) 28px;
    gap: 6px;
    padding: 8px;
    background: #fff;
    opacity: 0;
    transition: opacity var(--wy-dur) var(--wy-ease);
    pointer-events: none;
}

#solutions .cms-demo .vpage.is-wireframe #e1wireframe {
    opacity: 1;
}

#solutions .cms-demo .vwireframe__block {
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(91, 62, 184, .035);
    border-radius: 4px;
    background: linear-gradient(135deg, #FDFCFF 0%, #F8F5FE 55%, #F3EFFB 100%);
    color: #968DA9;
    font: 9px/1 var(--wy-font-display);
    letter-spacing: normal;
}

#solutions .cms-demo .vwireframe__block--banner {
    font-size: 10px;
}

#solutions .cms-demo .vpage.is-wireframe #e1ins {
    top: 40px;
    left: 8px;
    width: calc(100% - 16px);
    height: calc(100% - 82px);
    border-radius: 4px;
}

#solutions .cms-demo .vpage:not(.is-wireframe) #e1ins {
    opacity: 0;
    transition: none;
}

#solutions .cms-demo .vnav {
    height: 26px;
    padding: 0 12px;
    gap: 9px;
    border: 0;
    border-radius: 0;
    background: #fff;
}

#solutions .cms-demo .vnav b {
    margin-right: auto;
    font-size: 10px;
    letter-spacing: normal;
}

#solutions .cms-demo .vnav i {
    font-size: 7px;
    color: #3D3D46;
}

#solutions .cms-demo .vins,
#solutions .cms-demo .vins.is-on {
    position: absolute;
    z-index: 4;
    top: 26px;
    left: 0;
    width: 100%;
    height: 154px;
    margin: 0;
    border: 1.5px dashed var(--wy-primary);
    border-radius: 0;
    background: rgba(237, 233, 249, .35);
    box-shadow: none;
    opacity: 0;
    transform: scale(.97);
    transition: opacity var(--wy-dur) var(--wy-ease), transform var(--wy-dur) var(--wy-ease);
    pointer-events: none;
}

#solutions .cms-demo .vins.is-on {
    opacity: 1;
    transform: none;
}

/* Match the inherited :not() selector's ID specificity; the drop outline
   must stay outside flex flow rather than pushing the photograph down. */
#solutions .cms-demo .vpage #e1ins {
    position: absolute;
}

#solutions .cms-demo .vhero {
    height: 154px;
    padding: 0;
    border-radius: 0;
    background: #E6EEF2;
    display: block;
    opacity: 0;
    transform: translateY(6px) scale(.97);
    transform-origin: center top;
    transition: opacity var(--wy-dur) var(--wy-ease), transform 500ms var(--wy-ease);
}

#solutions .cms-demo .vhero.is-in {
    height: 154px;
    opacity: 1;
    transform: none;
}

#solutions .cms-demo .vhero::before,
#solutions .cms-demo .vhero::after {
    display: none;
}

#solutions .cms-demo .vhero__photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
    border-radius: 0;
}

#solutions .cms-demo .vtitle {
    position: absolute;
    top: 12px;
    left: 12px;
    color: #17262E;
    font-family: var(--wy-font-display);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: normal;
    line-height: 1.25;
}

#solutions .cms-demo .vcaret {
    background: #17262E;
}

/* Text-object editing is an explanatory state, shown only during typing.
   Fixed field bounds keep the handles still while the caret follows text. */
#solutions .cms-demo .vedit {
    position: absolute;
    z-index: -1;
    left: -6px;
    top: -4px;
    width: 148px;
    height: 25px;
    border: 1px solid var(--wy-primary);
    border-radius: 2px;
    background: rgba(255, 255, 255, .38);
    box-shadow: 0 0 0 2px rgba(91, 62, 184, .08);
    opacity: 0;
    transition: opacity var(--wy-dur-fast) var(--wy-ease);
    pointer-events: none;
}

#solutions .cms-demo .vtitle.is-edit .vedit {
    opacity: 1;
}

#solutions .cms-demo .vedit__handle {
    position: absolute;
    width: 4px;
    height: 4px;
    border: 1px solid var(--wy-primary);
    border-radius: 1px;
    background: #fff;
}

#solutions .cms-demo .vedit__handle:nth-child(1) {
    left: -2.5px;
    top: -2.5px;
}

#solutions .cms-demo .vedit__handle:nth-child(2) {
    right: -2.5px;
    top: -2.5px;
}

#solutions .cms-demo .vedit__handle:nth-child(3) {
    left: -2.5px;
    bottom: -2.5px;
}

#solutions .cms-demo .vedit__handle:nth-child(4) {
    right: -2.5px;
    bottom: -2.5px;
}

#solutions .cms-demo .vedit__type {
    position: absolute;
    top: -9px;
    left: -1px;
    width: 15px;
    height: 9px;
    border: 1px solid var(--wy-primary);
    border-radius: 2px 2px 0 0;
    background: #fff;
    fill: none;
    stroke: var(--wy-primary);
    stroke-width: 1.2;
    stroke-linecap: round;
}

#solutions .cms-demo .cur__arrow,
#solutions .cms-demo .cur__text {
    transition: opacity var(--wy-dur-fast) var(--wy-ease);
}

#solutions .cms-demo .cur__text {
    position: absolute;
    left: 7px;
    top: 1px;
    opacity: 0;
    filter: drop-shadow(0 1px 2px rgba(40, 32, 80, .18));
}

#solutions .cms-demo .cur.is-typing .cur__arrow {
    opacity: 0;
}

#solutions .cms-demo .cur.is-typing .cur__text {
    opacity: 1;
}

#solutions .cms-demo .vsub {
    display: none;
}

#solutions .cms-demo .vbtn {
    position: absolute;
    top: 34px;
    left: 12px;
    height: 15px;
    padding: 0 7px;
    border: 1px solid rgba(23, 38, 46, .5);
    border-radius: 2px;
    background: rgba(255, 255, 255, .65);
    color: #17262E;
    font-size: 6.5px;
    font-weight: 400;
    line-height: 13px;
}

#solutions .cms-demo .vsec {
    flex: 1;
    min-height: 16px;
    height: auto;
    padding: 4px 12px;
    gap: 4px;
    border: 0;
    border-radius: 0;
    background: #fff;
    opacity: 1;
}

#solutions .cms-demo .vbar1 {
    width: 36%;
    height: 2px;
    border-radius: 0;
    background: #B3B9C0;
}

#solutions .cms-demo .vbar2 {
    width: 60%;
    height: 2px;
    border-radius: 0;
    background: #E0E3E8;
}

#solutions .cms-demo .vcta {
    height: 18px;
    border: 0;
    border-top: 1px solid #EEF0F3;
    border-radius: 0;
    background: #fff;
    opacity: 1;
}

#solutions .cms-demo .vbtn2 {
    height: 13px;
    padding: 0;
    color: #5A5F6A;
    background: none;
    font-size: 6.5px;
    line-height: 13px;
}

#solutions .cms-demo .ghost {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    width: 112px;
    height: auto;
    padding: 5px;
    border: 1px solid #DADDEC;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 12px 24px -10px rgba(47, 40, 83, .38);
}

#solutions .cms-demo .ghost::before {
    display: none;
}

#solutions .cms-demo .ghost img {
    display: block;
    width: 100%;
    height: 56px;
    object-fit: cover;
    border-radius: 4px;
}

#solutions .cms-demo .ghost>span {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 0 2px 1px;
    font: 9px/14px var(--wy-font-display);
}

#solutions .cms-demo .ghost svg {
    width: 12px;
    height: 12px;
}

@media(prefers-reduced-motion:reduce) {

    #solutions .cms-demo .cms,
    #solutions .cms-demo .vhero,
    #solutions .cms-demo .vpage #e1wireframe,
    #solutions .cms-demo .vins,
    #solutions .cms-demo .vedit,
    #solutions .cms-demo .cur__arrow,
    #solutions .cms-demo .cur__text,
    #solutions .cms-demo .tr,
    #solutions .cms-demo .tr::after {
        transition: none;
    }
}

/* Navbar contact, 2026-10-23: reuse the existing shared arrow and hover.
   Match the heading actions' optical padding without changing height/type. */
html body.wy-responsive .nav__cta {
    padding-inline: 14px 8px !important;
    gap: 4px !important;
}

html body.wy-responsive :is(.nav__cta, .wy-menu__contact > .btn):hover {
    background: var(--wy-primary-shade);
}

/* Shared heading actions, 2026-10-23: match the approved Navbar contact
   button's 36px height / 14px type. The existing 14px arrow keeps its full
   hover extension; its internal trailing space balances the 14/8px padding.
   Tablet/mobile retain the Navbar's 44px touch height. */
html body.wy-responsive :is(.sec-head--row, .sec-head--split, .fill-cases__head, .adobe-aem__head)>.btn {
    height: 36px !important;
    min-height: 36px !important;
    padding: 0 8px 0 14px !important;
    font-size: 14px !important;
}

@media(max-width:1023px) {
    html body.wy-responsive :is(.sec-head--row, .sec-head--split, .fill-cases__head, .adobe-aem__head)>.btn {
        height: 44px !important;
        min-height: 44px !important;
    }
}

/* Arrow-button spacing, 2026-10-23: Stripe's 8px gap / narrow resting
   arrow footprint, adapted to the approved 14x12 SVG and 6px hover travel.
   Reclaim only the SVG's unused trailing 8px; keep artwork and motion intact. */
html body.wy-responsive .btn:not(.btn--text):has(> .wy-harr-host) {
    column-gap: 8px !important;
}

html body.wy-responsive .btn:not(.btn--text)>.wy-harr-host {
    margin-inline-start: 0 !important;
    margin-inline-end: -8px !important;
}

/* The existing asymmetric paddings already compensated for the old SVG box.
   Restore the trailing inset to the matching, unchanged leading inset. */
html body.wy-responsive :is(.btn--more, .shv1__btn, .shx3__btn):has(> .wy-harr-host) {
    padding-inline-end: 20px !important;
}

html body.wy-responsive .btn--outline:has(> .wy-harr-host) {
    padding-inline-end: 16px !important;
}

html body.wy-responsive .nav__cta:has(> .wy-harr-host),
html body.wy-responsive :is(.sec-head--row, .sec-head--split, .fill-cases__head, .adobe-aem__head)>.btn:has(> .wy-harr-host) {
    padding-inline-end: 14px !important;
}

/* Company news: the supplied reference uses date / headline / 16:9 thumbnail
   rows inset beneath the approved editorial feature. Reflow at the shared
   1007/663 content-capacity cutovers; preserve source order and type sizes. */
@container company-news-list (max-width:1007px) {
    html body.wy-responsive[data-responsive-page="company-news"] .cn-row {
        grid-template-columns: minmax(0, 1fr) minmax(160px, 28%);
        gap: var(--wy-s4) var(--wy-s5)
    }

    html body.wy-responsive[data-responsive-page="company-news"] .cn-row__date {
        grid-column: 1;
        grid-row: 1
    }

    html body.wy-responsive[data-responsive-page="company-news"] .cn-row__copy {
        grid-column: 1;
        grid-row: 2
    }

    html body.wy-responsive[data-responsive-page="company-news"] .cn-row__media {
        grid-column: 2;
        grid-row: 1 / 3;
        align-self: center
    }
}

@container company-news-list (max-width:663px) {
    html body.wy-responsive[data-responsive-page="company-news"] .cn-row {
        grid-template-columns: minmax(0, 1fr) clamp(96px, 29cqw, 160px);
        padding-block: var(--wy-s6);
        row-gap: var(--wy-s3)
    }
}

/* Partners / CTA: the user requested a clear section gap. Use the shared 120px
   bottom budget and remove the tail's inherited decorative overlap here.
   Mobile retains the matching 64px minimum from that spacing budget. */
html body.wy-responsive[data-responsive-page="partners"] #partners+.tail {
    margin-block-start: 0;
}

@media(max-width:767px) {
    html body.wy-responsive[data-responsive-page="partners"] #partners {
        padding-block-end: var(--wy-s8) !important;
    }
}

/* Partners: retain only the approved Consumer Insights KEY CHALLENGES surface.
   User-requested spacious proportions: logo above, copy in the middle, action
   at the trailing bottom edge. Content can grow beyond the preferred minimum.
   Use the shared body type size; keep logo sizes and outline actions. */
html body.wy-responsive[data-responsive-page="partners"] #partners .pcard {
    display: flex;
    flex-direction: column;
    min-height: clamp(calc(var(--wy-s8) * 5), 20vw, calc(var(--wy-s9) * 4));
    gap: clamp(var(--wy-s5), 1.667vw, var(--wy-s6));
    padding: clamp(var(--wy-s5), 2.5vw, var(--wy-s7));
    background-color: var(--wy-g25);
    background-image:
        radial-gradient(110% 95% at 0% 0%, color-mix(in srgb, var(--wy-g0) 88%, transparent), transparent 72%),
        linear-gradient(135deg,
            color-mix(in srgb, var(--wy-primary-subtle) 62%, var(--wy-g0)),
            color-mix(in srgb, var(--wy-blue-subtle) 68%, var(--wy-g0)));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--wy-primary) 7%, transparent),
        inset 0 2px 0 color-mix(in srgb, var(--wy-g0) 70%, transparent);
}

html body.wy-responsive[data-responsive-page="partners"] #partners .pcard__logo {
    flex: none;
    margin: 0;
}

html body.wy-responsive[data-responsive-page="partners"] #partners .pcard__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 1fr auto;
    gap: var(--wy-s6);
    flex: 1;
    min-width: 0;
}

html body.wy-responsive[data-responsive-page="partners"] #partners .pcard .body {
    min-width: 0;
    min-height: 0;
    font-size: var(--wy-fs-body);
    align-self: center;
}

html body.wy-responsive[data-responsive-page="partners"] #partners .pcard .btn {
    margin: 0;
    align-self: end;
    justify-self: end;
}

/* Adobe detail, 2026-10-15 user reference: heading/action above a full-width
   outlined tab rail; media/copy below. WHY US uses alternating open rows.
   Preserve the shared 12-column media 6 / empty 1 / copy 5 composition. */
/* 2026-10-16: user-requested single-line desktop title. Remove the template's
   forced name break. Its 72px reference measures about 18.1em; the desktop
   size therefore follows the available inner width, capped at the approved
   72px reference. Tablet / mobile retain the shared type and natural wrapping. */
/* AWS partner detail (2026-10-22): explicitly reuses the approved Adobe
   hero, tab/media split, alternating product rows and section rhythm. */
html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) #top.partner-hero .shv1__in {
    container: adobe-hero / inline-size;
}

html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) #top.partner-hero .shv1__h {
    max-width: 100%;
}

html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) #top.partner-hero .partner-hero__name {
    display: inline;
}

/* 2026-10-16 user-requested vertical rhythm pass. The short, single-line
   partner-detail hero has no lower illustration, so cap its preferred height
   at 640 while retaining the shared auto / min-height strategy and 560 floor.
   Main sections use the shared 96 budget; the supporting metric strip uses
   56. Remove the mobile heading margin that otherwise doubles the flex gap. */
html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) .adobe-aem__head .sec-head {
    margin: 0 !important;
}

html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) .adobe-proof>.container>.sec-head {
    margin-block-end: max(var(--wy-s6), var(--wy-layout-gutter)) !important;
}

@media(min-width:768px) {
    html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) #top.partner-hero {
        min-height: clamp(560px, calc(100svh - 320px), 640px) !important;
    }
}

@container adobe-aem (max-width:767px) {
    html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) .adobe-aem__head {
        row-gap: var(--wy-s5);
    }

    html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) .adobe-aem__head .btn {
        margin-inline-start: 0;
        align-self: flex-start;
    }
}

/* Adobe Silver needs a wider frame than the two numeric achievements.
   At the shared 1007px capacity cutover, keep its badge above the pair. */
html body.wy-responsive[data-responsive-page="partner-adobe"] #trust>.container {
    container: adobe-trust / inline-size;
}

@container adobe-trust (max-width:1007px) {
    html body.wy-responsive[data-responsive-page="partner-adobe"] #trust .stats--3 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    html body.wy-responsive[data-responsive-page="partner-adobe"] #trust .stats--3>.stat {
        grid-column: auto;
    }

    html body.wy-responsive[data-responsive-page="partner-adobe"] #trust .stats--3>.stat:first-child {
        grid-column: 1/-1;
    }
}

@media(min-width:1024px) {
    html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) #top.partner-hero .shv1__h {
        font-size: min(72px, 5.5cqw) !important;
        white-space: nowrap;
    }

    html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) :is(.adobe-aem__panel, .adobe-proof__row) {
        grid-template-columns: repeat(12, minmax(0, 1fr));
        column-gap: var(--wy-layout-gutter);
    }

    html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) :is(.adobe-aem__visual, .adobe-proof__media) {
        grid-column: 1/7;
        grid-row: 1;
    }

    html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) :is(.adobe-aem__copy, .adobe-proof__copy) {
        grid-column: 8/13;
        grid-row: 1;
    }

    html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) .adobe-proof__row--reverse .adobe-proof__copy {
        grid-column: 1/6;
    }

    html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) .adobe-proof__row--reverse .adobe-proof__media {
        grid-column: 7/13;
    }
}

@container adobe-aem (max-width:663px) {
    html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) .adobe-aem__tabs {
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: minmax(144px, max-content);
    }
}

@media(max-width:1023px) {
    html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) .adobe-aem__copy {
        padding-block-start: 0;
    }

    html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) :is(.adobe-aem__panel, .adobe-proof__row) {
        gap: var(--wy-s6);
    }
}

@media(max-width:767px) {
    html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) #top.partner-hero {
        padding-block-end: var(--wy-s7) !important;
    }

    html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) #top.partner-hero .shv1__sub {
        margin-block-start: var(--wy-s5) !important;
    }

    html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) #top.partner-hero .shv1__btn {
        margin-block-start: var(--wy-s6) !important;
    }

    html body.wy-responsive:is([data-responsive-page="partner-adobe"], [data-responsive-page="partner-aws"]) #trust {
        padding-block: var(--wy-s6) !important;
    }
}

/* Global Ops: exact approved section rhythm / gap and UI-stage contract. */
html body.wy-responsive[data-responsive-page="solution-global-ops"] #top .shv1__h {
    max-width: 1000px;
}

@media(min-width:768px) {
    html body.wy-responsive[data-responsive-page="solution-global-ops"] :is(.sec-head, .fill-cases__head) {
        margin-bottom: clamp(48px, calc(64px - (1920px - 100vw)/45), 64px) !important;
    }
}

/* Global Ops · 2026-10-15 user reference: Join WHO WE LOOK FOR.
   User refinement: size the title track to its content so its trailing
   whitespace cannot inflate the first gap. Both column gaps use the same
   shared gutter; the two benefit columns share the remaining width.
   Keep the 48px row rhythm, 1120px capacity cutover, type and icon sizes. */
html body.wy-responsive[data-responsive-page="solution-global-ops"] #whyg .whyg__layout {
    container: ops-why-layout / inline-size;
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: var(--wy-s7) var(--wy-layout-gutter);
    align-items: start;
}

html body.wy-responsive[data-responsive-page="solution-global-ops"] #whyg .sec-head {
    grid-column: 1;
    margin: 0 !important;
    min-width: 0;
}

html body.wy-responsive[data-responsive-page="solution-global-ops"] #whyg .h1 {
    margin: 0;
}

html body.wy-responsive[data-responsive-page="solution-global-ops"] #whyg .whyg__grid {
    grid-column: 2;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--wy-s7) var(--wy-layout-gutter);
    margin: 0;
    min-width: 0;
}

html body.wy-responsive[data-responsive-page="solution-global-ops"] #whyg :is(.whyg__item, .whyg__txt) {
    min-width: 0;
}

html body.wy-responsive[data-responsive-page="solution-global-ops"] #whyg .h3 {
    margin: 0;
}

html body.wy-responsive[data-responsive-page="solution-global-ops"] #whyg .body {
    margin: var(--wy-s2) 0 0;
    min-height: 0;
    max-width: 100%;
    text-wrap: pretty;
}

@container ops-why-layout (max-width:1120px) {
    html body.wy-responsive[data-responsive-page="solution-global-ops"] #whyg :is(.sec-head, .whyg__grid) {
        grid-column: 1/-1;
    }
}

@media(max-width:1023px) {
    html body.wy-responsive[data-responsive-page="solution-global-ops"] #whyg .whyg__layout {
        grid-template-columns: minmax(0, 1fr);
    }

    html body.wy-responsive[data-responsive-page="solution-global-ops"] #whyg :is(.sec-head, .whyg__grid) {
        grid-column: 1;
    }
}

@media(max-width:767px) {
    html body.wy-responsive[data-responsive-page="solution-global-ops"] #whyg .whyg__layout {
        row-gap: var(--wy-s6);
    }

    html body.wy-responsive[data-responsive-page="solution-global-ops"] #whyg .whyg__grid {
        grid-template-columns: minmax(0, 1fr);
        row-gap: var(--wy-s6);
    }

    html body.wy-responsive[data-responsive-page="solution-global-ops"] #whyg .whyg__item {
        column-gap: var(--wy-s5);
    }
}

/* Three bottom-art heroes keep their original desktop backdrop in compact
   desktop, and their approved tablet/mobile image budget below 1024. */
@media(min-width:1024px) {

    html body.wy-responsive[data-responsive-page="solution-consumer-insights"] #top,
    html body.wy-responsive[data-responsive-page="join"] #top,
    html body.wy-responsive[data-responsive-page="partners"] #top {
        padding: 56px 0 0 !important;
    }

    html body.wy-responsive[data-responsive-page="solution-consumer-insights"] #top .ci-banner-bg,
    html body.wy-responsive[data-responsive-page="join"] #top .shv1__bg,
    html body.wy-responsive[data-responsive-page="partners"] #top .shv1__bg {
        background-size: cover;
        background-position: center;
    }

    html body.wy-responsive[data-responsive-page="solution-consumer-insights"] #top .ci-banner-bg::before,
    html body.wy-responsive[data-responsive-page="join"] #top .shv1__bg::before,
    html body.wy-responsive[data-responsive-page="partners"] #top .shv1__bg::before {
        display: none;
    }

    html body.wy-responsive[data-responsive-page="solution-consumer-insights"] #top .ci-banner-bg::after,
    html body.wy-responsive[data-responsive-page="join"] #top .shv1__bg::after,
    html body.wy-responsive[data-responsive-page="partners"] #top .shv1__bg::after {
        inset: 0;
        height: auto;
        background: linear-gradient(180deg, transparent 45%, rgba(255, 255, 255, .35) 78%, #fff 100%);
    }

    html body.wy-responsive[data-responsive-page="join"] #top .shv1__bg::after {
        background: linear-gradient(180deg, transparent 45%, rgba(255, 255, 255, .55) 78%, var(--wy-g0) 100%);
    }
}

@media(min-width:768px) and (max-width:1023px) {
    html body.wy-responsive[data-responsive-page="solution-consumer-insights"] #top {
        padding: 128px 0 360px !important;
    }

    html body.wy-responsive[data-responsive-page="join"] #top,
    html body.wy-responsive[data-responsive-page="partners"] #top {
        padding: 128px 0 340px !important;
    }

    html body.wy-responsive:is([data-responsive-page="solution-consumer-insights"], [data-responsive-page="join"], [data-responsive-page="partners"]) #top>.container {
        padding-block: 0;
    }
}

/* AI hero: preserve the illustration's proportion; allow the content budget
   to expand when text or the existing stacked media exceeds the target. */
html body.wy-responsive[data-responsive-page="product-ai-doc"] #top {
    height: auto !important;
    max-height: none;
}

html body.wy-responsive[data-responsive-page="product-ai-doc"] #top .aihero__stage {
    flex-shrink: 0;
}

/* 2026-10-29: match the Global Site Banner at the actual browser height.
   The container owns its shared width/margins; flex growth must not expand it
   to the viewport and move the copy outside the common content edge.
   Desktop SVG artwork fits the same hero budget, including the existing
   navigation and 48px container insets. Copy can still grow naturally.
   Stacked tablet/phone compositions keep their approved artwork sizes. */
@media(min-width:768px) {
    html body.wy-responsive[data-responsive-page="product-ai-doc"] #top>.aihero {
        flex: 0 1 auto;
    }
}

@media(min-width:1200px) {
    html body.wy-responsive[data-responsive-page="product-ai-doc"] #top {
        --aihero-target: clamp(560px, calc(100svh - 320px), 760px);
        --aihero-art-width: calc((var(--aihero-target) - var(--wy-layout-header, 56px) - 2 * var(--wy-s7)) * 640 / 560);
    }

    html body.wy-responsive[data-responsive-page="product-ai-doc"] #top .aihero__stage {
        flex-basis: min(46%, 640px, var(--aihero-art-width));
    }
}

/* AI document refresh uses the approved CI editorial card surface and
   4:3 preferred minimum. These cards contain headings/lists rather than
   research quotations; let both content rows grow naturally. */
html body.wy-responsive[data-responsive-page="product-ai-doc"] #pain .wy-data-card {
    grid-template-rows: auto 1fr;
    row-gap: var(--wy-s6);
    align-content: start;
}

html body.wy-responsive[data-responsive-page="product-ai-doc"] #pain .wy-data-card :is(.h3, .blist) {
    margin: 0;
}

/* Keep all four approved document metrics, with the Global Ops laurel
   framing. The long 99.8%+ value needs more inline space: reflow to 2x2
   below a 1200px content budget, retaining the existing numeral type size. */
html body.wy-responsive[data-responsive-page="product-ai-doc"] #data>.container {
    container: ai-doc-metrics / inline-size;
}

@container ai-doc-metrics (max-width:1199px) {
    html body.wy-responsive[data-responsive-page="product-ai-doc"] #data .stats--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media(min-width:1024px) {

    /* The mirrored Features panel has a reviewed equal-column composition. */
    html body.wy-responsive[data-responsive-page="product-ai-doc"] #features .svq {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        column-gap: max(48px, calc(50% - 741px)) !important;
    }

    html body.wy-responsive[data-responsive-page="product-ai-doc"] #features .svq__txt {
        grid-column: 1;
        grid-row: 1;
    }

    html body.wy-responsive[data-responsive-page="product-ai-doc"] #features .svq__fig {
        grid-column: 2;
        grid-row: 1;
    }
}

/* About: the original centered video composition keeps symmetrical safety
   space, so its 1920 content centre stays unchanged while admitting long copy. */
/* About spacing review, 2026-10-16: use the shared 96px section budget for
   margins as well as padding. White-section content gaps are two budgets;
   overlapping panels reserve the existing --stack-r exactly once. */
body.wy-responsive[data-responsive-page="about"] {
    --about-section-space: var(--wy-s6);
}

@media(min-width:768px) {
    body.wy-responsive[data-responsive-page="about"] {
        --about-section-space: var(--wy-s7);
    }
}

html body.wy-responsive[data-responsive-page="about"] main.bento {
    padding-block-end: 0 !important;
}

html body.wy-responsive[data-responsive-page="about"] #intro {
    margin-block-start: 0 !important;
}

html body.wy-responsive[data-responsive-page="about"] #band-story-values {
    margin-block-start: var(--about-section-space);
}

/* These scoped rules supersede the old fixed desktop !important paddings. */
html body.wy-responsive[data-responsive-page="about"] :is(#band-story, #band-rest, #band-history, #band-eco) {
    padding-block-start: var(--about-section-space) !important;
}

html body.wy-responsive[data-responsive-page="about"] #band-story {
    padding-block-end: var(--about-section-space) !important;
}

/* The approved rotated fan already supplies about 31px of bottom clearance:
   retain its 65px reference padding, then reduce it with the shared budget. */
html body.wy-responsive[data-responsive-page="about"] #band-rest {
    padding-block-end: max(var(--wy-s5), calc(var(--about-section-space) - 31px)) !important;
}

html body.wy-responsive[data-responsive-page="about"] :is(#band-history, #band-eco) {
    padding-block-end: calc(var(--about-section-space) + var(--stack-r)) !important;
}

html body.wy-responsive[data-responsive-page="about"] #band-eco #global {
    margin-block-start: calc(2 * var(--about-section-space)) !important;
}

@media(max-width:1023px) {

    /* Reflowed cards have no rotated overhang; their old 80px reserve doubled
     the gap before Milestones on tablets and phones. */
    html body.wy-responsive[data-responsive-page="about"] #values .cell--fan {
        padding-block-end: 0;
    }

    html body.wy-responsive[data-responsive-page="about"] #band-rest {
        padding-block-end: var(--about-section-space) !important;
    }
}

/* 2026-10-19: use original full-color brand artwork in the approved six
   ecosystem tiles. Preserve the existing grid, tile sizing and reflow. */
html body.wy-responsive[data-responsive-page="about"] #partners .about-partner-logo {
    display: block;
    inline-size: var(--about-partner-width, 150px);
    max-inline-size: 100%;
    block-size: 36px;
    object-fit: contain;
    filter: none;
    opacity: 1;
}

html body.wy-responsive[data-responsive-page="about"] #partners .about-partner-logo--adobe {
    --about-partner-width: 104px;
}

html body.wy-responsive[data-responsive-page="about"] #partners .about-partner-logo--transperfect {
    --about-partner-width: 164px;
}

html body.wy-responsive[data-responsive-page="about"] #partners .about-partner-logo--aws {
    --about-partner-width: 60px;
}

/* Preserve Microsoft's square brand mark; the page-wide image radius clips it. */
html body.wy-responsive[data-responsive-page="about"] #partners .about-partner-logo--microsoft {
    --about-partner-width: 126px;
    border-radius: 0;
}

html body.wy-responsive[data-responsive-page="about"] #partners .about-partner-logo--consentmanager {
    --about-partner-width: 160px;
}

html body.wy-responsive[data-responsive-page="about"] #partners .about-partner-logo--oracle {
    --about-partner-width: 118px;
}

/* About layout review, 2026-10-15: keep the approved mirrored desktop grid,
   media and type. Real heading / media / copy siblings provide the same
   reading order on phones and in the document, without CSS order reversal.
   Text follows its heading; only the existing visual has a 652px budget. */
html body.wy-responsive[data-responsive-page="about"] .about-section {
    grid-template-rows: auto auto;
    row-gap: var(--wy-s7);
    align-items: start !important;
}

html body.wy-responsive[data-responsive-page="about"] .about-section>.cell {
    order: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0;
}

html body.wy-responsive[data-responsive-page="about"] .about-section__head .cell__h {
    width: auto;
    margin-inline-end: 0;
}

html body.wy-responsive[data-responsive-page="about"] .about-section__copy {
    height: auto;
    min-height: 0;
}

html body.wy-responsive[data-responsive-page="about"] .about-section__copy :is(.cell__p, .story__ps, .addr) {
    margin-block-start: 0;
}

html body.wy-responsive[data-responsive-page="about"] #story .story__ps {
    margin-block-start: 0;
}

html body.wy-responsive[data-responsive-page="about"] #intro .about-section__copy {
    display: flex;
    flex-direction: column;
    gap: var(--wy-s7);
}

html body.wy-responsive[data-responsive-page="about"] #intro .nums-row--sm {
    margin-block-start: auto;
}

html body.wy-responsive[data-responsive-page="about"] :is(#intro, #story)>.about-section__media {
    position: relative;
    height: auto;
    min-height: 0;
    aspect-ratio: 3 / 2;
}

html body.wy-responsive[data-responsive-page="about"] #intro .about-section__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media(min-width:1200px) {
    html body.wy-responsive[data-responsive-page="about"] :is(#intro, #story) {
        grid-template-rows: auto minmax(0, 1fr);
    }

    html body.wy-responsive[data-responsive-page="about"] #intro> :is(.about-section__head, .about-section__copy) {
        grid-column: 1 / 6 !important;
    }

    html body.wy-responsive[data-responsive-page="about"] #intro>.about-section__head,
    html body.wy-responsive[data-responsive-page="about"] #story>.about-section__head {
        grid-row: 1 !important;
    }

    html body.wy-responsive[data-responsive-page="about"] #intro>.about-section__copy,
    html body.wy-responsive[data-responsive-page="about"] #story>.about-section__copy {
        grid-row: 2 !important;
    }

    html body.wy-responsive[data-responsive-page="about"] #intro>.about-section__copy {
        align-self: stretch;
    }

    html body.wy-responsive[data-responsive-page="about"] #intro>.about-section__media {
        grid-column: 7 / 13 !important;
        grid-row: 1 / 3 !important;
    }

    html body.wy-responsive[data-responsive-page="about"] #story> :is(.about-section__head, .about-section__copy) {
        grid-column: 8 / 13 !important;
    }

    html body.wy-responsive[data-responsive-page="about"] #story>.about-section__media {
        grid-column: 1 / 7 !important;
        grid-row: 1 / 3 !important;
    }

    html body.wy-responsive[data-responsive-page="about"] :is(#intro, #story)>.about-section__media {
        height: 652px;
        aspect-ratio: auto;
    }
}

@media(max-width:1199px) {
    html body.wy-responsive[data-responsive-page="about"] .about-section {
        row-gap: var(--wy-s6);
    }

    html body.wy-responsive[data-responsive-page="about"] .about-section>.cell {
        grid-column: 1 / -1 !important;
        grid-row: auto !important;
    }
}

/* Global Presence follows the shared left-copy / right-media 5 + 1 + 6 grid.
   DOM order is heading/address content, then image, also on stacked screens.
   The original panorama is cropped in CSS; the square keeps its central
   Shanghai / Guangzhou / Shenzhen / Sydney markers and removes both edges. */
html body.wy-responsive[data-responsive-page="about"] #global {
    grid-template-rows: auto;
    align-items: center !important;
}

html body.wy-responsive[data-responsive-page="about"] #global>.about-global__media {
    position: relative;
    aspect-ratio: 1;
    height: auto;
    min-height: 0;
    align-self: center;
    border-radius: var(--wy-r-2xl);
    overflow: hidden;
}

html body.wy-responsive[data-responsive-page="about"] #global .map img {
    object-fit: cover;
    object-position: center;
}

html body.wy-responsive[data-responsive-page="about"] #global>.about-global__content {
    gap: var(--wy-s7);
    align-self: center;
}

html body.wy-responsive[data-responsive-page="about"] #global .addr {
    display: grid;
    gap: var(--wy-s5);
    margin: 0;
    border: 0;
}

html body.wy-responsive[data-responsive-page="about"] #global .addr li {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--wy-s2);
    padding: 0;
    border: 0;
}

html body.wy-responsive[data-responsive-page="about"] #global .addr .h4 {
    margin: 0;
}

html body.wy-responsive[data-responsive-page="about"] #global .addr li>span {
    font-size: var(--wy-fs-small);
    line-height: var(--wy-lh-body);
}

/* The line-break utility inserts spans inside headings. Legacy address-span
   styles must not turn those heading fragments back into small body text. */
html body.wy-responsive[data-responsive-page="about"] #global .addr .h4 span {
    font-size: inherit;
    line-height: inherit;
    color: inherit !important;
}

@media(min-width:1024px) {
    html body.wy-responsive[data-responsive-page="about"] #global>.about-global__media {
        grid-column: 7 / 13 !important;
        grid-row: 1 !important;
    }

    html body.wy-responsive[data-responsive-page="about"] #global>.about-global__content {
        grid-column: 1 / 6 !important;
        grid-row: 1 !important;
    }
}

@media(max-width:1023px) {
    html body.wy-responsive[data-responsive-page="about"] #global>.about-global__content {
        gap: var(--wy-s6);
    }
}

/* 2026-10-16: restore the approved fan cards: original artwork,
   rotation, overlap and 56px hover spread. Keep the original 4 + 8 grid.
   A full-width stack below 1200 follows the existing About row contract;
   tablet/phone cards reflow so the complete copy remains readable. */
html body.wy-responsive[data-responsive-page="about"] #values {
    container: about-values-layout / inline-size;
}

html body.wy-responsive[data-responsive-page="about"] #values .cell--fan {
    background: none;
    overflow: visible;
}

html body.wy-responsive[data-responsive-page="about"] #values .fcard__copy {
    min-width: 0;
}

/* User-requested top-left artwork: match the existing card copy inset.
   Render at 80% of the approved size: 1.35 -> 1.08, hover 1.5 -> 1.2. */
html body.wy-responsive[data-responsive-page="about"] #values .fcard__fig {
    top: var(--wy-s6);
    left: var(--wy-s6);
    right: auto;
    place-items: start;
}

html body.wy-responsive[data-responsive-page="about"] #values .fcard__fig .mvfig {
    transform-origin: top left;
    transform: scale(1.08);
}

html body.wy-responsive[data-responsive-page="about"] #values .fcard:hover .fcard__fig .mvfig {
    transform: scale(1.2) translateY(-6px);
}

/* Card tint is set by the Milestones surface below. Never desaturate the
   whole card on hover: its animated icons retain their original colors. */
html body.wy-responsive[data-responsive-page="about"] #values .fan:hover .fcard {
    filter: none;
}

/* The 480px-tall rotated cards plus the original 56px hover spread need
   clear space beside the title. Below a 1240px row budget reuse About's
   full-width heading/content layout and reserve space for both fan edges. */
@container about-values-layout (max-width:1240px) {
    @media(min-width:1024px) {
        html body.wy-responsive[data-responsive-page="about"] #values>.cell {
            grid-column: 1 / -1 !important;
        }

        html body.wy-responsive[data-responsive-page="about"] #values .fan {
            padding-inline: var(--wy-s8);
        }
    }
}

@media(min-width:1024px) {
    html body.wy-responsive[data-responsive-page="about"] #values .fan .fcard {
        min-height: 480px;
    }

    html body.wy-responsive[data-responsive-page="about"] #values .fan .fcard:focus-visible {
        z-index: 10;
        outline: 2px solid var(--wy-primary);
        outline-offset: 4px;
        filter: none;
        transform: rotate(0) translateY(-22px) scale(1.06);
    }

    html body.wy-responsive[data-responsive-page="about"] #values .fan .fcard:has(~ .fcard:focus-visible) {
        transform: rotate(var(--r)) translate(-56px, var(--y));
    }

    html body.wy-responsive[data-responsive-page="about"] #values .fan .fcard:focus-visible~.fcard {
        transform: rotate(var(--r)) translate(56px, var(--y));
    }
}

@media(max-width:1023px) {
    html body.wy-responsive[data-responsive-page="about"] #values .fan {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: var(--wy-s5) !important;
        padding: 0;
    }

    html body.wy-responsive[data-responsive-page="about"] #values .fan .fcard {
        width: auto !important;
        margin: 0 !important;
        min-width: 0;
        min-height: 360px;
        aspect-ratio: auto;
        transform: none !important;
    }
}

@media(max-width:767px) {
    html body.wy-responsive[data-responsive-page="about"] #values .fcard__fig {
        top: var(--wy-s5);
        left: var(--wy-s5);
    }

    html body.wy-responsive[data-responsive-page="about"] #values .fan {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

/* User-requested Partners stack: full-width heading, then centered ecosystem
   and awards groups. The centered eight-column desktop frame retains the
   approved logo/award sizing; DOM order stays heading, ecosystem, awards. */
html body.wy-responsive[data-responsive-page="about"] #partners {
    row-gap: var(--wy-s8) !important;
}

html body.wy-responsive[data-responsive-page="about"] #partners>.cell {
    grid-column: 1 / -1 !important;
    grid-row: auto;
    min-height: 0;
    padding: 0 !important;
}

html body.wy-responsive[data-responsive-page="about"] #partners>.cell--head .cell__h {
    margin-inline-end: 0;
}

html body.wy-responsive[data-responsive-page="about"] #partners .cell__sub {
    text-align: start;
}

/* Subheadings share the main heading's leading edge. Only the inner frames
   occupy the centered eight columns, preserving all logo/icon positions. */
html body.wy-responsive[data-responsive-page="about"] #partners> :is(.cell--logos, .cell--awards) {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: var(--wy-layout-gutter);
    row-gap: 0;
}

html body.wy-responsive[data-responsive-page="about"] #partners :is(.cell__sub, .about-partners__frame) {
    grid-column: 1 / -1;
    min-inline-size: 0;
}

@media(min-width:1200px) {
    html body.wy-responsive[data-responsive-page="about"] #partners .about-partners__frame {
        grid-column: 3 / 11;
    }
}

@media(max-width:1023px) {
    html body.wy-responsive[data-responsive-page="about"] #partners {
        row-gap: var(--wy-s7) !important;
    }
}

/* Keep six logos in 3 + 3 while capacity permits. Center incomplete rows,
   including the final Oracle tile after the wide Consent Manager lockup. */
html body.wy-responsive[data-responsive-page="about"] #partners .about-partners__logos {
    container: about-logos / inline-size;
}

html body.wy-responsive[data-responsive-page="about"] #partners .tiles {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--wy-s4) !important;
    inline-size: 100%;
}

html body.wy-responsive[data-responsive-page="about"] #partners .tile {
    flex: 0 1 calc((100% - 2 * var(--wy-s4)) / 3);
    min-inline-size: 0;
}

@container about-logos (max-width:631px) {
    html body.wy-responsive[data-responsive-page="about"] #partners .tile {
        flex-basis: calc((100% - var(--wy-s4)) / 2);
    }

    html body.wy-responsive[data-responsive-page="about"] #partners .tile--wide {
        flex-basis: 100%;
    }
}

@container about-logos (max-width:323px) {
    html body.wy-responsive[data-responsive-page="about"] #partners .tile {
        flex-basis: 100%;
    }
}

/* Preserve the approved icon-gap formula and 60% icon sizes; center the
   complete row without changing its internal spacing. Below the existing
   900px caption capacity, retain the original wrapping and center each row. */
html body.wy-responsive[data-responsive-page="about"] #partners .about-partners__awards {
    container: about-awards-layout / inline-size;
}

html body.wy-responsive[data-responsive-page="about"] #partners .awards3 {
    --award-icon-width: calc((min(100cqw, 640px) - 32px) * .2);
    --award-gap: calc((100cqw - 3 * var(--award-icon-width)) / 4);
    display: grid;
    grid-template-columns: repeat(3, var(--award-icon-width)) !important;
    column-gap: var(--award-gap) !important;
    row-gap: var(--wy-s5) !important;
    justify-content: center;
    width: 100%;
    max-width: none;
}

html body.wy-responsive[data-responsive-page="about"] #partners .awards3__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: var(--award-icon-width);
    min-width: 0;
    max-inline-size: 100%;
    justify-self: center;
}

html body.wy-responsive[data-responsive-page="about"] #partners .awards3 img {
    display: block;
    width: var(--award-icon-width);
    height: auto;
    border-radius: 0;
}

html body.wy-responsive[data-responsive-page="about"] #partners .awards3__caption {
    width: max-content;
    max-width: none;
    margin: var(--wy-s4) 0 0;
    font-family: var(--wy-font-cn);
    font-size: var(--wy-fs-body) !important;
    font-weight: 400;
    line-height: var(--wy-lh-body) !important;
    letter-spacing: normal;
    color: var(--wy-g700);
    text-align: center;
}

html body.wy-responsive[data-responsive-page="about"] #partners .awards3__caption--single-line {
    white-space: nowrap;
}

@container about-awards-layout (width < 900px) {
    html body.wy-responsive[data-responsive-page="about"] #partners .awards3 {
        display: flex;
        flex-wrap: wrap;
        align-items: flex-start;
    }

    html body.wy-responsive[data-responsive-page="about"] #partners .awards3__item {
        width: max-content;
        min-width: var(--award-icon-width);
    }
}

/* 2026-10-16: Our Values shares the approved Milestones pale purple/blue
   surface (from Consumer Insights KEY CHALLENGES). Mix only the background
   colors with white; keep the fan's artwork, shadows and hover geometry. */
html body.wy-responsive[data-responsive-page="about"] #values .fcard,
html body.wy-responsive[data-responsive-page="about"] #history .ycard {
    background-color: var(--wy-g25);
    background-image:
        radial-gradient(110% 95% at 0% 0%, color-mix(in srgb, var(--wy-g0) 88%, transparent), transparent 72%),
        linear-gradient(135deg,
            color-mix(in srgb, var(--wy-primary-subtle) 62%, var(--wy-g0)),
            color-mix(in srgb, var(--wy-blue-subtle) 68%, var(--wy-g0)));
}

/* Keep the history typography, intrinsic content height, carousel and edge. */
html body.wy-responsive[data-responsive-page="about"] #history .ycard {
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--wy-primary) 7%, transparent),
        inset 0 2px 0 color-mix(in srgb, var(--wy-g0) 70%, transparent) !important;
}

/* User-approved Milestones control layout: center the progress track on the
   full card viewport; keep the existing 44px arrow pair at the right edge. */
html body.wy-responsive[data-responsive-page="about"] #histRail .railnav {
    position: relative;
}

html body.wy-responsive[data-responsive-page="about"] #histRail .wyprog {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    margin: 0;
    max-width: min(40%, calc(100% - 2 * (88px + var(--wy-s4))));
}

@media(min-width:768px) {
    html body.wy-responsive[data-responsive-page="about"] #top.pghero--hero {
        height: auto !important;
        min-height: clamp(560px, calc(100svh - 320px), 760px);
        padding-block: var(--wy-layout-header, 56px);
    }
}

/* Contact is a form stage, not a banner. Keep its reviewed 576px card and
   960px column cap; native viewport height permits complete fields and errors. */
html body.wy-responsive[data-responsive-page="contact"] .contact-stage {
    min-height: 100svh;
}

@media(min-width:1024px) {
    html body.wy-responsive[data-responsive-page="contact"] .contact-title {
        font-size: 56px;
    }
}

/* Home: freeze the existing Hero's local geometry, backgrounds and animation.
   This is an explicit compatibility boundary; the page itself has zoom:1. */
html body.wy-responsive[data-responsive-page="index"] #top.hero {
    zoom: var(--wy-home-hero-zoom, 1);
    width: 100%;
    --wy-vw: calc(1vw / var(--wy-home-hero-zoom, 1));
    --wy-vh: calc(1vh / var(--wy-home-hero-zoom, 1));
}

@media(min-width:1024px) {
    html body.wy-responsive[data-responsive-page="index"] #top .hero__sub {
        font-size: var(--wy-fs-h3) !important;
    }
    html body.wy-responsive[data-responsive-page="index"] #top .hero__actions .btn {
        font-size: calc(var(--wy-fs-small) / var(--wy-home-hero-zoom, 1));
    }
}

@media(min-width:1024px) and (max-width:1199px) {
    html body.wy-responsive[data-responsive-page="index"] #top.hero {
        --wy-nav-h: 64px;
    }
}

/* Home CASES rounded top · 2026-10-28 user direction after section reorder.
   Reuse the existing stacked-panel radius and overlap so the white corners
   reveal the preceding Agent background on desktop, tablet and mobile. */
html body.wy-responsive[data-responsive-page="index"] #cases.fill-cases--story {
    position: relative;
    z-index: 2;
    margin-block-start: calc(-1 * var(--stack-r));
    border-radius: var(--stack-r) var(--stack-r) 0 0;
    background: var(--wy-g0);
}

/* Home WHY WUYUE spacing · 2026-10-28 screenshot review after reordering.
   White-to-white sections no longer overlap. Markup uses the shared 72/136
   budgets: at 1920 the trailing 136 includes the tail's 40px overlap,
   leaving 96px below the copy. Header/list gaps reuse the existing tokens. */
html body.wy-responsive[data-responsive-page="index"] #why {
    margin-block-start: 0;
}

html body.wy-responsive[data-responsive-page="index"] #why .why__grid {
    row-gap: var(--wy-gap-head);
}

html body.wy-responsive[data-responsive-page="index"] #why #whyc .whys3 {
    row-gap: var(--wy-s7);
}

/* Global Site WHY WUYUE · 2026-10-28 user-requested partial rollback.
   Restore the previous content/layout; retain the existing responsive
   backgrounds and the approved removal of this section's rounded corners. */
html body.wy-responsive[data-responsive-page="solution-global-site"] #adv.why-wuyue--brand-highlight {
    border-radius: 0;
}

/* Global Site M02 · 2026-10-28 visual correction after screenshot feedback.
   The deck already has a spacious caption. Its handoff to SERVICES uses
   48 + 48px, rather than the remaining 96 + 96px stack; phones use 32 + 32.
   These local budgets leave the deck, its shadow and the other sections intact.
   Keep this content panel independent of the old viewport-height floor. */
html body.wy-responsive[data-responsive-page="solution-global-site"] #solutions .sol__panel {
    min-height: 0;
    padding-block-end: var(--wy-s7);
}

html body.wy-responsive[data-responsive-page="solution-global-site"] #services {
    padding-block-start: var(--wy-s7);
}

@media(max-width:767px) {
    html body.wy-responsive[data-responsive-page="solution-global-site"] #solutions .sol__panel {
        padding-block-end: var(--wy-s6);
    }

    html body.wy-responsive[data-responsive-page="solution-global-site"] #services {
        padding-block-start: var(--wy-s6) !important;
    }
}

/* Home layout wrappers and the matching Global Site PLATFORM card track.
   User-confirmed 2026-10-26: both decks share the 1776/32 content contract. */
@media(min-width:768px) {

    html body.wy-responsive[data-responsive-page="index"] :is(#solutions .sol__inner, #agents .agt__wide, #why .why__grid, #cases .railwrap),
    html body.wy-responsive[data-responsive-page="solution-global-site"] #solutions .sol__inner,
    html body.wy-responsive[data-responsive-page="aep"] .hero__inner {
        width: calc(100% - 2 * var(--wy-layout-margin)) !important;
        max-width: 1776px !important;
        margin-inline: auto;
        padding-inline: 32px !important;
        min-width: 0;
    }
}

@media(min-width:1024px) {
    html body.wy-responsive[data-responsive-page="index"] #agents .agt__row {
        grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
        column-gap: var(--wy-layout-gutter) !important;
    }

    html body.wy-responsive[data-responsive-page="index"] #agents .agt__row>.card--big {
        grid-column: 1/8;
        grid-row: 1;
    }

    html body.wy-responsive[data-responsive-page="index"] #agents .agt__row>.agt__col {
        grid-column: 8/13;
        grid-row: 1;
    }

    html body.wy-responsive[data-responsive-page="index"] #agents .agt__row--flip>.agt__col {
        grid-column: 1/6;
    }

    html body.wy-responsive[data-responsive-page="index"] #agents .agt__row--flip>.card--big {
        grid-column: 6/13;
    }
}

/* Home's existing tablet/mobile swipe track remains a full-width track. */
@media(min-width:768px) and (max-width:1023px) {
    html body.wy-responsive[data-responsive-page="index"] #agents .agt__wide {
        width: 100% !important;
        padding-inline: 24px !important;
    }
}

/* Home / Global Site control foundation. Retained for existing review previews;
   formal controls opt into the approved shared segment appearance below. */
html body.wy-responsive:is([data-responsive-page="index"], [data-responsive-page="solution-global-site"]) #solutions .sec-head {
    margin-bottom: var(--wy-s7);
}

html body.wy-responsive:is([data-responsive-page="index"], [data-responsive-page="solution-global-site"]) #solutions .sol__grid {
    margin-top: 0;
}

html body.wy-responsive:is([data-responsive-page="index"], [data-responsive-page="solution-global-site"]) #solutions .dots {
    display: flex;
    position: relative;
    left: auto;
    /* Keep hover paint on the capsule's layer, separate from the glass UI cards. */
    transform: translateZ(0);
    isolation: isolate;
    contain: paint;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 0;
    width: max-content;
    max-width: 100%;
    margin: 0 auto var(--wy-s7);
    padding: var(--wy-s1) !important;
    border: 1px solid var(--wy-g100);
    border-radius: var(--wy-r-full);
    background: var(--wy-g25);
    box-shadow: none;
    overflow-x: auto;
    scrollbar-width: none;
    scroll-padding-inline: var(--wy-s1);
}

html body.wy-responsive:is([data-responsive-page="index"], [data-responsive-page="solution-global-site"]) #solutions .dots::-webkit-scrollbar {
    display: none !important;
}

html body.wy-responsive:is([data-responsive-page="index"], [data-responsive-page="solution-global-site"]) #solutions .dots button {
    width: auto;
    height: 44px;
    padding: 0 var(--wy-s5);
    border: 1px solid transparent;
    border-radius: var(--wy-r-full);
    background: transparent;
    color: var(--wy-g600);
    font-size: var(--wy-fs-small);
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
    overflow: visible;
    box-shadow: none;
    -webkit-tap-highlight-color: transparent;
    transition: color 150ms var(--wy-ease), background-color 150ms var(--wy-ease), border-color 150ms var(--wy-ease);
}

html body.wy-responsive:is([data-responsive-page="index"], [data-responsive-page="solution-global-site"]) #solutions .dots button::before,
html body.wy-responsive:is([data-responsive-page="index"], [data-responsive-page="solution-global-site"]) #solutions .dots button::after {
    display: none !important;
    animation: none !important;
}

html body.wy-responsive:is([data-responsive-page="index"], [data-responsive-page="solution-global-site"]) #solutions .dots button.is-cur {
    border-color: var(--wy-g100);
    background: var(--wy-g0);
    color: var(--wy-primary);
}

html body.wy-responsive:is([data-responsive-page="index"], [data-responsive-page="solution-global-site"]) #solutions .dots button:focus-visible {
    outline: 2px solid var(--wy-primary);
    outline-offset: 1px;
}

@media(hover:hover) {
    html body.wy-responsive:is([data-responsive-page="index"], [data-responsive-page="solution-global-site"]) #solutions .dots button:hover:not(.is-cur) {
        background: var(--wy-g25);
        color: var(--wy-ink);
    }
}

@media(max-width:767px) {
    html body.wy-responsive:is([data-responsive-page="index"], [data-responsive-page="solution-global-site"]) #solutions .sec-head {
        margin-bottom: var(--wy-s6);
    }

    html body.wy-responsive:is([data-responsive-page="index"], [data-responsive-page="solution-global-site"]) #solutions .dots {
        margin-bottom: var(--wy-s6);
    }

    html body.wy-responsive:is([data-responsive-page="index"], [data-responsive-page="solution-global-site"]) #solutions .dots button {
        padding-inline: var(--wy-s4);
    }
}

@media(prefers-reduced-motion:reduce) {
    html body.wy-responsive:is([data-responsive-page="index"], [data-responsive-page="solution-global-site"]) #solutions .dots {
        scroll-behavior: auto;
    }

    html body.wy-responsive:is([data-responsive-page="index"], [data-responsive-page="solution-global-site"]) #solutions .dots button {
        transition: none;
    }
}

/* Shared text tabs · 2026-10-23 user-approved homepage preview.
   Pale neutral rail, white selected segment, ink labels and a small shadow.
   Explicit opt-in covers Home / Global Site, Global Ops, Adobe and AWS.
   Preserve each host's orientation, type size, content and carousel/panel owner. */
html body.wy-responsive[data-responsive-page] :is(#solutions, #services, #aem, #aws-core) .wy-segments {
    min-width: 0;
    gap: var(--wy-s1);
    padding: var(--wy-s1) !important;
    border: 0;
    border-radius: var(--wy-r-btn);
    background: var(--wy-g25);
    box-shadow: none;
    scroll-padding-inline: var(--wy-s1);
    scrollbar-width: none;
}

html body.wy-responsive[data-responsive-page] :is(#solutions, #services, #aem, #aws-core) .wy-segments::-webkit-scrollbar {
    display: none;
}

html body.wy-responsive[data-responsive-page] :is(#solutions, #services, #aem, #aws-core) .wy-segments>button {
    min-height: 44px;
    border: 0;
    border-radius: var(--wy-r-sm);
    background: transparent;
    color: var(--wy-g600);
    font-weight: 400;
    box-shadow: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: color 150ms var(--wy-ease), background-color 150ms var(--wy-ease), box-shadow 150ms var(--wy-ease);
}

html body.wy-responsive[data-responsive-page] :is(#solutions, #services, #aem, #aws-core) .wy-segments>button:is(.is-cur, [aria-selected="true"]) {
    background: var(--wy-g0);
    color: var(--wy-ink);
    box-shadow: 0 1px 4px #16161b12;
}

html body.wy-responsive[data-responsive-page] :is(#solutions, #services, #aem, #aws-core) .wy-segments>button::before,
html body.wy-responsive[data-responsive-page] :is(#solutions, #services, #aem, #aws-core) .wy-segments>button::after {
    display: none !important;
    animation: none !important;
}

html body.wy-responsive[data-responsive-page] :is(#solutions, #services, #aem, #aws-core) .wy-segments>button :is(.h3, .ops-services__tab-title) {
    color: inherit !important;
    font-weight: 400 !important;
}

html body.wy-responsive[data-responsive-page] :is(#solutions, #services, #aem, #aws-core) .wy-segments>button:focus-visible {
    outline: 2px solid var(--wy-primary);
    outline-offset: -2px;
}

@media(hover:hover) and (pointer:fine) {
    html body.wy-responsive[data-responsive-page] :is(#solutions, #services, #aem, #aws-core) .wy-segments>button:hover:not(.is-cur):not([aria-selected="true"]) {
        background: transparent;
        color: var(--wy-ink);
    }
}

/* Keep the reviewed compact Home / Global Site segment dimensions. */
html body.wy-responsive:is([data-responsive-page="index"], [data-responsive-page="solution-global-site"]) #solutions .dots.wy-segments>button {
    height: 44px;
    padding: var(--wy-s2) var(--wy-s4);
}

html body.wy-responsive:is([data-responsive-page="index"], [data-responsive-page="solution-global-site"]) #solutions .dots.wy-segments>button:focus-visible {
    outline-offset: 1px;
}

/* The SERVICES list remains vertical with its existing descriptions; phones
   retain the existing horizontal rail. Artwork and icon dimensions are untouched. */
html body.wy-responsive[data-responsive-page="solution-global-ops"] #services .ops-services__tabs.wy-segments>button {
    padding: var(--wy-s4) var(--wy-s5);
}

@media(max-width:767px) {
    html body.wy-responsive[data-responsive-page="solution-global-ops"] #services .ops-services__tabs.wy-segments>button {
        padding: var(--wy-s2) var(--wy-s4);
    }
}

@media(prefers-reduced-motion:reduce) {
    html body.wy-responsive[data-responsive-page] :is(#solutions, #services, #aem, #aws-core) .wy-segments {
        scroll-behavior: auto;
    }

    html body.wy-responsive[data-responsive-page] :is(#solutions, #services, #aem, #aws-core) .wy-segments>button {
        transition: none;
    }
}

/* AEP has a reviewed 888px hero at 1920x1080. Absolute slides retain their
   original centring; only the viewport's minimum budget grows with real copy. */
html body.wy-responsive[data-responsive-page="aep"] #top .hero__viewport {
    min-height: max(340px, var(--wy-aep-copy-budget, 420px));
}

@media(min-width:768px) {
    html body.wy-responsive[data-responsive-page="aep"] #top.hero {
        height: auto;
        min-height: clamp(560px, calc(100svh - 192px), 888px);
    }

    html body.wy-responsive[data-responsive-page="aep"] #top .hero__viewport {
        min-height: max(420px, var(--wy-aep-copy-budget, 420px));
    }
}

@media(min-width:1024px) {
    html body.wy-responsive[data-responsive-page="aep"] #top .display {
        font-size: 72px !important;
    }
}

/* AEP input/output capacity: 320px input + 600px output + 24px gap.
   UI internals keep the existing sizing and narrative controller. */
html body.wy-responsive[data-responsive-page="aep"] #agents>.container {
    container-type: inline-size;
    container-name: wy-aep-agents;
}

@media(min-width:1024px) {
    html body.wy-responsive[data-responsive-page="aep"] .agt-stage {
        grid-template-columns: minmax(320px, .86fr) minmax(600px, 1.62fr);
    }

    html body.wy-responsive[data-responsive-page="aep"] .aview {
        height: 440px;
    }
}

@media(min-width:1024px) and (prefers-reduced-motion:no-preference) {
    html body.wy-responsive[data-responsive-page="aep"] .agt-pin {
        position: sticky;
    }
}

@container wy-aep-agents (max-width:943px) {
    html body.wy-responsive[data-responsive-page="aep"] .agt-stage {
        grid-template-columns: minmax(0, 1fr);
    }

    html body.wy-responsive[data-responsive-page="aep"] .agt-pin {
        position: static;
    }

    html body.wy-responsive[data-responsive-page="aep"] .aview {
        height: 400px;
    }
}

/* 2026-10-15: approved 18px Hero/Banner descriptions; balance automatic
   wrapping so shorter copy does not end with a few isolated characters. */
html body.wy-responsive[data-responsive-page] #top :is(.hero__sub, .shv1__sub, .shx3__sub) {
    font-size: 18px !important;
    text-wrap: balance;
}

/* Join · 2026-10-15: WHO WE LOOK FOR uses the approved Consumer Insights
   WHY WUYUE (consumer-insights.css + consumer-insights-refinement.css).
   Keep its diffuse brand field, title and spacing. User-approved refinement:
   title + two columns of reasons share the container's three 4-column groups;
   the four reasons read as two rows. Tablet stacks the title, mobile the list.
   User refinement: native emoji in the existing icon footprint; English H3
   above Chinese body copy, using the shared type scale and font family. */
html body.wy-responsive[data-responsive-page="join"] #who-we-look-for {
    background-color: var(--wy-g0);
    background-image:
        linear-gradient(180deg, var(--wy-g0), transparent 16%, transparent 84%, var(--wy-g0)),
        radial-gradient(ellipse 80% 120% at 12% 45%,
            color-mix(in srgb, var(--wy-primary-subtle) 72%, transparent), transparent 78%),
        radial-gradient(ellipse 85% 130% at 92% 58%,
            color-mix(in srgb, var(--wy-blue-subtle) 66%, transparent), transparent 80%);
}

html body.wy-responsive[data-responsive-page="join"] .join-fit .ci-why-layout {
    container-type: inline-size;
    container-name: join-fit-layout;
    display: grid;
    grid-template-columns: repeat(var(--wy-cols), minmax(0, 1fr));
    gap: var(--wy-s7) var(--wy-col-gap);
    align-items: start;
}

html body.wy-responsive[data-responsive-page="join"] .join-fit .sec-head {
    grid-column: 1/5;
    margin: 0;
    min-width: 0;
}

html body.wy-responsive[data-responsive-page="join"] #who-title {
    margin: 0;
    font-size: var(--wy-fs-mega);
    white-space: nowrap;
}

html body.wy-responsive[data-responsive-page="join"] .join-fit .ci-why-emphasis {
    color: var(--wy-ink);
}

html body.wy-responsive[data-responsive-page="join"] .join-fit .ci-reasons {
    grid-column: 5/13;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--wy-s7) var(--wy-col-gap);
    min-width: 0;
}

html body.wy-responsive[data-responsive-page="join"] .join-fit .ci-reasons>article {
    display: grid;
    grid-template-columns: calc(var(--wy-fs-h3) * 1.4) minmax(0, 1fr);
    gap: var(--wy-s6);
    align-items: start;
    min-width: 0;
}

html body.wy-responsive[data-responsive-page="join"] .join-fit .join-fit__emoji {
    display: grid;
    place-items: center;
    width: calc(var(--wy-fs-h3) * 1.4);
    height: calc(var(--wy-fs-h3) * 1.4);
    font-size: calc(var(--wy-fs-h3) * 1.4);
    line-height: 1;
    margin-top: var(--wy-s1);
}

html body.wy-responsive[data-responsive-page="join"] .join-fit .join-fit__copy {
    min-width: 0;
}

html body.wy-responsive[data-responsive-page="join"] .join-fit .h3 {
    margin: 0;
    min-width: 0;
}

html body.wy-responsive[data-responsive-page="join"] #who-we-look-for .h3 {
    letter-spacing: normal !important;
}

html body.wy-responsive[data-responsive-page="join"] .join-fit .body {
    margin: var(--wy-s2) 0 0;
}

@media(min-width:1024px) {

    /* Same desktop H3 application as the reference #whyg, including compact desktop. */
    html body.wy-responsive[data-responsive-page="join"] #who-we-look-for .h3 {
        font-size: 24px !important;
    }
}

/* The 7-character heading stays on one line. Below the three-column
   capacity (348px title plus two equal tracks and gutters), put it above
   the two-column list; keep the shared font size and container intact. */
@container join-fit-layout (max-width:1120px) {

    html body.wy-responsive[data-responsive-page="join"] .join-fit .sec-head,
    html body.wy-responsive[data-responsive-page="join"] .join-fit .ci-reasons {
        grid-column: 1/-1;
    }
}

@media(max-width:1023px) {
    html body.wy-responsive[data-responsive-page="join"] .join-fit .ci-why-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--wy-s7);
    }

    html body.wy-responsive[data-responsive-page="join"] .join-fit .sec-head,
    html body.wy-responsive[data-responsive-page="join"] .join-fit .ci-reasons {
        grid-column: 1;
    }
}

@media(max-width:767px) {
    html body.wy-responsive[data-responsive-page="join"] #who-we-look-for {
        padding-block: var(--wy-s8) !important;
    }

    html body.wy-responsive[data-responsive-page="join"] .join-fit .ci-why-layout {
        gap: var(--wy-s6);
    }

    /* M04: the 32px grid gap already separates this heading from the list. */
    html body.wy-responsive[data-responsive-page="join"] .join-fit .sec-head {
        margin-bottom: 0 !important;
    }

    html body.wy-responsive[data-responsive-page="join"] .join-fit .ci-reasons {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--wy-s6);
    }

    html body.wy-responsive[data-responsive-page="join"] .join-fit .ci-reasons>article {
        gap: var(--wy-s5);
    }
}

/* Industry + company articles · 2026-10-15 user-approved reading layout:
   center the guide + prose as one group, replace the empty grid column with
   the shared gutter, and keep the cover / inline media at the 40-character
   prose measure. Company articles retain their breadcrumb / back navigation.
   The shared page container and type scale stay authoritative. */
body:is([data-responsive-page="industry-article"], [data-responsive-page="company-article"]) .ie-story__layout {
    --ie-reading-width: calc(40 * var(--wy-fs-body));
    --ie-toc-width: calc(14 * var(--wy-fs-body));
    max-width: var(--ie-reading-width);
    margin-inline: auto;
}

@media(min-width:1024px) {
    body:is([data-responsive-page="industry-article"], [data-responsive-page="company-article"]) .ie-story__layout {
        max-width: calc(var(--ie-toc-width) + var(--wy-layout-gutter) + var(--ie-reading-width));
        grid-template-columns: var(--ie-toc-width) minmax(0, 1fr);
    }

    body:is([data-responsive-page="industry-article"], [data-responsive-page="company-article"]) :is(.ie-story__header, .ie-story__body) {
        grid-column: 2;
    }

    body:is([data-responsive-page="industry-article"], [data-responsive-page="company-article"]) .ie-toc {
        grid-column: 1;
    }
}

/* GEO · 2026-10-15: retain the approved Consumer Insights brand field.
   User-requested layout matches the current Global Ops three-part design:
   content-sized title, two equal benefit columns, and identical gutters.
   Preserve GEO's four reasons/icons and the original title emphasis. */
html body.wy-responsive[data-responsive-page="solution-geo-seo"] #whyg {
    background-color: var(--wy-g0);
    background-image:
        linear-gradient(180deg, var(--wy-g0), transparent 16%, transparent 84%, var(--wy-g0)),
        radial-gradient(ellipse 80% 120% at 12% 45%,
            color-mix(in srgb, var(--wy-primary-subtle) 72%, transparent), transparent 78%),
        radial-gradient(ellipse 85% 130% at 92% 58%,
            color-mix(in srgb, var(--wy-blue-subtle) 66%, transparent), transparent 80%);
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] #whyg .ci-why-layout {
    container: geo-why-layout / inline-size;
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr) !important;
    gap: var(--wy-s7) var(--wy-layout-gutter);
    align-items: start;
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] #whyg .ci-why-layout>.sec-head {
    grid-column: 1;
    margin: 0;
    min-width: 0;
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] #whyg .h1 {
    margin: 0;
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] .ci-why-emphasis {
    color: var(--wy-primary);
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] .ci-reasons {
    grid-column: 2;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--wy-s7) var(--wy-layout-gutter);
    min-width: 0;
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] .ci-reasons>article {
    display: grid;
    grid-template-columns: calc(var(--wy-fs-h3) * 1.4) minmax(0, 1fr);
    gap: var(--wy-s6);
    align-items: start;
    min-width: 0;
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] .geo-choice-icon {
    display: block;
    width: calc(var(--wy-fs-h3) * 1.4);
    height: calc(var(--wy-fs-h3) * 1.4);
    color: var(--wy-primary);
    margin-top: var(--wy-s1);
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] .ci-reasons .h3 {
    margin: 0;
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] .ci-reasons>article>div {
    min-width: 0;
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] .ci-reasons .body {
    margin: var(--wy-s2) 0 0;
    max-width: 100%;
}

@container geo-why-layout (max-width:1120px) {

    html body.wy-responsive[data-responsive-page="solution-geo-seo"] #whyg .ci-why-layout>.sec-head,
    html body.wy-responsive[data-responsive-page="solution-geo-seo"] #whyg .ci-reasons {
        grid-column: 1/-1;
    }
}

@media(max-width:1023px) {
    html body.wy-responsive[data-responsive-page="solution-geo-seo"] #whyg .ci-why-layout {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    html body.wy-responsive[data-responsive-page="solution-geo-seo"] #whyg .ci-why-layout>.sec-head,
    html body.wy-responsive[data-responsive-page="solution-geo-seo"] .ci-reasons {
        grid-column: 1;
    }
}

@media(max-width:767px) {
    html body.wy-responsive[data-responsive-page="solution-geo-seo"] #whyg {
        padding-block: var(--wy-s8) !important;
    }

    html body.wy-responsive[data-responsive-page="solution-geo-seo"] #whyg .ci-why-layout {
        row-gap: var(--wy-s6);
    }

    html body.wy-responsive[data-responsive-page="solution-geo-seo"] .ci-reasons {
        grid-template-columns: minmax(0, 1fr);
        row-gap: var(--wy-s6);
    }

    html body.wy-responsive[data-responsive-page="solution-geo-seo"] .ci-reasons>article {
        gap: var(--wy-s5);
    }
}

/* 2026-10-16 homepage: preserve the approved 15-logo order, optical sizes
   and full-bleed layout. One row needs 15 x 80px; below that capacity,
   center both rows (8 + 7) and let the wall grow in normal document flow.
   An 80px row + 48px gap places row two below the frozen Hero's first-screen
   budget; mobile uses 64px + 24px for its existing 80px logo allowance. */
/* Join the Hero backdrop to the white logo wall without changing either box.
   Cover only the bottom edge, including fractional pixels from local Hero zoom. */
html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #top.hero::after {
    content: "";
    position: absolute;
    inset-inline: 0;
    bottom: 0;
    height: 2px;
    background: var(--wy-g0);
    z-index: 2;
    pointer-events: none;
}

html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients .clients-bleed {
    padding-inline: clamp(var(--wy-s4), 1.666667vw, var(--wy-s6));
    container: wy-static-logos / inline-size;
}

html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients {
    height: auto !important;
}

html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients .clients--static {
    --logo-row-height: 80px;
    --logo-row-gap: var(--wy-s7);
    width: 100%;
    height: var(--logo-row-height);
}

html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients .clients__static-grid {
    --logo-unit: min(.57px, calc(100cqw / 3300));
    display: grid;
    grid-template-columns: repeat(15, minmax(0, 1fr));
    grid-template-rows: 1fr;
    height: 100%;
    list-style: none;
    margin: 0;
    padding: 0;
}

html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients .clients__static-grid .clients__item {
    min-width: 0;
    height: auto;
    padding: 0;
}

html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients .clients--static .clients__logo {
    width: calc(var(--logo-width) * var(--logo-unit));
    height: auto;
    max-width: 100%;
    filter: none;
    opacity: 1;
    transition: none;
}

/* Use the same slot width on both rows; flex centering shares the spare
   half-slot equally at both ends of the shorter row, preserving DOM order.
   The wall reserves both rows so the following section cannot overlap. */
@container wy-static-logos (max-width:1199px) {
    html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients .clients--static {
        height: auto;
    }

    html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients .clients__static-grid {
        --logo-unit: min(.74px, calc(100cqw / 1800));
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        height: auto;
        row-gap: var(--logo-row-gap);
    }

    html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients .clients__static-grid .clients__item {
        flex: 0 0 12.5%;
        height: var(--logo-row-height);
    }
}

@media (max-width:767px) {
    html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients {
        padding-block: var(--wy-s2) !important;
    }

    html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients .clients--static {
        --logo-row-height: 64px;
        --logo-row-gap: var(--wy-s5);
    }
}

/* 2026-10-21 · 首页客户 Logo 墙，用户已审阅 V7。
   设计依据：1920 光学校准尺寸，超宽仅扩大间距；窄屏适度缩小后始终单行，
   每 7 秒以 150ms 原地交叉淡入淡出替换下一组。只匹配首页 data-logo-flow。 */
html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients [data-logo-flow] {
    --logo-scale: 1;
    --logo-gap: 37.1182235496px;
    --logo-edge-trim: 0px;
    height: 80px;
    max-width: none;
    margin-inline: auto;
}

#clients [data-logo-flow] .clients__flow-viewport {
    position: relative;
    height: 80px;
    overflow: hidden;
    margin-inline: auto;
}

#clients [data-logo-flow] :is(.clients__flow-track, .clients__flow-snapshot) {
    display: flex;
    flex-wrap: nowrap;
    list-style: none;
    width: max-content;
    height: 80px;
    margin: 0;
    padding: 0;
    gap: 0;
    transform: translate3d(calc(-1 * var(--logo-edge-trim)), 0, 0);
    background: #fff;
}

#clients [data-logo-flow] .clients__flow-track {
    position: relative;
    z-index: 2;
}

#clients [data-logo-flow] .clients__flow-snapshot {
    position: absolute;
    inset: 0 auto auto 0;
    z-index: 1;
    pointer-events: none;
}

html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients [data-logo-flow] :is(.clients__flow-track, .clients__flow-snapshot, .clients__static-grid) .clients__item {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc((var(--logo-art-width) + var(--logo-gap)) * var(--logo-scale));
    flex: 0 0 calc((var(--logo-art-width) + var(--logo-gap)) * var(--logo-scale));
    height: 80px;
    min-width: 0;
    padding: 0;
}

#clients [data-logo-flow] :is(.clients__flow-track, .clients__flow-snapshot)>.clients__item {
    opacity: 0;
}

#clients [data-logo-flow] :is(.clients__flow-track, .clients__flow-snapshot)>.is-visible {
    opacity: 1;
}

#clients [data-logo-flow] .clients__logo-art {
    position: relative;
    display: block;
    flex: none;
    width: calc(var(--logo-art-width) * var(--logo-scale));
    height: calc(var(--logo-art-height) * var(--logo-scale));
    overflow: hidden;
}

html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients [data-logo-flow] .clients__logo {
    position: absolute;
    display: block;
    left: calc(var(--logo-offset-x) * var(--logo-scale));
    top: calc(var(--logo-offset-y) * var(--logo-scale));
    width: calc(var(--logo-full-width) * var(--logo-scale));
    max-width: none;
    height: auto;
    filter: none;
    opacity: 1;
    transition: none;
    flex: none;
}

#clients [data-logo-flow] .clients__flow-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

#clients [data-logo-flow]:focus-visible {
    outline: 2px solid var(--wy-primary);
    outline-offset: 4px;
}

html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients [data-logo-flow] .clients__static-grid {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    height: 80px;
    margin: 0;
    padding: 0;
    gap: 0;
    --logo-scale: .8;
}

@media (min-width:1920px) {
    html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients [data-logo-flow] .clients__static-grid {
        --logo-scale: 1;
    }
}

/* Reduced motion also bypasses Web Animations in logo-wall.js. */
@media (prefers-reduced-motion:reduce) {
    #clients [data-logo-flow] :is(.clients__flow-track, .clients__flow-snapshot) {
        animation: none;
        transition: none;
    }
}

/* 2026-10-22 AEP framework — supplied Doubao reference: one continuous
   title/workspace composition. Brand-colour light fields focus on the AI
   window; the shared container and typography remain authoritative.
   UI contract: native layout, 208px sidebar + flexible chat. At host <=943px
   the same sidebar becomes a disclosure; external copy never scales. */
html body.aep-framework .aep-icon-library {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}

html body.aep-framework .aep-experience {
    --aep-ui-reference: max(620px, calc(100svh - 396px));
    --aep-intro-clearance: 48px;
    position: relative;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    min-height: 100svh;
    padding: var(--wy-nav-h) 0 32px;
    background: var(--wy-g0);
}

html body.aep-framework .aep-experience>.container {
    display: flex;
    flex: 1;
    flex-direction: column;
}

html body.aep-framework #page>.tail {
    margin-top: 0;
}

/* 2026-10-22 banner refinement: replace the bounded ellipse with overlapping
   lilac/blue light fields that fade continuously into white. The full-bleed
   vector has no shaped edge; its colour focus remains around the AI window. */
html body.aep-framework .aep-lightfield {
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: var(--wy-g0) url("banners/aep/diffuse-blue-lilac.svg") center / 100% 100% no-repeat;
}

/* 2026-10-27 user alignment: center heading, description and button together
   between the navigation and AI window. Redistribute the existing clearance
   and slot inset equally; preserve the window position and content budget. */
html body.aep-framework .aep-intro {
    display: flex;
    flex: 1 0 auto;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 16px;
    margin-bottom: 0;
    padding-block: calc((var(--aep-intro-clearance) + 32px + var(--aep-ui-reference) * .1) / 2);
}

html body.aep-framework .aep-heading {
    max-width: 1200px;
    margin: 0;
    letter-spacing: normal !important;
    color: var(--wy-ink);
}

html body.aep-framework .aep-heading>span {
    display: block;
}

html body.aep-framework .aep-heading [lang="en"] {
    letter-spacing: normal !important;
}

html body.aep-framework .aep-description {
    font-size: 18px;
    line-height: 1.75;
    color: var(--wy-g700);
    max-width: var(--wy-measure);
    margin: 0;
    text-wrap: balance;
}

html body.aep-framework .aep-intro>.btn {
    margin-top: 0;
    padding: 0 12px 0 20px;
    gap: 8px;
}

html body.aep-framework .aep-icon {
    width: 20px;
    height: 20px;
    flex: none;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Preserve the reviewed UI content minima and window edges. The former
   upper 10% slot inset now belongs to the centered intro above. */
html body.aep-framework .aep-window-slot {
    --aep-orbit-cycle: calc(14s / 1.5);
    position: relative;
    isolation: isolate;
    display: flex;
    flex: none;
    flex-direction: column;
    justify-content: flex-end;
    min-height: calc(var(--aep-ui-reference) * .9);
    padding-block-start: 0;
    width: 100%;
    max-width: 1200px;
    margin-inline: auto;
}

/* 2026-10-22 banner: static dots frame the AI window, expanding in pitch
   and fading outward. Limit each field to the real side gutter so decoration
   cannot create page overflow; anchor height to the reviewed window budget. */
html body.aep-framework .aep-window-slot::before,
html body.aep-framework .aep-window-slot::after {
    content: "";
    position: absolute;
    z-index: -1;
    pointer-events: none;
    bottom: calc(var(--aep-ui-reference) * .9 * .08);
    height: calc(var(--aep-ui-reference) * .9 * .84);
    width: clamp(0px, calc((100vw - 100%) / 2 - 24px), 360px);
    background: linear-gradient(to left, rgba(130, 100, 201, .52), rgba(130, 100, 201, .4) 25%, rgba(130, 100, 201, .18) 60%, rgba(130, 100, 201, 0));
    -webkit-mask: url("banners/aep/dot-dispersion.svg") right center / 360px 100% no-repeat;
    mask: url("banners/aep/dot-dispersion.svg") right center / 360px 100% no-repeat;
}

html body.aep-framework .aep-window-slot::before {
    right: calc(100% + 16px);
}

html body.aep-framework .aep-window-slot::after {
    left: calc(100% + 16px);
    transform: scaleX(-1);
    background: linear-gradient(to left, rgba(110, 139, 255, .52), rgba(110, 139, 255, .4) 25%, rgba(110, 139, 255, .18) 60%, rgba(110, 139, 255, 0));
}

html body.aep-framework .aep-experience:has(.aep-window-slot.is-compact) {
    --aep-ui-reference: max(669px, calc(100svh - 396px));
}

/* 2026-10-23 user refinement: move the existing blue/lilac orbit from the
   AI window to the white input surface, halving its line from 3px to 1.5px.
   Only the inner gradient rotates; the input, rounded mask and shadow stay
   fixed. Keep the existing speed, pause control and reduced-motion path. */
html body.aep-framework .aep-composer-halo {
    position: absolute;
    z-index: 0;
    inset: -1px;
    border-radius: inherit;
    pointer-events: none;
    opacity: .62;
    filter: drop-shadow(0 0 7px rgba(110, 139, 255, .3)) drop-shadow(0 0 14px rgba(180, 157, 232, .22));
}

html body.aep-framework .aep-composer-halo-ring {
    position: absolute;
    inset: 0;
    padding: 1.5px;
    border-radius: inherit;
    overflow: hidden;
    -webkit-mask: linear-gradient(#FFF 0 0) content-box, linear-gradient(#FFF 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#FFF 0 0) content-box, linear-gradient(#FFF 0 0);
    mask-composite: exclude;
}

html body.aep-framework .aep-composer-halo-orbit {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 142%;
    aspect-ratio: 1;
    background: conic-gradient(transparent 0deg 250deg, rgba(180, 157, 232, 0) 260deg, #B8A6E6 285deg, #6E8BFF 320deg, rgba(110, 139, 255, 0) 350deg, transparent 360deg);
    transform: translate(-50%, -50%) rotate(35deg);
}

@keyframes aep-composer-orbit {
    from {
        transform: translate(-50%, -50%) rotate(35deg);
    }

    to {
        transform: translate(-50%, -50%) rotate(395deg);
    }
}

@media (prefers-reduced-motion:no-preference) {
    html body.aep-framework .aep-composer-halo-orbit {
        animation: aep-composer-orbit var(--aep-orbit-cycle) linear infinite paused;
    }

    html body.aep-framework .aep-window-slot.is-motion-active .aep-composer-halo-orbit {
        animation-play-state: running;
    }
}

html body.aep-framework .aep-window-slot.is-motion-reduced .aep-composer-halo {
    opacity: .4;
}

html body.aep-framework .aep-window-slot.is-motion-reduced .aep-composer-halo-orbit {
    animation: none;
}

/* Preserve the approved minimum budget; the translated task rows may grow
   the window instead of compressing text or overlapping the composer. */
html body.aep-framework .aep-window {
    position: relative;
    z-index: 1;
    scroll-margin-top: 80px;
    display: grid;
    flex: none;
    grid-template-columns: 208px minmax(0, 1fr);
    grid-template-rows: 44px minmax(0, 1fr);
    width: 100%;
    height: auto;
    min-height: calc(var(--aep-ui-reference) * .9);
    border: 1px solid rgba(91, 62, 184, .14);
    border-radius: var(--wy-r-2xl);
    background: var(--wy-g0);
    box-shadow: 0 24px 80px rgba(69, 47, 142, .12), 0 4px 16px rgba(69, 47, 142, .05);
    container-type: inline-size;
    container-name: aep-workspace;
}

html body.aep-framework .aep-window.is-compact {
    grid-template-rows: 44px auto minmax(0, 1fr);
}

html body.aep-framework .aep-window-chrome {
    grid-column: 1/-1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-width: 0;
    padding: 0 20px;
    border-bottom: 1px solid #EFEFF3;
    border-radius: 23px 23px 0 0;
    background: #FCFCFD;
}

html body.aep-framework .aep-traffic-lights {
    display: flex;
    flex: none;
    gap: 8px;
}

html body.aep-framework .aep-traffic-lights span {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #FF5F57;
}

html body.aep-framework .aep-traffic-lights span:nth-child(2) {
    background: #FEBC2E;
}

html body.aep-framework .aep-traffic-lights span:nth-child(3) {
    background: #28C840;
}

html body.aep-framework .aep-window-caption {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    min-width: 0;
    color: var(--wy-g600);
    font-size: 13px;
    line-height: 22px;
}

html body.aep-framework .aep-window-tools {
    display: flex;
    flex: none;
    align-items: center;
    gap: 16px;
    color: var(--wy-g600);
}

html body.aep-framework .aep-window-tools .aep-icon {
    stroke-width: 1.6;
}

html body.aep-framework .aep-sidebar {
    position: relative;
    grid-row: 2;
    min-height: 0;
    background: #F7F7FA;
    border-right: 1px solid var(--wy-g100);
    border-radius: 0 0 0 23px;
    min-width: 0;
}

html body.aep-framework .aep-workspace-brand {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 24px 16px;
    list-style: none;
    font-size: 17px;
    font-weight: 500;
    color: var(--wy-ink);
}

html body.aep-framework .aep-workspace-brand::-webkit-details-marker {
    display: none;
}

html body.aep-framework .aep-brand-star {
    width: 28px;
    height: 28px;
    flex: none;
    fill: var(--wy-primary);
}

html body.aep-framework .aep-sidebar-chevron {
    display: none;
}

html body.aep-framework .aep-sidebar-content {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 0 16px 20px;
}

html body.aep-framework .aep-new-task {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    border: 1px solid #DFDAED;
    border-radius: 8px;
    background: var(--wy-g0);
    color: var(--wy-primary);
    font-size: 15px;
    cursor: pointer;
}

html body.aep-framework .aep-sidebar-label {
    margin: 0 0 8px;
    font-size: 13px;
    color: var(--wy-g500);
}

/* Agent selection is workspace navigation, using one native radio group. */
html body.aep-framework .aep-agent-list ul {
    display: flex;
    flex-direction: column;
    gap: 4px;
    list-style: none;
    margin: 0 -8px;
    padding: 0;
}

html body.aep-framework .aep-agent-list li {
    min-width: 0;
    font-size: 13px;
    line-height: 22px;
    color: var(--wy-g700);
}

html body.aep-framework .aep-agent-option {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 6px 8px;
    border-radius: 6px;
    cursor: pointer;
}

html body.aep-framework .aep-agent-option:has(input:checked) {
    color: var(--wy-primary);
    background: var(--wy-primary-subtle);
}

html body.aep-framework .aep-agent-option:has(input:focus-visible) {
    outline: 2px solid var(--wy-primary);
    outline-offset: 2px;
}

/* 2026-10-27: reuse Navbar artwork and its black filter; only the selected
   Agent shows the original colors. Preserve the approved 18px sidebar size.
   Reset the global img card radius so the original artwork is not clipped. */
html body.aep-framework .aep-agent-icon {
    display: block;
    width: 18px;
    height: 18px;
    flex: none;
    object-fit: contain;
    border-radius: 0;
    filter: brightness(0);
}

html body.aep-framework .aep-agent-option:has(input:checked) .aep-agent-icon {
    filter: none;
}

@media (hover:hover) and (pointer:fine) {
    html body.aep-framework .aep-agent-option:not(:has(input:checked)):hover {
        background: var(--wy-g50);
    }
}

html body.aep-framework .aep-main {
    grid-row: 2;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

html body.aep-framework .aep-status {
    font-size: 13px;
    color: var(--wy-g500);
}

html body.aep-framework .aep-status:empty {
    display: none;
}

html body.aep-framework .aep-chat-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    padding: 24px 48px 16px;
}

html body.aep-framework .aep-welcome {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 0;
    padding: 16px 0 24px;
}

html body.aep-framework .aep-welcome>* {
    flex: none;
}

html body.aep-framework .aep-welcome h2 {
    color: var(--wy-ink);
    letter-spacing: 0;
}

html body.aep-framework .aep-welcome .aep-agent-heading {
    letter-spacing: normal !important;
}

html body.aep-framework .aep-welcome p {
    margin: 8px 0 16px;
    font-size: 15px;
    color: var(--wy-g500);
}

/* 2026-10-23 supplied contextual-suggestions reference: three stacked rows,
   Chinese title/description at the leading edge and a purple action at the
   trailing edge. Keep native text sizing and let the UI grow with content. */
html body.aep-framework .aep-suggestions {
    display: grid;
    width: min(100%, 680px);
    gap: 8px;
}

html body.aep-framework .aep-suggestions button {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
    width: 100%;
    min-width: 0;
    min-height: 80px;
    padding: 12px 16px;
    border: 1px solid var(--wy-g100);
    border-radius: 8px;
    background: var(--wy-g0);
    color: var(--wy-g700);
    font-size: 13px;
    line-height: 22px;
    text-align: start;
    cursor: pointer;
    transition: background-color .16s var(--wy-ease), border-color .16s var(--wy-ease);
}

html body.aep-framework .aep-suggestion-copy {
    display: grid;
    min-width: 0;
    gap: 4px;
}

html body.aep-framework .aep-suggestion-title {
    color: var(--wy-ink);
    font-size: 15px;
    line-height: 26px;
}

html body.aep-framework .aep-suggestion-description {
    color: var(--wy-g500);
}

html body.aep-framework .aep-suggestion-action {
    color: var(--wy-primary);
    font-weight: 500;
    white-space: nowrap;
}

@media (hover:hover) and (pointer:fine) {
    html body.aep-framework .aep-suggestions button:hover {
        background: var(--wy-primary-subtle);
        border-color: var(--wy-primary-light);
    }
}

/* 2026-10-22 supplied composer reference: rounded white input above a
   pale independent tool rail. Keep the existing copy and typing controller.
   2026-10-23: remove the lower rounded composer's outer shadow per review. */
html body.aep-framework .aep-composer {
    flex: none;
    margin-top: auto;
    padding: 0;
    border: 0;
    border-radius: 32px;
    background: linear-gradient(180deg, #F2F2F5, #F8F8FA);
    box-shadow: none;
}

html body.aep-framework .aep-composer-surface {
    position: relative;
    isolation: isolate;
    padding: 16px 20px;
    border: 1px solid #E5E5E9;
    border-radius: 32px;
    background: var(--wy-g0);
    box-shadow: inset 0 0 0 1px rgba(22, 22, 27, .025);
    transition: border-color var(--wy-dur-fast) var(--wy-ease), box-shadow var(--wy-dur-fast) var(--wy-ease);
}

html body.aep-framework .aep-composer-surface> :is(textarea, .aep-composer-bottom) {
    position: relative;
    z-index: 1;
}

html body.aep-framework .aep-composer:focus-within .aep-composer-surface {
    border-color: var(--wy-primary-light);
    box-shadow: 0 0 0 2px rgba(91, 62, 184, .06);
}

html body.aep-framework .aep-composer textarea {
    display: block;
    width: 100%;
    min-height: 64px;
    max-height: 160px;
    resize: none;
    border: 0;
    outline: 0;
    font: inherit;
    font-size: 15px;
    line-height: 26px;
    color: var(--wy-ink);
    background: transparent;
}

html body.aep-framework .aep-composer textarea:is(:focus, :focus-visible) {
    outline: none !important;
    outline-offset: 0;
    box-shadow: none !important;
}

html body.aep-framework .aep-composer textarea::placeholder {
    color: var(--wy-g500);
}

html body.aep-framework .aep-composer-bottom {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
}

html body.aep-framework .aep-composer-toolbar {
    display: flex;
    align-items: center;
    min-height: 40px;
    padding: 8px 20px;
    color: var(--wy-g500);
    font-size: 13px;
    line-height: 22px;
}

html body.aep-framework .aep-composer-toolbar>span {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 8px;
}

html body.aep-framework .aep-help {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--wy-primary);
    font: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

html body.aep-framework .aep-prompt-toggle {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-left: -10px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--wy-g500);
    cursor: pointer;
}

html body.aep-framework .aep-prompt-toggle[hidden] {
    display: none;
}

html body.aep-framework .aep-prompt-toggle:hover {
    background: var(--wy-g50);
    color: var(--wy-primary);
}

html body.aep-framework .aep-send {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-left: auto;
    border: 0;
    border-radius: 50%;
    background: var(--wy-primary);
    color: var(--wy-g0);
    cursor: pointer;
    transition: background-color var(--wy-dur-fast) var(--wy-ease);
}

html body.aep-framework .aep-send .aep-icon {
    width: 24px;
    height: 24px;
    fill: currentColor;
    stroke: none;
}

/* Preview-only control: pointer and keyboard feedback without submission. */
@media (hover:hover) and (pointer:fine) {
    html body.aep-framework .aep-send:hover {
        background: var(--wy-primary-shade);
    }
}

html body.aep-framework .aep-send:active {
    background: var(--wy-primary-dark);
}

html body.aep-framework .aep-conversation {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 24px;
    max-height: none;
    min-height: 0;
    overflow: auto;
    padding: 8px 4px 24px;
    scrollbar-width: thin;
}

html body.aep-framework .aep-message {
    margin: 0;
    font-size: 15px;
    line-height: 26px;
    overflow-wrap: anywhere;
}

html body.aep-framework .aep-message--user {
    align-self: flex-end;
    max-width: 90%;
    padding: 12px 16px;
    border-radius: 16px 16px 4px 16px;
    background: var(--wy-primary-subtle);
    color: var(--wy-primary-dark);
}

html body.aep-framework .aep-message--assistant {
    color: var(--wy-g700);
}

html body.aep-framework .aep-message--assistant p {
    margin: 0;
}

html body.aep-framework .aep-message--assistant ol {
    padding-left: 24px;
    margin: 12px 0;
}

html body.aep-framework .aep-demo-note {
    font-size: 13px;
    color: var(--wy-g500);
}

html body.aep-framework .aep-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

html body.aep-framework :is(.aep-welcome, .aep-conversation)[hidden] {
    display: none;
}

html body.aep-framework :is(.aep-window button, .aep-window summary, .aep-conversation):focus-visible {
    outline: 2px solid var(--wy-primary);
    outline-offset: 3px;
}

/* Host capacity, not a new page typography breakpoint. */
@container aep-workspace (max-width:943px) {
    html body.aep-framework .aep-sidebar {
        grid-column: 1/-1;
        grid-row: 2;
        border-right: 0;
        border-bottom: 1px solid var(--wy-g100);
        border-radius: 0;
    }

    html body.aep-framework .aep-main {
        grid-column: 1/-1;
        grid-row: 3;
    }

    html body.aep-framework .aep-workspace-brand {
        cursor: pointer;
        padding: 16px 24px;
    }

    html body.aep-framework .aep-sidebar-chevron {
        display: block;
        margin-left: auto;
    }

    html body.aep-framework .aep-sidebar[open] .aep-sidebar-chevron {
        transform: rotate(180deg);
    }

    html body.aep-framework .aep-sidebar-content {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 0 24px 24px;
        gap: 16px;
    }

    html body.aep-framework .aep-sidebar[open] .aep-sidebar-content {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        z-index: 4;
        background: #F7F7FA;
        border-bottom: 1px solid var(--wy-g100);
        box-shadow: 0 12px 24px rgba(22, 22, 27, .08);
    }

    html body.aep-framework .aep-agent-list {
        grid-column: 1/-1;
    }

    html body.aep-framework .aep-new-task {
        grid-column: 1/-1;
    }

    html body.aep-framework .aep-chat-body {
        padding-inline: 24px;
    }
}

@media (min-width:768px) and (max-width:1023px) {
    html body.aep-framework .aep-experience:has(.aep-window-slot.is-compact) {
        --aep-ui-reference: max(665px, calc(100svh - 368px));
    }
}

@media (max-width:767px) {
    html body.aep-framework .aep-experience {
        --aep-intro-clearance: 40px;
    }

    html body.aep-framework .aep-window-slot::before,
    html body.aep-framework .aep-window-slot::after {
        display: none;
    }

    html body.aep-framework .aep-intro {
        gap: 24px;
    }

    html body.aep-framework .aep-heading {
        overflow-wrap: normal;
    }

    html body.aep-framework .aep-description {
        font-size: 18px;
    }

    html body.aep-framework .aep-experience:has(.aep-window-slot.is-compact) {
        --aep-ui-reference: max(649px, calc(100svh - 428px));
    }

    html body.aep-framework .aep-window {
        border-radius: 16px;
    }

    html body.aep-framework .aep-window.is-compact {
        grid-template-rows: 40px auto minmax(0, 1fr);
    }

    html body.aep-framework .aep-window-chrome {
        padding-inline: 12px;
        gap: 8px;
        border-radius: 15px 15px 0 0;
    }

    html body.aep-framework .aep-window-tools {
        gap: 12px;
    }

    html body.aep-framework .aep-workspace-brand {
        padding: 16px;
    }

    html body.aep-framework .aep-sidebar-content {
        padding: 0 16px 16px;
    }

    html body.aep-framework .aep-chat-body {
        padding: 16px 16px 8px;
    }

    html body.aep-framework .aep-welcome {
        padding: 0 0 16px;
    }

    html body.aep-framework .aep-welcome p {
        max-width: 16em;
        margin-bottom: 12px;
    }

    html body.aep-framework .aep-suggestions {
        gap: 8px;
    }

    html body.aep-framework .aep-suggestions button {
        gap: 16px;
        padding: 12px;
    }

    html body.aep-framework .aep-composer {
        border-radius: 24px;
    }

    html body.aep-framework .aep-composer-surface {
        padding: 16px;
        border-radius: 24px;
    }

    html body.aep-framework .aep-composer-toolbar {
        padding-inline: 16px;
    }

    html body.aep-framework .aep-conversation {
        min-height: 0;
    }
}

@media (prefers-reduced-motion:reduce) {
    html body.aep-framework .aep-window * {
        transition: none !important;
        scroll-behavior: auto !important;
    }
}

/* 2026-10-23 · Case center, revision 3 requested by the user: blue/lilac
   background only; dropdown without side copy or extra focus ring; service
   labels above titles; text-arrow detail actions; shorter 16:9 imagery.
   Shared container, type and content-driven height contracts are retained.
   Revision 4: all image corners use the approved 24px token, quiet purple
   service labels, and image-only hover zoom instead of lifting the card.
   Revision 5 used fractional rows for the image-led balance.
   2026-10-28: restore the reviewed near-square 11:8 image crop after removing
   detail actions. Keep the media independent of copy height so shorter text
   cannot flatten it; the text row grows naturally. Shared containers, type,
   copy, capacity queries and motion remain the existing design basis. */
html body.wy-responsive[data-responsive-page="cases"] #top.cases-banner {
    background: #eef0fc;
}

html body.wy-responsive[data-responsive-page="cases"] .cases-banner .shv1__bg {
    background: #eef0fc url(banners/cases-center/soft-blue-lavender-v3.webp) center / cover no-repeat;
}

html body.wy-responsive[data-responsive-page="cases"] .cases-banner .shv1__bg::after {
    height: 22%;
}

html body.wy-responsive[data-responsive-page="cases"] .cases-banner .shv1__in {
    display: flex;
    flex-direction: column;
    align-items: flex-start !important;
    text-align: left;
}

html body.wy-responsive[data-responsive-page="cases"] .cases-banner .shv1__h {
    max-width: none;
    min-width: 0;
    margin: 0;
    white-space: normal;
}

html body.wy-responsive[data-responsive-page="cases"] .cases-banner .shv1__h span {
    display: inline-block;
    white-space: nowrap;
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case {
    display: grid;
    grid-template-rows: auto 1fr;
    min-height: 0;
    aspect-ratio: auto;
    color: var(--wy-ink);
    background: var(--wy-g50);
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case__media {
    position: relative;
    isolation: isolate;
    aspect-ratio: 11 / 8;
    border-radius: var(--wy-r-2xl);
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    background: var(--wy-g100);
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case__scene {
    opacity: 1;
    z-index: 0;
    object-position: 68% center;
    border-radius: inherit;
    transform: none;
    transition: transform var(--wy-dur) var(--wy-ease);
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case--zte .fill-case__scene {
    object-position: 80% center;
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case--cfmoto .fill-case__scene {
    object-position: 84% center;
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case--sunseeker .fill-case__scene {
    object-position: 86% center;
}

/* Preserve the product focal areas as the media grows with the copy. */
html body.wy-responsive[data-responsive-page="cases"] #cases :is(.fill-case--anonymous-technology, .fill-case--anonymous-appliances, .fill-case--nanguang) .fill-case__scene {
    object-position: center 18%;
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case--anonymous-imaging .fill-case__scene {
    object-position: center 10%;
}

/* 2026-10-26: regenerated medical image uses a centered patient monitor. */
html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case--anonymous-medical .fill-case__scene {
    object-position: center;
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case__logo {
    position: absolute;
    z-index: 1;
    isolation: isolate;
    inset: var(--wy-s5) var(--wy-s5) auto;
    width: auto;
    height: auto;
    min-height: 44px;
    gap: var(--wy-s3);
    flex-wrap: wrap;
    color: #fff;
    text-shadow: 0 1px 5px rgb(0 0 0 / .5);
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case__logo::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: -24px;
    background: radial-gradient(ellipse at 20% 20%, rgb(0 0 0 / .38), transparent 75%);
    pointer-events: none;
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case__brand--white {
    filter: brightness(0) invert(1);
    mix-blend-mode: normal;
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case__content {
    display: flex;
    min-height: 0;
    height: auto;
    padding: var(--wy-s4) var(--wy-s5);
    background: var(--wy-g50);
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case__details {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--wy-s3);
    min-width: 0;
    flex: 1;
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case__story {
    gap: var(--wy-s2);
    margin: 0;
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case__title {
    color: var(--wy-ink);
    text-align: left;
    text-wrap: pretty;
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case__description {
    color: var(--wy-g700);
}

html body.wy-responsive[data-responsive-page="cases"] #cases .case-center__tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--wy-s2);
    margin: 0;
    padding: 0;
    list-style: none;
}

html body.wy-responsive[data-responsive-page="cases"] #cases .case-center__tags li {
    border: 1px solid transparent;
    border-radius: var(--wy-r-sm);
    padding: var(--wy-s1) var(--wy-s2);
    font-size: var(--wy-fs-micro);
    line-height: var(--wy-lh-label);
    background: var(--wy-primary-subtle);
    color: color-mix(in srgb, var(--wy-primary-light) 60%, var(--wy-primary));
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case__more {
    align-self: flex-start;
    justify-content: flex-start;
    margin-block-start: auto;
    min-height: 44px;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
    color: var(--wy-ink);
    box-shadow: none;
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case__more .arr {
    color: currentColor;
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case__more .wy-harr-host {
    margin: 0 !important;
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case__more:disabled {
    color: var(--wy-g500);
    cursor: not-allowed;
}

html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case__more:focus-visible {
    outline: 2px solid var(--wy-primary);
    outline-offset: 4px;
}

@media (hover: hover) {
    html body.wy-responsive[data-responsive-page="cases"] #cases a.fill-case__more:hover {
        background: transparent;
    }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case:hover .fill-case__scene {
        transform: scale(1.05);
    }
}

@media (prefers-reduced-motion: reduce) {
    html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case__scene {
        transform: none;
        transition: none;
    }
}

@container wy-content-cards (min-width: 1008px) and (max-width: 1487px) {
    html body.wy-responsive[data-responsive-page="cases"] #cases .fill-cases__set {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@container wy-content-cards (max-width: 1007px) {
    html body.wy-responsive[data-responsive-page="cases"] #cases .fill-cases__set {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 767px) {
    html body.wy-responsive[data-responsive-page="cases"] #top.cases-banner {
        height: auto;
        min-height: 0;
        padding-block: calc(var(--wy-nav-h) + var(--wy-s8)) var(--wy-s7) !important;
    }

    html body.wy-responsive[data-responsive-page="cases"] .cases-banner .shv1__in {
        padding-block: 0;
    }

    html body.wy-responsive[data-responsive-page="cases"] .cases-banner .shv1__h span {
        display: block;
    }

    html body.wy-responsive[data-responsive-page="cases"] .cases-banner .shv1__h wbr {
        display: none;
    }

    html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case__content {
        padding: var(--wy-s4) var(--wy-s5);
    }

    html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case--cfmoto .fill-case__scene {
        object-position: 76% center;
    }

    html body.wy-responsive[data-responsive-page="cases"] #cases .fill-case--sunseeker .fill-case__scene {
        object-position: 79% center;
    }
}

/* CASE CENTER · 2026-10-23 approved white editorial version.
   Promoted from the reviewed color preview, with static production markup.
   Matches Industry Insights type and spacing; retains the agreed image balance,
   lavender tags and synchronized image/title/CTA hover.
   Opt-in is limited to this formal page; preview comparison palettes remain isolated. */
html body.wy-responsive[data-responsive-page="cases"] .case-center__anchor {
    height: 0;
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case,
html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__content {
    background: var(--wy-g0);
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white {
    padding-block-start: calc(var(--wy-layout-header, 56px) + var(--wy-s9)) !important;
}

/* 2026-10-26: anonymous wordmarks use one continuous "某 + 行业 + 品牌"
   name, retaining the approved H3 type and original logo placement. */
html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__logo:has(> .fill-case__brand-text) {
    flex-wrap: nowrap;
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__logo>.fill-case__brand-text {
    font-size: var(--wy-fs-h3);
    line-height: var(--wy-lh-head);
    font-weight: 500;
    white-space: nowrap;
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .case-center__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--wy-s6);
    margin-block-end: var(--wy-s7);
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .case-center__heading h1 {
    flex: 1;
    min-width: 0;
    max-width: none;
    margin: 0;
    text-align: left;
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .case-center__heading h1 span {
    display: inline-block;
    white-space: nowrap;
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-cases__set {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: var(--wy-layout-gutter);
    row-gap: var(--wy-s8);
}

@container wy-content-cards (max-width: 1007px) {
    html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-cases__set {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@container wy-content-cards (max-width: 663px) {
    html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-cases__set {
        grid-template-columns: minmax(0, 1fr);
    }
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case {
    overflow: visible;
    border-radius: 0;
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__content {
    padding: var(--wy-s5) 0 0;
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__details {
    flex: none;
    width: 100%;
    gap: 0;
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .case-center__tags {
    margin-block-end: var(--wy-s3);
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__story {
    gap: var(--wy-s4);
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__title {
    font-size: var(--wy-fs-h3) !important;
    line-height: var(--wy-lh-head) !important;
    font-weight: 500 !important;
    letter-spacing: normal !important;
    color: var(--wy-ink);
    overflow-wrap: break-word;
    transition: color var(--wy-dur-fast) var(--wy-ease);
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__description {
    font-size: var(--wy-fs-body) !important;
    line-height: 1.75 !important;
    font-weight: 400;
    letter-spacing: normal;
    color: var(--wy-ink);
    min-block-size: 0;
    overflow-wrap: break-word;
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__more {
    margin-block-start: var(--wy-s4);
    gap: var(--wy-s2);
    font-size: var(--wy-fs-small);
    font-weight: 500;
    line-height: 1;
    letter-spacing: normal;
    transition: color var(--wy-dur-fast) var(--wy-ease);
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__more:focus-visible {
    outline-offset: 6px;
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__scene {
    transform: none;
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__more .wy-harr .l {
    opacity: 0;
    transform: scaleX(.4);
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__more .wy-harr .t {
    transform: none;
}

/* Feedback on the whole card: fast, reversible CSS transitions using the site's
   existing 280ms image, 160ms color and 200ms shared arrow timings. */
@media (hover: hover) and (pointer: fine) {

    html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case:hover .fill-case__title,
    html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case:hover .fill-case__link .fill-case__more {
        color: var(--wy-primary);
    }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case:hover .fill-case__scene {
        transform: scale(1.05);
    }

    html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case:hover .fill-case__link .fill-case__more .wy-harr .l {
        opacity: 1;
        transform: scaleX(1);
    }

    html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case:hover .fill-case__link .fill-case__more .wy-harr .t {
        transform: translateX(6px);
    }
}

@media (max-width: 767px) {
    html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white {
        padding-block-start: calc(var(--wy-layout-header, 64px) + var(--wy-s7)) !important;
    }

    html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .case-center__heading {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--wy-s5);
        margin-block-end: var(--wy-s6);
    }

    html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-cases__set {
        row-gap: var(--wy-s7);
    }

    html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__more {
        font-size: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white :is(.fill-case__title, .fill-case__more) {
        transition: none;
    }
}

/* Case detail access · one native link wraps each available case. Its children
   remain on the existing article grid; image, title, copy and CTA share one
   destination and one keyboard stop. Unavailable cases retain disabled buttons. */
html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__link {
    display: grid;
    grid-row: 1 / -1;
    grid-template-rows: subgrid;
    min-width: 0;
    color: inherit;
    text-decoration: none;
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__link:focus-visible {
    outline: none;
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case:has(> .fill-case__link:focus-visible) .fill-case__media {
    outline: 2px solid var(--wy-primary);
    outline-offset: 4px;
}

html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__link:focus-visible :is(.fill-case__title, .fill-case__more) {
    color: var(--wy-primary);
    transition: none;
}

/* GEO SERVICES · 2026-10-23, alternating Consumer Insights-style rows.
   The first and third rows lead with media; the second and fourth lead with
   copy. Match the reviewed 16:10 Consumer Insights frames; fit the approved
   square scenes proportionally within them without clipping their UI cards. */
html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__header {
    margin: 0 0 var(--wy-s9);
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__header .sec-label {
    margin: 0 0 var(--wy-s4);
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__header .h1 {
    margin: 0;
    max-width: 1000px;
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__list {
    display: grid;
    row-gap: var(--wy-s9);
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__item {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: var(--wy-layout-gutter);
    align-items: center;
    border: 0;
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__copy {
    grid-column: 8/13;
    grid-row: 1;
    min-width: 0;
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__item--copy-first .geo-flat__copy {
    grid-column: 1/6;
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__copy .h2 {
    margin: 0;
    color: var(--wy-ink);
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .svq__a {
    max-height: none;
    overflow: visible;
    transition: none;
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__copy .body {
    margin: var(--wy-gap-title) 0 0;
    padding: 0;
    color: var(--wy-g700);
    font-size: var(--wy-fs-body);
    line-height: var(--wy-lh-body);
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__visual {
    position: relative;
    grid-column: 1/7 !important;
    grid-row: 1 !important;
    order: initial !important;
    width: 100%;
    height: auto !important;
    min-width: 0;
    margin: 0 !important;
    aspect-ratio: 16/10;
    justify-self: start;
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__item--copy-first .geo-flat__visual {
    grid-column: 7/13 !important;
    justify-self: end;
}

/* Crop only the unused outer stage margins, retaining the original square UI
   geometry. Feature 03 needs a smaller fit for its taller editorial browser. */
html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__visual>.svx {
    inset: auto;
    left: 14%;
    top: 50%;
    width: 72%;
    height: auto;
    aspect-ratio: 1;
    opacity: 1;
    transform: translateY(-50%);
    transition: none;
}

html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__visual>.geo03 {
    left: 16%;
    width: 68%;
}

/* Match the reviewed Consumer Insights compact-desktop spacing. */
@media(min-width:1024px) and (max-width:1199px) {
    html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__header {
        margin-bottom: var(--wy-gap-head);
    }

    html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__list {
        row-gap: var(--wy-s8);
    }
}

@media(max-width:1023px) {
    html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__item {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: var(--wy-s6);
    }

    html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__list {
        row-gap: var(--wy-s8);
    }

    html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal .geo-flat__header {
        margin-bottom: var(--wy-gap-head);
    }
}

@media(max-width:767px) {
    html body.wy-responsive[data-responsive-page="solution-geo-seo"] #services.geo-flat--formal {
        padding-block: var(--wy-s8) !important;
    }
}

/* 1023 mobile refinement · 2026-10-26, explicitly requested by the user.
   Contentstack mobile reference: 16px descriptions / 14px action text,
   artwork above copy. Keep the approved WUYUE artwork, type families,
   colours and desktop composition; retain a 44px touch-height button.
   Footer uses the shared easing and reversible grid disclosure pattern. */
.wy-footer__panel,
.wy-footer__panel-inner {
    display: contents;
}

.wy-footer__chevron {
    display: none;
}

/* FAQ assets also expose the t-acc hooks. Keep their generic grid/blur
   styles from changing the existing desktop footer or its text rendering. */
html body.wy-responsive .wy-footer .wy-footer__panel-inner {
    opacity: 1;
    filter: none;
    transition: none;
}

@media(min-width:1024px) {
    html body.wy-responsive .wy-footer :is(.wy-footer__panel, .wy-footer__panel-inner) {
        display: contents !important;
    }

    html body.wy-responsive .wy-footer .wy-footer__chevron {
        display: none !important;
    }

    /* Preserve the original contact heading and its margin on desktop. */
    html body.wy-responsive .wy-footer__contact>summary {
        display: flow-root;
        margin: 0 !important;
    }
}

@media(max-width:1023px) {

    html body.wy-responsive .wy-footer>.container,
    html body.wy-responsive .wy-footer .footer__grid {
        border: 0 !important;
    }

    html body.wy-responsive .wy-footer__group {
        --acc-expand: var(--wy-dur, 280ms);
        --acc-collapse: var(--wy-dur, 280ms);
        --acc-chevron: var(--wy-dur, 280ms);
        --acc-ease: var(--wy-ease);
        border-top: 1px solid var(--wy-g200) !important;
    }

    html body.wy-responsive .wy-footer__group>summary::after {
        content: none !important;
    }

    /* 2026-10-26: all four mobile columns share the same regular heading.
     Contact is a native disclosure and follows the same row spacing. */
    html body.wy-responsive .wy-footer__group>summary {
        font-weight: 400 !important;
    }

    html body.wy-responsive .wy-footer__contact {
        order: 0;
        padding-bottom: 0 !important;
    }

    html body.wy-responsive .wy-footer__contact>summary h4 {
        margin: 0 !important;
        font: inherit;
        font-size: inherit !important;
        font-weight: inherit !important;
        line-height: inherit !important;
        letter-spacing: inherit !important;
    }

    html body.wy-responsive .wy-footer__chevron {
        display: block;
        flex: none;
        width: 16px;
        height: 16px;
        color: var(--wy-g500);
        stroke: currentColor;
        stroke-width: 1.5;
        stroke-linecap: round;
        stroke-linejoin: round;
        transform: scaleY(1);
        transition: transform var(--acc-chevron) var(--acc-ease);
    }

    html body.wy-responsive .wy-footer__group[open] .wy-footer__chevron,
    html body.wy-responsive .wy-footer__group[data-open="true"] .wy-footer__chevron {
        transform: scaleY(-1);
    }

    html body.wy-responsive .wy-footer__group[data-open="false"] .wy-footer__chevron {
        transform: scaleY(1);
    }

    html body.wy-responsive .wy-footer__panel {
        display: grid;
        grid-template-rows: 0fr;
        transition: grid-template-rows var(--acc-collapse) var(--acc-ease);
    }

    html body.wy-responsive .wy-footer__group[data-open="true"] .wy-footer__panel {
        grid-template-rows: 1fr;
        transition-duration: var(--acc-expand);
    }

    html body.wy-responsive .wy-footer__panel-inner {
        display: block;
        min-height: 0;
        overflow: hidden;
    }

    html body.wy-responsive .wy-footer__panel ul {
        padding-block-end: var(--wy-s4);
        margin: 0 !important;
    }

    html body.wy-responsive .wy-footer .footer__bottom,
    html body.wy-responsive .wy-footer .footer__registrations {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        text-align: center;
        gap: var(--wy-s2) !important;
        width: 100%;
    }

    html body.wy-responsive .wy-footer .footer__bottom {
        border: 0 !important;
    }

    html body.wy-responsive .wy-footer .footer__bottom>p {
        width: 100%;
        text-align: center;
    }
}

@media(max-width:767px) {

    html body.wy-responsive[data-responsive-page] #top :is(.hero__sub, .shv1__sub, .shx3__sub, .aep-description),
    html body.wy-responsive .sec-head :is(.lead, .body),
    html body.wy-responsive .cell--head .cell__p {
        font-size: 16px !important;
    }

    html body.wy-responsive[data-responsive-page] :is(.btn, .shv1__btn, .shx3__btn, .pghero__cta) {
        height: 44px !important;
        min-height: 44px !important;
        font-size: 14px !important;
        padding-block: 0 !important;
        padding-inline: 20px !important;
    }

    html body.wy-responsive[data-responsive-page] .nav__cta {
        padding-inline: 14px !important;
    }

    html body.wy-responsive[data-responsive-page="index"] #top .hero__actions .btn {
        height: 44px !important;
        min-height: 44px !important;
        font-size: 14px !important;
    }

    /* Existing illustrated banners already put their media first in the DOM.
     Make that media a real upper block; the original copy follows in flow.
     Text-only case/partner banners and the interactive AEP workbench retain
     their existing structure. */
    html body.wy-responsive[data-responsive-page]:is([data-responsive-page="solution-global-site"],
        [data-responsive-page="solution-global-ops"],
        [data-responsive-page="solution-geo-seo"],
        [data-responsive-page="solution-consumer-insights"],
        [data-responsive-page="join"], [data-responsive-page="partners"]) #top.shv1 {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        height: auto !important;
        min-height: 0 !important;
        padding: var(--wy-nav-h) 0 var(--wy-s7) !important;
        background: var(--wy-g0);
    }

    html body.wy-responsive[data-responsive-page] #top:is(.join-banner, .partners-banner, .insights-banner) :is(.shv1__bg, .ci-banner-bg),
    html body.wy-responsive:is([data-responsive-page="solution-global-site"], [data-responsive-page="solution-global-ops"], [data-responsive-page="solution-geo-seo"]) #top .shv1__bg {
        position: relative;
        inset: auto;
        flex: none;
        width: 100%;
        height: clamp(208px, 56vw, 320px);
        background-size: cover;
        background-position: right center;
    }

    html body.wy-responsive[data-responsive-page] #top:is(.join-banner, .partners-banner, .insights-banner) :is(.shv1__bg, .ci-banner-bg)::before {
        content: none !important;
    }

    html body.wy-responsive[data-responsive-page] #top:is(.join-banner, .partners-banner, .insights-banner) :is(.shv1__bg, .ci-banner-bg)::after {
        inset: auto 0 0;
        height: var(--wy-s7);
        background: linear-gradient(transparent, var(--wy-g0));
    }

    html body.wy-responsive[data-responsive-page]:is([data-responsive-page="solution-global-site"], [data-responsive-page="solution-global-ops"], [data-responsive-page="solution-geo-seo"], [data-responsive-page="solution-consumer-insights"], [data-responsive-page="join"], [data-responsive-page="partners"]) #top>.container {
        padding-block: var(--wy-s5) 0 !important;
    }

    /* Keep the original UI artwork upright and independent from body type. */
    html body.wy-responsive[data-responsive-page="product-ai-doc"] #top.shv1 {
        height: auto !important;
        min-height: 0 !important;
        padding: calc(var(--wy-nav-h) + var(--wy-s5)) 0 var(--wy-s7) !important;
    }

    html body.wy-responsive[data-responsive-page="product-ai-doc"] #top .aihero {
        gap: var(--wy-s6);
        padding-block: 0 !important;
    }

    html body.wy-responsive[data-responsive-page="product-ai-doc"] #top .aihero__stage {
        width: min(80vw, 360px);
    }

    /* Home, 2026-10-26: iPhone 16 reference (393x852). Keep the navbar and
     compact logo rows, with the wave/copy/actions breathing between them.
     Cap the first-screen budget at the reference height so taller phones
     reveal subsequent content. Short viewports can grow in normal flow. */
    html body.wy-responsive[data-responsive-page="index"] .home-first-screen {
        display: flex;
        flex-direction: column;
        min-height: min(100svh, 852px);
        background-color: var(--wy-g0);
        background-image:
            linear-gradient(180deg, transparent 0%, rgba(255, 255, 255, .12) 20%, rgba(255, 255, 255, .66) 42%, #fff 65%),
            radial-gradient(ellipse 420px 420px at 108% 14%, rgba(110, 139, 255, .30) 0%, rgba(150, 152, 238, .16) 52%, transparent 100%),
            radial-gradient(ellipse 360px 400px at 12% 0%, rgba(199, 180, 240, .32) 0%, rgba(180, 157, 232, .15) 58%, transparent 100%),
            radial-gradient(ellipse 350px 300px at 110% 45%, rgba(143, 200, 245, .18) 0%, transparent 100%);
    }

    html body.wy-responsive[data-responsive-page="index"] #top.hero {
        --wy-mobile-hero-art: clamp(160px, 44vw, 192px);
        flex: 1 0 auto;
        height: auto !important;
        min-height: 0 !important;
        padding: var(--wy-nav-h) 0 var(--wy-s7) !important;
        background: transparent;
    }

    html body.wy-responsive[data-responsive-page="index"] #top.hero::after {
        display: none;
    }

    html body.wy-responsive[data-responsive-page="index"] #top .hero__lb {
        display: none;
    }

    html body.wy-responsive[data-responsive-page="index"] #top .hero__threads {
        top: 0 !important;
        bottom: 0 !important;
        height: 100% !important;
        -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 64px, #000 calc(var(--wy-mobile-hero-art) + 40px), transparent calc(var(--wy-mobile-hero-art) + 120px));
        mask-image: linear-gradient(180deg, transparent 0, #000 64px, #000 calc(var(--wy-mobile-hero-art) + 40px), transparent calc(var(--wy-mobile-hero-art) + 120px));
    }

    html body.wy-responsive[data-responsive-page="index"] #top .hero__inner {
        display: flex;
        flex-direction: column;
        justify-content: center;
        width: 100%;
        height: auto;
        min-height: 0;
        padding-block-start: calc(var(--wy-mobile-hero-art) + var(--wy-s5)) !important;
    }

    html body.wy-responsive[data-responsive-page="index"] #top .hero__viewport {
        flex: none;
        height: auto !important;
        min-height: 0 !important;
    }

    html body.wy-responsive[data-responsive-page="index"] #top .hero__slide {
        position: relative;
        inset: auto;
        width: 100%;
        padding: 0 !important;
    }

    /* Mobile headline: 更近一点 follows 离全球消费者 on the same line. */
    html body.wy-responsive[data-responsive-page="index"] #top .hero__copy .display br.bm {
        display: none !important;
    }

    html body.wy-responsive[data-responsive-page="index"] #top .hero__copy .display .t-stagger-line--2 {
        white-space: nowrap;
    }

    html body.wy-responsive[data-responsive-page="index"] #top .hero__sub {
        margin: var(--wy-s5) 0 0 !important;
    }

    html body.wy-responsive[data-responsive-page="index"] #top .hero__actions {
        margin-top: var(--wy-s6) !important;
        flex-direction: column !important;
        align-items: stretch !important;
        flex-wrap: nowrap !important;
        gap: var(--wy-s3);
    }

    html body.wy-responsive.wy-home[data-responsive-page="index"] #top .hero__actions .btn {
        width: 100% !important;
        min-width: 0;
        flex: none !important;
        justify-content: center;
    }

    html body.wy-responsive.wy-home[data-responsive-page="index"] #top .hero__actions .btn--light {
        box-shadow: inset 0 0 0 1px var(--wy-g200);
    }

    html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients {
        flex: 0 0 160px;
        height: 160px !important;
        padding-block: 0 !important;
        padding-inline: var(--wy-mobile-gutter) !important;
    }

    /* Match the hero buttons' shared gutter; reserve spacing between logos,
     rather than adding a second inset around the whole logo wall. */
    html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients .clients-bleed {
        padding-inline: 0;
    }

    /* Approved refinement: halve the row pitch from 80px to 40px while
     retaining the lower row's centre and the first-screen geometry. */
    html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients [data-logo-flow],
    html body.wy-responsive[data-responsive-page="index"] #clients [data-logo-flow] .clients__flow-viewport {
        height: 160px;
    }

    html body.wy-responsive[data-responsive-page="index"] #clients [data-logo-flow] .clients__flow-track,
    html body.wy-responsive[data-responsive-page="index"] #clients [data-logo-flow] .clients__flow-snapshot {
        display: grid;
        grid-template-columns: repeat(4, max-content);
        justify-content: space-between;
        grid-template-rows: repeat(2, 40px);
        width: 100%;
        height: 160px;
        padding-block: 60px 20px;
    }

    html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients [data-logo-flow] :is(.clients__flow-track, .clients__flow-snapshot, .clients__static-grid) .clients__item {
        width: auto;
        min-width: 0;
        height: 40px;
        flex: none;
        align-items: center;
        justify-content: center;
    }

    /* Align both outer artwork edges with the buttons. The middle columns
     share intrinsic widths across the two rows and keep their centres aligned. */
    html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients [data-logo-flow] :is(.clients__flow-track, .clients__flow-snapshot) .clients__item:nth-child(4n + 1) {
        justify-content: flex-start;
    }

    html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients [data-logo-flow] :is(.clients__flow-track, .clients__flow-snapshot) .clients__item:nth-child(4n) {
        justify-content: flex-end;
    }

    html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients [data-logo-flow] .clients__flow-track> :not(.is-visible) {
        display: none;
    }

    /* Without JS, keep two visible rows and let the complete native list scroll. */
    html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients [data-logo-flow] .clients__static-grid {
        --logo-scale: min(.8, calc((100cqw - 2 * var(--wy-s4)) / 520px));
        display: grid;
        grid-template-columns: none;
        grid-template-rows: repeat(2, 40px);
        grid-auto-flow: column;
        grid-auto-columns: 25%;
        height: 160px;
        overflow-x: auto;
        overflow-y: hidden;
        padding-block: 60px 20px;
    }

    html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients [data-logo-flow] .clients__static-grid .clients__item:is(:nth-child(8n + 1), :nth-child(8n + 2)) {
        justify-content: flex-start;
    }

    html body.wy-responsive.wy-static-clients-approved[data-responsive-page="index"] #clients [data-logo-flow] .clients__static-grid .clients__item:is(:nth-child(8n + 7), :nth-child(8n + 8)) {
        justify-content: flex-end;
    }

    /* About uses the same original full-bleed image/canvas, then its title. */
    html body.wy-responsive[data-responsive-page="about"] #top.pghero--hero {
        height: auto !important;
        min-height: 0 !important;
        padding: calc(var(--wy-nav-h) + clamp(208px, 56vw, 320px)) 0 var(--wy-s7) !important;
        background: var(--wy-g0);
    }

    html body.wy-responsive[data-responsive-page="about"] #top .pghero__media {
        top: var(--wy-nav-h);
        height: clamp(208px, 56vw, 320px);
    }

    html body.wy-responsive[data-responsive-page="about"] #top>.container {
        padding-block: var(--wy-s6) 0 !important;
    }

    /* The approved desktop photographic cards are square. Remove the old
     504/544px phone floor while letting unusually long copy grow naturally.
     The editorial case centre keeps its separate text area; its image uses
     the desktop 11:8 crop instead of being stretched by the copy grid. */
    html body.wy-responsive[data-responsive-page] #cases.fill-cases--story .fill-case {
        aspect-ratio: auto;
        min-height: 100cqw !important;
        height: auto;
    }

    html body.wy-responsive[data-responsive-page] #cases.fill-cases--story .fill-case__link {
        min-height: 0;
    }

    html body.wy-responsive[data-responsive-page] #cases.fill-cases--story .fill-case__content {
        grid-template-rows: minmax(44px, 1fr) auto;
        min-height: 0;
        height: auto !important;
    }

    html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white :is(.fill-case, .fill-case__link) {
        grid-template-rows: auto auto;
    }

    html body.wy-responsive[data-responsive-page="cases"] #cases.case-center--white .fill-case__media {
        aspect-ratio: 11/8;
    }
}

@media(prefers-reduced-motion:reduce) {
    html body.wy-responsive .wy-footer :is(.wy-footer__panel, .wy-footer__chevron) {
        transition: none !important;
    }
}

/* 2026-10-26 mobile navigation: reuse the approved home relationship on
   every formal page. The initial header shares the banner background;
   the existing scrolled state retains its white reading surface. */
.home-first-screen {
    display: contents;
}

@media(max-width:1023px) {

    html body.wy-responsive[data-responsive-page] #nav:not(.wy-nav-scrolled),
    html body.wy-responsive[data-responsive-page] #nav:not(.wy-nav-scrolled) .nav__bar {
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }
}

/* Phone artwork starts in normal flow below a 64px navigation allowance.
   Extend its existing background upward by that allowance, keeping the lower
   edge, hero height, heading and CTA in their approved positions. No new art. */
@media(max-width:767px) {

    html body.wy-responsive:is([data-responsive-page="solution-global-site"], [data-responsive-page="solution-global-ops"],
        [data-responsive-page="solution-geo-seo"], [data-responsive-page="solution-consumer-insights"],
        [data-responsive-page="join"], [data-responsive-page="partners"]) #top :is(.shv1__bg, .ci-banner-bg) {
        height: calc(clamp(208px, 56vw, 320px) + var(--wy-nav-h, 64px)) !important;
        margin-block-start: calc(-1 * var(--wy-nav-h, 64px));
    }

    html body.wy-responsive[data-responsive-page="about"] #top .pghero__media {
        top: 0;
        height: calc(clamp(208px, 56vw, 320px) + var(--wy-nav-h, 64px));
    }
}

/* 1023 SERVICES / FEATURES · 2026-10-26, explicitly requested.
   Reference: Consumer Insights CORE CAPABILITIES and the approved GEO rows.
   Static alternating 6+1+5 grid, H2/body tokens, 16:10 media and the same
   96px/64px reading rhythm. Original square artwork is contained intact;
   Global Ops retains its native 896x560 stage and single resize owner. */
html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__header {
    margin: 0 0 var(--wy-s9) !important;
}

html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__header .sec-label {
    margin: 0 0 var(--wy-s4);
}

html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__header .h1 {
    margin: 0;
    max-width: 1000px;
}

html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__list {
    display: grid;
    row-gap: var(--wy-s9);
}

html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__item {
    display: grid;
    grid-template-columns: repeat(var(--wy-cols), minmax(0, 1fr));
    column-gap: var(--wy-layout-gutter);
    align-items: center;
    min-width: 0;
}

html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__item:nth-child(3) {
    margin-block-start: var(--wy-s5);
}

html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__copy {
    grid-column: 8/13;
    grid-row: 1;
    min-width: 0;
}

html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__item:nth-child(even) .wy-flat__copy {
    grid-column: 1/6;
}

html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__copy .h2 {
    margin: 0;
    color: var(--wy-ink);
}

html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__copy :is(.body, .blist) {
    margin: var(--wy-gap-title) 0 0;
    padding: 0;
    color: var(--wy-g700);
    font-size: var(--wy-fs-body);
    line-height: var(--wy-lh-body);
}

html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__visual {
    position: relative;
    grid-column: 1/7 !important;
    grid-row: 1 !important;
    order: initial !important;
    width: 100%;
    height: auto !important;
    min-width: 0;
    margin: 0 !important;
    aspect-ratio: 16/10 !important;
    overflow: hidden;
    border-radius: var(--wy-r-2xl);
    isolation: isolate;
}

html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__item:nth-child(even) .wy-flat__visual {
    grid-column: 7/13 !important;
}

html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__visual>.svx {
    inset: 0 auto 0 18.75%;
    width: 62.5%;
    height: 100%;
    aspect-ratio: 1;
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: none;
    container-type: inline-size;
}

html body.wy-responsive[data-responsive-page] #services.wy-flat-capabilities .ops-services__artwork {
    width: 896px;
    height: 560px;
    transform-origin: 0 0;
    zoom: 1;
    transform: scale(var(--ops-services-scale, 1));
}

html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .ops-services__frame {
    container-type: inline-size;
}

/* Keep the native stage fitted even before, or without, its JS resize owner. */
@supports (transform:scale(calc(100cqw / 896px))) {
    html body.wy-responsive[data-responsive-page] #services.wy-flat-capabilities .ops-services__artwork {
        transform: scale(var(--ops-services-scale, calc(100cqw / 896px)));
    }
}

html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .ops-services__media {
    width: 100%;
    height: 100%;
    aspect-ratio: 16/10;
}

@media(min-width:1024px) and (max-width:1199px) {
    html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__header {
        margin-bottom: var(--wy-gap-head) !important;
    }

    html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__list {
        row-gap: var(--wy-s8);
    }
}

@media(max-width:1023px) {
    html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__item {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: var(--wy-s6);
    }

    html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__copy {
        order: -1;
    }

    html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__header {
        margin-bottom: var(--wy-gap-head) !important;
    }

    html body.wy-responsive[data-responsive-page] .wy-flat-capabilities .wy-flat__list {
        row-gap: var(--wy-s8);
    }
}

@media(max-width:767px) {
    html body.wy-responsive[data-responsive-page] .wy-flat-capabilities {
        padding-block: var(--wy-s8) !important;
    }
}

/* 1023 mobile content structure · 2026-10-26 continuation.
   Reference: Contentstack's media > copy > actions, then discrete reading
   sections. Keep the approved WUYUE type scale, artwork, tabs and UI stages.
   Only phones change; desktop/tablet keep their existing composition. */
@media(max-width:767px) {

    html body.wy-responsive:is([data-responsive-page="solution-global-site"],
        [data-responsive-page="solution-global-ops"],
        [data-responsive-page="solution-geo-seo"],
        [data-responsive-page="solution-consumer-insights"],
        [data-responsive-page="product-ai-doc"],
        [data-responsive-page="join"], [data-responsive-page="partners"]) #top :is(.shv1__in, .aihero__txt) {
        gap: 0 !important;
    }

    html body.wy-responsive:is([data-responsive-page="solution-global-site"],
        [data-responsive-page="solution-global-ops"],
        [data-responsive-page="solution-geo-seo"],
        [data-responsive-page="solution-consumer-insights"],
        [data-responsive-page="product-ai-doc"],
        [data-responsive-page="join"], [data-responsive-page="partners"]) #top .shv1__h {
        margin: 0 !important;
        max-width: 100%;
    }

    html body.wy-responsive:is([data-responsive-page="solution-global-site"],
        [data-responsive-page="solution-global-ops"],
        [data-responsive-page="solution-geo-seo"],
        [data-responsive-page="solution-consumer-insights"],
        [data-responsive-page="product-ai-doc"],
        [data-responsive-page="join"]) #top .shv1__sub {
        margin: var(--wy-s4) 0 0 !important;
    }

    html body.wy-responsive:is([data-responsive-page="solution-global-site"],
        [data-responsive-page="solution-global-ops"],
        [data-responsive-page="solution-geo-seo"],
        [data-responsive-page="solution-consumer-insights"],
        [data-responsive-page="product-ai-doc"],
        [data-responsive-page="join"]) #top .shv1__btn {
        margin: var(--wy-s5) 0 0 !important;
    }

    /* Keep the right-hand artwork in view when a wide desktop SVG is used
     as the upper mobile visual. Its original viewBox and geometry stay intact. */
    html body.wy-responsive:is([data-responsive-page="solution-global-site"], [data-responsive-page="solution-global-ops"], [data-responsive-page="solution-geo-seo"]) #top .shv1__bg {
        overflow: hidden;
    }

    html body.wy-responsive:is([data-responsive-page="solution-global-site"], [data-responsive-page="solution-global-ops"], [data-responsive-page="solution-geo-seo"]) #top .shv1__bg>svg {
        position: absolute;
        inset: 0 0 auto auto;
        width: auto;
        height: 100%;
        min-width: 100%;
        aspect-ratio: 1994/789;
    }

    /* Let the long Ops title wrap by its existing semantic word groups. */
    html body.wy-responsive[data-responsive-page="solution-global-ops"] #top .shv1__h br {
        display: none;
    }

    /* Remove the desktop overlapping-panel height budgets on phones. */
    html body.wy-responsive[data-responsive-page="index"] :is(#solutions .sol__panel, #agents .agt__panel) {
        min-height: 0;
        margin-block: 0;
        padding-block: var(--wy-s8);
        justify-content: flex-start;
    }

    html body.wy-responsive[data-responsive-page="index"] #why {
        min-height: 0;
        margin-block-start: 0;
        padding-block: var(--wy-s8) !important;
    }

    html body.wy-responsive[data-responsive-page="index"] #solutions .sec-head {
        margin-bottom: var(--wy-s6) !important;
    }

    html body.wy-responsive[data-responsive-page="index"] #agents .agt__wide {
        padding-block-end: 0;
    }

    html body.wy-responsive[data-responsive-page="index"] #why .why__grid {
        width: 100%;
        padding-inline: var(--wy-mobile-gutter);
        row-gap: var(--wy-s6);
    }

    html body.wy-responsive[data-responsive-page="index"] #why .why__wide {
        padding: 0 !important;
    }

    html body.wy-responsive[data-responsive-page="index"] #why .why__band {
        margin: 0;
    }

    html body.wy-responsive[data-responsive-page="index"] #why #whyc {
        margin: 0;
    }

    html body.wy-responsive[data-responsive-page="index"] #why #whyc .wc .wfig {
        margin-block-end: var(--wy-s5) !important;
    }

    html body.wy-responsive[data-responsive-page]:not([data-responsive-page="cases"]) #cases.fill-cases--story {
        padding-block: var(--wy-s8) !important;
    }
}

/* Mobile section actions · 2026-10-26 user direction.
   Every section heading keeps its action directly below the heading copy.
   Content buttons use the existing compact CTA footprint; hero/navigation
   and simulated UI controls retain their own layout contracts. */
@media(max-width:767px) {
    html body.wy-responsive[data-responsive-page] :is(.sec-head--row, .sec-head--split, .fill-cases__head, .adobe-aem__head):has(> .btn) {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;
        gap: var(--wy-s6) !important;
    }

    html body.wy-responsive[data-responsive-page] :is(.sec-head--row, .sec-head--split, .fill-cases__head, .adobe-aem__head)>.btn {
        order: initial !important;
        margin: 0 !important;
    }

    html body.wy-responsive[data-responsive-page] .btn:not(:where(#top *, #nav *, .wy-menu *, .stage *, .fit *, .svx *)) {
        width: fit-content !important;
        max-width: 100%;
        min-width: 0 !important;
        flex: none !important;
        align-self: flex-start !important;
        justify-self: start !important;
    }

    /* The 56px mobile artwork stays at its approved scale, centred optically
     inside its original 72px box instead of shrinking toward the left edge. */
    html body.wy-responsive[data-responsive-page="index"] #why :is(.hero3__in, .wtitle),
    html body.wy-responsive[data-responsive-page="index"] #why #whyc :is(.wc, .wc .h3, .wc .body) {
        text-align: center !important;
    }

    html body.wy-responsive[data-responsive-page="index"] #why #whyc .wc {
        align-items: center !important;
    }

    html body.wy-responsive[data-responsive-page="index"] #why #whyc .wc .wfig {
        align-self: center;
        margin-inline: auto !important;
        transform-origin: center center !important;
    }
}

/* Shared CASES mobile track · 2026-10-26 user direction.
   Extend the approved home layout to all story sections; the success-case
   listing retains its independent editorial layout and interactions.
   Match AI Agents' native card width, 16px gap, edge bleed and next-card
   preview. Keep the existing photographic cards and content-led height;
   controls inherit the shared railnav / wyprog appearance without a skin. */
html body.wy-responsive[data-responsive-page]:not([data-responsive-page="cases"]) #cases.fill-cases--story .wy-cases-controls {
    display: none;
}

@media(max-width:1023px) {
    html body.wy-responsive[data-responsive-page]:not([data-responsive-page="cases"]) #cases.fill-cases--story .fill-cases__set {
        --wy-case-width: min(360px, calc(100vw - 72px));
        display: grid;
        grid-template-columns: none !important;
        grid-template-rows: 1fr;
        grid-auto-flow: column;
        grid-auto-columns: var(--wy-case-width);
        gap: var(--wy-s4) !important;
        width: calc(100% + var(--wy-case-bleed, 48px));
        max-width: none;
        box-sizing: border-box;
        margin-inline: var(--wy-case-offset, -24px) 0;
        padding-inline: 24px;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: none;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 24px;
        overscroll-behavior-x: contain;
        -webkit-overflow-scrolling: touch;
    }

    html body.wy-responsive[data-responsive-page]:not([data-responsive-page="cases"]) #cases.fill-cases--story .fill-cases__set::-webkit-scrollbar {
        display: none;
    }

    html body.wy-responsive[data-responsive-page]:not([data-responsive-page="cases"]) #cases.fill-cases--story .fill-case {
        min-width: 0;
        min-height: var(--wy-case-width) !important;
        height: auto;
        aspect-ratio: auto;
        scroll-snap-align: start;
        scroll-snap-stop: normal;
    }

    html body.wy-responsive:where([data-responsive-page]:not([data-responsive-page="cases"])) #cases.fill-cases--story .fill-case__content {
        min-height: 0;
        grid-template-rows: minmax(44px, 1fr) auto;
    }

    html body.wy-responsive[data-responsive-page]:not([data-responsive-page="cases"]) #cases.fill-cases--story .wy-cases-controls {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        margin-block-start: var(--wy-s4);
        padding: 0;
    }

    .wy-cases-count {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }
}

@media(prefers-reduced-motion:reduce) {
    html body.wy-responsive[data-responsive-page]:not([data-responsive-page="cases"]) #cases.fill-cases--story .wy-cases-controls .wyprog i {
        transition: none;
    }
}

/* Home AI Agents mobile backdrop · 2026-10-26 user direction.
   Follow the mobile Banner's lavender/blue field and white veil. Circular
   colour fields use viewport-width radii, independent of section height,
   so the desktop percentage ellipses cannot squeeze into vertical bands.
   Keep the shared railnav styling intact; only its resting fill is white
   on this pale coloured panel. */
@media(max-width:1023px) {
    html body.wy-responsive[data-responsive-page="index"] #agents .agt__panel {
        background:
            linear-gradient(180deg, rgba(255, 255, 255, .08) 0%, rgba(255, 255, 255, .64) 48%, rgba(255, 255, 255, .20) 100%),
            radial-gradient(circle clamp(320px, 90vw, 680px) at -8% 4%, rgba(184, 166, 230, .22) 0%, rgba(184, 166, 230, 0) 74%),
            radial-gradient(circle clamp(340px, 96vw, 720px) at 112% 22%, rgba(180, 196, 245, .20) 0%, rgba(180, 196, 245, 0) 76%),
            radial-gradient(circle clamp(300px, 86vw, 640px) at 100% 100%, rgba(180, 196, 245, .14) 0%, rgba(180, 196, 245, 0) 78%),
            #FBFAFF !important;
    }

    html body.wy-responsive[data-responsive-page="index"] #agents .wy-agents-controls button {
        background: var(--wy-g0) !important;
    }
}

@media(max-width:1023px) and (hover:hover) and (pointer:fine) {
    html body.wy-responsive[data-responsive-page="index"] #agents .wy-agents-controls button:hover:not(:disabled) {
        background: var(--wy-g100) !important;
    }
}

/* Home SOLUTIONS / Global Ops · 2026-10-26.
   Match the reviewed 1023 .cms-demo's external white selection panel,
   Separate browser with a reference-sized 104px rail at .9 scale.
   Website previews follow the supplied gallery reference using real assets.
   The existing 418×272 .fit remains the sole scaling owner. */
body[data-responsive-page="index"] #solutions .oc-cms {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns: 93.6px var(--oc-browser-width, 274px);
    gap: var(--oc-gap, 8px);
    align-content: center;
    align-items: center;
    justify-content: center;
    color: var(--wy-g700);
    font-family: var(--wy-font-cn);
    font-size: 10px;
    line-height: 1.4;
    letter-spacing: normal;
    pointer-events: none;
}

body[data-responsive-page="index"] #solutions .oc-browser {
    position: relative;
    width: var(--oc-browser-width, 274px);
    height: var(--oc-browser-height, 240px);
    overflow: hidden;
    border: 1px solid #CED3E0;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 10px 24px -16px rgba(43, 42, 64, .36);
}

body[data-responsive-page="index"] #solutions .oc-chrome {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    height: 22px;
    padding: 0;
    gap: 0;
    background: linear-gradient(#F5F5F7, #E7E8EC);
    border-bottom: 1px solid #DADBDF;
    color: var(--wy-g700);
    font: 6px/1 var(--wy-font-cn);
    white-space: nowrap;
}

body[data-responsive-page="index"] #solutions :is(.oc-toolbar-start, .oc-toolbar-end) {
    display: flex;
    align-items: center;
    height: 100%;
    min-width: 0;
}

body[data-responsive-page="index"] #solutions .oc-toolbar-brand {
    display: grid;
    place-items: center;
    width: 21px;
    height: 100%;
    border-right: 1px solid var(--wy-g100);
}

body[data-responsive-page="index"] #solutions .oc-toolbar-brand img {
    width: 11px;
    height: auto;
    border-radius: 0;
}

body[data-responsive-page="index"] #solutions .oc-cms-label {
    padding: 0 7px;
    font-family: var(--wy-font-display);
    font-size: 8px;
}

body[data-responsive-page="index"] #solutions .oc-toolbar-end {
    gap: 5px;
}

body[data-responsive-page="index"] #solutions .oc-toolbar-end svg {
    display: block;
    flex: none;
    width: 8px;
    height: 8px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body[data-responsive-page="index"] #solutions :is(.oc-toolbar-preview, .oc-toolbar-action) {
    display: grid;
    place-items: center;
    height: 100%;
}

body[data-responsive-page="index"] #solutions .oc-toolbar-preview {
    width: 18px;
    border-inline: 1px solid var(--wy-g100);
}

body[data-responsive-page="index"] #solutions .oc-toolbar-action {
    width: 24px;
    margin-left: -5px;
    background: var(--wy-primary);
    color: #fff;
}

body[data-responsive-page="index"] #solutions .oc-workspace {
    height: calc(100% - 22px);
    background: var(--wy-g25);
}

body[data-responsive-page="index"] #solutions .oc-sidebar {
    position: relative;
    justify-self: center;
    width: 104px;
    height: 145px;
    padding: 7px 9px;
    border: 1px solid #DADDEC;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 7px 20px -14px rgba(47, 40, 83, .28);
    transform: scale(.9);
    transform-origin: center;
}

body[data-responsive-page="index"] #solutions .oc-nav {
    position: relative;
    display: flex;
    align-items: center;
    gap: 9px;
    height: 43px;
    padding: 0 2px;
    border-bottom: 1px solid var(--wy-g100);
    isolation: isolate;
    white-space: nowrap;
    font-family: var(--wy-font-display);
    font-size: 11px;
    font-weight: 400;
    color: var(--wy-g700);
    transition: color var(--wy-dur) var(--wy-ease);
}

/* Global Site / Campaign / Blog stay on one line in the outer rail. */
body[data-responsive-page="index"] #solutions .oc-nav>span {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    line-height: 1.25;
}

body[data-responsive-page="index"] #solutions .oc-nav:last-child {
    border-bottom: 0;
}

body[data-responsive-page="index"] #solutions .oc-nav::before {
    content: "";
    position: absolute;
    inset: 6px -3px;
    z-index: -1;
    border-radius: 6px;
    background: var(--wy-primary-subtle);
    box-shadow: inset 0 0 0 1px rgba(91, 62, 184, .10), 0 1px 2px rgba(47, 40, 83, .04);
    opacity: 0;
    transition: opacity var(--wy-dur) var(--wy-ease);
}

body[data-responsive-page="index"] #solutions .oc-nav svg {
    flex: none;
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.1;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body[data-responsive-page="index"] #solutions .oc-main {
    min-width: 0;
    height: 100%;
    padding: 10px 11px 8px;
}

body[data-responsive-page="index"] #solutions .oc-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 18px;
    margin-bottom: 6px;
}

body[data-responsive-page="index"] #solutions .oc-titles {
    position: relative;
    flex: 1;
    height: 17px;
    font-size: 12px;
    font-weight: 500;
    color: var(--wy-ink);
}

body[data-responsive-page="index"] #solutions .oc-titles>span {
    position: absolute;
    left: 0;
    top: 0;
    opacity: 0;
    transition: opacity var(--wy-dur-fast) var(--wy-ease);
}

body[data-responsive-page="index"] #solutions .oc-add {
    position: relative;
    width: 19px;
    height: 16px;
    border: 1px solid var(--wy-g100);
    border-radius: 4px;
    background: #fff;
}

body[data-responsive-page="index"] #solutions .oc-add::before,
body[data-responsive-page="index"] #solutions .oc-add::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 6.5px;
    width: 7px;
    height: 1px;
    background: var(--wy-g500);
}

body[data-responsive-page="index"] #solutions .oc-add::after {
    transform: rotate(90deg);
}

/* Website gallery: 2×2 cards, each built as a real mini website rather than
   a CMS data row. Reuse AURA assets and already approved brand/locale copy. */
body[data-responsive-page="index"] #solutions .oc-folders {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    height: 18px;
    margin-bottom: 8px;
}

body[data-responsive-page="index"] #solutions .oc-folders>span {
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    padding: 0 5px;
    border: 1px solid var(--wy-g100);
    border-radius: 4px;
    background: #fff;
    color: var(--wy-g700);
    font: 7px/1 var(--wy-font-display);
}

body[data-responsive-page="index"] #solutions .oc-folders svg {
    flex: none;
    width: 8px;
    height: 8px;
    fill: var(--wy-blue-light);
}

body[data-responsive-page="index"] #solutions .oc-folders>span>i {
    width: 5px;
    height: 1px;
    margin-left: auto;
    background: radial-gradient(circle, var(--wy-g400) .5px, transparent .6px) 0 0 / 2px 1px;
}

body[data-responsive-page="index"] #solutions .oc-gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 83px;
    gap: 8px;
}

body[data-responsive-page="index"] #solutions .oc-site-card {
    min-width: 0;
    height: 83px;
    overflow: hidden;
    border: 1px solid #DFE2E9;
    border-radius: 5px;
    background: #fff;
    box-shadow: 0 2px 5px -3px rgba(43, 42, 64, .15);
    transition: opacity var(--wy-dur) var(--wy-ease), transform var(--wy-dur) var(--wy-ease);
}

body[data-responsive-page="index"] #solutions .oc-site-preview {
    display: flex;
    flex-direction: column;
    height: 65px;
    overflow: hidden;
    background: #fff;
}

body[data-responsive-page="index"] #solutions .oc-mini-nav {
    display: flex;
    align-items: center;
    gap: 4px;
    flex: none;
    height: 8px;
    padding: 0 5px;
    background: #fff;
}

body[data-responsive-page="index"] #solutions .oc-mini-nav b {
    margin-right: auto;
    color: var(--wy-ink);
    font: 600 5px/1 var(--wy-font-display);
    letter-spacing: normal;
}

body[data-responsive-page="index"] #solutions .oc-mini-nav>i {
    width: 12px;
    height: 1px;
    background: #C6CAD3;
}

body[data-responsive-page="index"] #solutions .oc-mini-nav>span {
    width: 10px;
    height: 3px;
    border-radius: 1px;
    background: var(--wy-primary-subtle);
}

body[data-responsive-page="index"] #solutions .oc-mini-hero {
    position: relative;
    flex: 1;
    min-height: 0;
    overflow: hidden;
    background: linear-gradient(120deg, #F3F5F9, #E6ECF3);
}

body[data-responsive-page="index"] #solutions .oc-mini-hero img {
    position: absolute;
    right: 0;
    top: 0;
    width: 65%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
    border-radius: 0;
    transition: opacity var(--wy-dur) var(--wy-ease);
}

body[data-responsive-page="index"] #solutions .oc-mini-hero .oc-blog-image {
    opacity: 0;
}

body[data-responsive-page="index"] #solutions .oc-mini-title {
    position: absolute;
    z-index: 2;
    left: 6px;
    top: 8px;
    max-width: 55%;
    color: #232838;
    font: 500 5.5px/1.2 var(--wy-font-display);
    letter-spacing: normal;
}

body[data-responsive-page="index"] #solutions .oc-mini-cta {
    position: absolute;
    z-index: 2;
    left: 6px;
    bottom: 7px;
    width: 19px;
    height: 4px;
    border-radius: 1px;
    background: var(--wy-primary);
}

body[data-responsive-page="index"] #solutions .oc-mini-body {
    display: flex;
    align-items: center;
    gap: 3px;
    flex: none;
    height: 10px;
    padding: 2px 4px;
    background: #fff;
}

body[data-responsive-page="index"] #solutions .oc-mini-copy {
    flex: 1;
    min-width: 0;
}

body[data-responsive-page="index"] #solutions .oc-mini-copy>i {
    display: block;
    width: 80%;
    height: 1px;
    margin-top: 1px;
    background: #C6CAD3;
}

body[data-responsive-page="index"] #solutions .oc-mini-copy>i:nth-child(2) {
    width: 61%;
    background: #E0E3E8;
}

body[data-responsive-page="index"] #solutions .oc-mini-copy>i:nth-child(3) {
    width: 72%;
    background: #E0E3E8;
}

body[data-responsive-page="index"] #solutions .oc-mini-body>img {
    flex: none;
    width: 14px;
    height: 8px;
    object-fit: cover;
    border-radius: 1px;
}

body[data-responsive-page="index"] #solutions .oc-mini-section {
    width: 14px;
    height: 6px;
    border-radius: 1px;
    background: var(--wy-blue-subtle);
}

body[data-responsive-page="index"] #solutions .oc-site-card--split .oc-campaign-image {
    left: 0;
    right: auto;
    width: 55%;
}

body[data-responsive-page="index"] #solutions .oc-site-card--split :is(.oc-mini-title, .oc-mini-cta) {
    left: 58%;
}

body[data-responsive-page="index"] #solutions .oc-site-card--ink .oc-mini-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(90deg, rgba(35, 40, 56, .9), rgba(35, 40, 56, 0) 85%);
}

body[data-responsive-page="index"] #solutions .oc-site-card--ink .oc-mini-title {
    color: #fff;
}

body[data-responsive-page="index"] #solutions .oc-site-card--ink .oc-mini-cta {
    background: #fff;
}

body[data-responsive-page="index"] #solutions .oc-site-card--editorial .oc-campaign-image {
    width: 100%;
    object-position: center 30%;
}

body[data-responsive-page="index"] #solutions .oc-site-card--editorial .oc-mini-title {
    top: 4px;
    padding: 1px 2px;
    background: rgba(255, 255, 255, .86);
}

body[data-responsive-page="index"] #solutions .oc-site-caption {
    display: flex;
    align-items: center;
    gap: 4px;
    height: 16px;
    padding: 0 5px;
    border-top: 1px solid #EEF0F3;
    color: var(--wy-g700);
    font: 6.5px/1 var(--wy-font-display);
}

body[data-responsive-page="index"] #solutions .oc-site-locale {
    margin-left: auto;
    color: var(--wy-g500);
    font-size: 6px;
}

body[data-responsive-page="index"] #solutions .oc-site-more {
    flex: none;
    width: 6px;
    height: 2px;
    background: radial-gradient(circle, var(--wy-g400) .6px, transparent .7px) 0 0 / 2px 2px;
}

body[data-responsive-page="index"] #solutions .oc-cms[data-step="idle"] .oc-site-card {
    opacity: 0;
    transform: translateY(6px);
}

body[data-responsive-page="index"] #solutions .oc-cms[data-step="sites"] .oc-site-card:nth-child(2) {
    transition-delay: 80ms;
}

body[data-responsive-page="index"] #solutions .oc-cms[data-step="sites"] .oc-site-card:nth-child(3) {
    transition-delay: 160ms;
}

body[data-responsive-page="index"] #solutions .oc-cms[data-step="sites"] .oc-site-card:nth-child(4) {
    transition-delay: 240ms;
}

body[data-responsive-page="index"] #solutions .oc-cms[data-step="campaign"] .oc-site-card {
    animation: ocCampaignCard var(--wy-dur) var(--wy-ease) both;
}

body[data-responsive-page="index"] #solutions .oc-cms[data-step="campaign"] .oc-site-card:nth-child(2) {
    animation-delay: 80ms;
}

body[data-responsive-page="index"] #solutions .oc-cms[data-step="campaign"] .oc-site-card:nth-child(3) {
    animation-delay: 160ms;
}

body[data-responsive-page="index"] #solutions .oc-cms[data-step="campaign"] .oc-site-card:nth-child(4) {
    animation-delay: 240ms;
}

@keyframes ocCampaignCard {
    from {
        opacity: 0;
        transform: translateY(6px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

body[data-responsive-page="index"] #solutions .oc-cms:is([data-step="blog"], [data-step="done"]) .oc-mini-body {
    height: 15px;
}

body[data-responsive-page="index"] #solutions .oc-cms:is([data-step="blog"], [data-step="done"]) .oc-mini-hero .oc-blog-image {
    width: 100%;
}

body[data-responsive-page="index"] #solutions .oc-site-card--hero .oc-blog-image {
    object-position: 65% 20%;
}

body[data-responsive-page="index"] #solutions .oc-cms:is([data-step="blog"], [data-step="done"]) .oc-mini-title {
    left: 4px;
    top: 3px;
    padding: 1px 2px;
    color: var(--wy-ink);
    background: rgba(255, 255, 255, .9);
}

body[data-responsive-page="index"] #solutions .oc-cms:is([data-step="blog"], [data-step="done"]) .oc-mini-cta {
    opacity: 0;
}

body[data-responsive-page="index"] #solutions .oc-cms:is([data-step="blog"], [data-step="done"]) .oc-site-card--ink .oc-mini-hero::after {
    opacity: 0;
}

@media(max-width:767px) {
    body[data-responsive-page="index"] #solutions .oc-main {
        padding: 8px 9px 6px;
    }

    body[data-responsive-page="index"] #solutions .oc-folders {
        height: 16px;
        gap: 4px;
        margin-bottom: 6px;
    }

    body[data-responsive-page="index"] #solutions .oc-gallery {
        grid-auto-rows: 64px;
        gap: 6px;
    }

    body[data-responsive-page="index"] #solutions .oc-site-card {
        height: 64px;
    }

    body[data-responsive-page="index"] #solutions .oc-site-preview {
        height: 48px;
    }

    body[data-responsive-page="index"] #solutions .oc-site-caption {
        height: 14px;
    }

    body[data-responsive-page="index"] #solutions .oc-mini-nav {
        height: 7px;
    }

    body[data-responsive-page="index"] #solutions .oc-mini-body {
        height: 8px;
    }

    body[data-responsive-page="index"] #solutions .oc-cms:is([data-step="blog"], [data-step="done"]) .oc-mini-body {
        height: 12px;
    }
}

body[data-responsive-page="index"] #solutions .oc-metric {
    position: absolute;
    z-index: 3;
    left: var(--oc-metric-left, 258px);
    width: 144px;
    padding: 11px 14px 10px;
    border: 1px solid #DADDEC;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 7px 20px -14px rgba(47, 40, 83, .28);
    opacity: 0;
    transform: translateY(8px);
    transition: opacity var(--wy-dur-fast) var(--wy-ease), transform var(--wy-dur-fast) var(--wy-ease);
}

body[data-responsive-page="index"] #solutions .oc-metric--campaign,
body[data-responsive-page="index"] #solutions .oc-metric--blog {
    top: var(--oc-metric-top, 100px);
}

body[data-responsive-page="index"] #solutions .oc-cms[data-step="campaign"] .oc-metric--campaign {
    transition-duration: var(--wy-dur);
}

body[data-responsive-page="index"] #solutions .oc-cms[data-step="blog"] .oc-metric--blog {
    transition-duration: var(--wy-dur);
    transition-delay: var(--wy-dur-fast);
}

body[data-responsive-page="index"] #solutions .oc-metric__label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 10px;
    color: var(--wy-g500);
}

body[data-responsive-page="index"] #solutions .oc-metric__label>i {
    position: relative;
    display: block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--wy-primary-subtle);
}

body[data-responsive-page="index"] #solutions .oc-metric__label>i::after {
    content: "";
    position: absolute;
    left: 3.5px;
    top: 3px;
    width: 5px;
    height: 3px;
    border-left: 1px solid var(--wy-primary);
    border-bottom: 1px solid var(--wy-primary);
    transform: rotate(-45deg);
}

body[data-responsive-page="index"] #solutions .oc-metric strong {
    display: flex;
    align-items: center;
    height: 1.1em;
    margin-top: 3px;
    font-family: var(--wy-font-display);
    font-size: 29px;
    font-weight: 500;
    font-variant-numeric: tabular-nums lining-nums;
    line-height: 1.1;
    letter-spacing: normal;
    color: var(--wy-ink);
}

body[data-responsive-page="index"] #solutions .oc-plus {
    margin-left: 2px;
    font-size: 21px;
}

body[data-responsive-page="index"] #solutions .oc-count {
    display: inline-flex;
}

body[data-responsive-page="index"] #solutions .oc-digit {
    display: block;
    width: .62em;
    height: 1.1em;
    overflow: hidden;
}

body[data-responsive-page="index"] #solutions .oc-digit__track {
    display: block;
    transform: translateY(calc(var(--oc-roll-to) * -1.1em));
}

body[data-responsive-page="index"] #solutions .oc-digit__track>span {
    display: block;
    height: 1.1em;
    line-height: 1.1;
}

body[data-responsive-page="index"] #solutions .oc-count[data-roll="ready"] .oc-digit__track {
    transform: translateY(0);
}

body[data-responsive-page="index"] #solutions .oc-count[data-roll="rolling"] .oc-digit__track {
    animation: ocDigitRoll 1100ms var(--wy-ease) var(--oc-roll-delay) both;
}

@keyframes ocDigitRoll {
    from {
        transform: translateY(0);
    }

    to {
        transform: translateY(calc(var(--oc-roll-to) * -1.1em));
    }
}

body[data-responsive-page="index"] #solutions .oc-cursor {
    transition: opacity var(--wy-dur) var(--wy-ease), transform .62s var(--wy-ease);
}

body[data-responsive-page="index"] #solutions .oc-cursor svg {
    transition: transform var(--wy-dur-fast) var(--wy-ease);
}

body[data-responsive-page="index"] #solutions .oc-cms[data-step="sites"] .oc-nav--sites::before,
body[data-responsive-page="index"] #solutions .oc-cms[data-step="campaign"] .oc-nav--campaign::before,
body[data-responsive-page="index"] #solutions .oc-cms:is([data-step="blog"], [data-step="done"]) .oc-nav--blog::before,
body[data-responsive-page="index"] #solutions .oc-cms[data-step="sites"] .oc-title--sites,
body[data-responsive-page="index"] #solutions .oc-cms[data-step="idle"] .oc-title--sites,
body[data-responsive-page="index"] #solutions .oc-cms[data-step="campaign"] .oc-title--campaign,
body[data-responsive-page="index"] #solutions .oc-cms:is([data-step="blog"], [data-step="done"]) .oc-title--blog {
    opacity: 1;
}

body[data-responsive-page="index"] #solutions .oc-cms[data-step="campaign"] .oc-metric--campaign,
body[data-responsive-page="index"] #solutions .oc-cms:is([data-step="blog"], [data-step="done"]) .oc-metric--blog {
    opacity: 1;
    transform: none;
}

body[data-responsive-page="index"] #solutions .oc-cms:is([data-step="blog"], [data-step="done"]) .oc-blog-image {
    opacity: 1;
}

body[data-responsive-page="index"] #solutions .oc-cms:is([data-step="blog"], [data-step="done"]) .oc-campaign-image {
    opacity: 0;
}

/* 2026-10-28 artwork audit: keep the complete AURA phone pair in the
   miniature website's image region, including Campaign / Blog states.
   The surrounding banner retains its original text field and background;
   this uses the existing .fit stage and adds no scaling controller. */
body[data-responsive-page="index"] #solutions .oc-cms .oc-mini-hero>img:is(.oc-campaign-image, .oc-blog-image)[src="assets/brand-demo/aura-x1-pro-hero.png"] {
    width: auto;
    max-width: 100%;
    aspect-ratio: 1536 / 1024;
}

body[data-responsive-page="index"] #solutions .oc-cms[data-step="sites"] .oc-nav--sites,
body[data-responsive-page="index"] #solutions .oc-cms[data-step="campaign"] .oc-nav--campaign,
body[data-responsive-page="index"] #solutions .oc-cms:is([data-step="blog"], [data-step="done"]) .oc-nav--blog {
    color: var(--wy-primary);
}

@media (prefers-reduced-motion:reduce) {
    body[data-responsive-page="index"] #solutions .oc-cms * {
        transition: none !important;
    }

    body[data-responsive-page="index"] #solutions .oc-cms .oc-metric {
        transform: none;
    }

    body[data-responsive-page="index"] #solutions .oc-cms .oc-cursor {
        display: none;
    }

    body[data-responsive-page="index"] #solutions .oc-cms .oc-digit__track {
        animation: none !important;
        transform: translateY(calc(var(--oc-roll-to) * -1.1em)) !important;
    }

    body[data-responsive-page="index"] #solutions .oc-cms .oc-site-card {
        animation: none !important;
    }
}

/* Match the first solution rail's 93.6px visual width, then spend the released
   space on the browser. The fit owner and all outer card geometry stay intact.
   The result card retains a small right/bottom overlap, clear of the toolbar. */
body[data-responsive-page="index"] #solutions .oc-cms--spacious {
    inset: -16px -30px;
    --oc-browser-width: 348.4px;
    --oc-browser-height: 266px;
    --oc-gap: 12px;
    --oc-metric-left: 334px;
    --oc-metric-top: 232px;
}

@media(max-width:767px) {
    body[data-responsive-page="index"] #solutions .oc-cms--spacious {
        inset: 0;
        --oc-browser-width: 300px;
        --oc-browser-height: 224px;
        --oc-gap: 8px;
        --oc-metric-left: 270px;
        --oc-metric-top: 192px;
    }
}

/* Product / Solution WHY WUYUE · 2026-10-27 mobile-only correction.
   User clarification: match the homepage only on mobile (<=767px).
   Desktop and tablet retain their original background, layout and spacing.
   Preserve existing copy, typography, icon sizes and load behaviour. */
@media(max-width:767px) {
    html body.wy-responsive[data-responsive-page] :is(#adv, #whyg).why-wuyue--home-centered-mobile {
        background: var(--wy-g0, #fff) !important;
    }

    html body.wy-responsive[data-responsive-page] :is(#adv, #whyg).why-wuyue--home-centered-mobile> :is(.why__grid, .whyg__layout, .ci-why-layout) {
        display: grid;
        grid-template-columns: minmax(0, 1fr) !important;
        row-gap: var(--wy-s6);
        align-items: start;
    }

    html body.wy-responsive[data-responsive-page] :is(#adv, #whyg).why-wuyue--home-centered-mobile :is(.why__band, .hero3__in, .sec-head, .wtitle) {
        grid-column: 1/-1;
        min-width: 0;
        margin: 0 !important;
        text-align: center !important;
    }

    /* Section headings follow each page's desktop alignment. Global Site's
     centred #adv heading stays centred; the other four #whyg heads stay left.
     This exception addresses only the heading block and its eyebrow. */
    html body.wy-responsive[data-responsive-page] #whyg.why-wuyue--home-centered-mobile .sec-head {
        text-align: left !important;
    }

    html body.wy-responsive[data-responsive-page] #whyg.why-wuyue--home-centered-mobile .sec-head .sec-label {
        margin-inline: 0 !important;
        text-align: left !important;
    }

    html body.wy-responsive[data-responsive-page] :is(#adv, #whyg).why-wuyue--home-centered-mobile :is(.whys3, .whyg__grid, .ci-reasons) {
        grid-column: 1/-1;
        display: grid;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: var(--wy-s7) var(--wy-layout-gutter) !important;
        min-width: 0;
        margin: 0;
    }

    html body.wy-responsive[data-responsive-page] :is(#adv, #whyg).why-wuyue--home-centered-mobile :is(.wc, .whyg__item, .ci-reasons>article) {
        display: flex !important;
        flex-direction: column;
        row-gap: 0;
        align-items: center !important;
        min-width: 0;
        text-align: center !important;
    }

    html body.wy-responsive[data-responsive-page] :is(#adv, #whyg).why-wuyue--home-centered-mobile :is(.whyg__txt, .ci-reasons>article>div) {
        width: 100%;
        min-width: 0;
    }

    html body.wy-responsive[data-responsive-page] :is(#adv, #whyg).why-wuyue--home-centered-mobile :is(.h3, .body) {
        grid-column: auto !important;
        text-align: center !important;
        margin-inline: auto !important;
    }

    html body.wy-responsive[data-responsive-page] :is(#adv, #whyg).why-wuyue--home-centered-mobile .h3 {
        margin-block: 0 var(--wy-s3) !important;
    }

    html body.wy-responsive[data-responsive-page] :is(#adv, #whyg).why-wuyue--home-centered-mobile .body {
        margin-block: 0 !important;
    }

    /* The legacy Swiss rules address both #adv and #advc with !important. */
    html body.wy-responsive #adv.why-wuyue--home-centered-mobile #advc :is(.wc, .h3, .body) {
        text-align: center !important;
    }

    html body.wy-responsive #adv.why-wuyue--home-centered-mobile #advc .wc {
        align-items: center !important;
    }

    html body.wy-responsive #adv.why-wuyue--home-centered-mobile #advc :is(.wfig, .h3, .body),
    html body.wy-responsive #whyg.why-wuyue--home-centered-mobile .sec-label {
        margin-inline: auto !important;
    }

    html body.wy-responsive[data-responsive-page] :is(#adv, #whyg).why-wuyue--home-centered-mobile :is(.wfig, .whyg__ic, .ci-line-icon, .geo-choice-icon) {
        flex: none;
        align-self: center;
        margin: 0 auto var(--wy-s5) !important;
        transform-origin: center center !important;
    }

    /* Match the homepage's single mobile gutter, avoiding the old nested inset. */
    html body.wy-responsive[data-responsive-page] #adv.why-wuyue--home-centered-mobile .why__grid {
        padding-inline: var(--wy-mobile-gutter);
    }

    html body.wy-responsive[data-responsive-page] #adv.why-wuyue--home-centered-mobile .why__wide {
        padding: 0 !important;
    }
}

/* 1023 mobile UI artwork · 2026-10-27, approved whole-composition sample.
   Preserve the 16:10 frame and existing desktop composition. Only opt in the
   five Global Site SERVICES and eight CN/EN Consumer Insights figures whose
   compact type floors previously diverged from their window geometry. */
html body.wy-responsive[data-responsive-page="solution-global-site"] #services [data-wy-ui-artwork="global-site"] {
    --wy-artwork-query: global-site-artwork;
}

/* The structural artboard is display:contents above the mobile capacity.
   Retain the original direct-child .svx rule after adding this one wrapper. */
html body.wy-responsive[data-responsive-page="solution-global-site"] #services [data-wy-ui-artwork="global-site"]>.wy-ui-artboard>.svx {
    position: absolute;
    inset: 0 auto 0 18.75%;
    width: 62.5%;
    height: 100%;
    aspect-ratio: 1;
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: none;
    container-type: inline-size;
}

html body.wy-responsive.wy-consumer-insights [data-wy-ui-artwork="consumer"] {
    --wy-artwork-query: gcp-artwork;
}

@media(max-width:767px) {
    @supports (transform:scale(calc(1px / 1px))) or (transform:scale(tan(atan2(1px, 1px)))) {

        /* Figcaption stays a direct figure child for its native semantics. Its
       original position and fluid type follow the same reference geometry. */
        html body.wy-responsive.wy-consumer-insights [data-wy-ui-artwork="consumer"]>.gcp-caption {
            z-index: 2;
            right: 4.3269%;
            bottom: 4.0385%;
            font-size: 1.5625cqw;
            line-height: 1.4;
        }
    }
}

/* 2026-10-27 inner mobile banners: reference Global Site at 390px.
   Its upper artwork is 64 + clamp(208px,56vw,320px), followed by 24px,
   a 264px copy/action budget and 48px below. Keep content-driven growth;
   typography stays on the existing 36/48, 16/28 and 44px button tokens.
   Only existing banners opt in; homepage and compact editorial/list heads
   retain their approved structures. */
@media(max-width:767px) {
    html body.wy-responsive:not([data-responsive-page="index"]) {
        --wy-inner-art: calc(var(--wy-nav-h, 64px) + clamp(208px, 56vw, 320px));
        --wy-inner-copy: 264px;
        --wy-inner-hero-min: calc(var(--wy-inner-art) + var(--wy-s5) + var(--wy-inner-copy) + var(--wy-s7));
    }

    html body.wy-responsive:not([data-responsive-page="index"]) #top.shv1 {
        --wy-inner-copy-inset: 0px;
        height: auto !important;
        min-height: var(--wy-inner-hero-min) !important;
        padding-block: calc(var(--wy-inner-art) + var(--wy-s5)) var(--wy-s7) !important;
    }

    html body.wy-responsive:is([data-responsive-page="solution-global-site"], [data-responsive-page="solution-global-ops"], [data-responsive-page="solution-geo-seo"], [data-responsive-page="solution-consumer-insights"], [data-responsive-page="join"], [data-responsive-page="partners"]) #top.shv1 {
        --wy-inner-copy-inset: var(--wy-s5);
        padding-block: var(--wy-nav-h, 64px) var(--wy-s7) !important;
    }

    html body.wy-responsive:not([data-responsive-page="index"]) #top .shv1__in:not(.aihero),
    html body.wy-responsive[data-responsive-page="product-ai-doc"] #top .aihero__txt {
        display: flex;
        flex-direction: column;
        align-items: stretch !important;
        justify-content: flex-start;
        gap: 0 !important;
        min-height: var(--wy-inner-copy);
        padding-block: 0 !important;
    }

    html body.wy-responsive:not([data-responsive-page="index"]) #top>.container.shv1__in:not(.aihero) {
        min-height: calc(var(--wy-inner-copy) + var(--wy-inner-copy-inset));
        padding-block: var(--wy-inner-copy-inset) 0 !important;
    }

    html body.wy-responsive:not([data-responsive-page="index"]) #top:is(.shv1, .pghero--hero, .aep-experience) :is(.shv1__h, .aep-heading, .pghero__title) {
        min-height: calc(2 * var(--wy-lh-head));
        margin-block: 0 !important;
        font-size: var(--wy-fs-mega) !important;
        line-height: var(--wy-lh-head) !important;
    }

    html body.wy-responsive:not([data-responsive-page="index"]) #top:is(.shv1, .pghero--hero, .aep-experience) :is(.shv1__sub, .aep-description) {
        flex: none;
        margin-block: var(--wy-s4) var(--wy-s5) !important;
        font-size: var(--wy-fs-body) !important;
        line-height: var(--wy-lh-body) !important;
    }

    html body.wy-responsive:not([data-responsive-page="index"]) #top:is(.shv1, .pghero--hero, .aep-experience) :is(.shv1__btn, .pghero__cta) {
        flex: none;
        margin-block-start: auto !important;
        height: 44px !important;
        min-height: 44px !important;
        line-height: 1 !important;
    }

    /* The AI illustration keeps its existing SVG; fit it inside the same
     upper-media budget rather than letting its old square set title Y. */
    html body.wy-responsive[data-responsive-page="product-ai-doc"] #top.shv1 {
        padding-block: 0 var(--wy-s7) !important;
    }

    html body.wy-responsive[data-responsive-page="product-ai-doc"] #top .aihero {
        display: flex;
        flex-direction: column;
        gap: var(--wy-s5) !important;
        align-items: stretch;
    }

    html body.wy-responsive[data-responsive-page="product-ai-doc"] #top .aihero__stage {
        order: 0;
        flex: none;
        width: 100%;
        max-width: 100%;
        height: var(--wy-inner-art);
        aspect-ratio: auto;
        display: grid;
        place-items: center;
    }

    html body.wy-responsive[data-responsive-page="product-ai-doc"] #top .aihero__stage svg {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    html body.wy-responsive[data-responsive-page="product-ai-doc"] #top .aihero__txt {
        order: 1;
        width: 100%;
    }

    html body.wy-responsive[data-responsive-page="about"] #top.pghero--hero {
        display: block;
        min-height: var(--wy-inner-hero-min) !important;
        padding-block: calc(var(--wy-inner-art) + var(--wy-s5)) var(--wy-s7) !important;
    }

    html body.wy-responsive[data-responsive-page="about"] #top>.container {
        padding-block: 0 !important;
    }

    /* 2026-10-28 user reference: extend the mobile Aurora toward the title.
     Enlarge only its canvas; fade to the original media edge, retaining
     the 24px white gap before the heading and all existing hero geometry. */
    html body.wy-responsive[data-responsive-page="about"] #top .pghero__flow {
        /* Mobile review: spread the Aurora horizontally by 30%, centered.
       Keep the existing height/veil; the hero clips the 15% overhangs. */
        width: 130%;
        left: -15%;
        right: auto;
        height: calc(var(--wy-inner-art) * 1.6);
    }

    html body.wy-responsive[data-responsive-page="about"] #top::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 0;
        pointer-events: none;
        background: linear-gradient(to bottom, transparent calc(var(--wy-inner-art) - var(--wy-s7)), var(--wy-g0) var(--wy-inner-art));
    }

    /* The AEP window remains a real interactive workspace below its banner. */
    html body.wy-responsive[data-responsive-page="aep"] #top.aep-experience {
        padding-block-start: 0;
    }

    html body.wy-responsive[data-responsive-page="aep"] #top .aep-intro {
        flex: none;
        box-sizing: border-box;
        min-height: var(--wy-inner-hero-min);
        gap: 0;
        justify-content: flex-start;
        padding-block: calc(var(--wy-inner-art) + var(--wy-s5)) var(--wy-s7);
    }

    /* 2026-10-27 copy-group correction: keep the reviewed CTA baseline, but
     place all spare banner space before the complete copy/action group.
     Natural heading height + 16px + description + 24px + 44px CTA removes
     the artificial second title line and the gap formerly absorbed by CTA. */
    html body.wy-responsive:not([data-responsive-page="index"]) #top :is(.shv1__in:not(.aihero), .aihero__txt, .aep-intro):has(> .shv1__btn) {
        justify-content: flex-end;
    }

    html body.wy-responsive:not([data-responsive-page="index"]) #top :is(.shv1__in:not(.aihero), .aihero__txt, .aep-intro):has(> .shv1__btn)> :is(.shv1__h, .aep-heading) {
        min-height: 0;
    }

    html body.wy-responsive:not([data-responsive-page="index"]) #top :is(.shv1__in:not(.aihero), .aihero__txt, .aep-intro):has(> .shv1__btn)> :is(.shv1__sub, .aep-description) {
        margin-block: var(--wy-s4) 0 !important;
    }

    html body.wy-responsive:not([data-responsive-page="index"]) #top :is(.shv1__in:not(.aihero), .aihero__txt, .aep-intro):has(> .shv1__btn)>.shv1__btn {
        margin-block-start: var(--wy-s5) !important;
    }

    /* 2026-10-28: Partners has only a heading. Align its complete copy group
     to the same lower edge as other inner banners, without adding content. */
    html body.wy-responsive[data-responsive-page="partners"] #top.partners-banner>.shv1__in {
        justify-content: flex-end;
    }

    html body.wy-responsive[data-responsive-page="partners"] #top.partners-banner .shv1__h {
        min-height: 0;
    }

    /* Content reading order: headings and all accompanying copy precede media.
     These nodes now follow that same order in HTML. Artwork internals stay intact. */
    html body.wy-responsive:not([data-responsive-page="index"]) :is(.archx__fig, .svq__fig, .cf__fig, .qa2__img, .leader__photo) {
        order: 0 !important;
    }
}

/* 2026-10-28: lower the approved mobile banner artwork into its empty space.
   Keep the original bitmap, cover scale, frame, copy and actions unchanged.
   A matching sky sits behind the shifted image; a short top mask blends it.
   The image and its bottom fade move together, preserving the full shadow. */
@media(max-width:767px) {
    html body.wy-responsive[data-responsive-page="solution-consumer-insights"] #top.shv1.insights-banner .ci-banner-bg {
        --wy-mobile-banner-image: url(banners/consumer-insights/focus-global-users-v4-soft-bg.png);
        --wy-mobile-banner-offset: clamp(56px, 16.4103vw, 88px);
    }

    html body.wy-responsive[data-responsive-page="partners"] #top.shv1.partners-banner .shv1__bg {
        --wy-mobile-banner-image: url(banners/partners/co-creation-mobius-original-v4-bg.png);
        --wy-mobile-banner-offset: clamp(40px, 12.3077vw, 64px);
    }

    html body.wy-responsive[data-responsive-page="solution-consumer-insights"] #top.shv1.insights-banner .ci-banner-bg,
    html body.wy-responsive[data-responsive-page="partners"] #top.shv1.partners-banner .shv1__bg {
        background: linear-gradient(110deg, #e7f1ff, #d3e4fb);
    }

    html body.wy-responsive[data-responsive-page="solution-consumer-insights"] #top.shv1.insights-banner .ci-banner-bg::before,
    html body.wy-responsive[data-responsive-page="partners"] #top.shv1.partners-banner .shv1__bg::before {
        content: "" !important;
        position: absolute;
        inset: var(--wy-mobile-banner-offset) 0 auto;
        width: 100%;
        height: 100%;
        background: var(--wy-mobile-banner-image) right center/cover no-repeat;
        -webkit-mask-image: linear-gradient(transparent, #000 32px);
        mask-image: linear-gradient(transparent, #000 32px);
    }

    html body.wy-responsive[data-responsive-page="solution-consumer-insights"] #top.shv1.insights-banner .ci-banner-bg::after,
    html body.wy-responsive[data-responsive-page="partners"] #top.shv1.partners-banner .shv1__bg::after {
        bottom: calc(-1 * var(--wy-mobile-banner-offset));
    }
}

/* Explicit grid slots preserve the reviewed desktop/tablet composition
   after correcting semantic DOM order for stacked mobile rows. */
@media(min-width:768px) {
    html body.wy-responsive .ci-feature> :is(.ci-feature__copy, .ci-feature__media) {
        grid-row: 1;
    }
}

@media(min-width:768px) and (max-width:1023px) {

    html body.wy-responsive .ci-feature:nth-child(odd)>.ci-feature__media,
    html body.wy-responsive .ci-feature:nth-child(even)>.ci-feature__copy {
        grid-column: 1;
    }

    html body.wy-responsive .ci-feature:nth-child(odd)>.ci-feature__copy,
    html body.wy-responsive .ci-feature:nth-child(even)>.ci-feature__media {
        grid-column: 2;
    }

    html body.wy-responsive :is(.adobe-aem__panel, .adobe-proof__row)> :is(.adobe-aem__visual, .adobe-proof__media) {
        grid-row: 1;
    }

    html body.wy-responsive :is(.adobe-aem__panel, .adobe-proof__row)> :is(.adobe-aem__copy, .adobe-proof__copy) {
        grid-row: 2;
    }
}

@media(min-width:768px) and (max-width:1199px) {
    html body.wy-responsive[data-responsive-page="about"] .about-section>.about-section__head {
        grid-row: 1 !important;
    }

    html body.wy-responsive[data-responsive-page="about"] .about-section>.about-section__media {
        grid-row: 2 !important;
    }

    html body.wy-responsive[data-responsive-page="about"] .about-section>.about-section__copy {
        grid-row: 3 !important;
    }
}

/* Consumer Insights BUSINESS VALUE · 2026-10-27 user refinement.
   Centre the existing mobile icon/title/body stacks; keep the section head,
   typography, icon dimensions and vertical spacing at their approved values. */
@media(max-width:767px) {
    html body.wy-responsive.wy-consumer-insights #value .ci-values>article {
        text-align: center;
    }

    html body.wy-responsive.wy-consumer-insights #value .ci-values>article> :is(.ci-line-icon, .h3, .body) {
        margin-inline: auto;
        text-align: center;
    }
}

/* Privacy policy · user-supplied plain text, without publication/effective dates.
   Reuse the shared container and 40em prose measure from the Visual System.
   This long-form page follows the Contact/Job exception, without a hero banner. */
html body.wy-responsive[data-responsive-page="privacy-policy"] .wy-policy {
    padding-block: calc(var(--wy-layout-header, 56px) + var(--wy-s8)) var(--wy-s9);
}

html body.wy-responsive[data-responsive-page="privacy-policy"] .wy-policy__document {
    max-width: var(--wy-measure);
    margin-inline: auto;
    min-width: 0;
}

html body.wy-responsive[data-responsive-page="privacy-policy"] .wy-policy__title {
    margin: 0 0 var(--wy-s6);
    font-size: var(--wy-fs-h1);
}

html body.wy-responsive[data-responsive-page="privacy-policy"] .wy-policy__section {
    margin-block-start: var(--wy-s6);
}

html body.wy-responsive[data-responsive-page="privacy-policy"] .wy-policy__section>h2 {
    margin: 0 0 var(--wy-s4);
}

html body.wy-responsive[data-responsive-page="privacy-policy"] .wy-policy__document :is(p, ul) {
    margin-block: 0 var(--wy-s4);
    font-size: var(--wy-fs-body);
    line-height: var(--wy-lh-body);
    color: var(--wy-g700);
    text-align: left;
    overflow-wrap: break-word;
}

html body.wy-responsive[data-responsive-page="privacy-policy"] .wy-policy__document ul {
    padding-inline-start: 1.5em;
    list-style: disc;
}

html body.wy-responsive[data-responsive-page="privacy-policy"] .wy-policy__document li+li {
    margin-block-start: var(--wy-s1);
}

html body.wy-responsive[data-responsive-page="contact"] .contact-consent a {
    color: var(--wy-primary-shade);
    text-decoration: underline;
    text-underline-offset: 2px;
}

html body.wy-responsive[data-responsive-page="contact"] .contact-consent a:focus-visible {
    outline: 2px solid var(--wy-primary);
    outline-offset: var(--wy-s1);
}

@media(max-width:767px) {
    html body.wy-responsive[data-responsive-page="privacy-policy"] .wy-policy {
        padding-block: calc(var(--wy-layout-header, 64px) + var(--wy-s7)) var(--wy-s7);
    }
}

/* Join OPEN POSITIONS · 2026-10-27 user request: match the approved mobile
   FAQ's Section heading, 18px/500 item titles, 16px left-aligned copy,
   32px circles and compact spacing. Preserve each native job-detail link. */
@media(max-width:767px) {
    html body.wy-responsive[data-responsive-page="join"] #band-jobs {
        --wy-jobs-icon-size: var(--wy-s6);
        --wy-jobs-icon-gap: var(--wy-s3);
        padding-block: var(--wy-s6) var(--wy-s7) !important;
    }

    html body.wy-responsive[data-responsive-page="join"] #jobs {
        row-gap: 0 !important;
    }

    html body.wy-responsive[data-responsive-page="join"] #jobs .cell__h {
        font-size: var(--wy-fs-h1) !important;
        font-weight: 500 !important;
    }

    html body.wy-responsive[data-responsive-page="join"] #jobs .jobs2 {
        margin-top: var(--wy-s5);
    }

    html body.wy-responsive[data-responsive-page="join"] #jobs .job-link {
        grid-template-columns: minmax(0, 1fr) var(--wy-jobs-icon-size);
        column-gap: var(--wy-jobs-icon-gap);
        padding-block: var(--wy-s4);
        min-height: 44px;
    }

    html body.wy-responsive[data-responsive-page="join"] #jobs .job-link:first-child {
        padding-top: 0;
    }

    html body.wy-responsive[data-responsive-page="join"] #jobs .job__tt {
        gap: var(--wy-s1);
    }

    html body.wy-responsive[data-responsive-page="join"] #jobs .job__t {
        font-size: 18px !important;
        line-height: var(--wy-lh-head) !important;
        font-weight: 500 !important;
        letter-spacing: normal !important;
    }

    html body.wy-responsive[data-responsive-page="join"] #jobs .job__m {
        font-size: var(--wy-fs-body);
        line-height: var(--wy-lh-body);
        font-weight: 400;
        text-align: left;
        text-align-last: auto;
        text-justify: none;
        word-spacing: normal;
        text-wrap: wrap;
        word-break: normal;
        overflow-wrap: break-word;
    }

    html body.wy-responsive[data-responsive-page="join"] #jobs .job__ic {
        width: var(--wy-jobs-icon-size);
        height: var(--wy-jobs-icon-size);
        background: var(--wy-g25);
        color: var(--wy-g600);
    }

    html body.wy-responsive[data-responsive-page="join"] #jobs .job__ic svg {
        width: 14px;
        height: 14px;
    }

    html body.wy-responsive[data-responsive-page="join"] #jobs .job-link:focus-visible .job__ic {
        background: var(--wy-primary-subtle);
        color: var(--wy-primary);
    }
}

@media(max-width:767px) and (hover:hover) {
    html body.wy-responsive[data-responsive-page="join"] #jobs .job-link:hover .job__ic {
        background: var(--wy-primary-subtle);
        color: var(--wy-primary);
    }
}

/* 2026-10-28 · User-requested About / Join mobile refinements.
   Reuse the approved fan artwork, native swipe track, shared railnav/wyprog,
   full-color partner logos and footer gradient; tablet/desktop stay intact. */
html body.wy-responsive[data-responsive-page="about"] .about-values-controls {
    display: none !important;
}

@media(max-width:767px) {
    html body.wy-responsive[data-responsive-page="about"] #values .fan {
        display: flex !important;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: var(--wy-s4) !important;
        padding-block: var(--wy-s5);
        margin-block: calc(-1 * var(--wy-s5));
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        overscroll-behavior-x: contain;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    html body.wy-responsive[data-responsive-page="about"] #values .fan::-webkit-scrollbar {
        display: none;
    }

    html body.wy-responsive[data-responsive-page="about"] #values .fan .fcard {
        flex: 0 0 100%;
        width: 100% !important;
        max-width: 100%;
        scroll-snap-align: start;
        box-shadow: none !important;
    }

    html body.wy-responsive[data-responsive-page="about"] #values .fcard:focus-visible {
        outline: 2px solid var(--wy-primary);
        outline-offset: -3px;
    }

    html body.wy-responsive[data-responsive-page="about"] .about-values-controls:not([hidden]) {
        position: relative;
        display: flex !important;
        align-items: center;
        justify-content: flex-end;
        margin-block-start: var(--wy-s5);
    }

    html body.wy-responsive[data-responsive-page="about"] .about-values-controls .wyprog {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        margin: 0;
        max-width: min(40%, calc(100% - 2 * (88px + var(--wy-s4))));
    }

    html body.wy-responsive[data-responsive-page="about"] #partners .tiles {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    html body.wy-responsive[data-responsive-page="about"] #partners .tile {
        grid-column: auto !important;
        padding-inline: var(--wy-s4);
    }

    /* The mobile quote no longer reserves a bottom row for arrow controls. */
    html body.wy-responsive[data-responsive-page="join"] .join-voices-stage {
        padding-bottom: 0;
    }
}

@media(max-width:767px) and (prefers-reduced-motion:reduce) {
    html body.wy-responsive[data-responsive-page="about"] .about-values-controls .wyprog i {
        transition: none;
    }
}

/* 2026-10-28 · Shared mobile footer contract, requested across all 1023 pages.
   Both variants own one 24px rounded gradient: CTA + footer, or footer only.
   Contact uses its own continuous page background behind the legal content.
   Desktop/tablet geometry, existing copy and native disclosure behavior stay local. */
@media(max-width:767px) {
    html body.wy-responsive[data-responsive-page="join"] #who-we-look-for {
        background: var(--wy-g0, #fff) !important;
    }

    html body.wy-responsive .wy-tail {
        /* Shared violet-ink rule; user-requested opacity reduced by half. */
        --wy-footer-divider: rgba(37, 30, 69, .19);
        position: relative !important;
        z-index: 10 !important;
        margin-block-start: 0 !important;
        border-radius: 24px 24px 0 0 !important;
        background:
            radial-gradient(70% 40% at 18% 8%, rgba(184, 166, 230, .55), transparent 62%),
            radial-gradient(64% 46% at 88% 70%, rgba(143, 178, 255, .5), transparent 64%),
            linear-gradient(160deg, #EAE5FA 0%, #E4E7FB 48%, #DEE9FB 100%) !important;
    }

    html body.wy-responsive .wy-tail {
        padding: 0 !important;
        overflow: hidden;
    }

    html body.wy-responsive .wy-tail .wy-footer {
        background: transparent !important;
        color: var(--wy-ink) !important;
        margin: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        padding: var(--wy-s7) 0 var(--wy-s5) !important;
    }

    html body.wy-responsive .wy-tail--with-cta #cta {
        background: transparent !important;
        margin: 0 !important;
        border-radius: 0 !important;
        padding-block: var(--wy-s7) !important;
    }

    html body.wy-responsive .wy-tail--with-cta:has(#cta) .wy-footer {
        padding-block-start: 0 !important;
    }

    html body.wy-responsive .wy-tail .wy-footer>.container {
        width: 100% !important;
        max-width: none !important;
        padding-inline: var(--wy-mobile-gutter) !important;
        padding-block-start: 0 !important;
        border: 0 !important;
    }

    html body.wy-responsive .wy-tail .wy-footer .footer__grid {
        width: 100%;
        padding: 0 !important;
        margin: 0 !important;
        border: 0 !important;
    }

    html body.wy-responsive .wy-tail .wy-footer .wy-footer__group {
        border-top: 1px solid var(--wy-footer-divider) !important;
    }

    html body.wy-responsive .wy-tail .wy-footer .footer__bottom {
        padding: var(--wy-s5) 0 0 !important;
        margin: 0 !important;
    }

    /* Pre-launch QA-06: keep small legal copy readable on the shared gradient.
     Registration links inherit this ink; existing hover/focus states remain. */
    html body.wy-responsive .wy-footer .footer__bottom {
        color: var(--wy-g700) !important;
    }

    /* Native no-script footer and compact Contact footer retain their content. */
    html body.wy-responsive .wy-footer:not(:has(.footer__grid))>.container {
        border-top: 1px solid var(--wy-footer-divider) !important;
        padding-block-start: var(--wy-s4) !important;
    }

    html body.wy-responsive .wy-footer.wy-footer--legal {
        padding: var(--wy-s5) var(--wy-mobile-gutter) !important;
        color: var(--wy-ink) !important;
    }

    html body.wy-responsive .wy-footer--legal>.container {
        width: 100% !important;
        max-width: none !important;
        padding-inline: 0 !important;
    }

    html body.wy-responsive .wy-footer--legal .footer__bottom {
        margin: 0 !important;
        padding: 0 !important;
    }
}

/* 2026-10-28 · Footer contact / follow separation. Desktop shows both QR codes;
   mobile uses gray logo links without frames or a background.
   Phones lead with contact, then follow title + icons and existing disclosures.
   Preserve the approved WUYUE background, typography and legal content. */
html body.wy-responsive .wy-footer .wy-footer__contact li a {
    display: flex !important;
    align-items: center;
    gap: var(--wy-s3);
}

html body.wy-responsive .wy-footer .wy-footer__contact-icon {
    display: block;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

html body.wy-responsive .wy-footer .wy-footer__follow {
    min-width: 0;
    color: var(--wy-ink);
}

html body.wy-responsive .wy-footer .wy-footer__follow>h4 {
    margin: 0 0 var(--wy-s6);
    font-size: var(--wy-fs-small);
    line-height: var(--wy-lh-body);
    font-weight: 500;
    letter-spacing: normal;
    color: var(--wy-ink);
}

html body.wy-responsive .wy-footer .wy-footer__qr-desktop {
    display: none;
}

html body.wy-responsive .wy-footer .wy-footer__qr-desktop figure {
    margin: 0;
}

html body.wy-responsive .wy-footer .wy-footer__qr-desktop img {
    display: block;
    width: 92px;
    height: 92px;
    padding: 0;
    border: 0;
    border-radius: 0;
}

html body.wy-responsive .wy-footer .wy-footer__qr-desktop figcaption {
    margin: var(--wy-s2) 0 0;
    font-size: var(--wy-fs-micro);
    line-height: 22px;
    color: var(--wy-g700);
    text-align: center;
}

html body.wy-responsive .wy-footer .wy-footer__socials {
    display: flex;
    align-items: center;
    gap: var(--wy-s3);
}

html body.wy-responsive .wy-footer .wy-footer__social-trigger {
    position: relative;
    box-sizing: border-box;
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: var(--wy-r-btn, 8px);
    text-decoration: none;
    background: transparent;
    color: var(--wy-g700);
    cursor: pointer;
    touch-action: manipulation;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    transition: color var(--wy-dur) var(--wy-ease);
}

/* Enlarge the previous 25.6px logos by 10%; retain the 44px native hit area. */
html body.wy-responsive .wy-footer .wy-footer__social-trigger svg {
    display: block;
    width: 28.16px;
    height: 28.16px;
}

html body.wy-responsive .wy-footer .wy-footer__social-trigger:hover {
    color: var(--wy-g700);
    background: transparent;
}

html body.wy-responsive .wy-footer .wy-footer__social-trigger:focus-visible {
    outline: 2px solid var(--wy-primary);
    outline-offset: 4px;
}

@media(min-width:1024px) {

    /* CTA/footer share one 96px gap: remove the old 96 + 96 + 48px stack. */
    html body.wy-responsive .wy-tail--with-cta:has(#cta) #cta {
        padding-block-end: 0 !important;
    }

    html body.wy-responsive .wy-tail--with-cta:has(#cta) .wy-footer {
        padding-block-start: var(--wy-s9) !important;
    }

    html body.wy-responsive .wy-tail--with-cta:has(#cta) .wy-footer>.container {
        padding-block-start: 0 !important;
        border-block-start-width: 0 !important;
    }

    /* Match every desktop column heading to the existing Contact heading. */
    html body.wy-responsive .wy-footer .footer__grid :is(.wy-footer__group > summary, .wy-footer__group > summary h4, .wy-footer__follow > h4) {
        font-size: var(--wy-fs-small) !important;
        font-weight: 500 !important;
        line-height: var(--wy-lh-body) !important;
    }

    html body.wy-responsive .wy-footer .wy-footer__socials {
        display: none;
    }

    html body.wy-responsive .wy-footer .wy-footer__qr-desktop {
        display: flex;
        gap: var(--wy-s4);
    }

    html body.wy-responsive .wy-footer .footer__grid {
        /* Regular heading origins; intrinsic minima protect compact/English copy. */
        grid-template-columns: repeat(4, minmax(max-content, 1fr)) max-content !important;
        justify-content: normal;
        column-gap: var(--wy-layout-gutter) !important;
    }
}

@media(max-width:1023px) {
    html body.wy-responsive .wy-footer .wy-footer__follow {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: var(--wy-s5);
        padding-block: var(--wy-s4);
        border-top: 1px solid var(--wy-footer-divider, var(--wy-g200)) !important;
    }

    html body.wy-responsive .wy-footer .wy-footer__follow>h4 {
        margin: 0;
        font-size: 16px;
        line-height: var(--wy-lh-body);
        font-weight: 400;
    }

    html body.wy-responsive .wy-footer .wy-footer__contact li {
        padding: 0;
    }

    html body.wy-responsive .wy-footer .wy-footer__contact li a {
        gap: var(--wy-s4);
    }
}

@media(prefers-reduced-motion:reduce) {
    html body.wy-responsive .wy-footer .wy-footer__social-trigger {
        transition: none;
    }
}

/* Approved no-divider preview: hide horizontal rule ink without moving content. */
html body.wy-responsive .wy-tail .wy-footer :is(.container, .footer__grid, .wy-footer__group, .wy-footer__follow, .footer__bottom) {
    border-top-color: transparent !important;
    border-bottom-color: transparent !important;
}

/* 2026-10-28 · User-requested shared form refinement: use Contact's existing
   privacy-copy token everywhere; center the action and consent on mobile.
   Keep the original fields, copy, link behavior and desktop action placement. */
html body.wy-responsive :is(#cta .ctaform .consent label, .contact-consent) {
    font-size: var(--wy-fs-micro) !important;
    line-height: 22px !important;
}

html body.wy-responsive[data-responsive-page="contact"] .wy-footer--legal {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
}

html body.wy-responsive[data-responsive-page="contact"] .wy-footer--legal>.container {
    border: 0 !important;
    padding-block-start: 0 !important;
}

@media(max-width:767px) {

    /* Match Contact: 16px above/below the natural-height consent row.
     Do not reserve a 44px label box or add the fold variant's 12px margin. */
    html body.wy-responsive :is(#cta .ctaform, .contact-form) {
        row-gap: var(--wy-s4) !important;
    }

    html body.wy-responsive #cta .ctaform .foot-row {
        flex-direction: column;
        align-items: center !important;
        text-align: center !important;
        gap: var(--wy-s4);
        margin-block-start: 0;
    }

    html body.wy-responsive #cta .ctaform .wy-consent-field {
        width: fit-content;
        max-width: 100%;
    }

    html body.wy-responsive #cta .ctaform .consent {
        align-items: flex-start;
        justify-content: center;
        text-align: center;
        gap: var(--wy-s2);
        max-width: 100%;
        margin-inline: auto;
    }

    html body.wy-responsive #cta .ctaform .consent input {
        width: 16px;
        height: 16px;
        margin: 3px 0 0;
    }

    html body.wy-responsive #cta .ctaform .consent label {
        display: block;
        min-width: 0;
        min-height: 0;
    }

    html body.wy-responsive #cta .ctaform .foot-row .btn {
        width: auto;
        align-self: center !important;
    }

    html body.wy-responsive[data-responsive-page="contact"] .contact-consent {
        width: fit-content;
        max-width: 100%;
        justify-self: center;
        justify-content: center;
        text-align: center;
    }

    html body.wy-responsive[data-responsive-page="contact"] .contact-consent-field .contact-error {
        text-align: center;
    }

    html body.wy-responsive[data-responsive-page="contact"] .contact-submit {
        width: auto;
        justify-self: center !important;
    }
}

/* 2026-10-28 · User-requested mobile KEY CHALLENGES swipe cards.
   Retain the approved cards and copy; reuse About's 44px paired arrows and
   centered ink progress thumb. Tablet/desktop keep their existing grid.
   Native overflow/snap remains usable without the enhancement script. */
html body.wy-responsive [data-wy-key-challenges] .wy-challenges-controls {
    display: none !important;
}

@media(max-width:767px) {
    html body.wy-responsive [data-wy-key-challenges] .wy-editorial-cards {
        display: flex !important;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: var(--wy-s4) !important;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        overscroll-behavior-x: contain;
        -webkit-overflow-scrolling: touch;
    }

    html body.wy-responsive [data-wy-key-challenges][data-challenge-index] .wy-editorial-cards {
        scrollbar-width: none;
    }

    html body.wy-responsive [data-wy-key-challenges][data-challenge-index] .wy-editorial-cards::-webkit-scrollbar {
        display: none;
    }

    html body.wy-responsive [data-wy-key-challenges] .wy-data-card {
        flex: 0 0 100%;
        inline-size: 100%;
        max-inline-size: 100%;
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }

    html body.wy-responsive [data-wy-key-challenges] .wy-editorial-cards:focus-visible {
        outline: 2px solid var(--wy-primary);
        outline-offset: 4px;
    }

    html body.wy-responsive [data-wy-key-challenges] .wy-challenges-controls:not([hidden]) {
        position: relative;
        display: flex !important;
        align-items: center;
        justify-content: flex-end;
        gap: 0 !important;
        min-block-size: 44px;
        margin-block-start: var(--wy-s5);
    }

    html body.wy-responsive [data-wy-key-challenges] .wy-challenges-controls button {
        position: relative;
        display: grid;
        place-items: center;
        flex: 0 0 44px;
        inline-size: 44px !important;
        block-size: 44px !important;
        margin: 0 !important;
        padding: 0;
        border: 0 !important;
        border-radius: 0 !important;
        background: var(--wy-g50) !important;
        color: var(--wy-ink) !important;
        box-shadow: none !important;
        opacity: 1 !important;
        cursor: pointer;
        transition: background 200ms var(--wy-ease), color 200ms var(--wy-ease);
    }

    html body.wy-responsive [data-wy-key-challenges] .wy-challenges-controls button:first-of-type {
        border-start-start-radius: 12px !important;
        border-end-start-radius: 12px !important;
    }

    html body.wy-responsive [data-wy-key-challenges] .wy-challenges-controls button:last-of-type {
        border-start-end-radius: 12px !important;
        border-end-end-radius: 12px !important;
    }

    html body.wy-responsive [data-wy-key-challenges] .wy-challenges-controls button+button::before {
        content: "";
        position: absolute;
        inset-inline-start: 0;
        inset-block: 12px;
        inline-size: 1px;
        background: var(--wy-g200) !important;
    }

    html body.wy-responsive [data-wy-key-challenges] .wy-challenges-controls button:disabled {
        color: var(--wy-g300) !important;
        cursor: default;
    }

    html body.wy-responsive [data-wy-key-challenges] .wy-challenges-controls button:focus-visible {
        outline: 2px solid var(--wy-primary);
        outline-offset: 3px;
        z-index: 1;
    }

    html body.wy-responsive [data-wy-key-challenges] .wy-challenges-controls svg {
        inline-size: 20px;
        block-size: 20px;
    }

    html body.wy-responsive [data-wy-key-challenges] .wy-challenges-controls .wyprog {
        position: absolute;
        inset-inline-start: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        inline-size: min(40%, calc(100% - 2 * (88px + var(--wy-s4))));
        max-inline-size: none;
        block-size: 2px;
        margin: 0;
        border-radius: 2px;
        background: var(--wy-g200);
        overflow: hidden;
    }

    html body.wy-responsive [data-wy-key-challenges] .wy-challenges-controls .wyprog i {
        position: absolute;
        inset-block: 0;
        inset-inline-start: calc((100% - var(--pw, 33.333%)) * var(--pp, 0));
        inline-size: var(--pw, 33.333%);
        border-radius: 2px;
        background: var(--wy-ink);
        transition: none;
    }

    html body.wy-responsive [data-wy-key-challenges] .wy-challenges-controls:dir(rtl) .wyprog {
        transform: translate(50%, -50%);
    }

    html body.wy-responsive [data-wy-key-challenges] .wy-challenges-controls:dir(rtl) svg {
        transform: scaleX(-1);
    }
}

@media(max-width:767px) and (hover:hover) and (pointer:fine) {
    html body.wy-responsive [data-wy-key-challenges] .wy-challenges-controls button:hover:not(:disabled) {
        background: var(--wy-g100) !important;
        color: var(--wy-ink) !important;
    }
}

@media(max-width:767px) and (prefers-reduced-motion:reduce) {
    html body.wy-responsive [data-wy-key-challenges] .wy-challenges-controls button {
        transition: none;
    }
}

/* 2026-10-28 screenshot-led spacing correction.
   Opt-in pages record compact 48px edges in their existing spacing attributes.
   Native CSS owns these edges: desktop/tablet 48px, mobile 32px. The IDs are
   the existing section owners, so older page-specific important rules cannot
   reintroduce a second budget. No typography, artwork or card sizing changes. */
html body.wy-responsive[data-wy-compact-spacing] :is(#data, #pain, #value, #services, #features, #arch, #whyg, #adv, #why, #culture, #leaders,
    #band-people, #who-we-look-for, #band-jobs, #trust, #aem, #whyus, #aws-core, #products,
    #capabilities, #global-ops, #partners, #faq, #band-story, #band-rest, #band-history,
    #band-eco, #cases, .sol__panel, .agt__panel, .bento)[data-wy-space-top="48"] {
    padding-block-start: var(--wy-s7) !important;
}

html body.wy-responsive[data-wy-compact-spacing] :is(#data, #pain, #value, #services, #features, #arch, #whyg, #adv, #why, #culture, #leaders,
    #band-people, #who-we-look-for, #band-jobs, #trust, #aem, #whyus, #aws-core, #products,
    #capabilities, #global-ops, #partners, #faq, #band-story, #band-rest, #band-history,
    #band-eco, #cases, .sol__panel, .agt__panel, .bento)[data-wy-space-bottom="48"] {
    padding-block-end: var(--wy-s7) !important;
}

@media(max-width:767px) {

    html body.wy-responsive[data-wy-compact-spacing] :is(#data, #pain, #value, #services, #features, #arch, #whyg, #adv, #why, #culture, #leaders,
        #band-people, #who-we-look-for, #band-jobs, #trust, #aem, #whyus, #aws-core, #products,
        #capabilities, #global-ops, #partners, #faq, #band-story, #band-rest, #band-history,
        #band-eco, #cases, .sol__panel, .agt__panel, .bento)[data-wy-space-top="48"] {
        padding-block-start: var(--wy-s6) !important;
    }

    html body.wy-responsive[data-wy-compact-spacing] :is(#data, #pain, #value, #services, #features, #arch, #whyg, #adv, #why, #culture, #leaders,
        #band-people, #who-we-look-for, #band-jobs, #trust, #aem, #whyus, #aws-core, #products,
        #capabilities, #global-ops, #partners, #faq, #band-story, #band-rest, #band-history,
        #band-eco, #cases, .sol__panel, .agt__panel, .bento)[data-wy-space-bottom="48"] {
        padding-block-end: var(--wy-s6) !important;
    }
}

/* 2026-10-29: complete the screenshot-led section handoffs. Keep overlap
   reserves exactly once; mobile tails no longer overlap their preceding band. */
html body.wy-responsive[data-wy-compact-spacing] {
    --wy-flow-edge: var(--wy-s7);
}

html body.wy-responsive[data-wy-compact-spacing] :is(#faq, #why, #band-history, #band-eco, #band-jobs, #whyus, #products, #global-ops, #jobpg,
    .sol__panel, .agt__panel)[data-wy-space-bottom="88"] {
    padding-block-end: calc(var(--wy-flow-edge) + var(--stack-r, 0px)) !important;
}

html body.wy-responsive[data-wy-compact-spacing][data-responsive-page] .wy-tail:has(#cta) #cta {
    padding-block-start: var(--wy-flow-edge) !important;
}

/* 2026-10-29: footer-only uses the previously approved footer padding.
   Its space separates headings from the gradient edge; it is not a duplicate
   section handoff. Keep the CTA-specific spacing rules above unchanged. */
html body.wy-responsive[data-wy-compact-spacing] :is(#services, #features)>.container>.sec-head {
    margin-block-end: var(--wy-gap-head) !important;
}

html body.wy-responsive[data-wy-compact-spacing][data-responsive-page="index"] #solutions .sol__panel {
    min-height: 0;
}

html body.wy-responsive[data-wy-compact-spacing][data-responsive-page="about"] #intro .stats {
    margin-block-start: var(--wy-gap-head) !important;
}

html body.wy-responsive[data-wy-compact-spacing][data-responsive-page="join"] main.join-redesign {
    padding-block: 0 !important;
}

html body.wy-responsive[data-wy-compact-spacing][data-responsive-page="join"] .join-voices-stage {
    padding-block-end: 0;
}

html body.wy-responsive[data-wy-compact-spacing][data-responsive-page="privacy-policy"] .wy-policy {
    padding-block-end: var(--wy-flow-edge) !important;
}

@media(max-width:767px) {
    html body.wy-responsive[data-wy-compact-spacing] {
        --wy-flow-edge: var(--wy-s6);
    }

    html body.wy-responsive[data-wy-compact-spacing] :is(#faq, #why, #band-history, #band-eco, #band-jobs, #whyus, #products, #global-ops, #jobpg,
        .sol__panel, .agt__panel)[data-wy-space-bottom="88"] {
        padding-block-end: var(--wy-flow-edge) !important;
    }

    /* These two components retain the reviewed 48px reading/list exit budget. */
    html body.wy-responsive[data-wy-compact-spacing] :is(#faq, #band-jobs)[data-wy-space-bottom="88"] {
        padding-block-end: var(--wy-s7) !important;
    }

    /* About's ecology still overlaps History by 40px; Home CASES overlaps Agents. */
    html body.wy-responsive[data-wy-compact-spacing][data-responsive-page="about"] #band-history,
    html body.wy-responsive[data-wy-compact-spacing][data-responsive-page="index"] #agents .agt__panel {
        padding-block-end: calc(var(--wy-flow-edge) + var(--stack-r, 0px)) !important;
    }
}

/* Brand and its own results are one group. Keep restored case page/card layout. */
html body.wy-responsive:is([data-responsive-page="case-zte"], [data-responsive-page="case-cfmoto"], [data-responsive-page="case-midea"], [data-responsive-page="case-sunseeker"], [data-responsive-page="case-tcl"]) #cases .stats {
    margin-block-start: var(--wy-s7);
}

@media(max-width:767px) {
    html body.wy-responsive:is([data-responsive-page="case-zte"], [data-responsive-page="case-cfmoto"], [data-responsive-page="case-midea"], [data-responsive-page="case-sunseeker"], [data-responsive-page="case-tcl"]) #cases .cd__brand {
        margin-block-end: var(--wy-s6);
    }

    html body.wy-responsive:is([data-responsive-page="case-zte"], [data-responsive-page="case-cfmoto"], [data-responsive-page="case-midea"], [data-responsive-page="case-sunseeker"], [data-responsive-page="case-tcl"]) #cases .stats {
        margin-block-start: var(--wy-s6);
    }
}

/* Editorial text keeps its own chapter rhythm; only the outer handoffs tighten. */
html body.wy-responsive[data-wy-compact-spacing]:is([data-responsive-page="company-article"], [data-responsive-page="industry-article"]) :is(#company-article, #industry-article).ie-story {
    padding-block-end: var(--wy-flow-edge) !important;
}

html body.wy-responsive[data-wy-compact-spacing] .ie-related {
    padding-block-start: var(--wy-flow-edge) !important;
    padding-block-end: calc(var(--wy-flow-edge) + var(--stack-r, 0px)) !important;
}

html body.wy-responsive[data-wy-compact-spacing]:is([data-responsive-page="company-news"], [data-responsive-page="industry-insights"]) .ie-feed {
    padding-block-end: calc(var(--wy-flow-edge) + var(--stack-r, 0px)) !important;
}

@media(max-width:767px) {

    html body.wy-responsive[data-wy-compact-spacing] .ie-related,
    html body.wy-responsive[data-wy-compact-spacing]:is([data-responsive-page="company-news"], [data-responsive-page="industry-insights"]) .ie-feed {
        padding-block-end: var(--wy-flow-edge) !important;
    }
}