/* WUYUE Responsive Foundation. Derived from the approved Global Ops pilot.
   Opt in with html.wy-responsive + body.wy-responsive. Typography tokens stay in wy-swiss.css.
   1920: 1776 outer / 32 inner padding / 1712 grid / text x=104.
   Below reference: shrink geometry in CSS pixels; above: cap content only. */
html.wy-responsive {
  zoom: 1 !important;
  --wy-zoom: 1 !important;
  --wy-vw: 1vw !important;
  --wy-vh: 1vh !important;
  --wy-layout-margin: clamp(24px, calc(5vw - 24px), 72px);
  --wy-layout-gutter: clamp(24px, calc(2.5vw), 48px);
  --wy-col-gap: var(--wy-layout-gutter);
  scroll-padding-top: 80px;
}
html body.wy-responsive {
  /* Expose overflow to QA instead of masking a faulty layout. */
  overflow-x: visible;
}
html body.wy-responsive :is(.container, .nav__inner, .container-wide) {
  width: calc(100% - 2 * var(--wy-layout-margin)) !important;
  max-width: 1776px !important;
  padding-inline: var(--wy-s6) !important;
  margin-inline: auto;
  min-width: 0;
}
html body.wy-responsive :is(#cta, .footer) > .container {
  max-width: 1440px !important;
}
html body.wy-responsive .container-wide { max-width: 1600px !important; }

/* 2026-10-21: requested filing links in the existing footer bottom row.
   Reuse its type, colour and container; wrap complete links when capacity runs out. */
html body.wy-responsive .wy-footer .footer__bottom { flex-wrap:wrap; }
html body.wy-responsive .wy-footer .footer__bottom p { margin:0; }
html body.wy-responsive .wy-footer .footer__registrations {
  display:flex;flex-wrap:wrap;column-gap:var(--wy-s6);row-gap:var(--wy-s2);
  min-width:0;font-size:var(--wy-fs-micro);
}
html body.wy-responsive .wy-footer .footer__registrations a {
  display:inline-block;white-space:nowrap;color:inherit;
}
html body.wy-responsive .wy-footer .footer__registrations a:hover { color:var(--wy-ink); }
html body.wy-responsive .wy-footer .footer__registrations a:focus-visible {
  outline:2px solid var(--wy-primary);outline-offset:var(--wy-s1);
}
/* Contact keeps its approved form-only layout, followed by a compact legal footer. */
html body.wy-responsive .wy-footer.wy-footer--legal {
  padding:var(--wy-s5) 0!important;background:var(--wy-g0);color:var(--wy-g500);
}
html body.wy-responsive .wy-footer.wy-footer--legal > .container { padding-top:0!important; }
html body.wy-responsive .wy-footer.wy-footer--legal .footer__bottom {
  margin:0!important;padding:0!important;color:inherit;
}

/* Keep each section's approved reference budget. The markup records only the
   existing 1920 top/bottom scale; mobile spacing remains in wy-mobile.css. */
@media (min-width:768px) {
  html body.wy-responsive [data-wy-space-top="56"] { padding-top:clamp(48px,calc(56px - (1920px - 100vw)/90),56px)!important; }
  html body.wy-responsive [data-wy-space-bottom="56"] { padding-bottom:clamp(48px,calc(56px - (1920px - 100vw)/90),56px)!important; }
  html body.wy-responsive [data-wy-space-top="64"] { padding-top:clamp(48px,calc(64px - (1920px - 100vw)/45),64px)!important; }
  html body.wy-responsive [data-wy-space-bottom="64"] { padding-bottom:clamp(48px,calc(64px - (1920px - 100vw)/45),64px)!important; }
  html body.wy-responsive [data-wy-space-top="72"] { padding-top:clamp(56px,calc(72px - (1920px - 100vw)/45),72px)!important; }
  html body.wy-responsive [data-wy-space-bottom="72"] { padding-bottom:clamp(56px,calc(72px - (1920px - 100vw)/45),72px)!important; }
  html body.wy-responsive [data-wy-space-top="96"] { padding-top:clamp(56px,calc(96px - (1920px - 100vw)/18),96px)!important; }
  html body.wy-responsive [data-wy-space-bottom="96"] { padding-bottom:clamp(56px,calc(96px - (1920px - 100vw)/18),96px)!important; }
  html body.wy-responsive [data-wy-space-top="120"] { padding-top:clamp(64px,calc(120px - (1920px - 100vw)/(90/7)),120px)!important; }
  html body.wy-responsive [data-wy-space-bottom="120"] { padding-bottom:clamp(64px,calc(120px - (1920px - 100vw)/(90/7)),120px)!important; }
  html body.wy-responsive [data-wy-space-top="136"] { padding-top:clamp(88px,calc(136px - (1920px - 100vw)/15),136px)!important; }
  html body.wy-responsive [data-wy-space-bottom="136"] { padding-bottom:clamp(88px,calc(136px - (1920px - 100vw)/15),136px)!important; }
  html body.wy-responsive [data-wy-space-top="156"] { padding-top:clamp(96px,calc(156px - (1920px - 100vw)/12),156px)!important; }
  html body.wy-responsive [data-wy-space-bottom="156"] { padding-bottom:clamp(96px,calc(156px - (1920px - 100vw)/12),156px)!important; }
}

