/* Chinese mirror retained-Latin typography
   Loaded after page-level styles so explicit Latin spans on zh pages keep the
   English ShoreVest type system while surrounding CJK remains on the Chinese
   type system. */

html[lang^="zh"] body :where(
  .latin-text,
  .english-term,
  .en-term,
  .latin-meta,
  .sv-en,
  .sv-text-en,
  .english-label,
  .brand-latin,
  .brand-wordmark-latin,
  [lang="en"],
  [lang="en-US"]
):not(#site-header-mount *):not(.mobile-menu-panel *) {
  font-family: var(--sv-font-en) !important;
}

html[lang^="zh"] body :where(
  .latin-text,
  .english-term,
  .en-term,
  .latin-meta,
  .sv-en
):not(#site-header-mount *):not(.mobile-menu-panel *) {
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  color: inherit !important;
  font-style: inherit !important;
  letter-spacing: inherit !important;
  text-transform: inherit !important;
}

/* The shared header owns the ShoreVest brand lock-up and MENU button on
   every locale. Keep the Chinese retained-Latin typography layer out of the
   mounted header so the English and Chinese homepages share the exact same
   wordmark class, button text treatment, sizing, spacing, and alignment. */
html[lang^="zh"] body :where(.sv-footer__brand, .footer-brand-lockup),
html[lang^="zh"] body :where(.sv-footer__contact a, .sv-footer__copyright .latin-text) {
  font-family: var(--sv-font-en) !important;
}

/* Chinese footer brand parity: the footer templates wrap retained English in
   .latin-text spans, while the Chinese-wide reset intentionally removes
   tracking from generic spans. Re-apply the English footer brand lockup to
   the brand container and its nested Latin wordmark so the zh footer matches
   the English site's spaced S H O R E V E S T treatment exactly. */
html[lang^="zh"] body footer.sv-footer :is(.sv-footer__brand, .footer-brand-lockup),
html[lang^="zh"] body footer.sv-footer :is(.sv-footer__brand, .footer-brand-lockup) > strong,
html[lang^="zh"] body footer.sv-footer :is(.sv-footer__brand, .footer-brand-lockup) :is(.latin-text, [lang="en"], [lang="en-US"]) {
  font-family: var(--sv-font-en) !important;
  font-weight: 700 !important;
  letter-spacing: var(--sv-track-brand-lockup, 0.28em) !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}

/* Chinese Team hero parity: the zh-CN global typography reset should not
   flatten the shared English Team hero system. Keep layout/scale inherited
   from shared-hero.css while rendering CJK with the approved Chinese face. */
