@font-face{font-family:"Ningbo Sans";src:url("./assets/fonts/ningbo-sans-400.woff2?v=27927a61acc7") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Ningbo Sans";src:url("./assets/fonts/ningbo-sans-500.woff2?v=ac0e5812f6bd") format("woff2");font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:"Ningbo Sans";src:url("./assets/fonts/ningbo-sans-600.woff2?v=3714ff9d421d") format("woff2");font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:"Ningbo Sans";src:url("./assets/fonts/ningbo-sans-700.woff2?v=466989791d29") format("woff2");font-style:normal;font-weight:700;font-display:swap}
:root{--navy:#092c46;--ink:#162f41;--teal:#147c80;--mint:#79d4ce;--muted:#536673;--line:#dce3e7;--light:#f3f6f7;--display:'Ningbo Sans','PingFang SC','Microsoft YaHei',sans-serif;--body:var(--display)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:108px}
body{margin:0;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none;text-underline-offset:4px}
a,button{-webkit-tap-highlight-color:transparent}
button,select{font:inherit}
button,summary,select{cursor:pointer}
button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #229b9e;outline-offset:5px}
::selection{background:#aee7df;color:var(--navy)}
::-webkit-scrollbar{width:9px}
::-webkit-scrollbar-thumb{background:#9cabb3;border:2px solid #f3f6f7;border-radius:8px}
::-webkit-scrollbar-track{background:#f3f6f7}
h1,h2,h3,p{margin:0}
h1,h2,h3{text-wrap:balance}

img{display:block;max-width:100%}
svg.icon,svg.service-icon{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.icon{width:22px;height:22px}
.service-icon{width:34px;height:34px;color:var(--teal)}
.icon-definitions{width:0;height:0;position:absolute;overflow:hidden}
.page-width{width:min(1280px,calc(100% - 112px));margin-inline:auto}
.section-space{padding-block:92px}
.skip-link{position:fixed;top:-100px;left:20px;padding:12px 20px;background:var(--navy);color:#fff;z-index:100}
.skip-link:focus{top:12px}
[hidden]{display:none!important}
.mobile-only,.mobile-label,.mobile-contact-bar{display:none}

/* Shared brand and navigation */
.site-header{height:92px;background:#fff;position:sticky;top:0;z-index:20;border-bottom:1px solid #eaf0f1}
.header-inner{height:100%;width:calc(100% - 80px);max-width:1520px;margin:auto;display:flex;align-items:center;gap:30px}
.brand{display:flex;align-items:center;gap:14px;flex:none}
.brand-logo{width:56px;height:72px;object-fit:contain;flex:none}
.brand-wordmark{display:flex;align-items:center;white-space:nowrap}
.brand-wordmark strong{color:#004e8b}
.desktop-nav{display:flex;align-items:center;gap:29px;margin-left:auto;height:100%;}
.desktop-nav>a{position:relative;display:flex;align-items:center;height:100%;white-space:nowrap;transition:color .2s}
.desktop-nav>a:after{position:absolute;content:'';height:3px;background:var(--teal);bottom:20px;left:0;right:0;transform:scaleX(0);transition:transform .2s}
.desktop-nav>a:hover,.desktop-nav>a.active{color:var(--teal)}
.desktop-nav>a.active:after{transform:scaleX(1)}
.header-contact{display:flex;align-items:center;justify-content:center;gap:16px;min-height:44px;padding:0 20px;background:var(--teal);color:#fff;white-space:nowrap;transition:background .2s}
.header-contact:hover{background:var(--navy)}
.header-contact .icon{width:17px}
.menu-toggle{display:none}

/* Brand statement */
.hero{height:660px;position:relative;color:#fff;background:#15394e;overflow:hidden}
.hero-image{width:100%;height:100%;object-fit:cover;object-position:50% 53%;position:absolute}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,26,48,.85),rgba(3,26,48,.6) 40%,rgba(3,26,48,.1) 82%),linear-gradient(0deg,rgba(2,28,47,.58),transparent 32%)}
.hero-content{position:relative;padding-top:82px}
.hero h1{animation:hero-entrance 1s cubic-bezier(.16,1,.3,1) both}
.hero h1 span{color:var(--mint)}
.hero-subtitle{margin-top:29px;color:#fff}
.hero-description{color:#dce7ee;margin-top:13px;max-width:660px}
.hero-actions{display:flex;align-items:center;gap:32px;margin-top:30px}
.button{display:inline-flex;gap:28px;align-items:center;justify-content:space-between;min-height:54px;padding:0 24px;transition:background .2s,color .2s;border:0}
.button-light{background:#fff;color:var(--navy)}
.button-light:hover{background:var(--mint)}
.button .icon{width:20px;height:20px;transition:transform .2s}
.button:hover .icon{transform:translateX(3px)}
.hero-secondary{display:flex;align-items:center;gap:14px;min-height:48px;border-bottom:1px solid #829baa}
.hero-secondary .icon{width:17px}
.hero-secondary:hover{color:var(--mint);border-color:var(--mint)}
.hero-foot{position:absolute;bottom:28px;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:18px;color:#e0eaf0;}

.hero-location{display:flex;align-items:center;gap:5px;white-space:nowrap}
.hero-location .icon{height:15px;width:15px}
.service-shortcuts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding-block:34px;border-bottom:1px solid var(--line)}
.service-shortcuts>a{display:flex;align-items:center;gap:12px;padding:0 18px;border-right:1px solid var(--line);transition:color .2s}
.service-shortcuts>a:first-child{padding-left:0}
.service-shortcuts>a:last-child{border:0;padding-right:0}

.service-shortcuts small{display:block;color:var(--muted);margin-top:5px;white-space:nowrap}
.service-shortcuts .icon{display:none}
.service-shortcuts>a:hover{color:var(--teal)}

/* Main business areas */
.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;margin-bottom:38px}
.section-heading p{margin-top:15px;color:var(--muted);}
.section-english{color:#667c89;padding-top:15px;white-space:nowrap}
.service-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-bottom:1px solid var(--line);margin-bottom:30px}
.service-tabs button{position:relative;border:0;background:none;color:var(--muted);min-height:62px;padding:16px 12px 20px;transition:color .2s,background .2s}
.service-tabs button:after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:3px;background:var(--teal);transform:scaleX(0);transition:transform .2s}
.service-tabs button[aria-selected=true]{color:var(--teal);background:#f3f8f7}
.service-tabs button[aria-selected=true]:after{transform:scaleX(1)}
.service-tabs button:hover{color:var(--teal);background:#f3f8f7}
.service-panels article{display:grid;grid-template-columns:.93fr 1.07fr;min-height:466px;border:1px solid var(--line)}
.service-story{padding:42px 44px;background:var(--navy);color:#fff;display:flex;flex-direction:column;align-items:flex-start;min-width:0}

.service-story>p{color:#d0dfe8;margin-top:20px;max-width:420px}
.service-story .button{margin-top:28px;min-height:48px}
.service-story-english{color:#90b6c8;display:block;margin-top:auto;padding-top:30px}
.service-scope{padding:40px 46px;min-width:0}
.scope-audience{color:var(--muted);padding-bottom:20px}
.scope-audience>strong{display:block;color:var(--teal);margin-bottom:7px}
.service-scope dl{margin:0}
.service-scope dl>div{padding:18px 0;border-top:1px solid var(--line)}
.service-scope dt{margin-bottom:4px}
.service-scope dd{color:var(--muted);margin:0;}
.service-note{color:var(--muted);margin-top:18px}
.text-link{display:inline-flex;align-items:center;gap:24px;color:var(--teal);border-bottom:1px solid #aad0cf;padding:8px 0;min-height:44px;transition:gap .2s}
.text-link:hover{gap:32px}
.text-link .icon{width:20px;height:20px}

/* Additional services from the company brochure */
.service-extras{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}
.service-extras>a{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:22px 20px;border:1px solid var(--line);transition:border-color .2s,background .2s}
.service-extras>a:hover{border-color:var(--teal);background:#f3f8f7}
.service-extras strong{display:block;}
.service-extras small{display:block;color:var(--muted);margin-top:6px}
.service-extras .icon{width:18px;height:18px;margin-top:4px;color:var(--teal)}

/* Need-led paths */
.solutions{background:var(--light)}
.solution-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:80px}
.solution-intro>p{color:var(--muted);margin:23px 0}
.large-english{display:block;color:#617c8c;margin-top:38px;}
.solution-list{min-width:0}
.solution-list details{border-top:1px solid #cdd8de}
.solution-list details:last-child{border-bottom:1px solid #cdd8de}
summary{list-style:none}
summary::-webkit-details-marker{display:none}
.solution-list summary{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:25px 0}
.solution-list summary>span{min-width:0}
.solution-list summary small{display:block;color:var(--muted);margin-top:8px}

.solution-list summary>.icon{border:1px solid #c4d1d8;border-radius:50%;width:34px;height:34px;padding:7px;transition:transform .2s,background .2s}
.solution-list details[open] summary>.icon{transform:rotate(45deg);background:var(--teal);color:#fff;border-color:var(--teal)}
.solution-body{padding:0 38px 25px 0}
.solution-body p{color:var(--muted)}
.solution-body a{display:inline-flex;align-items:center;gap:15px;color:var(--teal);min-height:44px;margin-top:9px}
.solution-body .icon{width:18px}

/* Local identity and public evidence */
.about{display:grid;grid-template-columns:.94fr 1.06fr;gap:64px;align-items:center}
.about-image{height:auto;aspect-ratio:4/5;position:relative;background:#dce5e9;overflow:hidden}
.about-image img{height:100%;width:100%;object-fit:cover;object-position:center 8%}
.about-image:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(0deg,#05283eab,transparent)}
.about-image>span{position:absolute;bottom:28px;left:28px;right:24px;color:#fff;z-index:1}
.about-copy{min-width:0}

.about-lead{margin:24px 0 13px;color:var(--ink)}
.about-copy>p:not(.about-lead){color:var(--muted);margin-bottom:15px}
.proof-links{margin-top:27px;border-top:1px solid var(--line)}
.proof-links>a{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:17px 0;border-bottom:1px solid var(--line);transition:color .2s}
.proof-links small{display:block;color:var(--muted);margin-top:3px}
.proof-links .icon{width:19px;color:var(--teal)}
.proof-links>a:hover{color:var(--teal)}

/* Company values and service experience */
.about-copy .company-purpose{color:var(--teal);border-left:3px solid var(--teal);padding-left:18px;margin-top:22px}
.company-honors{border-top:1px solid var(--line);padding-top:20px;margin-top:22px}

.company-honors p{color:var(--muted);margin-top:7px}
.about-strengths{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.about-strengths>div{border-top:1px solid var(--line);padding-top:22px}
.about-strengths span{display:block;color:var(--teal);margin-bottom:10px}

.about-strengths p{color:var(--muted);margin-top:10px}

/* Related company services */
.enterprise{background:var(--light);padding-block:70px}
.enterprise-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:80px}

.enterprise-intro p{color:var(--muted);margin-top:19px}
.enterprise-intro .section-english{display:block;padding-top:25px}
.enterprise-list details{border-top:1px solid #cdd8de}
.enterprise-list details:last-child{border-bottom:1px solid #cdd8de}
.enterprise-list summary{display:flex;align-items:center;gap:22px;padding:22px 0;}
.enterprise-list summary>.icon{width:20px;margin-left:auto;transition:transform .2s}
.enterprise-list summary>.service-icon{width:28px;height:28px}
.enterprise-list details[open] summary>.icon{transform:rotate(45deg)}
.enterprise-body{padding:0 0 23px 50px}
.enterprise-body p{color:var(--muted);}
.enterprise-body .text-link{margin-top:12px}

/* Dated references, not current company news */
.news-item{display:grid;grid-template-columns:115px 1fr 30px;gap:30px;align-items:center;border-top:1px solid var(--line);padding:28px 0;transition:color .2s}
.news-item:last-child{border-bottom:1px solid var(--line)}
.news-date{display:flex;flex-direction:column;font-variant-numeric:tabular-nums;}

.news-date>span{color:var(--muted);margin-top:9px}

.news-item p{color:var(--muted);margin-top:10px}
.news-item>.icon{width:23px;height:23px;transition:transform .2s}
.news-item:hover{color:var(--teal)}
.news-item:hover>.icon{transform:translate(3px,-3px)}

/* Consultation without a simulated form submission */
.contact{background:var(--navy);color:#fff;padding:76px 0}
.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}

.contact-planner{min-width:0}
.contact-planner label{display:block;margin:26px 0 9px;color:#c5d8e3}
.contact-planner select{display:block;min-height:52px;width:100%;max-width:440px;padding:11px 40px 11px 16px;border:1px solid #aec5d2;background:#fff;color:var(--navy);border-radius:0;}
.consult-preparation{margin-top:19px;max-width:440px}
.consult-preparation p{color:#c5d8e3;}
.consult-preparation ul{list-style:none;padding:0;margin:9px 0 0;display:flex;flex-direction:column;gap:4px}
.consult-preparation li{display:flex;align-items:baseline;gap:11px;color:#e1ebf1}
.consult-preparation li:before{content:'';width:4px;height:4px;flex:none;background:var(--mint);align-self:center}
.contact-details{min-width:0;border-left:1px solid #315168;padding-left:65px}
.contact-label{color:#bbd0dd;}
.contact-phone{display:flex;align-items:center;gap:24px;margin:12px 0 24px;white-space:nowrap;font-variant-numeric:tabular-nums}
.contact-phone>.icon{width:23px;color:var(--mint)}
.contact-actions{display:flex;align-items:center;gap:23px;flex-wrap:wrap}
.button-teal{background:var(--mint);color:var(--navy);gap:13px;min-height:48px;padding:0 18px}
.button-teal:hover{background:#a2e5df}
.copy-phone{border:0;background:none;color:#e0eaf0;display:inline-flex;align-items:center;gap:8px;padding:10px 0;min-height:44px;}
.copy-phone:hover{color:var(--mint)}
.copy-phone .icon{width:18px;height:18px}
.copy-status{min-height:24px;color:#b5e5df;margin:13px 0 18px}
.department-contacts{padding:14px 0;border-top:1px solid #315168;border-bottom:1px solid #315168;margin-bottom:24px}
.department-contacts>div{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#c5d7e1}
.department-contacts a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap;font-variant-numeric:tabular-nums;color:#fff}
.department-contacts a:hover{color:var(--mint)}
.contact-address{display:flex;align-items:center;gap:9px;color:#c5d7e1}
.contact-address .icon{height:18px;width:18px}
.contact-source{display:inline-flex;gap:5px;align-items:center;color:#b3c8d6;min-height:44px;margin-top:7px}
.contact-source:hover{color:#fff}
.contact-source .icon{width:13px;height:13px}
footer{padding-top:40px}
.footer-main{display:flex;gap:35px;align-items:center;justify-content:space-between;padding-bottom:32px}
.footer-main .brand-logo{width:50px;height:64px}



.footer-main p>span{color:var(--muted)}
.back-top{display:flex;align-items:center;gap:14px;color:var(--muted);white-space:nowrap;min-height:44px}
.back-top .icon{transform:rotate(-90deg);width:17px}
.footer-bottom{padding:20px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:20px;justify-content:space-between;color:var(--muted)}
.footer-bottom a{display:flex;align-items:center;min-height:36px}
.footer-bottom a:hover{color:var(--teal)}
@keyframes hero-entrance{from{transform:translateY(17px);filter:blur(3px);opacity:.4}to{transform:none;filter:none;opacity:1}}

@media(min-width:1600px){
  .hero{height:710px}.hero-content{padding-top:103px}
}
@media(max-width:1250px){
  .header-inner{width:calc(100% - 48px);gap:20px}.desktop-nav{gap:20px;}.header-contact{padding:0 15px;gap:9px}.page-width{width:calc(100% - 80px)}
  .service-shortcuts>a{padding:0 20px;gap:13px}.service-shortcuts .icon{display:none}.service-icon{width:29px;height:29px}
  .solution-grid,.enterprise-grid{gap:50px}.service-story{padding:36px}.service-scope{padding:36px}.about{gap:40px}.contact-inner{gap:45px}.contact-details{padding-left:40px}.contact-phone{gap:16px}
}
@media(max-width:1050px){
  .desktop-nav{gap:15px;}.header-inner{gap:16px}.brand{gap:10px}.brand-logo{width:50px;height:64px}.header-contact{padding:0 12px;}.header-contact .icon{display:none}
  .service-shortcuts>a{padding:0 15px}.service-shortcuts small{white-space:normal}
.service-story,.service-scope{padding:30px}.about-image{height:auto}
  .contact-phone{gap:12px}.contact-details{padding-left:30px}.contact-actions{gap:12px}.footer-main p{max-width:345px}.footer-main{gap:23px}
}
@media(max-width:900px){
  .desktop-nav{display:none}.header-contact{margin-left:auto;padding:0 20px;}.header-contact .icon{display:block}.menu-toggle{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;background:none;border:1px solid var(--line)}
  .mobile-nav{background:#fff;border-top:1px solid var(--line);box-shadow:0 14px 28px #092c4614;padding:8px 24px 20px;max-height:calc(100dvh - 160px);overflow-y:auto}.mobile-nav>a{display:block;padding:11px 6px;border-bottom:1px solid #eaf0f2;}
  .page-width{width:calc(100% - 56px)}.hero{height:650px}.hero-content{padding-top:80px}.section-english{display:none}
  .about{gap:30px}.about-image{height:auto}.solution-grid{gap:40px}.enterprise-grid{gap:40px}
}
@media(max-width:760px){
  html{scroll-padding-top:94px;scroll-padding-bottom:90px}
  body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
  .page-width{width:calc(100% - 40px)}.section-space{padding-block:60px}.site-header{height:78px}.header-inner{width:calc(100% - 40px);gap:10px}
  .brand-logo{width:44px;height:57px}.brand{gap:10px}
  .header-contact{padding:0 12px;min-height:42px}.header-contact .icon,.desktop-label{display:none}.mobile-label{display:inline}.menu-toggle{min-width:42px;min-height:42px}.mobile-nav{padding-inline:20px}
  .hero{height:660px}.hero-image{object-position:62% center}.hero-shade{background:linear-gradient(90deg,rgba(3,26,48,.86),rgba(3,26,48,.28)),linear-gradient(0deg,rgba(3,26,48,.6),transparent 60%)}.hero-content{padding-top:67px}
  .hero h1{white-space:nowrap}.hero-subtitle{margin-top:28px;text-wrap:balance}.hero-description{margin-top:14px;text-wrap:balance}.desktop-break{display:none}
  .hero-actions{gap:12px;align-items:flex-start;flex-direction:column;margin-top:25px}.hero-actions .button{min-height:52px;gap:30px;padding:0 20px}.hero-secondary{min-height:44px}
  .hero-foot{bottom:24px;align-items:flex-end;gap:14px}.hero-foot>span:first-child{max-width:185px;}.hero-brand-line{display:none}
  .service-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr));padding-block:12px}
  .service-shortcuts>a{padding:21px 0!important;gap:12px;border:0}.service-shortcuts>a:nth-child(2n){padding-left:18px!important;border-left:1px solid var(--line)}.service-shortcuts>a:nth-child(-n+4){border-bottom:1px solid var(--line)}.service-shortcuts>a:last-child{grid-column:1/-1}.service-shortcuts small{margin-top:3px}.service-shortcuts .service-icon{width:27px;height:27px}
.section-heading{margin-bottom:26px}.section-heading p{margin-top:14px;}.mobile-only{display:block}
  .service-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:0;margin-bottom:20px}.service-tabs button{border:1px solid var(--line);min-height:50px;padding:10px;background:#fff}.service-tabs button:last-child{grid-column:1/-1}.service-tabs button:after{display:none}.service-tabs button[aria-selected=true]{background:var(--teal);border-color:var(--teal);color:#fff}.service-tabs button:hover{background:#e7f2f1;color:var(--teal)}.service-tabs button[aria-selected=true]:hover{color:#fff;background:#106b6e}
  .service-panels article{grid-template-columns:1fr;min-height:0}.service-story{padding:30px 26px}.service-story>p{margin-top:16px;}.service-story .button{margin-top:23px}.service-story-english{display:none}.service-scope{padding:27px 26px 12px}.scope-audience{padding-bottom:20px}.service-scope dl>div{padding:17px 0}.service-note{margin-top:15px}
  .solution-grid{grid-template-columns:1fr;gap:32px}.solution-intro>p{margin:19px 0 15px}.solution-intro>p br{display:none}.large-english{display:none}.solution-list summary{padding:22px 0;gap:16px}.solution-list summary small{margin-top:8px}.solution-list summary>.icon{width:30px;height:30px;flex:none}.solution-body{padding:0 0 20px}
  .about{grid-template-columns:1fr;gap:29px}.about-image{height:auto;aspect-ratio:4/5}.about-image img{object-position:center 8%}.about-image>span{bottom:21px;left:23px}.about-lead{margin:21px 0 14px}.proof-links{margin-top:23px}.proof-links>a{padding:16px 0}
  .enterprise-grid{grid-template-columns:1fr;gap:26px}.enterprise-intro p{margin-top:16px}.enterprise-intro p br{display:none}.enterprise-intro .section-english{display:none}.enterprise-list summary{padding:21px 0;gap:17px}.enterprise-list summary>.service-icon{width:27px;height:27px}.enterprise-body{padding:0 0 22px 44px}
  .news-item{grid-template-columns:1fr 20px;column-gap:12px;row-gap:14px;padding:24px 0;align-items:start}.news-date{grid-column:1/-1;flex-direction:row;align-items:baseline;gap:12px}.news-date>span{margin:0}.news-item p{margin-top:10px}.news-item>.icon{width:19px;height:19px;margin-top:5px}
  .contact{padding:52px 0}.contact-inner{grid-template-columns:1fr;gap:30px}.contact-planner label{margin-top:24px;}.contact-details{padding:27px 0 0;border-left:0;border-top:1px solid #315168}.contact-phone{gap:20px;margin-top:9px}.contact-actions{gap:22px}.copy-status{margin:12px 0;min-height:23px}
  footer{padding-top:32px}.footer-main{flex-wrap:wrap;row-gap:20px;padding-bottom:23px}.footer-main p{order:3;max-width:none;width:100%;}.footer-main .brand-logo{width:44px;height:57px}.back-top{gap:8px}.footer-bottom{flex-wrap:wrap;gap:7px;padding:20px 0}.footer-bottom>span:first-child{width:100%}.footer-bottom>a{margin-left:auto}
  .mobile-contact-bar{display:flex;align-items:center;gap:10px;position:fixed;z-index:18;bottom:0;left:0;right:0;padding:10px 20px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 18px #092c460a}
  .mobile-contact-bar>a{min-height:46px;display:flex;align-items:center;justify-content:center;flex:1;white-space:nowrap}
  .mobile-contact-bar>a:last-child{background:var(--teal);color:#fff;gap:9px}.mobile-contact-bar .icon{width:17px;height:17px}.mobile-contact-bar>a:first-child{color:var(--navy)}
}
@media(max-width:360px){
  .header-inner{width:calc(100% - 32px);gap:8px}.brand-logo{width:40px;height:52px}.brand{gap:8px}.header-contact{padding-inline:10px}.menu-toggle{min-width:40px;min-height:42px}
  .hero{height:680px}.hero-content{padding-top:54px}.service-shortcuts>a{gap:8px}.service-shortcuts>a:nth-child(2n){padding-left:12px!important}.service-shortcuts .service-icon{width:23px;height:23px}
  .service-story,.service-scope{padding-inline:21px}.contact-phone{gap:12px}.contact-actions{gap:13px}.button-teal{padding-inline:14px}.mobile-contact-bar{padding-inline:14px}.footer-bottom>a{margin-left:0}
}
@media(max-width:760px){
  .service-extras{grid-template-columns:1fr;gap:10px;margin-top:18px}
  .service-extras>a{padding:18px 20px}
  .about-strengths{grid-template-columns:1fr;gap:22px}
  .about-strengths>div{padding-top:18px}
  .about-strengths span{margin-bottom:6px}
  .about-strengths p{margin-top:7px}

}

/* Shared type scale: body 16, supporting text 14, captions 13.
   Same local font and real weights on macOS and Windows. */
:root {
  --text-caption: .8125rem;
  --text-small: .875rem;
  --text-body: 1rem;
  --text-card: 1.125rem;
  --text-row: 1.25rem;
  --text-feature: clamp(1.5rem, 2.1vw, 1.75rem);
  --text-section: clamp(1.75rem, 2.8vw, 2.25rem);
  --text-hero: clamp(3rem, 4.8vw, 4rem);
  --line-body: 1.85;
  --line-heading: 1.4;
  --space-section: 96px;
  --control-radius: 4px;
}
body { font-family: var(--body); font-size: var(--text-body); font-weight: 400; line-height: var(--line-body); letter-spacing: 0; }
h1, h2, h3 { font-family: var(--display); font-weight: 600; line-height: var(--line-heading); letter-spacing: 0; }
h2, .about-copy h2, .enterprise-intro h2, .contact h2 { font-size: var(--text-section); font-weight: 600; line-height: var(--line-heading); }
.hero h1 { font-size: var(--text-hero); font-weight: 600; line-height: 1.3; letter-spacing: .015em; }
.hero-subtitle { font-size: var(--text-row); font-weight: 500; line-height: 1.6; letter-spacing: .02em; }
.hero-description, .section-heading p, .service-story>p, .scope-audience,
.service-scope dd, .solution-intro>p, .solution-body p, .about-copy>p:not(.about-lead),
.enterprise-intro p, .enterprise-body p, .about-strengths p { font-size: var(--text-body); font-weight: 400; line-height: var(--line-body); letter-spacing: 0; }
.service-story h3 { font-size: var(--text-feature); font-weight: 600; line-height: 1.5; letter-spacing: 0; }
.service-scope dt, .service-extras strong, .about-strengths h3, .news-item h3 { font-size: var(--text-card); font-weight: 600; line-height: 1.6; }
.solution-list summary strong, .enterprise-list summary { font-family: var(--display); font-size: var(--text-row); font-weight: 500; line-height: 1.6; letter-spacing: 0; }
.about-lead { font-size: var(--text-body); font-weight: 600; line-height: 1.7; }
.about-copy .company-purpose { font-weight: 500; }
.company-honors h3 { font-size: var(--text-body); font-weight: 600; line-height: 1.6; }
.service-tabs button { font-size: var(--text-body); font-weight: 500; line-height: 1.5; }
.service-tabs button[aria-selected=true] { font-weight: 600; }
.service-shortcuts>a>span { font-size: var(--text-card); font-weight: 600; line-height: 1.5; }
.service-shortcuts small { font-size: var(--text-caption); font-weight: 400; line-height: 1.6; white-space: normal; }
.scope-audience>strong, .service-extras small, .company-honors p,
.solution-list summary small, .contact-planner label, .consult-preparation p,
.consult-preparation li, .contact-label, .department-contacts>div,
.contact-address, .footer-main p { font-size: var(--text-small); line-height: 1.8; letter-spacing: 0; }
.scope-audience>strong, .contact-planner label, .contact-label { font-weight: 500; }
.service-note, .news-item p, .news-date>span, .copy-status, .footer-main p>span,
.footer-bottom, .hero-foot, .hero-location { font-size: var(--text-caption); font-weight: 400; line-height: 1.7; letter-spacing: 0; }
.section-english { font-size: var(--text-caption); font-weight: 500; line-height: 1.6; letter-spacing: .08em; color: var(--muted); }
.hero-brand-line { font-size: .75rem; font-weight: 500; line-height: 1.6; letter-spacing: .12em; }
.service-story-english, .large-english { font-size: 1.5rem; font-weight: 400; line-height: 1.45; letter-spacing: 0; }
.about-image>span { font-size: var(--text-small); font-weight: 500; line-height: 1.8; letter-spacing: .02em; }
.about-strengths span { font-size: var(--text-caption); font-weight: 500; line-height: 1.5; letter-spacing: .08em; }
.news-date strong { font-size: var(--text-feature); font-weight: 500; line-height: 1.3; }
.contact-phone { font-size: clamp(1.75rem, 2.6vw, 2.25rem); font-weight: 500; line-height: 1.3; letter-spacing: 0; }
.contact-phone-number, .department-contacts a, .news-date { font-variant-numeric: tabular-nums; }
.brand-wordmark { line-height: 1.3; }
.brand-wordmark strong { font-family: var(--display); font-size: 32px; font-weight: 700; letter-spacing: .16em; }
.footer-main .brand-wordmark strong { font-size: 30px; }
.desktop-nav { font-size: 15px; font-weight: 500; line-height: 1.5; }
.mobile-nav>a { font-size: var(--text-body); font-weight: 500; line-height: 1.5; }
.button, .hero-actions .button, .service-story .button, .button-teal,
.header-contact, .hero-secondary, .text-link, .solution-body a, .copy-phone,
.back-top, .mobile-contact-bar>a { font-size: var(--text-small); font-weight: 500; line-height: 1.5; letter-spacing: 0; }
.button, .hero-actions .button, .service-story .button, .button-teal { min-height: 48px; padding: 12px 20px; gap: 20px; border-radius: var(--control-radius); }
.header-contact { min-height: 44px; border-radius: var(--control-radius); }
.menu-toggle { min-width: 44px; min-height: 44px; border-radius: var(--control-radius); }
.contact-planner select { min-height: 48px; font-size: var(--text-body); font-weight: 400; line-height: 1.5; padding: 12px 40px 12px 16px; border-radius: var(--control-radius); }
.mobile-contact-bar>a { min-height: 48px; border-radius: var(--control-radius); }
svg.icon, svg.service-icon { stroke-width: 1.7; }

/* Consistent spacing, borders and text rhythm. */
.section-space, .enterprise, .contact { padding-block: var(--space-section); }
.section-heading { gap: 32px; margin-bottom: 32px; }
.section-heading p { margin-top: 16px; max-width: 52em; }
.service-tabs { margin-bottom: 32px; }
.service-tabs button { padding: 16px; min-height: 56px; }
.service-story, .service-scope { padding: 40px; }
.service-story>p { margin-top: 24px; max-width: 28em; }
.service-story .button { margin-top: 32px; }
.service-scope dl>div { padding: 24px 0; }
.service-scope dt { margin-bottom: 8px; }
.service-extras { gap: 24px; margin-top: 24px; }
.service-extras>a { padding: 24px; border-radius: var(--control-radius); }
.service-extras small { margin-top: 8px; }
.solution-list summary, .enterprise-list summary { padding-block: 24px; }
.solution-list summary small { margin-top: 8px; }
.solution-list details, .enterprise-list details, .enterprise-list details:last-child { border-color: var(--line); }
.about-copy>p:not(.about-lead) { margin-bottom: 16px; }
.about-lead { margin: 24px 0 16px; }
.company-honors, .about-strengths>div { padding-top: 24px; }
.company-honors { margin-top: 24px; }
.company-honors p, .about-strengths p, .news-item p { margin-top: 8px; }
.about-strengths { gap: 32px; }
.contact-actions { gap: 24px; }
.contact-phone { gap: 16px; margin: 16px 0 24px; }
.news-item { padding-block: 32px; }
.footer-main { padding-bottom: 32px; }
.footer-bottom { padding-block: 24px; }

@media(max-width:1250px) {
  :root { --space-section: 80px; }
  .brand-wordmark strong, .footer-main .brand-wordmark strong { font-size: 28px; }
  .service-shortcuts>a { padding-inline: 16px; gap: 12px; }
  .service-shortcuts .service-icon { width: 28px; height: 28px; }
  .service-shortcuts>a>span { font-size: var(--text-body); }
  .service-story, .service-scope { padding: 32px; }
}
@media(min-width:761px) and (max-width:1050px) {
  .desktop-nav { display: none; }
  .header-contact { margin-left: auto; }
  .menu-toggle { display: flex; align-items: center; justify-content: center; border: 1px solid var(--line); background: #fff; }
  .mobile-nav { background: #fff; border-top: 1px solid var(--line); padding: 8px 24px 20px; max-height: calc(100dvh - 120px); overflow-y: auto; box-shadow: 0 14px 28px #092c4614; }
  .mobile-nav>a { display: block; padding: 12px 6px; border-bottom: 1px solid #eaf0f2; }
  .service-shortcuts .service-icon { display: none; }
  .solution-grid, .enterprise-grid { gap: 32px; }
  .contact-inner { gap: 32px; }
  .contact-details { padding-left: 24px; }
  .department-contacts>div { align-items: flex-start; flex-direction: column; gap: 0; padding-block: 8px; }
  .department-contacts a { min-height: 32px; }
}
@media(max-width:760px) {
  :root { --text-section: 1.75rem; --text-feature: 1.5rem; --text-row: 1.125rem; --text-hero: clamp(2rem, 9.2vw, 2.625rem); --space-section: 64px; }
  .brand-wordmark strong, .footer-main .brand-wordmark strong { font-size: 24px; letter-spacing: .12em; }
  .brand { gap: 10px; }
  .hero h1 { line-height: 1.35; }
  .hero-subtitle { margin-top: 24px; }
  .hero-description { margin-top: 16px; text-wrap: wrap; }
  .hero-actions { margin-top: 24px; gap: 12px; }
  .hero-actions .button { gap: 20px; }
  .section-heading, .service-tabs { margin-bottom: 24px; }
  .service-tabs { gap: 8px; }
  .service-tabs button { min-height: 48px; padding: 12px; border-radius: var(--control-radius); }
  .service-shortcuts>a>span { font-size: var(--text-body); }
  .service-shortcuts small { font-size: var(--text-caption); }
  .service-shortcuts .service-icon { width: 24px; height: 24px; }
  .service-story, .service-scope { padding: 24px; }
  .service-story>p { margin-top: 16px; }
  .service-story .button { margin-top: 24px; }
  .service-scope dl>div { padding-block: 20px; }
  .service-scope dt { font-size: var(--text-body); }
  .scope-audience { padding-bottom: 20px; }
  .service-extras { gap: 12px; }
  .service-extras>a { padding: 20px; }
  .solution-grid, .enterprise-grid, .about { gap: 32px; }
  .solution-list summary, .enterprise-list summary { padding-block: 20px; }
  .enterprise-list summary { gap: 12px; }
  .enterprise-list summary>.service-icon { width: 24px; height: 24px; }
  .enterprise-body { padding-left: 36px; }
  .news-date strong { font-size: var(--text-card); }
  .contact-phone { font-size: 2rem; }
  .contact-details { padding-top: 32px; }
  .contact-actions { gap: 20px; }
  .about-strengths { gap: 24px; }
  .back-top { gap: 8px; }
  .footer-main .brand-logo { width: 44px; height: 57px; }
}
@media(max-width:360px) {
  .brand-wordmark strong, .footer-main .brand-wordmark strong { font-size: 20px; letter-spacing: .1em; }
  .brand { gap: 8px; }
  .header-contact { padding-inline: 10px; }
  .service-shortcuts>a:nth-child(2n) { padding-left: 12px!important; }
  .service-story, .service-scope { padding-inline: 20px; }
  .contact-phone { font-size: 1.75rem; gap: 12px; }
  .department-contacts>div { flex-wrap: wrap; gap: 0 12px; padding-block: 6px; }
  .contact-actions { gap: 16px; }
  .footer-main .brand { gap: 8px; }
  .footer-main .brand-logo { width: 40px; height: 52px; }
}

/* Bilingual navigation: visible in the header at every viewport size. */
.language-switch { display: flex; align-items: center; flex: none; gap: 2px; color: var(--muted); font-size: var(--text-small); line-height: 1; }
.language-switch a { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 44px; position: relative; border-radius: var(--control-radius); }
.language-switch>span { color: #a2afb7; }
.language-switch a:hover { color: var(--teal); background: #f3f8f7; }
.language-switch a[aria-current="page"] { color: var(--teal); font-weight: 600; }
.language-switch a[aria-current="page"]::after { content: ''; position: absolute; bottom: 5px; left: 10px; right: 10px; height: 2px; background: var(--teal); }

/* English copy uses the same type system, with room for longer words. */
html[lang="en"] .hero h1 { letter-spacing: 0; white-space: normal; }
html[lang="en"] .hero-description { max-width: 42em; }
html[lang="en"] .hero-foot>span:first-child { max-width: 30em; }
html[lang="en"] .service-shortcuts>a>span { min-width: 0; }
html[lang="en"] .service-shortcuts>a { align-items: flex-start; }
html[lang="en"] .service-shortcuts .service-icon { margin-top: 4px; }
html[lang="en"] .service-tabs button { padding-inline: 12px; }
html[lang="en"] .contact-phone { font-size: clamp(1.375rem, 2.4vw, 2rem); }
html[lang="en"] .contact-phone-number { white-space: nowrap; }
html[lang="en"] .department-contacts>div { flex-wrap: wrap; gap: 4px 16px; }
html[lang="en"] .department-contacts a { white-space: nowrap; }
html[lang="en"] .contact-actions { flex-wrap: wrap; gap: 12px 24px; }
html[lang="en"] .contact-planner { min-width: 0; }
html[lang="en"] .footer-main p { max-width: 30em; }

/* Registration and shared visit total use the footer's existing type scale. */
.footer-bottom { flex-wrap: wrap; column-gap: 28px; row-gap: 8px; }
.footer-meta { display: flex; align-items: center; flex-wrap: wrap; column-gap: 24px; row-gap: 4px; }
.footer-meta .icp-link { white-space: nowrap; }
.visit-counter { display: inline-flex; align-items: baseline; gap: 6px; white-space: nowrap; }
.visit-count { font-variant-numeric: tabular-nums; }
@media (max-width: 760px) {
  .footer-meta { column-gap: 20px; }
}
@media(min-width:1051px) {
  .header-inner { gap: clamp(12px, 1.6vw, 24px); }
  .desktop-nav { gap: clamp(16px, 2vw, 29px); }
}
@media(max-width:760px) {
  html[lang="en"] .hero { height: auto; min-height: 700px; }
  html[lang="en"] .hero-content { padding-top: 56px; padding-bottom: 160px; }
  html[lang="en"] .hero h1 { font-size: clamp(1.875rem, 7.7vw, 2.625rem); line-height: 1.3; }
  html[lang="en"] .hero-foot { align-items: flex-start; }
  html[lang="en"] .hero-foot>span:first-child { max-width: 60%; }
  html[lang="en"] .hero-brand-line { display: none; }
  html[lang="en"] .contact-phone { font-size: clamp(1.375rem, 6vw, 2rem); }
}
@media(max-width:600px) {
  .header-inner { width: calc(100% - 32px); gap: 8px; }
  .header-contact { display: none; }
  .language-switch { margin-left: auto; gap: 0; }
  .menu-toggle { flex: none; }
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}
}