/* Compact desktop keeps the established 12-column reading/media structure.
   Component media and internal UI do not inherit a page transform. */
@media (min-width:1024px) {
  html body.wy-responsive :is(.archx__grid,.svq,.cf,.qa2,.ci-feature,.ci-why-layout) {
    grid-template-columns:repeat(12,minmax(0,1fr))!important;
    column-gap:var(--wy-layout-gutter)!important;
  }
  html body.wy-responsive :is(.archx__txt,.cf__txt) { grid-column:1/6;grid-row:1; }
  html body.wy-responsive :is(.archx__fig,.cf__fig) { grid-column:7/13;grid-row:1; }
  html body.wy-responsive .svq__fig { grid-column:1/7;grid-row:1; }
  html body.wy-responsive .svq__txt { grid-column:8/13;grid-row:1; }
  html body.wy-responsive .cf--flip .cf__fig { grid-column:1/7; }
  html body.wy-responsive .cf--flip .cf__txt { grid-column:8/13; }
  html body.wy-responsive .ci-feature__media { grid-column:1/7!important;grid-row:1; }
  html body.wy-responsive .ci-feature__copy { grid-column:8/13!important;grid-row:1; }
  html body.wy-responsive .ci-feature:nth-child(even) .ci-feature__copy { grid-column:1/6!important; }
  html body.wy-responsive .ci-feature:nth-child(even) .ci-feature__media { grid-column:7/13!important; }
  html body.wy-responsive .ci-why-layout>.sec-head { grid-column:1/6; }
  html body.wy-responsive .ci-reasons { grid-column:7/13; }
  html body.wy-responsive .qa2__img { display:block!important;grid-column:1/7;grid-row:1; }
  html body.wy-responsive .qa2>.faq { grid-column:8/13;grid-row:1; }
}
html body.wy-responsive :is(.archx__txt,.svq__txt,.cf__txt,.ci-feature__copy,.qa2>.faq) { min-width:0; }

/* A: available track count follows the same 320px capacity contract as pilot.
   auto-fit collapses unused tracks, preserving each group's reference count. */
@media (min-width:768px) {
  html body.wy-responsive :is(.whys3,.ci-values,.why-cards .why-carousel__track) {
    grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))!important;
    column-gap:var(--wy-layout-gutter)!important;
  }
  /* Two-column groups may contain four cards. Capacity can reduce the
     column count, but must not increase the reviewed maximum. */
  html body.wy-responsive .whys3.whys3--2 {
    grid-template-columns:repeat(auto-fit,minmax(min(100%,max(320px,calc((100% - var(--wy-layout-gutter))/2))),1fr))!important;
  }
}
/* Editorial metrics contain quotations; their height must admit the text. */
html body.wy-responsive .section:has(.wy-editorial-cards)>.container { container-type:inline-size;container-name:wy-editorial-host; }
html body.wy-responsive .wy-editorial-cards { grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--wy-layout-gutter); }
html body.wy-responsive .wy-editorial-cards .wy-data-card {
  aspect-ratio:auto;
  min-height:calc((100cqw - 2 * var(--wy-layout-gutter))/3 * .75);
  padding:clamp(24px,calc(48px - (1920px - 100vw)/30),48px);
}
@container wy-editorial-host (max-width:1007px) {
  html body.wy-responsive .wy-editorial-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@container wy-editorial-host (max-width:663px) {
  html body.wy-responsive .wy-editorial-cards { grid-template-columns:minmax(0,1fr); }
}
@media(min-width:1024px) {
  html body.wy-responsive .section:not(.wy-key-challenges-refined) .wy-data-card__value { font-size:72px; }
  html body.wy-responsive .wy-data-card__unit { font-size:32px; }
}

/* Hero target includes the header allowance. Auto height admits wrapped copy.
   At 1920x1080: min=760, padding=56, unchanged vertical content centre. */
@media (min-width: 768px) {
  html body.wy-responsive #top.shv1 {
    height: auto !important;
    min-height: clamp(560px, calc(100svh - 320px), 760px);
    padding-block: var(--wy-layout-header, 56px) 0 !important;
  }
  html body.wy-responsive #top.shv1 > .container {
    padding-block: var(--wy-s7);
  }
}

