/* Readability fixes from the pre-launch review. */
body.dialog-open { overflow: hidden; }
.section-intro, .service-card p, .about-copy > p:not(.eyebrow), .process-grid p,
.section-note, .client-name, .clients-foot, .client-group-heading > span,
.principles small, .about-values span, .footer-main > div small, .footer-bottom,
.back-top, .dialog-intro, #detail-body, .carousel-hint { color: #5c6e73; }
.eyebrow.dark, .card-kicker, .card-arrow { color: #80642f; }
.service-top > span, .tags span, .fact-list dt { color: #5f7078; }
.editorial-card:hover p { color: #d4dee2; }
.editorial-card:hover .card-kicker, .editorial-card:hover .card-arrow { color: #dfc58c; }
.topbar { color: #5e7079; }
.line-icon, .about-values b, .process-grid article > span, summary > span,
.service-link span, .open-signal { color: #80642f; }
.carousel-status, .scenario-tabs button, summary > b, details p { color: #5c6e73; }
.scenario-tabs button[aria-selected=true] > span { color: #80642f; }
.section-note, .footer-bottom, .footer-bottom > span:nth-child(2) { font-size: 12px; }
.footer-bottom button { font-size: 12px; min-height: 44px; }
.nojs-contact { margin: 0; padding: 12px 20px; background: #f7f7f3; color: #20333f; text-align: center; }
.nojs-contact a { text-decoration: underline; }
@media (hover: hover) {
  .service-card:hover p { color: #d2dce0; }
}
@media (max-width: 700px) {
  .hero-description br { display: none; }
  .mobile-contact-bar { padding-left: max(20px, env(safe-area-inset-left, 0px)); padding-right: max(20px, env(safe-area-inset-right, 0px)); }
}
[hidden] { display: none !important; }

/* Visual review: refine content rhythm without changing the approved hero. */
.page-body > .reading-block, .page-body > .page-lead, .page-body > .partnership-intro { max-width: 800px; }
.page-body .reading-block p, .page-body .reading-block li { font-size: 16px; line-height: 1.95; }
.reading-block h2 { margin-bottom: 16px; }
.editorial-card p { font-size: 14px; line-height: 1.9; }
.page-lead { color: #526871; }
.contact-sheet { max-width: 800px; }
.page-cta { border-top: 2px solid #c3a46b; }

@media (min-width: 701px) {
  .section { padding: 76px 0; }
  .section-head { margin-bottom: 34px; }
  .section-intro { font-size: 14px; line-height: 1.9; max-width: 360px; }
  .service-top { margin-bottom: 12px; }
  .service-top svg { width: 54px; height: 54px; }
  .service-top > span { font-size: 11px; }
  .service-card h3 { font-size: 26px; }
  .service-card p { font-size: 14px; line-height: 1.95; margin-bottom: 20px; }
  .tags span { font-size: 11px; }
  .service-link { font-size: 14px; margin-top: 24px; padding: 17px 0; }
  .about-copy > p:not(.eyebrow) { font-size: 15px; line-height: 2; }
  .about-values span { font-size: 12px; }
  .principles small { font-size: 12px; }
  .scenario-panel > p:not(.eyebrow) { font-size: 15px; max-width: 560px; }
  .scenario-checks { font-size: 12px; }
  .process-grid p { font-size: 14px; line-height: 1.9; }
  .process-grid p br { display: none; }
  details p { font-size: 15px; line-height: 1.95; }
  summary { font-size: 16px; }
  .contact p:not(.eyebrow) { font-size: 14px; }
  .contact .wechat-contact > p { font-size: 12px; }
  .client-name { font-size: 12px; }
  .carousel-controls, .carousel-hint { font-size: 12px; }
  .carousel-controls button { min-height: 40px; }
  .carousel-controls .carousel-pause { font-size: 12px; }
  .footer-main > div { font-size: 13px; }
  .footer-main > div small { font-size: 12px; }
  .page-layout { gap: 48px; padding-top: 48px; padding-bottom: 48px; }
  .page-aside { font-size: 14px; }
  .reading-block { padding: 26px 0; }
}

@media (min-width: 701px) and (max-width: 980px) {
  .section { padding: 58px 0; }
  .page-layout { gap: 28px; }
}

@media (max-width: 700px) {
  .section-head h2 { font-size: 26px; text-wrap: balance; }
  .section-head h2 > span { display: block; }
  .page-layout { gap: 24px; }
  .page-aside { order: 2; margin-top: 8px; border-top: 1px solid var(--line); padding-top: 16px; }
  .page-aside > span { display: block; grid-column: 1 / -1; font-size: 12px; letter-spacing: 1px; margin-bottom: 6px; color: #65767b; }
  .page-lead { margin-bottom: 22px; }
  .partnership-intro { margin: 24px 0; }
  .partnership-intro h2 { font-size: 24px; text-wrap: balance; }
  .client-group-heading { flex-wrap: wrap; row-gap: 6px; }
  .carousel-controls { margin-top: 12px; }
  .contact-sheet { padding: 24px; }
  .contact-sheet .large-phone { font-size: clamp(28px, 8.5vw, 36px); }
  .contact-sheet .button { width: 100%; }
}

/* Visible company facts share the same source as search metadata. */
.company-facts { margin:24px 0; }
.company-facts dt { font-size:14px; color:#5f7078; }
.company-facts dd { font-size:16px; line-height:1.8; overflow-wrap:anywhere; }
.company-facts a { text-decoration:underline; text-underline-offset:4px; }

.public-sources article + article { margin-top:24px; padding-top:24px; border-top:1px solid var(--line); }
.public-sources h3 { font-size:18px; line-height:1.7; font-weight:500; margin:0 0 10px; }
.page-body .public-sources .source-meta { font-size:13px; color:#63747c; }

.source-meta span, .source-meta time { display:block; }
.source-meta time { white-space:nowrap; margin-top:4px; }

/* Four custom vectors share one grid, weight and optical footprint. */
.principles .principle-icon { display: block; width: 40px; height: 40px; flex: 0 0 40px; color: var(--navy); }
.principle-icon .icon-accent { stroke: #a1844c; }
@media (max-width: 700px) {
  .principles .principle-icon { width: 32px; height: 32px; flex-basis: 32px; }
  .principles .container > div { align-items: center; }
  .principles p { min-width: 0; }
}
@media (max-width: 360px) {
  .principles .container > div { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 5px 8px; justify-content: start; }
  .principles p { display: contents; }
  .principles strong { grid-column: 2; }
  .principles small { grid-column: 1 / -1; }
}

/* Interaction refinements: preserve the existing visual design. */
.carousel-track:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.close-dialog { min-width: 44px; min-height: 44px; }
.error-page h1 { font-family: var(--serif); font-size: clamp(28px, 5vw, 42px); font-weight: 500; line-height: 1.5; }
.error-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 28px; }
.error-actions a { min-height: 48px; }
@media (max-width: 980px) {
  .menu-toggle { min-width: 44px; min-height: 44px; }
  #navigation { max-height: calc(100dvh - 150px); overflow-y: auto; overscroll-behavior: contain; }
  #navigation a { min-height: 44px; }
}

/* Company profile: approved visual language, aggregate figures only. */
.profile-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin:26px 0 10px}.profile-stats strong{display:block;color:var(--navy);font:400 clamp(23px,2.1vw,34px)/1.2 Georgia,serif;white-space:nowrap}.profile-stats strong span{font:12px "Microsoft YaHei","PingFang SC",Arial,sans-serif;margin-left:5px}.profile-stats p{font-size:12px;line-height:1.7;margin:10px 0 0;color:#617078}.profile-source{font-size:11px!important;line-height:1.8!important;color:#687982!important}.about-copy .about-values{margin-top:22px}@media(max-width:600px){.profile-stats{gap:16px;grid-template-columns:1fr;padding:20px 0}.profile-stats>div{display:flex;align-items:center;justify-content:space-between;gap:16px}.profile-stats p{margin:0;text-align:right;max-width:52%;text-wrap:balance}.profile-stats strong{font-size:28px}.profile-source{font-size:11px!important}}

.wechat-qr-code{display:block;width:220px;max-width:100%;height:auto;margin:0 auto;background:#fff}.wechat-contact[data-contact-qr]{text-align:center;flex-shrink:0}.wechat-contact[data-contact-qr] p{margin:12px 0 8px;font-size:13px}.qr-original{font-size:12px;color:#876932;text-decoration:underline;text-underline-offset:4px;display:inline-block;padding:8px 4px}.reading-block .wechat-contact[data-contact-qr]{width:240px;max-width:100%;padding:12px;border:1px solid var(--line)}@media(max-width:700px){.direct-dialog-content .wechat-qr-code{width:208px}}

/* Default navigation remains usable until app.js finishes initializing. */
.nojs-fallback{display:none}
html.no-js .nojs-fallback{display:block}
.nojs-navigation{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 24px;padding:12px 20px;background:#f7f7f3;color:#20333f}
.nojs-navigation a{text-decoration:underline;min-height:44px;display:inline-flex;align-items:center}
html.no-js .menu-toggle,html.no-js [data-contact],html.no-js .mobile-contact-bar{display:none}

/* Non-script routes retain the same visual language and work before app readiness. */
.footer-bottom .privacy-link{margin-left:auto;color:inherit;background:transparent;font-size:12px;min-height:44px;display:inline-flex;align-items:center;padding:2px 6px}
.scenario-fallback{display:none}
html.no-js #navigation,html.no-js .carousel-controls,html.no-js .scenario-tabs,html.no-js .scenario-panel{display:none!important}
html.no-js .scenario-layout{display:block}
html.no-js .scenario-fallback{display:block}
.scenario-fallback details{border-top:1px solid var(--line)}
.scenario-fallback summary{min-height:48px;color:var(--navy)}
.scenario-fallback p{color:#5c6e73}
.scenario-fallback summary,.scenario-fallback p{overflow-wrap:anywhere;word-break:break-word}
@media(max-width:560px){.footer-bottom .privacy-link{margin-left:0;padding:0}}
