/* ===== Design Tokens ===== */
:root{
  --brand:#1668DC; --brand-dark:#0B4A96; --brand-soft:#E8F1FE;
  --accent:#00B4A6; --accent-soft:#E3F7F5;
  --bg:#F5F7FA; --surface:#FFFFFF; --surface-2:#FAFBFC;
  --border:#E5E7EB; --border-2:#D5D9E0;
  --text:#1F2937; --text-2:#5B6472; --text-3:#98A1AE;
  --radius:10px; --radius-lg:16px;
  --shadow:0 2px 12px rgba(11,42,74,.06);
  --shadow-lg:0 8px 28px rgba(11,42,74,.12);
  --maxw:1200px;
  --font:system-ui,-apple-system,"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  /* 样式表加载探针：供页面内联自检脚本读取，用于判断 main.css 是否真正生效 */
  --sb-css:1;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);
  font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none;transition:color .18s}
h1,h2,h3,h4{margin:0;line-height:1.35;font-weight:700;letter-spacing:-.01em}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}
.section{padding:64px 0}
.section--alt{background:var(--surface)}
.sec-head{text-align:center;margin-bottom:40px}
.sec-head h2{font-size:30px;margin-bottom:12px}
.sec-head p{color:var(--text-2);max-width:680px;margin:0 auto}
.sec-head .line{width:44px;height:3px;background:var(--brand);margin:0 auto 16px;border-radius:2px}
.text-brand{color:var(--brand)}

/* ===== Buttons ===== */
.btn{display:inline-flex;align-items:center;gap:6px;padding:11px 24px;border-radius:var(--radius);
  font-size:15px;font-weight:600;border:1px solid transparent;cursor:pointer;transition:.18s}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-dark);transform:translateY(-1px);box-shadow:var(--shadow-lg)}
.btn-ghost{background:#fff;color:var(--brand);border-color:var(--border-2)}
.btn-ghost:hover{border-color:var(--brand);background:var(--brand-soft)}
.btn-sm{padding:7px 16px;font-size:14px}

/* ===== Header ===== */
.hd{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.hd-top{background:var(--brand-dark);color:rgba(255,255,255,.86);font-size:13px}
.hd-top .wrap{display:flex;justify-content:space-between;align-items:center;height:34px;gap:16px}
.hd-top a:hover{color:#fff}
.hd-main .wrap{display:flex;align-items:center;height:68px;gap:18px}
.logo{display:flex;align-items:center;gap:13px;font-size:19px;font-weight:800;color:var(--brand-dark);white-space:nowrap}
.logo span{font-size:12px;font-weight:500;color:var(--text-2);letter-spacing:.06em}
.logo-mark{width:38px;height:38px;border-radius:9px;background:linear-gradient(135deg,var(--brand),var(--accent));
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:16px;flex:0 0 auto}
.logo-img{height:44px;width:auto;display:block;flex:0 0 auto}
/* 标识 + 公司全称：横向锁排（图形 → 中文名 → 英文名），一条竖细线分隔。
   竖排会让 68px 高的页头变高、和右侧导航抢视觉；横排只占一条基线带，最稳。 */
.logo .logo-name{display:flex;flex-direction:column;justify-content:center;gap:6px;
  padding-left:13px;border-left:1px solid var(--border-2);line-height:1.15;white-space:nowrap}
.logo .logo-name b{font-size:20px;font-weight:800;color:var(--brand-dark);letter-spacing:.03em}
.logo .logo-name em{font-size:12px;font-style:normal;font-weight:600;color:var(--text-2);letter-spacing:.05em}
.ft-en{font-size:10.5px;letter-spacing:.06em;color:rgba(255,255,255,.6);font-weight:500}
.nav{display:flex;gap:2px;margin-left:auto}
.nav a{padding:8px 11px;border-radius:8px;font-size:14.5px;font-weight:500;color:var(--text);white-space:nowrap}
.nav a:hover{color:var(--brand);background:var(--brand-soft)}
.nav a.on{color:var(--brand);background:var(--brand-soft);font-weight:600}
.hd-cta{display:flex;align-items:center;gap:12px;white-space:nowrap}
.hd-tel{font-size:19px;font-weight:800;color:var(--brand);letter-spacing:.02em}
.hd-tel small{display:block;font-size:11px;font-weight:500;color:var(--text-3);letter-spacing:0}
.burger{display:none;width:40px;height:40px;border:1px solid var(--border-2);border-radius:8px;
  background:#fff;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:4px}
.burger i{display:block;width:18px;height:2px;background:var(--text);border-radius:2px}

/* ===== Hero carousel ===== */
.hero{position:relative;height:520px;overflow:hidden;background:var(--brand-dark)}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity .7s ease}
.hero-slide.on{opacity:1}
.hero-slide img{width:100%;height:100%;object-fit:cover}
.hero-slide.bright img{filter:brightness(.55) contrast(1.06)}
.hero-slide.prod img{object-position:100% 50%}
.hero-mask{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,26,54,.86) 0%,rgba(6,26,54,.55) 45%,rgba(6,26,54,.12) 100%);
  transition:opacity .45s ease}
.hero-txt{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);color:#fff;
  transition:opacity .3s ease,visibility .3s}
/* 原图自带排版的帧（如「一脸通整体解决方案」）：撤遮罩、撤叠字，直接露出原图文案。
   窄屏 cover 会横向裁切，把焦点压左，保证原图左侧的标题不被裁掉。 */
.hero-slide.notext img{object-position:0 50%}
.hero.no-txt .hero-mask{opacity:0}
.hero.no-txt .hero-txt{opacity:0;visibility:hidden}
.hero-txt .wrap{max-width:var(--maxw)}
.hero-txt h1{font-size:42px;margin-bottom:16px;line-height:1.25;text-shadow:0 2px 12px rgba(0,0,0,.3)}
.hero-txt .sub{font-size:17px;opacity:.92;margin-bottom:26px;max-width:560px}
.hero-txt .btns{display:flex;gap:12px;flex-wrap:wrap}
.hero-dots{position:absolute;bottom:22px;left:0;right:0;display:flex;justify-content:center;gap:8px;z-index:3}
.hero-dots button{width:9px;height:9px;border-radius:50%;border:0;background:rgba(255,255,255,.45);cursor:pointer;padding:0;transition:.2s}
.hero-dots button.on{background:#fff;width:26px;border-radius:5px}
.hero-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:42px;height:42px;
  border-radius:50%;border:0;background:rgba(0,0,0,.32);color:#fff;font-size:20px;cursor:pointer;backdrop-filter:blur(4px)}
.hero-arrow:hover{background:rgba(0,0,0,.55)}
.hero-arrow.prev{left:16px}.hero-arrow.next{right:16px}

/* ===== Stats ===== */
/* HTML 结构是 .stats-band > .wrap > .stats，所以栅格必须落在 .stats 上——
   写成 .stats .wrap 永远匹配不到，四个数字会竖着挤成一列。 */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.stat{text-align:center;padding:8px}
.stat b{display:block;font-size:32px;color:var(--brand);font-weight:800;line-height:1.2}
.stat span{font-size:14px;color:var(--text-2)}

/* ===== Category cards ===== */
/* 5 个分类按 3 列排成 3+2，比 4 列留一排空位更平衡 */
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.cat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  overflow:hidden;transition:.22s;display:flex;flex-direction:column}
.cat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--brand)}
.cat-card .thumb{aspect-ratio:16/9;overflow:hidden;background:var(--surface-2)}
.cat-card .thumb img{width:100%;height:auto;display:block;object-fit:cover;transition:.4s}
.cat-card:hover .thumb img{transform:scale(1.06)}
.cat-card .body{padding:18px;display:flex;flex-direction:column;flex:1}
.cat-card h3{font-size:17px;margin-bottom:6px}
.cat-card p{font-size:13.5px;color:var(--text-2);line-height:1.6}
.cat-card .more{margin-top:auto;padding-top:12px;font-size:14px;color:var(--brand);font-weight:600}

