/* ============================================================
   Simplified Chinese overrides. Loaded ONLY by /zh/ pages, and
   LAST in <head> so it outranks the page-level <style> blocks.

   Fonts are linked directly in each /zh/ page's <head>, not
   @import-ed here — @import costs an extra round trip before the
   browser can even discover the largest asset on the page.

   Every rule is scoped to html[lang^="zh"] so none of it can
   reach the English pages even if this file is loaded by mistake.
   ============================================================ */

/* Latin faces stay FIRST. Per-glyph fallback then keeps "CFO", "GST",
   "ACRA", "KPI", digits and ASTRA AXIOM ADVISORY in Inter/Playfair,
   and sends only Han — which neither face covers — to Noto.
   Overriding these two custom properties also fixes every font-family
   reference inside the page-level <style> blocks (.ab-statement,
   .ab-step-label, input, textarea) with no per-page edit. */
html[lang^="zh"]{
  --sans:"Inter","Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",ui-sans-serif,system-ui,sans-serif;
  --serif:"Playfair Display","Noto Serif SC","Songti SC","SimSun",Georgia,serif;
}

/* Han fills its em box, so Latin leading is too tight. */
html[lang^="zh"] body{
  line-height:1.85;
}

/* Headings carry negative tracking for Latin; on Han it jams the glyphs. */
html[lang^="zh"] h1,
html[lang^="zh"] h2,
html[lang^="zh"] h3,
html[lang^="zh"] h4{
  letter-spacing:0;
  line-height:1.4;
}

/* Heading rules that live in page-level <style> blocks. The [lang]
   attribute selector (0-2-1) outranks them regardless of source order. */
html[lang^="zh"] .ab-statement{ letter-spacing:0; line-height:1.55; }
html[lang^="zh"] .svc-hero h1{ line-height:1.45; }
html[lang^="zh"] .comp-block h2{ letter-spacing:0; }
html[lang^="zh"] .track-content h2{ letter-spacing:0; }
html[lang^="zh"] .band-head h2{ letter-spacing:0; }
html[lang^="zh"] .cta-panel h2{ letter-spacing:0; }

/* 2px tracking on Han labels reads as broken rather than editorial.
   uppercase is kept: it is a no-op on Han but still needed for the
   embedded Latin ("GST", "CFO") inside these labels. */
html[lang^="zh"] .eyebrow{
  letter-spacing:1px;
}

html[lang^="zh"] .pill{
  letter-spacing:.3px;
}

/* Body measure: 660-680px of Han is ~41 characters per line, a little
   wide. em-based caps land nearer the ideal 25-40. */
html[lang^="zh"] .svc-lead,
html[lang^="zh"] .comp-lead{
  max-width:34em;
  line-height:1.95;
}

html[lang^="zh"] .band-head p,
html[lang^="zh"] .ab-body p,
html[lang^="zh"] .services-intro{
  letter-spacing:0;
  line-height:1.95;
}

/* Han has no inter-word spaces, so a long run can overflow its box. */
html[lang^="zh"] p,
html[lang^="zh"] li,
html[lang^="zh"] h1,
html[lang^="zh"] h2,
html[lang^="zh"] h3{
  overflow-wrap:break-word;
  line-break:strict;
}

html[lang^="zh"] .home h1,
html[lang^="zh"] .hero-link{
  letter-spacing:.5px;
}

html[lang^="zh"] .btn{
  letter-spacing:0;
}

/* The switcher reads "English" here — keep it Latin-tracked. */
html[lang^="zh"] .lang-switch a,
html[lang^="zh"] .lang-switch-solo{
  font-family:var(--sans);
  letter-spacing:.4px;
}

/* .brand-name is deliberately NOT overridden. The firm has no registered
   Chinese name, so it stays "ASTRA AXIOM ADVISORY" in Playfair with its
   Latin 1.6px tracking and white-space:nowrap. */
