:root{
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --text-2xl: clamp(2rem, 1.3rem + 2.2vw, 3.25rem);

  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem;
  --space-5:1.25rem; --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem;
  --space-12:3rem; --space-16:4rem; --space-20:5rem; --space-24:6rem; --space-32:8rem;

  --color-bg:#ffffff;
  --color-surface:#F7F8FA;
  --color-ink:#0B0D10;
  --color-text:#1A1D22;
  --color-muted:#5C636E;
  --color-faint:#8A919C;
  --color-line:#E4E7EC;
  --color-accent:#1B3A6B;
  --color-accent-soft:#EEF2F8;

  --font-display:'Satoshi','Inter','Noto Sans SC',-apple-system,BlinkMacSystemFont,sans-serif;
  --font-body:'Inter','Noto Sans SC',-apple-system,BlinkMacSystemFont,sans-serif;

  --maxw:1180px;
  --radius:12px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%;}
/* Anchor targets clear the fixed header on direct hash loads too, where
   scroll-padding-top alone is unreliable in some browsers. */
section[id],[id].legal-h{scroll-margin-top:96px;}
body{
  margin:0;background:var(--color-bg);color:var(--color-text);
  font-family:var(--font-body);font-size:var(--text-base);line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:var(--font-display);color:var(--color-ink);line-height:1.2;letter-spacing:-.02em;margin:0;font-weight:700;}
p{margin:0;}
ul,ol{margin:0;padding:0;list-style:none;}
dl,dd{margin:0;}

