/* Shared page polish. Loaded after the legacy theme, before homepage composition. */
:root { --ui-ink:#142d4e; --ui-blue:#114992; --ui-line:#dce4ef; }
html { scroll-padding-top:100px; }
body { overflow-wrap:break-word; }
:where(main,section,article,aside) [id] { scroll-margin-top:100px; }
a:focus-visible,button:focus-visible,summary:focus-visible,select:focus-visible,
.table-scroll:focus-visible { outline:3px solid #1565c0; outline-offset:4px; }
.header-inner { gap:24px; min-height:76px; }
.logo { flex:0 0 auto; }
.logo-icon { flex-shrink:0; }
.logo-text .site-name { white-space:nowrap; }
.logo-text p:not(.site-name) { max-width:280px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mobile-menu-btn { min-width:44px; min-height:44px; flex-shrink:0; }
nav.main-nav > a { font-weight:600; }
nav.main-nav > a.active { border-bottom-color:var(--ui-blue); }
.page-banner { padding:48px 0; }
.page-banner h1 { max-width:960px; font-size:clamp(30px,3.4vw,46px); font-weight:700; line-height:1.35; }
.page-banner p:not(.eyebrow):not(.article-label) { max-width:850px; line-height:1.8; }
.page-banner .eyebrow { font-size:12px; letter-spacing:.08em; }
.page-banner .breadcrumb { margin-top:16px; font-size:13px; }
.content-section { padding:48px 0; }
.article-content { min-width:0; }
.article-detail { max-width:900px; }
.article-content h2 { font-size:clamp(23px,2.2vw,30px); font-weight:650; line-height:1.45; }
.article-content p,.article-content li { line-height:1.9; }
.article-content .page-visual img { max-height:360px; object-fit:cover; width:100%; }
.article-content .steps { grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); }
.section-header h2 { font-weight:650; }
.ai-summary::before { content:"阅读要点"; }
html[lang="en"] .ai-summary::before { content:"AT A GLANCE"; }
.article-toc { margin:24px 0; padding:16px 20px; background:#f4f7fb; border:1px solid var(--ui-line); border-radius:4px; }
.article-toc summary { cursor:pointer; font-size:15px; font-weight:700; color:var(--ui-ink); }
.article-toc nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 24px; margin-top:14px; }
.article-toc a { padding:6px 0; font-size:14px; line-height:1.6; color:var(--ui-blue); text-decoration:none; }
.article-toc a:hover { text-decoration:underline; }
.directory-nav a.directory-nav__cta { color:#142d4e; }
.table-scroll { overscroll-behavior-x:contain; }
.rfq-contact-card .rfq-phone,.rfq-contact-card .rfq-phone a { color:#fff; }
.rfq-actions { flex-wrap:wrap; }
.rfq-result,.quote-result { overflow-wrap:anywhere; }
.footer-quick-nav { display:flex; flex-wrap:wrap; gap:8px 24px; padding-top:16px; padding-bottom:20px; border-bottom:1px solid #ffffff24; }
.footer-quick-nav a { display:inline-flex; align-items:center; min-height:40px; color:#dce9fa; font-size:14px; }
.footer-quick-nav a:hover { color:#fff; text-decoration:underline; }
.wechat-float { width:144px; right:12px; bottom:28px; padding:12px; border:1px solid var(--ui-line); border-radius:6px; background:#fff; color:var(--ui-ink); box-shadow:0 6px 24px #102f571a; }
.wechat-float img { width:118px; height:auto; padding:0; object-fit:contain; }
.wechat-float strong { color:var(--ui-blue); font-size:14px; }
.wechat-float span { color:#52667e; font-size:11px; }
.wechat-float a { color:var(--ui-ink); font-size:14px; min-height:32px; display:flex; align-items:center; }
.wechat-float a:hover,.wechat-float a:focus-visible { color:var(--ui-blue); }
/* Reserve a real contact rail; the fixed QR must never cover a form or text. */
@media(min-width:1024px) and (max-width:1679px) {
  body:not(.home-page) > :is(main,section,footer),
  body:not(.home-page) > [role="main"] { padding-right:168px; }
}
@media(min-width:1080px) {
  body:not(.home-page) nav.main-nav { display:flex; position:static; flex-direction:row; align-items:center; flex-wrap:nowrap; height:76px; padding:0; gap:0; background:none; border:0; box-shadow:none; }
  body:not(.home-page) nav.main-nav > a { width:auto; height:76px; padding:0 12px; font-size:14px; }
  body:not(.home-page) nav.main-nav > .cta-header { height:42px; min-height:42px!important; margin:0 0 0 12px!important; padding:10px 16px!important; }
  body:not(.home-page) .mobile-menu-btn { display:none; }
  nav.main-nav > .language-switcher,nav.main-nav > a[href="quote.html"],nav.main-nav > a[href="faq.html"],
  html[lang="en"] nav.main-nav > a[href*="#"],
  html[lang="en"] nav.main-nav > a[href="global-rfq.html"]:not(.cta-header) { display:none!important; }
  .mobile-menu-actions { display:none; }
}
@media(max-width:1079px) {
  .header-inner { min-height:72px; padding:12px 24px; }
  .logo-text { min-width:0; }
  .mobile-menu-btn { display:block; }
  html.js nav.main-nav { display:none; }
  html.js nav.main-nav.open { display:flex; flex-direction:column; position:absolute; inset:100% 0 auto; width:100%; height:auto; max-height:calc(100dvh - 80px); overflow:auto; padding:16px 24px 24px; background:#fff; border-bottom:1px solid var(--ui-line); box-shadow:0 12px 24px #102f5720; }
  html.js nav.main-nav.open > a { display:flex; width:100%; height:auto; min-height:44px; flex-shrink:0; padding:10px 12px; color:var(--ui-ink); border:0; font-size:16px; }
  html.js nav.main-nav.open > a.active { background:#eaf1fb; color:var(--ui-blue); }
  html.js nav.main-nav.open > a.cta-header { color:#fff; margin:12px 0!important; justify-content:center; }
  html.js nav.main-nav.open .language-switcher { display:block; width:100%; margin:0; padding:8px 0; }
  html.js nav.main-nav.open .language-switcher select { width:100%; min-height:44px; }
  html.js nav.main-nav.open .mobile-menu-actions { display:grid; gap:10px; margin:10px 0 0; }
  .mobile-menu-actions a { min-height:44px; justify-content:center; }
  body.menu-open { overflow:hidden; }
  body.menu-open :is(.wechat-float,.hero-wechat,.mobile-sticky-actions) { visibility:hidden; }
}
@media(max-width:1023px) { .wechat-float { display:none; } }
@media(min-width:769px) and (max-width:1023px) {
  body { padding-bottom:58px; }
  .mobile-sticky-actions { display:flex; position:fixed; z-index:26; right:20px; bottom:16px; background:#fff; border:1px solid var(--ui-line); box-shadow:0 5px 20px #102f571a; }
  .mobile-sticky-actions a { padding:12px 20px; color:var(--ui-blue); font-weight:600; }
  .mobile-sticky-actions a:last-child { background:var(--ui-blue); color:#fff; }
}
@media(max-width:768px) {
  html { scroll-padding-top:84px; }
  .page-banner { padding:32px 0; }
  .page-banner h1 { font-size:30px; }
  .content-section { padding:32px 0; }
  .content-section .section { padding-top:36px; padding-bottom:36px; }
  .article-toc nav { grid-template-columns:1fr; }
  .article-content .page-visual img { max-height:240px; }
  .article-content .steps { grid-template-columns:1fr 1fr; gap:16px; }
  .article-content .step { text-align:left; padding:16px 0; }
  .article-content .step-num { margin-left:0; }
  .project-snapshot { margin-top:24px; }
  .project-snapshot__item { padding:14px; }
  .project-snapshot__item strong { font-size:14px; }
  .rfq-actions > button { width:100%; justify-content:center; }
  .footer-quick-nav { gap:0 20px; }
}
