/* 杜尔博 · 工业制图视觉体系 —— 全站共享样式 */
/* ============================================================
   杜尔博 — 工业制图视觉体系
   无渐变封面 / 无 emoji / 无卡片悬浮 / 小圆角 / 1px 线 / 等宽数值
   ============================================================ */
:root{
  --ink:#0F1A24;
  --steel:#5B6B77;
  --faint:#64707D;
  --mut:#64707D;   /* 图注/次要说明（原本未定义，var()失效）*/
  --blue:#0A5FA5;
  --blue-d:#073C68;
  --orange:#FF6A1F;
  --gold:#C8922E;
  --line:#DCE4EB;
  --line-s:#EFF3F7;
  --bg:#FFFFFF;
  --bg-alt:#F6F8FA;
  --grid:rgba(10,95,165,.04);
  --r:3px;
  --sh:0 18px 44px -24px rgba(15,26,36,.28);
  --sh-lg:0 28px 64px -28px rgba(15,26,36,.34);
  --ease:cubic-bezier(.22,1,.36,1);
  --sans:"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Source Han Sans SC",sans-serif;
  --mono:ui-monospace,"SFMono-Regular","JetBrains Mono","Roboto Mono",Menlo,Consolas,monospace;
  --maxw:1240px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);color:var(--ink);background:var(--bg);
  line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
svg{display:block}
ul{list-style:none}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
::selection{background:var(--blue);color:#fff}

.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 28px}
.gridpaper{
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),
                   linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:32px 32px;
}

