/* @author ZQ — public website typography; loaded after all visual skins. */
@import url('fonts/v8/fonts.css');

:root {
  --font-display: 'Tianguang Editorial', 'Songti SC', 'STSong', 'SimSun', serif;
  --font-text: 'Tianguang Text', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --font-number: 'Tianguang Numbers', 'Tianguang Text', sans-serif;
  --type-ink: #132b47;
  --type-copy: #526680;
  --type-meta: #64758d;
}

body {
  font-family: var(--font-text);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.85;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

/* Song-style lettering carries the editorial voice, not dense controls. */
main h1,
main h2 {
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: .005em;
  font-kerning: normal;
}

body :is(.v4-hero-copy, .inner-hero, .v4-product-hero, .v4-case-heading, .reading-layout header) h1 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0;
}

body :is(.section-head, .section-heading, .v4-section-heading, .v4-star-heading,
  .v4-partnership, .v4-service-offer, .v4-solution-intro, .v4-product-row,
  .v4-product-hero, .v4-case-story, .history-v5-heading, .contact-band,
  .about-intro, .about-location, .contact-intro, .solution-block, .service-lead,
  .split-section, .product-block, .case-story article, .article-body,
  .simple-reading, .v4-related-solution, .v4-gallery, .published-body) h2 {
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: .005em;
  line-height: 1.5;
}

/* Functional titles remain crisp sans serif; the form must read as a form. */
body :is(.contact-form, .contact-result, .v4-solution-row, .v4-architecture,
  .architecture-layer, .measurement-grid, .result-metrics) h2 {
  font-family: var(--font-text);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.5;
}

body :is(.site-header, .site-footer, .mega-panel, .contact-form, .contact-promise,
  .v4-process, .history-v7-detail) h3,
main h3,
main h4 {
  font-family: var(--font-text);
  letter-spacing: 0;
}

body :is(.v4-pathway, .v4-project-card, .article-card, .offer-grid,
  .v4-feature-columns, .v4-process, .v4-architecture, .v4-proof-records) h3 {
  font-weight: 500;
  line-height: 1.6;
}

/* Stable reading roles: prose, supporting copy, metadata and field labels. */
body .about-intro p:not(.large-copy) {
  font-size: 16px;
  line-height: 1.95;
  color: var(--type-copy);
}

body :is(.article-body, .published-body, .simple-reading) {
  font-size: 16px;
  line-height: 1.95;
}

body :is(.article-v3 .article-body, .article-body, .published-body, .simple-reading) :is(p, li) {
  font-size: 16px;
  line-height: 1.95;
}

body :is(.article-body, .published-body, .simple-reading) > p {
  max-width: 44em;
  color: var(--type-copy);
  margin-bottom: 1.45em;
}

body :is(.article-body, .published-body, .simple-reading) strong {
  color: var(--type-ink);
  font-weight: 600;
}

body .contact-form :is(input:not([type=checkbox]), textarea, .tg-select__trigger) {
  font-family: var(--font-text);
  font-size: 14px;
  font-weight: 400;
}

body .contact-form .field-label {
  font-family: var(--font-text);
  font-size: 14px;
  font-weight: 500;
}

/* Native condensed figures: no horizontal transforms or squeezed numerals. */
body :is([data-cms='site:clientCount'], .v4-trust-intro > strong,
  .v4-proof-records > article > strong, .history-v5-year, .history-v7-detail-year,
  .history-v7-progress, .honor-year, .timeline article > span,
  .v4-case-chapter > span, .about-year, .h4-proof-count) {
  font-family: var(--font-number);
  font-weight: 600;
  font-variant-numeric: lining-nums tabular-nums;
  letter-spacing: .015em;
}

body .v4-trust-intro > strong { font-size: 42px; line-height: 1.15; }
body .v4-trust-intro small {
  font-family: var(--font-text);
  font-weight: 400;
  line-height: 1.8;
  margin-top: 7px;
}
body .v4-trust-clients > .client-name { font-family: var(--font-text); }
body .v4-proof-records > article > strong { font-size: 31px; }
body .history-v5-year { font-size: 32px; line-height: 1.2; }
body .history-v7-detail-year { font-size: 36px; line-height: 1.25; }
body .v4-process > li::before,
body .contact-promise li::before {
  font-family: var(--font-number);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: .04em;
}

/* Keep Latin product/partner identities upright and remove old partial faces. */
body .ecosystem-brand strong {
  font-family: var(--font-text);
  font-weight: 600;
}

body main svg text { font-family: var(--font-text); }
body .v8-network-hub text {
  font-family: var(--font-text);
  font-weight: 500;
}

@media (max-width: 680px) {
  body { font-size: 15px; line-height: 1.9; }
  body :is(.v4-hero-copy, .inner-hero, .v4-product-hero, .v4-case-heading,
    .reading-layout header) h1 { line-height: 1.48; letter-spacing: 0; }
  body .about-intro p:not(.large-copy) { font-size: 14px; line-height: 1.95; }
  body .v6-home-hero .v4-hero-copy > p,
  body .inner-hero > .container > p,
  body .v4-product-hero p:not(.v4-product-surfaces),
  body .v4-case-heading > p { font-size: 14px; line-height: 2; }
  body .v6-home-hero .v4-hero-actions .button,
  body .v4-product-hero .button { font-size: 13px; }
  body :is(.article-body, .published-body, .simple-reading) { font-size: 16px; }
  body .v4-trust-intro > strong { font-size: 39px; }
  body .v4-proof-records > article > strong { font-size: 25px; line-height: 1.35; }
  body .history-v5-year { font-size: 29px; }
  body .history-v7-detail-year { font-size: 32px; }
}