/* Data, benefits and FAQ are separate capacity contracts. */
@media (min-width: 1024px) {
  html body.wy-responsive #data .stats--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    column-gap: var(--wy-layout-gutter) !important;
  }
  html body.wy-responsive #whyg .whyg__grid {
    column-gap: clamp(48px, calc(15vw - 168px), 120px);
    row-gap: var(--wy-s9);
  }
  html body.wy-responsive #faq .qa2 {
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    column-gap: var(--wy-layout-gutter) !important;
  }
  html body.wy-responsive #faq .qa2__img {
    display: block !important;
    grid-column: 1 / 7;
    grid-row: 1;
  }
  html body.wy-responsive #faq .qa2 > .faq {
    grid-column: 8 / 13;
    grid-row: 1;
    min-width: 0;
  }
  /* Carry desktop semantic sizes into compact desktop. The shared token
     declarations remain intact; these are applications of their desktop values. */
  html body.wy-responsive :is(#top .shv1__h, #top .hero .display, .pghero__title) { font-size: 72px !important; }
  html body.wy-responsive :is(h2.h1, .h1, .jobpg__t) { font-size: 48px !important; }
  html body.wy-responsive :is(#top .shv1__sub, .hero__sub) { font-size: 24px !important; }
  html body.wy-responsive :is(.h2, .cf__h, .leader__h) { font-size: 32px !important; }
  html body.wy-responsive :is(.h3, .cb__h, .job__t, .fcard h4, .acc h3) { font-size: 24px !important; }
  html body.wy-responsive #whyg .h3,
  html body.wy-responsive #services .ops-services__tab-title { font-size: 24px !important; }
  html body.wy-responsive #whyg .whyg__ic { width: 33.6px; height: 33.6px; }
  html body.wy-responsive :is(#data, #trust) .stats { --wy-stat-size: 72px; --wy-stat-unit: 32px; }
  html body.wy-responsive #cases .fill-case__title,
  html body.wy-responsive #cases .fill-case__metrics dd { font-size: 32px !important; }
  html body.wy-responsive #cases .fill-case__brand-text { font-size: 24px; }

}

/* SERVICES: the reviewed 2:3 composition and 16:10 frame stay fixed.
   Only this 896x560 artwork is scaled. No inverse zoom or compensation. */
html body.wy-responsive #services .ops-services__layout {
  grid-template-columns: minmax(0, 2fr) minmax(600px, 3fr);
  column-gap: clamp(32px, calc(5vw - 32px), 64px);
}
html body.wy-responsive #services .ops-services__artwork {
  zoom: 1;
  transform: scale(var(--ops-services-scale, 1));
}
/* At <=1023 a 600px frame leaves too little room for copy. Stack the existing
   vertical tabs and full-width panel; preserve horizontal phone tabs. */
@media (min-width: 768px) and (max-width: 1023px) {
  html body.wy-responsive #services .ops-services__layout {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--wy-s6);
  }
}

/* Content cards keep the square as a preferred minimum at the reference,
   and grow with their content. Visual backgrounds continue to cover. */