/* ---------- 通用：区块标题（编号 + 延伸线，非居中模板） ---------- */
.sec{padding:96px 0;position:relative}
.sec--alt{background:var(--bg-alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec-h{display:grid;grid-template-columns:200px 1fr;gap:40px;align-items:end;margin-bottom:56px}
.sec-n{
  font-family:var(--mono);font-size:12px;letter-spacing:.16em;color:var(--blue);
  display:flex;align-items:center;gap:12px;padding-bottom:6px;
}
.sec-n::after{content:"";flex:1;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.2,.8,.2,1) .1s}
.sec.in .sec-n::after{transform:scaleX(1)}
.sec-h h2{font-size:clamp(25px,3.2vw,36px);font-weight:800;letter-spacing:-.02em;line-height:1.3}
.sec-h h2+p{color:var(--steel);font-size:15px;margin-top:10px;max-width:620px}

/* ---------- 滚动揭示：模糊上浮入场（cinematic），不做廉价淡入上浮
   默认可见 —— JS 没跑或 IO 不触发时，元素也必须正常显示。
   动效通过 .rv.in 触发的 keyframe 实现，仅作为增强。 */
.rv{
  opacity:1;
}
.rv.in{
  animation:rv-in 1.05s var(--ease) both;
}
@keyframes rv-in{
  0%   {opacity:.001;transform:translateY(22px);filter:blur(7px)}
  60%  {opacity:1}
  100% {opacity:1;transform:none;filter:blur(0)}
}
.rv-d1.in{animation-delay:.08s}.rv-d2.in{animation-delay:.16s}.rv-d3.in{animation-delay:.24s}

/* ---------- HERO 载入编排：默认可见，加 .play 后按 --hd 错峰入场 ---------- */
.hero.play [data-h]{
  animation:rv-in 1.05s var(--ease) both;
  animation-delay:var(--hd,0s);
}

/* ---------- 顶部滚动进度条 ---------- */
.prog{position:fixed;top:0;left:0;height:2px;background:var(--orange);width:0;z-index:200;transition:width .1s linear}

/* ---------- topbar ---------- */
.topbar{background:var(--ink);color:#8FA0AE;font-size:12.5px;height:36px;display:flex;align-items:center;font-family:var(--mono);letter-spacing:.04em}
.topbar .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.topbar b{color:#fff;font-weight:600}
.topbar a{color:#fff;font-weight:600}

/* ---------- header ---------- */
.header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.93);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);transition:box-shadow .4s var(--ease),border-color .4s var(--ease)}
.header.scrolled{box-shadow:0 12px 30px -24px rgba(15,26,36,.55);border-bottom-color:transparent}
.header .wrap{display:flex;align-items:center;gap:32px;height:70px}
.logo{display:flex;align-items:baseline;gap:10px;flex-shrink:0}
.logo strong{font-size:17px;font-weight:800;letter-spacing:-.01em}
.logo span{font-family:var(--mono);font-size:11px;color:var(--faint);letter-spacing:.14em;border-left:1px solid var(--line);padding-left:10px}
.nav{display:flex;gap:2px;margin-left:auto}
.nav a{
  position:relative;padding:9px 13px;font-size:14.5px;font-weight:600;color:var(--steel);transition:color .2s;
}
.nav a::after{
  content:"";position:absolute;left:13px;right:13px;bottom:2px;height:2px;background:var(--blue);
  transform:scaleX(0);transform-origin:left;transition:transform .32s cubic-bezier(.2,.8,.2,1);
}
.nav a:hover{color:var(--ink)}
.nav a:hover::after,.nav a.is-active::after{transform:scaleX(1)}
.nav a.is-active{color:var(--blue)}
.hcta{display:flex;align-items:center;gap:14px;flex-shrink:0}
.hcta .t{font-family:var(--mono);font-size:15px;font-weight:600;color:var(--blue);letter-spacing:-.01em}
.burger{display:none;width:40px;height:40px;border:1px solid var(--line);background:#fff;cursor:pointer;padding:12px 10px}
.burger i{display:block;height:1.5px;background:var(--ink);transition:.25s}
.burger i+i{margin-top:5px}
body.mo .burger i:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
body.mo .burger i:nth-child(2){opacity:0}
body.mo .burger i:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ---------- 按钮：底部线填充 + 箭头位移，不变色不变形 ---------- */
.btn{
  position:relative;display:inline-flex;align-items:center;gap:9px;padding:12px 24px;
  border:1px solid var(--ink);background:transparent;font-size:14.5px;font-weight:700;
  cursor:pointer;overflow:hidden;transition:color .3s,border-color .3s,transform .28s var(--ease);white-space:nowrap;will-change:transform;
}
.btn>span{position:relative;z-index:2;display:inline-flex;align-items:center;gap:9px}
.btn::before{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:transform .42s cubic-bezier(.16,.84,.24,1)}
.btn:hover{color:#fff}
.btn:hover::before{transform:translateY(0)}
.btn .ar{transition:transform .42s cubic-bezier(.16,.84,.24,1)}
.btn:hover .ar{transform:translateX(5px)}
.btn--blue{border-color:var(--blue);background:var(--blue);color:#fff}
.btn--blue::before{background:var(--blue-d)}
.btn--blue:hover{color:#fff}
.btn--sm{padding:9px 18px;font-size:13.5px}

/* ---------- HERO ---------- */
.hero{position:relative;padding:76px 0 0;border-bottom:1px solid var(--line);overflow:hidden}
.hero::before{content:"";position:absolute;top:-180px;right:-140px;width:560px;height:560px;background:radial-gradient(circle,rgba(10,95,165,.10),transparent 65%);pointer-events:none;z-index:0}
.hero .wrap{position:relative;z-index:1}
.hero .wrap{display:grid;grid-template-columns:1fr 460px;gap:60px;align-items:start}
.hero-tag{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.2em;color:var(--blue);
  display:inline-flex;align-items:center;gap:10px;margin-bottom:22px;
}
.hero-tag::before{content:"";width:26px;height:1px;background:var(--blue)}
.hero h1{font-size:clamp(31px,4.4vw,56px);font-weight:800;line-height:1.18;letter-spacing:-.01em}
.hero h1 u{text-decoration:none;color:var(--blue);border-bottom:3px solid rgba(10,95,165,.22)}
.hero-lead{margin-top:22px;font-size:16px;color:var(--steel);max-width:560px}
.hero-btns{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}

/* 规格条：等宽数值，不做数字动画 */
.spec{margin-top:40px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr)}
.spec div{padding:16px 18px 16px 0;border-right:1px solid var(--line-s)}
.spec div:last-child{border-right:0}
.spec dt{font-size:11.5px;color:var(--faint);letter-spacing:.08em;margin-bottom:4px}
.spec dd{font-family:var(--mono);font-size:15px;font-weight:600;letter-spacing:-.01em}

/* 通用 lead / chips / 流程（生成页共用） */
.lead{font-size:15.5px;color:var(--steel);max-width:620px;line-height:1.7}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips a{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border:1px solid var(--line);border-radius:3px;background:#fff;font-size:13.5px;color:var(--ink);transition:border-color .25s,color .25s}
.chips a:hover{border-color:var(--blue);color:var(--blue)}
.flow{list-style:none;counter-reset:step;display:grid;gap:14px;margin:8px 0 0;padding:0}
.flow li{counter-increment:step;position:relative;padding:14px 16px 14px 56px;border:1px solid var(--line);border-radius:3px;background:#fff;font-size:14.5px;color:var(--steel)}
.flow li::before{content:counter(step);position:absolute;left:15px;top:15px;width:26px;height:26px;border-radius:50%;background:var(--blue);color:#fff;font:700 13px/26px var(--mono);text-align:center}
.flow li b{display:block;color:var(--ink);margin-bottom:3px;font-size:15px}
.alist{list-style:none;padding:0;margin:0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.alist li{background:#fff;padding:14px 18px;display:flex;justify-content:space-between;gap:16px;align-items:center}
.alist li a{font-size:14.5px;color:var(--ink);transition:color .2s}
.alist li a:hover{color:var(--blue)}
.alist .ts{font-family:var(--mono);font-size:11px;color:var(--faint);white-space:nowrap;flex-shrink:0}
.nav.open{display:flex;position:absolute;top:70px;left:0;right:0;flex-direction:column;background:#fff;padding:10px 28px 18px;border-bottom:1px solid var(--line);box-shadow:var(--sh)}
@media(max-width:860px){.nav{display:none}.burger{display:block}}

/* 信任跑马灯（缓慢滚动的规格/资质条） */
.marq{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--ink);color:#A6B6C4;overflow:hidden;font-family:var(--mono);font-size:12px;letter-spacing:.1em}
.marq .track{display:inline-flex;white-space:nowrap;padding:11px 0;animation:marq 30s linear infinite}
.marq .track span{display:inline-flex;gap:34px;padding:0 34px}
.marq b{color:var(--orange);font-weight:700}
.marq i{color:var(--blue);font-style:normal}
@keyframes marq{to{transform:translateX(-50%)}}

/* hero 工程图 */
.dwg{border:1px solid var(--line);background:var(--bg-alt);position:relative;transition:box-shadow .5s var(--ease)}
.dwg::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .5s;background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%),rgba(10,95,165,.10),transparent 62%)}
.dwg:hover::before{opacity:1}
.dwg:hover{box-shadow:var(--sh-lg)}
.dwg-hd{
  display:flex;justify-content:space-between;align-items:center;padding:9px 14px;
  border-bottom:1px solid var(--line);font-family:var(--mono);font-size:11px;
  letter-spacing:.1em;color:var(--steel);background:#fff;
}
.dwg-hd b{color:var(--ink)}
.dwg-live{display:flex;align-items:center;gap:6px;color:var(--blue)}
.dwg-live i{width:6px;height:6px;border-radius:50%;background:var(--orange);animation:blink 1.6s steps(1,end) infinite}
@keyframes blink{0%,55%{opacity:1}56%,100%{opacity:.15}}

/* ---------- 数据区：机械翻滚计数（非平滑 count-up） ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat{padding:32px 22px;border-right:1px solid var(--line);position:relative;transition:box-shadow .45s var(--ease);z-index:1}
.stat:last-child{border-right:0}
.stat:hover{box-shadow:var(--sh);z-index:2}
.stat .odo-wrap{display:flex;align-items:baseline;gap:1px}
.odo{font-family:var(--mono);font-weight:700;font-size:clamp(30px,3.7vw,44px);letter-spacing:-.03em;color:var(--blue);font-variant-numeric:tabular-nums;display:inline-block;line-height:1;transition:color .3s}
.odo-suf{font-family:var(--mono);font-size:clamp(18px,2.2vw,26px);font-weight:700;color:var(--orange);margin-left:1px}
.stat small{display:block;margin-top:10px;font-size:13.5px;color:var(--steel)}
.stat .bar{position:absolute;left:0;bottom:0;height:2px;background:var(--blue);width:var(--p,0%);transition:width 1.5s var(--ease)}

/* ---------- 产品 ---------- */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.pcard{
  position:relative;background:#fff;padding:26px;overflow:hidden;
  transition:background .3s,box-shadow .45s var(--ease),transform .45s var(--ease);
}
.pcard:hover{box-shadow:var(--sh);transform:translateY(-3px);z-index:2}
.pcard::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(10,95,165,.075),transparent 68%);
}
.pcard:hover::before{opacity:1}
.pcard::after{
  content:"";position:absolute;inset:0;pointer-events:none;border:1px solid transparent;transition:border-color .3s;
}
.pcard:hover::after{border-color:var(--blue)}
.pcard--wide{grid-column:span 2;display:grid;grid-template-columns:230px 1fr;gap:26px;align-items:center}
.pcard--bar{grid-column:span 3;display:grid;grid-template-columns:150px 1fr auto;gap:26px;align-items:center;background:var(--bg-alt)}
.pnum{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--faint);margin-bottom:14px;transition:color .3s}
.pcard:hover .pnum{color:var(--orange)}
.pico{height:150px;display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.pcard--wide .pico,.pcard--bar .pico{height:170px;margin-bottom:0}
.pico svg{width:100%;max-width:190px;height:100%}
.pcard h3{font-size:18px;font-weight:800;letter-spacing:-.01em;margin-bottom:9px;display:flex;align-items:baseline;gap:9px}
.pcard h3 em{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--faint);letter-spacing:.1em;font-weight:500}
.pcard>p{font-size:14px;color:var(--steel);margin-bottom:18px}

/* 参数表（替代圆点列表） */
.ptab{border-top:1px solid var(--line-s)}
.ptab div{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px solid var(--line-s);font-size:13px}
.ptab div:last-child{border-bottom:0}
.ptab dt{min-width:0}
.ptab dd{min-width:0;word-break:break-word}
.ptab dt{color:var(--faint);flex-shrink:0}
.ptab dd{font-family:var(--mono);font-weight:600;text-align:right;color:var(--ink);opacity:.45;transition:opacity .3s}
.pcard:hover .ptab dd{opacity:1}
.pcard:hover .ptab div:nth-child(1) dd{transition-delay:.04s}
.pcard:hover .ptab div:nth-child(2) dd{transition-delay:.09s}
.pcard:hover .ptab div:nth-child(3) dd{transition-delay:.14s}
.pcard:hover .ptab div:nth-child(4) dd{transition-delay:.19s}
.plink{
  display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-size:13.5px;font-weight:700;
  font-family:var(--mono);letter-spacing:.04em;color:var(--blue);
}
.plink .ar{transition:transform .35s cubic-bezier(.16,.84,.24,1)}
.pcard:hover .plink .ar{transform:translateX(6px)}

/* ---------- 优势：不带卡片，只靠序号与线 ---------- */
.adv{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.adv>div{padding:32px 26px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;background:#fff;transition:background .3s,box-shadow .45s var(--ease),transform .45s var(--ease)}
.adv>div:hover{background:var(--bg-alt);box-shadow:var(--sh);transform:translateY(-3px);z-index:2}
.adv>div::before{content:"";position:absolute;top:0;left:0;height:2px;width:100%;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.adv>div:hover::before{transform:scaleX(1)}
.adv h3{font-size:17px;font-weight:800;margin:14px 0 9px}
.adv p{font-size:14px;color:var(--steel)}
.adv .n{font-family:var(--mono);font-size:12px;color:var(--blue);letter-spacing:.12em}

/* ---------- 应用领域：hover 描线 ---------- */
.app{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.app>a{background:#fff;padding:28px 24px;transition:box-shadow .45s var(--ease),transform .45s var(--ease)}
.app>a:hover{box-shadow:var(--sh);transform:translateY(-3px);z-index:2}
.app svg{width:54px;height:54px;margin-bottom:18px}
.app svg [stroke]{
  stroke-dasharray:1;stroke-dashoffset:1;
  transition:stroke-dashoffset .9s cubic-bezier(.3,.8,.3,1);
}
.app>a:hover svg [stroke]{stroke-dashoffset:0}
.sec.in .app svg [stroke]{stroke-dashoffset:0;transition:stroke-dashoffset 1.1s var(--ease) .12s}
.app h3{font-size:16.5px;font-weight:800;margin-bottom:9px}
.app p{font-size:13.5px;color:var(--steel)}
.kv{margin-top:16px;display:flex;gap:7px;flex-wrap:wrap}
.kv span{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--steel);border:1px solid var(--line);padding:3px 8px}

/* 应用卡：悬停浮现品牌调性照片（去彩压暗 + 藏青渐变，与站点融合；默认隐藏） */
.app>a{position:relative;overflow:hidden;isolation:isolate}
.app>a>*:not(.app-bg){position:relative;z-index:1}
.app h3,.app p,.kv span{transition:color .4s var(--ease),border-color .4s var(--ease)}
.app-bg{position:absolute;inset:0;z-index:0;opacity:0;transition:opacity .55s var(--ease)}
.app-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);filter:grayscale(.62) brightness(.58) contrast(1.06) saturate(.9);transition:transform 1.5s var(--ease)}
.app-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(155deg,rgba(8,24,42,.84),rgba(8,24,42,.60) 52%,rgba(10,95,165,.44))}
.app>a:hover .app-bg{opacity:1}
.app>a:hover .app-bg img{transform:scale(1)}
.app>a:hover h3,.app>a:hover p{color:#fff}
.app>a:hover .kv span{color:rgba(255,255,255,.86);border-color:rgba(255,255,255,.3)}
.app>a:hover svg [stroke]{stroke:#fff}
.app>a:hover svg [stroke][stroke="#FF6A1F"]{stroke:#FF8A46}

/* ---------- 关于 ---------- */
.about{display:grid;grid-template-columns:1fr 380px;gap:64px;align-items:start}
.about p{color:#3B4B58;font-size:15.5px;margin-bottom:16px}
.about p strong{color:var(--ink);border-bottom:2px solid rgba(255,106,31,.35)}
.cert{border:1px solid var(--line)}
.cert h3{
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--steel);
  padding:14px 20px;border-bottom:1px solid var(--line);background:var(--bg-alt);
}
.cert li{padding:12px 20px;border-bottom:1px solid var(--line-s);font-size:14px;display:flex;justify-content:space-between;gap:12px;transition:padding-left .3s}
.cert li:last-child{border-bottom:0}
.cert li:hover{padding-left:26px;background:var(--bg-alt)}
.cert li i{font-family:var(--mono);font-style:normal;font-size:11px;color:var(--faint)}

/* ---------- 文章 ---------- */
.art{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.art a{background:#fff;padding:26px 28px;display:block;position:relative;transition:background .3s}
.art a:hover{background:var(--bg-alt);box-shadow:var(--sh);z-index:2}
.art a::after{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--blue);transform:scaleY(0);transform-origin:top;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.art a:hover::after{transform:scaleY(1)}
.art .meta{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--faint);margin-bottom:12px}
.art h3{font-size:17px;font-weight:800;line-height:1.45;margin-bottom:8px}
.art p{font-size:13.5px;color:var(--steel)}
.art .go{margin-top:14px;font-family:var(--mono);font-size:12px;color:var(--blue);display:inline-flex;gap:7px}
.art a:hover .go .ar{transform:translateX(5px)}
.art .go .ar{transition:transform .35s}

/* ---------- 服务区域 ---------- */
.area{border:1px solid var(--line)}
.atabs{display:flex;border-bottom:1px solid var(--line);background:var(--bg-alt);overflow-x:auto}
.atabs button{
  flex:1 0 auto;padding:14px 18px;background:none;border:0;border-right:1px solid var(--line);
  font-size:14.5px;font-weight:700;color:var(--steel);cursor:pointer;position:relative;transition:color .2s,background .2s;
}
.atabs button:last-child{border-right:0}
.atabs button:hover{color:var(--ink);background:#fff}
.atabs button[aria-selected="true"]{color:var(--blue);background:#fff}
.atabs button[aria-selected="true"]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--blue)}
.abody{padding:34px 38px;position:relative;overflow:hidden}
.abody::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--orange);
  transform:scaleX(0);transform-origin:left;
}
.abody.scan::before{animation:scan .55s cubic-bezier(.3,.8,.3,1)}
@keyframes scan{0%{transform:scaleX(0);opacity:1}100%{transform:scaleX(1);opacity:0}}
.abody h3{font-size:22px;font-weight:800;margin-bottom:10px;letter-spacing:-.01em}
.abody>p{color:var(--steel);font-size:14.5px;max-width:720px;margin-bottom:26px}
.aitems{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.aitems a{background:#fff;padding:17px 18px;transition:background .25s}
.aitems a:hover{background:var(--blue);color:#fff}
.aitems a:hover small{color:rgba(255,255,255,.8)}
.aitems b{display:block;font-size:15px;font-weight:800;margin-bottom:4px}
.aitems small{font-family:var(--mono);font-size:11px;color:var(--faint)}
.anote{
  margin-top:24px;display:flex;gap:28px;flex-wrap:wrap;align-items:center;
  padding:14px 18px;border:1px solid var(--line);background:var(--bg-alt);font-size:13.5px;color:var(--steel);
}
.anote b{font-family:var(--mono);font-size:17px;color:var(--blue)}

/* ---------- 联系 ---------- */
.contact{background:var(--ink);color:#fff;position:relative}
.contact .sec-h h2,.contact .sec-h h2+p{color:#fff}
.contact .sec-h h2+p{color:#93A6B8}
.contact .sec-n{color:var(--orange)}
.contact .sec-n::after{background:var(--orange)}
.cgrid{display:grid;grid-template-columns:1fr 480px;gap:64px;align-items:start}
.cinfo li{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.cinfo li:last-child{border-bottom:0}
.cinfo .k{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:#7E92A5;padding-top:5px}
.cinfo b{display:block;font-size:15.5px;font-weight:700}
.cinfo small{font-size:13px;color:#93A6B8}
.cinfo .tel{font-family:var(--mono);font-size:26px;font-weight:700;letter-spacing:-.02em;color:#fff;display:block;margin-top:2px}
.cinfo .tel:hover{color:var(--orange)}

.form{background:#fff;color:var(--ink);padding:32px;border:1px solid var(--line)}
.form h3{font-size:18px;font-weight:800;margin-bottom:6px}
.form>.d{font-size:13.5px;color:var(--steel);margin-bottom:22px}
.f{margin-bottom:14px}
.f label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--steel);margin-bottom:6px}
.f label i{font-style:normal;color:var(--orange)}
.f input,.f textarea,.f select{
  width:100%;padding:10px 12px;border:1px solid var(--line);background:#FCFDFE;
  font-size:14.5px;transition:border-color .2s,box-shadow .2s;border-radius:0;
}
.f input:focus,.f textarea:focus,.f select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(10,95,165,.1)}
.f textarea{min-height:88px;resize:vertical}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.consent{
  display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--steel);
  border:1px solid var(--line);background:var(--bg-alt);padding:12px 14px;margin:4px 0 16px;line-height:1.65;
}
.consent input{margin-top:4px;accent-color:var(--blue);flex-shrink:0}
.consent strong{color:var(--ink)}
.form .btn{width:100%;justify-content:center}
.fnote{margin-top:12px;font-family:var(--mono);font-size:11px;color:var(--faint);text-align:center;letter-spacing:.05em}
#tip{margin-top:14px;font-family:var(--mono);font-size:12.5px;font-weight:600;display:none;letter-spacing:.03em}

/* ---------- footer ---------- */
.footer{background:#0A131C;color:#8698A8;padding:64px 0 0;font-size:14px}
.fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:44px;padding-bottom:44px}
.fcol h4{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:#fff;margin-bottom:18px}
.fcol p{font-size:13.5px;line-height:1.8;margin-bottom:16px;max-width:340px}
.fcol li{margin-bottom:9px}
.fcol li a{font-size:13.5px;transition:color .2s,padding-left .2s}
.fcol li a:hover{color:#fff;padding-left:5px}
.ftel{font-family:var(--mono);font-size:23px;font-weight:700;color:#fff;letter-spacing:-.02em;display:block;margin:4px 0 6px}
.fbrand{font-size:17px;font-weight:800;color:#fff;margin-bottom:14px;display:block}
.fbottom{border-top:1px solid rgba(255,255,255,.1);padding:18px 0 28px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;letter-spacing:.05em}

/* ---------- 移动端底栏 ---------- */
.fbar{
  position:fixed;left:0;right:0;bottom:0;z-index:150;display:none;gap:1px;background:var(--line);
  border-top:1px solid var(--line);
}
.fbar a{flex:1;background:#fff;padding:13px;text-align:center;font-size:14px;font-weight:700}
.fbar a:last-child{background:var(--blue);color:#fff}

/* ============================================================
   SVG 工程图动画
   ============================================================ */
@keyframes spin{to{transform:rotate(360deg)}}
.imp{transform-origin:center;animation:spin 2.6s linear infinite}
@keyframes flow{to{stroke-dashoffset:-28}}
.pipe{stroke-dasharray:5 9;animation:flow 1.1s linear infinite}
@keyframes water{0%{transform:translateY(4px)}50%{transform:translateY(-5px)}100%{transform:translateY(4px)}}
.wtr{animation:water 5.5s ease-in-out infinite}
@keyframes led{0%,45%{opacity:1}50%,100%{opacity:.2}}
.led{animation:led 1.8s steps(1,end) infinite}
@keyframes oil{0%{transform:translateY(6px);opacity:0}30%{opacity:1}100%{transform:translateY(-16px);opacity:0}}
.oil{animation:oil 3.4s ease-in infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.bob{animation:bob 4s ease-in-out infinite}
/* hover 才启动的部件 */
.pcard .act{transition:transform .7s cubic-bezier(.2,.8,.2,1),opacity .5s}
.pcard:hover .act-up{transform:translateY(-7px)}
.pcard:hover .act-spin{animation:spin 2.2s linear infinite}
.pcard:hover .act-oil{animation:oil 2.6s ease-in infinite}
.pcard:hover .act-flow{stroke-dasharray:5 9;animation:flow 1s linear infinite}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .rv{opacity:1}
  .hero.play [data-h]{animation:none}
  .marq .track{animation:none}
}

/* ---------- responsive ---------- */
@media(max-width:1080px){
  .hero .wrap{grid-template-columns:1fr;gap:44px}
  .hero .dwg{max-width:520px}
  .pgrid{grid-template-columns:repeat(2,1fr)}
  .pcard--wide,.pcard--bar{grid-column:span 2}
  .adv,.app,.art{grid-template-columns:repeat(2,1fr)}
  .about,.cgrid{grid-template-columns:1fr;gap:40px}
  .sec-h{grid-template-columns:1fr;gap:14px;align-items:start}
  .fgrid{grid-template-columns:1fr 1fr}
}
@media(max-width:880px){
  .nav{
    position:fixed;top:70px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);
    flex-direction:column;gap:0;padding:8px 0 16px;transform:translateY(-12px);opacity:0;pointer-events:none;transition:.25s;
  }
  body.mo .nav{transform:none;opacity:1;pointer-events:auto}
  .nav a{padding:13px 28px;font-size:16px;border-bottom:1px solid var(--line-s)}
  .nav a::after{left:28px;right:28px;bottom:6px}
  .burger{display:block}
  .hcta .btn{display:none}
  /* 手机端：电话是头部唯一 CTA，放大加粗 */
  .header .wrap{gap:16px}
  .hcta{gap:10px}
  .hcta .t{font-size:19px;font-weight:700;letter-spacing:0}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(2n){border-right:0}
  .stat:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .fbar{display:flex}
  body{padding-bottom:56px}
  .aitems{grid-template-columns:repeat(2,1fr)}
  .abody{padding:26px 22px}
  .sec{padding:64px 0}
}
@media(max-width:600px){
  .pgrid,.adv,.app,.art,.aitems{grid-template-columns:1fr}
  .pcard--wide,.pcard--bar{grid-column:span 1;display:block}
  .pcard--wide .pico,.pcard--bar .pico{margin-bottom:18px;height:150px}
  .fgrid{grid-template-columns:1fr;gap:30px}
  .f2{grid-template-columns:1fr}
  .spec{grid-template-columns:1fr}
  .spec div{border-right:0;border-bottom:1px solid var(--line-s)}
  .topbar{font-size:11px;height:auto;padding:7px 0}
}

/* ============================================================
   新增组件样式（产品详情页 / 城市页模板共用）
   ============================================================ */

/* ---------- 面包屑 ---------- */
.crumbs{
  display:flex;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid var(--line);
  font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--faint);flex-wrap:wrap;
}
.crumbs a:hover{color:var(--blue)}
.crumbs i{font-style:normal;color:var(--line)}

/* ---------- 详情页 hero ---------- */
.phead{display:grid;grid-template-columns:1fr 420px;gap:56px;align-items:start;padding:56px 0 48px;border-bottom:1px solid var(--line)}
.phead h1{font-size:clamp(27px,3.6vw,42px);font-weight:800;letter-spacing:-.025em;line-height:1.25;margin-bottom:6px}
.phead .en{font-family:var(--mono);font-size:11.5px;letter-spacing:.2em;color:var(--faint);margin-bottom:20px}
.phead .lead{font-size:15.5px;color:var(--steel);max-width:600px}
.phead .btns{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.kpi{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:0}
.kpi div{background:#fff;padding:18px 20px}
.kpi dt{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--faint);margin-bottom:5px}
.kpi dd{font-family:var(--mono);font-size:19px;font-weight:700;letter-spacing:-.02em;color:var(--blue)}
.kpi dd s{text-decoration:none;font-size:12px;color:var(--steel);font-weight:500}

/* ---------- 部件图 + 标注 ---------- */
.parts{display:grid;grid-template-columns:1fr 300px;gap:32px;align-items:center;border:1px solid var(--line);background:var(--bg-alt);padding:24px}
.parts .fig{display:flex;justify-content:center}
.parts .fig svg{width:100%;max-width:420px;height:auto}
.pleg{border-left:1px solid var(--line);padding-left:24px}
.pleg li{display:grid;grid-template-columns:26px 1fr;gap:10px;padding:9px 0;font-size:13.5px;align-items:baseline;cursor:default;transition:color .25s,padding-left .25s}
.pleg li:hover{color:var(--blue);padding-left:5px}
.pleg li b{font-family:var(--mono);font-size:11px;color:var(--orange);font-weight:700}
.pleg li span{color:var(--steel)}
.pleg li:hover span{color:var(--ink)}

/* ---------- 大参数表 ---------- */
.tbl{width:100%;border-collapse:collapse;border:1px solid var(--line);font-size:14px}
.tbl caption{
  text-align:left;font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--steel);
  padding:12px 18px;background:var(--bg-alt);border:1px solid var(--line);border-bottom:0;
}
.tbl th,.tbl td{padding:12px 18px;border-bottom:1px solid var(--line-s);text-align:left;vertical-align:top}
.tbl thead th{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--faint);background:#fff;border-bottom:1px solid var(--line)}
.tbl td:first-child{color:var(--steel);width:34%}
.tbl td:last-child{font-family:var(--mono);font-weight:600}
.tbl tbody tr{transition:background .2s}
.tbl tbody tr:hover{background:var(--bg-alt)}
.tbl .yes{color:var(--blue)}
.tbl .opt{color:var(--orange)}

/* ---------- 选型步骤 ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.steps>div{background:#fff;padding:26px 22px;position:relative}
.steps>div::before{
  content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:var(--blue);
  transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.8,.2,1);
}
.steps>div:hover::before{transform:scaleX(1)}
.steps .n{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--orange);margin-bottom:12px}
.steps h3{font-size:16px;font-weight:800;margin-bottom:8px}
.steps p{font-size:13.5px;color:var(--steel)}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  padding:18px 0;font-size:15.5px;font-weight:700;cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:20px;transition:color .2s;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--blue)}
.faq summary::after{
  content:"+";font-family:var(--mono);font-size:19px;color:var(--blue);transition:transform .3s cubic-bezier(.2,.8,.2,1);flex-shrink:0;
}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details[open] summary{color:var(--blue)}
.faq .ans{
  padding:0 0 20px;font-size:14.5px;color:var(--steel);max-width:860px;
  animation:ans .45s cubic-bezier(.16,.84,.24,1);
}
@keyframes ans{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ---------- 区县列表 ---------- */
.clist{display:flex;flex-wrap:wrap;gap:1px;background:var(--line);border:1px solid var(--line)}
.clist span{background:#fff;padding:11px 18px;font-size:14px;transition:background .25s,color .25s}
.clist span:hover{background:var(--blue);color:#fff}

/* ---------- 城市切换 ---------- */
.cswitch{display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--line)}
.cswitch a{
  padding:11px 16px;font-size:13.5px;border-right:1px solid var(--line);color:var(--steel);transition:.2s;
}
.cswitch a:last-child{border-right:0}
.cswitch a:hover{background:var(--bg-alt);color:var(--ink)}
.cswitch a.on{background:var(--ink);color:#fff}

/* ---------- 承诺条 ---------- */
.prom{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.prom>div{background:#fff;padding:26px 22px;transition:box-shadow .45s var(--ease),transform .45s var(--ease)}
.prom>div:hover{box-shadow:var(--sh);transform:translateY(-3px);z-index:2}
.prom svg{width:44px;height:44px;margin-bottom:14px}
.prom svg [stroke]{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .9s cubic-bezier(.3,.8,.3,1)}
.prom>div:hover svg [stroke]{stroke-dashoffset:0}
.sec.in .prom svg [stroke]{stroke-dashoffset:0;transition:stroke-dashoffset 1.1s var(--ease) .12s}
.prom .n{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--blue);margin-bottom:10px}
.prom h3{font-size:16px;font-weight:800;margin-bottom:7px}
.prom p{font-size:13.5px;color:var(--steel)}

@media(max-width:1080px){
  .phead{grid-template-columns:1fr;gap:36px}
  .parts{grid-template-columns:1fr;gap:24px}
  .pleg{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:20px}
  .steps,.prom{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  .steps,.prom{grid-template-columns:1fr}
  .kpi{grid-template-columns:1fr}
  .tbl th,.tbl td{padding:10px 12px;font-size:13px}
  .tbl td:first-child{width:44%}
}

/* ── 真实实景图 / 证书墙 / 画廊（高级感）────────────────── */
.ph{position:relative;border-radius:3px;overflow:hidden;background:#e9eef3;box-shadow:var(--sh);border:1px solid var(--line)}
.ph img{width:100%;height:auto;object-fit:cover;display:block;filter:saturate(.94) contrast(1.06) brightness(1.01)}
.ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,22,38,.20),rgba(8,22,38,0) 40%);pointer-events:none}
.shot{margin:0}
.shot figcaption{font:11px/1.5 var(--mono);color:var(--mut);padding:9px 2px 0;letter-spacing:.04em}

/* 画廊 */
.gal{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
.gal .ph{aspect-ratio:auto}
.gal .ph img{aspect-ratio:4/3}

/* 证书墙 */
.certs{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:13px}
.certs a{display:block;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:#fff;box-shadow:var(--sh);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.certs a:hover{transform:translateY(-3px);box-shadow:var(--sh-lg)}
.certs img{width:100%;aspect-ratio:1/1.32;object-fit:cover;display:block}

/* Hero 实景底图（首页）*/
.hero{position:relative;overflow:hidden}
.hero__bg{position:absolute;inset:0;z-index:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.04)}
.hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(7,20,36,.86) 0%,rgba(7,20,36,.62) 46%,rgba(7,20,36,.30) 100%)}
.hero .wrap{position:relative;z-index:1}

/* 照片头：hero / phead 叠加真实工厂图，文字转白 */
.hero--photo,
.phead--photo{position:relative;overflow:hidden}
.phead--photo .wrap{position:relative;z-index:1}
.hero--photo .hero-tag,
.hero--photo h1,
.hero--photo .hero-lead,
.hero--photo .spec dt,
.hero--photo .spec dd,
.phead--photo .en,
.phead--photo h1,
.phead--photo .lead,
.phead--photo .kpi dt,
.phead--photo .kpi dd{color:#fff}
.hero--photo .hero-tag::before{background:rgba(255,255,255,.75)}
.hero--photo h1 u{color:#fff;border-color:rgba(255,255,255,.42)}
.phead--photo .kpi{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.22)}
.phead--photo .kpi div{background:transparent}
.phead--photo .kpi dd s{color:rgba(255,255,255,.72)}

@media(max-width:1080px){
  .certs{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}
}
@media(max-width:600px){
  .gal{grid-template-columns:1fr 1fr}
}

/* ============================================================
   技术文章库（核心 Query Loop 区块）— 与全站制图体系一致的卡片
   ============================================================ */
.wp-block-query.is-layout-grid{background:var(--line);border:1px solid var(--line);gap:1px}
.wp-block-query .wp-block-post{
  background:#fff;display:flex;flex-direction:column;position:relative;
  transition:box-shadow .45s var(--ease),transform .45s var(--ease);
}
.wp-block-query .wp-block-post:hover{box-shadow:var(--sh);transform:translateY(-3px);z-index:2}
.wp-block-post-featured-image{margin:0}
.wp-block-post-featured-image img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform .8s var(--ease)}
.wp-block-post:hover .wp-block-post-featured-image img{transform:scale(1.04)}
.wp-block-post-title{font-size:16.5px;font-weight:800;line-height:1.42;letter-spacing:-.01em;padding:16px 18px 6px;margin:0}
.wp-block-post-title a{color:var(--ink)}
.wp-block-post-title a:hover{color:var(--blue)}
.wp-block-post-date{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--faint);padding:0 18px}
.wp-block-post-excerpt{font-size:13.5px;color:var(--steel);line-height:1.65;padding:8px 18px 22px}
.wp-block-post-excerpt a{color:var(--blue);font-weight:700;font-family:var(--mono);font-size:12px}
.wp-block-query-pagination{display:flex;justify-content:center;gap:8px;margin-top:38px;flex-wrap:wrap}
.wp-block-query-pagination a,.wp-block-query-pagination .page-numbers{
  padding:9px 15px;border:1px solid var(--line);font-family:var(--mono);font-size:13px;color:var(--steel);background:#fff;transition:.2s;
}
.wp-block-query-pagination a:hover{border-color:var(--blue);color:var(--blue)}
.wp-block-query-pagination .current{background:var(--blue);color:#fff;border-color:var(--blue)}

/* 单篇文章头部实景图 */
.pfeature{max-width:900px;margin:6px auto 0;border:1px solid var(--line);box-shadow:var(--sh)}

/* 文章卡（首页 / 通用区块，与 Query Loop 视觉一致） */
.acards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.acards--4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1080px){.acards--4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.acards--4{grid-template-columns:1fr}}
.acard{background:#fff;display:flex;flex-direction:column;position:relative;transition:box-shadow .45s var(--ease),transform .45s var(--ease)}
.acard:hover{box-shadow:var(--sh);transform:translateY(-3px);z-index:2}
.acard__img{display:block;overflow:hidden}
.acard__img img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform .8s var(--ease)}
.acard:hover .acard__img img{transform:scale(1.04)}
.acard__body{padding:16px 18px 20px;display:flex;flex-direction:column;flex:1}
.acard__cat{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--blue);margin-bottom:8px}
.acard__title{font-size:16.5px;font-weight:800;line-height:1.42;letter-spacing:-.01em;margin-bottom:8px}
.acard__title a{color:var(--ink)}
.acard__title a:hover{color:var(--blue)}
.acard__ex{font-size:13.5px;color:var(--steel);line-height:1.65;flex:1;margin-bottom:14px}
.acard__meta{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:11px;color:var(--faint)}
.acard__go{color:var(--blue);font-weight:700;display:inline-flex;gap:6px}
.acard__go .ar{transition:transform .35s}
.acard:hover .acard__go .ar{transform:translateX(5px)}

/* 应用卡：查看相关文章 提示 */
.app-go{display:inline-flex;align-items:center;gap:7px;margin-top:16px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--blue);transition:color .4s var(--ease)}
.app-go .ar{transition:transform .35s}
.app>a:hover .app-go{color:#fff}
.app>a:hover .app-go .ar{transform:translateX(5px)}

/* 归档分页（index.php / the_posts_pagination） */
.pagination .nav-links{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.pagination .page-numbers{padding:9px 15px;border:1px solid var(--line);font-family:var(--mono);font-size:13px;color:var(--steel);background:#fff;transition:.2s}
.pagination a.page-numbers:hover{border-color:var(--blue);color:var(--blue)}
.pagination .page-numbers.current{background:var(--blue);color:#fff;border-color:var(--blue)}

/* 首页文章卡缩略图 */
.art .art-thumb{margin:-26px -28px 16px;height:150px;overflow:hidden}
.art .art-thumb img{width:100%;height:100%;object-fit:cover;display:block}
/* ── 资质卡片跳转（证书大图预览）2026-10-06 ──────────────── */
.cert li a{display:flex;align-items:center;gap:8px;text-decoration:none;color:inherit;border-radius:2px;transition:color .2s,background .2s;margin:0 -8px;padding:2px 8px}
.cert li a:hover{color:var(--blue);background:rgba(10,95,165,.045)}
.cert li a:hover i{color:var(--blue)}
.cert li a .ex{flex-shrink:0;margin-left:auto;opacity:0;color:var(--blue);transition:opacity .2s,transform .2s;transform:translate(-2px,2px)}
.cert li a:hover .ex,.cert li a:focus-visible .ex{opacity:1;transform:translate(0,0)}
.cert li a:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.cert-all{display:inline-flex;align-items:center;gap:7px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);width:100%;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--blue);text-decoration:none;transition:gap .25s var(--ease),color .2s}
.cert-all:hover{gap:11px;color:var(--blue-d)}
.cert-all svg{flex-shrink:0}
/* ── 首屏信任卡（P0-2 前置）2026-10-06 ──────────────────── */
.trust{border:1px solid var(--line);background:rgba(255,255,255,.86);backdrop-filter:blur(2px);padding:26px 24px 22px;box-shadow:var(--sh)}
.trust-hd{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--blue);padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:4px}
.trust-l{display:grid;gap:0}
.trust-l>div{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:baseline;padding:13px 0;border-bottom:1px dashed var(--line-s)}
.trust-l>div:last-child{border-bottom:0}
.trust-l .ti{grid-row:1/3;font-family:var(--mono);font-size:11px;color:var(--blue);letter-spacing:.08em;padding-top:2px}
.trust-l b{font-size:15.5px;font-weight:800;color:var(--ink);line-height:1.3}
.trust-l em{font-style:normal;font-size:12.5px;color:var(--steel);line-height:1.5;margin-top:2px}
.trust-cta{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:11px 20px;background:var(--blue);color:#fff;text-decoration:none;font-weight:700;font-size:14px;transition:gap .25s var(--ease),background .25s}
.trust-cta:hover{gap:12px;background:var(--blue-d)}
@media(max-width:900px){.trust{margin-top:8px}}
/* ── 场景卡「推荐产品」直达（P1-4）2026-10-06 ────────────── */
.app-prod{margin-top:12px;padding-top:11px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--steel);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.app-prod a{display:inline-block;padding:4px 11px;border:1px solid var(--line);color:var(--blue);text-decoration:none;font-weight:600;font-size:12.5px;transition:all .22s var(--ease);background:#fff}
.app-prod a:hover{background:var(--blue);border-color:var(--blue);color:#fff}
/* ── 产品区转化入口（P1-5）2026-10-06 ───────────────────── */
.pcta{margin-top:34px;padding:26px 28px;background:linear-gradient(90deg,rgba(10,95,165,.05),rgba(10,95,165,.01));border:1px solid var(--line);border-left:3px solid var(--blue);display:flex;gap:28px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.pcta-t b{display:block;font-size:18px;font-weight:800;color:var(--ink);margin-bottom:6px}
.pcta-t span{font-size:14px;color:var(--steel);line-height:1.6;max-width:560px;display:block}
.pcta-b{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.pcta-tel{font-size:13.5px;color:var(--steel);text-decoration:none;white-space:nowrap}
.pcta-tel b{color:var(--blue);font-size:15px}
.pcta-tel:hover b{color:var(--blue-d)}
@media(max-width:760px){.pcta{flex-direction:column;align-items:flex-start;gap:18px;padding:22px 20px}}
/* ── P1-6 移动端参数表/统计栏适配 2026-10-06 ─────────────── */
@media(max-width:600px){
  .ptab div{gap:10px;align-items:baseline}
  .ptab dt{flex:0 0 auto;max-width:42%}
  .ptab dd{flex:1 1 auto;text-align:right;white-space:normal;overflow-wrap:anywhere;font-size:12.5px}
  .pcard--wide .ptab dd,.pcard--bar .ptab dd{font-size:12.5px}
  .stat small{font-size:11.5px;line-height:1.45;max-width:130px}
  .stats{gap:14px 10px}
  .trust-l em{font-size:12px}
  .app-prod{font-size:12px}
  .app-prod a{font-size:12px;padding:4px 9px}
  .pcta-t b{font-size:16.5px}
  .pcta-t span{font-size:13px}
  .hero-btns .btn{flex:1 1 auto;justify-content:center}
}
@media(max-width:400px){
  .ptab dt{max-width:38%;font-size:12px}
  .ptab dd{font-size:12px}
}
/* ── 页脚企业信息（P2-8）2026-10-06 ─────────────────────── */
.fcorp{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 34px;padding:22px 0 20px;margin-bottom:20px;border-top:1px solid rgba(255,255,255,.10);border-bottom:1px solid rgba(255,255,255,.10)}
.fcorp-r{display:flex;gap:14px;align-items:baseline;font-size:12.5px;line-height:1.7}
.fcorp-k{flex:0 0 auto;font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:#7E8C9A;min-width:62px}
.fcorp-v{color:#B8C4CF}
.fcorp-v a{color:#7FB2E0;text-decoration:none}
.fcorp-v a:hover{color:#A8CDF0;text-decoration:underline}
@media(max-width:600px){.fcorp{grid-template-columns:1fr;gap:9px}.fcorp-r{font-size:12px}}
/* ── 九地市面板 SSR 适配（2026-10-07）──────────────────────
   面板改为服务端渲染后，h3/p 包进了 .acity-panel，
   原来 .abody>p 直接子选择器失效 → 这里补层级适配 */
.acity-panel[hidden]{display:none}
.acity-panel h3{font-size:22px;font-weight:800;margin-bottom:10px;letter-spacing:-.01em}
.acity-panel p{color:var(--steel);font-size:14.5px;max-width:720px;margin-bottom:26px}
@media(max-width:600px){.acity-panel h3{font-size:19px}.acity-panel p{font-size:13.5px;margin-bottom:18px}}
