/* ==========================================================================
   字号与对齐规范（要改字号/图标位置，先看这一段，不要再零散地手调）
   · 正文 / 列表 / 引文     15—16px     段落、卡片正文、li、引文、表单控件
   · 辅助说明 / 图注        13.8—14.5px 流程步骤描述、卡片下的说明行、图表注释
   · 标签 / 眉标 / 微字     12.5—13.5px eyebrow、tag、表注、证书编号、面包屑
   · 「图标 + 首行文字」一律按同一公式推导后写成定值：
       top（或 margin-top）= 文字首行行高 ÷ 2 − 图标高度 ÷ 2
     逐个写死但不推导，就是本项目「很多地方不齐」的根源（原先 6 组项目符号的
     top 值各不相同，多数偏低 1—3px）；而写成 calc(.875em - 6px) 这类 em 表达式
     同样不可靠 —— 伪元素里的 em 按「伪元素自身 font-size」解析，只要该伪元素
     设过 font-size，结果就会整体偏移。各条已推导的定值见下方「图标与文字对齐」段。
   ========================================================================== */
:root{
  --blue:#165DFF;--blue-2:#2B76FF;--deep:#0F3885;--navy:#0B1F3F;--cyan:#36BFFA;
  --soft:#E8F3FF;--soft-2:#F2F7FF;--fog:#F7FAFE;
  --ink:#16203A;--text:#41506B;--muted:#7C8AA0;
  --line:#E5EDF9;--card-line:#EDF3FC;
  --orange:#FF8A3D;--yellow:#FFC53D;--green:#20C08A;--purple:#7B61FF;--pink:#FF7BA9;
  --r-xl:28px;--r-lg:22px;--r-md:16px;--r-sm:12px;
  --sh-sm:0 6px 18px rgba(16,52,120,.06);
  --sh:0 14px 40px rgba(16,52,120,.08);
  --sh-lg:0 24px 64px rgba(11,31,63,.12);
  --maxw:1180px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:#fff;color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;display:block}
svg,.hero-art text{font-family:inherit}
a{color:var(--blue);text-decoration:none}
a:hover{color:var(--deep)}
h1,h2,h3,h4{color:var(--ink);margin:0;line-height:1.32;font-weight:800;letter-spacing:-.2px}
h1{font-size:clamp(27px,3.7vw,45px);letter-spacing:-1px}
h2{font-size:clamp(22px,2.9vw,36px);letter-spacing:-.6px}
h3{font-size:clamp(17px,1.6vw,20px);font-weight:700}
p,blockquote,figure{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
.skip{position:absolute;left:-9999px;top:0;background:var(--blue);color:#fff;padding:12px 20px;border-radius:0 0 12px 0;z-index:999}
.skip:focus{left:0;color:#fff}
.lead-feedback{min-height:22px;margin:12px 0 0;font-size:13px;line-height:1.55;color:#52627A}
.lead-feedback:empty{display:none}
.lead-feedback[data-state="success"]{color:#087F4C}
.lead-feedback[data-state="error"]{color:#C63C22}
.form .btn[disabled]{cursor:not-allowed;opacity:.72}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.center{text-align:center}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:1.4px;color:var(--blue);background:var(--soft);border-radius:999px;padding:7px 16px}
.eyebrow i{width:6px;height:6px;border-radius:50%;background:var(--cyan);display:block}
.lead{font-size:17px;color:var(--text);max-width:820px;margin:18px auto 0}
.sec{padding:86px 0;position:relative;overflow:hidden}
/* overflow:hidden 会让元素成为「不滚动的滚动容器」，内部所有 position:sticky 就此失效
   （.dtoc 左侧目录、.case-side 案例右栏都栽在这条上）。
   凡「内部含 sticky 元素、且自身没有需要裁剪的装饰层」的区块，加 .noclip 解除裁剪。 */
.sec.noclip{overflow:visible}
.sec-fog{background:linear-gradient(180deg,#F8FBFF 0%,#F2F7FE 100%)}
.sec-head{max-width:820px;margin:0 auto 46px;text-align:center}
.sec-head h2{margin-top:16px}
.blob{position:absolute;border-radius:50%;pointer-events:none;z-index:0}
.wrap,.sec>.inner{position:relative;z-index:1}
.inner{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* 所有锚点目标统一预留「页头 + 页内导航」的高度。
   实测漏掉这条时，点页内导航会把标题顶到吸顶条底下（约 125px 被遮住），
   之前只有 .mod / .case-item / .iitem / .know article 单独设过，其余区块全被遮挡。 */
[id]{scroll-margin-top:var(--anchoroff,155px)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:15px;
  padding:14px 26px;border-radius:999px;border:1.5px solid transparent;transition:.22s ease;cursor:pointer;white-space:nowrap}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 10px 24px rgba(22,93,255,.26)}
.btn-primary:hover{background:var(--deep);color:#fff;transform:translateY(-2px);box-shadow:0 14px 30px rgba(22,93,255,.32)}
.btn-ghost{background:#fff;color:var(--blue);border-color:#CFE0FF}
.btn-ghost:hover{border-color:var(--blue);background:var(--soft-2);color:var(--deep);transform:translateY(-2px)}
.btn-sm{padding:10px 20px;font-size:14px}

/* ---------- header ---------- */
.hd{position:sticky;top:0;z-index:80;background:rgba(255,255,255,.9);backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid transparent;transition:.25s}
.hd.on{border-bottom-color:var(--line);box-shadow:0 6px 24px rgba(16,52,120,.05)}
.hd-in{max-width:var(--maxw);margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:26px}
.brand{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.brand img{height:36px;width:auto}
.nav{display:flex;align-items:center;gap:4px;margin-left:8px;flex:1}
.nav a{color:#4A5A72;font-size:15px;font-weight:500;padding:9px 13px;border-radius:10px;transition:.2s}
.nav a:hover{color:var(--blue);background:var(--soft-2)}
.nav a.cur{color:var(--blue);font-weight:700;background:var(--soft)}
.hd-cta{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.hd-cta .btn{padding:11px 22px;font-size:14.5px}
/* ---------- 移动端导航（≤1000px：只留 logo + 汉堡键，页面切换走抽屉） ---------- */
.burger{display:none;flex:0 0 auto;width:44px;height:44px;margin-left:auto;padding:0;place-items:center;
  border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;transition:.2s}
.burger:hover{border-color:#CFE0FF;background:var(--soft-2)}
.burger:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.burger svg{width:22px;height:22px;display:block}
/* 汉堡键 → × ：两条线要绕「自身中心」旋转，再平移到中间那条线上（7+5=12、17-5=12）。
   ⚠️ transform-origin:center 默认按 transform-box:view-box 解析，原点取的是 SVG 视口中心(12,12)；
   而线条本体在 y=7 / y=17，绕视口中心转出来的两条线交叉点会偏到 x=6.5 —— 表现为「× 显示不全 / 错位」。
   加 transform-box:fill-box 后原点才等于线条自身包围盒中心，交叉点落回正中。 */
.burger .ln{transform-box:fill-box;transform-origin:center;transition:transform .24s ease,opacity .18s ease}
.burger[aria-expanded="true"] .ln1{transform:translateY(5px) rotate(45deg)}
.burger[aria-expanded="true"] .ln2{opacity:0}
.burger[aria-expanded="true"] .ln3{transform:translateY(-5px) rotate(-45deg)}

.mnav{position:fixed;left:0;right:0;top:var(--hdh,74px);z-index:75;display:none;
  background:#fff;border-bottom:1px solid var(--line);
  box-shadow:0 26px 52px -22px rgba(11,31,63,.30);
  max-height:calc(100dvh - var(--hdh,74px));overflow-y:auto;overscroll-behavior:contain;
  opacity:0;visibility:hidden;transform:translateY(-12px);
  transition:opacity .22s ease,transform .22s ease,visibility .22s}
.mnav[data-open="true"]{opacity:1;visibility:visible;transform:none}
.mnav-in{padding:6px 20px 24px}
.mnav a.mlink{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:15px 2px;font-size:16px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--line)}
.mnav a.mlink:last-of-type{border-bottom:0}
.mnav a.mlink.cur,.mnav a.mlink:hover{color:var(--blue)}
.mnav a.mlink::after{content:"";flex:0 0 auto;width:8px;height:8px;margin-right:5px;
  border-right:2px solid #C3D2E8;border-bottom:2px solid #C3D2E8;transform:rotate(-45deg)}
.mnav a.mlink:hover::after,.mnav a.mlink.cur::after{border-color:var(--blue)}
.mnav .mcta{display:grid;gap:10px;margin-top:14px;padding-top:20px;border-top:1px solid var(--line)}
.mnav .mcta .btn{width:100%;padding:14px 20px;font-size:15.5px}
body.mnav-open{overflow:hidden}

@media(max-width:1000px){
  .nav{display:none}
  .hd-cta{display:none}          /* 顶部不再放「免费试用」，入口收进抽屉 */
  .burger{display:grid}
  .mnav{display:block}
  .hd-in{gap:14px;padding:11px 18px}
}

/* ---------- hero ---------- */
.hero{padding:60px 0 72px;position:relative;overflow:hidden;background:
  radial-gradient(920px 460px at 88% -8%,#EAF2FF 0%,rgba(234,242,255,0) 62%),
  radial-gradient(700px 400px at 2% 4%,#F3F8FF 0%,rgba(243,248,255,0) 60%),#fff}
.hero .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;position:relative;z-index:1}
.hero h1{margin-top:20px}
.hero h1 em{font-style:normal;color:var(--blue);white-space:nowrap;background:linear-gradient(180deg,transparent 68%,#DCEAFF 68%)}
.hero .answer{margin-top:22px;font-size:16.5px;line-height:1.85;color:var(--text);max-width:608px}
.hero .answer b{color:var(--ink)}
.hero .cta{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}
.hero .note{margin-top:16px;font-size:13.5px;color:var(--muted)}
/* ---------- hero 头图 ---------- */
.hero-visual{position:relative;max-width:510px;margin-left:auto}
/* 头图是透明 PNG（914×688），直接叠在首屏渐变底上即可。
   ⚠️ 不要再加 mix-blend-mode:multiply —— 素材本身带 alpha，
   混色会把车身与图内数据卡透染成底色，反而更脏。
   图上自带数据卡，也不叠加 HTML 悬浮卡（叠上去会和图里的卡打架）。 */
.hero-illus{width:100%;height:auto;display:block}
@media(max-width:960px){.hero .grid{grid-template-columns:1fr;gap:36px}.hero-visual{max-width:470px;margin:0 auto}}

.stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:56px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-lg);padding:28px 12px;box-shadow:var(--sh-sm)}
.stats .it{text-align:center;padding:0 16px;border-right:1px solid var(--line)}
.stats .it:last-child{border-right:0}
.stats .it b{display:block;font-size:clamp(24px,2.6vw,34px);color:var(--blue);font-weight:800;letter-spacing:-1px}
.stats .it span{font-size:13.5px;color:var(--muted)}
@media(max-width:760px){
  .stats{grid-template-columns:repeat(2,1fr);gap:26px 0;margin-top:40px;padding:26px 10px}
  .stats .it:nth-child(2n){border-right:0}
}

/* ---------- trust bar ---------- */
.trust{background:#0B1F3F;padding:26px 0}
.trust .row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center}
.trust .tag{color:#B9CBE6;font-size:13.5px;border:1px solid rgba(185,203,230,.26);border-radius:999px;padding:8px 16px;display:flex;align-items:center;gap:7px}
.trust .tag svg{width:15px;height:15px;flex:0 0 auto}
.trust .lbl{color:#fff;font-weight:700;font-size:14px;margin-right:6px}

/* ---------- cards ---------- */
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.g2{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
@media(max-width:980px){.g4{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:660px){.g4,.g3,.g2{grid-template-columns:1fr}}

.card{background:#fff;border:1px solid var(--card-line);border-radius:var(--r-lg);padding:28px;transition:.25s ease;position:relative;overflow:hidden}
.card:hover{transform:translateY(-4px);box-shadow:var(--sh);border-color:#DCE7FB}
.card h3{margin-bottom:10px}
.card p{font-size:15px;color:var(--text)}
.card .ico{width:54px;height:54px;margin-bottom:16px}
.card ul{margin-top:14px;display:grid;gap:8px}
/* ---------- 图标与文字对齐 ---------- */
/* 凡是「箭头/圆点/勾选图标 + 一行文字」的结构，图标都必须压在文字首行的中线上。
   统一按 top = 文字首行行高 ÷ 2 − 图标高度 ÷ 2 推导，写成定值：
     卡片列表  26.25/2 − 12/2 = 7.13px      上线路径  26.25/2 −  8/2 = 9.13px
     CTA 要点  26.25/2 − 16/2 = 5.13px      知识 ul   27.3 /2 − 10/2 = 8.65px
     知识 ol   27.3 /2 − 18/2 = 4.65px      法务 ul   28.88/2 −  7/2 = 10.94px
     插画图注  21.12/2 − 17/2 = 2.06px      生态集成  25.8 /2 − 16/2 = 4.90px
     页脚联系  25.375/2− 16/2 = 4.69px      法务联系  19.8 /2 − 19/2 = 0.40px
   注意：伪元素里的 em 按「伪元素自身 font-size」解析，不是宿主元素的字号。
   例如 .know ol li 是 15px 行高 1.82，但它的 ::before 设了 font-size:11.5px，
   写 calc(.91em - 9px) 会算成 1.47px，实测偏上 3.18px。所以一律用定值。
   推导值由无头 Chrome 探针实测复核（见 _build/ 自检流程），页面字号为定值，不随断点变化。 */
.card ul li{font-size:15px;color:var(--text);padding-left:24px;position:relative}
/* 原先 6 处 top 值互不相同且多数偏低 1—3px，是「很多地方不齐」的根因。
   现统一改成上方注释里推导出的定值，改字号时按同一公式重算即可。 */
.card ul li::before{content:"";position:absolute;left:0;top:7.13px;width:12px;height:12px;border-radius:50%;background:var(--soft);border:3px solid var(--blue)}
.card .num{position:absolute;right:20px;top:14px;font-size:44px;font-weight:800;color:#F0F6FF;letter-spacing:-2px}
.card.pain{border-color:#F2F6FD;background:linear-gradient(180deg,#FFFDFB 0%,#fff 40%)}
.card.pain .ico{background:#EAF2FF}

/* ---------- flow ---------- */
.flow{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative;margin-top:18px}
.flow .st{padding:0 14px;text-align:center;position:relative}
.flow .st .dot{width:58px;height:58px;border-radius:50%;background:#fff;border:2px solid #D6E5FF;color:var(--blue);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:20px;margin:0 auto 16px;position:relative;z-index:2;transition:.25s}
.flow .st:hover .dot{background:var(--blue);color:#fff;border-color:var(--blue);transform:scale(1.06)}
.flow .st h3{font-size:16.5px;margin-bottom:7px}
.flow .st p{font-size:15px;color:var(--text);line-height:1.72}
.flow::before{content:"";position:absolute;left:10%;right:10%;top:29px;height:2px;background:repeating-linear-gradient(90deg,#D6E5FF 0 8px,transparent 8px 16px);z-index:1}
@media(max-width:900px){.flow{grid-template-columns:repeat(2,1fr);gap:26px}.flow::before{display:none}}

/* ---------- industry ---------- */
.ind{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:900px){.ind{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.ind{grid-template-columns:1fr}}
.ind a{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--card-line);border-radius:var(--r-md);
  padding:18px 20px;color:var(--ink);font-weight:600;font-size:15.5px;transition:.22s}
.ind a:hover{border-color:#CFE0FF;background:var(--soft-2);transform:translateY(-3px);box-shadow:var(--sh-sm)}
.ind a svg{width:38px;height:38px;flex:0 0 auto}
.ind a span{font-weight:400;font-size:13.5px;color:var(--muted);display:block;margin-top:2px}

/* ---------- results ---------- */
.res{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:820px){.res{grid-template-columns:1fr}}
.res .it{background:#fff;border:1px solid var(--card-line);border-radius:var(--r-lg);padding:30px;position:relative;overflow:hidden}
.res .it .big{font-size:44px;font-weight:800;color:var(--blue);letter-spacing:-2px;line-height:1}
.res .it .big small{font-size:20px;font-weight:700;margin-left:2px}
.res .it h3{margin:14px 0 8px;font-size:17px}
.res .it p{font-size:15px;color:var(--text)}
.res .it .bar{height:8px;border-radius:6px;background:#EDF3FC;margin-top:18px;overflow:hidden}
.res .it .bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--cyan),var(--blue))}

/* ---------- cases ---------- */
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:980px){.cases{grid-template-columns:repeat(2,1fr)}}
@media(max-width:660px){.cases{grid-template-columns:1fr}}
.case{background:#fff;border:1px solid var(--card-line);border-radius:var(--r-lg);padding:26px;transition:.25s}
.case:hover{transform:translateY(-4px);box-shadow:var(--sh);border-color:#DCE7FB}
.case .tagline{display:inline-block;font-size:13px;font-weight:700;color:var(--deep);background:var(--soft);border-radius:999px;padding:5px 13px;margin-bottom:14px}
.case h3{font-size:17px;line-height:1.5;margin-bottom:12px}
.case dl{margin:0;display:grid;gap:10px}
.case dt{font-size:13px;font-weight:700;color:var(--blue);letter-spacing:.4px}
.case dd{margin:0;font-size:15px;color:var(--text)}
/* 案例网格里那张蓝色引导卡：原先是内联样式，字号脱规范且改不动，收进类里统一维护 */
.case.case-cta{display:flex;flex-direction:column;justify-content:center;text-align:center;
  background:linear-gradient(135deg,#165DFF,#0F3885);border:0;color:#fff}
.case.case-cta h3{color:#fff;font-size:19px}
.case.case-cta p{color:rgba(255,255,255,.9);font-size:15px;line-height:1.72;margin:12px 0 20px}
.case.case-cta .btn{background:transparent;color:#fff;border-color:rgba(255,255,255,.55);align-self:center}

/* ---------- why ---------- */
.why{display:grid;grid-template-columns:1fr 1fr;gap:22px}
@media(max-width:820px){.why{grid-template-columns:1fr}}
.why .card{display:flex;gap:18px;padding:26px}
.why .card .ico{margin:0;flex:0 0 auto;width:48px;height:48px}
.why .card h3{margin-bottom:8px}

/* ---------- products ---------- */
.prods{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:900px){.prods{grid-template-columns:1fr}}
.prod{border-radius:var(--r-lg);padding:30px;color:#fff;position:relative;overflow:hidden;min-height:230px;display:flex;flex-direction:column}
.prod h3{color:#fff;font-size:21px;margin-bottom:10px}
.prod p{font-size:15px;color:rgba(255,255,255,.86)}
.prod .lnk{margin-top:auto;padding-top:20px;color:#fff;font-weight:700;font-size:14.5px;display:inline-flex;align-items:center;gap:6px}
.prod .lnk:hover{color:#fff;gap:11px}
.prod-a{background:linear-gradient(135deg,#165DFF 0%,#0F3885 100%)}
.prod-b{background:linear-gradient(135deg,#2B8CFF 0%,#165DFF 100%)}
.prod-c{background:linear-gradient(135deg,#36BFFA 0%,#165DFF 100%)}
.prod .deco{position:absolute;right:-40px;bottom:-40px;width:190px;height:190px;border-radius:50%;background:rgba(255,255,255,.10)}
.prod .deco.two{right:-90px;bottom:-100px;width:260px;height:260px;background:rgba(255,255,255,.07)}

/* ---------- faq ---------- */
.faq{max-width:900px;margin:0 auto;display:grid;gap:12px}
.qa{background:#fff;border:1px solid var(--card-line);border-radius:var(--r-md);overflow:hidden;transition:.2s}
.qa[open]{border-color:#CFE0FF;box-shadow:var(--sh-sm)}
.qa summary{list-style:none;cursor:pointer;padding:20px 58px 20px 24px;font-weight:700;color:var(--ink);font-size:16.5px;position:relative}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"";position:absolute;right:24px;top:50%;width:12px;height:12px;border-right:2.5px solid var(--blue);border-bottom:2.5px solid var(--blue);
  transform:translateY(-70%) rotate(45deg);transition:.25s}
.qa[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.qa .a{padding:0 24px 22px;font-size:15.2px;color:var(--text);line-height:1.85}
.qa .a strong{color:var(--ink)}

/* ---------- cta ---------- */
.cta-sec{padding:0 0 86px}
.cta-box{background:linear-gradient(135deg,#0B1F3F 0%,#123A78 55%,#165DFF 100%);border-radius:var(--r-xl);padding:56px;position:relative;overflow:hidden;
  display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center}
.cta-box h2{color:#fff}
.cta-box p{color:rgba(255,255,255,.82);margin-top:14px;font-size:16px}
.cta-box .pts{display:grid;gap:10px;margin-top:24px}
.cta-box .pts li{color:rgba(255,255,255,.92);font-size:15px;padding-left:28px;position:relative}
.cta-box .pts li::before{content:"";position:absolute;left:0;top:5.13px;width:16px;height:16px;border-radius:50%;background:rgba(255,255,255,.16);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.6)}
.cta-box .deco{position:absolute;border-radius:50%;pointer-events:none}
.form{background:#fff;border-radius:var(--r-lg);padding:30px;box-shadow:var(--sh-lg);position:relative;z-index:2}
.form h3{font-size:19px;margin-bottom:6px}
.form .tip{font-size:13.5px;color:var(--muted);margin-bottom:18px}
.form .fd{margin-bottom:13px}
.form label{display:block;font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:6px}
.form input,.form select{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;font-size:15px;color:var(--ink);
  background:#FBFDFF;font-family:inherit;outline:none;transition:.2s}
.form input:focus,.form select:focus{border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px rgba(22,93,255,.10)}
.form .btn{width:100%;margin-top:8px}
.form .agree{font-size:13.5px;color:var(--muted);margin-top:12px;line-height:1.6}
@media(max-width:900px){.cta-box{grid-template-columns:1fr;padding:38px 26px;gap:30px}}

/* ---------- footer ---------- */
/* 页脚配色：原正文 #93A7C4（对 #0B1F3F 约 6.7:1）、次要文字 #7E93B0 仅 5.2:1，
   13px 下偏暗、阅读吃力。整体提亮一档，次要文字拉到 7.6:1。 */
.ft{background:#0B1F3F;color:#A9BDD6;padding:60px 0 0;font-size:14.5px}
.ft .top{display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr;gap:34px;padding-bottom:44px;border-bottom:1px solid rgba(169,189,214,.22)}
@media(max-width:900px){.ft .top{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.ft .top{grid-template-columns:1fr}}
.ft .brandline{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.ft .brandline img{height:34px;width:auto;filter:brightness(0) invert(1)}
.ft h4{color:#fff;font-size:15px;margin-bottom:16px;font-weight:700}
.ft ul{display:grid;gap:10px}
.ft a{color:#C6D5E8;font-size:14.5px}
.ft a:hover{color:#fff}
.ft .addr{line-height:1.95}
.ft .ct li{display:flex;gap:9px;align-items:flex-start}
/* 图标与首行文字居中：行盒半高 .875em（line-height 1.75），减去图标半高 8px */
.ft .ct svg{width:16px;height:16px;flex:0 0 auto;margin-top:4.69px}
.ft .bot{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:22px 0 26px;font-size:13.5px;color:#9FB3CD}
.ft .bot a{font-size:13.5px}
.ft .links{display:flex;gap:18px;flex-wrap:wrap}
@media(max-width:660px){.ft .bot{flex-direction:column;gap:10px}}

/* 关注我们 · 自媒体二维码区块 */
.ft-social{display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;
  padding:34px 0;border-bottom:1px solid rgba(169,189,214,.22)}
.ft-social h4{margin-bottom:8px}
.ft-social .desc{font-size:14px;color:#9FB3CD;max-width:360px;line-height:1.75}
.ft-social .social-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.ft-social .social-links a{font-size:13px;color:#B9CBE6;border:1px solid rgba(185,203,230,.26);border-radius:999px;
  padding:7px 15px;transition:.2s}
.ft-social .social-links a:hover{color:#fff;border-color:rgba(255,255,255,.55);background:rgba(255,255,255,.07)}
.qr-row{display:flex;gap:18px;flex-wrap:wrap}
.qr{margin:0;text-align:center}
.qr img{width:106px;height:106px;border-radius:12px;background:#fff;padding:7px;box-shadow:0 6px 18px rgba(0,0,0,.22)}
.qr figcaption{font-size:13px;color:#A9BDD6;margin-top:9px}
@media(max-width:820px){.ft-social{flex-direction:column;align-items:flex-start;gap:26px}}

/* ==========================================================================
   子页面组件（产品功能 / 解决方案 / 案例 / 知识中心 / 关于我们 / 资讯）
   与首页共享同一套变量与圆角、阴影尺度
   ========================================================================== */

/* ---------- 子页英雄区 ---------- */
.phero{padding:40px 0 56px;position:relative;overflow:hidden;background:
  radial-gradient(880px 420px at 90% -12%,#EAF2FF 0%,rgba(234,242,255,0) 62%),
  radial-gradient(620px 340px at 0% 0%,#F3F8FF 0%,rgba(243,248,255,0) 60%),#fff;
  border-bottom:1px solid var(--line)}
.phero h1{margin-top:16px;max-width:960px}
.phero h1 em{font-style:normal;color:var(--blue);white-space:nowrap}
.phero .lead{margin:18px 0 0;max-width:830px;font-size:16.5px;line-height:1.85}
.phero .lead b{color:var(--ink)}
.phero .cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}

/* ---------- 首屏实证条（替代原来的裸数字排） ---------- */
.proofs{display:flex;align-items:stretch;gap:0;margin-top:32px;background:
  linear-gradient(180deg,#F8FBFF 0%,#F1F7FF 100%);border:1px solid #E1EDFF;border-radius:var(--r-lg);
  padding:6px 4px;box-shadow:0 1px 2px rgba(15,56,133,.03)}
.proofs .p{flex:1;min-width:0;padding:18px 22px;text-align:center;position:relative}
.proofs .p+.p::before{content:"";position:absolute;left:0;top:14%;height:72%;width:1px;background:#DBE8FB}
.proofs .p b{display:block;font-size:clamp(17px,1.8vw,23px);font-weight:800;color:var(--blue);
  letter-spacing:-.5px;line-height:1.3}
.proofs .p span{display:block;margin-top:7px;font-size:13.8px;color:#5B6B82;line-height:1.55}
@media(max-width:760px){
  .proofs{display:grid;grid-template-columns:1fr;padding:4px}
  .proofs .p{padding:16px 18px;text-align:left;display:flex;align-items:baseline;gap:14px}
  .proofs .p+.p::before{left:18px;right:18px;top:0;height:1px;width:auto}
  .proofs .p b{flex:0 0 auto;font-size:22px}
  .proofs .p span{margin-top:0}
}

/* ---------- 面包屑 ---------- */
.crumb{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:13.5px;color:var(--muted)}
.crumb a{color:var(--muted)}
.crumb a:hover{color:var(--blue)}
.crumb i{font-style:normal;color:#C3D2E8}

/* ---------- 页内锚点导航（吸顶细条 · 居中排布） ---------- */
/* 设计要点：不再做「左边一个标签 + 右边一排胶囊」的双栏结构（左重右空、看着凑数），
   改为单条居中的细导航条；高度从 67px 收到约 45px，避免和页头叠成两条白带。 */
.anchors{position:sticky;top:var(--hdh,74px);z-index:60;
  background:rgba(255,255,255,.9);backdrop-filter:saturate(180%) blur(16px);
  border-bottom:1px solid var(--line);
  box-shadow:0 10px 22px -18px rgba(11,31,63,.34)}
.anchors .bar{display:flex;align-items:center;justify-content:center;padding:6px 0}
.anchors .track{flex:0 1 auto;min-width:0;display:flex;align-items:center;gap:4px;
  overflow-x:auto;scrollbar-width:none;position:relative}
.anchors .track::-webkit-scrollbar{display:none}
.anchors .track::before,.anchors .track::after{content:"";position:absolute;top:0;bottom:0;width:24px;
  pointer-events:none;opacity:0;transition:opacity .25s;z-index:2}
.anchors .track::before{left:0;background:linear-gradient(90deg,rgba(255,255,255,.96),rgba(255,255,255,0))}
.anchors .track::after{right:0;background:linear-gradient(270deg,rgba(255,255,255,.96),rgba(255,255,255,0))}
.anchors .track.fade-l::before{opacity:1}
.anchors .track.fade-r::after{opacity:1}
.anchors .track a{position:relative;z-index:1;font-size:13.4px;color:#5C6C84;padding:7px 15px;
  border-radius:999px;white-space:nowrap;font-weight:500;
  transition:color .2s,background .2s;text-decoration:none}
.anchors .track a:hover{color:var(--blue);background:var(--soft-2)}
.anchors .track a.on{color:var(--blue);background:var(--soft);font-weight:700}
@media(max-width:1000px){
  .anchors .bar{padding:5px 0}
  .anchors .track{gap:2px}
  .anchors .track a{font-size:13px;padding:7px 13px}
}

/* ---------- 功能模块（图文交替） ---------- */
.mods{display:grid;gap:26px}
.mod{display:grid;grid-template-columns:.94fr 1.06fr;gap:46px;align-items:center;
  background:#fff;border:1px solid var(--card-line);border-radius:var(--r-xl);padding:40px;scroll-margin-top:var(--anchoroff,155px)}
.mod.rev .mod-art{order:-1}
.mod-txt .eyebrow{margin-bottom:16px}
.mod-txt h2{font-size:clamp(20px,2.2vw,27px)}
.mod-txt .mlead{margin-top:14px;font-size:15.5px;line-height:1.85}
.caps{display:grid;gap:15px;margin-top:24px}
/* .cap 的图标要对齐 h3 的首行（h3 行高 1.32 → 半高 .66em）；
   把字号下放到 .cap 自身，em 才会等于 h3 字号，公式才成立。 */
.cap{padding-left:30px;position:relative;font-size:16px}
.cap::before{content:"";position:absolute;left:0;top:2.06px;width:17px;height:17px;border-radius:50%;
  background:var(--soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 12.4l3.4 3.4 7.6-8' fill='none' stroke='%23165DFF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/11px no-repeat}
.cap h3{font-size:16px;margin-bottom:4px}
.cap p{font-size:15px;color:var(--text);line-height:1.8}
.mod-art svg{width:100%;height:auto}
@media(max-width:900px){.mod{grid-template-columns:1fr;gap:28px;padding:30px}
  .mod.rev .mod-art{order:0}.mod-art{max-width:460px;margin:0 auto}}

/* ---------- 表格 ---------- */
.tbl-wrap{overflow-x:auto;border:1px solid var(--card-line);border-radius:var(--r-lg);background:#fff;box-shadow:var(--sh-sm)}
.tbl{width:100%;border-collapse:collapse;min-width:680px;font-size:15px}
.tbl th,.tbl td{padding:15px 20px;text-align:left;border-bottom:1px solid var(--card-line);vertical-align:top}
.tbl thead th{background:var(--soft-2);color:var(--ink);font-weight:700;font-size:14px;white-space:nowrap}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl tbody tr:hover{background:var(--fog)}
.tbl td:first-child{color:var(--ink);font-weight:600;white-space:nowrap}
.tbl .yes{color:var(--blue);font-weight:700}
.tbl .no{color:var(--muted)}
.tbl-note{font-size:13.5px;color:var(--muted);margin-top:12px;line-height:1.72}

/* ---------- 行业方案卡片 ---------- */
.inds{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
@media(max-width:820px){.inds{grid-template-columns:1fr}}
.iitem{background:#fff;border:1px solid var(--card-line);border-radius:var(--r-lg);padding:30px;
  scroll-margin-top:var(--anchoroff,155px);transition:.25s ease}
.iitem:hover{transform:translateY(-4px);box-shadow:var(--sh);border-color:#DCE7FB}
.iitem .ihead{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.iitem .ihead svg{width:48px;height:48px;flex:0 0 auto}
.iitem h3{font-size:20px;margin-bottom:5px}
.iitem .ihead em{font-style:normal;font-size:14px;color:var(--muted)}
.iitem dl{margin:0;display:grid;gap:13px}
.iitem dt{font-size:13.5px;font-weight:700;color:var(--blue);letter-spacing:.4px}
.iitem dd{margin:0;font-size:15.2px;color:var(--text);line-height:1.82}

/* ---------- 车辆规模档位 ---------- */
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:900px){.tiers{grid-template-columns:1fr}}
.tier{background:#fff;border:1.5px solid var(--card-line);border-radius:var(--r-lg);padding:32px;position:relative;transition:.25s}
.tier:hover{box-shadow:var(--sh);transform:translateY(-3px)}
.tier.hot{border-color:var(--blue);box-shadow:0 16px 44px rgba(22,93,255,.12)}
.tier .badge{position:absolute;right:26px;top:-13px;background:var(--blue);color:#fff;font-size:12px;font-weight:700;
  border-radius:999px;padding:5px 14px;box-shadow:0 6px 16px rgba(22,93,255,.3)}
.tier .rng{font-size:26px;font-weight:800;color:var(--ink);letter-spacing:-.8px}
.tier .rng small{font-size:14.5px;font-weight:600;color:var(--muted);margin-left:4px}
.tier > p{font-size:15px;color:var(--text);margin-top:12px}
.tier ul{display:grid;gap:10px;margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
.tier ul li{font-size:15px;color:var(--text);padding-left:24px;position:relative}
.tier ul li::before{content:"";position:absolute;left:0;top:9.13px;width:8px;height:8px;border-radius:3px;background:var(--blue);opacity:.75}

/* ---------- 案例详情（四段式） ---------- */
/* ---------- 行业目录卡（案例页） ---------- */
.indnav{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
@media(max-width:1060px){.indnav{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.indnav{grid-template-columns:1fr}}
.indnav a{display:block;background:#fff;border:1.5px solid var(--card-line);border-radius:var(--r-lg);
  padding:24px 18px;text-align:center;transition:.25s ease}
.indnav a:hover{border-color:var(--blue);background:#FBFCFF;transform:translateY(-4px);box-shadow:var(--sh)}
.indnav .ic{width:50px;height:50px;border-radius:50%;background:var(--soft);color:var(--blue);display:grid;
  place-items:center;margin:0 auto 14px;font-size:19px;font-weight:800;transition:.25s}
.indnav a:hover .ic{background:var(--blue);color:#fff}
.indnav b{display:block;font-size:15.5px;color:var(--ink);font-weight:700;margin-bottom:5px}
.indnav span{display:block;font-size:13.8px;color:var(--muted);line-height:1.55}

/* ---------- 案例卡（四段式 + 侧栏实证） ---------- */
.case-item{background:#fff;border:1px solid var(--card-line);border-radius:var(--r-xl);padding:40px;
  scroll-margin-top:var(--anchoroff,155px);transition:.25s}
.case-item:hover{box-shadow:var(--sh)}
.case-head{margin-bottom:30px;padding-left:20px;border-left:4px solid var(--blue)}
.case-no{font-size:13px;font-weight:800;color:var(--blue);letter-spacing:1.4px;margin-bottom:9px}
.case-head h2{font-size:clamp(19px,2vw,24px);margin-bottom:15px;line-height:1.4}
.case-tags{display:flex;flex-wrap:wrap;gap:10px}
.case-tags span{font-size:13px;font-weight:700;color:var(--deep);background:var(--soft);border-radius:999px;padding:6px 14px}
.case-grid{display:grid;grid-template-columns:minmax(0,1fr) 316px;gap:42px;align-items:start}
.case-blocks{display:grid;gap:25px}
.cblk h3{display:flex;align-items:center;gap:10px;font-size:16.4px;margin-bottom:11px}
.cblk h3::before{content:"";flex:0 0 auto;width:4px;height:17px;border-radius:2px;background:var(--blue)}
.cblk p{font-size:15.2px;color:var(--text);line-height:1.88}
.cblk p+p{margin-top:9px}
.cblk p b{color:var(--ink)}
.case-side{position:sticky;top:calc(var(--hdh,74px) + 58px);display:grid;gap:18px}
.eff{background:linear-gradient(135deg,#165DFF 0%,#2E8FE8 52%,#0FC6C2 100%);color:#fff;
  border-radius:var(--r-lg);padding:26px 24px;box-shadow:0 16px 32px -16px rgba(22,93,255,.55)}
.eff h3{font-size:15px;font-weight:700;margin-bottom:19px;color:#fff;opacity:.95}
.eff ul{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.eff b{display:block;font-size:22px;font-weight:800;line-height:1.22;letter-spacing:-.5px}
.eff span{display:block;font-size:13.2px;opacity:.92;margin-top:5px;line-height:1.5}
.quote{background:var(--fog);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px 24px 20px;position:relative}
.quote::before{content:"\201C";position:absolute;top:4px;left:17px;font-family:Georgia,"Songti SC",serif;
  font-size:52px;line-height:1;color:#C9D8EE}
.quote p{position:relative;font-size:15.2px;color:var(--text);line-height:1.88;padding-top:16px}
.quote cite{display:block;margin-top:12px;font-style:normal;font-size:13.5px;color:var(--muted);text-align:right}
@media(max-width:1040px){.case-grid{grid-template-columns:1fr;gap:26px}.case-side{position:static;grid-template-columns:1fr 1fr;align-items:start}}
@media(max-width:700px){
  .case-item{padding:26px 22px}
  .case-side{grid-template-columns:1fr}
  .eff ul{gap:14px}
}

/* ---------- 时间轴 ---------- */
.tl{position:relative;padding-left:36px}
.tl::before{content:"";position:absolute;left:9px;top:8px;bottom:14px;width:2px;
  background:repeating-linear-gradient(180deg,#CFE0FF 0 7px,transparent 7px 14px)}
.tl .ev{position:relative;padding-bottom:32px}
.tl .ev:last-child{padding-bottom:0}
.tl .ev::before{content:"";position:absolute;left:-36px;top:5px;width:20px;height:20px;border-radius:50%;
  background:#fff;border:3px solid var(--blue);box-sizing:border-box}
.tl .ev time{display:block;font-size:13.5px;font-weight:800;color:var(--blue);letter-spacing:.3px;margin-bottom:5px}
.tl .ev h3{font-size:16.5px;margin-bottom:6px}
.tl .ev p{font-size:15px;color:var(--text);line-height:1.82}

/* ---------- 资质墙 ---------- */
.honors{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:900px){.honors{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.honors{grid-template-columns:1fr}}
.honor{background:#fff;border:1px solid var(--card-line);border-radius:var(--r-lg);padding:28px;transition:.25s}
.honor:hover{transform:translateY(-3px);box-shadow:var(--sh);border-color:#DCE7FB}
.honor .hicon{width:44px;height:44px;border-radius:13px;background:var(--soft);display:flex;align-items:center;
  justify-content:center;margin-bottom:16px}
.honor .hicon svg{width:24px;height:24px}
.honor h3{font-size:16.5px;margin-bottom:8px}
.honor p{font-size:15px;color:var(--text);line-height:1.78}
.honor .code{display:inline-block;margin-top:14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:13px;color:var(--deep);background:var(--soft-2);border:1px solid var(--soft);border-radius:8px;
  padding:6px 12px;word-break:break-all;line-height:1.6}

/* ---------- 证书墙（缩略图 + 点击放大） ---------- */
.certs-h{display:flex;align-items:center;gap:10px;font-size:16.5px;margin:0 0 20px}
.certs-h::before{content:"";flex:0 0 auto;width:4px;height:17px;border-radius:2px;background:var(--blue)}
.certwall+.certs-h{margin-top:44px}
.certwall{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media(max-width:1000px){.certwall{grid-template-columns:repeat(3,1fr);gap:16px}}
@media(max-width:720px){.certwall{grid-template-columns:repeat(2,1fr);gap:13px}}
.cert{margin:0;background:#fff;border:1px solid var(--card-line);border-radius:var(--r-lg);overflow:hidden;transition:.25s ease}
.cert:hover{transform:translateY(-3px);box-shadow:var(--sh);border-color:#DCE7FB}
.cert-btn{display:block;position:relative;width:100%;padding:13px 13px 0;background:none;border:0;
  cursor:zoom-in;font:inherit;text-align:left}
.cert-btn img{display:block;width:100%;height:186px;object-fit:contain;background:#F7F9FC;
  border:1px solid var(--line);border-radius:10px;padding:5px}
@media(max-width:720px){.cert-btn img{height:140px}}
.cert-btn .zoom{position:absolute;right:21px;bottom:9px;width:30px;height:30px;border-radius:50%;
  background:rgba(11,31,63,.62);display:grid;place-items:center;opacity:0;transition:.22s;
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.cert:hover .cert-btn .zoom{opacity:1}
.cert-btn .zoom svg{width:16px;height:16px}
.cert figcaption{padding:13px 15px 16px}
.cert figcaption b{display:block;font-size:14.5px;color:var(--ink);line-height:1.5;margin-bottom:5px}
.cert figcaption span{display:block;font-size:13px;color:var(--muted);line-height:1.55;word-break:break-word}
.certwall-note{margin-top:20px;font-size:13.8px;color:var(--muted);line-height:1.75}

/* 证书放大预览 */
.lightbox{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:16px;padding:52px 24px 32px;background:rgba(8,20,40,.84);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:lbin .2s ease}
.lightbox[hidden]{display:none}
@keyframes lbin{from{opacity:0}to{opacity:1}}
.lightbox img{max-width:min(760px,92vw);max-height:calc(100vh - 158px);width:auto;height:auto;background:#fff;
  border-radius:12px;box-shadow:0 30px 70px -20px rgba(0,0,0,.65)}
.lightbox p{margin:0;max-width:760px;color:#CFDEF5;font-size:13.6px;line-height:1.7;text-align:center}
.lb-close{position:absolute;top:20px;right:24px;width:42px;height:42px;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:23px;
  line-height:1;transition:.2s}
.lb-close:hover{background:rgba(255,255,255,.26)}
body.lb-open{overflow:hidden}

/* ---------- 知识中心分类卡 ---------- */
.qcats{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:900px){.qcats{grid-template-columns:1fr}}
.qcat{background:#fff;border:1px solid var(--card-line);border-radius:var(--r-lg);padding:30px;
  display:flex;flex-direction:column;transition:.25s}
.qcat:hover{transform:translateY(-4px);box-shadow:var(--sh);border-color:#DCE7FB}
.qcat .qicon{width:48px;height:48px;margin-bottom:16px}
.qcat h3{font-size:18px;margin-bottom:10px}
.qcat p{font-size:15px;color:var(--text)}
.qcat ul{display:grid;gap:9px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.qcat ul li a{font-size:14.5px;color:var(--blue);line-height:1.62}

/* ---------- 资讯列表 ---------- */
/* 列表条目 = 固定尺寸封面（16:9，全站统一）+ 文字。封面尺寸固定，只随断点从横排改竖排。 */
.posts{display:grid;gap:16px}
.post{display:grid;grid-template-columns:246px minmax(0,1fr);gap:26px;align-items:center;background:#fff;
  border:1px solid var(--card-line);border-radius:var(--r-md);padding:20px 24px;transition:.22s ease}
.post:hover{border-color:#CFE0FF;box-shadow:var(--sh-sm)}
.pthumb{display:block;border-radius:12px;overflow:hidden;aspect-ratio:16/9;background:#EEF4FE;
  border:1px solid #E8F0FE}
.pthumb svg{width:100%;height:100%;display:block}
.pmeta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:13.5px;color:var(--muted);
  margin-bottom:9px}
.pmeta i{font-style:normal;color:#C3D0E2}
.pmeta .cat{font-size:12.5px;font-weight:700;color:var(--deep);background:var(--soft);
  border-radius:999px;padding:4px 11px}
.post .ptxt h3{font-size:17px;margin-bottom:8px;line-height:1.5}
.post .ptxt h3 a{color:var(--ink)}
.post .ptxt h3 a:hover{color:var(--blue)}
.post .ptxt p{font-size:15px;color:var(--text);line-height:1.72}
.post .pmore{display:inline-flex;align-items:center;gap:6px;margin-top:11px;font-size:13.5px;
  font-weight:700;color:var(--blue)}
.post .pmore svg{width:14px;height:14px;flex:0 0 auto}
@media(max-width:760px){
  .post{grid-template-columns:1fr;gap:16px;padding:16px}
  .post .ptxt h3{font-size:16.5px}}

/* ---------- 联系信息卡 ---------- */
.contacts{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:820px){.contacts{grid-template-columns:1fr}}
.contact{background:#fff;border:1px solid var(--card-line);border-radius:var(--r-lg);padding:30px}
.contact .cicon{width:46px;height:46px;border-radius:13px;background:var(--soft);display:flex;align-items:center;
  justify-content:center;margin-bottom:16px}
.contact .cicon svg{width:23px;height:23px}
.contact h3{font-size:16.5px;margin-bottom:8px}
.contact p,.contact a{font-size:15px;color:var(--text);line-height:1.85}
.contact a{color:var(--blue);font-weight:600}

/* ---------- 长文档版式（隐私政策 / 法律声明） ---------- */
/* 对标原官网：左侧吸顶目录 + 蓝色圆形序号徽标 + 「（一）」小标题 + 灰底信息卡。
   原先只有一篇 840px 宽的素文档，无目录、无层级标识，长文几乎无法跳读。 */
.phero.doc-hero{text-align:center;padding-bottom:50px}
/* 面包屑左对齐 —— 对标原站：原站文章页的面包屑在容器左侧，标题与日期才居中。
   （这里曾经写过 justify-content:center 把它一起居中了，与全站
   「面包屑永远守在左上角」的约定冲突，客户直接提了这条。） */
.phero.doc-hero .crumb{justify-content:flex-start}
/* 首屏容器按正文容器反算：正文是 .doc-wrap（max-width 1120px，自身无内边距），
   而 .wrap 有左右各 24px 内边距，直接用 1120px 会让面包屑比下方目录卡偏左 6px。
   多补这 48px 后两者左边界在任意视口宽度下都相等（窄屏时都退化成 24px）。
   H1 与日期胶囊是居中的，改宽度对它们没有可见影响。 */
.phero.doc-hero .wrap{max-width:calc(1120px + 48px)}
.phero.doc-hero h1{max-width:none;margin-top:14px}
.phero.doc-hero .lead{margin:18px auto 0;max-width:760px}
.upd-pill{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:10px 18px;
  margin-top:28px;background:#fff;border:1px solid #E1EDFF;border-radius:999px;padding:11px 26px;
  font-size:13.5px;color:#5B6B82;box-shadow:0 1px 2px rgba(15,56,133,.04)}
.upd-pill svg{width:15px;height:15px;flex:0 0 auto;color:var(--blue)}
.upd-pill b{color:var(--ink);font-weight:700}

.doc-wrap{display:grid;grid-template-columns:246px minmax(0,1fr);gap:56px;align-items:start;
  max-width:1120px;margin:0 auto}

/* 左侧目录 */
/* 吸顶悬浮：跟随滚动固定在页头下方；超长目录在自身内部滚动，不会被挤出视口 */
.dtoc{position:sticky;top:calc(var(--hdh,74px) + 26px);background:#fff;border:1px solid var(--card-line);
  border-radius:var(--r-md);padding:16px 12px 18px;box-shadow:var(--sh-sm);
  max-height:calc(100dvh - var(--hdh,74px) - 52px);overflow-y:auto;overscroll-behavior:contain}
.dtoc .dtoc-h{display:flex;align-items:center;gap:9px;padding:0 10px 12px;margin-bottom:8px;
  border-bottom:1px solid var(--line);font-size:14px;font-weight:700;color:var(--ink)}
.dtoc .dtoc-h svg{width:16px;height:16px;flex:0 0 auto;color:var(--blue)}
.dtoc ol{display:grid;gap:1px}
.dtoc a{display:block;padding:9px 10px;border-radius:9px;font-size:13.8px;color:#5C6C84;line-height:1.5;transition:.18s}
.dtoc a:hover{color:var(--blue);background:var(--soft-2)}
.dtoc a.on{color:var(--blue);background:var(--soft);font-weight:700}

/* 正文：每个章节 = 圆形图标徽标 + 标题 + 白卡片（hover 抬阴影，对标原官网交互） */
.doc{min-width:0}
.dsec{margin-bottom:32px;scroll-margin-top:var(--anchoroff,155px)}
.dsec:last-child{margin-bottom:0}
.dsec > h2{display:flex;align-items:center;gap:13px;font-size:20.5px;line-height:1.35;
  margin:0 0 16px;color:var(--ink)}
.dsec > h2 i{flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:var(--blue);
  display:grid;place-items:center}
.dsec > h2 i svg{width:19px;height:19px;color:#fff}
.dbody{background:#fff;border:1px solid var(--card-line);border-radius:var(--r-lg);
  padding:27px 32px;transition:box-shadow .25s,border-color .25s}
.dbody:hover{box-shadow:var(--sh-sm);border-color:#DCE7FB}
.dbody > *:last-child{margin-bottom:0}
.doc h3{display:flex;align-items:center;gap:10px;font-size:16.5px;
  margin:26px 0 13px;color:var(--ink)}
.doc h3::before{content:"";flex:0 0 auto;width:4px;height:16px;border-radius:2px;background:var(--cyan)}
.doc h3:first-child{margin-top:0}
.doc p{font-size:15.2px;color:var(--text);line-height:1.95;margin-bottom:14px}
.doc p:last-child{margin-bottom:0}
.doc b{color:var(--ink)}

/* 灰底信息卡：收集信息类型 / 权利清单 / 联系方式 */
.ditems{display:grid;gap:12px;margin:16px 0 2px}
.ditem{background:var(--fog);border-radius:12px;padding:15px 19px}
.ditem h4{font-size:15px;font-weight:700;color:var(--ink);margin:0 0 7px}
.ditem p{font-size:14.9px;line-height:1.86;margin:0;color:var(--text)}
.dgrid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:16px 0 2px}
.dgrid .ditem{padding:16px 19px}
.dcontact{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:17px}
.dcontact .dc{display:flex;align-items:flex-start;gap:13px;background:var(--fog);border-radius:12px;
  padding:16px 18px}
.dcontact .dc > svg{flex:0 0 auto;width:19px;height:19px;color:var(--blue);margin-top:.4px}
.dcontact .dc h4{font-size:15px;font-weight:700;color:var(--ink);margin:0 0 5px}
.dcontact .dc p{font-size:14.9px;line-height:1.72;margin:0;color:var(--text);word-break:break-word}
.dcontact .dc p.hint{font-size:13.5px;color:var(--muted);margin-top:3px}
.doc a{color:var(--blue);font-weight:600}

@media(max-width:980px){
  .doc-wrap{grid-template-columns:1fr;gap:26px}
  .dtoc{position:static;max-height:none;overflow:visible}
  .dtoc ol{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .dtoc ol{grid-template-columns:1fr}
  .dgrid,.dcontact{grid-template-columns:1fr}
  .dsec{margin-bottom:26px}
  .dsec > h2{font-size:18.5px;gap:11px}
  .dsec > h2 i{width:33px;height:33px}
  .dsec > h2 i svg{width:17px;height:17px}
  .dbody{padding:22px 20px}
  .ditem{padding:14px 16px}
}

/* ---------- 资讯详情页（复用上面的长文档版式，只加文章专属件） ---------- */
.art-cover{margin-bottom:28px;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:16/9;
  background:#EEF4FE;border:1px solid #E8F0FE;box-shadow:var(--sh-sm)}
.art-cover svg{width:100%;height:100%;display:block}

/* 正文容器：一张白卡。
   ⚠️ 正文内容由后台富文本编辑器维护，只有 h2 / h3 / p / ul / ol / li / blockquote /
   table / img / a / strong 这些基础标签，**不会带我们的任何类名**，而且常常逐段写死
   行内样式（原站正文就是 font-size:18px / line-height:2em / font-family:微软雅黑）。
   所以这里一律用「后代元素」选择器，不用 .dsec / .dbody / .art-ul 这类结构性类名——
   那些包裹层与类名在编辑器里根本不会产出，靠它们撑起来的排版会整片失效。
   推论：**改这一块时不要指望正文里有类名可挂**；确实需要钩子时挂给容器 .art-body。 */
.art-body{background:#fff;border:1px solid var(--card-line);border-radius:var(--r-lg);
  padding:34px 40px;font-size:15.2px;line-height:1.95;color:var(--text)}
.art-body > *:first-child{margin-top:0}
.art-body > *:last-child{margin-bottom:0}

/* 编辑器写死的字号/行高/字体把这三项收回全站口径，其余行内样式（加粗、颜色、
   对齐、背景等编辑意图）保留。只收这三项是因为它们会直接让正文与全站脱节。 */
.art-body [style]{font-family:inherit !important;font-size:inherit !important;line-height:inherit !important}

/* 一级小标题：左侧短竖条 + 底部细线，纯 CSS 画。不比原来「圆形图标徽标」差，
   但不需要编辑器产出任何额外标签——这是本轮简化的核心动机。 */
.art-body h2{position:relative;font-size:20px;line-height:1.42;color:var(--ink);
  margin:34px 0 16px;padding:0 0 13px 15px;border-bottom:1px solid var(--line)}
.art-body h2::before{content:"";position:absolute;left:0;top:.26em;width:4px;height:1em;
  border-radius:2px;background:var(--blue)}
.art-body h2:first-child{margin-top:0}

.art-body h3{position:relative;font-size:16.5px;line-height:1.5;color:var(--ink);
  margin:24px 0 12px;padding-left:12px}
.art-body h3::before{content:"";position:absolute;left:0;top:.34em;width:3px;height:1em;
  border-radius:2px;background:var(--cyan)}

.art-body p{margin:0 0 14px}
.art-body b,.art-body strong{color:var(--ink);font-weight:600}

/* 列表用浏览器原生标记（::marker）：缩进与换行对齐全部由浏览器算，
   比自定义 ::before + 手调 top 稳得多，也不再受「图标与文字对齐」那套定值公式牵制。
   编号仍由 <ol> 自动生成，所以编辑器增删条目不会出现「序号错位」。 */
.art-body ul,.art-body ol{margin:0 0 14px;padding-left:1.5em}
.art-body ul{list-style:disc}
.art-body ol{list-style:decimal}
.art-body li{margin-bottom:8px}
.art-body li:last-child{margin-bottom:0}
.art-body li::marker{color:var(--blue)}
.art-body ol li::marker{font-weight:700}

.art-body blockquote{margin:16px 0;padding:14px 20px;background:var(--fog);
  border-left:3px solid var(--blue);border-radius:0 10px 10px 0;color:var(--ink)}
.art-body blockquote p:last-child{margin-bottom:0}

.art-body img{display:block;max-width:100%;height:auto;margin:18px 0;border-radius:var(--r-md)}
.art-body figure{margin:18px 0}
.art-body figcaption{margin-top:9px;font-size:13.5px;color:var(--muted);text-align:center}

.art-body a{color:var(--blue);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.art-body hr{border:0;border-top:1px solid var(--line);margin:26px 0}

/* 表格：源码里现成文章没有表格，但编辑器随时能插，先把样式备好 */
.art-body table{width:100%;margin:18px 0;border-collapse:collapse;font-size:14.6px}
.art-body th,.art-body td{border:1px solid var(--line);padding:11px 14px;text-align:left;vertical-align:top}
.art-body th{background:var(--fog);color:var(--ink);font-weight:700}
.art-body tbody tr:nth-child(even) td{background:#FBFCFE}

/* 导语：一块淡底引言。用的是自己的类名，**但类名丢了也只是一段普通 <p>**，不会走形——
   这正是「简化」要达到的效果：任何一处装饰失效都不影响可读性。 */
.art-body .art-lead{background:var(--fog);border-radius:var(--r-md);
  padding:20px 24px;margin:0 0 10px;color:var(--ink);line-height:1.9}

/* 目录锚点跳转时标题不被吸顶页头遮住（[id] 的全局兜底已覆盖，这里只是显式声明） */
.art-body h2,.art-body h3{scroll-margin-top:var(--anchoroff,155px)}

/* 文末上/下篇 */
.anavs{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:30px 0 22px}
.anav{display:block;background:#fff;border:1px solid var(--card-line);border-radius:var(--r-md);
  padding:18px 20px;transition:.22s}
.anav:hover{border-color:#CFE0FF;box-shadow:var(--sh-sm)}
.anav span{display:block;font-size:13px;font-weight:700;color:var(--blue);margin-bottom:7px}
.anav b{display:block;font-size:15.2px;font-weight:600;color:var(--ink);line-height:1.6}
@media(max-width:640px){.anavs{grid-template-columns:1fr}.art-body{padding:22px 20px}}

/* ---------- 知识条目（知识中心正文，默认展开便于检索与引用） ---------- */
.know{display:grid;gap:18px}
.know article{background:#fff;border:1px solid var(--card-line);border-radius:var(--r-lg);
  padding:28px 30px;scroll-margin-top:var(--anchoroff,155px);transition:.25s}
.know article:hover{box-shadow:var(--sh-sm);border-color:#DCE7FB}
.know h3{font-size:17.5px;margin-bottom:12px;line-height:1.5}
.know p{font-size:15px;line-height:1.92;color:var(--text)}
.know p + p{margin-top:11px}
.know ul,.know ol{display:grid;gap:9px;margin-top:13px}
.know ul li,.know ol li{font-size:15px;color:var(--text);padding-left:26px;position:relative;line-height:1.82}
.know ul li::before{content:"";position:absolute;left:1px;top:8.65px;width:10px;height:10px;border-radius:50%;
  background:var(--soft);border:2.5px solid var(--blue)}
.know ol{counter-reset:k}
.know ol li{counter-increment:k}
.know ol li::before{content:counter(k);position:absolute;left:0;top:4.65px;width:18px;height:18px;border-radius:6px;
  background:var(--soft);color:var(--blue);font-size:11.5px;font-weight:800;display:flex;align-items:center;justify-content:center}
.know b{color:var(--ink)}
.note-box{background:var(--soft-2);border:1px solid var(--soft);border-left:4px solid var(--blue);
  border-radius:12px;padding:18px 22px;font-size:15px;color:var(--text);line-height:1.85;margin-top:24px}
.note-box b{color:var(--ink)}
@media(max-width:640px){.know article{padding:24px 22px}}

/* ---------- 生态集成 / 企业微信·钉钉定制服务商（首页） ---------- */
.eco{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.eco-card{background:#fff;border:1px solid var(--card-line);border-radius:var(--r-lg);padding:30px 32px 28px;
  display:flex;flex-direction:column;transition:.25s}
.eco-card:hover{transform:translateY(-3px);box-shadow:var(--sh);border-color:#DCE7FB}
.eco-h{display:flex;align-items:center;gap:12px;margin-bottom:15px}
.eco-h img{flex:0 0 auto;width:35px;height:35px;border-radius:9px;object-fit:contain}
.eco-h h3{font-size:18px;margin:0}
.eco-card > p{font-size:15.2px;line-height:1.9;color:var(--text);margin-bottom:17px}
.eco-card ul{display:grid;gap:10px;margin-bottom:24px}
.eco-card ul li{display:flex;gap:11px;align-items:flex-start;font-size:15px;line-height:1.72;color:var(--text)}
.eco-card ul li::before{content:"";flex:0 0 auto;width:16px;height:16px;margin-top:4.9px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23165DFF' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.3'/%3E%3Cpath d='M8 12.3l2.7 2.7L16 9.5'/%3E%3C/svg%3E") center/contain no-repeat}
.eco-qr{margin-top:auto;display:flex;align-items:center;gap:18px;background:var(--fog);border-radius:14px;
  padding:15px 18px}
.eco-qr img{flex:0 0 auto;width:120px;height:120px;border-radius:9px;background:#fff;object-fit:contain}
.eco-qr span{font-size:15px;font-weight:700;color:var(--ink);line-height:1.72}
.eco-more{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;margin-top:16px;
  font-size:14.5px;font-weight:700;color:var(--blue);transition:gap .2s}
.eco-more svg{flex:0 0 auto;width:15px;height:15px}
.eco-more:hover{gap:11px}
.eco-strip{margin-top:22px;background:#fff;border:1px solid var(--card-line);border-radius:var(--r-lg);
  padding:24px 32px;transition:.25s}
.eco-strip:hover{box-shadow:var(--sh-sm);border-color:#DCE7FB}
.eco-strip h3{font-size:16.5px;margin:0}
.eco-its{display:flex;flex-wrap:wrap;gap:13px 34px;margin-top:16px}
.eco-its .it{display:flex;align-items:center;gap:9px;font-size:14.8px;line-height:1.6;color:var(--text)}
.eco-its .it svg{flex:0 0 auto;width:17px;height:17px;color:var(--blue)}
@media(max-width:820px){
  .eco{grid-template-columns:1fr;gap:18px}
  .eco-card{padding:26px 24px}
  .eco-strip{padding:22px 24px}
}
@media(max-width:520px){
  .eco-qr{flex-direction:column;align-items:flex-start;gap:13px}
}