html body.wy-responsive #cases.fill-cases > .container {
  container-type: inline-size;
  container-name: wy-content-cards;
}
html body.wy-responsive #cases .fill-cases__set {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
html body.wy-responsive #cases .fill-case {
  aspect-ratio: auto;
  min-height: max(504px, calc((100cqw - 48px) / 3));
}
html body.wy-responsive #cases .fill-case__content {
  height: auto;
  min-height: 100%;
  padding: var(--wy-s5);
}
html body.wy-responsive #cases .fill-case__story,
html body.wy-responsive #cases .fill-case__metrics { flex: none; }
@container wy-content-cards (max-width: 1007px) {
  html body.wy-responsive #cases .fill-cases__set {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  html body.wy-responsive #cases .fill-case { min-height: 504px; }
}
@container wy-content-cards (max-width: 663px) {
  html body.wy-responsive #cases .fill-cases__set { grid-template-columns: minmax(0, 1fr); }
}

/* Entries without landing pages retain the approved styling and expand on click/hover. */
.nav__links [role="button"] { cursor: pointer; }

/* Header capacity is 1024px. Restore desktop chrome below the legacy 1200
   condition; the independent pilot mobile controller uses the same boundary. */
@media (min-width: 1024px) and (max-width: 1199px) {
  html body.wy-responsive .nav,
  html body.wy-responsive .nav__bar {
    height: 56px !important;
    background: rgba(255,255,255,.9) !important;
    border: 0 !important;
  }
  html body.wy-responsive .nav.is-top .nav__bar { background: transparent !important; }
  html body.wy-responsive .nav__inner {
    height: 56px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: var(--wy-s6) !important;
  }
  html body.wy-responsive .nav__links { display: flex !important; height: 56px; }
  html body.wy-responsive .nav__lang { display: block !important; }
  html body.wy-responsive .nav__right { margin-left: 0 !important; gap: var(--wy-s3) !important; }
  html body.wy-responsive .nav__logo-svg { height: 30px !important; max-width: none !important; }
  html body.wy-responsive .nav__cta {
    display: inline-flex !important;
    min-height: 36px !important;
    padding: 0 14px !important;
    font-size: 14px !important;
  }
  html body.wy-responsive :is(.nav__toggle, .wy-mobile-lang) { display: none !important; }
  html body.wy-responsive .nav__panel { display: block !important; }
  html body.wy-responsive .nav-scrim { display: block !important; }
}

/* CTA padding yields first. Keep its two-column graphic until <=1023.
   Footer has its own 1440 cap and four-column contract above tablet. */
@media (min-width: 1024px) {
  html body.wy-responsive #cta { padding-block: var(--wy-s9) !important; }
  html body.wy-responsive .ctaE__grid {
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) !important;
    padding: clamp(48px, calc(10vw - 96px), 96px) !important;
    gap: clamp(32px, calc(5vw - 32px), 64px) !important;
  }
  html body.wy-responsive .ctaE__art { display: grid !important; min-height: 320px; }
  html body.wy-responsive .ctaE .lead { font-size: 17px !important; }
  html body.wy-responsive #cta h2.h1,
  html body.wy-responsive #cta h2.h1 .cta__title { font-size: 56px !important; line-height: var(--wy-lh-head) !important; }
}
/* Existing >=1200 footer declarations retain each reviewed reference rhythm.
   Restore the pilot's desktop footer only inside the old tablet CSS boundary. */
@media (min-width:1024px) and (max-width:1199px) {
  html body.wy-responsive .wy-footer { padding: var(--wy-s9) 0 0 !important; }
  html body.wy-responsive .wy-footer > .container { padding-top: var(--wy-s7) !important; }
  html body.wy-responsive .wy-footer .footer__grid {
    display: grid !important;
    grid-template-columns: repeat(4, max-content);
    justify-content: space-between;
    gap: clamp(24px, calc(5vw - 32px), 64px) !important;
    padding: 0 0 120px !important;
  }
  html body.wy-responsive .wy-footer__contact { order: 0; padding-bottom: 0 !important; }
  html body.wy-responsive .wy-footer__contact h4 { margin-bottom: var(--wy-s6) !important; }
  html body.wy-responsive .wy-footer__contact li a { display: inline; min-height: 0; font-size: 15px !important; }
  html body.wy-responsive .wy-footer__group { border: 0; padding: 0; }
  html body.wy-responsive .wy-footer__group > summary { display: block; min-height: 0; margin-bottom: 16px !important; pointer-events: none; }
  html body.wy-responsive .wy-footer__group > summary::after { content: none !important; }
  html body.wy-responsive .wy-footer__group ul { margin: 0 !important; }
  html body.wy-responsive .wy-footer__group a { display: inline; min-height: 0; }
  html body.wy-responsive .wy-footer .footer__bottom { margin: 0 !important; padding: 0 0 var(--wy-s8) !important; }
}
@media (max-width: 1023px) {
  html.wy-responsive { --wy-layout-header: 64px; }
  html body.wy-responsive .nav__inner { width: 100% !important; padding-inline: 24px !important; }
}
/* The CTA needs ~620px for its approved second line plus a 200px graphic.
   Its own capacity boundary is separate from navigation and case columns. */
