/* What We Do: scoped design; current Claude copy is preserved. */
.page-contact{--font:"Microsoft YaHei","微软雅黑",Arial,sans-serif;--wrap:100rem;--gut:clamp(1.25rem,5vw,5rem);--hdr:5.25rem;--sp:clamp(4rem,6vw,7rem);--r:.5rem;--grad:linear-gradient(110deg,#0f3193,#35b2d2);font-family:var(--font);color:#10243b}
.page-contact .hdr{position:fixed;inset:0 0 auto;background:transparent;border:0;box-shadow:none;backdrop-filter:none;transition:background .35s}
.page-contact .hdr.is-stuck{background:#21313eaa;backdrop-filter:blur(.75rem)}
.page-contact .hdr__logo img{content:url('../img/logo-white.png');height:2rem}
.page-contact .hdr__nav{gap:clamp(.75rem,1.3vw,1.5rem)}
.page-contact .hdr__nav a{font-size:1.125rem;font-weight:400;letter-spacing:0;color:white}
.page-contact .hdr__nav a::after{background:#35b2d2}
.page-contact .burger span,.page-contact .burger span::before,.page-contact .burger span::after{background:white}
.page-contact.is-menu .burger span{background:transparent}
.page-contact .btn{background:#0f3193;border-radius:.25rem;font-size:1rem;letter-spacing:0;font-weight:400;padding:0 1.75rem;height:3rem}
.page-contact .hdr__cta{font-size:1.25rem;height:2.75rem}
.page-contact .phero{background:#102c41;border:0;position:relative}
.page-contact .hero__bg{position:absolute;inset:0;background:linear-gradient(90deg,#081e32cf,#102c4144),url('../img/com-campus.jpg') center/cover;opacity:1}
.page-contact .phero__in{min-height:82svh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding-block:calc(var(--hdr) + 3rem) 7rem;position:relative}
.page-contact .phero h1{font-size:clamp(3rem,4.5vw,5rem);font-weight:700;line-height:1.2;color:white;letter-spacing:-.02em}
.page-contact .phero p{font-size:clamp(1.25rem,2vw,2rem);color:#eef7fb;max-width:none;margin-top:1.5rem}
.page-contact .crumbs,.page-contact .crumbs a,.page-contact .crumbs .cur{font-size:.875rem;color:#e2eef4;letter-spacing:0}
.page-contact .crumbs{margin-bottom:2rem}
.page-contact .subnav{position:sticky;top:calc(var(--hdr) + .75rem);margin-top:-2rem;height:4rem;border:0;background:none;backdrop-filter:none;pointer-events:none}
.page-contact .subnav__in{width:max-content;max-width:calc(100% - 2*var(--gut));padding:0 .75rem;gap:.375rem;height:4rem;background:#fffffff2;border:.0625rem solid #dce7ef;border-radius:.5rem;box-shadow:0 .6rem 2rem #10243b12;pointer-events:auto}
.page-contact .subnav a{font-size:1rem;text-transform:none;font-weight:400;letter-spacing:0;padding:.85rem 1.1rem;border-radius:.25rem}
.page-contact .subnav a::after{display:none}
.page-contact .subnav a.is-active{color:white;background:#0f3193}
.page-contact .section{scroll-margin-top:calc(var(--hdr) + 6rem)}
.page-contact .eyebrow{font-size:1.5rem;font-weight:700;letter-spacing:0;text-transform:none;line-height:1.5}
.page-contact .hero__bg{background:linear-gradient(90deg,#0b263fdb,#0b263f30),url('../img/com-office.jpg') center/cover}
.page-contact .phero__in{padding-inline:var(--gut);min-height:66svh}
.page-contact .phero p{line-height:1.5;max-width:40rem}
.page-contact .section{padding:5rem 0}
.page-contact .section--tight{padding:0 0 3rem}
.page-contact .contact-lines{position:relative;z-index:3;margin-top:-2.5rem;display:grid;grid-template-columns:1fr 1fr;gap:0;background:white;border:.0625rem solid #dbe7ef;border-radius:.5rem;box-shadow:0 1rem 3rem #102c4110;padding:2rem}
.page-contact .cline{padding:1rem 2rem;gap:1.5rem;font-size:1.25rem;line-height:1.7;min-width:0}
.page-contact .cline+.cline{border-left:.0625rem solid #dce8ef}
.page-contact .cline>span:last-child{overflow-wrap:anywhere}
.page-contact .cline .ic{width:4rem;height:4rem;border-radius:1rem;background:linear-gradient(130deg,#0f3193,#35b2d2)}
.page-contact .cline svg{width:2rem;height:2rem;stroke:white}
.page-contact .h-lg{font-size:clamp(2rem,3vw,3rem);line-height:1.4;font-weight:400;letter-spacing:0}
.page-contact .body{font-size:1.25rem;line-height:1.8;color:#55738a}
.page-contact .sechead{display:flex;justify-content:space-between;align-items:center;gap:3rem}
.page-contact .sechead p{max-width:32rem}
.page-contact .offices-section{background:#f2f7fa}
.page-contact .office-panels{margin-top:3rem;gap:1.5rem}
.page-contact .office{padding:2.5rem;border:.0625rem solid #d9e6ef;background:#fff;border-radius:.5rem;box-shadow:none}
.page-contact .office h3{font-size:1.75rem;font-weight:700;letter-spacing:0;text-transform:none;line-height:1.5;color:#0f3193;margin-bottom:1.5rem}
.page-contact .office__addr{font-size:1.25rem;line-height:1.8;color:#385a73;margin:0 0 2rem;max-width:55ch}
.page-contact .office__c{font-size:1.125rem;line-height:2;color:#54748a;border-top:.0625rem solid #dce7ef;padding-top:1.5rem;overflow-wrap:anywhere}
.page-contact .office__c a{display:inline-block;text-decoration:underline;text-decoration-color:#c4dce8;text-underline-offset:.25rem}
.page-contact .office-switcher{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;align-content:start}
.page-contact .office-switcher button{font-family:inherit;font-size:1.0625rem;line-height:1.5;text-align:left;padding:1.125rem;border:.0625rem solid #ccdee9;background:#fff;border-radius:.25rem;color:#45677d;cursor:pointer;transition:background .3s,color .3s}
.page-contact .office-switcher button[aria-selected="true"]{background:#0f3193;color:white;border-color:#0f3193}
.page-contact .office-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:3rem;margin-top:3rem;align-items:stretch}
.page-contact .office-layout .office-panels{display:block;margin:0}
.page-contact .office-layout .office{height:100%;min-height:26rem;border-top:.1875rem solid #35b2d2}
.page-contact .office[hidden]{display:none}
.page-contact .map{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:center;aspect-ratio:auto;background:#fff;border:0;border-radius:0;overflow:visible;padding:0;margin-top:2rem}
.page-contact .map__img{position:static;inset:auto;width:100%;height:auto;object-fit:contain;max-width:40rem;opacity:1;justify-self:center}
.page-contact .map__cities{position:static;text-align:left;font-size:1.5rem;line-height:2.1;letter-spacing:0;color:#335a73}
.page-contact .enquiry-wrap{display:grid;grid-template-columns:.7fr 1.3fr;gap:1.5rem 5rem;align-items:start}
.page-contact .enquiry-wrap>.eyebrow{grid-column:1}
.page-contact .enquiry-wrap>h2{grid-column:1}
.page-contact .enquiry-wrap>.form{grid-column:2;grid-row:1/4;margin:0;background:white;border:.0625rem solid #d4e4ed;border-radius:.5rem;padding:2.5rem;gap:1.5rem}
.page-contact .field label{font-size:1rem;letter-spacing:0;text-transform:none;margin-bottom:.75rem}
.page-contact .field input,.page-contact .field select,.page-contact .field textarea{font-family:inherit;font-size:1rem;padding:.875rem 1rem;border:.0625rem solid #c4d9e7;border-radius:.25rem;background:#fafcfd;min-height:3.25rem;max-width:100%}
.page-contact .field input:focus,.page-contact .field select:focus,.page-contact .field textarea:focus{border-color:#35b2d2;box-shadow:0 0 0 .1875rem #35b2d215}
.page-contact .field textarea{min-height:10rem;resize:vertical}
.page-contact .form__note{font-size:.9375rem;line-height:1.7;color:#5b788c}
.page-contact .form__note a{color:#0f3193;text-decoration:underline}
.page-contact .mmenu{visibility:hidden}.page-contact.is-menu .mmenu{visibility:visible}
.page-contact .ftr__grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1.05fr) minmax(0,1fr)}
.page-contact .ftr__grid>*{min-width:0}.page-contact .ftr__nav a,.page-contact .ftr__addr,.page-contact .ftr__link{font-size:1rem;line-height:1.7}.page-contact .ftr__addr{overflow-wrap:anywhere}
.page-contact :focus-visible{outline:.125rem solid #35b2d2;outline-offset:.25rem}
@media(max-width:80rem){.page-contact .hdr__nav{display:none}.page-contact .burger{display:block}.page-contact .hdr__cta{margin-left:auto}}
@media(max-width:60rem){.page-contact{--hdr:4.5rem}.page-contact .contact-lines{padding:1rem}.page-contact .cline{padding:1rem;font-size:1.0625rem;gap:1rem}.page-contact .sechead{display:block}.page-contact .office-layout{grid-template-columns:1fr;gap:1.5rem}.page-contact .office-switcher{grid-template-columns:repeat(3,minmax(0,1fr))}.page-contact .enquiry-wrap{display:block}.page-contact .enquiry-wrap>h2{margin:1rem 0 2rem}.page-contact .map{gap:1.5rem}.page-contact .map__cities{font-size:1.125rem}.page-contact .ftr__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:40rem){.page-contact{--hdr:4rem}.page-contact .phero__in{min-height:30rem}.page-contact .phero h1{font-size:2.75rem}.page-contact .section{padding:3.5rem 0}.page-contact .section--tight{padding:0 0 2rem}.page-contact .contact-lines{grid-template-columns:1fr}.page-contact .cline+.cline{border-left:0;border-top:.0625rem solid #dce8ef}.page-contact .cline .ic{width:3rem;height:3rem}.page-contact .office-switcher{grid-template-columns:1fr 1fr}.page-contact .office-switcher button{font-size:.9375rem;padding:.875rem}.page-contact .office{padding:1.5rem}.page-contact .office__addr{font-size:1.0625rem}.page-contact .office__c{font-size:1rem}.page-contact .office-layout .office{min-height:0}.page-contact .map{grid-template-columns:1fr}.page-contact .enquiry-wrap>.form{padding:1.25rem;grid-template-columns:1fr}.page-contact .field{grid-column:1/-1}.page-contact .ftr__grid{grid-template-columns:1fr}.page-contact .ftr__nav{grid-template-columns:repeat(2,minmax(0,1fr))}.page-contact .ftr__nav a{white-space:normal}}
@media(prefers-reduced-motion:reduce){.page-contact *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.page-contact .office-geography{display:grid;grid-template-columns:1.4fr 1fr;gap:3rem;align-items:center;margin-top:2.5rem}
.page-contact .office-geo{width:100%;height:auto;border:.0625rem solid #d7e6f0;border-radius:.75rem;background:#eef5fa}
.page-contact .geo-land path{fill:#dce8ef;stroke:#fff;stroke-width:1;stroke-linejoin:round}
.page-contact .geo-city{fill:#0f3193;outline:none}
.page-contact .geo-city>path{fill:none;stroke:#35b2d2;stroke-width:1.2}
.page-contact .geo-city circle{fill:#0f3193;stroke:white;stroke-width:1.3}
.page-contact .geo-city .geo-halo{fill:#35b2d2;opacity:.16;stroke:none}
.page-contact .geo-city text{font-family:var(--font);font-size:14px;font-weight:600;paint-order:stroke;stroke:#eef5fa;stroke-width:3;stroke-linejoin:round;fill:#153f62}
.page-contact .geo-city:hover circle,.page-contact .geo-city:focus circle,.page-contact .geo-city.is-active circle{fill:#35b2d2}
.page-contact .geo-city:hover .geo-halo,.page-contact .geo-city:focus .geo-halo,.page-contact .geo-city.is-active .geo-halo{opacity:.35}
.page-contact .geo-intro{font-size:1.25rem;line-height:1.7;color:#3e627c;margin-bottom:1.5rem}
.page-contact .geo-links{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.page-contact .geo-links a{font-size:1rem;color:#284f6c;padding:.875rem 1rem;border:.0625rem solid #d3e4ef;border-radius:.25rem;line-height:1.5;transition:background .3s}
.page-contact .geo-links a:hover,.page-contact .geo-links a.is-active{background:#0f3193;color:white}
.page-contact .geo-support{margin-top:1.75rem;border-top:.0625rem solid #d2e2ed;padding-top:1.5rem;font-size:1rem;line-height:1.8;color:#466981}
.page-contact .geo-support b{color:#0f3193;font-size:1.25rem}.page-contact .geo-support a{text-decoration:underline}
.page-contact .geo-note{font-size:.875rem;color:#6c8699;line-height:1.6;margin-top:1.5rem}
.page-contact #offices{scroll-margin-top:calc(var(--hdr) + 1rem)}
@media(max-width:60rem){.page-contact .office-geography{grid-template-columns:1fr;gap:1.5rem}.page-contact .office-geo{max-width:48rem;justify-self:center}.page-contact .geo-links{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:40rem){.page-contact .geo-links{grid-template-columns:repeat(2,minmax(0,1fr))}.page-contact .geo-links a{font-size:.9375rem;padding:.75rem}.page-contact .geo-city text{font-size:17px}}
/* Keep map interaction local, with stable-height contact panels. */
.page-contact .office-geography{align-items:start}
.page-contact .geo-links a,.page-contact .geo-city{cursor:pointer}
.page-contact .geo-contact-details{display:grid;margin-top:1.5rem;background:#f2f7fa;border:.0625rem solid #d6e6ef;border-radius:.5rem;padding:1.5rem;overflow-anchor:none}
.page-contact .geo-contact-panel{grid-area:1/1;visibility:hidden;pointer-events:none;min-width:0}
.page-contact .geo-contact-panel.is-active{visibility:visible;pointer-events:auto}
.page-contact .geo-contact-panel h3{font-size:1.25rem;line-height:1.5;color:#0f3193;margin-bottom:.75rem}
.page-contact .geo-contact-panel .office__addr{font-size:1rem;line-height:1.7;margin:0 0 1rem}
.page-contact .geo-contact-panel .office__c{font-size:1rem;line-height:1.8;margin:0;padding-top:1rem}
@media(max-width:40rem){.page-contact .geo-contact-details{padding:1.125rem}}
/* One office module: city map and a single directory share the same state. */
.page-contact .office-unified{grid-template-columns:1.2fr 1fr;gap:2.5rem;align-items:start}
.page-contact .office-unified .office-switcher{grid-template-columns:1fr 1fr;gap:.5rem}
.page-contact .office-unified .office-switcher button{font-size:1rem;padding:.75rem 1rem}
.page-contact .office-unified .office-panels{margin-top:1.25rem}
.page-contact .office-panels-ready{display:grid;grid-template-columns:1fr;gap:0;overflow-anchor:none}
.page-contact .office-panels-ready .office{grid-area:1/1;visibility:hidden;pointer-events:none;padding:1.5rem;min-width:0}
.page-contact .office-panels-ready .office.is-active{visibility:visible;pointer-events:auto}
.page-contact .office-unified .office h3{font-size:1.5rem;margin-bottom:1rem}
.page-contact .office-unified .office__addr{font-size:1rem;line-height:1.75;margin-bottom:1.25rem}
.page-contact .office-unified .office__c{font-size:1rem;line-height:1.85;padding-top:1rem}
@media(max-width:60rem){.page-contact .office-unified{grid-template-columns:1fr}.page-contact .office-map-wrap{width:100%;max-width:44rem;justify-self:center}}