html[lang^="zh"] body.team-page .team-hero .sv-hero__eyebrow {
  font-family: var(--sv-font-cn) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

html[lang^="zh"] body.team-page .team-hero .sv-hero__title {
  font-family: var(--sv-font-cn) !important;
  font-size: clamp(48px, 5.2vw, 82px) !important;
  line-height: 0.98 !important;
  font-weight: 300 !important;
  font-style: italic !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  max-width: var(--hero-title-max, 980px) !important;
}

html[lang^="zh"] body.team-page .team-hero__proof > article > span,
html[lang^="zh"] body.team-page .team-hero__proof > article > span .latin-text {
  font-family: var(--sv-font-en) !important;
  font-size: clamp(32px, 3vw, 48px) !important;
  line-height: 1 !important;
  font-weight: 300 !important;
  font-style: normal !important;
  letter-spacing: -0.02em !important;
  text-transform: none !important;
}

html[lang^="zh"] body.team-page .team-hero__proof p {
  font-family: var(--sv-font-cn) !important;
  font-size: clamp(11px, 0.84vw, 13px) !important;
  line-height: 1.45 !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* Chinese Firm mirror: keep the English Firm layout system intact while
   rendering CJK copy with the approved Chinese face and without English
   uppercase tracking. Retained Latin spans keep DIN via the rules above. */
html[lang^="zh"] body.firm-page--cn .firm-main :where(
  .firm-label,
  .firm-heading,
  .firm-body,
  .firm-hero-title,
  .firm-hero-support,
  .firm-hero-proof-item > p,
  .operational-card > p,
  .firm-process-card h3,
  .firm-process-card > p,
  .firm-card--qing h3,
  .firm-card--qing > p
) {
  font-family: var(--sv-font-cn) !important;
  font-style: normal !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

html[lang^="zh"] body.firm-page--cn .firm-hero .firm-hero-title {
  max-width: 12ch !important;
  line-height: 1.02 !important;
}

html[lang^="zh"] body.firm-page--cn .firm-heading {
  line-height: 1.08 !important;
}

html[lang^="zh"] body.firm-page--cn .firm-body,
html[lang^="zh"] body.firm-page--cn .firm-geo-intro-right .firm-body,
html[lang^="zh"] body.firm-page--cn .firm-capital-note__copy .firm-body,
html[lang^="zh"] body.firm-page--cn .firm-card--qing > p,
html[lang^="zh"] body.firm-page--cn .firm-process-card > p,
html[lang^="zh"] body.firm-page--cn .operational-card > p {
  line-height: 1.72 !important;
}

html[lang^="zh"] body.firm-page--cn .firm-hero .firm-hero-proof-item > span {
  font-family: var(--sv-font-cn) !important;
  letter-spacing: -0.022em !important;
}

html[lang^="zh"] body.firm-page--cn .firm-process-num {
  font-family: var(--sv-font-en) !important;
  letter-spacing: 0.14em !important;
}

html[lang^="zh"] body.firm-page--cn .firm-geo-grid h3 {
  font-family: var(--sv-font-en) !important;
  letter-spacing: 0.075em !important;
  text-transform: uppercase !important;
}

html[lang^="zh"] body.firm-page--cn :where(.en-term, .latin-text, [lang="en"]) {
  font-family: var(--sv-font-en) !important;
}


html[lang^="zh"] body.firm-page--cn .sv-footer--cn :where(
  .sv-footer__contact-label,
  .sv-footer__copyright,
  .sv-footer__legal-kicker,
  .sv-footer__legal,
  .sv-footer__legal-links a
) {
  font-family: var(--sv-font-cn) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

html[lang^="zh"] body.firm-page--cn .sv-footer--cn :where(.latin-text, [lang="en"]) {
  font-family: var(--sv-font-en) !important;
}

html[lang^="zh"] body.firm-page--cn .firm-hero .sv-hero__eyebrow {
  font-family: var(--sv-font-en) !important;
  letter-spacing: 0.19em !important;
  text-transform: uppercase !important;
}

/* Simplified Chinese Team hero desktop parity: keep the shared English hero
   geometry, but give CJK stats copy enough rail width and prevent the global
   emergency wrapping rule from fragmenting short Chinese labels. */
html[lang^="zh"] body.team-page .team-hero .sv-hero__title {
  text-wrap: balance;
}

html[lang^="zh"] body.team-page .team-hero__proof p {
  max-width: none !important;
  width: 100%;
  overflow-wrap: normal !important;
  word-break: normal !important;
  text-wrap: balance;
}

@media (min-width: 901px) {
  html[lang^="zh"] body.team-page .team-hero .sv-hero__grid {
    grid-template-columns: minmax(0, 1fr) minmax(380px, min(40vw, var(--hero-right-max, 520px))) !important;
  }

  html[lang^="zh"] body.team-page .team-hero .sv-hero__title {
    max-width: 7.25em !important;
  }

  html[lang^="zh"] body.team-page .team-hero__proof {
    min-width: min(380px, 40vw);
  }
}
/* Team mobile clearance is intentionally owned by the shared Team hero
   rules so Chinese pages do not carry a separate mobile layout. */
/* Final retained-Latin guard: the runtime annotator wraps English text on
   Chinese pages in .sv-text-en / lang=en spans. Keep those spans on the exact
   English site font even inside highly specific Chinese page modules. */
html[lang^="zh"] body :is(#sv-latin-font-boost, .sv-text-en, .latin-text, .english-term, .en-term, .latin-meta, .english-label, .brand-latin, .brand-wordmark-latin, .sv-en, [lang="en"], [lang="en-US"]):not(#site-header-mount *):not(.mobile-menu-panel *) {
  font-family: var(--sv-font-en) !important;
}
