/* Reading hierarchy: body 16px, secondary 14px, labels 12px.
   Separate Chinese and English display scales retain the original brand style. */
:root { --muted: #526663; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { font-size: 1rem; line-height: 1.75; }
h1, h2, h3 { text-wrap: balance; overflow-wrap: break-word; }
p, li { overflow-wrap: break-word; }
.hero-grid > *, .split > *, .heading > *, .nav > * { min-width: 0; }
h1 { font-size: clamp(2.625rem, 1.6rem + 3.25vw, 4.25rem); line-height: 1.1; letter-spacing: -.035em; }
h2, .cta h2 { font-size: clamp(2rem, 1.45rem + 1.6vw, 2.875rem); line-height: 1.18; letter-spacing: -.02em; }
.zh h1 { font-size: clamp(2rem, 1.4rem + 2.5vw, 3.25rem); line-height: 1.38; letter-spacing: .015em; }
.zh h2 { font-size: clamp(1.625rem, 1.15rem + 1.8vw, 2.375rem); line-height: 1.45; letter-spacing: .015em; }
.zh h1 em { font-style: normal; }
p.lead { font-size: 1.0625rem; line-height: 1.85; max-width: 33rem; }
.heading p { font-size: 1rem; line-height: 1.8; max-width: 26rem; }
.eyebrow { font-size: .75rem; line-height: 1.6; letter-spacing: .12em; }
.eyebrow:before { flex-shrink: 0; }
.micro, .note, .art-card small, .family-panel small { font-size: .875rem; line-height: 1.75; }
.art-card small { display: block; margin-top: 5px; }
.art-card strong { font-size: 1rem; line-height: 1.5; }
.art-label { font-size: .75rem; letter-spacing: .1em; padding: 0 18px; }
.topline { font-size: .75rem; letter-spacing: .08em; }
.links, .text-link, .btn { font-size: .9375rem; }
.btn { min-height: 48px; line-height: 1.5; gap: 18px; }
.lang, .menu, .close { min-width: 44px; min-height: 44px; }
.links a { padding: 10px 0; }
.trust .wrap { font-size: .875rem; line-height: 1.6; }
.trust b { flex: 1; }
.cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.specialty { display: flex; flex-direction: column; min-height: 220px; }
.cardtop { width: 100%; margin-bottom: 22px; }
.specialty h3 { font-size: 1.5rem; line-height: 1.35; text-wrap: pretty; }
.zh .specialty h3 { font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif; font-size: 1.25rem; font-weight: 500; line-height: 1.55; }
.specialty p { font-size: .9375rem; line-height: 1.7; margin-top: 4px; }
.steps h3, .fees h3, .modalbody h3 { font-size: 1.125rem; line-height: 1.5; }
.steps p, .fees p, .checks li, details p, .partner p, .cta p,
.modalbody p, .modalbody li { font-size: 1rem; line-height: 1.8; }
.steps { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.stepnum { font-size: 2rem; }
.family-panel blockquote { font-size: clamp(2rem, 1.4rem + 1.7vw, 2.625rem); line-height: 1.3; }
.zh .family-panel blockquote { font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.25rem); line-height: 1.6; }
.family-panel > span { font-size: .875rem !important; }
summary { font-size: 1.0625rem; line-height: 1.65; padding: 3px 0; }
footer, .footerline button { font-size: .875rem; line-height: 1.8; }
.footerline button { min-height: 44px; padding: 8px 12px; }
.footer-note { max-width: 75ch; }
dialog { max-height: 88dvh; padding: 32px; }
.modalbody h2 { font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem); line-height: 1.3; }
.field, .field input, .field select, .status { font-size: 1rem; line-height: 1.6; }
.field input, .field select { min-height: 48px; }
.modalbody li + li { margin-top: 8px; }
@media (max-width: 1100px) {
  .nav { gap: 18px; }
  .nav .btn { display: none; }
  .hero-grid { gap: 32px; }
  .heading { gap: 28px; }
  .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trust .wrap { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split { gap: 35px; }
}
@media (max-width: 850px) {
  .nav { height: 80px; }
  .menu { display: block; background: none; border: 0; font-size: 23px; color: var(--ink); }
  .links { display: none; position: absolute; top: 80px; left: 0; right: 0; background: var(--paper); padding: 20px 28px; flex-direction: column; align-items: stretch; gap: 0; border-bottom: 1px solid var(--line); }
  .links.open { display: flex; }
  .hero-grid, .split { grid-template-columns: minmax(0, 1fr); }
  .hero-art { height: 420px; max-width: 600px; width: 100%; margin: auto; }
  .heading { display: block; }
  .heading p { margin-top: 20px; max-width: 42rem; }
  .fees { grid-template-columns: minmax(0, 1fr); }
  .cta .wrap, .partner { align-items: start; flex-direction: column; }
}
@media (max-width: 600px) {
  .wrap { padding-left: 20px; padding-right: 20px; }
  .nav { height: 76px; gap: 8px; }
  .links { top: 76px; }
  .brand { gap: 8px; }
  .brandmark { font-size: 26px; padding: 0 8px; line-height: 39px; }
  .brand strong { font-size: 17px; }
  .brand small { display: block; font-size: 10px; letter-spacing: .05em; max-width: 190px; line-height: 1.5; }
  .nav > div { gap: 0 !important; flex-shrink: 0; }
  .hero { padding-top: 32px; }
  .hero-art { height: 380px; }
  .art-card { left: 16px; right: 16px; bottom: 16px; padding: 16px; gap: 12px; }
  .section { padding: 52px 0; }
  .cards, .steps { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .specialty { min-height: 0; padding: 23px; }
  .cardtop { margin-bottom: 14px; }
  .steps { gap: 28px; }
  .stepnum { padding-bottom: 10px; margin-bottom: 14px; }
  .trust .wrap { gap: 18px; }
  #specialties .cards + div { flex-direction: column; align-items: flex-start !important; }
  .actions .btn { flex: 1 1 220px; }
  .family-panel { padding: 25px; }
  dialog { width: calc(100% - 24px); padding: 22px; }
  .footerline { flex-direction: column; align-items: start; gap: 12px; }
}
@media (max-width: 360px) {
  .wrap { padding-left: 16px; padding-right: 16px; }
  .brand strong { font-size: 15px; }
  .brand small { max-width: 145px; }
  .brandmark { display: none; }
  .art-label { font-size: .6875rem; }
}
