/* Site-wide atmosphere, navigation and brand imagery. */

body{position:relative;isolation:isolate;background:#fff}main{position:relative}.home-hero,.page-hero{background:transparent}.hero-foundation{display:grid;grid-template-columns:repeat(3,1fr);padding:26px 0;gap:35px;border-top:1px solid #dfe7ef;border-bottom:1px solid #dfe7ef;margin-bottom:15px}.hero-foundation>div{padding:0 28px;border:0;border-left:1px solid #dde6ef}.hero-foundation>div:first-child{border-left:0;padding-left:0}.hero-foundation>div span{font-size:10px;letter-spacing:.06em;color:#8295ab}.hero-foundation strong{font-size:15px;color:#526b86;font-weight:400;margin-top:7px}.hero-foundation>a{display:none}
/* Borderless glass navigation; the current page is expressed through typography. */
.site-header{background:rgba(250,252,255,.65);border:0;box-shadow:none;backdrop-filter:blur(26px) saturate(145%);-webkit-backdrop-filter:blur(26px) saturate(145%);transition:background .3s;will-change:auto;transform:none!important}
.site-header:after{content:"";position:absolute;left:0;right:0;bottom:-15px;height:15px;width:auto;background:linear-gradient(180deg,rgba(247,250,254,.35),rgba(247,250,254,0));pointer-events:none}
.site-header.scrolled{background:rgba(250,252,255,.76);box-shadow:0 9px 25px -23px #193b5c26}
.nav-wrap{height:84px;gap:26px}.nav-wrap .brand img{width:160px}
.header-brand-group{display:flex;align-items:center;gap:22px;flex-shrink:0}
.brand-signature{display:flex;flex-direction:column;align-items:flex-start;gap:5px;white-space:nowrap;padding-top:2px}
.brand-signature-en{font-family:Arial,"Segoe UI",sans-serif;font-size:12px;font-weight:400;line-height:1.2;letter-spacing:.15em;color:#62666c}
.brand-signature-times{font-weight:400;color:#9a9da3;margin-inline:2px;letter-spacing:0}
.brand-signature-cn{font-size:10px;font-weight:400;line-height:1.5;letter-spacing:.12em;color:#7b8ea2}
.desktop-nav{gap:7px;padding:0;background:transparent;border:0;border-radius:0;margin-left:auto;box-shadow:none;align-items:center}
.desktop-nav>a,.desktop-nav>.nav-disclosure{position:relative;padding:14px 13px;font-size:15px;line-height:24px;border:0;border-radius:0;box-shadow:none;background:transparent;color:#617083;font-weight:400;transition:color .25s,opacity .25s}
.desktop-nav [aria-current]:before,.desktop-nav [aria-current]:after{display:none!important}
.desktop-nav [aria-current],.desktop-nav [aria-current]:hover{background:transparent;color:#244d73;font-weight:600;box-shadow:none}
.desktop-nav>a:hover,.desktop-nav>.nav-disclosure:hover,.desktop-nav>.nav-disclosure[aria-expanded=true]{color:#254b6e;background:transparent;box-shadow:none}
.desktop-nav:has(>:hover)>:not(:hover){color:#8794a5}.desktop-nav:has(>:hover)>[aria-current]{color:#244d73}
.nav-plus{width:6px;height:6px;margin-left:9px;vertical-align:2px;transform:rotate(45deg);border-right:1px solid currentColor;border-bottom:1px solid currentColor;opacity:.5;transition:transform .25s}.nav-plus:before,.nav-plus:after{display:none}[aria-expanded=true]>.nav-plus{transform:rotate(225deg);vertical-align:-1px}
.nav-contact{font-size:12px;letter-spacing:.03em;border-radius:22px;margin-left:9px;padding:9px 21px;background:#2b425c;border:0;box-shadow:none;transition:background .25s,color .25s}.nav-contact:hover{background:#3b526c;color:#fff;box-shadow:none;transform:none}
.site-header:has(.mega-panel:not([hidden])){background:rgba(248,251,255,.88)}
.mega-panel{background:rgba(247,250,254,.94);backdrop-filter:blur(26px);border:0;box-shadow:0 28px 35px -28px #142d4a33;animation:navPanelIn .28s ease-out;overflow:hidden}
.mega-inner{padding-block:38px 42px;gap:40px}.mega-inner>div,.mega-inner>.mega-feature{animation:navContentIn .33s ease-out}
.mega-intro{padding-right:20px;border:0}.mega-intro>span,.mega-column>span{color:#8497ae;font-size:9px;letter-spacing:.12em}.mega-intro h2{font-size:27px;line-height:1.55;color:#2c4664}.mega-intro>a{border:0;background:transparent;padding:0 0 4px;display:inline-block;color:#56718e}
.mega-column>a{padding:10px 0;font-size:13px;transition:color .22s,transform .22s}.mega-column>a:hover{color:#25486e;text-decoration:none;transform:translateX(3px)}
.mega-feature{border:0;background:#e9eff770;padding:12px;border-radius:13px}.mega-feature:hover{background:#e2ebf480}.mega-feature>span{font-size:12px}
.mega-industries{gap:8px 20px}.mega-industries>a{border:0;padding:14px 16px;border-radius:10px;transition:background .25s}.mega-industries>a:hover{background:#e7eef660}
.nav-scrim{inset:84px 0 0;height:calc(100dvh - 84px);background:#14263d16;backdrop-filter:blur(4px);animation:scrimIn .25s ease-out}.mega-panel.closing{animation:navPanelOut .18s ease-in forwards;pointer-events:none}.nav-scrim.closing{animation:scrimOut .18s ease-in forwards;pointer-events:none}
.menu-toggle{border:0;border-radius:0;background:transparent}.mobile-nav{background:rgba(248,251,255,.94);border:0;padding:18px 24px 25px;box-shadow:0 20px 30px -25px #1a355522;animation:navPanelIn .25s ease-out}.mobile-nav a{padding:13px 12px;margin:3px 0;border:0;border-radius:0;color:#62758a}.mobile-nav a[aria-current]{background:transparent;color:#244d73;font-weight:600;box-shadow:none}.mobile-nav a:hover{background:transparent;color:#244d73}
@keyframes navPanelIn{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}@keyframes navPanelOut{to{opacity:0;transform:translateY(-5px)}}@keyframes navContentIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@keyframes scrimIn{from{opacity:0}to{opacity:1}}@keyframes scrimOut{to{opacity:0}}
/* Complete client collection, an editorial logo wall with restrained focus. */
.client-gallery{background:radial-gradient(ellipse at 65% 0,#25425e,#142b44 55%,#11253c);position:relative;isolation:isolate;padding-block:90px 55px;color:#e1eaf5}.client-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:46px}.client-heading .eyebrow{color:#8faac7!important}.client-heading .tiny-mark{background:#90abc9}.client-heading h2{font-size:38px;line-height:1.5;font-weight:500;color:#e3edf9}.client-heading p{font-size:14px;color:#9bb0c8;line-height:1.9;margin-top:20px}.client-overview{display:flex;flex-direction:column;align-items:flex-end;padding-bottom:5px}.client-overview strong{font-size:58px;font-weight:300;letter-spacing:-.03em;line-height:1.1;color:#bfd0e4}.client-overview>span{color:#8ca6c2;font-size:11px;margin-top:10px}.client-overview a{display:inline-block;padding:10px 17px;border:1px solid #718ba449;border-radius:10px;font-size:12px;color:#bfcee1;margin-top:24px;background:#ffffff04;transition:background .25s,border-color .25s}.client-overview a:hover{background:#ffffff09;border-color:#9bb0c66b}.client-wall{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;border:1px solid #a2b8d120;border-radius:20px;overflow:hidden;background:#9cb2ce1c;box-shadow:0 22px 50px #06152724}.client-tile{min-width:0;height:146px;padding:20px 18px 27px;position:relative;display:flex;align-items:center;justify-content:center;background:#19314c;isolation:isolate;outline:0;transition:background .35s,box-shadow .35s}.client-tile:nth-child(2n){background:#1b344f}.client-tile:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 30%,#80a9d21c,transparent 75%);opacity:0;transition:opacity .4s}.client-tile img{max-width:170px;width:100%;height:93px;object-fit:contain;filter:saturate(.8);opacity:.86;transition:opacity .4s,filter .4s,transform .4s}.client-index{position:absolute;top:11px;left:14px;font-size:8px;letter-spacing:.08em;color:#718ca7;opacity:.6}.client-tile figcaption{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-size:9px;letter-spacing:.1em;color:#a1b8d2;opacity:0;transform:translateY(4px);transition:opacity .3s,transform .3s}.client-tile:hover,.client-tile:focus-visible{background:#223d59;box-shadow:inset 0 0 0 1px #8ba7c546}.client-tile:hover:before,.client-tile:focus-visible:before{opacity:1}.client-tile:hover img,.client-tile:focus-visible img{filter:none;opacity:1;transform:translateY(-3px)}.client-tile.keep-white img,.client-tile.keep-white:hover img,.client-tile.keep-white:focus-visible img{filter:none;background:#edf3f9;border-radius:10px;padding:6px 12px;max-width:155px;height:83px}.client-tile:hover figcaption,.client-tile:focus-visible figcaption{opacity:1;transform:none}.client-gallery-foot{display:flex;justify-content:space-between;margin-top:24px;font-size:10px;color:#7590ad;letter-spacing:.06em}.client-gallery+.section{position:relative}
@media(min-width:1600px){.nav-wrap{gap:32px}.desktop-nav>a,.desktop-nav>.nav-disclosure{padding-inline:17px}}
@media(max-width:1200px){.brand-signature{display:none}.nav-wrap{gap:18px}.desktop-nav>a,.desktop-nav>.nav-disclosure{padding-inline:13px}.cap-art{height:185px}.cap-content{padding-inline:22px}.client-tile{height:133px}.client-tile img{height:83px}}
@media(max-width:950px){.nav-wrap{gap:12px}.nav-wrap .brand img{width:145px}.desktop-nav>a,.desktop-nav>.nav-disclosure{padding-inline:9px;font-size:13px}.nav-contact{font-size:11px;padding-inline:14px}.mega-inner{gap:25px}.mega-intro h2{font-size:24px}.cap-art{height:225px}.client-wall{grid-template-columns:repeat(4,1fr)}.client-tile:last-child{grid-column:1/-1}.client-heading h2{font-size:33px}}
@media(max-width:800px){.nav-wrap{height:76px;gap:17px}.nav-wrap .brand img{width:149px}.nav-contact{margin-left:auto;padding:8px 16px}.nav-scrim{inset:76px 0 0;height:calc(100dvh - 76px)}.hero-foundation{gap:14px;padding-block:23px}.hero-foundation>div{padding-left:16px;padding-right:0}.hero-foundation strong{font-size:12px}.hero-foundation>div span{font-size:9px}.cap-art{height:215px}.cap-content{padding:8px 24px 25px}.client-gallery{padding-block:65px 40px}.client-heading{gap:30px}.client-heading h2{font-size:30px}.client-heading p{font-size:13px}.client-overview strong{font-size:47px}.client-wall{grid-template-columns:repeat(3,1fr)}.client-tile:last-child{grid-column:auto}.client-gallery-foot{font-size:9px}}
@media(max-width:480px){.nav-wrap{gap:12px}.nav-wrap .brand img{width:140px}.nav-contact{font-size:10px;padding:7px 13px}.menu-toggle{width:35px;height:35px}.hero-foundation{gap:0}.hero-foundation>div{padding-left:13px;padding-right:9px}.hero-foundation strong{font-size:11px;line-height:1.75}.hero-foundation>div span{font-size:8px;letter-spacing:0}.cap-art{height:220px}.cap-art img{object-fit:contain;transform:scale(1.18)}.cap-content{padding:7px 26px 26px}.cap-number{font-size:9px;margin-bottom:11px}.cap-topics{font-size:11px;margin:19px 0 21px}.cap-link{font-size:13px}.client-heading{display:block;margin-bottom:30px}.client-heading h2{font-size:29px}.client-heading p{font-size:13px;margin-top:17px}.client-overview{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-top:25px}.client-overview strong{font-size:34px}.client-overview>span{margin:0;font-size:10px;max-width:80px}.client-overview a{margin:0;font-size:10px;padding:9px 12px}.client-wall{grid-template-columns:repeat(2,1fr);border-radius:16px}.client-tile{height:131px;padding:20px 14px 26px}.client-tile:last-child{grid-column:1/-1}.client-tile img{max-width:148px;height:85px}.client-tile figcaption{opacity:.65;transform:none;font-size:8px;bottom:10px}.client-index{font-size:7px;left:10px;top:9px}.client-gallery-foot>span:last-child{display:none}.client-gallery-foot{font-size:9px}}
@media(max-width:360px){.nav-contact{display:none}.cap-content{padding-inline:23px}.client-overview{gap:8px}.client-overview a{padding-inline:8px}}
@media(prefers-reduced-motion:reduce){.site-header,.mega-panel,.mega-inner>div,.mega-inner>.mega-feature,.nav-scrim,.mobile-nav{animation:none!important;transition:none!important}.cap-art img,.client-tile,.client-tile img,.client-tile:before,.client-tile figcaption{transition:none}.capability:hover .cap-art img,.client-tile:hover img,.client-tile:focus-visible img{transform:none}.site-header.is-hidden{transform:none!important}}

/* Quiet capability marks: small duotone vectors with content-led spacing. */
.capability-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.capability,.capability+.capability{position:relative;display:flex;min-height:258px;padding:0;overflow:hidden;isolation:isolate;border:1px solid #e0e6ed;border-radius:19px;background:linear-gradient(120deg,#fff 55%,#f7f9fc);transition:transform .35s var(--motion),box-shadow .35s,border-color .35s}
.capability:hover{background:linear-gradient(120deg,#fff 55%,#f7f9fc)}
.cap-content{position:relative;z-index:1;padding:27px 30px 25px;width:100%;display:flex;flex-direction:column;pointer-events:none}
.cap-number{position:static;font-size:9px;letter-spacing:.1em;color:#8d9cac;margin-bottom:12px;padding-right:65px}
.capability h3{font-size:22px;line-height:1.5;font-weight:500;color:#2b4360;margin:0 0 14px;padding-right:65px}
.capability p{font-size:13px;line-height:1.95;min-height:0;color:#6b7f95;margin:0;max-width:400px}
.cap-topics{font-size:10px;color:#8395a9;letter-spacing:.01em;margin:16px 0 22px}
.cap-link{display:block;align-self:flex-start;font-size:12px;color:#47698c;margin-top:auto;padding:0 0 3px;border:0;border-bottom:1px solid #cbd6e2;min-height:0;transition:color .25s,border-color .25s}
.cap-link:after{display:none}.capability:hover .cap-link{color:#294560;border-color:#8ba0b6}
.cap-art{position:absolute;right:28px;top:25px;bottom:auto;width:55px;height:55px;padding:0;margin:0;background:transparent;display:block;mask-image:none;pointer-events:none;opacity:.85}
.cap-art img{width:100%;height:100%;object-fit:contain;mix-blend-mode:normal;mask-image:none;transform:none;opacity:1;transition:opacity .25s}
.capability:hover .cap-art img{transform:none;opacity:1}
.capability:focus-visible{outline:2px solid #809fbe;outline-offset:4px}
@media(hover:hover) and (pointer:fine){.capability:hover{transform:translateY(-2px);box-shadow:0 12px 28px -22px #19364e40}}
@media(max-width:950px){.cap-content{padding:25px}.capability h3{font-size:20px}.cap-art{right:23px;top:24px;width:48px;height:48px}.capability,.capability+.capability{min-height:265px}}
@media(max-width:600px){.capability-grid{grid-template-columns:1fr;gap:17px}.cap-content{padding:25px}.capability h3{font-size:21px;padding-right:52px}.capability p{font-size:13px}.cap-art{width:46px;height:46px;right:23px;top:25px;opacity:.85}.capability,.capability+.capability{min-height:250px;border-radius:17px}.cap-topics{margin:16px 0 20px}.cap-link{font-size:12px}}
@media(max-width:360px){.cap-content{padding:23px}.capability h3{font-size:19px}.cap-art{right:20px;width:43px;height:43px}}
@media(prefers-reduced-motion:reduce){.capability:hover,.capability:hover .cap-art img{transform:none}.cap-art img{transition:none}}
/* One persistent menu surface; switching changes content, never its geometry or tint. */
/* Illustrations emerge gradually across the right half; the copy stays on a quiet field. */
.capability,.capability+.capability{background:linear-gradient(110deg,#fff 26%,#f7fafc 74%,#edf3f8);min-height:258px}
.capability:hover{background:linear-gradient(110deg,#fff 26%,#f7fafc 74%,#edf3f8)}
.cap-background{position:absolute;inset:0 0 0 24%;z-index:0;pointer-events:none;overflow:hidden;opacity:.62;mask-image:linear-gradient(90deg,transparent 3%,rgba(0,0,0,.06) 28%,rgba(0,0,0,.5) 59%,#000 100%);-webkit-mask-image:linear-gradient(90deg,transparent 3%,rgba(0,0,0,.06) 28%,rgba(0,0,0,.5) 59%,#000 100%);transition:opacity .5s,transform .6s var(--motion)}
.cap-background img{height:100%;width:100%;object-fit:cover;object-position:65% 50%;filter:saturate(.8)}
.cap-content{position:relative;z-index:2}.capability p{max-width:78%;color:#61788f}.cap-topics{color:#748ba3}.cap-art{z-index:1;opacity:.65;width:43px;height:43px;right:26px;top:24px}
@media(hover:hover) and (pointer:fine){.capability:hover .cap-background{opacity:.8;transform:translateX(-3px)}.capability:hover .cap-art{opacity:.85}}
@media(max-width:950px){.cap-background{left:18%;opacity:.53}.capability p{max-width:87%}.cap-art{width:38px;height:38px;right:23px}.capability h3{padding-right:48px}}
@media(max-width:600px){.cap-background{left:20%;opacity:.56}.capability p{max-width:88%}.cap-background img{object-position:60% 50%}.capability,.capability+.capability{min-height:250px}}
@media(prefers-reduced-motion:reduce){.cap-background{transition:none}.capability:hover .cap-background{transform:none}}
/* Overlapping grid panels share their natural height, avoiding a fixed empty footer. */
.mega-shell{position:absolute;top:100%;left:0;right:0;display:grid;height:auto;max-height:calc(100dvh - 84px);background:rgba(247,250,254,.96);backdrop-filter:blur(26px);box-shadow:0 25px 35px -30px #142d4a30;overflow:hidden;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-4px);transition:opacity .22s ease,transform .22s ease,visibility .22s}
.mega-shell.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.mega-shell .mega-panel{position:relative;grid-area:1/1;inset:auto;height:auto;min-width:0;overflow:visible;background:transparent;backdrop-filter:none;border:0;box-shadow:none;animation:none;opacity:0;transform:none;pointer-events:none;transition:opacity .18s ease}
.mega-shell .mega-panel.is-active{opacity:1;pointer-events:auto}.mega-shell .mega-inner{min-height:0;align-content:start;padding-block:26px 30px;grid-template-columns:1fr 2.8fr}
.mega-shell .mega-industries{align-content:start;gap:8px 24px}
.mega-shell .mega-industries>a{padding:10px 14px}
.mega-shell .mega-intro h2{margin-bottom:18px}
.mega-shell .mega-intro>span{margin-bottom:12px}.mega-shell .mega-inner>div,.mega-shell .mega-inner>.mega-feature{animation:none}
.site-header:has(.mega-shell.is-open){background:rgba(248,251,255,.88)}
@media(min-width:1101px){#nav-products .mega-industries{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.mega-shell .mega-inner{grid-template-columns:1fr 2.4fr;gap:25px}.mega-shell .mega-industries{gap:6px 14px}.mega-shell .mega-industries>a{padding-inline:10px}}
@media(max-width:800px){.mega-shell{display:none!important}}
@media(prefers-reduced-motion:reduce){.mega-shell,.mega-shell .mega-panel{transition:none}}

/* Keep the full postal address together, with room reserved in the footer grid. */
@media(min-width:801px){.footer-main{grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr) max-content}}
.footer-contact .footer-address{white-space:nowrap}
@media(max-width:480px){.footer-contact .footer-address{font-size:clamp(10px,2.8vw,13px);letter-spacing:0}}
