/* v4 统一字号与密度
   角色        桌面 → 窄屏（连续缩放；正文/紧凑正文走断点）
   H1 页面标题  48 → 32
   H2 板块标题  40 → 30
   H3 卡片标题  24 → 20（≤430 半宽紧凑卡 16）
   H4 次级标题  20 → 18
   结论 / 强调  18 → 16
   导语        16 / 15
   正文        15 / 14
   紧凑正文     14 / 13
   眉标 / 标签  12 / 10
   微标签      10 / 9
   板块留白 80 / 64 / 56；内页段 64 / 56 / 44。 */

:root {
  --type-h1: clamp(32px, 3.2vw, 48px);
  --type-h2: clamp(30px, 3vw, 40px);
  --type-h3: clamp(20px, 1.7vw, 24px);
  --type-h4: clamp(18px, 1.4vw, 20px);
  --type-statement: clamp(16px, 1.3vw, 18px);
  --type-lead: 16px;
  --type-body: 15px;
  --type-compact: 14px;
  --pad-section: clamp(56px, 6vw, 80px);
  --pad-inner: clamp(44px, 5vw, 64px);
}

/* 标题层级 */
h2,
.section-heading h2,
.expertise-lead h2,
.contact-inner h2,
.inner-intro h2,
.profile-lead h2 {
  font-size: var(--type-h2);
  line-height: 1.22;
  letter-spacing: -.045em;
}
.page-hero-copy h1 { font-size: var(--type-h1); line-height: 1.2; }
.card-copy h3,
.product-primary h3,
.product-data .card-copy h3,
.product-mobile .card-copy h3,
.product-visual .card-copy h3,
.connection-card h3,
.expertise-item h3,
.services-heading h3,
.method-cards h3 {
  font-size: var(--type-h3);
  line-height: 1.45;
}
.service h4 { font-size: var(--type-h4); line-height: 1.5; }
.pd-head h2 { font-size: 30px; line-height: 1.25; }
.base-head h2 { font-size: 28px; }
.process-steps strong { font-size: 18px; }

/* 导语 / 正文 / 紧凑正文 */
.page-lede,
.inner-intro > p,
.heading-aside p,
.business-context,
.connection-intro,
.expertise-lead > p:not(.eyebrow),
.contact-inner h2 + p,
.pd-lede {
  font-size: var(--type-lead);
  line-height: 1.8;
}
.connection-copy,
.expertise-copy,
.pd-main > p,
.profile-facts p,
.method-cards p,
.process-steps p,
.base-head p {
  font-size: var(--type-body);
  line-height: 1.8;
}
.card-copy p,
.product-mobile .card-copy p,
.product-visual .card-copy p,
.product-data .card-copy p,
.service p,
.pd-story dd,
.pd-side-block p,
.pd-manifest li,
.pd-note,
.pd-rel a,
.pd-spec th,
.pd-spec td,
.faq .a,
.pain-strip p {
  font-size: var(--type-compact);
  line-height: 1.75;
}
.card-copy .product-name,
.product-data .card-copy .product-name { font-size: 15px; }
.connection-outcome,
.pd-pain,
.profile-lede {
  font-size: var(--type-statement);
  line-height: 1.6;
}
.contact-link > span:first-child { font-size: 24px; }
.contact-email { font-size: 14px; }
.expertise-item .eyebrow { font-size: 10px; }
.pain-strip strong { font-size: 15px; }
.pain-panel-head p { font-size: 13px; }
.pd-spec th { font-size: 12px; }
.pd-spec caption { font-size: 11px; }
.pd-story dt { font-size: 11px; }
.faq summary { font-size: 15px; }

