/* Shared reading rhythm. Loaded after route styles by SiteShell. */
html { scrollbar-gutter: stable; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

body[data-page] {
  --site-font: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", Arial, sans-serif;
  --site-ink: #182c3e;
  --site-muted: #586978;
  --site-accent: #155db1;
  --site-line: #dce3e9;
  --site-surface: #f5f7f9;
  --site-content-width: 1280px;
  --site-gutter: clamp(24px, 4.5vw, 72px);
  --site-section-space: clamp(72px, 7.5vw, 112px);
  --site-heading-space: 44px;
  --site-title-size: clamp(34px, 3.5vw, 48px);
  --site-section-title-size: clamp(27px, 2.5vw, 34px);
  font-family: var(--site-font);
}

body[data-page] #main-content {
  font-family: var(--site-font);
  font-size: 16px;
  line-height: 1.85;
  letter-spacing: 0;
}

/* Explicit text roles avoid a mixture of simulated DIN and Chinese fonts. */
#main-content :where(h1, h2, h3, h4, p, li, dt, dd, span, strong, small, em, button, a) {
  font-family: inherit;
  letter-spacing: normal;
}

#main-content :is(h1, h2, h3, h4) {
  font-weight: 600;
  line-height: 1.45;
  text-wrap: pretty;
}

#main-content :is(h1, h2, h3, h4) strong { font-weight: inherit; }
/* Static content must remain readable before the page scripts finish loading. */
#main-content .reveal { opacity: 1; transform: none; }
#main-content :is(p, li, dd) { overflow-wrap: break-word; }
:where(#main-content) :is(a, button, summary, input, textarea):focus-visible { outline: 2px solid var(--site-accent); outline-offset: 4px; }
#main-content :is(a, button, summary) { touch-action: manipulation; }
#main-content .kp-cta :focus-visible { outline-color: #b5d7ff; }

body[data-page] #main-content .shell,
body[data-page] .site-footer :is(.footer-top, .footer-bottom) {
  width: min(var(--site-content-width), calc(100% - var(--site-gutter) * 2));
  max-width: var(--site-content-width);
  margin-inline: auto;
}

body[data-page] .site-footer,
body[data-page] .site-footer .footer-wordmark { font-family: var(--site-font); }
body[data-page] .site-footer .footer-wordmark { font-size: 24px; font-weight: 500; line-height: 1.5; }

#main-content :is(.section-block, .power-section) {
  padding-block: var(--site-section-space);
}

#main-content .kp-section { padding-block: clamp(56px, 6vw, 88px); }

#main-content :is(.section-heading, .showcase-heading, .home-capabilities-heading,
  .service-section-heading, .solution-section-heading, .industry-feature-heading,
  .power-section-heading, .kp-section-head, .collaboration-news-heading) h2,
#main-content .dios-architecture-copy h2 {
  font-size: var(--site-section-title-size);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0;
}

#main-content :is(.showcase-heading, .home-capabilities-heading, .service-section-heading,
  .power-section-heading, .kp-section-head, .collaboration-news-heading) {
  margin-bottom: var(--site-heading-space);
}

#main-content :is(.section-lead, .dios-section-note, .kp-lead,
  .service-section-heading > p:not(.service-eyebrow), .solution-section-heading > p,
  .industry-feature-heading > p, .power-section-heading > p) {
  font-size: 16px;
  line-height: 1.9;
  color: var(--site-muted);
}

#main-content :is(.eyebrow, .service-eyebrow, .service-kicker, .dios-kicker,
  .kp-kicker, .kp-section-head > p) {
  gap: 12px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: 0;
  text-transform: none;
  color: var(--site-accent);
}

#main-content :is(.eyebrow, .service-eyebrow, .service-kicker, .solutions-kicker)::after {
  display: none;
}

#main-content .kp-kicker { padding: 0; border: 0; background: none; }
#main-content .kp-section-head > p { margin-bottom: 12px; }

