/* ============================================================================
   joeqing.cn 全局样式表
   ----------------------------------------------------------------------------
   ⚠️ 改值之前先看这张表 —— 下面这些属性有唯一权威位置，别在别处再加一份覆盖：

     页宽（页头/正文/页脚三处统一）  →  :root 的 --jq-shell / --jq-gutter
     品牌色                          →  :root 与 #jq-global-footer 的 --jq-blue / --jq-blue-dark
     二维码尺寸                      →  文末「五栏」段的 .jqf-qr-item img（跟列宽伸缩）
     页脚容器宽度                    →  文末 .jqf-main,.jqf-support-inner,.jqf-shell 那条
     联系方式颜色/下划线             →  文末「页脚联系方式」段
     底部版权条高度                  →  文末「版权条压薄」段的两个值

   2026-08-01 已清掉 6 处被覆盖后仍留着的失效声明。**新增覆盖前先搜一遍选择器**，
   确认不是在给同一个属性写第三份。
   ============================================================================ */
#jq-global-footer{--jq-blue:#1b69f5;--jq-blue-dark:#1455d3;--jq-dark:#282e36;--jq-ink:#161616;--jq-text:#4b5563}
#jq-global-footer{color:var(--jq-text);background:#fff}
.jqf-support{border-top:1px solid #e5e9f0;border-bottom:1px solid #e5e9f0;background:#f3f6fa}
.jqf-support-inner{display:grid;margin:0 auto;grid-template-columns:repeat(3,1fr) auto;align-items:center}
.jqf-support-item{min-height:76px;padding:20px 25px;border-right:1px solid #dfe4eb}
.jqf-support-item:first-child{padding-left:0}
.jqf-support-item strong{display:block;color:#1e2530;font-size:13px;font-weight:800}
.jqf-support-item span{display:block;margin-top:3px;color:#778291;font-size:10px;line-height:1.45}
.jqf-support-link{display:inline-flex;min-height:42px;align-items:center;justify-content:center;margin-left:24px;padding:0 17px;border:1px solid #cdd6e2;border-radius:4px;color:#195fcf!important;font-size:12px;font-weight:800;text-decoration:none!important}
.jqf-support-link:hover{border-color:var(--jq-blue);background:#fff}
.jqf-main{width:min(1240px,calc(100% - 48px));margin:0 auto;padding:68px 0 24px}
.jqf-grid{display:grid;grid-template-columns:1.2fr 1.3fr .7fr 1.1fr;gap:48px;padding-bottom:52px}
.jqf-logo{display:inline-flex;margin-bottom:23px}
.jqf-logo img{display:block;width:200px;height:auto}
.jqf-brand p{max-width:325px;margin:0 0 20px;color:#687383;font-size:13px;line-height:1.7}
.jqf-contact{display:flex;flex-direction:column;gap:8px}
.jqf-contact a{color:#303844!important;font-size:13px;text-decoration:none!important}
.jqf-social{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}
.jqf-social a{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;padding:0;border:1px solid #dfe4eb;border-radius:4px;background:#fff;color:#606a78!important;text-decoration:none!important;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.jqf-social a:hover{border-color:#b7c5d8;background:#f4f7fc;transform:translateY(-1px)}
.jqf-social img{display:block;width:16px;height:16px;object-fit:contain}
.jqf-col-title{display:block;margin:0 0 16px;color:#171c23;font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.jqf-accordion{margin:0}
.jqf-accordion-button{display:none}
.jqf-list{display:flex;flex-direction:column;gap:9px;margin:0;padding:0;list-style:none}
.jqf-list a{color:#505a68!important;font-size:12px;line-height:1.45;text-decoration:none!important}
.jqf-list a:hover{color:var(--jq-blue)!important}
.jqf-list .jqf-primary-link{display:inline-flex;width:max-content;min-height:43px;align-items:center;justify-content:center;margin-bottom:4px;padding:0 16px;border-radius:4px;background:var(--jq-blue);color:#fff!important;font-weight:800}
.jqf-list .jqf-primary-link:hover{background:var(--jq-blue-dark);color:#fff!important}
.jqf-newsletter p{max-width:290px;margin:0;color:#687383;font-size:12px;line-height:1.65}
.jqf-newsletter-form{display:flex;width:100%;margin-top:17px}
.jqf-newsletter-form input{min-width:0;flex:1;height:46px!important;margin:0!important;padding:0 13px!important;border:1px solid #d8dee7!important;border-right:0!important;border-radius:4px 0 0 4px!important;background:#fff!important;color:#27303b!important;-webkit-text-fill-color:#27303b!important;color-scheme:light!important;opacity:1!important;box-shadow:none!important;font-family:Inter,-apple-system,sans-serif!important;font-size:12px!important;line-height:46px!important;outline:none!important;box-sizing:border-box!important}
.jqf-newsletter-form input::placeholder{color:#929baa!important;opacity:1}
.jqf-newsletter-form input:focus{position:relative;z-index:1;border-color:var(--jq-blue)!important;box-shadow:0 0 0 3px rgba(27,105,245,.1)!important}
.jqf-newsletter-form button{display:inline-flex;height:46px!important;min-height:46px!important;align-items:center;justify-content:center;margin:0!important;padding:0 16px!important;border:1px solid var(--jq-blue)!important;border-radius:0 4px 4px 0!important;background:var(--jq-blue)!important;color:#fff!important;box-shadow:none!important;font-family:Inter,-apple-system,sans-serif!important;font-size:11px!important;font-weight:850!important;line-height:1!important;cursor:pointer;box-sizing:border-box!important}
.jqf-newsletter-form button:hover{border-color:var(--jq-blue-dark)!important;background:var(--jq-blue-dark)!important}
.jqf-newsletter-form button:disabled{opacity:.65;cursor:wait}
.jqf-newsletter-response{min-height:18px;margin:8px 0 0!important;color:#687383!important;font-size:10px!important;line-height:1.5!important}
.jqf-newsletter-response.is-success{color:#24643a!important}
.jqf-newsletter-note{display:block;margin-top:8px;color:#939ba7;font-size:9px;line-height:1.5}
.jqf-legal{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0;border-top:1px solid #e8ebf0;color:#89919d;font-size:10px;line-height:1.6}
.jqf-legal-links{display:flex;gap:17px;flex-wrap:wrap}
.jqf-legal a{color:inherit!important;text-decoration:none!important}
.jqf-legal a:hover{color:#4d5967!important}
.jqf-page{color:var(--jq-text);background:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.jqf-page *{box-sizing:border-box}
.jqf-page a{text-decoration:none!important}
.jqf-shell{margin:0 auto}
.jqf-page-hero{padding:68px 0 58px;background:#f2f4f7}
.jqf-page-eyebrow{margin:0 0 17px;color:var(--jq-blue);font-size:11px;font-weight:850;letter-spacing:.15em;text-transform:uppercase}
.jqf-page h1{max-width:880px;margin:0;color:var(--jq-ink);font-size:clamp(38px,3.4vw,46px);font-weight:830;letter-spacing:-.035em;line-height:1.08}
.jqf-page-lead{max-width:720px;margin:22px 0 0;color:#596474;font-size:16px;line-height:1.72}
.jqf-page-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.jqf-button{display:inline-flex;min-height:50px;align-items:center;justify-content:center;padding:0 20px;border:1px solid #cdd5df;border-radius:4px;color:#202630!important;background:#fff;font-size:13px;font-weight:800}
.jqf-button-primary{border-color:var(--jq-blue);background:var(--jq-blue);color:#fff!important}
.jqf-button-primary:hover{background:var(--jq-blue-dark)}
.jqf-section{padding:76px 0}
.jqf-section-soft{background:#f5f6f8}
.jqf-section-head{display:grid;grid-template-columns:1fr .72fr;gap:56px;align-items:end;margin-bottom:36px}
.jqf-section-head h2{margin:0;color:var(--jq-ink);font-size:clamp(32px,3.1vw,42px);font-weight:820;letter-spacing:-.04em;line-height:1.08}
.jqf-section-head p{margin:0;color:#687383;font-size:14px;line-height:1.75}
.jqf-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.jqf-card{overflow:hidden;border:1px solid #e0e4ea;border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(20,31,48,.04)}
.jqf-card img{display:block;width:100%;aspect-ratio:1.55;object-fit:cover}
.jqf-card-body{padding:22px}
.jqf-card-label{display:block;margin-bottom:9px;color:var(--jq-blue);font-size:9px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.jqf-card h3{margin:0 0 10px;color:#1b2129;font-size:20px;font-weight:790;line-height:1.2}
.jqf-card p{margin:0;color:#6a7584;font-size:12px;line-height:1.65}
.jqf-card-link{display:inline-flex;margin-top:17px;color:#155cc9!important;font-size:12px;font-weight:800}
.jqf-callout{display:grid;padding:34px;border-radius:16px;background:var(--jq-dark);grid-template-columns:1fr auto;gap:30px;align-items:center;color:#fff}
.jqf-callout h2{margin:0;color:#fff;font-size:30px;letter-spacing:-.035em}
.jqf-callout p{margin:9px 0 0;color:#bdc5cf;font-size:13px}
.jqf-hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(340px,.72fr);gap:58px;align-items:center}
.jqf-hero-grid h1{font-size:clamp(40px,3.8vw,52px)}
.jqf-hero-panel{overflow:hidden;border:1px solid #dde3eb;border-radius:16px;background:#fff;box-shadow:0 18px 48px rgba(24,37,56,.08)}
.jqf-hero-panel img{display:block;width:100%;aspect-ratio:1.2;object-fit:cover}
.jqf-hero-panel-body{padding:21px 23px}
.jqf-hero-panel-body strong{display:block;color:var(--jq-ink);font-size:14px}
.jqf-hero-panel-body span{display:block;margin-top:6px;color:#6c7786;font-size:11px;line-height:1.6}
.jqf-breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:22px;color:#738091;font-size:10px;font-weight:750;letter-spacing:.03em}
.jqf-breadcrumb a{color:#526071!important}
.jqf-breadcrumb span:last-child{color:var(--jq-blue)}
.jqf-kicker{display:inline-flex;margin:0 0 14px;padding:6px 9px;border-radius:99px;background:#e8f0ff;color:#155cc9;font-size:9px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.jqf-stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #dfe4eb;border-radius:14px;background:#fff}
.jqf-stat{min-height:118px;padding:24px;border-right:1px solid #e4e8ee}
.jqf-stat:last-child{border-right:0}
.jqf-stat strong{display:block;color:var(--jq-ink);font-size:24px;font-weight:830;letter-spacing:-.04em}
.jqf-stat span{display:block;margin-top:8px;color:#75808e;font-size:10px;line-height:1.5}
.jqf-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.jqf-feature{min-height:100%;padding:29px;border:1px solid #e0e5eb;border-radius:14px;background:#fff}
.jqf-feature-number{display:block;margin-bottom:34px;color:var(--jq-blue);font-size:10px;font-weight:850;letter-spacing:.13em}
.jqf-feature h3{margin:0;color:var(--jq-ink);font-size:25px;font-weight:800;letter-spacing:-.035em;line-height:1.12}
.jqf-feature p{margin:12px 0 0;color:#677382;font-size:12px;line-height:1.75}
.jqf-feature ul,.jqf-article ul{margin:17px 0 0;padding-left:18px;color:#5f6b7a;font-size:12px;line-height:1.8}
.jqf-dark{background:var(--jq-dark);color:#fff}
.jqf-dark .jqf-page-eyebrow{color:#69a1ff}
.jqf-dark h2,.jqf-dark h3{color:#fff}
.jqf-dark .jqf-section-head p,.jqf-dark p{color:#b6c0ce}
.jqf-route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.jqf-route{padding:26px;border:1px solid #2c3a4b;border-radius:13px;background:#111d2b}
.jqf-route span{color:#70a6ff;font-size:9px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.jqf-route h3{margin:12px 0 8px;font-size:20px}
.jqf-route p{margin:0;font-size:11px;line-height:1.7}
.jqf-process{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid #dfe4eb;border-radius:14px;background:#fff}
.jqf-step{padding:24px 20px;border-right:1px solid #e3e7ed}
.jqf-step:last-child{border-right:0}
.jqf-step b{display:block;color:var(--jq-blue);font-size:10px;letter-spacing:.12em}
.jqf-step strong{display:block;margin-top:18px;color:var(--jq-ink);font-size:14px}
.jqf-step span{display:block;margin-top:8px;color:#76808e;font-size:10px;line-height:1.55}
.jqf-spec-list{overflow:hidden;border:1px solid #dfe4eb;border-radius:14px;background:#fff}
.jqf-spec-row{display:grid;grid-template-columns:.42fr 1fr;gap:28px;padding:19px 23px;border-bottom:1px solid #e5e9ef}
.jqf-spec-row:last-child{border-bottom:0}
.jqf-spec-row span{color:#7a8594;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.jqf-spec-row strong{color:#28313c;font-size:12px;line-height:1.55}
.jqf-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.jqf-tag{display:inline-flex;padding:8px 11px;border:1px solid #d8dee7;border-radius:99px;background:#fff;color:#536071;font-size:10px;font-weight:750}
.jqf-article-wrap{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:72px;align-items:start}
.jqf-article{max-width:760px}
.jqf-article h2{margin:44px 0 14px;color:var(--jq-ink);font-size:30px;font-weight:820;letter-spacing:-.035em;line-height:1.15}
.jqf-article h2:first-child{margin-top:0}
.jqf-article h3{margin:29px 0 10px;color:var(--jq-ink);font-size:20px}
.jqf-article p{margin:0 0 18px;color:#586575;font-size:14px;line-height:1.85}
.jqf-article strong{color:#2a333e}
.jqf-article-note{padding:22px 24px;border-left:3px solid var(--jq-blue);background:#f2f6fc;color:#526173;font-size:12px;line-height:1.75}
.jqf-aside{position:sticky;top:110px;padding:23px;border:1px solid #dfe4eb;border-radius:13px;background:#f8f9fb}
.jqf-aside strong{display:block;color:var(--jq-ink);font-size:12px}
.jqf-aside a{display:block;margin-top:12px;color:#526071!important;font-size:11px;line-height:1.45}
.jqf-aside a:hover{color:var(--jq-blue)!important}
.jqf-form-shell{display:grid;grid-template-columns:.75fr 1.25fr;gap:52px;align-items:start}
.jqf-form-card{padding:28px;border:1px solid #dfe4eb;border-radius:15px;background:#fff;box-shadow:0 15px 40px rgba(23,36,54,.06)}
.jqf-checklist{margin:24px 0 0;padding:0;list-style:none}
.jqf-checklist li{position:relative;margin-top:13px;padding-left:24px;color:#5f6b79;font-size:12px;line-height:1.6}
.jqf-checklist li:before{position:absolute;left:0;top:1px;color:var(--jq-blue);font-weight:900;content:"✓"}
.jqf-meta{display:flex;flex-wrap:wrap;gap:18px;margin-top:22px;color:#7b8593;font-size:10px;font-weight:750;letter-spacing:.04em;text-transform:uppercase}
.jqf-quote-builder{background:#fff}
.jqf-quote-builder p:empty,.jqf-product-selector>p{display:none!important}
.jqf-quote-heading{display:grid;grid-template-columns:1fr .72fr;gap:56px;align-items:end;margin-bottom:28px}
.jqf-quote-heading h2{margin:0;color:var(--jq-ink);font-size:clamp(32px,3.1vw,42px);font-weight:820;letter-spacing:-.04em;line-height:1.08}
.jqf-quote-heading>p{margin:0;color:#687383;font-size:14px;line-height:1.75}
.jqf-product-selector{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.jqf-product-choice{position:relative;display:block;overflow:hidden;min-height:220px;border:1px solid #dde3eb;border-radius:13px;background:#fff;cursor:pointer;box-shadow:0 10px 26px rgba(23,36,54,.04);transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.jqf-product-choice:hover{transform:translateY(-2px);border-color:#b8c7da;box-shadow:0 16px 34px rgba(23,36,54,.08)}
.jqf-product-choice:has(input:checked){border-color:var(--jq-blue);box-shadow:0 0 0 3px rgba(27,105,245,.12)}
.jqf-product-choice input{position:absolute;z-index:2;top:12px;right:12px;width:18px;height:18px;margin:0;accent-color:var(--jq-blue)}
.jqf-product-choice picture{display:block;width:100%;height:125px;overflow:hidden;background:#eef2f7}
.jqf-product-choice picture img{display:block;width:100%;height:100%;object-fit:contain}
.jqf-product-choice picture.jqf-product-photo img{object-fit:cover}
.jqf-product-choice>span{display:block;padding:15px}
.jqf-product-choice b{display:block;color:#202730;font-size:13px;line-height:1.35}
.jqf-product-choice small{display:block;margin-top:5px;color:#7a8492;font-size:10px;line-height:1.45}
.jqf-quote-workspace{display:grid;grid-template-columns:1.12fr .88fr;gap:18px;margin-top:28px;align-items:start}
.jqf-specific-panel,.jqf-contact-panel{padding:30px;border:1px solid #dfe4eb;border-radius:15px;background:#f7f9fc}
.jqf-contact-panel{position:sticky;top:102px;background:#fff;box-shadow:0 16px 42px rgba(23,36,54,.07)}
.jqf-product-fields{display:none}
.jqf-product-fields.is-active{display:block}
.jqf-product-fields h3,.jqf-contact-panel h3{margin:0;color:#202730;font-size:25px;font-weight:820;letter-spacing:-.035em;line-height:1.1}
.jqf-product-fields>p{margin:8px 0 22px;color:#6c7786;font-size:12px;line-height:1.6}
.jqf-master-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.jqf-master-grid label{display:block}
.jqf-master-grid label>span{display:block;margin-bottom:7px;color:#596473;font-size:10px;font-weight:780}
.jqf-master-full{grid-column:1/-1}
.jqf-master-grid input,.jqf-master-grid select,.jqf-master-grid textarea{width:100%!important;min-height:47px!important;margin:0!important;padding:11px 12px!important;border:1px solid #d7dde6!important;border-radius:4px!important;background:#fff!important;box-shadow:none!important;color:#222b35!important;font:inherit!important;font-size:12px!important;outline:none!important}
.jqf-master-grid textarea{min-height:122px!important;resize:vertical}
.jqf-master-grid input:focus,.jqf-master-grid select:focus,.jqf-master-grid textarea:focus{border-color:var(--jq-blue)!important;box-shadow:0 0 0 3px rgba(27,105,245,.10)!important}
.jqf-master-contact{margin-top:22px}
.jqf-product-selector>br,.jqf-product-choice>br{display:none!important}
.jqf-legal-copy{max-width:850px}
.jqf-legal-copy h2{margin:42px 0 12px;color:var(--jq-ink);font-size:28px;letter-spacing:-.03em}
.jqf-legal-copy h2:first-child{margin-top:0}
.jqf-legal-copy p,.jqf-legal-copy li{color:#5f6b7a;font-size:13px;line-height:1.8}
.jqf-legal-copy ul{padding-left:20px}
.jqf-form-card input[type="text"],.jqf-form-card input[type="email"],.jqf-form-card textarea{width:100%!important;height:auto!important;padding:12px 13px!important;border:1px solid #d7dde6!important;border-radius:4px!important;background:#fff!important;box-shadow:none!important;color:#222b35!important;font:inherit!important;font-size:13px!important;outline:none!important;-webkit-appearance:none;appearance:none}
.jqf-form-card textarea{min-height:136px!important;resize:vertical}
#jq-global-footer .jqf-newsletter-form input[type="email"]{
    background:#fff!important;
    color:#27303b!important;
    -webkit-text-fill-color:#27303b!important;
  }
@media(max-width:980px){.jqf-grid{grid-template-columns:1fr 1fr;gap:42px}.jqf-newsletter{max-width:360px}.jqf-support-inner{grid-template-columns:1fr 1fr}.jqf-support-item:nth-child(2){border-right:0}.jqf-support-item:nth-child(-n+2){border-bottom:1px solid #dfe4eb}.jqf-support-item:nth-child(3){padding-left:0}.jqf-support-link{margin:16px 0 16px 24px;justify-self:start}}
@media(max-width:640px){
    .jqf-support-inner{width:calc(100% - 36px);grid-template-columns:1fr}
    .jqf-support-item,.jqf-support-item:first-child,.jqf-support-item:nth-child(3){min-height:0;padding:16px 0;border-right:0;border-bottom:1px solid #dfe4eb}
    .jqf-support-link{width:100%;margin:16px 0}
    .jqf-main{width:calc(100% - 36px);padding:48px 0 18px}
    .jqf-grid{display:flex;flex-direction:column;gap:0;padding-bottom:28px}
    .jqf-brand{padding-bottom:26px}
    .jqf-brand p{max-width:none}
    .jqf-social{margin-top:20px}
    .jqf-accordion{border-top:1px solid #e5e9ef}
    .jqf-col-title{display:none}
    .jqf-accordion-button{display:flex!important;width:100%;min-height:55px;align-items:center;justify-content:space-between;padding:0!important;border:0!important;background:#fff!important;color:#171c23!important;box-shadow:none!important;font-family:Inter,-apple-system,sans-serif;font-size:12px;font-weight:850;letter-spacing:.1em;text-align:left;text-transform:uppercase;cursor:pointer}
    .jqf-accordion-button span{color:#6f7a88!important;font-size:10px;letter-spacing:0;text-transform:none}
    .jqf-list{display:none;padding:0 0 18px}
    .jqf-accordion.jq-open .jqf-list{display:flex}
    .jqf-newsletter{max-width:none;padding-top:27px;border-top:1px solid #e5e9ef}
    .jqf-newsletter .jqf-col-title{display:block;margin-bottom:13px}
    .jqf-newsletter p{max-width:none}
    .jqf-legal{align-items:flex-start;flex-direction:column-reverse;gap:10px;padding:20px 0}
  }
@media(max-width:820px){.jqf-page-hero{padding:72px 0 58px}.jqf-section{padding:64px 0}.jqf-section-head{grid-template-columns:1fr;gap:18px}.jqf-cards{grid-template-columns:1fr 1fr}.jqf-callout{grid-template-columns:1fr}}
@media(max-width:980px){.jqf-hero-grid,.jqf-article-wrap,.jqf-form-shell,.jqf-quote-workspace{grid-template-columns:1fr}.jqf-hero-panel{max-width:620px}.jqf-aside,.jqf-contact-panel{position:static}.jqf-process{grid-template-columns:repeat(3,1fr)}.jqf-step:nth-child(3){border-right:0}.jqf-step:nth-child(-n+3){border-bottom:1px solid #e3e7ed}.jqf-product-selector{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.jqf-stats,.jqf-route-grid{grid-template-columns:1fr 1fr}.jqf-stat:nth-child(2){border-right:0}.jqf-stat:nth-child(-n+2){border-bottom:1px solid #e4e8ee}.jqf-two-col{grid-template-columns:1fr}.jqf-process{grid-template-columns:1fr}.jqf-step,.jqf-step:nth-child(3){border-right:0}.jqf-step:not(:last-child){border-bottom:1px solid #e3e7ed}}
@media(max-width:560px){.jqf-shell{width:calc(100% - 36px)}.jqf-page-hero{padding:48px 0 44px}.jqf-page h1,.jqf-hero-grid h1{font-size:31px;line-height:1.1;letter-spacing:-.025em}.jqf-page-lead{font-size:15px}.jqf-cards,.jqf-stats,.jqf-route-grid{grid-template-columns:1fr}.jqf-stat{border-right:0}.jqf-stat:not(:last-child){border-bottom:1px solid #e4e8ee}.jqf-callout{padding:27px 22px}.jqf-callout .jqf-button,.jqf-page-actions .jqf-button{width:100%}.jqf-spec-row{grid-template-columns:1fr;gap:6px}.jqf-article h2{font-size:27px}.jqf-quote-heading{grid-template-columns:1fr;gap:18px}.jqf-quote-heading h2,.jqf-section-head h2{font-size:30px}.jqf-product-selector{grid-template-columns:1fr 1fr}.jqf-product-choice{min-height:195px}.jqf-product-choice picture{height:105px}.jqf-specific-panel,.jqf-contact-panel{padding:22px}.jqf-master-grid{grid-template-columns:1fr}.jqf-master-full{grid-column:auto}}
@media(max-width:420px){.jqf-product-selector{grid-template-columns:1fr}.jqf-product-choice{display:grid;min-height:112px;grid-template-columns:118px 1fr}.jqf-product-choice picture{width:118px;height:100%;min-height:112px}.jqf-product-choice>span{align-self:center}}
@media(max-width:767px){
    .jqf-newsletter-form input,
    #mwai-chatbot-default .mwai-input-text textarea,
    body input:not([type]),
    body input[type="text"],
    body input[type="email"],
    body input[type="tel"],
    body input[type="url"],
    body input[type="search"],
    body input[type="number"],
    body input[type="date"],
    body input[type="time"],
    body input[type="month"],
    body input[type="week"],
    body input[type="password"],
    body select,
    body textarea{
      font-size:16px!important;
    }
    html body.astra-dark-mode-enable input:not([type]),
    html body.astra-dark-mode-enable input[type="text"],
    html body.astra-dark-mode-enable input[type="email"],
    html body.astra-dark-mode-enable input[type="tel"],
    html body.astra-dark-mode-enable input[type="url"],
    html body.astra-dark-mode-enable input[type="search"],
    html body.astra-dark-mode-enable input[type="number"],
    html body.astra-dark-mode-enable input[type="date"],
    html body.astra-dark-mode-enable input[type="time"],
    html body.astra-dark-mode-enable input[type="month"],
    html body.astra-dark-mode-enable input[type="week"],
    html body.astra-dark-mode-enable input[type="password"],
    html body.astra-dark-mode-enable select,
    html body.astra-dark-mode-enable textarea{
      font-size:16px!important;
    }
  }.jqf-qr{display:flex;gap:18px;margin-top:16px}
.jqf-qr-item{margin:0;text-align:center}
.jqf-qr-item img{display:block;padding:5px;border-radius:10px;border:1px solid #e5e9f0;background:#fff;object-fit:contain;box-sizing:border-box}
.jqf-qr-item figcaption{margin-top:6px;font-size:12px;color:#89919d}
@media(max-width:767px){.jqf-qr{justify-content:flex-start}}

/* ========== 中文适配 ==========
   2026-07-31 收紧。原来一口气把链接放到 14px/1.6 又额外加了 li{margin-bottom:12px}，
   叠上 .jqf-list 自带的 gap:9px，每行间距被撑到约 47px（staging 约 36px），
   整个页脚显得松垮空洞。现在只保留中文必需的小幅放大，间距交还给 .jqf-list 的 gap。
   列标题：staging 靠 11px 全大写+字间距拉层级，中文没法大写，
   改用「比正文小、但更粗更深」来做层级（12px/850 #171c23 vs 链接 13px/常规 #505a68）。 */
#jq-global-footer .jqf-col-title{font-size:12px;font-weight:850;letter-spacing:.08em;color:#171c23;margin:0 0 16px}
#jq-global-footer .jqf-list{gap:12px}
#jq-global-footer .jqf-list a{font-size:13px!important;line-height:1.5;color:#505a68!important}
#jq-global-footer .jqf-list li{margin:0}
#jq-global-footer .jqf-brand p{font-size:13px;line-height:1.7;color:#687383;max-width:340px}
#jq-global-footer .jqf-contact{gap:7px;font-size:13px}
/* .jqf-contact 里的电话/邮箱/地址是 <p>，主题给 p 加了默认 margin，
   flex 的 gap 压不住它 —— 三行会被撑到约 50px 一行。必须显式清零。 */
#jq-global-footer .jqf-contact p{margin:0}
#jq-global-footer .jqf-contact a{font-size:13px}
#jq-global-footer .jqf-support-item strong{font-size:14px}
#jq-global-footer .jqf-support-item span{font-size:12.5px;line-height:1.6}
#jq-global-footer .jqf-legal{font-size:12px}
#jq-global-footer .jqf-legal-links{gap:18px;font-size:12px}

/* ========== 询价按钮（对齐 staging 的 Subscribe/Talk to an Engineer 规格） ========== */
#jq-global-footer .jqf-cta{display:inline-flex;align-items:center;justify-content:center;
  height:44px;min-width:122px;margin-top:20px;padding:0 22px;
  background:var(--jq-blue);color:#fff!important;font-size:14px;font-weight:800;
  border-radius:4px;text-decoration:none!important;
  transition:background .18s ease,transform .18s ease}
#jq-global-footer .jqf-cta:hover{background:var(--jq-blue-dark);transform:translateY(-1px);color:#fff!important}

/* ========== 二维码 ========== */
#jq-global-footer .jqf-qr{display:flex;gap:16px;margin-top:22px}
#jq-global-footer .jqf-qr-item{margin:0;text-align:center}
#jq-global-footer .jqf-qr-item img{display:block;border-radius:10px;border:1px solid #e5e9f0;background:#fff;padding:5px;object-fit:contain;box-sizing:border-box}
#jq-global-footer .jqf-qr-item figcaption{margin-top:8px;font-size:12px;color:#89919d}
#jq-global-footer .jqf-desc{font-size:13px;line-height:1.7;color:#687383;max-width:340px;margin:16px 0 22px}

/* 隐藏 Astra 的页面标题栏 —— 页面内容自带 H1，避免双 H1 伤 SEO */
.page .entry-header .entry-title,
.page .ast-single-post-order .entry-title,
.page-title.entry-title{display:none}

/* ========== 无障碍修正（WCAG AA 4.5:1）==========
   从 staging 继承的灰色不达标，实测：
   #89919d on #fff = 3.18:1 ❌   #77808c on #f3f6fa = 3.69:1 ❌
   手机户外强光下这类浅灰小字基本不可读，国内 B2B 客户大量用手机浏览。 */
#jq-global-footer .jqf-qr-item figcaption{color:#6d7581}   /* 4.65:1 */
#jq-global-footer .jqf-legal{color:#6d7581}                /* 4.65:1 */
#jq-global-footer .jqf-legal a{color:#6d7581}
#jq-global-footer .jqf-support-item span{color:#67707c}    /* 4.63:1 */

/* ========== 可访问性：焦点可见（键盘导航）========== */
#jq-global-footer a:focus-visible,
.main-navigation .menu-link:focus-visible{
  outline:2px solid var(--jq-blue);outline-offset:3px;border-radius:4px}

/* ========== 移动端触控目标 ≥44px ==========
   ⚠️ 触控目标要用 padding 撑，**不要用 line-height**。
   原来写的是 line-height:44px，叠上 .jqf-list 的 gap:12px 和 li 的 margin:2px，
   每行间距变成 58px，移动端页脚被拉成很长一条（站长截图反馈过）。
   改成 padding + min-height 后行距正好 44px，既够点又不散。 */
@media(max-width:767px){
  #jq-global-footer .jqf-list{gap:0!important}
  #jq-global-footer .jqf-list li{margin:0!important}
  #jq-global-footer .jqf-list a{display:flex;align-items:center;min-height:44px;line-height:1.5;padding:4px 0}
  #jq-global-footer .jqf-contact a{display:inline-flex;align-items:center;min-height:32px;line-height:1.5}
}

/* ========== 尊重减少动态效果系统设置 ========== */
@media(prefers-reduced-motion:reduce){
  #jq-global-footer *,#jq-global-footer *::before,#jq-global-footer *::after{
    animation-duration:.01ms!important;transition-duration:.01ms!important}
  #jq-global-footer .jqf-cta:hover{transform:none}
}

/* ========== 移动端页脚：折叠面板（2026-07-31 改回，复刻 staging） ==========
   站长要求做成测试服那样：栏目标题一行、右侧「展开/收起」、默认收起。
   之前的版本是常驻展开 —— 那是因为当时只搬了 CSS 没搬 JS，开折叠会把栏目藏死。
   现在 JS 在 joeqing-footer.php 末尾（事件委托，10 行）。
   「联系与支持」栏**不折叠**：电话是主要转化入口，必须一眼可见（洲明也是这么排的）。 */
@media(max-width:767px){
  /* ⚠️ 折叠面板必须和「单栏堆叠」用同一个断点，否则两套布局会打架。
     前面有 @media(max-width:980px){.jqf-grid{grid-template-columns:1fr 1fr}} 把页脚排成两栏，
     而折叠是 ≤767 生效 —— 641~767 之间就变成「两栏网格里塞折叠行」，
     栏目标题和「展开」被挤到相邻格子里，完全错位（站长 641px 截图）。
     这里直接把 .jqf-grid 改成单列 flex 覆盖掉那条两栏规则（本块在文件更后面，同特异性后者胜）。 */
  #jq-global-footer .jqf-grid{display:flex!important;flex-direction:column!important;gap:0!important}

  /* 可折叠的三栏 */
  #jq-global-footer .jqf-collapsible{border-top:1px solid #e5e9ef}
  #jq-global-footer .jqf-collapsible > .jqf-col-title{display:none!important}
  #jq-global-footer .jqf-collapsible > .jqf-accordion-button{
    display:flex!important;width:100%;min-height:54px;
    align-items:center;justify-content:space-between;
    margin:0!important;padding:0!important;
    border:0!important;border-radius:0!important;background:transparent!important;
    color:#171c23!important;box-shadow:none!important;
    font-family:inherit;font-size:14px;font-weight:800;letter-spacing:.02em;
    text-align:left;text-transform:none;cursor:pointer}
  #jq-global-footer .jqf-collapsible > .jqf-accordion-button .jqf-acc-state{
    color:#8b95a3!important;font-size:12px;font-weight:400;letter-spacing:0}
  #jq-global-footer .jqf-collapsible > .jqf-list{display:none!important;padding:0 0 18px}
  #jq-global-footer .jqf-collapsible.jq-open > .jqf-list{display:flex!important}

  /* 联系与支持：不折叠，标题常显 */
  #jq-global-footer .jqf-contactcol{border-top:1px solid #e5e9ef;padding-top:22px}
  #jq-global-footer .jqf-contactcol > .jqf-col-title{display:block!important;margin:0 0 16px}
}
/* 桌面端不需要折叠按钮 */
@media(min-width:768px){ #jq-global-footer .jqf-accordion-button{display:none!important} }

/* ===================== 手机端导航：复刻 staging =====================
   2026-07-31 重做。
   结论：staging 用的就是 Astra 原生 dropdown 型手机头部，按钮 HTML 与
   joeqing.cn 逐字节一致，差别只在 staging 多了一整块自定义 CSS。
   所以这里直接搬 staging 的 jq-global-framework-css + wp-custom-css
   两块手机菜单样式，仅做两处中文化：字体栈换成中英分治、字号放大。
   之前自建的 .jqm-* 抽屉（joeqing-mobile-nav.php）已删除——纯属绕远路。 */

:root{
  --jq-ink:#161616;  --jq-line:#e6e9ee;  --jq-muted:#7a8492;
  --jq-soft:#f4f6f9; --jq-text:#4b5563;  --jq-blue:#1b69f5;  --jq-blue-dark:#1455d3;
}

@media(max-width:921px){

  /* ---------- 触发按钮（staging 原样：42px 白底描边圆角） ---------- */
  #masthead [data-section="section-header-mobile-trigger"] .menu-toggle{
    display:flex!important;width:42px;height:42px;
    align-items:center!important;justify-content:center!important;
    border:1px solid #e1e5eb!important;border-radius:4px!important;
    background:#fff!important;color:var(--jq-ink)!important;padding:0!important}
  #masthead [data-section="section-header-mobile-trigger"] .ast-mobile-svg{
    width:20px!important;height:20px!important;fill:var(--jq-ink)!important}
  #masthead .site-header-primary-section-right{
    display:flex!important;align-items:center!important;margin-left:auto}

  /* ---------- 下拉面板 ---------- */
  #masthead .ast-mobile-header-content{
    position:absolute!important;top:100%;left:0;width:100%;
    padding:0 18px 18px!important;border-top:1px solid #edf0f4;
    background:#fff!important;box-shadow:0 18px 35px rgba(18,30,52,.13)!important}
  #masthead #ast-hf-mobile-menu{padding:8px 0!important;background:#fff!important}
  #masthead #ast-hf-mobile-menu>.menu-item{
    position:relative!important;border-bottom:1px solid #edf0f4!important;background:#fff!important}

  /* ---------- 一级菜单项（中文字号 16px，staging 是 15px/Inter） ---------- */
  #masthead #ast-hf-mobile-menu>.menu-item>.menu-link{
    display:flex!important;height:auto!important;min-height:54px!important;
    align-items:center!important;padding:0 4px!important;
    color:var(--jq-ink)!important;background:#fff!important;
    font-size:16px!important;font-weight:600!important;line-height:1.4!important;
    text-decoration:none!important;white-space:normal!important}
  #masthead #ast-hf-mobile-menu>.menu-item-has-children>.menu-link{padding-right:60px!important}

  /* ---------- 二级菜单：缩进、字轻 ---------- */
  #masthead #ast-hf-mobile-menu .sub-menu{
    display:none!important;padding-left:0!important;margin-left:0!important;
    background:transparent!important;border:0!important;box-shadow:none!important}
  #masthead #ast-hf-mobile-menu .menu-item.ast-submenu-expanded>.sub-menu{display:block!important}
  #masthead #ast-hf-mobile-menu .sub-menu .menu-item{border:0!important;background:transparent!important}
  #masthead #ast-hf-mobile-menu .sub-menu .menu-link{
    display:block!important;min-height:0!important;
    padding:12px 4px 12px 22px!important;
    color:#4b5563!important;background:transparent!important;
    font-size:15px!important;font-weight:400!important;line-height:1.5!important}

  /* ---------- 展开箭头：Astra 默认藏起来，强制显示且可点 ---------- */
  #masthead #ast-hf-mobile-menu .ast-menu-toggle{
    display:flex!important;align-items:center!important;justify-content:center!important;
    position:absolute!important;right:0!important;top:0!important;
    width:56px!important;height:54px!important;margin:0!important;padding:0!important;
    color:var(--jq-ink)!important;background:transparent!important;border:0!important;
    cursor:pointer!important;z-index:3!important}
  #masthead #ast-hf-mobile-menu .ast-menu-toggle svg,
  #masthead #ast-hf-mobile-menu .ast-menu-toggle .ast-arrow-svg{
    width:15px!important;height:15px!important;fill:var(--jq-ink)!important;
    transition:transform .25s ease}
  #masthead #ast-hf-mobile-menu .menu-item.ast-submenu-expanded>.ast-menu-toggle svg{
    transform:rotate(180deg)}
  /* Astra 给箭头按钮加了 box-shadow，在白底上显示成一个方框，去掉 */
  #masthead #ast-hf-mobile-menu .ast-menu-toggle{box-shadow:none!important;outline:none!important}
  /* Astra 给二级菜单链接塞了个 > 箭头图标，中文菜单里显得杂乱，去掉 */
  #masthead #ast-hf-mobile-menu .sub-menu .menu-link .ast-icon.icon-arrow{display:none!important}

  /* 顶部导航栏里那个 span 型下拉标记在手机端多余 */
  #masthead #ast-hf-mobile-menu .dropdown-menu-toggle{display:none!important}

  /* ---------- 抽屉里的询价按钮（导航菜单项形态） ---------- */
  #masthead #ast-hf-mobile-menu>.jq-nav-cta{border-bottom:0!important;padding:14px 0 2px!important}
  #masthead #ast-hf-mobile-menu>.jq-nav-cta>.menu-link{
    justify-content:center!important;height:48px!important;min-height:48px!important;
    padding:0!important;background:var(--jq-blue)!important;color:#fff!important;
    border-radius:4px!important;font-size:16px!important;font-weight:700!important}

  /* ---------- 抽屉里的询价按钮 ---------- */
  #masthead .ast-mobile-header-content .ast-builder-button-wrap{
    background:#fff!important;padding:18px 4px 4px!important}
  #masthead .ast-mobile-header-content .ast-custom-button{
    display:flex!important;align-items:center!important;justify-content:center!important;
    width:100%!important;height:48px!important;
    background:var(--jq-blue)!important;color:#fff!important;
    border-radius:4px!important;font-size:16px!important;font-weight:700!important}

  /* ---------- 面板打开时背景不跟着滚 ---------- */
  #masthead .ast-mobile-header-content{max-height:calc(100vh - 80px);overflow-y:auto}
}

@media(max-width:921px) and (prefers-reduced-motion:reduce){
  #masthead #ast-hf-mobile-menu .ast-menu-toggle svg{transition:none!important}
}


/* ========== 藏掉 Astra 自带的页脚版权条 ==========
   2026-07-31：joeqing.cn 页脚最底下一直露着
   「Copyright © 2026 九清科技 | Powered by Astra WordPress 主题」，
   还带一个指向 Astra 官网的外链。staging 早就有这条规则，国内站漏了。
   九清自己的版权+备案信息在上面的 .jqf-legal 里，不需要 Astra 这条。 */
.ast-footer-copyright,.ast-small-footer{display:none!important}


/* ================== 三处页宽统一（2026-07-31） ==================
   实测三个容器各写各的，内容左右边缘对不齐：
     导航栏  max-width:1280 + padding:28  → 内容边缘 ±612
     页面内容 .ast-container 1240 + padding:40 → ±580
     页脚    width:min(1240, 100%-48) 无内边距 → ±620
   统一成一套变量。改宽度只改这两个值，三处一起动。 */
:root{ --jq-shell:1224px; --jq-gutter:28px; }
@media(max-width:640px){ :root{ --jq-gutter:18px; } }

/* 页脚三个容器 */
.jqf-main,.jqf-support-inner,.jqf-shell{
  width:min(var(--jq-shell),calc(100% - var(--jq-gutter)*2))!important;
  margin-left:auto!important;margin-right:auto!important}

/* Astra 还有第二层：.entry-content[data-ast-blocks-layout] > * 被限制在
   --wp--custom--ast-content-width-size(默认 1200px) 并居中，比容器内容宽(1224)窄 24px，
   于是正文比页头页脚每边多缩 12px。把这个变量也对齐到同一个 shell。 */
.site-content{--wp--custom--ast-content-width-size:var(--jq-shell)!important}

/* 页面正文容器（只作用于正文，不碰页头页脚里的 .ast-container） */
.site-content .ast-container{
  max-width:calc(var(--jq-shell) + var(--jq-gutter)*2)!important;
  padding-left:var(--jq-gutter)!important;
  padding-right:var(--jq-gutter)!important}

/* ================== 页脚联系方式（2026-07-31） ==================
   原来电话/邮箱是 .jqf-contact a{color:#303844!important}（带 !important 不带 ID），
   地址是普通 <p> 继承 #jq-global-footer 的 --jq-text(#4b5563) —— 两个颜色，看着就不齐。
   统一成同一个颜色，只有 hover 才是企业蓝。 */
#jq-global-footer .jqf-contact,
#jq-global-footer .jqf-contact p,
#jq-global-footer .jqf-contact a,
#jq-global-footer .jqf-contact-label{color:var(--jq-text)!important}
#jq-global-footer .jqf-contact a{text-decoration:none!important;transition:color .15s ease}
#jq-global-footer .jqf-contact a:hover{color:var(--jq-blue)!important}
#jq-global-footer .jqf-contact-label{margin-right:2px}


/* ================== 页脚四栏重新配重（2026-07-31） ==================
   原列宽 1.2fr 1.3fr .7fr 1.1fr 是照测试服搬的，但测试服第 4 栏是**邮件订阅表单**
   （输入框+按钮，撑满整列）。国内站不做订阅、又去掉了「立即询价」，第 4 栏只剩
   4 个短链接 —— 实测最右文字到 x=1105 就断了，距容器右缘 1332 空了 227px。
   同时品牌栏堆了 logo+简介+3行联系方式+2个二维码，视觉上左重右轻。

   处理：① 二维码移到第 4 栏（见 joeqing-footer.php），一对约 226px 正好填满
        ② 列宽改成「品牌栏宽 + 两个链接栏等宽 + 第4栏留够放二维码」
   1224 容器 - 3×48 间距 = 1080，按 1.5:1:1:1.2 → 345 / 230 / 230 / 276。
   第 4 栏 276px ≥ 二维码一对 226px，放得下。 */
/* ⚠️ 必须包在 min-width:981px 里。这段在文件末尾，CSS 同特异性看源码顺序，
   不加断点会盖掉前面 @media(max-width:980px) 的两栏规则 —— 平板上会挤成 4 列。 */
/* ================== 页脚五栏（2026-07-31，参考洲明科技） ==================
   洲明（LED 显示龙头）的页脚把联系渠道**独立成一整栏**，不塞在品牌栏里。
   国内 B2B 普遍这么排，原因是电话是主要转化入口，值得单独占一栏。
   照搬这个信息架构后：品牌栏减负（只剩 logo+简介+二维码），最后一栏被填满。

   1224 容器 − 4×32 间距 = 1096，按 1.25:1:.85:.7:1.1 分 ≈ 280/224/190/157/246。
   核对：品牌栏 280 ≥ 二维码一对 226 ✓；产品栏 224 ≥「135寸升降折叠屏」117 ✓；
        联系栏 246 ≥「lanning@joeqing.com」约 125 ✓（地址会折 2 行，正常）。 */
@media(min-width:981px){
  .jqf-grid{grid-template-columns:1.25fr 1fr .85fr .7fr 1.1fr!important;gap:32px!important;align-items:start}
}

/* 二维码改成跟着列宽伸缩：五栏之后品牌栏在 981–1199px 会窄到放不下两个 104px 的码，
   固定尺寸会溢出。改成等分列宽、上限 104px，窄屏自动缩小。 */
#jq-global-footer .jqf-qr{display:flex;gap:14px}
#jq-global-footer .jqf-qr-item{flex:1 1 0;min-width:0;max-width:112px}
#jq-global-footer .jqf-qr-item img{width:100%;max-width:104px;height:auto;aspect-ratio:1/1}

/* ---------- 「联系与支持」栏 ---------- */
#jq-global-footer .jqf-contactcol .jqf-contact{display:flex;flex-direction:column;gap:14px}
#jq-global-footer .jqf-contactcol .jqf-contact p{margin:0}
/* 标签改成独占一行的小灰字，值另起一行 —— 跟其它栏「标题 + 条目」的节奏一致 */
#jq-global-footer .jqf-contactcol .jqf-contact-label{
  display:block;margin:0 0 3px;color:#8b95a3!important;font-size:12px;letter-spacing:.02em}
#jq-global-footer .jqf-contactcol .jqf-contact a,
#jq-global-footer .jqf-contactcol .jqf-contact p > span:not(.jqf-contact-label){
  color:var(--jq-text)!important;font-size:13px;line-height:1.5;text-decoration:none!important}
#jq-global-footer .jqf-contactcol .jqf-contact a:hover{color:var(--jq-blue)!important}
#jq-global-footer .jqf-contact-more{
  display:inline-block;margin-top:18px;color:var(--jq-blue)!important;
  font-size:13px;font-weight:700;text-decoration:none!important}
#jq-global-footer .jqf-contact-more:hover{color:var(--jq-blue-dark)!important}


/* ================== 2026-07-31 三处收尾 ==================

   ① 页脚链接 hover 不变色 —— 又是特异性问题（跟导航按钮那次同源）：
      基础样式 `.jqf-list a:hover{color:蓝!important}` 特异性 (0,1,0)，
      而后加的中文适配 `#jq-global-footer .jqf-list a{color:#505a68!important}` 带 ID，
      特异性 (1,1,0) 更高 —— hover 永远被压住。`.jqf-legal a:hover` 同理。
      ⚠️ 规律：**只要给某个元素加了 ID 作用域的常态色，就必须同时补一条 ID 作用域的 :hover**，
      否则原来的 hover 全部失效。 */
#jq-global-footer .jqf-list a:hover{color:var(--jq-blue)!important}


/* ② 去掉页脚底部那条空白带。
   我们的页脚是通过 astra_footer_before 插在 Astra 自己的 <footer id="colophon"> 之前的，
   Astra 那个 footer 里的 .ast-footer-copyright 早就 display:none 了，
   但外层 .site-below-footer-wrap 还在占高度 → 页面最底下多出一条空白。
   ⚠️ 只能隐藏这个 wrap，**不能隐藏整个 #colophon** —— 返回顶部按钮 #ast-scroll-top
   是 #colophon 的子元素，藏掉外层按钮会一起消失。 */
#colophon .site-below-footer-wrap{display:none!important}

/* ③ 返回顶部按钮上移。Astra 默认 .ast-scroll-to-top-right{right:30px;bottom:30px}，
   贴着屏幕最底下。顺手把圆角对齐全站按钮的 4px（Astra 默认 2px）。 */
.ast-scroll-to-top-right{bottom:88px!important;right:30px!important}
#ast-scroll-top{border-radius:4px!important}
@media(max-width:767px){ .ast-scroll-to-top-right{bottom:72px!important;right:18px!important} }


/* ================== 页脚链接 hover 下划线（2026-07-31，站长指定） ==================
   常态不加、只在 hover 出现 —— 页脚链接密集（产品栏 8 条），常态全带线会很乱。

   ⚠️ 中文必须调 offset，不能直接写 underline：
   汉字笔画常压到基线（「屏」「轨」「转」的竖钩），默认下划线位置会**和笔画粘连**糊成一团。
   西文有下降部留出空间，中文没有。实测 offset:4px 才干净。
   thickness 也要写死 1px —— 默认会随字重变粗，13px 小字下太重。

   ⚠️ 特异性：基础规则是 `.jqf-list a{text-decoration:none!important}`，
   联系栏那几条更是 ID 作用域的 !important。所以下面每条都必须**至少同级 + !important**，
   否则 hover 下划线不会出现（跟之前 hover 不变色是同一类坑）。

   与测试服的有意不一致：测试服 hover 只变色不加线。这里加是为了无障碍
   —— #505a68 → #1b69f5 是灰蓝到亮蓝，对红绿色盲区分度弱，下划线是不依赖颜色的形状信号。
   **别当 bug 改回去。**

   范围：三个链接栏（含「查看全部产品/方案 →」）、联系与支持的电话与邮箱、「在线留言 →」。
   不加：底部备案号、「公司地址」（不是链接）、各种小标签、支持条的「联系工程师 →」。 */
#jq-global-footer .jqf-list a:hover,
#jq-global-footer .jqf-contactcol .jqf-contact a:hover,
#jq-global-footer .jqf-contact-more:hover{
  text-decoration:underline!important;
  text-underline-offset:4px;
  text-decoration-thickness:1px;
}
/* 明确排除下划线的两类：
   ① 支持条「联系工程师 →」—— 那是带边框的按钮
   ② 底部备案号 —— 站长 2026-07-31 指定不加（备案号是法定标识，不是导航链接，
      加下划线反而像可点的正文链接）。hover 变色保留。 */
#jq-global-footer .jqf-support-link:hover{text-decoration:none!important}
/* 备案号：站长 2026-07-31 指定 hover **完全无变化**（不变色也不加线）。
   基础样式里还有一条 staging 继承来的 .jqf-legal a:hover{color:#4d5967!important}，
   必须用 ID 作用域 + !important 压住它，否则鼠标划过还是会变色。
   #6d7581 = 常态色（无障碍那节定的 4.65:1），改常态色时这里要同步。 */
#jq-global-footer .jqf-legal a:hover{color:#6d7581!important;text-decoration:none!important}


/* ================== 页脚底部版权条压薄（2026-08-01） ==================
   站长反馈最底下那条太高。实测原因是**三处内边距叠加**，而且上下不对称：
     .jqf-legal{padding:22px 0}      → 上 22 / 下 22
     .jqf-main{padding:68px 0 24px}  → 再叠 下 24
     行高留白                        → 约 5
   结果文字上方约 27px、下方约 51px，整条约 88px，视觉上又高又往下坠。

   改成上下对称、总高约 52px：legal 上下各 16，.jqf-main 底部内边距归零。
   ⚠️ 要改高度就改这两个值，别再往里加第三处 padding。 */
#jq-global-footer .jqf-legal{padding:16px 0}
#jq-global-footer .jqf-main{padding-bottom:0}
@media(max-width:767px){
  #jq-global-footer .jqf-legal{padding:16px 0}
  #jq-global-footer .jqf-main{padding-bottom:0}
}


/* ================== /news/ 列表页标题与空状态（2026-08-01） ==================
   该页原来 H1 数量为 0（全站唯一），见 mu-plugins/joeqing-page-title.php 的说明。
   字号沿用正文 H1 的节奏，不另起一套。 */
.jq-archive-head{margin:0 0 28px}
.jq-archive-title{margin:0;color:var(--jq-ink,#161616);font-size:clamp(28px,3vw,38px);font-weight:800;letter-spacing:-.02em;line-height:1.15}
.jq-archive-empty{margin:0;color:var(--jq-muted,#7a8492);font-size:14px}