/* 首页密度 */
.section,
.expertise { padding: var(--pad-section) 0; }
.section-heading { margin-bottom: 32px; }
.business-context { margin-bottom: 24px; }
.product-card { padding: 22px; }
.product-primary { padding: 24px; }
.product-primary .card-copy { margin-top: 20px; }
.product-primary .card-bottom { padding-top: 14px; }
.supply-map { height: 250px; margin: 10px auto 8px; }
.services { margin-top: 24px; padding-top: 28px; }
.connection-rail { margin-bottom: 20px; }
.connection-symbol { margin-bottom: 22px; }
.connection-outcome { margin: 8px 0 16px; }
.connection-coda { font-size: clamp(20px, 2vw, 24px); }
.connection-offer { font-size: var(--type-body); }
.expertise-layout { gap: 72px; }
.expertise-lead > p:not(.eyebrow) { margin-top: 24px; }
.expertise-lead > .text-link { margin-top: 16px; }
.expertise-item { padding: 22px 0; }
.expertise-title-row { margin-bottom: 8px; }
.contact-inner { padding-top: 64px; padding-bottom: 64px; }
.contact-inner h2 + p { margin-top: 16px; }
.site-footer { padding-top: 52px; }
.footer-main { padding-bottom: 40px; }

/* 内页密度 */
.page-hero { padding: 48px 0 40px; }
.page-hero-copy .eyebrow { margin-bottom: 14px; }
.page-hero-copy h1 { margin-bottom: 14px; }
.page-hero-actions { margin-top: 22px; }
.anchor-inner { padding: 12px 0; }
.inner-section { padding: var(--pad-inner) 0; }
.inner-intro { margin-bottom: 24px; gap: 32px; }
.pain-panel { padding: 22px; }
.pain-panel-head { margin-bottom: 14px; }
.pain-strip { gap: 12px; }
.pain-strip a { padding: 16px; min-height: 118px; }
.pain-num { margin-bottom: 14px; font-size: 22px; }
.pd-section { padding: 48px 0; }
.pd-block { padding: 26px; }
.pd-head { padding-bottom: 18px; gap: 20px; }
.pd-head h2 { margin-bottom: 6px; }
.pd-grid { padding-top: 22px; gap: 28px; }
.pd-pain { margin-bottom: 10px; }
.pd-main > p { margin-bottom: 8px; }
.pd-story { gap: 14px; margin: 14px 0 18px; padding-top: 14px; }
.pd-story dd { margin-top: 4px; }
.pd-side { padding-left: 22px; }
.pd-side-block { margin-bottom: 20px; }
.pd-side-block .page-mono { margin-bottom: 6px; }
.pd-manifest li { padding: 5px 0 5px 13px; }
.pd-spec th,
.pd-spec td { padding: 8px 10px; }
.faq { margin-top: 18px; }
.faq summary { padding: 11px 24px 11px 0; }
.base-panel { padding: 32px 0; }
.base-head { margin-bottom: 16px; }
.about-creed,
.profile-panel,
.method-panel { padding: var(--pad-inner) 0; }
.about-creed .section-heading { margin-bottom: 26px; }
.creed-row { padding: 22px 0; }
.creed-text { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.6; }
.profile-lede { margin-bottom: 18px; }
.profile-facts { padding-top: 16px; gap: 20px; }
.method-cards li { padding: 20px; }
.method-cards h3 { margin: 6px 0; }
.process-block { margin-top: 22px; padding-top: 18px; }
.process-steps { gap: 14px; }
.process-steps li { padding-top: 12px; }

@media (max-width: 899px) {
  :root { --type-lead: 15px; --type-body: 14px; --type-compact: 13px; }
  .expertise-layout { gap: 40px; }
  .contact-inner { padding-top: 52px; padding-bottom: 52px; }
  .page-hero { padding: 40px 0 34px; }
  .pd-block { padding: 24px 20px; }
  .pd-grid { gap: 22px; }
}
@media (max-width: 599px) {
  .expertise-layout { gap: 28px; }
  .contact-inner { padding-top: 46px; padding-bottom: 42px; }
  .page-hero { padding: 36px 0 30px; }
  .pd-head h2 { font-size: 24px; }
  .pd-block { padding: 22px 18px; }
  .pd-section { padding: 40px 0; }
  .inner-section { padding: 42px 0; }
  .pain-strip a { min-height: 0; padding: 15px; }
  .pain-num { font-size: 21px; }
}

.card-copy h3 { text-wrap: balance; }

@media (max-width: 430px) {
  .product-mobile .card-copy h3,
  .product-visual .card-copy h3 { font-size: 16px; max-width: none; }
}
