/* 工厂介绍 /factory、/zh/factory 的样式。
   前半部分和工厂画布 factory.css 逐字相同，只把 @media (max-width:700px) 换成 @container（正式站在 .v2-frame 尺寸容器里渲染，同 site.css）。
   画布之外的补丁只加在文件末尾的"v2 正式站补充"区，每条写明原因。 */
/* 工厂介绍页专用样式；配色、字体沿用 site.css 的变量 */
.fx-ph{position:relative;background:var(--stage);background-image:repeating-linear-gradient(135deg,rgba(17,17,17,.035) 0 10px,transparent 10px 20px);border:1px solid var(--line);border-radius:10px;overflow:hidden;display:flex;align-items:flex-end}
.fx-ph .cap{position:absolute;left:10px;right:10px;bottom:10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;line-height:1.4}
.fx-ph .cap b{background:#fff;border:1px solid var(--line2);border-radius:6px;padding:3px 8px;font-weight:600}
.fx-ph .cap code{font:500 11px/1.4 "JetBrains Mono",monospace;background:rgba(255,255,255,.85);border-radius:4px;padding:2px 6px;color:var(--muted)}
.fx-ph .cam{position:absolute;left:50%;top:50%;transform:translate(-50%,-62%);width:34px;height:34px;color:#B9B2AB}
.fx-ph > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.fx-cert .fx-ph > img{object-fit:contain;background:#fff}
.fx-ph.miss{background-image:none;border-style:dashed}
.fx-later{display:inline-block;font-size:11px;font-weight:500;border:1px dashed var(--act);color:var(--act);border-radius:4px;padding:1px 7px;margin-left:8px;vertical-align:middle;white-space:nowrap;font-family:"Noto Sans SC",sans-serif;letter-spacing:0;text-transform:none}
.fx-video{position:relative;aspect-ratio:16/7;border-radius:12px;background:#111;color:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;overflow:hidden}
.fx-video .play{width:68px;height:68px;border-radius:50%;border:1.5px solid #fff;display:flex;align-items:center;justify-content:center}
.fx-video p{font-size:13.5px;color:#B9B2AB}
.fx-video .chap{position:absolute;left:0;right:0;bottom:0;display:flex;gap:0;border-top:1px solid #333}
.fx-video .chap span{flex:1;padding:10px 14px;font-size:12px;color:#B9B2AB;border-right:1px solid #333}
.fx-video .chap span:last-child{border-right:0}
.fx-team{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.fx-team .face{aspect-ratio:4/5;border-radius:12px}
.fx-team h4{font-size:16px;font-weight:600;margin-top:12px}
.fx-team p{font-size:13px;color:var(--muted);line-height:1.7;margin-top:4px}
.fx-cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.fx-case{border:1px dashed var(--line2);border-radius:12px;overflow:hidden;background:#fff}
.fx-case .fx-ph{aspect-ratio:16/10;border:0;border-radius:0}
.fx-case > div:last-child{padding:16px 18px}
.fx-case h4{font-size:15px;font-weight:600}
.fx-case dl{display:grid;grid-template-columns:72px 1fr;gap:4px 10px;margin-top:10px;font-size:12.5px;color:var(--muted)}
.fx-flags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.fx-flags span{border:1px dashed var(--line2);border-radius:999px;padding:5px 12px;font-size:13px;color:var(--muted);background:#fff}
.fx-pack{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:22px 24px;background:var(--warm)}
.fx-pack .doc{width:64px;height:80px;border:1.5px solid var(--ink);border-radius:6px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:10px;font:600 12px/1 "JetBrains Mono",monospace;background:#fff}
.fx-pack h4{font-size:17px;font-weight:600}
.fx-pack ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:8px;font-size:13px;color:var(--muted)}
.fx-pack .btn{width:auto}
.fx-deliver{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.fx-deliver > div{padding:18px 18px;border-right:1px solid var(--line)}
.fx-deliver > div:last-child{border-right:0}
.fx-deliver i{font:600 12px/1 "JetBrains Mono",monospace;font-style:normal;color:var(--act)}
.fx-deliver h4{font-size:15px;font-weight:600;margin-top:8px}
.fx-deliver ul{list-style:none;margin-top:8px;font-size:13px;line-height:1.8;color:var(--ink)}
.fx-deliver ul li::before{content:"→ ";color:var(--muted)}
.fx-deliver .fx-ph{aspect-ratio:4/3;margin-top:12px;border-style:dashed}
.fx-risk{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.fx-risk > div{border-top:1.5px solid var(--ink);padding-top:14px}
.fx-risk b{font:700 20px/1.2 "Archivo","Noto Sans SC",sans-serif;display:block}
.fx-risk p{font-size:13px;color:var(--muted);line-height:1.75;margin-top:8px}
.fx-ph.miss .cap b{border-style:dashed;color:var(--muted)}

.fx-lead{font-size:15px;line-height:1.85;color:var(--ink);max-width:760px;margin-top:10px}
.fx-lead em{font-style:normal;font-weight:600}
.fx-acts{display:flex;gap:10px;flex-wrap:wrap}
.fx-acts .btn{width:auto}

.fx-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.fx-facts > div{padding:18px 20px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.fx-facts > div:nth-child(4n){border-right:0}
.fx-facts > div:nth-last-child(-n+4){border-bottom:0}
.fx-facts b{font:700 26px/1.1 "Archivo","Noto Sans SC",sans-serif;font-stretch:110%;display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.fx-facts span{display:block;margin-top:6px;font-size:12.5px;line-height:1.6;color:var(--muted)}
.fx-facts small{display:block;margin-top:6px;font:500 10.5px/1 "JetBrains Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--act)}

.fx-mosaic{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:220px 220px;gap:10px}
.fx-mosaic .big{grid-row:1 / 3}
.fx-mosaic .wide{grid-column:2 / 4}

.fx-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.fx-step .fx-ph{aspect-ratio:3/2}
.fx-step .hd{display:flex;align-items:baseline;gap:10px;margin-top:12px}
.fx-step .hd i{font:600 13px/1 "JetBrains Mono",monospace;font-style:normal;color:var(--act)}
.fx-step h3{font-size:16px;font-weight:600}
.fx-step p{font-size:13px;line-height:1.75;color:var(--muted);margin-top:6px}
.fx-step .spec{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.fx-step .spec span{font-size:12px;border:1px solid var(--line2);border-radius:999px;padding:3px 10px;background:#fff}
.fx-step .spec span.old{border-style:dashed;color:var(--muted)}

.fx-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:16px}
.fx-legend span{display:inline-flex;align-items:center;gap:6px}
.fx-legend i{display:inline-block;width:22px;height:14px;border:1px solid var(--line2);border-radius:999px;background:#fff}
.fx-legend i.old{border-style:dashed}

.fx-qa{display:grid;grid-template-columns:7fr 5fr;gap:40px;align-items:start}
.fx-certs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.fx-cert .fx-ph{aspect-ratio:424/600}
.fx-cert h4{font-size:14.5px;font-weight:600;margin-top:10px}
.fx-cert p{font-size:12.5px;line-height:1.7;color:var(--muted);margin-top:4px}
.fx-cert code{font:500 11px/1.4 "JetBrains Mono",monospace;color:var(--ink)}
.fx-qlist{list-style:none;border-top:1.5px solid var(--ink)}
.fx-qlist li{display:grid;grid-template-columns:112px 1fr;gap:14px;padding:13px 0;border-bottom:1px solid var(--line);font-size:13.5px;line-height:1.7}
.fx-qlist li b{font-weight:600}
.fx-qlist li span{color:var(--muted)}
.fx-note{font-size:12.5px;line-height:1.7;color:var(--muted);margin-top:14px;padding:12px 14px;background:var(--warm);border-radius:8px}

.fx-work{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1.5px solid var(--ink)}
.fx-work > div{padding:18px 18px 18px 0}
.fx-work h4{font-size:16px;font-weight:600}
.fx-work p{font-size:13px;line-height:1.7;color:var(--muted);margin-top:6px}

.fx-rings{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:10px}
.fx-rings a{display:block;background:var(--stage);border-radius:8px;overflow:hidden;aspect-ratio:1/1}
.fx-rings img{width:100%;height:100%;object-fit:cover;display:block}

.fx-tips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.fx-tips > div{border:1px solid var(--line);border-radius:12px;padding:20px;background:#fff}
.fx-tips b{font:700 22px/1.15 "Archivo","Noto Sans SC",sans-serif;display:block}
.fx-tips h4{font-size:15px;font-weight:600;margin-top:10px}
.fx-tips p{font-size:13px;line-height:1.75;color:var(--muted);margin-top:6px}

.fx-faq{display:grid;grid-template-columns:4fr 8fr;gap:48px}
.fx-faq h2{font-size:32px;font-weight:600;line-height:1.2;margin-top:10px}
.fx-faq .side p{font-size:14px;color:var(--muted);line-height:1.7;margin-top:10px}

.fx-visit{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.fx-visit > div{padding:22px 24px}
.fx-visit > div + div{border-left:1px solid var(--line)}
.fx-visit h4{font-size:16px;font-weight:600}
.fx-visit dl{display:grid;grid-template-columns:96px 1fr;gap:8px 12px;margin-top:12px;font-size:13.5px;line-height:1.6}
.fx-visit dt{color:var(--muted)}
.fx-visit p{font-size:13px;line-height:1.75;color:var(--muted);margin-top:8px}

.fx-tbl-wrap{border:1px solid var(--line);border-radius:12px;overflow:auto;background:#fff}
.fx-tbl{width:100%;border-collapse:collapse;font-size:13px;line-height:1.6}
.fx-tbl th{text-align:left;font-weight:600;font-size:12px;color:var(--muted);background:var(--stage);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.fx-tbl td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.fx-tbl tr:last-child td{border-bottom:0}
.fx-tbl code{font:500 11.5px/1.5 "JetBrains Mono",monospace;color:var(--muted);word-break:break-all}
.fx-v{display:inline-block;font-size:11.5px;font-weight:600;border-radius:999px;padding:2px 9px;white-space:nowrap}
.fx-v.y{background:#E6F4EA;color:#1E6B34}
.fx-v.p{background:#FFF1D6;color:#8A5300}
.fx-v.n{background:#F1EEEB;color:#5F5852}
.fx-check{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 32px;border-top:1.5px solid var(--ink)}
.fx-check li{display:grid;grid-template-columns:22px 1fr;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13.5px;line-height:1.65}
.fx-check li i{width:16px;height:16px;border:1.5px solid var(--ink);border-radius:4px;margin-top:3px}
.fx-check li b{font-weight:600}
.fx-check li span{color:var(--muted);display:block}
.fx-dec{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fx-dec > div{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:#fff}
.fx-dec b{font-size:14.5px;font-weight:600;display:block}
.fx-dec p{font-size:13px;color:var(--muted);line-height:1.7;margin-top:6px}
.fx-dec em{font-style:normal;color:var(--act);font-weight:600}
.fx-sum{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.fx-sum > div{padding:16px 18px;border-right:1px solid var(--line)}
.fx-sum > div:last-child{border-right:0}
.fx-sum b{font:700 24px/1.1 "Archivo","Noto Sans SC",sans-serif;display:block}
.fx-sum span{font-size:12.5px;color:var(--muted);line-height:1.55;display:block;margin-top:6px}

@container (max-width:700px){
  .fx-check,.fx-dec{grid-template-columns:1fr}
  .fx-sum{grid-template-columns:1fr 1fr}
  .fx-facts{grid-template-columns:1fr 1fr}
  .fx-facts > div:nth-child(4n){border-right:1px solid var(--line)}
  .fx-facts > div:nth-child(2n){border-right:0}
  .fx-facts > div:nth-last-child(-n+4){border-bottom:1px solid var(--line)}
  .fx-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:200px 140px 140px}
  .fx-mosaic .big{grid-row:auto;grid-column:1 / 3}
  .fx-mosaic .wide{grid-column:1 / 3}
  .fx-steps,.fx-certs,.fx-tips{grid-template-columns:1fr}
  .fx-qa,.fx-faq,.fx-visit{grid-template-columns:1fr}
  .fx-visit > div + div{border-left:0;border-top:1px solid var(--line)}
  .fx-work{grid-template-columns:1fr 1fr}
  .fx-rings{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fx-team,.fx-cases,.fx-risk{grid-template-columns:1fr}
  .fx-deliver{grid-template-columns:1fr}
  .fx-deliver > div{border-right:0;border-bottom:1px solid var(--line)}
  .fx-pack{grid-template-columns:1fr}
  .fx-video{aspect-ratio:4/3}
  .fx-video .chap{display:none}
}

/* 每一步你能拿到什么：等高卡片 + 底部对齐的示意图 */
.fx-dl{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;align-items:stretch}
.fx-dl > div{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;background:#fff;padding:18px 16px 16px}
.fx-dl .tx{height:96px}
.fx-dl i{font:600 12px/1 "JetBrains Mono",monospace;font-style:normal;color:var(--act)}
.fx-dl h4{font-size:15px;font-weight:600;margin-top:8px}
.fx-dl ul{list-style:none;margin-top:8px;font-size:12.5px;line-height:1.7;color:var(--muted)}
.fx-dl ul li::before{content:"→ "}
.fx-mk{margin-top:auto;height:236px;border-radius:8px;background:var(--stage);position:relative;overflow:hidden;font-family:"Noto Sans SC",sans-serif;color:var(--ink)}
/* 01 报价单 */
.mk-quote{position:absolute;left:12px;right:12px;top:12px;bottom:0;background:#fff;border-radius:4px 4px 0 0;box-shadow:0 1px 0 var(--line),0 6px 18px rgba(17,17,17,.08);padding:12px 12px 0;font-size:10px;line-height:1.5}
.mk-quote .hd{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1.5px solid var(--ink);padding-bottom:6px}
.mk-quote .hd b{font:700 11px/1 "Archivo",sans-serif;letter-spacing:.02em}
.mk-quote .hd span{font:500 8.5px/1 "JetBrains Mono",monospace;color:var(--muted)}
.mk-quote .row{display:flex;justify-content:space-between;gap:6px;padding:4px 0;border-bottom:1px dashed var(--line)}
.mk-quote .row span{color:var(--muted)}
.mk-quote .row em{font-style:normal;font-weight:600}
.mk-quote .tot{display:flex;justify-content:space-between;padding:6px 0 0;font-weight:700}
.mk-quote .tot em{font-style:normal;color:var(--act)}
/* 02 3D 线稿 */
.mk-cad{position:absolute;inset:0;background-color:#F4F6F8;background-image:linear-gradient(rgba(42,107,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(42,107,255,.08) 1px,transparent 1px);background-size:12px 12px}
.mk-cad svg{position:absolute;inset:0;width:100%;height:100%}
/* 03 样品照片 */
.mk-photos{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:3px;background:#fff}
.mk-photos img{width:100%;height:100%;object-fit:cover;display:block;background:var(--stage)}
.mk-photos .vid{position:relative}
.mk-photos .vid::after{content:"";position:absolute;inset:0;background:rgba(17,17,17,.28)}
.mk-photos .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;width:34px;height:34px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center}
.mk-photos .dur{position:absolute;right:5px;bottom:5px;z-index:1;font:500 9px/1 "JetBrains Mono",monospace;color:#fff;background:rgba(17,17,17,.7);padding:2px 4px;border-radius:3px}
/* 04 生产进度 */
.mk-prog{position:absolute;inset:0;display:flex;flex-direction:column}
.mk-prog .shot{height:88px;position:relative;flex:none}
.mk-prog .shot img{width:100%;height:100%;object-fit:cover;display:block}
.mk-prog .shot span{position:absolute;left:6px;bottom:6px;font:500 9px/1 "JetBrains Mono",monospace;color:#fff;background:rgba(17,17,17,.7);padding:3px 5px;border-radius:3px}
.mk-prog ol{list-style:none;padding:10px 12px 0;margin:0;flex:1;display:flex;flex-direction:column;justify-content:space-around}
.mk-prog li{display:grid;grid-template-columns:16px 1fr auto;gap:8px;align-items:center;font-size:11px;position:relative}
.mk-prog li i{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--line2);background:#fff;display:flex;align-items:center;justify-content:center;font:700 9px/1 sans-serif;font-style:normal;color:#fff}
.mk-prog li.ok i{background:var(--ink);border-color:var(--ink)}
.mk-prog li.now i{border-color:var(--act);box-shadow:0 0 0 3px rgba(196,22,74,.15)}
.mk-prog li.now{font-weight:600;color:var(--act)}
.mk-prog li em{font:500 9.5px/1 "JetBrains Mono",monospace;font-style:normal;color:var(--muted)}
.mk-prog li.todo{color:var(--muted)}
/* 05 质检单 */
.mk-qc{position:absolute;left:10px;right:10px;top:10px;bottom:10px;background:#fff;border-radius:4px;box-shadow:0 6px 18px rgba(17,17,17,.08);padding:10px 10px 8px;font-size:9.5px;line-height:1.4;display:flex;flex-direction:column}
.mk-qc .hd{display:grid;grid-template-columns:1fr 46px;gap:8px;align-items:start}
.mk-qc .hd b{font:700 10.5px/1.2 "Archivo","Noto Sans SC",sans-serif;display:block}
.mk-qc .hd small{display:block;font:500 8.5px/1.4 "JetBrains Mono",monospace;color:var(--muted);margin-top:2px}
.mk-qc .hd img{width:46px;height:46px;object-fit:cover;border-radius:3px;display:block}
.mk-qc table{width:100%;border-collapse:collapse;margin-top:6px}
.mk-qc th{text-align:left;font-weight:500;color:var(--muted);border-bottom:1px solid var(--ink);padding:2px 0}
.mk-qc td{padding:3px 0;border-bottom:1px dashed var(--line)}
.mk-qc th:not(:first-child),.mk-qc td:not(:first-child){text-align:right}
.mk-qc .ok{color:#1E6B34;font-weight:600}
.mk-qc .rate{display:flex;justify-content:space-between;align-items:baseline;margin-top:6px;font-weight:700}
.mk-qc .rate em{font:700 14px/1 "Archivo",sans-serif;font-style:normal;color:#1E6B34}
.mk-qc .sign{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;gap:10px;color:var(--muted);font-size:8.5px}
.mk-qc .sign span{border-top:1px solid var(--ink);padding-top:3px}

/* 和你对接的人：一个项目经理 */
.fx-pm{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.fx-pm .top{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:22px 24px;border-bottom:1px solid var(--line);background:var(--warm)}
.fx-pm .top h3{font-size:20px;font-weight:600}
.fx-pm .top p{font-size:13.5px;color:var(--muted);margin-top:4px;line-height:1.7}
.fx-pm .top .btn{width:auto}
.fx-pm .pts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.fx-pm .pts > div{padding:20px 22px;border-right:1px solid var(--line)}
.fx-pm .pts > div:last-child{border-right:0}
.fx-pm .pts b{font:600 12px/1 "JetBrains Mono",monospace;color:var(--act);display:block}
.fx-pm .pts h4{font-size:15px;font-weight:600;margin-top:10px}
.fx-pm .pts p{font-size:13px;color:var(--muted);line-height:1.7;margin-top:6px}

@container (max-width:700px){
  .fx-dl{grid-template-columns:1fr}
  .fx-dl .tx{height:auto;margin-bottom:12px}
  .fx-pm .top{grid-template-columns:1fr}
  .fx-pm .pts{grid-template-columns:1fr 1fr}
  .fx-pm .pts > div:nth-child(2n){border-right:0}
  .fx-pm .pts > div:nth-child(-n+2){border-bottom:1px solid var(--line)}
}

/* 不换行：徽章、按钮、日期、报告号 */
.fx-v,.fx-later,.btn,.fx-nw,.fx-cert code,.fx-facts small,.fx-lead em{white-space:nowrap}
.fx-tbl td:first-child{white-space:nowrap;min-width:9em}
.fx-dom{display:inline-block;font-size:11.5px;font-weight:600;color:#fff;background:#D32F2F;border-radius:4px;padding:1px 8px;margin-left:6px;white-space:nowrap;vertical-align:1px}
.fx-dom-note{margin-top:10px;font-size:13px;font-weight:600;color:#D32F2F}

@container (max-width:700px){
  .pagehead h1{overflow-wrap:anywhere}
  .two-col{grid-template-columns:1fr!important}
  .fx-sum,.fx-facts{grid-template-columns:1fr}
  .fx-sum > div{border-right:0;border-bottom:1px solid var(--line)}
  .fx-sum > div:last-child{border-bottom:0}
  .fx-facts > div,.fx-facts > div:nth-child(4n){border-right:0}
  .fx-facts > div:nth-last-child(-n+4){border-bottom:1px solid var(--line)}
  .fx-facts > div:last-child{border-bottom:0}
  .fx-work{grid-template-columns:1fr}
  .fx-qlist li{grid-template-columns:1fr;gap:2px}
  .fx-pm .top h3{font-size:18px}
  .fx-pm .pts{grid-template-columns:1fr}
  .fx-pm .pts > div,.fx-pm .pts > div:nth-child(2n){border-right:0;border-bottom:1px solid var(--line)}
  .fx-pm .pts > div:last-child{border-bottom:0}
  /* 表格在手机上改成卡片：每行一张，首列作标题，其余列带标签 */
  .fx-tbl-wrap{border:0;border-radius:0;background:transparent;overflow:visible}
  .fx-tbl,.fx-tbl tbody,.fx-tbl tr,.fx-tbl td{display:block;width:auto}
  .fx-tbl thead{display:none}
  .fx-tbl tr{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px 14px 6px;margin-bottom:10px}
  .fx-tbl td{position:relative;padding:6px 0 6px 84px;border-bottom:1px dashed var(--line)}
  .fx-tbl td::before{content:attr(data-l);position:absolute;left:0;top:6px;width:76px;font-size:12px;color:var(--muted)}
  .fx-tbl tr td:last-child{border-bottom:0}
  .fx-tbl tr:last-child td{border-bottom:1px dashed var(--line)}
  .fx-tbl tr:last-child td:last-child{border-bottom:0}
  .fx-tbl td:first-child{padding:0 0 8px;font-size:15px;font-weight:600;border-bottom:1px solid var(--line);white-space:normal;min-width:0}
  .fx-tbl td:first-child::before{content:none}
}


/* ================= v2 正式站补充 ================= */
/* 偏差 #1 平板宽度（701–1180）：画布只有 1280 和 375 两种宽度。"每一步你能拿到什么"5 列在 900 宽时每张只剩约 160px，
   报价单、质检单的示意图挤成一字一行，文字压到示意图上。改成 3 列、文字区不定高；其他多列区块在 1000 以下减列。 */
@container (min-width:701px) and (max-width:1180px){
  .fx-dl{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fx-dl .tx{height:auto;margin-bottom:12px}
}
@container (min-width:701px) and (max-width:1000px){
  .fx-qa{grid-template-columns:1fr;gap:28px}
  .fx-work{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fx-work > div{padding-bottom:6px}
  .fx-risk{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:22px}
  .fx-pm .pts{grid-template-columns:1fr 1fr}
  .fx-pm .pts > div:nth-child(2n){border-right:0}
  .fx-pm .pts > div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .fx-rings{grid-template-columns:repeat(6,minmax(0,1fr))}
  .fx-rings a:nth-child(n+7){display:none}
  .fx-faq{grid-template-columns:1fr;gap:20px}
}
/* 偏差 #2 资料没到、链接还没有的按钮（"在地图上查看""下载资料包"，只在 showPending 时出现）：显示成不可点 */
.fx-acts .btn[aria-disabled="true"],.fx-pack .btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
/* 偏差 #3 资料没到时不显示产能格（showPending=false），数字条剩 7 格：第 4 格下面补回分隔线 */
.fx-facts.n7 > div:nth-child(4){border-bottom:1px solid var(--line)}
/* 偏差 #4 FAQ 侧栏里"定制做货"改成链接 */
.fx-faq .side p a{color:var(--act)}
/* 偏差 #5 案例补齐后的出口国家标签：实线（虚线只用于占位） */
.fx-flags.ok span{border-style:solid;color:var(--ink)}
/* 偏差 #6 看厂视频有链接时整块可点 */
a.fx-video{text-decoration:none}
/* 偏差 #7 还没有检测报告图时（接口 reports 为空），质检清单占满整行 */
.fx-qa.solo{grid-template-columns:1fr}
/* 偏差 #8 收尾区的邮件按钮：邮箱很长时（超长数据）按钮不换行会把手机页面撑宽，允许在邮箱处折行 */
.ctaband .contact a[href^="mailto:"]{white-space:normal;overflow-wrap:anywhere;text-align:center;max-width:100%}

/* 细节巡检（10-22）：报价卡左栏标签不拆成"新款打/样"，右栏和合格率一行不留孤字 */
.mk-quote .row span{flex:none;white-space:nowrap}
.mk-quote .row em{text-align:right;text-wrap:pretty}
.mk-qc .rate span{text-wrap:pretty;min-width:0}
.mk-qc .rate em{flex:none}


/* 首段"100 pcs per design per colour…"不换行时手机上整页横向多出 68px（客户视角走查 2026-10-24） */
@media (max-width:700px){.fx-lead em{white-space:normal}}
