/* One typeface, five text sizes and two weights across every page. */
:root {
  --font-sans: 'Microsoft YaHei', 'PingFang SC', 'Noto Sans SC', sans-serif;
  --font-display: 40px;
  --font-section: 32px;
  --font-card: 20px;
  --font-body: 16px;
  --font-small: 14px;
  --font-caption: var(--font-small);
  --weight-regular: 400;
  --weight-heading: 600;
}

.site-type {
  font-family: var(--font-sans);
  font-size: var(--font-body);
  font-weight: var(--weight-regular);
  line-height: 1.8;
}

.site-type :is(button, input, textarea, select) {
  font-family: inherit;
  font-size: var(--font-body);
  font-weight: var(--weight-regular);
  line-height: 1.5;
}

.site-type :is(h1, h2, h3, h4, h5, h6) {
  font-family: inherit;
  font-weight: var(--weight-heading);
  line-height: 1.45;
  letter-spacing: 0;
}

.site-type h1 { font-size: var(--font-display); }
.site-type h2 { font-size: var(--font-section); }
.site-type :is(h3, h4, h5, h6) { font-size: var(--font-card); }

.site-type :is(p, li, dt, dd, label, a, small) {
  font-family: inherit;
  font-size: var(--font-body);
  font-weight: var(--weight-regular);
  line-height: 1.8;
  letter-spacing: 0;
}

.site-type span { font-size: inherit; font-weight: inherit; letter-spacing: 0; }
.site-type :is(strong, b) { font-weight: var(--weight-heading); }

/* Page titles and large figures share a single display size. */
.site-type :is(.hero-title-wrap, .page-intro h1, .page-intro .section-title,
  .join-hero-content h1, .stat-number, .global-stat-num, .about-badge-number,
  .join-hero-card span, .section-number) {
  font-size: var(--font-display);
  font-weight: var(--weight-heading);
  line-height: 1.35;
  letter-spacing: 0;
}

/* Every section heading uses the same level. */
.site-type :is(.section-title, .about-content h3,
  .join-growth-content h2, .join-contact-card h2) {
  font-size: var(--font-section);
  font-weight: var(--weight-heading);
  line-height: 1.45;
  letter-spacing: 0;
}

/* Cards, forms, dialogs and footer columns share one small heading size. */
.site-type :is(.product-name, .channel-name, .base-card-name, .process-title,
  .cert-title, .form-intro h2, .form-intro h3, .contact-info > h2, .contact-info > h3,
  .product-modal-body h3, .career-phone-dialog h3, .growth-step strong,
  .join-value-card h3, .role-card h3, .footer-links h4, .footer-follow h4) {
  font-size: var(--font-card);
  font-weight: var(--weight-heading);
  line-height: 1.5;
  letter-spacing: 0;
}

.site-type :is(.nav-links a, .mobile-menu a, .btn-finc-primary, .btn-finc-outline,
  .submit-btn, .float-card-text, .base-summary, .about-feature span,
  .join-hero-card strong, .contact-text h3, .contact-text h4,
  .footer-brand p, .footer-links a, .footer-partners,
  .footer-partners-label, .footer-partners a, .product-modal-section h4,
  .career-phone-list a) {
  font-size: var(--font-body);
  line-height: 1.8;
  letter-spacing: 0;
}

.site-type :is(.btn-finc-primary, .btn-finc-outline, .submit-btn,
  .float-card-text, .contact-text h3, .contact-text h4,
  .product-modal-section h4, .career-phone-list a) {
  font-weight: var(--weight-heading);
}
.site-type .nav-links a.active { font-weight: var(--weight-heading); }
.site-type .product-image::after {
  font-family: inherit;
  font-size: var(--font-small);
  font-weight: var(--weight-heading);
}

.site-type :is(.hero-badge, .section-tag, .float-card-sub, .ticker-item,
  .product-tag, .product-highlight, .channel-desc, .global-stat-label,
  .global-list li, .base-card-desc, .process-desc, .stat-label, .about-badge-text,
  .cert-desc, .form-kicker, .form-intro p, .form-group label, .form-error,
  .form-message-meta, .form-message-meta span, .form-status,
  .security-status, .privacy-note, .role-tags span, .product-modal-chips span,
  .footer-bottom, .footer-bottom p, .footer-bottom a,
  .section-eyebrow, .photo-index, .view-original, .sales-contact-badge,
  .sales-contact-help, .sales-contact-status) {
  font-size: var(--font-small);
  font-weight: var(--weight-regular);
  line-height: 1.7;
  letter-spacing: 0;
}

/* Keep inline hero words at their parent's size, including on small screens. */
.site-type :is(.hero-keyword, .hero-suffix) {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}
.site-type .hero-line2 { display: flex; align-items: baseline; flex-wrap: wrap; }
.site-type .hero-dot { font-size: var(--font-small); margin-inline: 8px; }

/* Icon glyphs retain their own font family and weight. */
.site-type i { font-size: var(--font-card); }

@media (max-width: 760px) {
  :root { --font-display: 28px; --font-section: 28px; }
}
@media (max-width: 360px) {
  .site-type .hero-dot { margin-inline: 0; }
}
@media (max-height: 540px) and (min-width: 620px) {
  .site-type.home-page .hero-title-wrap { font-size: var(--font-section); }
}
