:root{
  /* 品牌色按甲方 VI 手册 A2.01–A2.03（见 docs/品牌视觉规范.md）：海之蓝 / 星光橙为核心色，天蓝 / 冷灰为辅助色 */
  --blue:#004099;        /* 海之蓝 Pantone 2146C */
  --blue-80:#3366AD;--blue-60:#668CC1;--blue-40:#99B3D6;--blue-20:#CCD9EA;
  --blue-2:#3366AD;      /* 悬停态 = 海之蓝 80% */
  --blue-soft:#E6ECF5;   /* 大面积浅底：海之蓝 10%（VI 梯度最浅为 20%，大面积使用时按 VI 原则再减一半） */
  --orange:#ED6C00;      /* 星光橙 Pantone 158C */
  --orange-80:#F18933;--orange-60:#F4A766;--orange-40:#F8C499;--orange-20:#FBE2CC;
  --sky:#00A0DF;         /* 辅助：天蓝 Pantone 3538C，用于层级区分 / 数据 / 状态 */
  --sky-80:#33B3E5;--sky-60:#66C6EC;--sky-40:#99D9F2;--sky-20:#CCECF9;
  --gray:#D0D0CE;        /* 辅助：冷灰 Pantone Cool Gray 2C */
  --gray-80:#D9D9D8;--gray-60:#E3E3E2;--gray-40:#ECECEB;--gray-20:#F6F6F5;
  --navy:#0E2240;
  --ink:#16202C;
  --text:#2E3742;
  --muted:#6B7480;
  --line:#E3E3E2;        /* 冷灰 60% */
  --tint:#F2F5FA;        /* 浅底：海之蓝 5%（甲方 10/28：淡灰底改淡蓝，更清爽；原为冷灰 20% #F6F6F5）。按钮、页签等小控件仍用 --gray-20 */
  --mono:"IBM Plex Mono","SF Mono",Consolas,"Microsoft YaHei",monospace;
  --num:"Bahnschrift","DIN Alternate","DIN Next","Helvetica Neue",Arial,sans-serif;
  --sans:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC",system-ui,sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html:not(.lenis){scroll-behavior:smooth} /* Lenis 接管时必须关掉，否则锚点跳转双重缓动 */
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;background:#fff;color:var(--text);font:16px/1.75 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font:inherit}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.wrap{max-width:1240px;margin:0 auto;padding:0 28px}
.num{font-family:var(--num);font-variant-numeric:tabular-nums}

.notice{background:var(--navy);color:#B9C4D3;font-size:13px;text-align:center;padding:7px 16px}
.notice b{color:#fff;font-weight:600}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 22px;border-radius:2px;font-size:15px;font-weight:600;border:1px solid transparent;cursor:pointer;white-space:nowrap}
.btn-o{background:var(--orange);color:#fff}
.btn-o:hover{background:#D97300}
.btn-b{background:var(--blue);color:#fff}
.btn-b:hover{background:#183F7E}
.btn-g{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn-g:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn-sm{height:38px;padding:0 16px;font-size:14px}

/* hero carousel */
.hero{position:relative;height:min(78vh,760px);min-height:520px;background:var(--navy);overflow:hidden}
.slide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;visibility:hidden}
.slide.on{opacity:1;visibility:visible}
.slide img{width:100%;height:100%;object-fit:cover}
/* 轮播视频：开始播放后才淡入盖住图片（加载中、不能自动播放时仍显示图片） */
.slide .hv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s;pointer-events:none}
.slide .hv.on{opacity:1}
.slide::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,22,44,.82) 0%,rgba(9,22,44,.55) 38%,rgba(9,22,44,0) 66%)}
.slide .cap{position:absolute;inset:0;z-index:2;display:flex;align-items:center}
.slide .cap .wrap{width:100%}
.slide h1,.slide h2{color:#fff;font-size:clamp(32px,4.6vw,60px);line-height:1.2;margin:0 0 18px;letter-spacing:.03em;max-width:12em}
.slide .en{font-family:var(--num);color:#C7D3E6;font-size:clamp(14px,1.3vw,17px);letter-spacing:.03em;margin:0 0 10px;max-width:none}
.slide p{color:#DCE4EF;font-size:17px;max-width:30em;margin:0 0 30px}
.slide .tag{display:inline-block;color:#fff;font-size:14px;margin-bottom:22px} /* 左侧橙色竖线已去掉（甲方 10/29） */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hero-ctl{position:absolute;z-index:3;left:0;right:0;bottom:92px}
.hero-ctl .wrap{display:flex;gap:2px;align-items:center}
/* 轮播指示：白色圆点，当前页拉长为胶囊；不用橙色横条，避免与 .tag 的橙色竖条雷同（甲方 10/25）。透明内边距把点击区放大到 24px */
.dot{width:24px;height:24px;border:0;padding:8px;background:rgba(255,255,255,.4);background-clip:content-box;border-radius:999px;cursor:pointer;transition:width .35s cubic-bezier(.2,.8,.2,1),background-color .25s}
.dot:first-child{margin-left:-8px}
.dot:hover{background-color:rgba(255,255,255,.7)}
.dot[aria-current=true]{width:40px;background-color:#fff}

/* sections */
section.blk{padding:96px 0}
section.alt{background:var(--tint)}
.sh{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:44px;flex-wrap:wrap}
.sh h2{font-size:clamp(28px,3vw,38px);color:var(--ink);margin:0;line-height:1.25}
.sh p{margin:10px 0 0;color:var(--muted);font-size:16px;max-width:38em}
.lnk{font-size:15px;color:var(--blue);font-weight:600;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.lnk:hover{text-decoration:underline}
.lnk svg{width:14px;height:14px}

/* figures */
.figs{display:grid;grid-template-columns:repeat(4,1fr);padding:64px 0 0}
.fig{padding:0 28px;border-left:1px solid var(--line)}
.fig:first-child{border-left:0;padding-left:0}
.fig b{display:flex;align-items:flex-start;font-family:var(--num);font-size:52px;line-height:1;color:var(--blue);font-weight:600}
.fig b sup{font-size:22px;color:var(--orange);margin-left:4px;line-height:1.2}
.fig b small{font-family:var(--sans);font-size:18px;color:var(--ink);font-weight:600;margin:24px 0 0 6px}
.fig>span{display:block;font-size:15px;color:var(--muted);margin-top:10px}
.fig b span{font:inherit;color:inherit;margin:0}

/* business scope */
.scope{display:grid;grid-template-columns:repeat(5,1fr);position:relative}
.scope::before{content:"";position:absolute;left:32px;right:32px;top:32px;border-top:2px dashed #C9D3E3}
.sc{position:relative;padding-right:22px}
.sc .ic{width:64px;height:64px;border-radius:50%;background:#fff;border:2px solid var(--blue);display:grid;place-items:center;color:var(--blue);position:relative}
.sc:hover .ic{background:var(--blue);color:#fff}
.sc .ic svg{width:30px;height:30px}
.sc .n{font-family:var(--num);font-size:13px;color:var(--orange);font-weight:700;margin:20px 0 2px}
.sc b{display:block;font-size:20px;color:var(--ink);margin-bottom:10px}
.sc ul{list-style:none;margin:0;padding:0}
.sc li{font-size:14.5px;color:var(--muted);line-height:1.9}

/* industries */
.inds{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.ind{position:relative;overflow:hidden;aspect-ratio:4/3;background:#ccd}
.ind img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.ind:hover img{transform:scale(1.06)}
.ind span{position:absolute;left:0;right:0;bottom:0;padding:26px 16px 12px;color:#fff;font-weight:600;font-size:17px;background:linear-gradient(transparent,rgba(9,22,44,.78))}
.ind span::before{content:"";display:inline-block;width:3px;height:14px;background:var(--orange);margin-right:8px;vertical-align:-1px}

/* solutions */
.tabs{display:flex;box-shadow:inset 0 -1px 0 #D3D9E2;margin-bottom:36px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{background:none;border:0;border-bottom:3px solid transparent;padding:14px 26px;font-size:17px;color:var(--muted);cursor:pointer;white-space:nowrap}
.tabs button[aria-selected=true]{color:var(--blue);font-weight:700;border-bottom-color:var(--blue)}
.panel{display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:start}
.panel[hidden]{display:none}
.panel h3{font-size:26px;color:var(--ink);margin:0 0 14px;line-height:1.4}
.panel p{margin:0 0 20px;color:var(--text);font-size:15.5px}
.chips{display:flex;flex-direction:column;gap:0;margin:0 0 28px;border-top:1px solid var(--line)}
.chips span{font-size:15px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--ink);display:flex;gap:12px;align-items:center}
.chips span::before{content:"";width:6px;height:6px;background:var(--orange);flex:none}
.fw{border:1px solid var(--line);background:#fff;padding:10px;cursor:zoom-in;display:block;width:100%;text-align:left}
.fw img{width:100%}
.fw small{display:block;font-size:13px;color:var(--muted);padding:8px 2px 0}
.ph{display:grid;place-items:center;background:repeating-linear-gradient(135deg,#E6E9EE 0 12px,#EEF0F3 12px 24px);color:#7F8894;font-size:14px;aspect-ratio:16/9}
.ph span{background:rgba(255,255,255,.9);padding:4px 12px}

/* products */
.pgroup{font-size:15px;color:var(--muted);margin:0 0 14px;display:flex;align-items:baseline;gap:12px}
.pgroup::after{content:"";flex:1;border-top:1px solid var(--line);align-self:center}
.prods{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:40px}
@media(min-width:1200px){.prods:not(.sw){grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}}
.prods.sw{grid-template-columns:repeat(2,1fr)}
.pd{background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;transition:box-shadow .2s,border-color .2s}
.pd:hover{border-color:#C5D2E6;box-shadow:0 10px 30px rgba(14,34,64,.1)}
.pd .im{aspect-ratio:16/10;overflow:hidden;background:var(--tint)}
.pd .im img{width:100%;height:100%;object-fit:cover}
/* 产品工程示意图（蓝图风格） */
.pd .im svg.il{width:100%;height:100%;display:block;background:#F6F8FB;font-family:var(--mono)}
.il .i-gr{stroke:var(--blue);stroke-opacity:.08;stroke-width:calc(.5px * var(--tf,1))}
.il .i-cn{stroke:var(--blue);stroke-opacity:.35;stroke-width:calc(1px * var(--tf,1));fill:none}
.il .i-ln{stroke:var(--blue);stroke-width:calc(1px * var(--tf,1));fill:none;stroke-linecap:round;stroke-linejoin:round}
.il .i-ln2{stroke:var(--blue);stroke-width:calc(1.5px * var(--tf,1));fill:none;stroke-linecap:round;stroke-linejoin:round}
.il .i-so{stroke:var(--blue);stroke-opacity:.4;stroke-width:calc(.75px * var(--tf,1));fill:none}
.il .i-fw{fill:#fff;stroke:var(--blue);stroke-width:calc(1px * var(--tf,1))}
.il .i-ft{fill:var(--blue);fill-opacity:.08;stroke:var(--blue);stroke-opacity:.5;stroke-width:calc(.75px * var(--tf,1))}
.il .i-fb{fill:var(--blue)}
.il .i-ac{stroke:var(--orange);stroke-width:calc(1.5px * var(--tf,1));fill:none;stroke-linecap:round;stroke-linejoin:round}
.il .i-af{fill:var(--orange)}
.il .i-at{fill:var(--orange);fill-opacity:.15;stroke:var(--orange);stroke-width:calc(1px * var(--tf,1))}
.il .i-dm{stroke:var(--blue);stroke-opacity:.45;stroke-width:calc(.6px * var(--tf,1));fill:none}
.il .i-lb{font-size:calc(7px * var(--tf,1));fill:var(--blue);fill-opacity:.7;letter-spacing:.4px}
.il .i-lb2{font-size:calc(7px * var(--tf,1));fill:var(--orange);letter-spacing:.4px}
.il .i-lt{font-size:calc(8px * var(--tf,1));font-weight:600;fill:var(--blue);letter-spacing:.5px}
.il .i-dash{stroke-dasharray:3 3;animation:ilflow 1.6s linear infinite}
.il .i-move{animation:ilmove var(--t,8s) cubic-bezier(.45,0,.55,1) infinite}
.il .i-lift{animation:illift var(--t,7s) cubic-bezier(.45,0,.55,1) infinite}
.il .i-fork{animation:ilfork var(--t,7s) cubic-bezier(.45,0,.55,1) infinite;transform-box:fill-box;transform-origin:var(--ox,100%) 50%}
.il .i-swing{animation:ilswing var(--t,9s) cubic-bezier(.45,0,.55,1) infinite;transform-origin:var(--ox) var(--oy)}
.il .i-blink{animation:ilblink 2.4s steps(1) infinite}
@keyframes ilflow{to{stroke-dashoffset:-12}}
/* 运动件：去程 → 到位停顿 → 回程 → 停顿，模拟取放节拍 */
@keyframes ilmove{0%,8%{transform:translateX(0)}42%,58%{transform:translateX(var(--dx,60px))}92%,100%{transform:translateX(0)}}
@keyframes illift{0%,10%{transform:translateY(0)}40%,60%{transform:translateY(var(--dy,-40px))}90%,100%{transform:translateY(0)}}
/* 货叉：在升降停顿期间伸出再收回（与 illift 同周期） */
@keyframes ilfork{0%,40%{transform:scaleX(1)}47%,53%{transform:scaleX(var(--sx,2.2))}60%,100%{transform:scaleX(1)}}
@keyframes ilswing{0%,10%{transform:rotate(0)}40%,55%{transform:rotate(var(--rot,-70deg))}85%,100%{transform:rotate(0)}}
@keyframes ilblink{0%,70%{opacity:1}71%,100%{opacity:.25}}
@media(prefers-reduced-motion:reduce){.il .i-dash,.il .i-move,.il .i-lift,.il .i-fork,.il .i-swing,.il .i-blink{animation:none}}
.pd .tx{padding:20px 22px 22px}
.pd b{display:block;font-size:18px;color:var(--ink)}
.pd p{margin:6px 0 0;font-size:14.5px;color:var(--muted)}
.pd:hover b{color:var(--blue)}

/* cases */
.cases{display:grid;grid-template-columns:7fr 5fr;gap:32px}
.feat .ph{aspect-ratio:16/10}
.feat .meta,.cl .meta{display:flex;gap:10px;font-size:13px;color:var(--muted);margin:16px 0 4px}
.meta em{font-style:normal;color:var(--blue);background:var(--blue-soft);padding:0 8px}
.feat b{display:block;font-size:22px;color:var(--ink)}
.feat p{margin:6px 0 0;color:var(--muted);font-size:15px}
.cl{display:flex;flex-direction:column}
.cl a{display:grid;grid-template-columns:132px 1fr;gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}
.cl a:first-child{padding-top:0}
.cl .ph{aspect-ratio:4/3;font-size:12px}
.cl .meta{margin:0 0 2px}
.cl b{font-size:16.5px;color:var(--ink);line-height:1.5}
.cl a:hover b,.feat:hover b{color:var(--blue)}

/* group */
.grp{position:relative;color:#fff;overflow:hidden}
.grp>img,.grp>picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.grp::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,22,44,.92) 0%,rgba(9,22,44,.78) 50%,rgba(9,22,44,.45) 100%);z-index:1}
.grp .wrap{position:relative;z-index:2;padding-top:100px;padding-bottom:100px}
.grp h2{font-size:clamp(28px,3vw,38px);margin:0 0 14px;line-height:1.3}
.grp .lead{color:#CBD6E5;max-width:38em;margin:0 0 40px}
.bases{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid rgba(255,255,255,.22);max-width:900px}
.bs{padding:22px 24px 0 0}
.bs+.bs{padding-left:24px;border-left:1px solid rgba(255,255,255,.22)}
.bs b{display:block;font-family:var(--num);font-size:34px;font-weight:600;line-height:1.1}
.bs b small{font-size:16px;margin-left:2px;color:#CBD6E5}
.bs span{font-size:14px;color:#CBD6E5}
.stock{display:inline-flex;gap:10px;align-items:baseline;margin-top:36px;font-size:14px;color:#CBD6E5}
.stock b{font-family:var(--num);color:#fff;font-size:16px}

/* service */
.svl{border-top:1px solid var(--line)}
.svl a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;border-bottom:1px solid var(--line)}
.svl b{display:block;font-size:19px;color:var(--ink)}
.svl span{font-size:14.5px;color:var(--muted)}
.svl a:hover b{color:var(--blue)}
.svl svg{width:20px;height:20px;color:var(--blue);flex:none}

/* partners */
.ptn{display:grid;grid-template-columns:300px 1fr;gap:48px;align-items:center}
.ptn .pre{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:var(--text);letter-spacing:.12em;margin-bottom:14px}
.ptn .pre::before{content:"";width:20px;height:2px;border-radius:2px;background:var(--orange);flex:none}
.ptn .big{font-family:var(--num);font-size:110px;line-height:1;color:var(--blue);font-weight:700}
.ptn .lab{font-size:22px;color:var(--ink);font-weight:700;margin-top:14px}
.ptn small{display:block;color:var(--muted);font-size:13px;margin-top:10px}

/* cta */
.cta{background:var(--blue);color:#fff}
.cta .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-top:56px;padding-bottom:56px;flex-wrap:wrap}
.cta h2{margin:0;font-size:clamp(24px,2.6vw,32px)}
.cta p{margin:6px 0 0;color:#D5E0F1}
.cta .tel{font-family:var(--num);font-size:30px;font-weight:600;margin-right:24px}

footer{background:var(--navy);color:#9DAABD;font-size:14px}
.ft{display:grid;grid-template-columns:repeat(6,1fr) 1.6fr;gap:28px;padding-top:60px;padding-bottom:44px}
.ft h4{color:#fff;font-size:15px;margin:0 0 14px}
.ft a{display:block;padding:3px 0}
.ft a:hover{color:#fff}
.fc p{margin:0 0 10px}
.fc b{color:#fff;font-family:var(--num);font-size:22px;font-weight:600;display:block}
.fb{border-top:1px solid #213555;padding-top:18px;padding-bottom:18px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px}

dialog{border:0;padding:0;max-width:min(1100px,94vw);background:#fff}
dialog::backdrop{background:rgba(9,22,44,.75)}
dialog img{width:100%}
dialog form{position:absolute;top:8px;right:8px}
dialog button{background:var(--ink);color:#fff;border:0;width:36px;height:36px;font-size:20px;cursor:pointer}

@media (max-width:960px){
  .hero-ctl{bottom:60px}
  .figs{grid-template-columns:1fr 1fr;gap:28px 0}
  .fig:nth-child(3){border-left:0;padding-left:0}
  .scope{grid-template-columns:1fr 1fr;gap:32px 0}
  .scope::before{display:none}
  .inds{grid-template-columns:repeat(3,1fr)}
  .panel,.cases,.svc,.ptn{grid-template-columns:1fr}
  .prods{grid-template-columns:1fr 1fr}
  .bases{grid-template-columns:1fr}
  .bs+.bs{padding-left:0;border-left:0}
  .ft{grid-template-columns:repeat(3,1fr)}
  .fc{grid-column:1/-1}
}
@media (max-width:560px){
  .notice .nt{display:none}
  .wrap{padding:0 16px}
  section.blk{padding:64px 0}
  .hero{min-height:560px}
  .slide::after{background:linear-gradient(0deg,rgba(9,22,44,.9) 10%,rgba(9,22,44,.35) 100%)}
  .slide .cap{align-items:flex-end;padding-bottom:110px}
  .fig b{font-size:40px}
  .scope{grid-template-columns:1fr}
  .inds{grid-template-columns:1fr 1fr}
  .prods,.prods.sw{grid-template-columns:1fr}
  .cl a{grid-template-columns:100px 1fr}
  .ptn .big{font-size:80px}
  .ft{grid-template-columns:1fr 1fr}
}



/* 产品中心 Bento 版式 */
.pz{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto;gap:36px 24px;margin-bottom:48px}
.pz-item{display:flex;flex-direction:column;color:inherit;text-decoration:none;min-width:0;background:#fff;border:1px solid var(--line);transition:border-color .2s,box-shadow .2s}
.pz-item:hover{border-color:#C5D2E6;box-shadow:0 10px 30px rgba(14,34,64,.1)}
.pz-item.pz-hero{grid-column:1/3;grid-row:1/3}
/* 硬件 7 项：大图占左上 2×2，右侧 2 项，下方一排 4 项（12 栏网格） */
@media(min-width:961px){.pz:not(.pz-sw){grid-template-columns:repeat(12,minmax(0,1fr))}.pz:not(.pz-sw)>.pz-item{grid-column:span 4}.pz:not(.pz-sw)>.pz-item.pz-hero{grid-column:1/9}.pz:not(.pz-sw)>.pz-item:nth-child(n+4){grid-column:span 3}}
.pz-fig{min-width:0;background:#F6F8FB;overflow:hidden;border-bottom:1px solid var(--line)}
.pz-fig svg.il{width:100%;height:auto;display:block;aspect-ratio:16/10}
.pz-item.pz-hero .pz-fig svg.il{aspect-ratio:560/400}
/* 有实拍图时显示照片、隐藏示意线稿（线稿保留在模板里，供 sync_site.py 同步与无图产品回退） */
.pz-photo{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.pz-item.pz-hero .pz-photo{aspect-ratio:560/400;height:100%}
.pz-fig:has(.pz-photo) svg.il{display:none}
/* 卡片悬停已上浮，图片不再放大（甲方 10/25：WMS/WCS 等表格截图放大后被裁切） */
.pz-item.wide .pz-photo{height:100%}
.pz-tx{padding:14px 18px 18px;position:relative}
.pz-tx::before{content:"";position:absolute;left:18px;top:0;width:28px;height:2px;background:var(--orange)}
.pz-no{font-family:var(--mono);font-size:11px;letter-spacing:.8px;color:var(--orange)}
.pz-tx b{display:flex;align-items:center;gap:8px;font-size:17px;color:var(--ink);margin-top:4px}
.pz-item.pz-hero .pz-tx b{font-size:22px}
.pz-arr{width:14px;height:14px;opacity:0;transform:translateX(-4px);transition:opacity .2s,transform .2s;color:var(--orange)}
.pz-item:hover .pz-tx b{color:var(--blue)}
.pz-item:hover .pz-arr{opacity:1;transform:none}
.pz-tx p{margin:6px 0 0;font-size:14px;color:var(--muted);line-height:1.6}
.pz-item.pz-hero .pz-tx p{font-size:15px;max-width:60ch}
.pz-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.pz-tags span{font-size:12px;color:var(--blue);border:1px solid #C5D2E6;padding:2px 10px;border-radius:999px;background:#fff}
.pz-idx{font-family:var(--mono);font-size:11px;letter-spacing:.8px;color:var(--orange);margin-left:4px}
.pz-sw{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:0}
.pz-item.wide{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:0;align-items:stretch}
.pz-item.wide .pz-fig{border-bottom:0;border-right:1px solid var(--line);display:flex;align-items:center}
.pz-item.wide .pz-tx{padding:22px 22px 22px 24px;display:flex;flex-direction:column;justify-content:center}
@media(max-width:960px){.pz,.pz-sw{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:0}.pz-item.pz-hero{grid-column:1/3;grid-row:auto}.pz-item.wide{grid-template-columns:minmax(0,1fr)}.pz-item.wide .pz-fig{border-right:0;border-bottom:1px solid var(--line)}}
@media(max-width:640px){.pz,.pz-sw{grid-template-columns:minmax(0,1fr)}.pz-item.pz-hero{grid-column:auto}}

/* 浮窗表单：字段部件 */
.chat .f{display:block;margin:0}
.chat .f .lbl{display:block;font-size:12.5px;color:var(--muted);margin-bottom:4px}
.chat .f.req .lbl::after{content:" *";color:var(--orange)}
.chat .opts{display:flex;flex-wrap:wrap;gap:6px 14px}
.chat .opt{font-size:13px}

/* ===== header / 导航 ===== */
:root{--hh:76px}
header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.88);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);box-shadow:inset 0 -1px 0 rgba(14,34,64,.08);transition:box-shadow .25s,background .25s}
header.scrolled{background:rgba(255,255,255,.96);box-shadow:inset 0 -1px 0 rgba(14,34,64,.06),0 8px 30px -12px rgba(14,34,64,.18)}
#hd.mm{background:#fff;box-shadow:inset 0 -1px 0 rgba(14,34,64,.08)} /* 通栏下拉打开时顶栏实白；保留底边线，去掉滚动后的投影（投影会落在面板上） */
.hd{display:flex;align-items:center;height:var(--hh);gap:20px}
/* 页头通栏：不限最大宽度，logo 贴左、咨询贴右（两端对齐），边距随屏宽 24–96px，首页 / 内页一致。
   不跟正文 1240 对齐：logo + 7 项导航 + 语言 + 咨询约 1180px，塞进 1184 的正文宽度会顶满；只比正文略宽又会显得 logo 偏出去 */
#hd .wrap{max-width:none;padding-left:clamp(24px,4vw,96px);padding-right:clamp(24px,4vw,96px)}
@media (max-width:1080px){#hd .wrap{padding-left:28px;padding-right:28px}} /* 手机菜单态与正文边距一致 */
@media (max-width:560px){#hd .wrap{padding-left:16px;padding-right:16px}}
.logo{display:flex;align-items:center;line-height:0;flex:none}
.logo img{display:block;width:auto}
.logo .logo-cn{height:40px}
/* 页头 Logo 中英文站同高，随屏宽连续缩放：1920→22、1440→20.6、1081→19.1（手机菜单态见 1080 断点）。
   中文站为横版组合标（VI：英文 5x + 间距 0.4x + 中文，按官方横版源图排版），英文站为英文标 */
.logo .logo-h,.logo .logo-en{height:clamp(19px,14.8px + .4vw,22px)}
nav.main{display:flex;align-items:center;gap:2px;margin-left:auto;height:100%}
.mi{display:flex;align-items:center;height:100%;padding:14px 0} /* 不设定位：下拉面板相对整个顶栏定位才能通栏 */
.mi>a{position:relative;display:inline-flex;align-items:center;gap:5px;height:40px;padding:0 15px;border-radius:10px;font-size:15px;font-weight:500;color:var(--ink);letter-spacing:.01em;white-space:nowrap;transition:color .18s,background .18s}
.mi>a .cv{width:11px;height:11px;color:var(--muted);transition:transform .2s,color .18s}
.mi>a::after{content:"";position:absolute;left:0;right:0;top:calc((var(--hh) - 40px) / -2);height:3px;border-radius:0 0 3px 3px;background:var(--blue);transform:scaleX(0);transform-origin:center;transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.mi>a.on{color:var(--blue);font-weight:600}
.mi>a.on::after{transform:scaleX(1)}
.mi:hover>a,.mi:focus-within>a{color:var(--blue);background:var(--blue-soft)}
.mi:hover>a .cv,.mi:focus-within>a .cv{transform:rotate(180deg);color:var(--blue)}
/* 通栏下拉（mega menu）：面板左右撑满视口、贴住顶栏底边，内容居中（最宽 1360，比正文版心略宽，给子栏目三列留足空间）；左侧栏目标题 + 简介 + 查看全部，右侧子栏目网格。
   开合由 site.js 控制（.mi.open + header.mm，带悬停意图延时，栏目间移动不闪）；键盘 Tab 进入时靠 :focus-within 兜底 */
.dd{position:absolute;left:0;right:0;top:100%;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s,transform .26s cubic-bezier(.2,.8,.2,1),visibility 0s .26s;z-index:2}
.mi.open .dd,#hd:not(.mm) .mi:focus-within .dd{opacity:1;visibility:visible;transform:none;transition-delay:0s}
#hd:not(.mm) .mi:focus-within .dd{background:#fff} /* 无 JS 时键盘兜底：面板自带白底 */
#hd.mm .mi:not(.open) .dd{transition:none} /* 栏目间切换：旧内容立即收起，新内容淡入，不叠影 */
#hd.mm .mi.open .dd{transition:opacity .22s,transform .22s cubic-bezier(.2,.8,.2,1)}
/* 面板白底是整个顶栏共用的一层（不跟着各栏目面板开合）：栏目间切换时白底常驻，只换内容；高度 --mmh 由 site.js 量出，切换时平滑过渡 */
#hd::before{content:"";position:absolute;left:0;right:0;top:100%;height:var(--mmh,0);background:#fff;box-shadow:0 28px 48px -28px rgba(14,34,64,.32);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,visibility 0s .2s;z-index:1}
#hd.mm::before{opacity:1;visibility:visible;transition:opacity .2s,height .3s cubic-bezier(.2,.8,.2,1)}
.mi.open>a{color:var(--blue);background:var(--blue-soft)}
.mi.open>a .cv{transform:rotate(180deg);color:var(--blue)}
/* 面板下方的页面压暗；z-index:-1 落在顶栏自身背景之下（只露出顶栏以下部分） */
#hd::after{content:"";position:absolute;left:0;right:0;top:100%;height:100vh;background:rgba(9,22,44,.32);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s,visibility 0s .25s;z-index:-1}
#hd.mm::after{opacity:1;visibility:visible;transition-delay:0s}
.dd-in{max-width:1360px;margin:0 auto;padding:28px 28px 32px;display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:48px}
.dd-lead{position:relative;overflow:hidden;padding:28px 28px 26px;border-radius:16px;background:radial-gradient(120% 90% at 100% 0,rgba(0,160,223,.09),transparent 60%),linear-gradient(160deg,#F4F7FB,#ECF1F8);display:flex;flex-direction:column;align-items:flex-start}
.dd-h{margin:0;font-size:24px;font-weight:600;color:var(--ink);line-height:1.3;letter-spacing:.02em}
.dd-p{margin:12px 0 0;text-wrap:pretty;font-size:14px;line-height:1.75;color:var(--muted);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.dd-more{margin-top:auto;padding-top:22px;display:inline-flex;align-items:center;gap:8px;font-size:14.5px;font-weight:600;color:var(--blue);transition:color .18s}
.dd-more svg{width:16px;height:16px;transition:transform .2s}
.dd-more:hover{color:var(--blue-2)}
.dd-more:hover svg{transform:translateX(4px)}
.dd-g{display:grid;gap:6px 16px;align-content:start;padding-top:8px}
.dd-g.c2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px}
.dd-g.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.dd-g a{position:relative;display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;color:var(--text);transition:background .15s,color .15s}
.dd-g a>svg{width:14px;height:14px;color:var(--blue);opacity:0;transform:translateX(-6px);transition:opacity .15s,transform .2s;flex:none}
.dd-g a:hover{background:var(--blue-soft)}
.dd-g a:hover>svg{opacity:1;transform:none}
.dd-g a.on .dd-t>span{color:var(--blue);font-weight:600}
.dd-t{flex:1;min-width:0;line-height:1.4}
.dd-t>span{display:block;font-size:15px;color:var(--ink);font-weight:500;transition:color .15s}
.dd-t small{display:block;font-size:12.5px;color:var(--muted);margin-top:3px}
.dd-g a:hover .dd-t>span{color:var(--blue)}
.hd-r{display:flex;align-items:center;gap:14px;margin-left:8px;padding-left:18px;border-left:1px solid rgba(14,34,64,.1);height:32px}
.lang{display:inline-flex;align-items:center;padding:3px;border-radius:999px;background:var(--gray-20);font-size:12.5px;font-weight:600;letter-spacing:.02em}
.lang a,.lang b{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;color:var(--muted);transition:color .15s}
.lang a:hover{color:var(--ink)}
.lang-g{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px 0 10px;border-radius:999px;font-size:13.5px;font-weight:600;color:var(--text);transition:background .15s,color .15s}
.lang-g svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4}
.lang-g:hover{background:var(--blue-soft);color:var(--blue)}
.lang b{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(14,34,64,.12)}
.hd-cta{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 18px 0 14px;border:0;border-radius:999px;background:var(--orange);color:#fff;font-size:14.5px;font-weight:600;cursor:pointer;white-space:nowrap;box-shadow:0 8px 20px -8px rgba(237,108,0,.6);transition:transform .18s,box-shadow .18s,background .18s}
.hd-cta svg{width:19px;height:19px}
.hd-cta:hover{background:#D96200;transform:translateY(-1px);box-shadow:0 12px 24px -8px rgba(237,108,0,.65)}
.burger{display:none;margin-left:auto;width:42px;height:42px;background:none;border:0;border-radius:10px;cursor:pointer;position:relative;flex:none}
.burger span{position:absolute;left:11px;width:20px;height:2px;border-radius:2px;background:var(--ink);transition:transform .25s,opacity .2s,top .25s}
.burger span:nth-child(1){top:14px}.burger span:nth-child(2){top:20px}.burger span:nth-child(3){top:26px}
.burger[aria-expanded=true] span:nth-child(1){top:20px;transform:rotate(45deg)}
.burger[aria-expanded=true] span:nth-child(2){opacity:0}
.burger[aria-expanded=true] span:nth-child(3){top:20px;transform:rotate(-45deg)}
.drawer,.dr-bg{display:none}

/* ===== 浮动咨询 / 返回顶部 ===== */
.fabs{position:fixed;right:28px;bottom:28px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.totop{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.92);border:1px solid rgba(14,34,64,.1);color:var(--ink);cursor:pointer;display:grid;place-items:center;box-shadow:0 8px 24px -8px rgba(14,34,64,.3);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .2s,opacity .2s,color .15s}
.totop[hidden]{display:grid;opacity:0;pointer-events:none;transform:translateY(8px)}
.totop svg{width:18px;height:18px}
.totop:hover{color:var(--blue);transform:translateY(-2px)}
.fab{position:relative;display:inline-flex;align-items:center;gap:9px;height:54px;padding:0 22px 0 18px;border:0;border-radius:999px;background:linear-gradient(135deg,#F28A1F,var(--orange));color:#fff;font-size:15px;font-weight:600;letter-spacing:.02em;cursor:pointer;box-shadow:0 14px 34px -10px rgba(237,108,0,.7),0 2px 6px rgba(237,108,0,.25);transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s,opacity .2s}
.fab svg{width:24px;height:24px;flex:none}
.fab:hover{transform:translateY(-2px);box-shadow:0 18px 40px -10px rgba(237,108,0,.75),0 2px 6px rgba(237,108,0,.25)}
.fab::before{content:"";position:absolute;inset:-4px;border-radius:999px;border:2px solid rgba(237,108,0,.55);opacity:0;animation:fabring 2.6s ease-out .8s 3}
@keyframes fabring{0%{transform:scale(.92);opacity:.9}70%{transform:scale(1.18);opacity:0}100%{opacity:0}}
.fab[aria-expanded=true]{opacity:0;pointer-events:none;transform:translateY(10px) scale(.9)}

/* ===== 咨询弹窗 ===== */
.chat{position:fixed;right:28px;bottom:28px;z-index:61;width:384px;max-width:calc(100vw - 32px);background:#fff;border-radius:18px;border:1px solid rgba(14,34,64,.07);box-shadow:0 32px 80px -20px rgba(14,34,64,.35),0 4px 16px rgba(14,34,64,.08);overflow:hidden;transform-origin:100% 100%;opacity:0;transform:translateY(14px) scale(.96);transition:opacity .22s,transform .26s cubic-bezier(.2,.8,.2,1)}
.chat.show{opacity:1;transform:none}
.chat[hidden]{display:none}
.chat .ch{display:flex;align-items:center;gap:12px;padding:18px 14px 16px 20px;border-bottom:1px solid var(--gray-60);background:linear-gradient(180deg,#F8FAFD,#fff)}
.ch-tx{flex:1;min-width:0}
.ch-tx b{display:block;font-size:17px;color:var(--ink);line-height:1.3;position:relative;padding-left:12px}
.ch-tx b::before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:3px;border-radius:3px;background:var(--orange)}
.ch-tx small{display:block;color:var(--muted);font-size:12.5px;margin-top:4px;padding-left:12px}
.chat .x{width:32px;height:32px;border-radius:50%;border:0;background:transparent;color:var(--muted);cursor:pointer;display:grid;place-items:center;transition:background .15s,color .15s;flex:none}
.chat .x svg{width:15px;height:15px}
.chat .x:hover{background:var(--gray-40);color:var(--ink)}
.chat form{padding:16px 18px 14px;display:grid;gap:10px;max-height:calc(100vh - 160px);overflow:auto}
.chat input,.chat textarea,.chat select{width:100%;font:inherit;font-size:14.5px;color:var(--ink);border:1px solid #DDE3EA;background:#F7F9FB;padding:10px 13px;border-radius:10px;transition:border-color .15s,background .15s,box-shadow .15s}
.chat input::placeholder,.chat textarea::placeholder{color:#9AA3AE}
.chat select:has(option[value=""]:checked){color:#9AA3AE}
.chat select option{color:var(--ink)}
.chat input:focus,.chat textarea:focus,.chat select:focus{outline:0;background:#fff;border-color:var(--blue-80);box-shadow:0 0 0 3px rgba(0,64,153,.12)}
.chat textarea{min-height:88px;resize:vertical}
.chat .f .lbl{font-size:12.5px;color:var(--muted);margin-bottom:5px}
.chat .opts{gap:6px 8px}
.chat .opt{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--text)}
.chat .opt input{width:auto;margin:0;accent-color:var(--blue)}
.chat .agree{font-size:12.5px;color:var(--muted);display:flex;gap:7px;align-items:flex-start;line-height:1.5}
.chat .agree input{width:auto;margin-top:3px;accent-color:var(--blue)}
.chat .agree a{color:var(--blue)}
.chat .msg{font-size:13px;min-height:0;line-height:1.4}
.chat .msg:empty{display:none}
.chat .msg.err{color:#C62828}
.chat .msg.ok{color:#1F8A5B}
.chat .submit{height:46px;border:0;border-radius:11px;background:linear-gradient(135deg,#F28A1F,var(--orange));color:#fff;font-size:15px;font-weight:600;letter-spacing:.04em;cursor:pointer;box-shadow:0 10px 22px -10px rgba(237,108,0,.7);transition:transform .18s,box-shadow .18s,filter .18s}
.chat .submit:hover{filter:brightness(1.04);transform:translateY(-1px)}
.chat .submit:disabled{opacity:.6;cursor:default;transform:none}
.ch-tel{display:flex;align-items:baseline;justify-content:center;gap:6px;margin:2px 0 0;font-size:12.5px;color:var(--muted)}
.ch-tel svg{width:13px;height:13px;align-self:center}
.ch-tel a{color:var(--ink);font-weight:600;font-size:13px}

/* 横版 logo 比上下组合标宽约 120px：中等宽度逐级给导航让位 */
@media (max-width:1440px){
  .mi>a{padding:0 12px}
}
@media (max-width:1360px){
  .hd-r{gap:10px;padding-left:14px}
}
@media (max-width:1280px){
  /* 页头咨询按钮只留图标（右下角常驻悬浮咨询按钮，入口不减） */
  .hd-cta{width:40px;padding:0;gap:0;justify-content:center;font-size:0}
}
@media (max-width:1180px){
  .mi>a{padding:0 9px;font-size:14.5px}
}
@media (max-width:1280px){
  .dd-in{grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:36px;padding-top:30px;padding-bottom:34px}
  .dd-lead{padding:24px 22px 22px}
  .dd-h{font-size:21px}
}
@media (max-width:1080px){
  :root{--hh:64px}
  nav.main,.hd-r{display:none}
  .logo .logo-cn{height:36px}
  .logo .logo-h,.logo .logo-en{height:20px}
  .burger{display:block}
  .drawer{display:block;position:fixed;top:0;right:0;bottom:0;width:min(86vw,380px);background:#fff;z-index:70;transform:translateX(100%);transition:transform .32s cubic-bezier(.2,.8,.2,1);box-shadow:-24px 0 60px -20px rgba(14,34,64,.35);overflow:auto;padding-top:var(--hh)}
  .drawer[hidden]{display:block;visibility:hidden}
  .drawer.open{transform:none}
  .dr-bg{display:block;position:fixed;inset:0;z-index:65;background:rgba(9,22,44,.45);opacity:0;transition:opacity .3s;pointer-events:none}
  .dr-bg[hidden]{display:block}
  .dr-bg.open{opacity:1;pointer-events:auto}
  header.dro{z-index:80;background:#fff;box-shadow:none}
  .dr-in{padding:8px 22px 28px}
  .dg{border-bottom:1px solid var(--gray-60);padding:10px 0 14px}
  .dg-t{display:block;font-size:17px;font-weight:600;color:var(--ink);padding:8px 0}
  .dg-t.on{color:var(--blue)}
  .dg-k{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
  .dg-k a{font-size:13.5px;color:var(--text);background:var(--gray-20);padding:6px 12px;border-radius:999px}
  .dg-k a:active{background:var(--blue-soft);color:var(--blue)}
  .dr-f{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:20px}
  .dr-tel{font-size:18px;font-weight:600;color:var(--blue)}
  .fabs{right:16px;bottom:16px}
  .fab{height:50px;padding:0 18px 0 15px;font-size:14.5px}
}
@media (max-width:560px){
  .chat{right:0;bottom:0;left:0;width:auto;max-width:none;border-radius:20px 20px 0 0;transform:translateY(100%)}
  .chat.show{transform:none}
  .chat form{max-height:calc(100vh - 140px)}
}


/* ===== v2 首页：数据卡 ===== */
.fig b{font-size:48px}
.fig>span{margin-top:8px}

/* ===== v2 首页：五步流程卡 ===== */
.steps2{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.st2{position:relative;padding:28px 22px 26px;border-radius:var(--r);background:var(--tint);transition:background .3s,transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
/* 悬停上浮 6px 后鼠标若停在卡片底边会落到卡片外，悬停态反复开关导致上下抖动：用透明伪元素把命中区域向下补 6px，抬起后仍盖住原位置 */
.st2::before{content:"";position:absolute;left:0;right:0;top:0;bottom:-6px}
.st2-ic{width:48px;height:48px;border-radius:14px;background:#fff;display:grid;place-items:center;color:var(--blue);box-shadow:0 6px 16px -8px rgba(14,34,64,.25);margin-bottom:22px;transition:background .3s,color .3s}
.st2-ic svg{width:26px;height:26px}
.st2 b{display:block;font-size:19px;color:var(--ink);margin-bottom:12px;transition:color .3s}
.st2 ul{list-style:none;margin:0;padding:0}
.st2 li{font-size:14px;color:var(--muted);line-height:1.9;display:flex;gap:8px;align-items:center;transition:color .3s}
.st2 li::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--orange);flex:none}
/* 底部橙线用与卡片同尺寸的伪元素画底边框，顺着圆角走（3px 高的色条压不出圆角，会露在圆角外）；左到右出现用 clip-path 裁切 */
.st2::after{content:"";position:absolute;inset:0;border-radius:var(--r);border-bottom:3px solid var(--orange);pointer-events:none;clip-path:inset(0 100% 0 0);transition:clip-path .35s cubic-bezier(.2,.8,.2,1)}
.st2:hover{background:#fff;transform:translateY(-6px);box-shadow:0 0 0 1px var(--blue-20),0 24px 48px -24px rgba(14,34,64,.3)}
.st2:hover .st2-ic{background:var(--blue);color:#fff}
.st2:hover b{color:var(--blue)}
.st2:hover li{color:var(--text)}
.st2:hover::after{clip-path:inset(0)}

/* ===== v2 首页：行业 Bento ===== */
.inds2{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.ind2{position:relative;overflow:hidden;border-radius:var(--r);background:var(--navy);aspect-ratio:4/5;display:block}
.ind2:nth-child(1),.ind2:nth-child(2){grid-column:span 2;aspect-ratio:auto}
/* 大图不参与撑高：高度跟同一行的小图走，图片铺满 */
.ind2:nth-child(1) img,.ind2:nth-child(2) img{position:absolute;inset:0}
.ind2 img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .4s;filter:saturate(.9)}
.ind2::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,22,44,.05) 30%,rgba(9,22,44,.82) 100%);transition:background .3s}
.ind2-n{position:absolute;left:16px;top:14px;z-index:2;font-size:12px;color:#fff;background:rgba(255,255,255,.18);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:3px 9px;border-radius:999px;letter-spacing:.08em}
.ind2-t{position:absolute;left:18px;right:16px;bottom:16px;z-index:2;color:#fff;font-weight:600;font-size:17px;display:flex;align-items:center;gap:10px}
.ind2-t::before{content:"";width:3px;height:16px;border-radius:3px;background:var(--orange);flex:none}
.ind2:nth-child(1) .ind2-t,.ind2:nth-child(2) .ind2-t{font-size:22px}
.ind2:hover img{transform:scale(1.08);filter:saturate(1.1)}
.ind2:hover::after{background:linear-gradient(180deg,rgba(0,64,153,.15) 20%,rgba(0,64,153,.85) 100%)}

/* ===== v2：案例占位（蓝图风） ===== */
.cph{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;aspect-ratio:16/10;border-radius:var(--r);overflow:hidden;color:#fff;background:linear-gradient(135deg,#0E2240 0%,#163A70 100%)}
.cph::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:24px 24px;-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 80%);mask-image:radial-gradient(ellipse at center,#000 30%,transparent 80%)}
.cph::after{content:"";position:absolute;left:14px;top:14px;width:14px;height:14px;border-left:2px solid var(--orange);border-top:2px solid var(--orange);box-shadow:none}
.cph i{position:relative;font-style:normal;font-size:clamp(20px,2.2vw,34px);font-weight:700;letter-spacing:.2em;color:#fff}
.cph em{position:relative;font-style:normal;font-family:var(--num);font-size:11px;letter-spacing:.2em;color:#8FA8CC}
.cph.big i{font-size:clamp(32px,3.6vw,52px)}
.cl .cph{aspect-ratio:4/3}
.cl .cph i{font-size:16px;letter-spacing:.1em}
.ph{border-radius:var(--r)}

/* ===== v2 首页：合作伙伴跑马灯 ===== */
.ptn{grid-template-columns:260px 1fr;gap:40px}
.marq{display:grid;gap:12px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marq-r{display:flex;width:max-content;gap:12px;animation:marq var(--dur,50s) linear infinite;will-change:transform;backface-visibility:hidden;transform:translate3d(0,0,0)}
.marq-r.rev{animation-direction:reverse}
.marq:hover .marq-r{animation-play-state:paused}
.marq-t{display:flex;gap:12px;flex:none}
.marq-t img{width:150px;height:72px;object-fit:contain;background:#fff;padding:12px 18px;border-radius:12px;border:1px solid var(--card-line);flex:none}
@keyframes marq{from{transform:translate3d(0,0,0)}to{transform:translate3d(calc(-50% - 6px),0,0)}}
@media (prefers-reduced-motion:reduce){.marq-r{animation:none;flex-wrap:wrap;width:auto}.marq-t[aria-hidden]{display:none}}

/* 首页：案例区 / 服务区细节 */
.feat b{margin-top:4px}
.cl a{border-bottom-color:var(--gray-60)}
.grp::before{background:linear-gradient(90deg,rgba(9,22,44,.94) 0%,rgba(9,22,44,.8) 50%,rgba(9,22,44,.5) 100%)}
.bases{border-top-color:rgba(255,255,255,.18)}

@media (max-width:960px){
  .steps2{grid-template-columns:repeat(2,1fr)}
  .inds2{grid-template-columns:repeat(3,1fr);grid-auto-flow:dense}
  .ind2:nth-child(1),.ind2:nth-child(2){grid-column:span 2}
  .ptn{grid-template-columns:1fr}
}
@media (max-width:560px){
  .steps2{grid-template-columns:1fr}
  .inds2{grid-template-columns:1fr 1fr}
  .fig b{font-size:36px}
}

/* 导航下拉：产品 / 方案带双色图标与简介 */
.dd-i{width:42px;height:42px;border-radius:12px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;flex:none;transition:background .15s,color .15s,transform .2s}
.dd-i svg{width:24px;height:24px}
.dd-i .ac{stroke:var(--orange);fill:none}
.dd-i rect.ac,.dd-i circle.ac{fill:var(--orange);stroke:none}
.dd-ic .dd-g a:hover .dd-i{background:var(--blue);color:#fff;transform:scale(1.04)}
.dd-ic .dd-g a:hover .dd-i .ac{stroke:var(--orange-60)}
.dd-ic .dd-g a:hover .dd-i rect.ac,.dd-ic .dd-g a:hover .dd-i circle.ac{fill:var(--orange-60)}

/* 合作伙伴：角标说明 + logo 卡片 */
.marq-box{position:relative;min-width:0}
.marq-t img{width:132px;height:56px;padding:10px 14px;border-radius:10px;object-fit:contain;transition:box-shadow .2s,border-color .2s}
.marq-t img:hover{border-color:var(--blue-20);box-shadow:0 8px 16px -10px rgba(14,34,64,.35)}

/* ===== 产品蓝图插画：提高对比度（线更实、填充更深、标注更清晰，结构与动画不变） ===== */
.pz-fig,.pd .im svg.il{background:#EDF2F9}
.pz-fig{background:radial-gradient(ellipse at 50% 40%,#F4F7FC 0%,#E8EEF7 100%)}
.il .i-gr{stroke-opacity:.13;stroke-width:calc(.5px * var(--tf,1))}
.il .i-cn{stroke-opacity:.6;stroke-width:calc(1.2px * var(--tf,1))}
.il .i-ln{stroke-width:calc(1.35px * var(--tf,1))}
.il .i-ln2{stroke-width:calc(2px * var(--tf,1))}
.il .i-so{stroke-opacity:.62;stroke-width:calc(.85px * var(--tf,1))}
.il .i-fw{stroke-width:calc(1.35px * var(--tf,1))}
.il .i-ft{fill-opacity:.16;stroke-opacity:.8;stroke-width:calc(1px * var(--tf,1))}
.il .i-ac{stroke-width:calc(2px * var(--tf,1))}
.il .i-at{fill-opacity:.32;stroke-width:calc(1.3px * var(--tf,1))}
.il .i-dm{stroke-opacity:.65;stroke-width:calc(.75px * var(--tf,1))}
.il .i-lb{fill-opacity:.95;font-weight:500}
.il .i-lb2{font-weight:600}
.il .i-lt{font-weight:700}
