/*
 * Huaxiang Chuanglian V2.0 design tokens.
 * Values mirror the frozen homepage; new pages should consume these tokens
 * instead of introducing page-specific brand colors or spacing scales.
 */
:root {
  --brand-red: #b5222a;
  --brand-deep-red: #8e171d;
  --brand-footer-red: #b62326;
  --text-strong: #000000;
  --heading-color: #000000;
  --text-muted: #000000;
  --surface-soft: #f5f7f8;
  --surface-warm: #f7f7f5;
  --surface-paper: #ffffff;
  --border-subtle: #e8eaed;
  --site-max-width: 1280px;
  --site-gutter: clamp(18px, 4vw, 64px);
  --section-space: clamp(72px, 8vw, 112px);
  --section-space-tight: clamp(48px, 6vw, 76px);
  --header-height: 74px;
  --button-height: 46px;
  --card-radius: 20px;
  --card-shadow: 0 3px 10px rgba(32, 33, 36, .06);
  /* Official Adobe Source Han Serif (思源宋体) CN variable font. */
  --font-serif: "Huaxiang CJK Serif", "Huaxiang Full CJK Serif", "Source Han Serif SC", "思源宋体 SC", "Noto Serif SC", "Noto Serif CJK SC", "Songti SC", "STSong", "SimSun", serif;
  --font-sans: var(--font-serif);
  --font-brand: var(--font-serif);
  /* Match the stronger Source Han Serif hierarchy in the supplied reference. */
  --font-weight-regular: 600;
  --font-weight-medium: 700;
  --font-weight-semibold: 800;
  --font-weight-bold: 900;

  /* Backward-compatible aliases used by the frozen homepage stylesheet. */
  --red: var(--brand-red);
  --deep-red: var(--brand-deep-red);
  --footer-red: var(--brand-footer-red);
  --ink: var(--text-strong);
  --muted: var(--text-muted);
  --soft: var(--surface-soft);
  --warm: var(--surface-warm);
  --line: var(--border-subtle);
  --max: var(--site-max-width);
  --sans: var(--font-sans);
}

html {
  color-scheme: light;
  font-synthesis: none;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

@font-face {
  font-family: "Huaxiang CJK Serif";
  src: url("/assets/fonts/huaxiang-cjk-serif-subset.woff2?v=20261015-font-v1") format("woff2");
  font-style: normal;
  font-weight: 250 900;
  font-display: swap;
}

@font-face {
  font-family: "Huaxiang Full CJK Serif";
  src: url("/assets/fonts/source-han-serif-cn-variable.woff2?v=source-han-serif-cn-v2") format("woff2");
  font-style: normal;
  font-weight: 250 900;
  font-display: swap;
}

/* Use the self-hosted Chinese serif across public pages; keep the official logo as its original image asset. */
body,
body * {
  font-family: var(--font-serif) !important;
}

/* Keep the serif visibly substantial across public pages, even where older page CSS
   explicitly assigned 400/600 weights before the font was switched. */
body { font-weight: 600 !important; }
body :is(p, li, dt, dd, blockquote, figcaption, label, summary, td, th) {
  font-weight: 600 !important;
}
body :is(h1, h2, h3, h4, h5, h6, [role="heading"], strong, b, nav a, button, .button, [role="button"], .text-link) {
  font-weight: 800 !important;
}

/* Public page title audit: headings on light surfaces are true black across every page tier. */
body main :is(h1, h2, h3, h4, h5, h6, [role="heading"]) {
  color: #000000 !important;
}

/* Preserve contrast for headings that are intentionally placed over dark imagery or dark bands. */
body main :is(
  .home-hero,
  .hero,
  .sv2-hero,
  .about-hero,
  .about-landing__hero,
  .about-subhero,
  .about-timeline,
  .about-editorial__timeline,
  .outcomes-hero,
  .contact-hero,
  .contact-hero-design,
  .csr-hero,
  .dark-section,
  .cta,
  .metrics,
  .solution.county,
  .news-card
) :is(h1, h2, h3, h4, h5, h6, [role="heading"]) {
  color: #ffffff !important;
}

body :is(.site-footer, .about-footer) :is(h1, h2, h3, h4, h5, h6, [role="heading"]) {
  color: #ffffff !important;
}