/* ===== Featured products（首页重点产品大卡） ===== */
.feat-sec{background:var(--surface)}
.feat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.feat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  overflow:hidden;display:flex;flex-direction:column;transition:.24s}
.feat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--brand)}
.feat-card .thumb{position:relative;aspect-ratio:16/9;background:var(--surface-2);overflow:hidden}
.feat-card .thumb img{width:100%;height:auto;display:block;transition:transform .5s}
.feat-card:hover .thumb img{transform:scale(1.04)}
.feat-card .badge{position:absolute;left:14px;top:14px;z-index:2;background:var(--brand);color:#fff;
  font-size:12px;font-weight:600;padding:4px 11px;border-radius:999px;letter-spacing:.02em}
.feat-card .body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.feat-card h3{font-size:21px;margin-bottom:7px}
.feat-card .sub{font-size:13.5px;color:var(--brand);font-weight:600;margin-bottom:16px}
.feat-card .pts{display:grid;gap:10px;margin-bottom:18px}
.feat-card .pts li{font-size:13.5px;color:var(--text-2);line-height:1.55;padding-left:17px;position:relative}
.feat-card .pts li::before{content:"";position:absolute;left:0;top:7px;width:6px;height:6px;
  border-radius:50%;background:var(--accent)}
.feat-card .pts b{display:block;color:var(--text);font-weight:600;margin-bottom:1px}
.feat-card .more{margin-top:auto;font-size:14px;color:var(--brand);font-weight:600}

/* ===== Product grid ===== */
.prod-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.prod-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  overflow:hidden;transition:.22s;display:flex;flex-direction:column}
.prod-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}
.prod-card .thumb{aspect-ratio:4/3;overflow:hidden;background:var(--surface-2)}
.prod-card .thumb img{width:100%;height:100%;object-fit:cover;transition:.4s}
.prod-card:hover .thumb img{transform:scale(1.05)}
.prod-card .body{padding:16px;flex:1;display:flex;flex-direction:column}
.prod-card h4{font-size:16px;margin-bottom:6px}
.prod-card .desc{font-size:13px;color:var(--text-2);flex:1;line-height:1.6}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.tag{font-size:12px;padding:3px 9px;border-radius:20px;background:var(--brand-soft);color:var(--brand)}

/* ===== Solution cards ===== */
.sol-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.sol-card{position:relative;display:block;border-radius:var(--radius-lg);overflow:hidden;
  aspect-ratio:16/10;color:#fff}
.sol-card .thumb{position:absolute;inset:0}
.sol-card .thumb img{width:100%;height:100%;object-fit:cover}
/* 底部遮罩承载白字：白底产品图若没有这层，标题会直接糊在白色上 */
.sol-card .mask{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(6,26,54,0) 30%,rgba(6,26,54,.55) 62%,rgba(6,26,54,.92))}
.sol-card .body{position:absolute;left:24px;right:24px;bottom:22px;z-index:2}
.sol-card h3{font-size:19px;margin-bottom:6px}
.sol-card p{font-size:13.5px;opacity:.9}

/* ===== Cases ===== */
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.case-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.case-card .thumb{aspect-ratio:16/10;overflow:hidden;background:var(--surface-2)}
.case-card .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.case-card .body{padding:18px}
.case-card .ind{font-size:12px;color:var(--accent);font-weight:600;margin-bottom:4px}
.case-card h4{font-size:16px;margin-bottom:6px}
.case-card p{font-size:13.5px;color:var(--text-2)}

/* ===== Steps / 服务与支持 ===== */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:stretch}
.step{position:relative;display:flex;flex-direction:column;overflow:hidden;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:26px 24px 26px;text-align:left;box-shadow:var(--shadow);
  transition:transform .2s,box-shadow .2s,border-color .2s}