.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--space-6);}
.skip-link{position:absolute;left:-9999px;}
.skip-link:focus{left:var(--space-4);top:var(--space-4);z-index:100;background:var(--color-ink);color:#fff;padding:var(--space-3) var(--space-4);border-radius:8px;}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;}

/* ---------- Header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  background:rgba(255,255,255,.72);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .3s var(--ease),background .3s var(--ease);
}
.site-header.is-scrolled{border-bottom-color:var(--color-line);background:rgba(255,255,255,.9);}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);height:72px;}
.brand{display:flex;align-items:center;gap:var(--space-3);color:var(--color-ink);}
.brand-mark{width:24px;height:24px;color:var(--color-accent);flex:none;}
.brand-text{display:flex;flex-direction:column;line-height:1.2;}
.brand-en{font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);letter-spacing:-.01em;}
.brand-cn{font-size:var(--text-xs);color:var(--color-faint);letter-spacing:.05em;}

.nav-desktop{display:none;gap:var(--space-8);}
.nav-desktop a{font-size:var(--text-sm);color:var(--color-muted);transition:color .2s var(--ease);}
.nav-desktop a:hover{color:var(--color-ink);}
.header-actions{display:flex;align-items:center;gap:var(--space-3);}

.nav-toggle{
  width:40px;height:40px;border:1px solid var(--color-line);border-radius:10px;background:#fff;
  display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;
}
.nav-toggle span{display:block;width:16px;height:1.5px;background:var(--color-ink);transition:transform .25s var(--ease);}
.nav-toggle[aria-expanded="true"] span:first-child{transform:translateY(3.25px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.25px) rotate(-45deg);}

.nav-mobile{border-top:1px solid var(--color-line);background:#fff;padding:var(--space-4) var(--space-6) var(--space-8);min-height:calc(100dvh - 64px);overflow-y:auto;}
.nav-mobile nav{display:flex;flex-direction:column;}
.nav-mobile nav a{padding:var(--space-4) 0;border-bottom:1px solid var(--color-line);font-size:var(--text-base);font-weight:500;}
.nav-mobile nav a span{color:var(--color-faint);font-size:var(--text-xs);margin-left:var(--space-2);font-weight:400;}
.nav-mobile .btn{margin-top:var(--space-6);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:var(--space-4) var(--space-8);border-radius:6px;
  font-size:var(--text-sm);font-weight:600;letter-spacing:.01em;
  border:1px solid transparent;cursor:pointer;
  transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease);
}
.btn-sm{padding:var(--space-3) var(--space-5);}
.btn-dark{background:var(--color-ink);color:#fff;}
.btn-dark:hover{background:#252a31;}
.btn-ghost{border-color:var(--color-line);color:var(--color-ink);background:#fff;}
.btn-ghost:hover{border-color:var(--color-ink);}
.btn-block{display:flex;width:100%;}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-8);}

/* ---------- Shared type ---------- */
.eyebrow{font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent);font-weight:600;margin-bottom:var(--space-5);}
.eyebrow-light{color:#9FB4D6;}
.h2{font-size:var(--text-xl);}
.lead{font-size:var(--text-base);color:var(--color-muted);max-width:46ch;margin-top:var(--space-6);}
.section-sub{color:var(--color-muted);max-width:60ch;margin-top:var(--space-5);}
.section{padding-block:clamp(var(--space-16),9vw,var(--space-32));}
.section-alt{background:var(--color-surface);}
.section-head{margin-bottom:clamp(var(--space-10),5vw,var(--space-16));}

/* ---------- Hero ---------- */
.hero{padding-top:calc(72px + clamp(var(--space-16),9vw,var(--space-24)));padding-bottom:clamp(var(--space-12),7vw,var(--space-20));}
.hero-grid{display:grid;gap:var(--space-12);align-items:end;}
.hero-title{font-size:var(--text-2xl);max-width:15ch;}
.tagline{margin-top:clamp(var(--space-12),6vw,var(--space-20));padding-top:var(--space-6);border-top:1px solid var(--color-line);font-size:var(--text-xs);letter-spacing:.12em;color:var(--color-faint);text-transform:uppercase;}

.entity-panel{border:1px solid var(--color-line);border-radius:var(--radius);padding:var(--space-6);background:#fff;}
.panel-title{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-faint);font-weight:600;padding-bottom:var(--space-4);border-bottom:1px solid var(--color-line);}
.entity-panel dl>div{display:grid;grid-template-columns:112px 1fr;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--color-line);}
.entity-panel dl>div:last-child{border-bottom:0;padding-bottom:0;}
.entity-panel dt{font-size:var(--text-xs);color:var(--color-faint);line-height:1.6;}
.entity-panel dd{font-size:var(--text-xs);color:var(--color-text);line-height:1.6;}

/* ---------- Value ---------- */
.statement{display:grid;gap:var(--space-8);padding-bottom:clamp(var(--space-12),6vw,var(--space-20));}
.statement-body{display:flex;flex-direction:column;gap:var(--space-5);color:var(--color-muted);max-width:62ch;}
.emphasis{color:var(--color-ink);font-weight:600;}

.pillars{display:grid;gap:0;border-top:1px solid var(--color-line);}
.pillar{padding:var(--space-8) 0;border-bottom:1px solid var(--color-line);display:grid;gap:var(--space-3);}
.pillar:last-child{border-bottom:none;padding-bottom:0;}
.pillar h3{font-size:var(--text-lg);}
.pillar p{color:var(--color-muted);font-size:var(--text-sm);max-width:70ch;}

/* ---------- Services ---------- */
.services{display:grid;gap:var(--space-12);}
.service{border-top:2px solid var(--color-ink);padding-top:var(--space-6);}
.service h3{font-size:var(--text-lg);margin-bottom:var(--space-3);}
.service-desc{color:var(--color-muted);margin-bottom:var(--space-6);}
.list{display:grid;gap:var(--space-2);margin-bottom:var(--space-6);}
.list li{position:relative;padding-left:var(--space-5);font-size:var(--text-sm);color:var(--color-muted);}
.list li::before{content:"";position:absolute;left:0;top:.72em;width:6px;height:1px;background:var(--color-accent);}
.meta{border-top:1px solid var(--color-line);margin-bottom:var(--space-6);}
.meta>div{display:grid;grid-template-columns:80px 1fr;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--color-line);}
.meta dt{font-size:var(--text-xs);color:var(--color-faint);}
.meta dd{font-size:var(--text-xs);color:var(--color-text);}
.link-cta{
  display:inline-block;font-size:var(--text-sm);font-weight:600;color:var(--color-accent);
  border-bottom:1px solid currentColor;padding-bottom:2px;transition:color .2s var(--ease);
}
.link-cta:hover{color:var(--color-ink);}

