/* ============================================================
   V23 主题样式（由设计稿 mockups/v23*.html + mk_inner.py 提取）
   用途：主站前台改用 V23 版式时统一加载本文件
   ============================================================ */
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:#0F1B2A;background:#fff;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
.wrap{width:1220px;margin:0 auto}
.topbar{background:#08203A;color:rgba(255,255,255,.78);font-size:13px;line-height:40px}
.topbar .wrap{display:flex;align-items:center}
.topbar .l b{color:#5FB2FF;font-weight:400}
.topbar .r{margin-left:auto;display:flex;gap:26px}
.topbar .r i{font-style:normal;color:#5FB2FF;margin-right:6px}
.hd{background:#fff;box-shadow:0 2px 18px rgba(15,27,42,.09);position:sticky;top:0;z-index:60}
.hd .wrap{display:flex;align-items:center;height:92px}
/* LOGO：定住尺寸，不再被 flex 挤压（挤压会让导航"看起来"变窄但它自己的盒子仍然被压缩，
   最终溢出到搜索框上）。62px 高按要求不变；312px 上限 = 加大到 62px 后头部实际一直显示的宽度。
   注：logo.png 为 550×92，等比到 62px 高应为 370.7px，旧版起就被 flex 压成 312px（见报告"未做项"）。 */
.hd .logo{flex:0 0 auto}
.hd .logo img{height:50px;width:auto;max-width:290px}
.nav{margin-left:18px;display:flex;align-items:center;gap:0;flex:0 1 auto;min-width:0}
/* 顶部导航项水平内边距 9px→6px：LOGO 加大到 62px 后（宽 312px）导航整体挤到搜索框上，
   7 项文字宽合计 420.5px，留出 ≥12px 间隙（实测 1440/1280 由 -98.5px 重叠改为 +19~21px 间隙）*/
.nav span,.nav a{padding:10px 6px;font-size:14.5px;white-space:nowrap;color:#27384E;border-radius:8px;cursor:pointer;transition:.2s}
.nav span:hover,.nav a:hover{color:#0B68B6;background:#F1F7FD}
.nav span.on,.nav a.on{color:#0B68B6;font-weight:700;position:relative}
.nav span.on:after,.nav a.on:after{content:"";position:absolute;left:10px;right:10px;bottom:5px;height:3px;background:#0B68B6;border-radius:2px}
.hd .tools{margin-left:auto;display:flex;align-items:center;gap:14px;flex:0 0 auto;white-space:nowrap}
.sbox{display:flex;align-items:center;border:1px solid #DCE7F2;border-radius:26px;overflow:hidden;background:#F8FBFE}
.sbox input{border:0;outline:0;background:transparent;padding:8px 12px;width:104px;font-size:12.5px}
.sbox button{border:0;background:#0B68B6;color:#fff;padding:8px 14px;font-size:12.5px;cursor:pointer;white-space:nowrap}
.telblk{display:flex;align-items:baseline;gap:6px;white-space:nowrap}
.telblk small{font-size:12px;color:#8FA0B5}
.telblk b{font-size:19px;color:#0B68B6;letter-spacing:.3px;font-family:Arial,"Microsoft YaHei";white-space:nowrap}
.hero .tag{display:inline-block;border:1px solid rgba(255,255,255,.4);border-radius:30px;padding:7px 20px;font-size:13px;letter-spacing:3px;margin-bottom:20px}
.hero h1{font-size:54px;letter-spacing:3px;line-height:1.26}
.hero p{font-size:16.5px;line-height:2;color:rgba(255,255,255,.84);max-width:660px;margin:20px 0 30px}
.hero .btns{display:flex;gap:16px}
.btn{display:inline-block;padding:13px 30px;border-radius:8px;font-size:15px;font-weight:600}
.btn.p{background:linear-gradient(135deg,#0B68B6,#2E9BFF);color:#fff;box-shadow:0 10px 26px rgba(11,104,182,.32)}
.btn.g{border:1px solid rgba(255,255,255,.62);color:#fff}
.trust{display:flex;gap:34px;margin-top:44px;padding-top:26px;border-top:1px solid rgba(255,255,255,.16);font-size:14px;color:rgba(255,255,255,.8)}
.trust span:before{content:"✓";color:#5FB2FF;margin-right:8px}
section{padding:92px 0}
.bgN{background:#F4F7FA}
.st{margin-bottom:26px}
.st .bar{width:54px;height:4px;background:#0B68B6;border-radius:2px;margin-bottom:16px}
.st h2{font-size:34px}
.st h2 small{font-size:13.5px;color:#93A5BA;font-weight:400;letter-spacing:2.5px;margin-left:12px;text-transform:uppercase}
.st p{margin-top:12px;color:#6B7A8D;font-size:15px}
.st.center{text-align:center}.st.center .bar{margin:0 auto 16px}
/* 分类大图 */
.cats{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.cat{position:relative;display:block;border-radius:16px;overflow:hidden;height:340px;box-shadow:0 12px 30px rgba(15,27,42,.18);transition:.3s;background:#0A2440}
.cat:hover{transform:translateY(-8px);box-shadow:0 24px 48px rgba(11,104,182,.34)}
.cat img{width:100%;height:100%;object-fit:contain;padding:26px 18px 76px;transform:scale(1.02);transition:.4s}
.cat:hover img{transform:scale(1.08)}
.cat .ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,32,58,.34) 0%,rgba(6,32,58,.62) 46%,rgba(4,22,42,.96) 100%)}
.cat .tx{position:absolute;left:0;right:0;bottom:0;padding:0 22px 26px;color:#fff}
.cat .tx h3{font-size:21px}
.cat .en{font-size:11px;letter-spacing:1.6px;color:rgba(255,255,255,.6);margin:7px 0 14px}
.cat .go{font-size:12.5px;color:#8FC6FF}
/* 品牌墙 */
section.brands{background:#08203A}
section.brands .st h2{color:#fff}
section.brands .st h2 small{color:rgba(255,255,255,.45)}
section.brands .st p{color:rgba(255,255,255,.6)}
section.brands .st .bar{background:#4FA8F0}
.bls{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}
.bl{width:152px}
.bl{background:#fff;border-radius:12px;height:106px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;transition:.25s}
.bl:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(0,0,0,.28)}
.bl img{max-height:40px;max-width:150px;object-fit:contain}
.bl.txt b{font-size:15px;color:#22344A;letter-spacing:.5px}
.bl.txt span{font-size:11.5px;color:#93A5BA}
/* 企业介绍（不遮照片） */
.abimg{border-radius:18px;overflow:hidden;box-shadow:0 24px 56px rgba(15,27,42,.18)}
.abimg img{width:100%;height:auto;object-fit:contain}
.abtxt{display:grid;grid-template-columns:1fr 1fr;gap:38px;margin-top:34px}
.abtxt p{font-size:14.5px;line-height:2.05;color:#41506A}
.nums{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px;padding-top:26px;border-top:1px solid #E6EDF5}
.nums b{display:block;font-size:28px;color:#0B68B6;font-family:Arial,"Microsoft YaHei"}
.nums span{font-size:12.5px;color:#8FA0B5}
/* 新闻 */
.ngrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.news{background:#fff;border-radius:16px;padding:24px 26px;box-shadow:0 8px 26px rgba(15,27,42,.07);border:1px solid #EEF4FA}
.news .d{display:inline-block;font-size:12.5px;color:#fff;background:#0B68B6;border-radius:5px;padding:3px 10px;margin-bottom:14px}
.news h4{font-size:16.5px;line-height:1.65;min-height:54px}
.news .m{margin-top:12px;font-size:13px;color:#0B68B6;font-weight:600}
/* 联系方式 */
.ct{display:grid;grid-template-columns:1.05fr 1fr;gap:34px}
.ct .info li{list-style:none;display:flex;gap:16px;padding:16px 0;border-bottom:1px dashed #E2EBF4;font-size:15px;color:#28374C}
.ct .info li b{color:#8FA0B5;font-weight:400;min-width:74px}
.ct .info li strong{color:#0B68B6;font-size:18px}
.form{background:linear-gradient(160deg,#08203A,#0B4E8E);color:#fff;border-radius:16px;padding:30px;box-shadow:0 18px 42px rgba(8,32,58,.3)}
.form h3{font-size:20px;margin-bottom:6px}
.form .sm{font-size:13px;color:rgba(255,255,255,.7);margin-bottom:18px}
.form input,.form textarea{width:100%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;border-radius:9px;padding:13px 15px;font-size:14px;font-family:inherit;margin-bottom:12px;outline:0}
.form input::placeholder,.form textarea::placeholder{color:rgba(255,255,255,.5)}
.form textarea{height:100px;resize:none}
.form .sub{display:block;text-align:center;background:#fff;color:#0B68B6;font-weight:700;border-radius:9px;padding:14px;font-size:15px}
footer{background:#08203A;color:rgba(255,255,255,.72);padding:36px 0 30px;font-size:13.5px}
footer .wrap{display:flex;flex-direction:column;gap:14px;align-items:center;text-align:center}
footer .fl{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:center}
footer a{color:rgba(255,255,255,.82)}
footer .cp{font-size:12.5px;opacity:.6}

/* ==== 五大分类：大框错落布局 ==== */
.cats{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}
.cat{position:relative;display:block;border-radius:20px;overflow:hidden;background:#08203A;
     box-shadow:0 20px 46px rgba(10,32,58,.26);transition:.35s;isolation:isolate}
.cat.big{grid-column:span 7;height:470px}
.cat.mid{grid-column:span 5;height:470px}
.cat.sm{grid-column:span 4;height:380px}
.cat:hover{transform:translateY(-8px);box-shadow:0 30px 62px rgba(11,104,182,.38)}
.cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:.5s}
.cat:hover img{transform:scale(1.06)}
.cat .ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,24,46,.18) 0%,rgba(5,24,46,.42) 46%,rgba(4,18,36,.94) 100%)}
.cat .tx{position:absolute;left:0;right:0;bottom:0;padding:0 34px 32px;color:#fff}
.cat.sm .tx{padding:0 26px 26px}
.cat .num{font-size:13px;letter-spacing:3px;color:#7CC0FF;font-family:Arial;margin-bottom:10px;opacity:.9}
.cat h3{font-size:30px;letter-spacing:2px}
.cat.sm h3{font-size:24px}
.cat .en{font-size:11.5px;letter-spacing:2.4px;color:rgba(255,255,255,.55);margin:9px 0 16px}
.cat .go{display:inline-block;font-size:13px;color:#9ED0FF;border-bottom:1px solid rgba(158,208,255,.45);padding-bottom:3px}
.cat:after{content:"";position:absolute;left:0;top:0;width:4px;height:0;background:linear-gradient(180deg,#2E9BFF,#0B68B6);transition:.35s;z-index:2}
.cat:hover:after{height:100%}


.bwall{width:1220px;margin:0 auto}
.brow{display:flex;gap:16px;justify-content:center}
.brow.top{width:1384px;margin-left:-82px}
.brow.bot{width:1184px;margin:24px auto 0}
.bl{width:184px;height:104px;flex:0 0 auto;background:#fff;border-radius:12px;display:flex;
    align-items:center;justify-content:center;transition:.25s}
.bl:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(0,0,0,.3)}
.bl img{max-height:44px;max-width:150px;object-fit:contain}
.bls{}


/* ==== 首屏：左文案 + 右"主要设备"来回滚动展示 ==== */
.hero{height:auto;min-height:560px;padding:58px 0 54px;
      background:radial-gradient(1100px 520px at 78% 22%, rgba(46,155,255,.26), rgba(46,155,255,0) 65%),
                 linear-gradient(112deg,#031428 0%,#062B4F 46%,#0B4E8E 100%);color:#fff}
.hero .wrap{display:grid;grid-template-columns:1.02fr .98fr;gap:54px;align-items:center}
.hero .tag{display:inline-block;border:1px solid rgba(255,255,255,.4);border-radius:30px;padding:7px 20px;font-size:13px;letter-spacing:3px;margin-bottom:18px}
.hero h1{font-size:44px;letter-spacing:2px;line-height:1.3}
.hero p{font-size:16px;line-height:1.95;color:rgba(255,255,255,.84);margin:18px 0 26px}
.hero .btns{display:flex;gap:14px}
.hero .trust{display:flex;flex-wrap:wrap;gap:14px 26px;margin-top:32px;padding-top:22px;border-top:1px solid rgba(255,255,255,.16);font-size:13.5px;color:rgba(255,255,255,.82)}
.hero .trust span:before{content:"✓";color:#5FB2FF;margin-right:7px}



/* ================= 首页整页翻屏（仅 html.snap-home，即首页且未加 ?nosnap=1） ================= */
/* 一个主要区块 = 一屏：滚轮 / 键盘一次平滑走一屏（JS 见 lib/v23.js homeSnapScript），
   触屏竖向滑屏由原生 scroll-snap 处理。内页不带 snap-home，不受影响。 */
html.snap-home{scroll-snap-type:y mandatory!important;scroll-behavior:auto!important}
html.snap-home body{overflow-x:hidden}
html.snap-home #hero,
html.snap-home #sec-cat,
html.snap-home #sec-brand,
html.snap-home #sec-about,
html.snap-home #sec-news,
html.snap-home #sec-net,
html.snap-home #sec-contact{
  height:auto!important;min-height:100vh!important;display:flex!important;align-items:center!important;
  justify-content:center!important;padding:104px 0 36px!important;box-sizing:border-box;
  overflow:visible!important;scroll-snap-align:start;scroll-snap-stop:always}
html.snap-home #hero{min-height:calc(100vh - 132px)!important;scroll-margin-top:132px}   /* 顶栏 40 + 粘性页眉 92：首屏刚好占满第一屏，且页顶 0 是合法吸附点 */
html.snap-home #hero>.wrap,html.snap-home section>.wrap{width:1220px;margin:0 auto}
html.snap-home footer{scroll-snap-align:end}
html.snap-home.snap-run{scroll-snap-type:none!important}          /* 翻屏动画期间关掉原生 snap，避免和动画打架 */
/* 整屏化后为“一屏装得下”收窄的装饰尺寸（?nosnap=1 时完全恢复原样）*/
html.snap-home #sec-cat .cat.big,html.snap-home #sec-cat .cat.mid{height:340px}
html.snap-home #sec-cat .cat.sm{height:260px}
html.snap-home .abimg img{height:auto;max-height:none}
html.snap-home #sec-about .st{margin-bottom:20px}
html.snap-home #sec-about .abtxt{margin-top:22px}
html.snap-home #sec-about .nums{margin-top:22px}
/* 页眉占位：整屏内容垂直居中，不必额外留白 */
/* ---------- 分类：去掉文字，撑满一屏 ---------- */
.cats{grid-template-rows:auto auto}
.cat.big,.cat.mid{height:37vh;min-height:250px}
.cat.sm{height:27vh;min-height:190px}
.cat .tx,.cat .ov{display:none!important}
.cat:hover{border:2px solid #4FA8F0}
.cat .hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#fff;font-size:17px;
  letter-spacing:2px;background:rgba(6,32,58,.72);padding:10px 22px;border-radius:30px;opacity:0;transition:.3s;z-index:3}
.cat:hover .hint{opacity:1}
/* ---------- 品牌：放大，占满一屏 ---------- */
.bwall{width:1220px;margin:0 auto}
.brow{display:flex;gap:20px;justify-content:center}
.brow.top{width:1398px;margin-left:-89px}
.brow.bot{width:1196px;margin:30px auto 0}
.bl{width:186px;height:158px;flex:0 0 auto;background:#fff;border-radius:16px;display:flex;
    align-items:center;justify-content:center;transition:.28s;box-shadow:0 10px 26px rgba(0,0,0,.22)}
.bl:hover{transform:translateY(-6px);box-shadow:0 20px 42px rgba(0,0,0,.34)}
.bl img{max-height:68px;max-width:158px;object-fit:contain}
/* ---------- 企业新闻：放大 + 带图 ---------- */
.ngrid{gap:26px}
.news{padding:0;overflow:hidden;display:flex;flex-direction:column}
.news .nmimg{width:100%;height:28vh;min-height:170px;max-height:300px;object-fit:contain;background:#eef3f8}
.news .nb{padding:20px 24px 24px}
.news .d{margin-bottom:12px}
.news h4{font-size:17px;min-height:56px}


/* ============ 首屏：4 个大品牌设备 整屏展示 + 来回切换 ============ */
.dshow{position:relative;height:100vh;min-height:660px;background:
  radial-gradient(1200px 600px at 50% 18%, rgba(46,155,255,.22), rgba(46,155,255,0) 62%),
  linear-gradient(160deg,#031428 0%,#06243F 52%,#0A3F72 100%);
  display:flex;flex-direction:column;align-items:center;justify-content:space-between;
  padding:104px 0 34px;overflow:hidden}
.ds-head{text-align:center;color:#fff;width:1220px}
.ds-tag{display:inline-block;border:1px solid rgba(255,255,255,.36);border-radius:30px;padding:6px 18px;
  font-size:12.5px;letter-spacing:3px;margin-bottom:14px;color:rgba(255,255,255,.9)}
.ds-head h1,.ds-head h2{font-size:38px;letter-spacing:2px}
.ds-head p{margin-top:12px;font-size:14.5px;color:rgba(255,255,255,.72)}
.ds-stage{position:relative;width:1220px;flex:1 1 auto;margin:18px 0}
.dslide{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  opacity:0;transition:opacity .7s ease}
.dslide.on{opacity:1}
.ds-img{width:100%;height:calc(100% - 96px);display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 50% 55%, rgba(120,190,255,.16), rgba(120,190,255,0) 68%)}
.ds-img img{max-width:100%;max-height:100%;object-fit:contain;
  filter:drop-shadow(0 26px 54px rgba(0,0,0,.55))}
.ds-nm{margin-top:18px;font-size:26px;letter-spacing:1.5px;color:#fff;font-weight:700}
.ds-sp{margin-top:8px;font-size:14px;color:rgba(255,255,255,.66)}
.ds-foot{display:flex;flex-direction:column;align-items:center;gap:10px}
.ds-dots{display:flex;gap:9px}
.ds-dots i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.28);transition:.3s;cursor:pointer}
.ds-dots i.on{background:#5FB2FF;width:26px;border-radius:5px}
.ds-hint{font-size:12px;color:rgba(255,255,255,.45);letter-spacing:1px}


/* ===== 首屏：浅底 + 左抠图 + 右描述/按钮（四屏结构完全一致）===== */
.dshow{background:linear-gradient(180deg,#F4F7FA 0%,#FFFFFF 68%,#F4F7FA 100%)!important;
  display:flex;flex-direction:column;justify-content:center;padding:104px 0 28px!important}
.ds-head{text-align:center;width:1220px;margin:0 auto 2px}
.ds-head h1,.ds-head h2{font-size:34px;color:#0F1B2A;letter-spacing:1px}
.ds-head p{margin-top:10px;font-size:14px;color:#6B7A8D}
.ds-stage{position:relative;width:1220px;margin:0 auto;height:calc(100vh - 316px);min-height:360px}
.dslide{position:absolute;inset:0;display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center;
  opacity:0;transition:opacity .65s ease;visibility:hidden}
.dslide.on{opacity:1;visibility:visible}
.ds-left{height:100%;display:flex;align-items:center;justify-content:center}
.ds-left img{max-width:100%;max-height:100%;object-fit:contain;object-position:center center;filter:drop-shadow(0 18px 34px rgba(15,27,42,.18))}
.ds-right{padding-right:14px}
.ds-kicker{font-size:12.5px;letter-spacing:2px;color:#0B68B6;font-weight:700;margin-bottom:12px}
.ds-name{font-size:27px;line-height:1.4;color:#0F1B2A;height:76px;overflow:hidden;margin-bottom:12px}
.ds-desc{font-size:14.5px;line-height:1.9;color:#54657D;height:56px;overflow:hidden;margin-bottom:14px}
.ds-spec{display:inline-block;font-size:13px;color:#0B68B6;background:#EAF3FC;border-radius:20px;padding:6px 16px;margin-bottom:22px}
.ds-btn{display:inline-block;padding:12px 30px;border-radius:8px;font-size:15px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#0B68B6,#2E9BFF);box-shadow:0 10px 24px rgba(11,104,182,.28)}
.ds-dots{display:flex;gap:9px;justify-content:center;margin-top:16px}
.ds-dots i{width:9px;height:9px;border-radius:50%;background:#C8D6E4;transition:.3s;cursor:pointer}
.ds-dots i.on{background:#0B68B6;width:26px;border-radius:5px}


/* ===== 分类图上的分类名（始终可见）===== */
.cat{position:relative;overflow:hidden}
.cat .cat-ov{position:absolute;left:0;right:0;bottom:0;height:52%;z-index:2;
  background:linear-gradient(180deg,rgba(4,20,38,0) 0%,rgba(4,20,38,.55) 46%,rgba(4,20,38,.9) 100%)}
.cat .cat-nm{position:absolute;left:24px;bottom:20px;z-index:3;color:#fff;font-size:22px;letter-spacing:1.5px;
  font-weight:700;text-shadow:0 2px 10px rgba(0,0,0,.55);display:flex;flex-direction:column;gap:4px}
.cat .cat-nm small{font-size:10.5px;letter-spacing:2px;font-weight:400;color:rgba(255,255,255,.72)}
.cat.sm .cat-nm{font-size:19px;left:20px;bottom:16px}


/* ===== 联系方式：左右两栏等高、顶底对齐 ===== */
#sec-contact .ct{display:grid;grid-template-columns:1.05fr 1fr;gap:34px;align-items:stretch;
  width:1220px;margin:0 auto;height:min(62vh,540px);min-height:400px}
#sec-contact .ct .info,#sec-contact .ct .form{height:100%;box-sizing:border-box;margin:0}
#sec-contact .ct .info{display:flex;flex-direction:column;justify-content:space-between;padding:26px 30px}
#sec-contact .ct .info li{padding:0;border-bottom:0}
#sec-contact .ct .form{display:flex;flex-direction:column;justify-content:center}
#sec-contact .ct .form .sub{margin-top:auto}


/* ===== 首屏收紧：内容集中在中部，不上下拉长 ===== */
.dshow{justify-content:center!important;padding:96px 0 36px!important}
.ds-head h1,.ds-head h2{font-size:32px}
.ds-head p{margin-top:8px;font-size:13.5px}
.ds-stage{height:min(46vh,420px)!important;min-height:270px!important;margin:10px auto 16px!important}
.ds-left img{max-height:min(44vh,400px)!important}
.ds-name{font-size:25px;height:70px}
.ds-desc{height:52px;margin-bottom:12px}
.ds-spec{margin-bottom:18px}
.ds-btn{padding:11px 28px}
.ds-dots{margin-top:8px}


/* ===== 主导航悬停下拉 ===== */
.nav .nv{position:relative;display:flex;align-items:center}
.nav .nv-sub{position:absolute;left:0;top:100%;padding-top:8px;opacity:0;visibility:hidden;
  transform:translateY(4px);transition:.18s;z-index:90}
.nav .nv:hover .nv-sub{opacity:1;visibility:visible;transform:none}
.nav .nv-sub .bx{background:#fff;border:1px solid #EAF1F8;border-radius:12px;
  box-shadow:0 18px 40px rgba(15,27,42,.16);padding:8px 0;min-width:172px}
.nav .nv-sub a{display:block;padding:9px 18px;font-size:13.5px;color:#2B3B52;white-space:nowrap;font-weight:400;border-radius:0}
.nav .nv-sub a:hover{background:#F4F9FE;color:#0B68B6}

/* ---------- 内页组件 ---------- */
/* ================= 内页通用 ================= */
html{scroll-snap-type:none!important;scroll-behavior:auto!important}
body{background:#F4F7FA}
section{height:auto!important;min-height:0!important;display:block!important;padding:0!important;overflow:visible!important}
.bnr{background:radial-gradient(900px 420px at 76% 18%, rgba(46,155,255,.28), rgba(46,155,255,0) 62%),
     linear-gradient(112deg,#031428 0%,#062B4F 48%,#0B4E8E 100%);color:#fff;padding:78px 0 66px;position:relative;overflow:hidden}
.bnr:after{content:"";position:absolute;right:-80px;top:-90px;width:440px;height:440px;border-radius:50%;background:rgba(46,155,255,.10)}
/* 内页横幅·背景图版（栏目图，后台「版式与栏目 → 内页横幅图」可换；见 db.ia.banners）
   图片铺满横幅容器宽度、cover 等比裁切（不变形）、居中；
   上层为左深右浅的深色渐变遮罩，保证左侧（安全区 y≈78–192）的英文名 / 标题 / 面包屑可读；
   padding 与无图版完全一致 → 文字位置不动、容器高度仍是 258px。 */
.bnr.has-img{background-image:linear-gradient(90deg,rgba(3,18,36,.93) 0%,rgba(3,18,36,.86) 30%,rgba(3,18,36,.62) 58%,rgba(3,18,36,.34) 82%,rgba(6,43,79,.24) 100%),var(--bnr-img);
     background-position:center center,center center;background-size:auto,cover;background-repeat:no-repeat,no-repeat;background-color:#062B4F}
.bnr.has-img:after{display:none}
.bnr .en{font-size:13px;letter-spacing:5px;color:rgba(255,255,255,.55)}
.bnr h1{font-size:38px;letter-spacing:3px;margin:14px 0 16px}
.bnr .crumb{font-size:13px;color:rgba(255,255,255,.66)}
.bnr .crumb i{font-style:normal;margin:0 7px;opacity:.45}
.body{padding:34px 0 78px}
/* 导航可点击（内页统一） */
.nav a{padding:10px 6px;font-size:14.5px;white-space:nowrap;color:#27384E;border-radius:8px;cursor:pointer;transition:.2s}
.nav a:hover{color:#0B68B6;background:#F1F7FD}
.nav a.on{color:#0B68B6;font-weight:700;position:relative}
.nav a.on:after{content:"";position:absolute;left:10px;right:10px;bottom:5px;height:3px;background:#0B68B6;border-radius:2px}
.hd .logo{margin-right:8px}
.ibx{display:block}
.cols{display:grid;grid-template-columns:272px 1fr;gap:28px;align-items:start}
/* 五大分类大图块 */
.c5grid{display:grid;grid-template-columns:repeat(6,1fr);gap:22px}
.c5grid .tcard:nth-child(1),.c5grid .tcard:nth-child(2){grid-column:span 3}
.c5grid .tcard:nth-child(3),.c5grid .tcard:nth-child(4),.c5grid .tcard:nth-child(5){grid-column:span 2}
.c5grid .tpic{height:236px}
.c5grid .tcard:nth-child(3) .tpic,.c5grid .tcard:nth-child(4) .tpic,.c5grid .tcard:nth-child(5) .tpic{height:196px}
/* 品牌索引 */
.bgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.bcard{background:#fff;border:1px solid #EDF3F9;border-radius:14px;overflow:hidden;box-shadow:0 10px 26px rgba(15,27,42,.07);transition:.25s;display:flex;flex-direction:column;cursor:pointer;padding-bottom:16px}
.bcard:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(11,104,182,.18)}
.bcard .blogo{height:138px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#FAFCFE,#F1F7FC);padding:20px}
.bcard .blogo img{max-height:64px;max-width:170px;object-fit:contain}
.bcard .bname{padding:14px 18px 0;font-size:15.5px;color:#0F1B2A;font-weight:700}
.bcard .bnum{padding:6px 18px 0;font-size:12.5px;color:#93A5BA}
.bcard .go{padding:12px 18px 0;font-size:12.5px;color:#0B68B6;font-weight:700}
.bhead{display:grid;grid-template-columns:280px 1fr;gap:34px;align-items:center}
.bhead .blogo{height:220px;border:1px solid #EDF3F9;border-radius:14px;background:linear-gradient(180deg,#FAFCFE,#F1F7FC);display:flex;align-items:center;justify-content:center;padding:24px}
.bhead .blogo img{max-width:100%;max-height:110px;object-fit:contain}
.binfo .en{font-size:12.5px;letter-spacing:2.6px;color:#93A5BA}
.binfo h1,.binfo h2{font-size:30px;color:#0F1B2A;margin:10px 0 14px}
.binfo .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.binfo .tags span{font-size:12.5px;color:#0B68B6;background:#EAF3FC;border-radius:20px;padding:6px 15px}
.bswitch{display:flex;flex-wrap:wrap;gap:12px}
.bswitch a{display:flex;align-items:center;gap:9px;border:1px solid #E7EEF6;border-radius:22px;padding:8px 16px;font-size:13px;color:#4A5C74;background:#FBFDFF}
.bswitch a.on{border-color:#0B68B6;color:#0B68B6;font-weight:700;background:#F1F8FE}
.bswitch img{max-height:20px;max-width:56px;object-fit:contain}
.card{background:#fff;border-radius:16px;box-shadow:0 14px 36px rgba(15,27,42,.08);border:1px solid #EAF1F8;padding:30px 34px}
.card + .card{margin-top:22px}
.ctitle{display:flex;align-items:baseline;gap:12px;margin-bottom:20px;position:relative;padding-left:16px}
.ctitle:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:4px;background:#0B68B6;border-radius:2px}
.ctitle b{font-size:22px;color:#0F1B2A}
.ctitle i{font-style:normal;font-size:12px;letter-spacing:2px;color:#93A5BA}
.p{font-size:14.5px;line-height:2.05;color:#41506A}
.p + .p{margin-top:14px}
.p b{color:#0B68B6}
/* 左栏 */
.side{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 14px 36px rgba(15,27,42,.09);border:1px solid #EAF1F8}
.side .sh{background:linear-gradient(120deg,#08203A,#0B4E8E);color:#fff;padding:20px 22px}
.side .sh b{font-size:19px;letter-spacing:1px}
.side .sh span{display:block;font-size:11px;letter-spacing:2.2px;color:rgba(255,255,255,.5);margin-top:6px}
.side a{display:flex;align-items:center;justify-content:space-between;padding:13px 22px;font-size:14.5px;color:#2B3B52;border-top:1px solid #F0F5FA;cursor:pointer}
.side a:hover{background:#F4F9FE;color:#0B68B6}
.side a.on{background:#0B68B6;color:#fff;font-weight:700}
.side a i{font-style:normal;color:#B9C7D6;font-size:14px}
.side a.on i{color:rgba(255,255,255,.7)}
.side .sub a{padding-left:38px;font-size:13.5px;color:#5A6B80}
.side .sub a.on{background:#EAF3FC;color:#0B68B6;font-weight:700}
/* 大类卡片 */
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.tcard{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 12px 30px rgba(15,27,42,.09);border:1px solid #EDF3F9;transition:.28s;display:flex;flex-direction:column;cursor:pointer}
.tcard:hover{transform:translateY(-7px);box-shadow:0 26px 52px rgba(11,104,182,.2)}
.tpic{height:196px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#F8FBFE,#EDF5FC);padding:16px}
.tpic img{max-width:100%;max-height:100%;object-fit:contain}
.tinfo{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.tinfo h3{font-size:18px;color:#0F1B2A}
.tinfo .tags{margin-top:11px;display:flex;flex-wrap:wrap;gap:7px}
.tinfo .tags span{font-size:12px;color:#4E7FA8;background:#EFF6FD;border-radius:6px;padding:4px 9px}
.tinfo .go{margin-top:16px;font-size:13px;color:#0B68B6;font-weight:700}
/* 产品卡 */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pcard{background:#fff;border-radius:14px;border:1px solid #EDF3F9;overflow:hidden;box-shadow:0 10px 26px rgba(15,27,42,.07);transition:.25s;display:flex;flex-direction:column;cursor:pointer}
.pcard:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(11,104,182,.18)}
.pcard .ph{height:180px;display:flex;align-items:center;justify-content:center;background:#FAFCFE;padding:14px}
.pcard .ph img{max-width:100%;max-height:100%;object-fit:contain}
.pcard .pb{padding:16px 18px 18px;flex:1;display:flex;flex-direction:column}
.pcard h4{font-size:15.5px;color:#0F1B2A;line-height:1.6}
.pcard p{font-size:12.5px;color:#7B8A9E;line-height:1.75;margin-top:8px;height:44px;overflow:hidden}
.pcard .pf{margin-top:12px;display:flex;gap:10px;align-items:center}
.pcard .pf b{font-weight:400;font-size:12.5px;border-radius:16px;padding:5px 14px;background:#0B68B6;color:#fff}
.pcard .pf i{font-style:normal;font-size:12.5px;border-radius:16px;padding:5px 14px;border:1px solid #CFE0F0;background:#fff;color:#0B68B6}
/* 分页 */
.pager{display:flex;gap:8px;justify-content:center;margin-top:26px}
.pager a{min-width:34px;height:34px;line-height:32px;text-align:center;border-radius:9px;border:1px solid #E1EAF3;background:#fff;color:#4A5C74;font-size:13.5px;padding:0 10px}
.pager a.on{background:#0B68B6;border-color:#0B68B6;color:#fff;font-weight:700}
/* 详情 */
.dtop{display:grid;grid-template-columns:1.02fr 1fr;gap:38px;align-items:start}
.dpic{border-radius:16px;background:#FAFCFE;border:1px solid #EDF3F9;height:400px;display:flex;align-items:center;justify-content:center;padding:20px}
.dpic img{max-width:100%;max-height:100%;object-fit:contain}
.dmeta .en{font-size:12.5px;letter-spacing:2.4px;color:#93A5BA}
.dmeta h1,.dmeta h2{font-size:30px;color:#0F1B2A;line-height:1.45;margin-top:10px}
.dmeta .desc{margin-top:18px;font-size:14.5px;line-height:2;color:#54657D}
.dmeta .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.dmeta .tags span{font-size:12.5px;color:#0B68B6;background:#EAF3FC;border-radius:20px;padding:6px 15px}
.dbtns{display:flex;gap:14px;margin-top:26px}
.dspec{width:100%;border-collapse:collapse;font-size:14px}
.dspec th,.dspec td{border:1px solid #E7EEF6;padding:11px 14px;text-align:left}
.dspec th{background:#F5F9FD;color:#33475F;font-weight:400;width:180px}
.dspec td{color:#42536B}
/* 列表 */
.nit{display:grid;grid-template-columns:196px 1fr;gap:22px;padding:22px 0;border-bottom:1px dashed #E4EDF6}
.nit:first-child{padding-top:6px}
.nit .th{height:120px;border-radius:12px;overflow:hidden;background:#EEF4FA;display:block}
.nit .th img{width:100%;height:100%;object-fit:contain}
.nit h4{font-size:17px;color:#0F1B2A;line-height:1.6}
.nit .dt{font-size:12.5px;color:#93A5BA;margin:9px 0 10px}
.nit .dt em{font-style:normal;color:#0B68B6;background:#EAF3FC;border-radius:5px;padding:2px 9px;margin-right:10px}
.nit p{font-size:13.5px;line-height:1.9;color:#6B7A8D;height:52px;overflow:hidden}
.nit .go{display:inline-block;margin-top:10px;font-size:12.5px;color:#0B68B6;font-weight:700}
.ngroup + .ngroup{margin-top:30px}
.ngt{display:flex;align-items:baseline;gap:12px;border-bottom:2px solid #E7EEF6;padding-bottom:12px;margin-bottom:6px}
.ngt b{font-size:19px;color:#0F1B2A;position:relative;padding-left:14px}
.ngt b:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:4px;background:#0B68B6;border-radius:2px}
.ngt span{font-size:12px;letter-spacing:1.6px;color:#93A5BA}
.ngt .more{margin-left:auto;font-size:12.5px;color:#0B68B6}
/* 文章 */
.art h1,.art h2{font-size:30px;line-height:1.5;color:#0F1B2A}
.art .meta{margin:16px 0 24px;padding-bottom:18px;border-bottom:1px solid #EDF3F9;font-size:13px;color:#93A5BA;display:flex;gap:24px;flex-wrap:wrap}
.art .p{font-size:15px;line-height:2.15;color:#3F4F66}
/* 关于 */
.tl{margin-top:10px}
.tl li{list-style:none;position:relative;padding:0 0 26px 30px;border-left:2px solid #E7EEF6}
.tl li:last-child{border-left-color:transparent;padding-bottom:0}
.tl li:before{content:"";position:absolute;left:-7px;top:3px;width:12px;height:12px;border-radius:50%;background:#0B68B6;box-shadow:0 0 0 4px #EAF3FC}
.tl b{display:inline-block;min-width:110px;font-size:13.5px;color:#0B68B6}
.tl span{font-size:14px;color:#41506A}
.nums2{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:24px}
.nums2 div{background:#F6FAFE;border:1px solid #E8F0F8;border-radius:12px;padding:16px 18px}
.nums2 b{display:block;font-size:24px;color:#0B68B6;font-family:Arial,"Microsoft YaHei"}
.nums2 span{font-size:12.5px;color:#8FA0B5}
/* 下载 */
.dl{display:flex;align-items:center;gap:16px;padding:16px 18px;border:1px solid #EDF3F9;border-radius:12px;margin-bottom:12px;background:#FBFDFF}
.dl:last-child{margin-bottom:0}
.dl .ft{width:52px;height:52px;border-radius:10px;background:#EAF3FC;color:#0B68B6;display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:700;flex:0 0 auto}
.dl .dn b{font-size:15px;color:#0F1B2A}
.dl .dn div{font-size:12.5px;color:#93A5BA;margin-top:6px}
.dl .btn{margin-left:auto;background:#0B68B6;color:#fff;font-size:13px;border-radius:18px;padding:8px 20px}
/* 联系 */
.cgrid{display:grid;grid-template-columns:1.06fr 1fr;gap:26px;align-items:start}
.cgrid .card + .card{margin-top:0}
.citem{display:flex;gap:14px;padding:15px 0;border-bottom:1px dashed #E4EDF6}
.citem .ic{width:40px;height:40px;border-radius:11px;background:#EAF3FC;color:#0B68B6;display:flex;align-items:center;justify-content:center;font-size:17px;flex:0 0 auto}
.citem b{display:block;font-size:12.5px;color:#93A5BA;font-weight:400;margin-bottom:5px}
.citem span{font-size:15px;color:#28374C}
.branch{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:16px}
.branch div{background:#F6FAFE;border:1px solid #E8F0F8;border-radius:11px;padding:13px 15px}
.branch b{display:block;font-size:14px;color:#0F1B2A}
.branch span{font-size:12.5px;color:#8FA0B5;line-height:1.7}
.map{height:300px;border-radius:14px;background:repeating-linear-gradient(45deg,#EAF1F8,#EAF1F8 12px,#F3F8FC 12px,#F3F8FC 24px);
     display:flex;align-items:center;justify-content:center;color:#7C8DA2;font-size:13.5px;border:1px solid #E4EDF6}
/* 标准清单（技术与应用 › 标准与规范）*/
.std{padding:16px 0;border-bottom:1px dashed #E4EDF6}
.std:last-child{border-bottom:0;padding-bottom:0}
.std b{display:inline-block;min-width:236px;color:#0B68B6;font-size:14.5px}
.std span{font-size:14px;color:#22334A}
.std p{margin-top:8px;font-size:13.5px;color:#6B7A8D;line-height:1.9}
/* 资质证书占位格 */
.certgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.cert{background:#FBFDFF;border:1px solid #EDF3F9;border-radius:12px;height:200px;display:flex;
      flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#93A5BA;font-size:12.5px}
.cert b{color:#0F1B2A;font-size:14px;text-align:center;padding:0 12px;line-height:1.6}
.cert .ic{width:46px;height:46px;border-radius:50%;background:#EAF3FC;color:#0B68B6;display:flex;
          align-items:center;justify-content:center;font-size:20px}
/* 顶部横排子项 tab（上下结构的“上”）*/
.subtabs{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;background:#fff;border:1px solid #EAF1F8;border-radius:14px;
  padding:12px 14px;box-shadow:0 10px 26px rgba(15,27,42,.06);margin:0 0 22px}
.subtabs a{font-size:13.5px;color:#3E5169;border-radius:20px;padding:8px 16px;border:1px solid #E7EEF6;background:#FBFDFF;white-space:nowrap}
.subtabs a:hover{border-color:#9CC7EC;color:#0B68B6}
.subtabs a.on{background:#0B68B6;border-color:#0B68B6;color:#fff;font-weight:700}
/* 分类标题条（上下结构的标题）*/
.sechead{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#fff;border:1px solid #EAF1F8;
  border-left:4px solid #0B68B6;border-radius:12px;padding:16px 22px;margin:26px 0 20px;
  box-shadow:0 10px 26px rgba(15,27,42,.06)}
.sechead .sh-l b{font-size:21px;color:#0F1B2A}
.sechead .sh-l i{font-style:normal;font-size:12px;letter-spacing:2px;color:#93A5BA;margin-left:12px}
.sechead .sh-tags{display:flex;flex-wrap:wrap;gap:7px;margin-left:6px}
.sechead .sh-tags span{font-size:12px;color:#4E7FA8;background:#EFF6FD;border-radius:6px;padding:4px 9px}
.sechead .sh-go{margin-left:auto;font-size:12.5px;color:#fff;background:#0B68B6;border-radius:16px;padding:8px 18px;white-space:nowrap}
.card:first-child > .subtabs, .card + .core{display:block}
/* 产品卡分类角标 */
.pcard .pb .chip{display:inline-block;font-size:11.5px;color:#0B68B6;background:#EAF3FC;border-radius:5px;padding:3px 9px;margin-bottom:9px;align-self:flex-start}
/* 分类页里的子类标题行 */
.ctitle .ct2{font-size:19px}
.ctitle .ctmore{margin-left:auto;font-size:12.5px;color:#0B68B6}
.dmeta .tags a{color:#0B68B6}
/* 正文（产品详情 / 新闻正文，来自原站内容） */
.pbody{font-size:14.5px;line-height:2;color:#41506A;word-break:break-word}
.pbody img{max-width:100%;height:auto;border-radius:10px;margin:10px 6px 10px 0}
.pbody h1,.pbody h2,.pbody h3{color:#0F1B2A;margin:20px 0 10px;font-size:19px;line-height:1.6}
.pbody p{margin:10px 0}
.pbody ul,.pbody ol{margin:10px 0 10px 22px}
.pbody li{margin:6px 0;line-height:1.95}
.pbody table{border-collapse:collapse;margin:12px 0;max-width:100%}
.pbody td,.pbody th{border:1px solid #E3EBF4;padding:8px 12px;font-size:13.5px}
.pbody blockquote{margin:14px 0;padding:12px 18px;background:#F4F9FE;border-left:3px solid #0B68B6;color:#3F4F66;border-radius:0 8px 8px 0}
.pbody strong,b{color:#22334A}
.pbody a{color:#0B68B6}
/* 正文列表：显式纵向列表（服务网络等的分组条目），防止被其它规则/粘贴样式改成横向或多列 */
.pbody ul,.pbody ol{display:block;flex-direction:column;grid-template-columns:none;column-count:auto}
.pbody li{display:list-item;float:none;width:auto}

/* ---- 关于我们 · 服务网络：三组（中国大陆 / 海外 / 联系方式）横向并排（左→右） ----
   渲染层只在该条目正文外套一层 <div class="svcnet">（见 lib/v23.js），作用域仅限该条目；
   首页新闻区等其它复用 .pbody / h3 / ul 的区块完全不受影响。
   桌面 ≥992px：三组等宽三列并排（三组 h3 在同一行 → y 相同、x 递增；组内 li 仍逐行纵向）；
   768~991px：两列自适应；≤767px：单列堆叠。
   注意：本站 <meta name="viewport" content="width=1220">，手机端 CSS 视口恒为 1220px，
   故手机档不能只靠视口 media query，另用 html.is-narrow / html.is-phone（JS 按 visual viewport 添加）覆盖。 */
.svcnet{display:grid;grid-template-columns:1fr;column-gap:0;row-gap:0;align-items:start}
.svcnet>p,.svcnet>h3,.svcnet>ul,.svcnet>ol{min-width:0;float:none;width:auto;max-width:none;
  column-count:auto;-webkit-column-count:auto;column-width:auto;-webkit-column-width:auto}
/* 单列（默认 / 手机档）：按正文自身顺序逐行 */
.svcnet>p:first-child{grid-area:1/1}
.svcnet>h3:nth-of-type(1){grid-area:2/1}
.svcnet>ul:nth-of-type(1){grid-area:3/1}
.svcnet>h3:nth-of-type(2){grid-area:4/1}
.svcnet>ul:nth-of-type(2){grid-area:5/1}
.svcnet>h3:nth-of-type(3){grid-area:6/1}
.svcnet>ul:nth-of-type(3){grid-area:7/1}
.svcnet>p:last-child{grid-area:8/1}
/* 组标题：细线分隔；列表：浅底色卡片；组内 li 保持逐行纵向 */
.svcnet>h3{margin:0 0 10px;padding:0 0 8px;font-size:16.5px;line-height:1.5;border-bottom:2px solid #E3EBF4}
.svcnet>ul{margin:0 0 6px;padding:12px 16px 6px 30px;background:#F8FBFE;border:1px solid #EAF2FA;border-radius:10px}
.svcnet li{display:list-item;float:none;width:auto;max-width:none;margin:6px 0;line-height:1.9}
/* 768~991：两列自适应（中国大陆 | 海外，联系方式换行到左列下方；不新增横向滚动） */
@media (min-width:768px){
  .svcnet{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
  .svcnet>p:first-child{grid-area:1/1/2/3}
  .svcnet>h3:nth-of-type(1){grid-area:2/1}
  .svcnet>ul:nth-of-type(1){grid-area:3/1}
  .svcnet>h3:nth-of-type(2){grid-area:2/2}
  .svcnet>ul:nth-of-type(2){grid-area:3/2}
  .svcnet>h3:nth-of-type(3){grid-area:4/1}
  .svcnet>ul:nth-of-type(3){grid-area:5/1}
  .svcnet>p:last-child{grid-area:6/1/7/3}
}
/* ≥992：三组等宽三列并排（中国大陆 | 海外 | 联系方式，左→右） */
@media (min-width:992px){
  .svcnet{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:34px}
  .svcnet>p:first-child{grid-area:1/1/2/4}
  .svcnet>h3:nth-of-type(1){grid-area:2/1}
  .svcnet>ul:nth-of-type(1){grid-area:3/1}
  .svcnet>h3:nth-of-type(2){grid-area:2/2}
  .svcnet>ul:nth-of-type(2){grid-area:3/2}
  .svcnet>h3:nth-of-type(3){grid-area:2/3}
  .svcnet>ul:nth-of-type(3){grid-area:3/3}
  .svcnet>p:last-child{grid-area:4/1/5/4}
  /* 手机/平板档：CSS 视口 1220 会命中上面的 ≥992，按 JS 类改回窄屏布局 */
  html.is-narrow .svcnet{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:26px}
  html.is-narrow .svcnet>p:first-child{grid-area:1/1/2/3}
  html.is-narrow .svcnet>h3:nth-of-type(1){grid-area:2/1}
  html.is-narrow .svcnet>ul:nth-of-type(1){grid-area:3/1}
  html.is-narrow .svcnet>h3:nth-of-type(2){grid-area:2/2}
  html.is-narrow .svcnet>ul:nth-of-type(2){grid-area:3/2}
  html.is-narrow .svcnet>h3:nth-of-type(3){grid-area:4/1}
  html.is-narrow .svcnet>ul:nth-of-type(3){grid-area:5/1}
  html.is-narrow .svcnet>p:last-child{grid-area:6/1/7/3}
  html.is-phone .svcnet{grid-template-columns:1fr;column-gap:0}
  html.is-phone .svcnet>p:first-child{grid-area:1/1}
  html.is-phone .svcnet>h3:nth-of-type(1){grid-area:2/1}
  html.is-phone .svcnet>ul:nth-of-type(1){grid-area:3/1}
  html.is-phone .svcnet>h3:nth-of-type(2){grid-area:4/1}
  html.is-phone .svcnet>ul:nth-of-type(2){grid-area:5/1}
  html.is-phone .svcnet>h3:nth-of-type(3){grid-area:6/1}
  html.is-phone .svcnet>ul:nth-of-type(3){grid-area:7/1}
  html.is-phone .svcnet>p:last-child{grid-area:8/1}
}
/* ≤767px 桌面窄窗：单列堆叠 */
@media (max-width:767px){
  .svcnet{grid-template-columns:1fr;column-gap:0}
  .svcnet>p:first-child{grid-area:1/1}
  .svcnet>h3:nth-of-type(1){grid-area:2/1}
  .svcnet>ul:nth-of-type(1){grid-area:3/1}
  .svcnet>h3:nth-of-type(2){grid-area:4/1}
  .svcnet>ul:nth-of-type(2){grid-area:5/1}
  .svcnet>h3:nth-of-type(3){grid-area:6/1}
  .svcnet>ul:nth-of-type(3){grid-area:7/1}
  .svcnet>p:last-child{grid-area:8/1}
}


/* ============ 关于我们 · 服务网络 · 苏州公司地址导航地图（仅该条目出现） ============ */
.netmap{margin:26px 0 4px;background:#fff;border:1px solid #EAF1F8;border-radius:14px;overflow:hidden;box-shadow:0 10px 26px rgba(15,27,42,.06)}
.netmap-hd{display:flex;align-items:baseline;gap:12px;padding:16px 20px 13px;border-bottom:1px solid #F0F5FA}
.netmap-hd b{font-size:16px;color:#0F1B2A}
.netmap-hd i{font-style:normal;font-size:11.5px;letter-spacing:2px;color:#93A5BA}
.netmap-frame{position:relative;width:100%;height:380px;background:#F3F7FB}
.netmap-frame iframe{display:block;width:100%;height:100%;border:0}
.netmap-ft{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:15px 20px 18px;border-top:1px solid #F0F5FA}
.netmap-addr{margin-right:auto;font-size:13.5px;line-height:1.75;color:#41506A}
.netmap-addr b{color:#0B68B6}
.netmap-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border-radius:22px;font-size:13.5px;font-weight:600;color:#fff;background:#0B68B6;white-space:nowrap}
.netmap-btn.bmap{background:#2B6CD9}
.netmap-btn:hover{opacity:.9}
html.is-narrow .netmap-frame{height:320px}
html.is-narrow .netmap-ft{align-items:stretch}
html.is-narrow .netmap-addr{flex:1 1 100%;margin-right:0}
html.is-narrow .netmap-btn{flex:1 1 auto;justify-content:center}

/* ================= 真实站适配（holyinst_site/lib/v23.js 渲染层） ================= */
/* 首页：整屏对齐 → 正常滚动长页 */
#hero,#sec-cat,#sec-brand,#sec-about,#sec-news,#sec-net,#sec-contact{height:auto!important;min-height:0!important;display:block!important;padding:64px 0!important}
#sec-cat{padding-top:72px!important}
/* 首屏：浅底四屏大设备展示（站主定稿：白/浅底，文字转深色）*/
.dshow{background:linear-gradient(180deg,#F4F7FA 0%,#FFFFFF 62%,#F1F6FB 100%)!important;height:auto!important;min-height:0!important;padding:56px 0 40px!important}
.ds-head{color:#0F1B2A}
.ds-head h1,.ds-head h2{color:#0F1B2A}
.ds-head p{color:#5C6B80}
.ds-kicker{color:#0B68B6}
.ds-name{color:#0F1B2A}
.ds-desc{color:#54657D}
.ds-spec{color:#0B68B6;background:#EAF3FC}
.ds-left img{background:#fff;border-radius:18px;padding:16px;border:1px solid #E7EEF6;box-shadow:0 14px 34px rgba(15,27,42,.12)}
.ds-dots i{background:#C8D6E4}
.ds-dots i.on{background:#0B68B6}
/* 分类卡片：真站用真实图片，给出稳定高度 */
.cat.big,.cat.mid{height:380px;min-height:0}
.cat.sm{height:290px;min-height:0}
/* 企业介绍数字行：4 项一行 */
.nums{grid-template-columns:repeat(4,1fr)}
/* 服务网络 / 联系方式：区块自适应高度 */
#sec-net .card{padding:26px 30px}
#sec-contact .ct{height:auto!important;min-height:0!important}
#inner-only{display:none}

/* ================= 窄屏（手机）附加：长文案折叠 + 防横向溢出 ================= */
/* 桌面端：.foldbtn 不显示、.foldclamp 不裁切 —— 版式与改动前完全一致 */
.foldbtn{display:none}
html.is-narrow .foldclamp{position:relative;overflow:hidden}
html.is-narrow .foldclamp:after{content:"";position:absolute;left:0;right:0;bottom:0;height:52px;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.94) 74%)}
html.is-narrow .foldclamp.open{max-height:none!important}
html.is-narrow .foldclamp.open:after{display:none}
html.is-narrow .fold-4{max-height:120px}   /* 首页企业介绍：4 行（字号14.5 × 行高2.05）*/
html.is-narrow .fold-8{max-height:232px}   /* 内页正文：8 行（字号14.5 × 行高2）*/
html.is-narrow .foldbtn{display:inline-flex;align-items:center;gap:6px;margin-top:14px;padding:9px 20px;
  border:1px solid #D7E5F3;border-radius:20px;background:#fff;color:#0B68B6;font-size:13px;cursor:pointer}
html.is-narrow .foldbtn i{font-style:normal;font-size:11px}

/* ============ 2026-09-25 修复：手机版单页正文被截断（只看到上半段） ============
   根因：本站 viewport 固定 width=1220，手机浏览器把整页按「屏幕宽/1220」缩放
         （390 宽 → initial-scale≈0.32）。上面 `html.is-narrow .fold-8{max-height:232px}`
         + `overflow:hidden` 把正文容器写死成 8 行，超出部分直接裁掉：
         实测 390×844 /equipment.html 正文内容 827px → 容器 232px，**截断 595px**。
         同一屏里「查看全部」按钮被缩到约 35×12 设备像素，远小于可点面积，
         且展开后按钮自身位置下移，用户实际点不开 → 「下面看不到」。
   处理：手机档（html.is-phone，设备宽 ≤480）取消 clamp、直接显示全文，并隐藏折叠按钮。
         平板 481–768 仍走上面 is-narrow 的折叠（该档缩放比 0.63 起，按钮可点，行为不变）；
         桌面 >768 不受 is-narrow/is-phone 约束 → 版式零变化。
   回退：删除本段即可恢复原折叠行为（上面旧规则未改动）。 */
html.is-phone .foldclamp{max-height:none!important;overflow:visible}
html.is-phone .foldclamp:after{display:none}
html.is-phone .fold-4,html.is-phone .fold-8{max-height:none!important}
html.is-phone .foldbtn{display:none}
/* 窄屏下固定宽度的容器不超出屏幕（其余版式不动）*/
html.is-narrow .dshow,html.is-narrow .ds-head,html.is-narrow .ds-stage{width:auto!important;max-width:1220px}
html.is-narrow .pbody img,html.is-narrow .abimg img{max-width:100%;height:auto}
/* 品牌墙顶行本来故意比 .wrap 宽（1398px + 负外边距），在 1220 视口下会横向溢出 101px：
   窄屏下收回宽度、卡片略缩，7 个 LOGO 仍保持一行 */
html.is-narrow .brow,html.is-narrow .brow.top{width:1220px!important;margin-left:0!important;margin-right:0!important;flex-wrap:wrap}
html.is-narrow .brow.bot{width:1220px!important;margin-left:auto!important;margin-right:auto!important}
html.is-narrow .bl{width:156px}
html.is-narrow .bl img{max-width:128px;max-height:56px}
/* 同一问题在"桌面窄窗口"下也存在：桌面端不受 is-narrow（JS 只按 ≤768 判定）约束，
   而 .wrap 固定 1220px、品牌墙顶行固定 1398px + margin-left:-89px，
   视口 < 1440px 时右侧必然溢出（1280×800 实测文档宽 1351 / 溢出 71px）。
   此处按视口宽度兜底：<1440px 时与窄屏同款收窄（1440 及以上完全不受影响）。 */
@media (max-width:1439px){
  .brow.top{width:1220px!important;margin-left:0!important;margin-right:0!important;flex-wrap:wrap}
  .bl{width:156px}
  .bl img{max-width:128px;max-height:56px}
}

/* 站主要求：首页首屏不显示公司名与简介文字（SEO 里的 description 保留） */
.dshow .ds-head{display:none}

/* ================= 窄屏（手机）首屏产品滚动区修复 =================
   根因：上一条 `html.is-narrow .dshow,.ds-head,.ds-stage{width:auto!important}` 把 .ds-stage 的
   width:1220px 改成 auto；而 .dshow 是 flex column + align-items:center，.ds-stage 的
   子元素 .dslide 全部是 position:absolute（脱离文档流）→ auto 宽度收缩成 0px
   → 图片被压成 34×34、文案逐字换行（一字一行）、圆点被挤出首屏。
   对策（仅在窄屏生效，桌面版式不动）：给 .ds-stage 明确宽高，并把 .dslide 由左右两栏改为上下堆叠。
   注：窄屏下 viewport 固定 width=1220，布局宽度恒为 1220，故可用确定 px。 */
html.is-narrow .dshow,
html.is-narrow .ds-head,
html.is-narrow .ds-stage{width:1220px!important;max-width:1220px!important}
html.is-narrow .ds-stage{height:1620px!important;min-height:0!important;margin:16px auto 20px!important}
html.is-narrow .dslide{grid-template-columns:1fr!important;grid-template-rows:auto auto!important;
  gap:36px!important;align-content:center!important;justify-items:center!important}
html.is-narrow .ds-left{height:auto!important;width:100%!important}
html.is-narrow .ds-left img{width:100%!important;max-width:1080px!important;max-height:900px!important;padding:30px!important}
html.is-narrow .ds-right{padding-right:0!important;text-align:center;display:flex;flex-direction:column;align-items:center}
html.is-narrow .ds-kicker{font-size:28px!important;letter-spacing:4px;margin-bottom:18px}
html.is-narrow .ds-name{font-size:56px!important;line-height:1.35!important;height:auto!important;max-height:152px;margin-bottom:16px}
html.is-narrow .ds-desc{font-size:32px!important;line-height:1.75!important;height:auto!important;max-height:170px;margin-bottom:20px;max-width:1120px}
html.is-narrow .ds-spec{font-size:28px!important;padding:14px 34px!important;margin-bottom:30px}
html.is-narrow .ds-btn{font-size:30px!important;padding:22px 56px!important;border-radius:14px}
html.is-narrow .ds-dots{margin-top:26px;gap:14px}
html.is-narrow .ds-dots i{width:20px;height:20px}
html.is-narrow .ds-dots i.on{width:58px;border-radius:12px}
/* 首屏为一整屏高，圆点原贴在屏幕最下沿（实测 2595/2640 布局px = 830/844 物理px），
   真机上易被浏览器底部工具栏遮住；窄屏下给 #hero 多留底部内边距，把内容（含圆点）整体上提。 */
html.is-narrow #hero{padding-bottom:220px!important}
html.is-narrow.snap-home #hero{padding-bottom:220px!important}

/* ============================================================
   2026-09-24 首页各区块留白收紧（仅桌面端 + 整页翻屏模式）
   作用域 html.snap-home:not(.is-narrow)：
     - ?nosnap=1（服务端不加 .snap-home）完全不受影响；
     - 手机/窄屏（JS 按 ≤768 判定 → html.is-narrow）完全不受影响。
   原理：吸附到某区块时，粘性页眉 .hd（92px、不透明、z-index 60）会盖住该区块顶部 92px。
        所以  padding-top = 92px + 可见留白，padding-bottom = 可见留白
        → 视觉上"内容上方 / 下方留白"相等（各 48px）。
        同时区块内容区（.wrap）与内容块改为 flex-basis:0 撑满，
        剩余高度由内容块（卡片/配图/表单）吸收，不再沉淀成上下大片空白。
        注意：flex-basis 必须用 0（不能用 auto），否则图片/卡片的固有高度
        会把区块顶出 100vh（1280×800 实测会溢出 115~135px）。
   ============================================================ */
html.snap-home{--hl-hd:92px;--hl-gap:48px;--hl-hero-gap:84px}

/* ---- 五个内容区块：留白对称（扣除页眉后视觉相等）+ 内容区撑满 ---- */
html.snap-home:not(.is-narrow) #sec-cat,
html.snap-home:not(.is-narrow) #sec-brand,
html.snap-home:not(.is-narrow) #sec-about,
html.snap-home:not(.is-narrow) #sec-news,
html.snap-home:not(.is-narrow) #sec-contact{
  flex-direction:column!important;
  padding:calc(var(--hl-hd) + var(--hl-gap)) 0 var(--hl-gap)!important
}
html.snap-home:not(.is-narrow) #sec-cat>.wrap,
html.snap-home:not(.is-narrow) #sec-brand>.wrap,
html.snap-home:not(.is-narrow) #sec-about>.wrap,
html.snap-home:not(.is-narrow) #sec-news>.wrap,
html.snap-home:not(.is-narrow) #sec-contact>.wrap{
  flex:1 1 0!important;min-height:0!important;
  display:flex!important;flex-direction:column!important
}

/* ---- 首屏四屏轮播：顶栏(40)+页眉(92)在其上方正常排布、不遮挡 → 上下留白取等值 ---- */
html.snap-home:not(.is-narrow) #hero{padding:var(--hl-hero-gap) 0 var(--hl-hero-gap)!important}
html.snap-home:not(.is-narrow) #hero>.ds-stage{margin:0 auto!important;min-height:0!important}

/* ---- 产品分类：两行按可用高度均分（保留原 340:260 ≈ 1.31:1 的行高比） ---- */
html.snap-home:not(.is-narrow) #sec-cat .cats{flex:1 1 0;min-height:0;grid-template-rows:1.31fr 1fr}
html.snap-home:not(.is-narrow) #sec-cat .cat.big,
html.snap-home:not(.is-narrow) #sec-cat .cat.mid,
html.snap-home:not(.is-narrow) #sec-cat .cat.sm{height:auto!important;min-height:0!important}

/* ---- 代理品牌墙：两行按可用高度均分、LOGO 等比放大（13 个 / 7+6 排版不变） ---- */
html.snap-home:not(.is-narrow) #sec-brand .bls{
  flex:1 1 0;min-height:0;display:flex!important;flex-direction:column!important;justify-content:center}
html.snap-home:not(.is-narrow) #sec-brand .bwall{
  flex:1 1 0;min-height:0;width:1220px;margin:0 auto;
  display:flex!important;flex-direction:column!important}
html.snap-home:not(.is-narrow) #sec-brand .brow{flex:1 1 0;min-height:0}
html.snap-home:not(.is-narrow) #sec-brand .brow.bot{margin:20px auto 0!important}
html.snap-home:not(.is-narrow) #sec-brand .bl{height:auto!important;min-height:0!important;max-height:250px}
html.snap-home:not(.is-narrow) #sec-brand .bl img{max-height:110px;max-width:172px}

/* ---- 企业介绍：配图限定在剩余高度内等比缩放，不再撑破一屏 ---- */
html.snap-home:not(.is-narrow) #sec-about .st{flex:0 0 auto}
html.snap-home:not(.is-narrow) #sec-about .abimg{
  flex:1 1 0;min-height:0;width:100%;position:relative}
html.snap-home:not(.is-narrow) #sec-about .abimg img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
html.snap-home:not(.is-narrow) #sec-about .nums{flex:0 0 auto}

/* ---- 企业新闻：三张卡片撑满一屏，封面吸收剩余高度 ---- */
html.snap-home:not(.is-narrow) #sec-news .ngrid{flex:1 1 0;min-height:0;grid-template-rows:1fr}
html.snap-home:not(.is-narrow) #sec-news .news{height:100%;display:flex!important;flex-direction:column!important}
html.snap-home:not(.is-narrow) #sec-news .news .nmimg{flex:1 1 0;min-height:0;height:auto!important;max-height:420px}
html.snap-home:not(.is-narrow) #sec-news .news .nb{flex:0 0 auto}

/* ---- 联系我们：左侧信息 + 右侧表单撑满一屏 ---- */
html.snap-home:not(.is-narrow) #sec-contact .ct{flex:1 1 0;min-height:0;height:auto!important}

/* ================= 语言切换器（顶栏「语言 / Language」） =================
   位置：顶栏 .topbar .r 内、「服务热线」之后（站主指定）。
   交互：桌面鼠标悬停展开；窄屏/触屏点 .lsw-t 展开（加 .open 类，见 uiScript）；当前语言高亮。 */
.topbar .langsw{position:relative;display:inline-flex;align-items:center;height:40px}
.topbar .langsw .lsw-t{font-style:normal;color:#5FB2FF;cursor:pointer;white-space:nowrap;padding-right:15px;position:relative;-webkit-user-select:none;user-select:none}
.topbar .langsw .lsw-t:after{content:"";position:absolute;right:3px;top:50%;margin-top:-4px;width:0;height:0;border:4px solid transparent;border-top-color:#5FB2FF;transition:transform .2s}
.topbar .langsw:hover .lsw-t:after,.topbar .langsw.open .lsw-t:after{transform:rotate(180deg)}
.topbar .lsw-menu{position:absolute;right:0;top:100%;min-width:106px;background:#fff;border:1px solid #EAF1F8;border-radius:10px;box-shadow:0 14px 32px rgba(8,32,58,.16);padding:6px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .18s,transform .18s,visibility .18s;z-index:70}
.topbar .langsw:hover .lsw-menu,.topbar .langsw.open .lsw-menu{opacity:1;visibility:visible;transform:none}
.topbar .lsw-menu a{display:block;line-height:34px;padding:0 14px;border-radius:8px;color:#2B3B52;font-size:13px;white-space:nowrap;text-decoration:none}
.topbar .lsw-menu a:hover{background:#F4F9FE;color:#0B68B6}
.topbar .lsw-menu a.on{color:#0B68B6;font-weight:700;background:#F1F7FD}

/* ============================================================
   2026-09-24 顶栏防挤压/防重叠（中/英双语言通用；任务 1）
   问题：切换英文后 .l（站点名+描述）与 .r（热线/语言/手机/邮箱）两个 flex 项
        都可收缩、且没有 white-space 保护，标签变长时会互相压盖；
        视口 < 1220px 时 .wrap 固定 1220px 还会横向溢出（1024 实测溢出 211px）。
   对策：右侧 .r 不收缩（热线/语言/邮箱永远完整可读可点）；
        左侧 .l 先收缩、nowrap + 省略号截断，绝不换行、绝不压到右侧；
        .l 与 .r 之间最小间隔 12px（column-gap）。
   影响范围：≥1240px 视口（含 1280 / 1440 桌面）中文外观与改动前完全一致；
        以下是窄窗口兜底，手机（html.is-narrow）已在末尾还原为改动前样式。
   ============================================================ */
.topbar .wrap{column-gap:12px}
.topbar .l{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar .l .lt{white-space:nowrap}
.topbar .l .lb:before{content:"　|　";color:rgba(255,255,255,.78);font-weight:400}
.topbar .r{flex:0 0 auto}
.topbar .r>span{flex:0 0 auto;white-space:nowrap}

/* 窄窗口（<1240px）：顶栏自适应收窄，不横向溢出、不挤压 */
@media (max-width:1239px){
  .topbar .wrap{max-width:100%;padding-left:14px;padding-right:14px}
  .topbar .r{gap:18px}
}
@media (max-width:1150px){
  .topbar{font-size:12.5px}
  .topbar .r{gap:14px}
  .topbar .l .lb{display:none}          /* 优先保住 热线/语言/邮箱，站点描述徽标让位 */
}
@media (max-width:980px){
  .topbar .r{gap:12px}
  .topbar .r i{margin-right:4px}
}
/* 手机（html.is-narrow 由 uiScript 判定）：还原为改动前样式，手机版式零变化 */
html.is-narrow .topbar{font-size:13px}
html.is-narrow .topbar .r{gap:26px}
html.is-narrow .topbar .r i{margin-right:6px}
html.is-narrow .topbar .wrap{max-width:none;padding-left:0;padding-right:0}

/* ============================================================
   2026-09-24 首页区块入场动画 · 第三轮重调（任务 2）
   - 只动 transform / opacity，不参与布局：区块高度、翻屏吸附点、版式完全不变
   - 时长 620ms → 1200ms，缓动 cubic-bezier(.16,.84,.32,1)：站主反馈「太快看不出来」
   - 位移 56px → 80px，且方向不再单调：l 从左 / r 从右 / t 从上 / b 从下
     （逐区块方向表见 lib/v23.js 的 HOME_ANIM_MAP）
   - 每次进入视口都播：JS 用 IntersectionObserver 双向判断
     （进入 ratio ≥ 0.25 播；离开 ratio ≤ 0.05 重置），滚回再进会重播第二遍
   - 只向上位移(t)在末尾用（#sec-contact .ct）：向下位移(b)会让页面在动画期间多出
     80px 可滚动高度，末屏元素因此一律用 t 向上入位
   - prefers-reduced-motion: reduce → 不加类、不动画（直接显示）
   - 靠 section 的 overflow-x:clip 裁掉横向位移，既不产生横向滚动条，
     也不影响 position:sticky 页眉与 scroll-snap（clip 不建立滚动容器）
   ============================================================ */
html.home-v23 #hero,
html.home-v23 #sec-cat,
html.home-v23 #sec-brand,
html.home-v23 #sec-about,
html.home-v23 #sec-news,
html.home-v23 #sec-net,
html.home-v23 #sec-contact{overflow-x:clip!important;overflow-y:visible!important}

.hl-anim{opacity:0;
  transition:transform 1200ms cubic-bezier(.16,.84,.32,1),opacity 1200ms cubic-bezier(.16,.84,.32,1);
  will-change:transform,opacity}
.hl-anim.hl-l{transform:translateX(-80px)}
.hl-anim.hl-r{transform:translateX(80px)}
.hl-anim.hl-t{transform:translateY(-80px)}
.hl-anim.hl-b{transform:translateY(80px)}
/* hl-in 必须在四条方向规则之后：同权重靠行序取胜，in 态归位 */
.hl-anim.hl-in{opacity:1;transform:translate(0,0)}

@media (prefers-reduced-motion:reduce){
  .hl-anim,.hl-anim.hl-l,.hl-anim.hl-r,.hl-anim.hl-t,.hl-anim.hl-b{transition:none!important;transform:none!important;opacity:1!important;will-change:auto}
}

/* 站主要求：产品中心栏目说明已清空——空段落不占位 */
.p:empty,p.p:empty{display:none}

/* ============================================================
   2026-09-24 英文模式页眉收窄（任务 3）：导航文字压到搜索框
   现象（实测 1440/1280/390 三档一致）：切英文后导航最后一项右边界 1010.4，
   .sbox 左边界 949.9 → 重叠 60.5px。英文导航文字总宽 491.9px（中文 420.5px），
   而中英文 LOGO 都是 312px + 导航 504.5px 的盒子放不下 → flex 压缩后文字溢出。
   对策（仅 html[lang="en"] 生效，中文模式零改动）：
     导航字号 14.5 → 13px、左右内边距 6 → 4px、nav 左外边距 18 → 14px、
     tools 间距 14 → 10px（搜索框整体右移）。
   合计让出 ≈ 87px，英文导航仍不换行、不省略；中文保持原样。
   ============================================================ */
html[lang="en"] .hd .nav{margin-left:14px}
html[lang="en"] .hd .nav > .nv > a{padding:10px 4px;font-size:13px}
html[lang="en"] .hd .nav > .nv > a.on:after{left:6px;right:6px}
html[lang="en"] .hd .tools{gap:10px}

/* ============================================================
   2026-09-25 手机版首页留白收紧（仅 html.snap-home.is-phone；首屏 #hero 不动）

   现象（站主反馈）：手机版首页除首屏「产品滚动」外，产品分类 / 企业介绍 / 代理品牌 /
   企业新闻 / 联系我们 上下都有大片空白。
   量测（Edge headless，390×844，改前）：视觉视口 2640 CSS px（viewport 固定
   width=1220 → initial-scale=390/1220=0.32），各区块 min-height:100vh = 2640px，
   而内容实际高度只有 469~1028px → 上留白 31.8%~42.4%、下留白 27.8%~39.8%。

   根因：整页翻屏（html.snap-home）用 min-height:100vh 让「一个区块=一屏」。
   桌面端效果正确（视口就是布局视口）；但手机端布局视口被整体缩放到 1220 宽，
   100vh 拿到的是「按缩放折算后的布局高度」(= 视觉高 / scale)，远大于内容，
   剩余高度被 flex 的 align-items:center 均分到上下 → 大片留白。

   对策：手机档（设备宽 ≤480，见 lib/v23.js isPhone）让区块高度按内容自适应，
         padding 收回桌面同款节奏。页眉 .hd 是 sticky + 不透明、吸附到区块顶时
         会盖住其顶部 92px，故
             padding-top    = 92（页眉）+ 48（可见留白）= 140px
             padding-bottom = 48px
         → 吸附状态下的可视上/下留白各 48px，与桌面 :not(.is-narrow) 完全一致。
         （几何上 padding-top 比 padding-bottom 多 92px，是页眉遮挡的补偿，非多余空白。）

   影响范围：
     - 手机（is-phone，390/360/414/430…）：仅首页且整页翻屏模式下生效；
     - 平板 768 / 桌面 1440·1280：768 只命中 is-narrow 而非 is-phone → 零变化；
     - ?nosnap=1：无 .snap-home → 不受影响（走原来的 padding:64px 0）；
     - 内页：不带 .snap-home → 不受影响；
     - #hero（首屏产品滚动）不在选择器内 → 版式与改动前一致。
   注意：本块放在文件末尾，选择器权重 (0,2,1,1) 高于 html.snap-home #sec-* (0,1,1,1)。
   ============================================================ */
html.snap-home.is-phone #sec-cat,
html.snap-home.is-phone #sec-brand,
html.snap-home.is-phone #sec-about,
html.snap-home.is-phone #sec-news,
html.snap-home.is-phone #sec-net,
html.snap-home.is-phone #sec-contact{
  display:block!important;            /* 取消 flex 垂直居中（留白就是它均分出来的）*/
  align-items:stretch!important;
  justify-content:flex-start!important;
  min-height:0!important;             /* 关键：不再被 100vh 撑成整屏 */
  height:auto!important;
  padding:140px 0 48px!important;     /* = 页眉 92 + 可见留白 48（与桌面同款节奏）*/
}


/* ============================================================
   技术文章配图（仅 /equipment.html 下 3 篇文章正文）
   作用：示意图居中、宽度自适应正文、下方小字灰色图注。
   作用域：.pbody figure.tech-fig —— 其它页面/其它正文图片不受影响。
   注：.pbody img 原有 margin 被更具体的选择器覆盖为居中，无全局改动。
   ============================================================ */
.pbody figure.tech-fig{margin:16px auto 20px;max-width:100%;text-align:center}
.pbody figure.tech-fig img{display:block;width:100%;max-width:100%;height:auto;margin:0 auto;border:1px solid #E7EEF6;border-radius:10px;background:#fff}
.pbody figure.tech-fig figcaption{margin-top:8px;font-size:12.5px;line-height:1.7;color:#8A97A8;text-align:center}
html.is-narrow .pbody figure.tech-fig{margin:14px auto 18px}
/* ============================================================
   进入页面：各模块依次飞入（2026-10-02 第三版：每页一套不同编排）
   目标：站内切到任一页面时，页内各模块从不同方向/形态依次飞入到位。
         每类页面形态不同：上下飞入 / 左右飞入 / 四角斜飞 / 纵轴翻转 / 横轴翻转 /
         缩放弹出 / 聚拢收束 / 斜向摆动 / 带角度上升。编排见 lib/v23.js 的 PT_KINDS。
   原则：纯增强、零版式影响。默认不隐藏任何元素，只有 <html class="pt-js"> 时才有初始隐藏态：
         · 禁用 JS → 永不隐藏、永不动画；
         · prefers-reduced-motion: reduce → 直接显示；
         · URL 带 ?nopt=1 → 不启用（对比/回退用）；
         · 动画结束由 JS 摘掉全部 pt-* 类与 --pt-* 内联变量，元素回到自身 CSS
           （卡片 hover 上浮等既有效果照常）。
   ============================================================ */
html.pt-js .pt-i{
  opacity:0;
  will-change:transform,opacity;
  backface-visibility:hidden;
  transform:perspective(var(--pt-persp,1200px))
            translate3d(var(--pt-x,0px),var(--pt-y,0px),0)
            rotate(var(--pt-rot,0deg))
            rotateX(var(--pt-rx,0deg))
            rotateY(var(--pt-ry,0deg))
            scale(var(--pt-sc,1));
}
html.pt-js.pt-in .pt-i{
  opacity:1;
  transform:perspective(var(--pt-persp,1200px))
            translate3d(0,0,0)
            rotate(0deg) rotateX(0deg) rotateY(0deg) scale(1);
  transition:transform var(--pt-dur,720ms) cubic-bezier(.18,.86,.28,1),
             opacity var(--pt-dur,720ms) ease;
  transition-delay:var(--pt-delay,0ms);
}
/* 动画期间裁掉横向溢出，避免出现横向滚动条（clip 不建立滚动容器，不影响 sticky） */
html.pt-run{overflow-x:clip}
/* 旧版「幕布」标记的墓碑规则：仅用于缓存里可能残留的旧 HTML，避免出现裸露色块 */
.hl-pt{display:none}
@media (prefers-reduced-motion:reduce){
  html.pt-js .pt-i{opacity:1!important;transform:none!important;transition:none!important;will-change:auto}
}


/* 2026-10-28 站主要求：技术与应用正文配图过大（原 1150x645 占满画幅）→ 限宽居中 */
.pbody figure.tech-fig{max-width:720px}
.pbody figure.tech-fig img{width:100%;height:auto}
.pbody figure.tech-fig figcaption{margin-top:6px}
@media (max-width:900px){.pbody figure.tech-fig{max-width:100%}}