#main-content :is(.button, .kp-actions .button, .power-hero-actions a) {
  min-height: 48px;
  padding: 12px 24px;
  border-radius: 3px;
  box-shadow: none;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
}

#main-content :is(.kp-hero, .service-hero, .dios-product-hero) { background: var(--site-surface); }
#main-content .kp-hero { padding-block: 64px 80px; }
#main-content :is(.kp-hero h1, .service-hero h1, .solutions-hero h1, .power-hero h1) {
  font-size: var(--site-title-size);
  line-height: 1.4;
  font-weight: 600;
}

#main-content .kp-hero h1 { margin-bottom: 24px; }
#main-content .kp-hero h1 small { margin-top: 14px; font-size: 14px; font-weight: 400; letter-spacing: 0; }
#main-content :is(.kp-card-grid, .kp-grid, .service-partner-grid, .system-example-grid) { gap: 28px; }
#main-content :is(.kp-card, .service-partner-card) { padding: 30px; border-radius: 3px; box-shadow: none; }
#main-content :is(.kp-card, .service-partner-card):hover { transform: none; box-shadow: none; border-color: #9fb8d0; }
#main-content :is(.kp-card h3, .service-partner-card h3, .system-example-card h3) { font-size: 20px; line-height: 1.5; }
#main-content :is(.kp-card p, .service-partner-description, .service-delivery-stage p) { font-size: 15px; line-height: 1.85; }
#main-content .kp-card-category { font-size: 13px; font-weight: 400; }
#main-content .kp-prose p { font-size: 16px; line-height: 1.9; margin-bottom: 20px; }
#main-content .kp-faq summary { padding: 22px 24px; font-size: 16px; font-weight: 500; }
#main-content .kp-cta { padding: 40px; margin-top: 64px; }
#main-content .kp-cta h2 { font-size: 24px; font-weight: 500; }

/* Industry and service narratives share the same left-aligned reading axis. */
#main-content .service-section-heading-centered { margin-inline: 0; text-align: left; }
#main-content .service-section-heading-centered :is(.service-eyebrow, p) { justify-content: flex-start; margin-inline: 0; }
#main-content .service-partner-card { --partner-accent: var(--site-accent); background: #fff; }
#main-content .service-partner-card::before { display: none; }
#main-content .service-partner-card-top > span { display: none; }
#main-content .service-partner-scope { font-size: 14px; font-weight: 400; }
#main-content .service-partner-card li { font-size: 14px; font-weight: 400; line-height: 1.8; }
#main-content .service-hero h1 em { color: var(--site-ink); }
#main-content :is(.service-hero-grid, .solutions-hero-inner) { padding-block: 80px; }
#main-content .power-section-heading { grid-template-columns: minmax(240px, .75fr) minmax(0, 1.25fr); gap: 56px; }

@media (max-width: 900px) {
  body[data-page] {
    --site-gutter: 32px;
    --site-section-space: 80px;
    --site-heading-space: 32px;
  }
  #main-content :is(.service-hero-grid, .solutions-hero-inner) { padding-block: 64px; }
  #main-content .power-section-heading { grid-template-columns: 1fr; gap: 16px; }
}

@media (max-width: 600px) {
  body[data-page] {
    --site-gutter: 22px;
    --site-section-space: 56px;
    --site-heading-space: 28px;
    --site-title-size: clamp(28px, 7.5vw, 36px);
    --site-section-title-size: 26px;
  }
  #main-content .kp-section { padding-block: 48px; }
  #main-content :is(.kp-hero, .service-hero-grid, .solutions-hero-inner) { padding-block: 44px 52px; }
  #main-content :is(.kp-card-grid, .kp-grid, .service-partner-grid, .system-example-grid) { gap: 20px; }
  #main-content :is(.kp-card, .service-partner-card) { padding: 24px; }
  #main-content .kp-faq summary { padding: 20px; }
  #main-content .kp-cta { padding: 28px 24px; margin-top: 40px; }
}