.step::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--brand),var(--accent));opacity:0;transition:opacity .2s}
.step:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--brand-soft)}
.step:hover::before{opacity:1}
.step .no{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  width:38px;height:38px;margin-bottom:16px;border-radius:11px;
  background:var(--brand-soft);color:var(--brand);
  font-size:15px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.step h4{font-size:16px;font-weight:700;color:var(--text);
  margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.step p{font-size:13.5px;line-height:1.8;color:var(--text-2);flex:1 1 auto}

/* ===== CTA band ===== */
.cta-band{background:linear-gradient(120deg,var(--brand-dark),var(--brand));color:#fff;padding:52px 0}
.cta-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.cta-band h2{font-size:26px;margin-bottom:6px}
.cta-band p{opacity:.9;font-size:15px}
.cta-band .btn-primary{background:#fff;color:var(--brand)}
.cta-band .btn-primary:hover{background:#EEF4FF}

/* ===== Page header (inner) ===== */
.ph{background:linear-gradient(120deg,var(--brand-dark),#12539E);color:#fff;padding:44px 0}
.ph h1{font-size:30px;margin-bottom:8px}
.ph p{opacity:.9;font-size:15px;max-width:760px}
.crumb{font-size:13px;opacity:.82;margin-bottom:10px}
.crumb a:hover{text-decoration:underline}

/* ===== Product detail ===== */
.pd-main{background:var(--surface);padding:36px 0}
.pd-top{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:start}
/* 主图固定 4:3：所有产品图已由 fit_grid.py 规整成统一画幅，
   切换缩略图时画面高度不再跳动 */
.pd-gallery-main{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;
  background:var(--surface-2);aspect-ratio:4/3}
.pd-gallery-main img{width:100%;height:100%;object-fit:contain;display:block;cursor:zoom-in}
.pd-thumbs{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}
.pd-thumbs button{border:1px solid var(--border);border-radius:8px;overflow:hidden;padding:0;background:none;
  cursor:pointer;width:78px;height:60px}
.pd-thumbs button.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}
.pd-thumbs img{width:100%;height:100%;object-fit:cover}
.pd-info h1{font-size:30px;margin-bottom:8px}
.pd-info .sub{font-size:16px;color:var(--brand);font-weight:600;margin-bottom:14px}
.pd-info .summary{color:var(--text-2);margin-bottom:18px}
.pd-sell{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}
.pd-sell li{display:flex;gap:8px;font-size:14px;color:var(--text-2)}
.pd-sell li::before{content:"✓";color:var(--accent);font-weight:800}

.hl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.hl{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px}
.hl .ic{width:42px;height:42px;border-radius:10px;background:var(--brand-soft);color:var(--brand);
  display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;margin-bottom:12px}
.hl h4{font-size:16px;margin-bottom:6px}
.hl p{font-size:13.5px;color:var(--text-2)}

/* spec table */
.spec-group{margin-bottom:22px}
.spec-group h4{font-size:16px;padding-left:11px;border-left:3px solid var(--brand);margin-bottom:12px}
.spec-tbl{width:100%;border-collapse:collapse;background:var(--surface);font-size:14px;
  border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.spec-tbl th,.spec-tbl td{padding:11px 16px;border-bottom:1px solid var(--border);text-align:left}
.spec-tbl tr:nth-child(even){background:var(--surface-2)}
.spec-tbl td:first-child{width:32%;color:var(--text-2);background:rgba(245,247,250,.6);font-weight:500}
.spec-tbl tr:last-child td{border-bottom:0}
.tbl-scroll{overflow-x:auto}

/* gallery grid */
/* 必须写 height:auto —— <img> 上的 height="480" 属性会作为 presentational hint
   生效，若不显式覆盖，每张图都会被撑成 480px 高，图墙变成一排竖条，
   同一行里各图主体大小看着完全不一样。这是「大小不一致」的真正原因。 */
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gal-grid img{border-radius:var(--radius);border:1px solid var(--border);width:100%;height:auto;
  aspect-ratio:4/3;object-fit:cover;cursor:zoom-in;transition:.2s;background:var(--surface-2)}
.gal-grid img:hover{box-shadow:var(--shadow-lg)}
.scene-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.scene-grid figure{margin:0;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);overflow:hidden}
.scene-grid img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;cursor:zoom-in}
.scene-grid figcaption{padding:10px 14px;font-size:13.5px;color:var(--text-2)}

.scen-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.scen{border:1px solid var(--border);border-radius:var(--radius);padding:20px;background:var(--surface)}
.scen h4{font-size:15px;margin-bottom:6px}
.scen p{font-size:13px;color:var(--text-2)}

.faq{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}
.faq details{border-bottom:1px solid var(--border)}
.faq details:last-child{border-bottom:0}
.faq summary{padding:14px 18px;cursor:pointer;font-weight:600;font-size:15px;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";float:right;color:var(--brand);font-weight:800}
.faq details[open] summary::after{content:"−"}
.faq .a{padding:0 18px 16px;font-size:14px;color:var(--text-2)}

/* ===== Footer ===== */
.ft{background:#0B2039;color:rgba(255,255,255,.7);padding:48px 0 0;font-size:14px}
.ft .wrap{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:32px;padding-bottom:32px}
.ft h4{color:#fff;font-size:15px;margin-bottom:14px}
.ft ul li{margin-bottom:8px}
.ft ul a:hover{color:#fff}
.ft-bot{border-top:1px solid rgba(255,255,255,.12);padding:16px 0;text-align:center;font-size:13px;color:rgba(255,255,255,.55)}
.ft-bot a{color:rgba(255,255,255,.75);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.25)}
.ft-bot a:hover{color:#fff;border-bottom-color:rgba(255,255,255,.65)}
.ft .logo-mark{background:linear-gradient(135deg,#2E86F5,var(--accent))}
.ft .logo-img{height:36px}
.ft .logo{color:#fff;font-size:17px}
.ft .logo span{color:rgba(255,255,255,.6)}

/* ===== Lightbox ===== */
.lb{position:fixed;inset:0;background:rgba(8,20,38,.92);z-index:200;display:none;
  align-items:center;justify-content:center;padding:32px}
.lb.on{display:flex}
.lb img{max-width:94vw;max-height:86vh;border-radius:8px}
.lb .x{position:absolute;top:18px;right:24px;font-size:34px;color:#fff;background:none;border:0;cursor:pointer;line-height:1}
.lb .cap{position:absolute;bottom:20px;left:0;right:0;text-align:center;color:rgba(255,255,255,.85);font-size:14px}

/* ===== Back to top ===== */
.totop{position:fixed;right:20px;bottom:26px;width:44px;height:44px;border-radius:50%;background:var(--brand);
  color:#fff;border:0;cursor:pointer;font-size:18px;box-shadow:var(--shadow-lg);display:none;z-index:50}
.totop.on{display:block}

/* ===== Responsive ===== */
/* 页头多了一列公司全称，1200 上下先把导航收紧一点，避免挤到电话/按钮 */
@media(max-width:1280px){
  .hd-main .wrap{gap:16px}
  .nav a{padding:8px 9px;font-size:14px}
  .logo{gap:11px}
  .logo-img{height:42px}
  .logo .logo-name{padding-left:11px;gap:5px}
  .logo .logo-name b{font-size:17.5px}
  .logo .logo-name em{font-size:11px}
}
@media(max-width:1180px){
  /* 窄屏：页头电话与顶栏蓝条里的号码重复，让位给「公司全称 + 英文行」 */
  .hd-tel{display:none}
  .logo .logo-name em{font-size:10px;letter-spacing:.04em}
}
@media(max-width:1100px){
  .cat-grid{grid-template-columns:repeat(2,1fr)}
  .prod-grid{grid-template-columns:repeat(3,1fr)}
  .hl-grid,.scen-grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .nav a{padding:8px 7px;font-size:13.5px}
}
@media(max-width:1000px){
  .logo .logo-name{display:none}          /* 导航还在旁边时，全称先让位 */
}
@media(max-width:900px){
  .nav{display:none}
  .hd-cta{margin-left:auto}               /* 导航收起后由它把电话/按钮推到右侧 */
  .logo-img{height:38px}
  .logo{gap:10px}
  .logo .logo-name{display:flex;padding-left:10px;gap:4px}
  .logo .logo-name b{font-size:16px}
  .logo .logo-name em{display:block;font-size:9.5px;letter-spacing:.04em}
  .nav.on{display:flex;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;
    padding:12px;border-bottom:1px solid var(--border);box-shadow:var(--shadow);gap:2px}
  .burger{display:flex;margin-left:auto}
  .hd-main .wrap{position:relative}
  .hero{height:420px}
  .hero-txt h1{font-size:30px}
  .pd-top{grid-template-columns:1fr;gap:24px}
  .cat-grid,.prod-grid,.case-grid,.sol-grid{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(2,1fr)}
  .ft .wrap{grid-template-columns:repeat(2,1fr)}
  .gal-grid{grid-template-columns:repeat(2,1fr)}
  .scene-grid{grid-template-columns:repeat(2,1fr)}
  .pd-sell{grid-template-columns:1fr}
  .feat-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .section{padding:44px 0}
  .sec-head h2{font-size:24px}
  /* 注：手机端列表改两列、卡片整体瘦身，统一见样式表末尾「移动端紧凑布局」块 */
  .cat-grid,.prod-grid,.case-grid,.sol-grid,.hl-grid,.scen-grid,.steps{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,1fr)}
  .ft .wrap{grid-template-columns:1fr}
  .hero{height:360px}
  .hero-txt h1{font-size:24px}
  .hero-txt .sub{font-size:14px}
  .gal-grid,.scene-grid{grid-template-columns:repeat(2,1fr)}
  /* 手机：标识缩到 30px，公司名只留中文、单行；电话在顶部条里，这里让位给品牌名 */
  .logo{gap:9px}
  .logo-img{height:30px}
  .logo .logo-name{padding-left:9px;border-left:0;gap:2px}
  .logo .logo-name b{font-size:13.5px;letter-spacing:.02em}
  .logo .logo-name em{display:none}        /* 手机宽度放不下英文行，隐藏避免与按钮挤压 */
  .hd-tel{display:none}
  /* 顶部条：手机上一行放不下，允许折行并按内容撑高，别把字挤出蓝条 */
  .hd-top{font-size:12px}
  .hd-top .wrap{height:auto;min-height:34px;padding:7px 0;flex-wrap:wrap;gap:2px 10px;line-height:1.45}
  .step{padding:22px 20px;border-radius:var(--radius)}
  .steps{gap:14px}
}
/* 超小屏（≤420）：再让一步，按钮收进菜单，保品牌名不被折断 */
@media(max-width:420px){
  .logo-img{height:28px}
  .logo{gap:8px}
  .logo .logo-name{padding-left:8px}
  .logo .logo-name b{font-size:12px;letter-spacing:0}
  .logo .logo-name em{display:none}        /* 超小屏连英文行一起让位，保中文全称不被折断 */
  .hd-cta{margin-left:auto}
  .hd-cta .btn{display:none}
}

/* ============ 新增组件（build.py 生成页面使用） ============ */
/* 页面标题 */
.page-title{font-size:34px;font-weight:800;margin:8px 0 12px;letter-spacing:-.4px}
.page-title .en{display:block;font-size:13px;font-weight:600;letter-spacing:2px;color:var(--text-3);margin-top:6px}
.page-lead{font-size:16px;color:var(--text-2);line-height:1.9;max-width:820px}
.sec-more{margin-top:26px}
.stats-band{padding:26px 0;background:var(--surface);border-bottom:1px solid var(--border)}

/* 行业场景卡 */
.ind-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ind-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:22px 20px;transition:transform .25s ease,box-shadow .25s ease,opacity .25s ease}
.ind-card::after{content:"";position:absolute;inset:0;border-radius:var(--radius);opacity:0;
  box-shadow:0 12px 28px rgba(16,40,80,.14);transition:opacity .25s ease;pointer-events:none}
.ind-card{position:relative}
.ind-card:hover{transform:translateY(-3px)}
.ind-card:hover::after{opacity:1}
.ind-card .ic{font-size:26px;line-height:1;margin-bottom:10px}
.ind-card h4{font-size:16px;margin-bottom:6px}
.ind-card p{font-size:13.5px;color:var(--text-2);line-height:1.75;margin:0}

/* 联系我们 */
.contact-wrap{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start}
.ct-wrap{margin-top:4px}
.ct-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.ct-card{display:flex;gap:12px;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);padding:16px 18px}
.ct-card .ic{flex:0 0 auto;width:36px;height:36px;border-radius:9px;background:var(--brand-soft);
  color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:17px}
.ct-card h4{font-size:14px;color:var(--text-2);font-weight:600;margin-bottom:3px}
.ct-card .v{font-size:16px;font-weight:700;margin:0}
.ct-card .v a{color:inherit}
.ct-card .s{font-size:12.5px;color:var(--text-3);margin:4px 0 0;line-height:1.6}
/* 二维码占位框（未提供图片时显示） */
.qr-ph{margin-top:14px;width:150px;height:150px;border-radius:var(--radius);
  border:1px dashed var(--border);display:flex;align-items:center;justify-content:center;
  font-size:13px;color:var(--text-3);text-align:center;line-height:1.7;background:var(--bg)}
/* 二维码真图：白底 + 细实线，实拍扫描时对比度足够 */
.qr{display:block;width:150px;height:150px;border-radius:var(--radius);
  border:1px solid var(--border);background:#fff}
/* 微信二维码卡：竖排布局，图在标题下 */
.ct-card-qr{flex-direction:column;align-items:flex-start;gap:10px}
.ct-card-qr .hd{display:flex;align-items:center;gap:12px}
.ct-card-qr .qr{width:132px;height:132px;margin:0}
.ct-card-qr .s{margin:0}

/* 表单 */
.form-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:26px}
.form-box h3{font-size:19px;margin-bottom:6px}
.form-lead{font-size:13.5px;color:var(--text-2);margin-bottom:18px;line-height:1.7}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form .field{margin-bottom:14px}
.form label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px;color:var(--text)}
.form label b{color:#D93025;font-weight:400}
.form input,.form select,.form textarea{width:100%;box-sizing:border-box;font:inherit;font-size:14px;
  padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);
  transition:border-color .18s ease,box-shadow .18s ease}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(22,104,220,.13)}
.form textarea{resize:vertical;min-height:96px}
.form .err{display:block;min-height:16px;font-size:12.5px;color:#D93025;margin-top:4px}
.form .field.bad input,.form .field.bad select,.form .field.bad textarea{border-color:#D93025}
.form-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:6px}
.form-note{font-size:12.5px;color:var(--text-3);margin:0;line-height:1.6}
.form-ok{margin-top:14px;padding:12px 14px;border-radius:8px;background:#E8F7EE;
  border:1px solid #B7E2C4;color:#1B7A3C;font-size:14px}

/* 案例卡补充 */
.case-card .body .quote{font-size:14.5px;font-weight:600;color:var(--text);line-height:1.8;margin:0 0 8px}
.case-card .body .pain,.case-card .body .res{font-size:13.5px;color:var(--text-2);line-height:1.75;margin:0 0 5px}
.case-card .body b{color:var(--brand);font-weight:700;margin-right:6px}
.case-card .body .src-tip{font-size:12px;color:#B26A00;background:#FFF6E5;border:1px solid #FFE2B0;
  display:inline-block;padding:2px 8px;border-radius:20px;margin:6px 0 0}
.case-card .body h4 .ind{font-size:12px;font-weight:500;color:var(--text-3);margin-left:8px}

/* 产品详情补充 */
.pd-gallery{display:flex;flex-direction:column;gap:10px}
.pd-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.pd-thumb{padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;background:none;cursor:pointer}
.pd-thumb.on{border-color:var(--brand)}
.pd-thumb img{display:block;width:100%;height:74px;object-fit:cover}
.pd-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.pd-sub{font-size:15px;color:var(--brand);font-weight:600;margin:8px 0 12px}
.pd-sum{font-size:14.5px;color:var(--text-2);line-height:1.9;margin:14px 0}
.sol-hero{margin-top:22px;border-radius:var(--radius);overflow:hidden}
.sol-hero img{display:block;width:100%;height:340px;object-fit:cover}
.biz-tags{margin-top:22px}
.ft-contact li{line-height:1.9}

/* 响应式补充 */
@media(max-width:1100px){
  .ind-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .ind-grid{grid-template-columns:repeat(2,1fr)}
  .contact-wrap{grid-template-columns:1fr;gap:26px}
  .stats{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  /* 注：手机端行业场景卡改两列，见样式表末尾「移动端紧凑布局」块 */
  .ind-grid{grid-template-columns:1fr}
  .ct-grid{grid-template-columns:1fr}
  .form .row{grid-template-columns:1fr}
  .page-title{font-size:26px}
  .pd-thumbs{grid-template-columns:repeat(3,1fr)}
  .sol-hero img{height:220px}
}

/* ===== 应用方案区块（产品详情页） ===== */
.plan-sec{background:var(--surface)}
.plan-lead{font-size:15px;color:var(--text-2);line-height:1.95;max-width:880px;margin:0 auto 8px;
  text-align:justify}
.plan-h{font-size:17px;margin:36px 0 16px;padding-left:12px;border-left:3px solid var(--brand)}
.plan-advs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.plan-adv{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}
.plan-adv h4{font-size:15px;margin-bottom:6px;color:var(--brand)}
.plan-adv p{font-size:13px;color:var(--text-2);line-height:1.7}
.plan-mods{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.plan-mod{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:18px}
.plan-mod h4{font-size:14.5px;margin-bottom:10px}
.plan-mod li{font-size:12.5px;color:var(--text-2);line-height:1.65;padding-left:13px;position:relative;
  margin-bottom:5px}
.plan-mod li::before{content:"";position:absolute;left:0;top:7px;width:5px;height:5px;border-radius:50%;
  background:var(--accent)}
.plan-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.plan-step{position:relative;background:var(--brand-soft);border-radius:var(--radius);padding:18px 18px 18px 52px}
.plan-step .no{position:absolute;left:16px;top:17px;width:24px;height:24px;border-radius:50%;
  background:var(--brand);color:#fff;font-size:13px;font-weight:700;display:flex;
  align-items:center;justify-content:center}
.plan-step h5{font-size:14.5px;margin-bottom:4px}
.plan-step p{font-size:12.5px;color:var(--text-2);line-height:1.65}
.plan-modes{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.plan-mode{border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;background:var(--bg)}
.plan-mode h5{font-size:14px;margin-bottom:6px;color:var(--brand-dark)}
.plan-mode p{font-size:12.5px;color:var(--text-2);line-height:1.7}
.plan-accts{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.plan-acct{border:1px solid var(--border);border-radius:var(--radius);padding:18px}
.plan-acct h5{font-size:14px;margin-bottom:10px}
.plan-acct ul{display:flex;flex-wrap:wrap;gap:8px}
.plan-acct li{font-size:12.5px;color:var(--text-2);background:var(--bg);border:1px solid var(--border);
  border-radius:999px;padding:4px 12px}
.plan-tags{justify-content:flex-start}
.plan-tags .tag{font-size:12.5px;padding:5px 13px}
.plan-tags .tag-app{background:var(--brand-soft);color:var(--brand-dark);border-color:transparent}

@media(max-width:900px){
  .plan-advs,.plan-mods,.plan-steps,.plan-modes{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  .plan-advs,.plan-mods,.plan-steps,.plan-modes,.plan-accts{grid-template-columns:1fr}
  .plan-lead{font-size:14px;text-align:left}
}

/* ===== 解决方案详情（2026-10-22 按客户资料重新组织） =====
   层级：标题/导语/主图/关键指标 → 背景痛点(3) → 方案构成(4) → 核心能力(6) → 涉及产品 → 适用场景
   每段条目数固定，栅格列数与之整除，同一行卡片由 grid 自动等高，不会出现参差。 */
.sol-sub{font-size:15px;font-weight:600;color:var(--brand);margin:0 0 10px;letter-spacing:.01em}
.sol-metric-note{margin:24px 0 10px;font-size:12.5px;color:var(--text-3);letter-spacing:.02em}
.sol-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:0}
.sol-metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:20px 18px;text-align:center;box-shadow:var(--shadow)}
.sol-metric b{display:block;font-size:30px;font-weight:800;line-height:1.2;color:var(--brand);
  letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.sol-metric span{display:block;margin-top:6px;font-size:13.5px;line-height:1.6;color:var(--text-2)}

.sol-pain{font-size:15px;line-height:1.95;color:var(--text-2);max-width:880px;
  margin:0 auto 28px;text-align:justify}
.sol-pains{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
/* 痛点卡加一道青色左边线，与「方案构成」的白卡区分开，不新增色板 */
.sol-pcard{background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--accent);
  border-radius:var(--radius);padding:20px 22px}
.sol-pcard h4{font-size:15.5px;margin-bottom:8px}
.sol-pcard p{font-size:13.5px;line-height:1.8;color:var(--text-2)}

.sol-mods{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.sol-mod{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:20px;display:flex;flex-direction:column}
.sol-mod h4{font-size:15px;font-weight:700;color:var(--brand-dark);
  margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.sol-mod li{position:relative;padding-left:14px;margin-bottom:6px;
  font-size:13px;line-height:1.7;color:var(--text-2)}
.sol-mod li:last-child{margin-bottom:0}
.sol-mod li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;
  border-radius:50%;background:var(--accent)}

/* 核心能力复用产品详情页的 .plan-advs/.plan-adv，只把字号拉齐到 13.5/1.8 */
.sol-points .plan-adv p{font-size:13.5px;line-height:1.8}

.sol-scenes{justify-content:center;gap:10px}
.sol-scenes .tag{font-size:13.5px;padding:7px 18px;border-radius:999px}

@media(max-width:1100px){
  .sol-mods{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  .sol-pains{grid-template-columns:1fr}   /* 3 条走 2 列会留半排空位，直接单列 */
  .sol-pain{font-size:14px;text-align:left}
}
@media(max-width:600px){
  .sol-mods{grid-template-columns:1fr}
  .sol-metrics{grid-template-columns:1fr;gap:12px}
  .sol-metric{display:flex;align-items:baseline;justify-content:center;gap:12px;padding:16px 18px}
  .sol-metric b{font-size:26px}
  .sol-metric span{margin-top:0}
  .sol-pcard{padding:18px 18px}
  .sol-scenes{justify-content:flex-start}
}

/* ============================================================
   首页「公司简介」区块（导航锚点 #about）
   左正文 + 右事实清单，两列等顶；窄屏整列堆叠
   ============================================================ */
.about-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:36px;align-items:start}
.about-main h3{font-size:19px;font-weight:700;color:var(--brand-dark);margin-bottom:14px;letter-spacing:.01em}
.about-desc{font-size:14.5px;line-height:1.95;color:var(--text-2);text-align:justify}
.about-facts{list-style:none;display:flex;flex-direction:column;gap:12px}
.about-facts li{background:var(--brand-soft);border:1px solid var(--border);border-radius:10px;padding:14px 16px}
.about-facts b{display:block;font-size:12.5px;font-weight:600;color:var(--text-3);letter-spacing:.04em;margin-bottom:4px}
.about-facts span{display:block;font-size:14px;font-weight:600;color:var(--brand-dark);line-height:1.6}

/* ============================================================
   锚点跳转：页头 sticky（顶栏 34 + 主导航 68），滚动定位时留出高度，
   避免标题被吸顶栏盖住
   ============================================================ */
section[id],div[id]{scroll-margin-top:112px}

/* ============================================================
   移动端导航抽屉
   桌面端 .nav-extra 不显示（右侧已有电话与咨询按钮）；≤900px 导航收起后，
   抽屉内补上咨询入口，保证移动端也有完整跳转能力
   ============================================================ */
.nav-extra{display:none}
.nav-mask{position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:55}
.nav-mask[hidden]{display:none}
body.nav-open{overflow:hidden}
.burger.on i:nth-child(1){transform:translateY(6px) rotate(45deg)}
.burger.on i:nth-child(2){opacity:0}
.burger.on i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.burger i{transition:transform .22s ease,opacity .22s ease}

@media(max-width:1280px){
  .nav a{padding:8px 8px;font-size:13.5px}
  .hd-tel{font-size:17px}
}
@media(max-width:1100px){
  .about-grid{grid-template-columns:1fr;gap:24px}
  .nav a{padding:8px 6px;font-size:13px}
  .hd-tel{font-size:16px}
}
@media(max-width:900px){
  /* 抽屉：挂在页头下方的整幅下拉（.hd 有 backdrop-filter，会生成包含块，
     这里必须用 absolute 而非 fixed，否则定位基准会变成页头本身） */
  .nav.on{position:absolute;top:100%;left:0;right:0;max-height:calc(100vh - 102px);
    overflow-y:auto;padding:14px 16px 18px;gap:4px;
    box-shadow:0 16px 28px rgba(15,23,42,.14);border-bottom:1px solid var(--border)}
  .nav.on a{padding:12px 14px;font-size:15px;border-radius:10px}
  .nav.on .nav-extra{display:flex;flex-direction:column;gap:12px;margin-top:14px;
    padding-top:14px;border-top:1px solid var(--border)}
  .nav.on .nav-tel{font-size:16px;font-weight:700;color:var(--brand);padding:2px 14px}
  .nav.on .nav-extra .btn{width:100%;justify-content:center}
}
@media(max-width:600px){
  section[id],div[id]{scroll-margin-top:96px}
  .about-desc{font-size:14px;line-height:1.9}
  .about-facts{gap:10px}
  .about-facts li{padding:12px 14px}
  .ft-bot{font-size:12px;line-height:1.8}
}

/* ============================================================
   移动端紧凑布局（≤600px）· 2026-10-28
   目标：产品列表 / 场景模块由纵向单列改为两列网格，同步压缩卡片高度、
   图片尺寸、上下间距与留白，使手机端页面总高度约减半。
   原则：只调版式，不动 DOM——条目、文案、链接、图片一个都不少；
        正文字号 ≥11.5px、按钮点击区 ≥34px，保证可读、可点；
        长词强制折行，窄栏内不横向溢出、不错位。
   覆盖关系：本块位于样式表末尾，会覆盖上方 @media(max-width:600px)
   中的同名规则。如需回退，删除本块即可（备份见 03_tools/_bak/）。
   ============================================================ */
@media(max-width:600px){
  /* ---- 栅格：列表 / 场景一律两列；流程步骤带序号，保留单列更好读 ---- */
  .cat-grid,.prod-grid,.case-grid,.sol-grid,.ind-grid,.hl-grid,.scen-grid{
    grid-template-columns:repeat(2,1fr);gap:10px}
  .steps{grid-template-columns:1fr;gap:10px}
  .sol-mods{grid-template-columns:repeat(2,1fr);gap:10px}

  /* ---- 区块留白 ---- */
  .section{padding:26px 0}
  .sec-head{margin-bottom:20px}
  .sec-head .line{width:34px;margin:0 auto 10px}
  .sec-head h2{font-size:20px;margin-bottom:8px}
  .sec-head p{font-size:13px;line-height:1.6}
  .sec-more{margin-top:16px}
  .stats-band{padding:14px 0}
  .stats{gap:10px}
  .stat{padding:2px}
  .stat b{font-size:24px}
  .stat span{font-size:12px}

  /* ---- 首屏 ---- */
  .hero{height:280px}
  .hero-txt h1{font-size:21px;margin-bottom:10px}
  .hero-txt .sub{font-size:13px;margin-bottom:16px}
  .hero-txt .btns{gap:8px}
  .hero-dots{bottom:14px}

  /* ---- 分类卡（核心产品 5 项）---- */
  .cat-card .thumb{aspect-ratio:16/9}
  .cat-card .body{padding:10px 10px 8px}
  .cat-card h3{font-size:13.5px;margin-bottom:4px;line-height:1.35}
  .cat-card p{font-size:11.5px;line-height:1.5}
  .cat-card .more{margin-top:auto;padding-top:6px;font-size:11.5px}

  /* ---- 产品卡（明星产品 / 产品中心）---- */
  .prod-card .thumb{aspect-ratio:16/10}
  .prod-card .body{padding:9px 10px 10px}
  .prod-card h4{font-size:13px;margin-bottom:3px;line-height:1.35}
  .prod-card .desc{font-size:11.5px;line-height:1.5}
  .prod-card .tags{margin-top:6px;gap:4px}
  .prod-card .tag{font-size:10.5px;padding:2px 7px}

  /* ---- 解决方案卡（图卡，文字压在图上）---- */
  .sol-card{aspect-ratio:4/3}
  .sol-card .body{left:10px;right:10px;bottom:9px}
  .sol-card h3{font-size:13.5px;margin-bottom:3px;line-height:1.3}
  .sol-card p{font-size:11.5px;line-height:1.45}

  /* ---- 案例卡 ---- */
  .case-card .thumb{aspect-ratio:16/10}
  .case-card .body{padding:9px 10px 11px}
  .case-card .ind{font-size:10.5px;margin-bottom:2px}
  .case-card h4{font-size:13px;margin-bottom:3px;line-height:1.35}
  .case-card p{font-size:11.5px;line-height:1.5}

  /* ---- 行业场景卡 ---- */
  .ind-card{padding:11px 11px 12px}
  .ind-card .ic{font-size:18px;margin-bottom:5px}
  .ind-card h4{font-size:13px;margin-bottom:3px;line-height:1.35}
  .ind-card p{font-size:11.5px;line-height:1.5}

  /* ---- 首页重点产品大卡 ---- */
  .feat-card .body{padding:14px 14px 16px}
  .feat-card .badge{left:10px;top:10px;font-size:11px;padding:3px 9px}
  .feat-card h3{font-size:17px;margin-bottom:5px}
  .feat-card .sub{font-size:12.5px;margin-bottom:10px}
  .feat-card .pts{gap:7px;margin-bottom:12px}
  .feat-card .pts li{font-size:12.5px;line-height:1.5}
  .feat-card .more{font-size:13px}

  /* ---- 按钮：缩小但保住 34px 点击高度 ---- */
  .btn{padding:8px 16px;font-size:13.5px;min-height:34px}
  .btn-sm{padding:6px 12px;font-size:12.5px}

  /* ---- 防溢出：窄栏里长词 / 长串强制折行，绝不横向溢出 ---- */
  .cat-card,.prod-card,.sol-card,.case-card,.ind-card,.feat-card{overflow-wrap:anywhere}
  .cat-card h3,.prod-card h4,.case-card h4,.ind-card h4,.sol-card h3,.sol-card p{overflow-wrap:anywhere}

  /* ---- 页脚 ---- */
  .ft .wrap{padding-bottom:20px;gap:20px}
}
/* 超小屏（≤420）：再减一档边距，把宽度让给两列卡片 */
@media(max-width:420px){
  .wrap{padding:0 14px}
  .cat-grid,.prod-grid,.case-grid,.sol-grid,.ind-grid,.hl-grid,.scen-grid{gap:8px}
  .prod-card .desc,.case-card p,.ind-card p,.cat-card p,.sol-card p{font-size:11px}
  .hero{height:250px}
}

/* ============================================================
   移动端紧凑布局 · 第二轮（≤600px）· 2026-10-28
   首页首轮只降 ~39%，本轮压缩非列表区块（首屏/简介/优势/联系/页脚），
   并把详情页方案模块改两列，整页高度进一步逼近减半目标。
   仍然只调版式不动 DOM，全部条目保留。
   ============================================================ */
@media(max-width:600px){
  /* ---- 首屏与数字带 ---- */
  .hero{height:240px}
  .hero-arrow{width:32px;height:32px;font-size:15px}
  /* 轮播圆点：视觉不变（约9px），命中区扩到 ~20px，触屏好点 */
  .hero-dots button{width:18px;height:22px;background-clip:content-box;padding:6px 4px;border-radius:50%}
  .hero-dots button.on{width:30px;padding:6px 5px;border-radius:50%}
  .stats-band{padding:12px 0}
  .stat b{font-size:22px}
  .stat span{font-size:11.5px}

  /* ---- 公司简介 ---- */
  .about-desc{font-size:13.5px;line-height:1.75}
  .about-facts{gap:8px}
  .about-facts li{padding:9px 12px}
  .about-facts span{font-size:13.5px}

  /* ---- 卡片再瘦一档：图片更矮 ---- */
  .cat-card .thumb{aspect-ratio:2/1}
  .prod-card .thumb{aspect-ratio:16/9}
  .case-card .thumb{aspect-ratio:16/9}
  .feat-card .thumb{aspect-ratio:2/1}
  .cat-card .more,.prod-card .more{padding:6px 0 4px;line-height:1.7}   /* 点击区抬到 ~30px */

  /* ---- 案例卡正文 ---- */
  .case-card .body .quote{font-size:12.5px;line-height:1.6;margin-bottom:5px}
  .case-card .body .pain,.case-card .body .res{font-size:11.5px;line-height:1.6;margin-bottom:4px}
  .case-card .body .src-tip{font-size:10.5px}

  /* ---- 服务优势（流程步骤）---- */
  .step{padding:15px 16px 16px}
  .step h4{font-size:15px;margin-bottom:4px}
  .step p{font-size:12.5px;line-height:1.6}

  /* ---- 联系我们 / 表单 ---- */
  .contact-wrap{gap:18px}
  .ct-card{padding:10px 12px;gap:10px}
  .ct-card .ic{width:30px;height:30px}
  .ct-card .v{font-size:14.5px}
  .ct-card-qr .qr{width:108px;height:108px}
  .qr-ph{width:108px;height:108px;margin-top:10px;font-size:12px}
  .form-box{padding:16px 14px}
  .form-box h3{font-size:16px}
  .form-lead{font-size:12.5px;margin-bottom:12px}
  .form .row{gap:10px}
  .form .field{margin-bottom:9px}
  .form label{font-size:12.5px;margin-bottom:4px}
  .form input,.form select,.form textarea{font-size:13.5px;padding:8px 10px}
  .form textarea{min-height:72px}
  .form .err{min-height:13px;font-size:11px;margin-top:2px}
  .form-foot{gap:10px;margin-top:2px}

  /* ---- 产品详情 / 方案详情：应用方案模块改两列 ---- */
  .plan-advs,.plan-mods,.plan-steps,.plan-modes{grid-template-columns:repeat(2,1fr);gap:10px}
  .plan-adv,.plan-mod,.plan-mode{padding:12px 12px 13px}
  .plan-adv h4,.plan-mod h4,.plan-mode h5,.plan-step h5{font-size:13px}
  .plan-adv p,.plan-mod li,.plan-step p,.plan-mode p{font-size:11.5px;line-height:1.55}
  .plan-mod li{padding-left:11px;margin-bottom:4px}
  .plan-step{padding:12px 12px 12px 42px}
  .plan-step .no{left:12px;top:13px}
  .plan-acct{padding:12px 14px}
  .plan-h{font-size:15px;margin:24px 0 12px}
  .sol-pain{padding:13px 15px}

  /* ---- 页脚：四块改两列网格 ---- */
  .ft{padding-top:28px}
  .ft .wrap{grid-template-columns:repeat(2,1fr);gap:16px 14px;padding-bottom:18px}
  .ft h4{font-size:13.5px;margin-bottom:8px}
  .ft ul li{margin-bottom:5px}
  .ft{font-size:13px}
  .ft .logo-img{height:26px}
  .ft .logo{font-size:14px}
  .ft-bot{padding:10px 0;font-size:11.5px}
}

/* 移动端紧凑布局 · 第三轮微调（≤600px）：联系/优势/重点产品收尾 */
@media(max-width:600px){
  .contact-wrap{gap:14px}
  .form-box{padding:14px 12px}
  .form-lead{margin-bottom:10px}
  .form .field{margin-bottom:7px}
  .form input,.form select,.form textarea{padding:7px 10px}
  .form .err{min-height:12px}
  .form-ok{margin-top:10px;padding:10px 12px;font-size:12.5px}
  .step{padding:13px 14px 14px}
  .step p{font-size:12px;line-height:1.55}
  .feat-card .body{padding:12px 12px 14px}
  .feat-card .pts{gap:6px;margin-bottom:10px}
  .feat-card .pts li{font-size:12px;line-height:1.45}
  .about-facts span{font-size:13px}
}

/* ===== 产品中心：左侧分类导航 + 按分类分区（2026-10-30） ===== */
.pc-sec{padding-top:34px}
.pc-layout{display:grid;grid-template-columns:216px 1fr;gap:30px;align-items:start}
.pc-nav{position:sticky;top:84px;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:14px 10px;box-shadow:var(--shadow)}
.pc-nav-t{font-size:13px;font-weight:700;color:var(--text-3);letter-spacing:.08em;padding:4px 12px 10px}
.pc-nav-item{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:10px;position:relative;transition:.18s}
.pc-nav-item b{font-size:15px;font-weight:700;color:var(--text)}
.pc-nav-item span{font-size:10px;letter-spacing:.08em;color:var(--text-3);font-weight:600}
.pc-nav-item em{position:absolute;right:12px;top:12px;font-style:normal;font-size:11px;color:var(--text-3)}
.pc-nav-item:hover{background:var(--brand-soft)}
.pc-nav-item.on{background:var(--brand-soft)}
.pc-nav-item.on b{color:var(--brand-dark)}
.pc-nav-item.on::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:2px;background:var(--brand)}
.pc-cat{padding:30px 0 6px;scroll-margin-top:86px}
.pc-cat:first-child{padding-top:0}
.pc-cat-head{margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.pc-cat-head h2{font-size:24px;color:var(--brand-dark)}
.pc-cat-head h2 .en{display:block;font-size:11px;font-weight:600;letter-spacing:2px;color:var(--text-3);margin-top:4px}
.pc-cat-head p{color:var(--text-2);font-size:14px;margin-top:6px;max-width:760px}
.pc-main .sec-more{margin-top:30px}
@media(max-width:900px){
  .pc-layout{grid-template-columns:1fr;gap:18px}
  .pc-nav{position:sticky;top:76px;z-index:40;display:flex;gap:8px;overflow-x:auto;
    padding:8px;border-radius:var(--radius);-webkit-overflow-scrolling:touch}
  .pc-nav-t{display:none}
  .pc-nav-item{flex:0 0 auto;flex-direction:row;align-items:baseline;gap:6px;padding:8px 12px;
    border:1px solid var(--border);background:var(--surface);white-space:nowrap}
  .pc-nav-item span{display:none}
  .pc-nav-item em{position:static;font-size:10.5px;margin-left:2px}
  .pc-nav-item.on::before{display:none}
  .pc-cat{padding:24px 0 4px;scroll-margin-top:130px}
}

/* ===== 顶部导航「产品中心」悬停下拉（2026-10-30） ===== */
.nav-drop{position:relative;display:flex;align-items:center}
.nav-drop::after{content:"";position:absolute;left:0;right:0;top:100%;height:12px}   /* 悬停过渡桥，防止移到面板时断开 */
.nav-drop-panel{position:absolute;top:100%;left:50%;transform:translate(-50%,8px);min-width:240px;
  background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:8px;
  box-shadow:0 14px 34px rgba(15,44,82,.14);opacity:0;visibility:hidden;transition:.18s;z-index:80}
.nav-drop:hover .nav-drop-panel,.nav-drop:focus-within .nav-drop-panel{opacity:1;visibility:visible;transform:translate(-50%,0)}
.nav-drop-panel a{display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  padding:9px 12px;border-radius:8px;font-size:14px;font-weight:600;color:var(--text)}
.nav-drop-panel a:hover{background:var(--brand-soft);color:var(--brand-dark)}
.nav-drop-panel a span{font-size:11px;font-weight:600;color:var(--text-3);white-space:nowrap}
@media(max-width:1024px){.nav-drop-panel{display:none}}   /* 平板/手机走抽屉菜单，点「产品中心」进产品中心页用左侧导航 */

/* ===== 首页核心产品：大类筛选下拉（2026-10-30） ===== */
.hp-filter{display:flex;align-items:center;gap:12px;margin:26px 0 18px;flex-wrap:wrap}
.hp-filter label{font-size:14px;font-weight:600;color:var(--text-2);white-space:nowrap}
.hp-filter select{appearance:none;-webkit-appearance:none;font:inherit;font-size:14px;font-weight:600;color:var(--text);
  background:var(--surface) url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%228%22%20viewBox%3D%220%200%2012%208%22%3E%3Cpath%20d%3D%22M1%201l5%205%205-5%22%20fill%3D%22none%22%20stroke%3D%22%236b7a8f%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E") no-repeat right 13px center/12px;
  border:1px solid var(--border-2);border-radius:10px;padding:10px 40px 10px 14px;min-width:230px;cursor:pointer;transition:.18s}
.hp-filter select:hover{border-color:var(--brand)}
.hp-filter select:focus{outline:2px solid var(--brand-soft);border-color:var(--brand)}
.hp-more-link{font-size:13.5px;font-weight:600;color:var(--brand-dark);margin-left:auto;white-space:nowrap}
.hp-item{min-width:0}
@media(max-width:600px){
  .hp-filter{gap:10px}
  .hp-filter select{min-width:0;flex:1}
  .hp-more-link{margin-left:0;font-size:13px}
}

/* ===== 产品详情页：产品视频区块（2026-10-30 新增；2026-10-31 展示区域缩至原尺寸 50% + 清晰度优化） ===== */
/* 50% 调整：容器上限 1000→500px，双视频时每格 489→239px；minmax(300px,1fr)→(150px,1fr) 保持双列布局 */
.pd-video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:22px;max-width:500px}
.pd-video-item{margin:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  overflow:hidden;box-shadow:var(--shadow)}
/* 播放器：按视频源原始宽高比显示（去掉 16:9 强制），消除黑边，画面完整且等效像素密度提升一倍更清晰 */
.pd-video-item video{display:block;width:100%;height:auto;aspect-ratio:auto;background:#000}
.pd-video-item figcaption{padding:11px 15px;font-size:13.5px;font-weight:600;color:var(--text-2)}
/* 移动端：视频区域同步缩至原尺寸 50%，居中展示，宽度自适应不溢出、按源比例完整显示 */
@media(max-width:600px){
  .pd-video-grid{max-width:50%;margin:0 auto;gap:14px}
  .pd-video-item figcaption{padding:8px 10px;font-size:12px;text-align:center}
}
/* 手持机页（handheld）：区域并排展示两段视频；原视频缩至 80% → 单段 400px，新增同尺寸，双段 822px（含间距） */
/* 两段统一 4:3 画框 + object-fit:contain：原始 4:3 满框、新增 3:4 竖屏居中完整显示（两侧留边），等比不变形且对齐一致 */
/* 居中：与整页内容列（.wrap，max-width 1200px，标题居中）对齐，避免左偏悬浮 */
.pd-video-grid--handheld{max-width:822px;margin:0 auto;grid-template-columns:repeat(2,1fr);gap:22px}
.pd-video-grid--handheld video{aspect-ratio:4/3;object-fit:contain}
@media(max-width:600px){
  .pd-video-grid--handheld{max-width:92%;margin:0 auto;grid-template-columns:repeat(2,1fr);gap:10px}
}

/* ===== 产品详情页：可用方案（场景化落地方案，2026-10-31 新增；内容严格来自资料） ===== */
.pd-sol-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pd-sol-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  overflow:hidden;display:flex;flex-direction:column;padding:24px 24px 22px;transition:.24s}
.pd-sol-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--brand)}
.pd-sol-card__tag{display:inline-block;align-self:flex-start;font-size:12.5px;font-weight:600;
  color:var(--brand);background:var(--brand-soft);padding:4px 12px;border-radius:999px;margin-bottom:14px}
.pd-sol-card h3{font-size:20px;margin-bottom:8px}
.pd-sol-card__desc{font-size:14px;font-weight:600;color:var(--text);line-height:1.5;margin-bottom:16px;
  padding-bottom:14px;border-bottom:1px dashed var(--border)}
.pd-sol-card__pts{list-style:none;margin:0;display:grid;gap:12px}
.pd-sol-card__pts li{font-size:13.5px;color:var(--text-2);line-height:1.6;padding-left:18px;position:relative}
.pd-sol-card__pts li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;
  border-radius:50%;background:var(--accent)}
.pd-sol-card__pts b{display:block;color:var(--text);font-weight:600;font-size:14px;margin-bottom:2px}
@media(max-width:980px){ .pd-sol-grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:600px){ .pd-sol-grid{grid-template-columns:1fr} }

/* ===== 「解决方案」下拉：复用产品下拉结构，仅加宽以容纳 方案名 + 标语（2026-10-30） ===== */
.nav-drop-panel--wide{min-width:472px;max-width:80vw}
.nav-drop-panel--wide a{white-space:nowrap}
.nav-drop-panel--wide a span{overflow:hidden;text-overflow:ellipsis}

/* ===== 产品详情页：系统拓扑（整栏宽版位，2026-10-30 新增） ===== */
.pd-topo{margin-top:26px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px}
.pd-topo figure{margin:0}
.pd-topo img{display:block;width:100%;height:auto;cursor:zoom-in;border-radius:10px}
.pd-topo figcaption{margin-top:14px;font-size:13.5px;color:var(--text-2);text-align:center;line-height:1.8}
.pd-topo-layers{list-style:none;margin:18px 0 0;padding:16px 0 0;border-top:1px dashed var(--border);
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px 22px}
.pd-topo-layers li{font-size:13.5px;color:var(--text-2);line-height:1.75}
.pd-topo-layers b{display:block;color:var(--brand);font-size:13px;margin-bottom:2px}
@media (max-width:760px){
  .pd-topo{padding:12px;margin-top:18px}
  .pd-topo-layers{grid-template-columns:1fr;gap:10px}
}
