/* Shared type system for the Chinese and English pages. */
:root {
  --serif: Georgia, Cambria, "Times New Roman", serif;
  --sans: Aptos, "Segoe UI", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
}

body.lang-zh {
  --serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", STSong, "Noto Serif CJK SC", SimSun, serif;
  --sans: "Noto Sans SC", "Source Han Sans CN", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", "Hiragino Sans GB", Arial, sans-serif;
  font-family: var(--sans);
  letter-spacing: .005em;
}

body {
  font-size: 16px;
  line-height: 1.75;
  text-rendering: optimizeLegibility;
}

h1, h2, h3 {
  text-wrap: balance;
}

h1, h2 {
  font-family: var(--serif);
  font-weight: 600;
  letter-spacing: -.025em;
  line-height: 1.18;
}

h3 {
  font-weight: 600;
  letter-spacing: -.015em;
}

.lang-zh h1, .lang-zh h2 {
  font-family: var(--serif);
  font-weight: 600;
  letter-spacing: .015em;
  line-height: 1.3;
}

.lang-zh h3 {
  font-family: var(--sans);
  font-weight: 600;
  letter-spacing: .01em;
}

.hero h1, .lang-zh .hero h1 {
  font-weight: 700;
  line-height: 1.18;
}

.hero-lead {
  font-size: 17px;
  line-height: 1.8;
}

.hero-audience { font-size: 13px; }
.hero-bottom, .scope-ribbon span { font-size: 11px; }
.eyebrow { font-size: 11px; font-weight: 700; }
.lang-zh .eyebrow { font-size: 12px; }
.main-nav > a { font-size: 13px; font-weight: 600; }
.header-cta { font-size: 12px; font-weight: 600; }
.language-switcher { font-size: 11px; }
.lang-en .header-tools { gap: 15px; }
.lang-en .main-nav { gap: 12px; }
.lang-en .main-nav > a { font-size: 12px; white-space: nowrap; }
.lang-en .header-cta { font-size: 11px; padding-inline: 13px; gap: 9px; }

.section-heading > p:not(.eyebrow),
.contact-copy > p:not(.eyebrow),
.package-card p,
.service-card p,
.advantage-card p,
.process-step p,
.faq-intro,
.faq-list details p,
.detail-lead,
.detail-facts p,
.policy-copy > p,
.policy-copy section p,
.image-custom-lead {
  font-size: 15px;
  line-height: 1.85;
}

.concept-info strong { font-weight: 600; }
.lang-zh .concept-info strong { font-weight: 600; }
.image-label { font-size: 11px; }
.concept-info > span > span { font-size: 13px; line-height: 1.65; }
.concept-tools, .concept-tools .concept-open { font-size: 13px; }
.theme-filters > button { font-size: 13px; }
.guest-profile, .guest-profile select { font-size: 13px; }
.customer-ai-caption, .customer-ai-home-card > span:last-child { font-size: 13px; }
.image-custom-steps li { font-size: 14px; }
.image-custom-note, .gallery-note, .concept-detail-note { font-size: 13px; line-height: 1.8; }
.image-custom-actions .button, .button { font-size: 12px; }
.package-card h3, .advantage-card h3, .process-step h3 { line-height: 1.35; }

.faq-list summary { font-size: 16px; font-weight: 600; line-height: 1.65; }
.faq-group > .faq-group-title { font-weight: 600; }
.lang-zh .faq-group > .faq-group-title { font-weight: 600; }
.faq-categories > a, .faq-section .text-link { font-size: 14px; }

.concept-detail-grid h2, .detail-facts h2,
.lang-zh .concept-detail-grid h2, .lang-zh .detail-facts h2,
.policy-copy h2 { font-weight: 600; }
.option-list { font-size: 16px; line-height: 1.85; }
.detail-guest { font-size: 15px; }
.detail-guest strong { font-weight: 700; }
.concept-detail-note { font-size: 14px; }

.field > span { font-size: 14px; font-weight: 600; }
.field input, .field select, .field textarea { font-size: 16px; line-height: 1.65; }
.plan-help, .form-privacy, .extra-fields > summary { font-size: 13px; line-height: 1.8; }
.contact-details, .contact-details > span:first-child { font-size: 13px; }
.form-submit { font-size: 12px; }

.footer-links, .footer-top > div:first-child > p { font-size: 14px; line-height: 1.8; }
.footer-markets { font-size: 12px; }
.footer-bottom { font-size: 11px; }
.dialog-description, .dialog-modules { font-size: 15px; line-height: 1.8; }
.dialog-disclaimer { font-size: 13px; line-height: 1.8; }

@media (max-width: 950px) {
  .main-nav > a { font-size: 15px; }
  .lang-en .main-nav > a { font-size: 15px; white-space: normal; }
}

@media (max-width: 720px) {
  h1, h2 { line-height: 1.25; }
  .lang-zh h1, .lang-zh h2 { line-height: 1.3; }
  .hero-lead { font-size: 15px; }
  .hero-audience { font-size: 12px; }
  .section-heading > p:not(.eyebrow),
  .package-card p,
  .service-card p,
  .advantage-card p,
  .process-step p,
  .faq-list details p,
  .image-custom-lead { font-size: 14px; }
  .featured-gallery .concept-info > span > span { font-size: 12px; }
  .featured-gallery .image-label { font-size: 10px; }
  .hero-actions .button { font-size: 11px; }
  .faq-list summary { font-size: 15px; }
  .concept-detail-grid h1, .policy-copy h1 { line-height: 1.25; }
  .field > span { font-size: 13px; }
}