@media (min-width: 1024px) and (max-width: 1151px) {
  html body.wy-responsive .ctaE__grid { grid-template-columns: minmax(0, 1fr) !important; }
  html body.wy-responsive .ctaE__art { display: none !important; }
}
@media (max-width: 767px) {
  html body.wy-responsive .container { width: 100% !important; padding-inline: var(--wy-mobile-gutter) !important; }
  html body.wy-responsive #services .ops-services__layout { grid-template-columns: minmax(0, 1fr); gap: var(--wy-s4); }
  /* Let the selected tab's trailing edge be the snap target. At 320px,
     snapping back to the first tab previously left tab 3 partly off-screen. */
  html body.wy-responsive #services .ops-services__tab[aria-selected="true"] { scroll-snap-align: end; }
  html body.wy-responsive #cases .fill-case { min-height: 504px; }
}
/* 2026-10-29 CTA choices share native contact-form row behavior. Floating panels leave the card geometry unchanged. */
html body.wy-responsive .ctaform .wy-choice-trigger {
  display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:46px;
  padding:10px 14px;border:1px solid var(--wy-g100);border-radius:var(--wy-r-btn);background:#fff;
  font:inherit;font-size:var(--wy-fs-small);line-height:1.5;color:var(--wy-ink);text-align:left;cursor:pointer;
}
html body.wy-responsive .ctaform .wy-choice-trigger .is-placeholder{color:var(--wy-g500)}
html body.wy-responsive .ctaform .wy-choice-trigger svg{width:16px;height:16px;flex:none;fill:none;stroke:var(--wy-g500);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
html body.wy-responsive .ctaform .wy-choice-trigger[aria-expanded=true] svg{transform:rotate(180deg)}
html body.wy-responsive .ctaform .wy-choice-trigger:focus-visible,
html body.wy-responsive .ctaform .wy-choice-trigger[aria-expanded=true]{border-color:var(--wy-primary)}
html body.wy-responsive .ctaform .wy-choice-trigger[aria-invalid=true]{border-color:var(--wy-danger)}
html body.wy-responsive .wy-choice-options{position:fixed;z-index:1200;overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box;box-shadow:0 12px 32px -8px rgba(35,30,69,.17);padding:6px;border:1px solid var(--wy-g100);border-radius:var(--wy-r-card);background:#fff}
html body.wy-responsive .wy-choice-options[hidden],html body.wy-responsive .ctaform .wy-choice select[hidden]{display:none!important}
html body.wy-responsive .wy-choice-option{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:10px;border-radius:var(--wy-r-sm);font-size:var(--wy-fs-small);line-height:1.5;cursor:pointer;user-select:none;box-sizing:border-box}
html body.wy-responsive .wy-choice-option:hover,html body.wy-responsive .wy-choice-option:focus-within{background:var(--wy-g25)}
html body.wy-responsive .wy-choice-option:has(input:checked){background:var(--wy-primary-subtle);color:var(--wy-primary-shade)}
html body.wy-responsive .wy-choice-option > input{appearance:auto!important;width:16px!important;height:16px!important;min-width:16px!important;padding:0!important;margin:0!important;flex:none;border:initial;border-radius:initial;accent-color:var(--wy-primary);cursor:pointer}
@media(max-width:767px){html body.wy-responsive .ctaform .wy-choice-trigger,html body.wy-responsive .wy-choice-option{font-size:16px}}