/* ---------- Industries ---------- */
.industries{display:grid;border-top:1px solid var(--color-line);}
.industries li{
  display:grid;grid-template-columns:40px 1fr;gap:var(--space-4);align-items:baseline;
  padding:var(--space-6) 0;border-bottom:1px solid var(--color-line);
}
.ind-num{font-size:var(--text-xs);color:var(--color-faint);font-weight:600;letter-spacing:.08em;}
.ind-name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:500;color:var(--color-ink);line-height:1.35;}
.ind-desc{font-size:var(--text-sm);color:var(--color-muted);margin-top:var(--space-2);}

/* ---------- Steps ---------- */
.steps{display:grid;gap:var(--space-8);}
.steps li{border-top:1px solid var(--color-line);padding-top:var(--space-6);}
.step-label{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);font-weight:600;margin-bottom:var(--space-4);}
.steps h3{font-size:var(--text-lg);margin-bottom:var(--space-3);}
.steps li>p:last-child{color:var(--color-muted);font-size:var(--text-sm);}

/* ---------- About (dark) ---------- */
.section-dark{background:var(--color-ink);color:#D8DCE3;}
.section-dark h2{color:#fff;}
.about-inner{display:grid;gap:var(--space-10);}
.about-body{display:flex;flex-direction:column;gap:var(--space-5);max-width:66ch;}
.facts{display:grid;margin-top:var(--space-6);border-top:1px solid rgba(255,255,255,.14);}
.facts div{display:grid;grid-template-columns:110px 1fr;gap:var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid rgba(255,255,255,.14);}
.facts dt{color:#8F97A5;font-size:var(--text-sm);}
.facts dd{font-size:var(--text-sm);color:#EAEDF2;}

/* Governing-language notice at the foot of each translated legal page */
.doc-note{
  margin-top:var(--space-10);padding:var(--space-5) var(--space-6);
  background:var(--color-surface);border:1px solid var(--color-line);
  border-radius:8px;
}
.doc-note p{margin:0;font-size:var(--text-sm);color:var(--color-text);}
.doc-note p + p{margin-top:var(--space-2);}
.doc-note-en{color:var(--color-muted);}

/* ---------- Contact ---------- */
.contact-inner{display:grid;gap:var(--space-12);}
.contact-list{margin-top:var(--space-10);border-top:1px solid var(--color-line);}
.contact-list li{display:grid;grid-template-columns:88px 1fr;gap:var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid var(--color-line);font-size:var(--text-sm);color:var(--color-text);}
.contact-list li>span:first-child{color:var(--color-faint);}
.contact-list li>a,.contact-list li>div{min-width:0;overflow-wrap:anywhere;}
.contact-list a:hover{color:var(--color-accent);}

.form{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius);padding:clamp(var(--space-6),4vw,var(--space-10));display:grid;gap:var(--space-5);}
.field{display:grid;gap:var(--space-2);}
.field label{font-size:var(--text-xs);font-weight:600;letter-spacing:.06em;color:var(--color-muted);}
.field input,.field textarea{
  width:100%;padding:var(--space-4);border:1px solid var(--color-line);border-radius:8px;background:#fff;
  font-family:inherit;font-size:var(--text-sm);color:var(--color-text);resize:vertical;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.field input::placeholder,.field textarea::placeholder{color:#AAB1BB;}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);}
.form-note{font-size:var(--text-xs);color:var(--color-muted);min-height:1.2em;}
.form-note.ok{color:var(--color-accent);font-weight:600;}
.form-legal{font-size:var(--text-xs);color:var(--color-faint);}
.form-legal a{border-bottom:1px solid var(--color-line);}
.form-legal a:hover{color:var(--color-accent);}

/* ---------- Footer ---------- */
.site-footer{border-top:1px solid var(--color-line);padding-top:var(--space-16);padding-bottom:var(--space-8);}
.footer-inner{display:grid;gap:var(--space-10);}
.footer-brand{min-width:0;}
.footer-name{font-family:var(--font-display);font-weight:700;color:var(--color-ink);}
.footer-sub{font-size:var(--text-sm);color:var(--color-muted);margin-top:var(--space-2);}
.footer-cols{display:grid;gap:var(--space-8);}
.footer-cols div{display:grid;gap:var(--space-2);align-content:start;font-size:var(--text-sm);color:var(--color-muted);}
.footer-h{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-ink);font-weight:600;margin-bottom:var(--space-2);}
.footer-cols a:hover{color:var(--color-accent);}
.footer-bottom{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px solid var(--color-line);font-size:var(--text-xs);color:var(--color-faint);}

/* ---------- Cookie notice (compact bottom toast) ---------- */
.cookie{
  position:fixed;left:var(--space-4);bottom:var(--space-4);z-index:60;
  right:auto;max-width:340px;
  background:#fff;border:1px solid var(--color-line);border-radius:8px;
  box-shadow:0 6px 24px rgba(11,13,16,.10);
  padding:10px 10px 10px 14px;
  display:flex;align-items:center;gap:10px;
  animation:cookie-in .35s var(--ease) both;
}
.cookie[hidden]{display:none;}
@keyframes cookie-in{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.cookie p{
  margin:0;font-size:12px;line-height:1.5;color:var(--color-muted);
}
.cookie a{color:var(--color-muted);border-bottom:1px solid var(--color-line);}
.cookie a:hover{color:var(--color-accent);}
.cookie-close{
  flex:none;width:24px;height:24px;padding:0;margin:0;
  display:inline-flex;align-items:center;justify-content:center;
  background:none;border:0;border-radius:4px;cursor:pointer;color:var(--color-faint);
  transition:color .2s var(--ease),background .2s var(--ease);
}
.cookie-close:hover{color:var(--color-ink);background:var(--color-surface);}
.cookie-close svg{width:11px;height:11px;}
@media (max-width:479px){
  .cookie{left:12px;right:12px;bottom:12px;max-width:none;}
}
@media (prefers-reduced-motion:reduce){
  .cookie{animation:none;}
}

/* ---------- Legal pages ---------- */
.doc{padding-top:calc(72px + var(--space-16));padding-bottom:var(--space-24);}
.doc-inner{max-width:760px;}
.doc h1{font-size:var(--text-xl);margin-bottom:var(--space-4);}
.doc .doc-meta{font-size:var(--text-xs);color:var(--color-faint);padding-bottom:var(--space-8);border-bottom:1px solid var(--color-line);}
.doc h2{font-size:var(--text-lg);margin-top:var(--space-12);margin-bottom:var(--space-4);}
.doc h3{font-size:var(--text-base);margin-top:var(--space-8);margin-bottom:var(--space-3);}
.doc p,.doc li{color:var(--color-muted);font-size:var(--text-sm);}
.doc p{margin-top:var(--space-4);}
.doc ul{margin-top:var(--space-4);display:grid;gap:var(--space-2);}
.doc ul li{position:relative;padding-left:var(--space-5);}
.doc ul li::before{content:"";position:absolute;left:0;top:.72em;width:6px;height:1px;background:var(--color-accent);}
.doc table{width:100%;margin-top:var(--space-4);border-collapse:collapse;font-size:var(--text-sm);color:var(--color-muted);}
.doc th,.doc td{padding:var(--space-3);border:1px solid var(--color-line);text-align:left;vertical-align:top;}
.doc th{color:var(--color-ink);font-weight:600;background:var(--color-surface);}
.doc td code{color:var(--color-ink);font-family:var(--font-body);}
.doc-ol{margin-top:var(--space-4);display:grid;gap:var(--space-2);counter-reset:n;}
.doc-ol li{position:relative;padding-left:var(--space-6);counter-increment:n;}
.doc-ol li::before{content:counter(n) ".";position:absolute;left:0;top:0;color:var(--color-accent);font-weight:600;font-size:var(--text-xs);line-height:1.9;}
.doc .back{display:inline-block;margin-bottom:var(--space-8);font-size:var(--text-sm);color:var(--color-accent);border-bottom:1px solid currentColor;}
.doc-lang{margin-top:var(--space-16);padding-top:var(--space-8);border-top:1px solid var(--color-line);}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease);}
.reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;transition:none;}
}

/* ---------- Header: compact on small screens ---------- */
.brand-en,.brand-cn{white-space:nowrap;}
.header-actions .btn-sm{display:none;}
.header-inner .lang-switch{display:none;}

/* language switcher */
.lang-switch{align-items:center;gap:2px;font-size:var(--text-xs);letter-spacing:.04em;white-space:nowrap;}
.lang-switch a{
  padding:4px 7px;border-radius:4px;color:var(--color-faint);
  transition:color .2s var(--ease),background .2s var(--ease);
}
.lang-switch a:hover{color:var(--color-ink);background:var(--color-surface);}
.lang-switch a[aria-current="true"]{color:var(--color-ink);font-weight:600;}
.lang-switch .sep{color:var(--color-line);font-size:11px;}
.nav-mobile .lang-switch{
  display:flex;margin:0 0 var(--space-5);padding-bottom:var(--space-5);
  border-bottom:1px solid var(--color-line);justify-content:flex-start;
  gap:var(--space-1);font-size:var(--text-lg);letter-spacing:0;
}
.nav-mobile .lang-switch a{padding:8px 14px;border-radius:6px;font-weight:500;color:var(--color-muted);}
.nav-mobile .lang-switch a[aria-current="true"]{font-weight:700;background:var(--color-surface);}
.nav-mobile .lang-switch .sep{font-size:var(--text-base);}

/* ---------- Responsive ---------- */
@media (min-width:768px){
  .container{padding-inline:var(--space-10);}
  .services{grid-template-columns:1fr 1fr;gap:var(--space-16) var(--space-12);}
  .steps{grid-template-columns:repeat(3,1fr);}
  .footer-cols{grid-template-columns:.7fr .9fr 1.2fr;}
  .footer-inner{grid-template-columns:1fr 1.5fr;}
  .pillar{grid-template-columns:.6fr 1fr;gap:var(--space-8);align-items:baseline;}
}
@media (min-width:1024px){
  .nav-desktop{display:flex;}
  .nav-toggle{display:none;}
  .header-actions .btn-sm{display:inline-flex;}
  .header-inner .lang-switch{display:flex;}
  .nav-mobile{display:none !important;}
  .hero-grid{grid-template-columns:1.15fr .85fr;gap:var(--space-16);}
  .statement{grid-template-columns:.9fr 1.1fr;gap:var(--space-16);}
  .about-inner{grid-template-columns:.8fr 1.2fr;gap:var(--space-16);}
  .contact-inner{grid-template-columns:1fr 1fr;gap:var(--space-16);}
}

/* inline tag */
.contact-list .tag{
  display:inline-block;
  font-style:normal;
  font-size:11px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--color-faint);
  border:1px solid var(--color-line);
  border-radius:3px;
  padding:1px 6px;
  vertical-align:2px;
  white-space:nowrap;
}
