/* ==========================================================================
   智培邦官方网站 · 蓝色科技风样式表
   长沙市龙冠网络科技有限公司
   ========================================================================== */

/* ---------- 变量 ---------- */
:root{
  --navy-900:#040d22;
  --navy-800:#071c45;
  --navy-700:#0b2a63;
  --navy-600:#0f3a86;
  --blue-600:#1257c9;
  --blue-500:#2b7bf3;
  --blue-400:#5aa2ff;
  --cyan:#22d3ee;
  --cyan-soft:#7ff0ff;
  --ink:#132039;
  --ink-2:#2c3d5c;
  --muted:#5d6f8c;
  --muted-2:#8595ae;
  --line:#e4ecf9;
  --line-2:#d3e0f3;
  --bg:#f4f8fe;
  --bg-2:#eaf2fd;
  --white:#fff;
  --grad-brand:linear-gradient(135deg,#0b2a63 0%,#1257c9 52%,#2b7bf3 100%);
  --grad-cyan:linear-gradient(120deg,#2b7bf3 0%,#22d3ee 100%);
  --grad-text:linear-gradient(100deg,#2b7bf3 0%,#22d3ee 90%);
  --shadow-sm:0 2px 10px rgba(14,42,92,.06);
  --shadow:0 12px 34px rgba(14,42,92,.10);
  --shadow-lg:0 26px 60px rgba(10,32,74,.16);
  --r-sm:10px; --r:16px; --r-lg:24px;
  --container:1220px;
  --ease:cubic-bezier(.22,.71,.31,1);
}

/* ---------- 基础 ---------- */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  color:var(--ink);background:var(--white);
  font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;transition:color .25s var(--ease);}
img{max-width:100%;display:block;}
ul,ol{list-style:none;}
button{font-family:inherit;cursor:pointer;border:0;background:none;}
h1,h2,h3,h4,h5{line-height:1.35;font-weight:700;color:var(--ink);}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px;}
.ico{width:1.05em;height:1.05em;fill:none;vertical-align:-.15em;flex:none;}
::selection{background:var(--blue-500);color:#fff;}

/* 滚动条 */
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:#eef4fc;}
::-webkit-scrollbar-thumb{background:#c3d6ef;border-radius:6px;}
::-webkit-scrollbar-thumb:hover{background:#9dbcdf;}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:44px;padding:0 24px;border-radius:999px;font-size:15px;font-weight:600;
  white-space:nowrap;transition:all .3s var(--ease);position:relative;overflow:hidden;
}
.btn .ico{transition:transform .3s var(--ease);}
.btn:hover .ico{transform:translateX(3px);}
.btn-primary{background:var(--grad-cyan);color:#fff;box-shadow:0 10px 24px rgba(31,110,220,.32);}
.btn-primary:hover{box-shadow:0 14px 30px rgba(31,110,220,.42);transform:translateY(-2px);color:#fff;}
.btn-outline{border:1px solid var(--line-2);color:var(--ink-2);background:#fff;}
.btn-outline:hover{border-color:var(--blue-500);color:var(--blue-600);box-shadow:var(--shadow-sm);}
.btn-light{background:#fff;color:var(--navy-700);box-shadow:0 12px 28px rgba(4,20,50,.24);}
.btn-light:hover{transform:translateY(-2px);color:var(--blue-600);}
.btn-ghost-light{border:1px solid rgba(255,255,255,.5);color:#fff;}
.btn-ghost-light:hover{background:rgba(255,255,255,.14);border-color:#fff;}
.btn-lg{height:52px;padding:0 32px;font-size:16px;}
.btn-sm{height:38px;padding:0 18px;font-size:14px;}
.btn-block{width:100%;}

/* ---------- 顶部信息条 ---------- */
.topbar{background:#0f2963;color:rgba(255,255,255,.82);font-size:13px;border-bottom:1px solid rgba(255,255,255,.12);}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;height:38px;}
.topbar-left,.topbar-right{display:flex;align-items:center;gap:22px;}
.topbar-item{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}
.topbar-item b{color:#fff;font-weight:600;letter-spacing:.3px;}
.topbar-phone-link{color:inherit;text-decoration:none;transition:color .2s ease;}
.topbar-phone-link:hover{color:#fff;}
.topbar-link{display:inline-flex;align-items:center;gap:6px;color:#93c5fd;font-weight:600;}
.topbar-link:hover{color:#fff;}
.nav-backdrop{display:none;}

/* 顶部信息条微信扫码悬浮弹窗 */
.topbar-wechat{position:relative;cursor:pointer;}
.topbar-wechat-trigger{display:inline-flex;align-items:center;gap:6px;color:rgba(255,255,255,.9);transition:color .2s ease;}
.topbar-wechat:hover .topbar-wechat-trigger{color:#fff;}
.topbar-qr-tag{display:inline-block;font-size:11px;background:rgba(37,99,235,.35);border:1px solid rgba(147,197,253,.4);
  color:#bfdbfe;padding:0 6px;border-radius:4px;letter-spacing:.3px;transition:all .2s ease;}
.topbar-wechat:hover .topbar-qr-tag{background:#2563eb;color:#fff;border-color:#60a5fa;}
.topbar-qr-pop{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(6px);
  background:#ffffff;border-radius:12px;box-shadow:0 14px 36px rgba(15,41,99,.24),0 2px 10px rgba(15,41,99,.08);
  padding:12px;border:1px solid #bfdbfe;opacity:0;visibility:hidden;pointer-events:none;
  transition:all .25s cubic-bezier(.16,1,.3,1);z-index:999;text-align:center;width:144px;}
.topbar-qr-pop::before{content:"";position:absolute;top:-6px;left:50%;transform:translateX(-50%) rotate(45deg);
  width:10px;height:10px;background:#ffffff;border-left:1px solid #bfdbfe;border-top:1px solid #bfdbfe;}
.topbar-wechat:hover .topbar-qr-pop{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);}
.topbar-qr-img{display:block;width:120px;height:120px;object-fit:contain;border-radius:6px;margin:0 auto;}
.topbar-qr-tip{font-size:11.5px;color:#0f2963;font-weight:600;margin-top:6px;white-space:nowrap;}

/* ---------- 导航 ---------- */
.site-header{position:sticky;top:0;z-index:900;background:#fff;}
.navbar{
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid #e2e8f0;
  transition:all .35s var(--ease);
}
.site-header.scrolled .navbar{
  box-shadow:0 10px 30px rgba(15,23,42,.08);
  background:#ffffff;
  border-bottom-color:#cbd5e1;
}
.navbar-inner{display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand-logo{height:36px;width:auto;}
.brand-text{display:flex;flex-direction:column;line-height:1.25;}
.brand-text b{font-size:18px;letter-spacing:.5px;color:#0f2963;font-weight:700;}
.brand-text i{font-style:normal;font-size:11.5px;color:#64748b;letter-spacing:.5px;}
.nav-menu{display:flex;align-items:center;gap:6px;margin-left:auto;}
.nav-link{
  position:relative;
  padding:8px 16px;
  font-size:15px;
  font-weight:500;
  color:#334155;
  border-radius:999px;
  transition:all .25s var(--ease);
}
.nav-link:hover{
  color:#1d4ed8;
  background:#eff6ff;
  transform:translateY(-1px);
}
.nav-link.active{
  color:#1d4ed8;
  background:#eff6ff;
  font-weight:700;
  box-shadow:inset 0 0 0 1px #bfdbfe;
}
.nav-link.is-trial{display:none;}
.nav-actions{display:flex;align-items:center;gap:14px;}
.nav-action-link{
  font-size:14.5px;
  font-weight:500;
  color:#334155;
  padding:6px 12px;
  border-radius:8px;
  transition:all .25s var(--ease);
}
.nav-action-link:hover{
  color:#1d4ed8;
  background:#eff6ff;
}
.nav-actions .btn-primary{
  background:linear-gradient(135deg,#1e40af 0%,#2563eb 100%);
  border:none;
  box-shadow:0 4px 14px rgba(37,99,235,.28);
}
.nav-actions .btn-primary:hover{
  box-shadow:0 6px 20px rgba(37,99,235,.42);
  transform:translateY(-2px);
}
.nav-toggle{display:none;width:40px;height:40px;border-radius:10px;border:1px solid #cbd5e1;
  flex-direction:column;align-items:center;justify-content:center;gap:4px;background:#f8fafc;}
.nav-toggle span{display:block;width:18px;height:2px;background:#0f2963;border-radius:2px;transition:.3s var(--ease);}
.nav-toggle.open span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

/* ---------- 通用区块 ---------- */
.section{padding:92px 0;position:relative;}
.section.tight{padding:64px 0;}
.section.bg-soft{background:linear-gradient(180deg,#f7fafe 0%,#eef5fd 100%);}
.section.bg-dark{background:var(--navy-900);color:#dbe7ff;}
.section-head{max-width:760px;margin:0 auto 52px;text-align:center;}
.section-head.left{margin-left:0;text-align:left;}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;letter-spacing:2px;
  color:var(--blue-600);text-transform:uppercase;margin-bottom:14px;}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--grad-cyan);border-radius:2px;}
.section-head h2{font-size:38px;letter-spacing:.5px;margin-bottom:16px;}
.section-head p{color:var(--muted);font-size:16.5px;}
.bg-dark .section-head h2,.bg-dark h2{color:#fff;}
.bg-dark .section-head p{color:rgba(214,229,255,.74);}
.grad-text{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;}

/* ---------- 首页 Hero ---------- */
.hero{position:relative;background:linear-gradient(180deg,#f8fafc 0%,#f1f5f9 100%);color:var(--ink);overflow:hidden;padding:72px 0 0;}
.hero-bg{position:absolute;inset:0;background:
  radial-gradient(1100px 520px at 50% -80px,rgba(37,99,235,.09),transparent 70%),
  radial-gradient(800px 420px at 85% 80%,rgba(59,130,246,.05),transparent 65%);}
.hero-grid{position:absolute;inset:0;opacity:.6;background-image:
  linear-gradient(rgba(15,23,42,.035) 1px,transparent 1px),
  linear-gradient(90deg,rgba(15,23,42,.035) 1px,transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(circle at 50% 40%,#000 30%,transparent 85%);
  -webkit-mask-image:radial-gradient(circle at 50% 40%,#000 30%,transparent 85%);}
#heroCanvas{position:absolute;inset:0;width:100%;height:100%;opacity:.55;}
.hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;
  padding-bottom:76px;}
.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:7px 16px;border-radius:999px;font-size:13.5px;
  color:#cfe6ff;background:rgba(90,162,255,.14);border:1px solid rgba(120,180,255,.32);margin-bottom:22px;}
.hero-badge .ico{color:var(--cyan);}
.hero h1{font-size:50px;line-height:1.22;letter-spacing:1px;color:#fff;margin-bottom:20px;}
.hero h1 em{font-style:normal;background:linear-gradient(100deg,#7fd4ff 0%,#22d3ee 60%,#a5f3d0 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;}
.hero-sub{font-size:17px;color:rgba(215,230,255,.82);max-width:600px;margin-bottom:30px;}
.hero-points{display:flex;flex-wrap:wrap;gap:10px 22px;margin-bottom:34px;}
.hero-points li{display:flex;align-items:center;gap:7px;font-size:14.5px;color:rgba(222,236,255,.9);}
.hero-points .ico{color:var(--cyan);}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;}
.hero-note{font-size:13px;color:rgba(190,212,245,.66);margin-top:16px;}

/* Hero 右侧演示卡片 */
.hero-visual{position:relative;}
.mock-card{background:linear-gradient(160deg,rgba(255,255,255,.98),rgba(236,245,255,.94));
  border-radius:var(--r-lg);box-shadow:0 30px 70px rgba(2,14,40,.5);overflow:hidden;
  border:1px solid rgba(255,255,255,.6);transform:perspective(1400px) rotateY(-8deg) rotateX(3deg);
  transition:transform .6s var(--ease);}
.hero-visual:hover .mock-card{transform:perspective(1400px) rotateY(-3deg) rotateX(1deg) translateY(-6px);}
.mock-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#eaf2fd;border-bottom:1px solid var(--line);}
.mock-bar i{width:9px;height:9px;border-radius:50%;background:#c8d8ef;display:block;}
.mock-bar i:nth-child(1){background:#ff6b6b;} .mock-bar i:nth-child(2){background:#ffc94d;} .mock-bar i:nth-child(3){background:#3ec98a;}
.mock-bar span{margin-left:8px;font-size:12.5px;color:var(--muted);}
.mock-body{padding:18px 20px 22px;}
.mock-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.mock-title b{font-size:14.5px;color:var(--navy-700);}
.mock-title em{font-style:normal;font-size:12px;color:#fff;background:var(--blue-500);padding:3px 10px;border-radius:999px;}
.mock-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;}
.mock-kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;position:relative;overflow:hidden;}
.mock-kpi b{display:block;font-size:21px;color:var(--blue-600);letter-spacing:.5px;font-variant-numeric:tabular-nums;}
.mock-kpi span{font-size:11.5px;color:var(--muted-2);}
.mock-kpi::after{content:"";position:absolute;left:0;top:0;width:3px;height:100%;background:var(--grad-cyan);}
.mock-chart{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:16px;}
.mock-chart-head{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted);margin-bottom:10px;}
.mock-bars{display:flex;align-items:flex-end;gap:8px;height:76px;}
.mock-bars i{flex:1;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,#2b7bf3,#a9cdff);
  animation:barGrow 1.1s var(--ease) backwards;}
.mock-bars i:nth-child(odd){background:linear-gradient(180deg,#22d3ee,#bff1fa);}
.mock-bars i:nth-child(1){height:38%;animation-delay:.05s}
.mock-bars i:nth-child(2){height:62%;animation-delay:.12s}
.mock-bars i:nth-child(3){height:48%;animation-delay:.19s}
.mock-bars i:nth-child(4){height:82%;animation-delay:.26s}
.mock-bars i:nth-child(5){height:56%;animation-delay:.33s}
.mock-bars i:nth-child(6){height:94%;animation-delay:.4s}
.mock-bars i:nth-child(7){height:70%;animation-delay:.47s}
@keyframes barGrow{from{height:0;opacity:0;}to{opacity:1;}}
.mock-list{display:flex;flex-direction:column;gap:8px;}
.mock-row{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);
  border-radius:10px;padding:9px 12px;font-size:12.5px;color:var(--ink-2);}
.mock-row .dot{width:7px;height:7px;border-radius:50%;background:var(--blue-500);flex:none;}
.mock-row .dot.ok{background:#3ec98a;} .mock-row .dot.warn{background:#ffc94d;} .mock-row .dot.cyan{background:var(--cyan);}
.mock-row .tagline{margin-left:auto;font-size:11.5px;color:var(--muted-2);}
.mock-row em{font-style:normal;font-size:11.5px;padding:2px 8px;border-radius:999px;background:var(--bg-2);color:var(--blue-600);}
.mock-float{position:absolute;background:#fff;border-radius:14px;box-shadow:var(--shadow-lg);padding:12px 16px;
  display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-2);animation:floatY 5s ease-in-out infinite;}
.mock-float b{color:var(--blue-600);}
.mock-float.f1{left:-30px;bottom:52px;}
.mock-float.f2{right:-16px;top:-18px;animation-delay:1.4s;}
.mock-float .badge-ic{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;
  background:var(--bg-2);color:var(--blue-600);}
@keyframes floatY{0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}

/* Hero 底部指标条 */
.hero-stats{position:relative;z-index:2;border-top:1px solid #e2e8f0;
  background:#ffffff;box-shadow:0 -4px 20px rgba(15,23,42,.03);}
.hero-stats-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:26px 0;}
.hero-stat{text-align:left;padding-left:18px;border-left:3px solid #2563eb;}
.hero-stat b{display:block;font-size:31px;color:#0f2963;font-variant-numeric:tabular-nums;letter-spacing:.5px;font-weight:800;}
.hero-stat b em{font-style:normal;font-size:17px;color:#2563eb;margin-left:2px;font-weight:700;}
.hero-stat span{font-size:13.5px;color:#64748b;}

/* ---------- 能力卡片（首页） ---------- */
.card-grid{display:grid;gap:22px;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
.f-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px 26px;
  position:relative;overflow:hidden;transition:all .35s var(--ease);}
.f-card::before{content:"";position:absolute;inset:0;background:
  radial-gradient(320px 160px at 100% 0,rgba(43,123,243,.1),transparent 70%);opacity:0;transition:opacity .35s var(--ease);}
.f-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:#c9dcf7;}
.f-card:hover::before{opacity:1;}
.f-card .f-ico{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#eaf2ff,#dcebff);color:var(--blue-600);margin-bottom:18px;position:relative;z-index:1;}
.f-card .f-ico .ico{width:26px;height:26px;}
.f-card h3{font-size:19px;margin-bottom:10px;position:relative;z-index:1;}
.f-card p{color:var(--muted);font-size:14.5px;position:relative;z-index:1;}
.f-card .f-link{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:14px;font-weight:600;
  color:var(--blue-600);position:relative;z-index:1;}
.f-card .f-link .ico{transition:transform .3s var(--ease);}
.f-card:hover .f-link .ico{transform:translateX(4px);}

/* 模块卡（带截图） */
.mod-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  display:flex;flex-direction:column;transition:all .35s var(--ease);}
.mod-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:#c9dcf7;}
.mod-card .mod-top{padding:24px 24px 0;}
.mod-card .mod-ico{width:48px;height:48px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  background:var(--grad-brand);color:#fff;margin-bottom:16px;box-shadow:0 8px 18px rgba(18,87,201,.24);}
.mod-card .mod-ico .ico{width:24px;height:24px;}
.mod-card h3{font-size:18.5px;margin-bottom:8px;}
.mod-card p{font-size:14.5px;color:var(--muted);}
.mod-card ul{margin-top:14px;display:flex;flex-direction:column;gap:7px;}
.mod-card ul li{position:relative;padding-left:20px;font-size:14px;color:var(--ink-2);}
.mod-card ul li::before{content:"";position:absolute;left:2px;top:9px;width:7px;height:7px;border-radius:50%;
  background:var(--blue-400);}
.mod-card .mod-shot{margin-top:20px;border-top:1px solid var(--line);background:linear-gradient(180deg,#f7fbff,#eef5ff);padding:16px 16px 0;}
.mod-card .mod-shot img{width:100%;border-radius:10px 10px 0 0;border:1px solid var(--line-2);border-bottom:0;
  box-shadow:0 -2px 16px rgba(14,42,92,.08);}

/* ---------- 流程 / 时间轴 ---------- */
.flow{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;position:relative;}
.flow::before{content:"";position:absolute;left:4%;right:4%;top:34px;height:2px;
  background:linear-gradient(90deg,rgba(43,123,243,.15),var(--blue-400),rgba(34,211,238,.5));}
.flow-node{position:relative;text-align:center;}
.flow-node .num{width:68px;height:68px;margin:0 auto 16px;border-radius:50%;background:#fff;border:2px solid var(--line-2);
  display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:var(--blue-600);
  position:relative;z-index:2;transition:all .35s var(--ease);}
.flow-node:hover .num{background:var(--grad-cyan);color:#fff;border-color:transparent;transform:scale(1.06);
  box-shadow:0 12px 26px rgba(31,110,220,.3);}
.flow-node h4{font-size:16px;margin-bottom:6px;}
.flow-node p{font-size:13.5px;color:var(--muted);}

/* ---------- 解决方案卡 ---------- */
.sol-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:30px 28px;
  display:flex;flex-direction:column;transition:all .35s var(--ease);position:relative;overflow:hidden;}
.sol-card::after{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:var(--grad-cyan);
  transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease);}
.sol-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.sol-card:hover::after{transform:scaleX(1);}
.sol-card .sol-head{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
.sol-card .sol-ico{width:48px;height:48px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#e8f1ff,#d9eaff);color:var(--blue-600);flex:none;}
.sol-card .sol-ico .ico{width:24px;height:24px;}
.sol-card h3{font-size:19px;}
.sol-card .tagline{font-size:13.5px;color:var(--blue-600);font-weight:500;margin-top:2px;}
.sol-card p.pain{font-size:14.5px;color:var(--muted);margin-bottom:16px;}
.sol-card ul{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;}
.sol-card ul li{position:relative;padding-left:24px;font-size:14px;color:var(--ink-2);}
.sol-card ul li .ico{position:absolute;left:0;top:6px;color:var(--cyan);font-size:14px;}
.sol-card .sol-value{background:var(--bg);border-radius:10px;padding:12px 16px;font-size:13.5px;color:var(--blue-600);
  font-weight:500;margin-bottom:18px;}
.sol-card .sol-foot{margin-top:auto;display:flex;gap:10px;align-items:center;}

/* ---------- 案例卡 ---------- */
.case-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  display:flex;flex-direction:column;transition:all .35s var(--ease);}
.case-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:#c9dcf7;}
.case-cover{height:186px;background:var(--grad-brand);position:relative;overflow:hidden;}
.case-cover img{width:100%;height:100%;object-fit:cover;object-position:top center;}
.case-cover .cover-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(320px 200px at 80% 10%,rgba(34,211,238,.34),transparent 66%),
    linear-gradient(140deg,#0b2a63,#1257c9 60%,#2b7bf3);
  color:#fff;}
.case-cover .cover-fallback b{font-size:19px;letter-spacing:1px;opacity:.94;text-align:center;padding:0 26px;line-height:1.6;}
.case-cover .cover-badge{position:absolute;left:16px;top:16px;background:rgba(4,13,34,.6);color:#cfe6ff;
  font-size:12.5px;padding:4px 12px;border-radius:999px;backdrop-filter:blur(4px);}
.case-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1;}
.case-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:12.5px;color:var(--muted-2);margin-bottom:12px;}
.case-meta span{display:inline-flex;align-items:center;gap:5px;}
.case-card h3{font-size:17.5px;margin-bottom:10px;line-height:1.5;}
.case-card .case-summary{font-size:14px;color:var(--muted);margin-bottom:16px;}
.case-metrics{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;}
.case-metrics span{font-size:12.5px;color:var(--blue-600);background:var(--bg-2);padding:4px 12px;border-radius:999px;}
.case-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;
  padding-top:16px;border-top:1px solid var(--line);}
.case-foot .more{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--blue-600);}
.case-foot .more .ico{transition:transform .3s var(--ease);}
.case-card:hover .case-foot .more .ico{transform:translateX(4px);}

/* ---------- 资讯卡 ---------- */
.news-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px;display:flex;gap:24px;
  transition:all .35s var(--ease);}
.news-card:hover{box-shadow:var(--shadow);border-color:#c9dcf7;transform:translateY(-4px);}
.news-date{flex:none;width:84px;text-align:center;border-right:1px solid var(--line);padding-right:20px;}
.news-date b{display:block;font-size:30px;color:var(--blue-600);line-height:1.1;font-variant-numeric:tabular-nums;}
.news-date span{font-size:12.5px;color:var(--muted-2);}
.news-body{flex:1;min-width:0;}
.news-cat{display:inline-block;font-size:12.5px;color:var(--blue-600);background:var(--bg-2);
  padding:2px 12px;border-radius:999px;margin-bottom:10px;}
.news-card h3{font-size:18px;margin-bottom:8px;line-height:1.5;}
.news-card h3 a:hover{color:var(--blue-600);}
.news-card p{font-size:14.5px;color:var(--muted);margin-bottom:12px;}
.news-foot{display:flex;align-items:center;gap:18px;font-size:13px;color:var(--muted-2);}
.news-foot .more{margin-left:auto;color:var(--blue-600);font-weight:600;display:inline-flex;align-items:center;gap:6px;}
.news-card:hover .news-foot .more .ico{transform:translateX(4px);}
.news-foot .more .ico{transition:transform .3s var(--ease);}

/* 首页资讯列表（紧凑） */
.news-mini{display:flex;flex-direction:column;gap:14px;}
.news-mini-item{display:flex;gap:18px;align-items:flex-start;background:#fff;border:1px solid var(--line);
  border-radius:14px;padding:20px 22px;transition:all .3s var(--ease);}
.news-mini-item:hover{border-color:#c9dcf7;box-shadow:var(--shadow-sm);transform:translateX(4px);}
.news-mini-item .nm-date{flex:none;text-align:center;width:62px;color:var(--muted-2);font-size:12.5px;}
.news-mini-item .nm-date b{display:block;font-size:22px;color:var(--blue-600);line-height:1.2;}
.news-mini-item h4{font-size:16.5px;margin-bottom:5px;}
.news-mini-item p{font-size:14px;color:var(--muted);}

/* ---------- 内页 Hero ---------- */
.page-hero{position:relative;background:var(--navy-900);color:#fff;padding:74px 0 62px;overflow:hidden;}
.page-hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(760px 380px at 82% 8%,rgba(43,123,243,.42),transparent 62%),
  radial-gradient(560px 340px at 8% 96%,rgba(34,211,238,.2),transparent 66%),
  linear-gradient(140deg,#040d22,#0a2354 62%,#10407f);}
.page-hero::after{content:"";position:absolute;inset:0;opacity:.4;background-image:
  linear-gradient(rgba(120,170,255,.07) 1px,transparent 1px),
  linear-gradient(90deg,rgba(120,170,255,.07) 1px,transparent 1px);background-size:52px 52px;
  mask-image:radial-gradient(circle at 60% 40%,#000,transparent 76%);
  -webkit-mask-image:radial-gradient(circle at 60% 40%,#000,transparent 76%);}
.page-hero .container{position:relative;z-index:2;}
.page-hero .crumb{font-size:13.5px;color:rgba(190,214,250,.72);margin-bottom:16px;display:flex;align-items:center;gap:8px;}
.page-hero .crumb a:hover{color:#fff;}
.page-hero .crumb .sep{opacity:.5;}
.page-hero h1{font-size:40px;color:#fff;letter-spacing:1px;margin-bottom:14px;}
.page-hero .lead{font-size:16.5px;color:rgba(214,230,255,.82);max-width:760px;}
.page-hero .hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;}
.page-hero .hero-tags span{font-size:13.5px;color:#cfe6ff;background:rgba(90,162,255,.14);
  border:1px solid rgba(120,180,255,.28);padding:5px 14px;border-radius:999px;}

/* ---------- 筛选条 ---------- */
.filter-bar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:34px;align-items:center;}
.filter-bar a{padding:9px 20px;border-radius:999px;font-size:14.5px;color:var(--ink-2);border:1px solid var(--line);
  background:#fff;transition:all .3s var(--ease);}
.filter-bar a:hover{border-color:var(--blue-400);color:var(--blue-600);}
.filter-bar a.active{background:var(--grad-cyan);color:#fff;border-color:transparent;box-shadow:0 8px 20px rgba(31,110,220,.26);}
.filter-count{margin-left:auto;font-size:13.5px;color:var(--muted-2);}

/* ---------- 分页 ---------- */
.pager{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:center;margin-top:46px;}
.pg-btn,.pg-num{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;
  padding:0 16px;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:14.5px;
  color:var(--ink-2);transition:all .25s var(--ease);}
.pg-btn:hover,.pg-num:hover{border-color:var(--blue-400);color:var(--blue-600);}
.pg-num.current{background:var(--grad-cyan);color:#fff;border-color:transparent;font-weight:600;}
.pg-btn.disabled{opacity:.45;cursor:not-allowed;}
.pg-dot{color:var(--muted-2);}
.pg-total{margin-left:10px;font-size:13.5px;color:var(--muted-2);}

/* ---------- 文章详情 ---------- */
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:44px;align-items:start;}
.article{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:40px 44px;}
.article-head h1{font-size:29px;line-height:1.45;margin-bottom:14px;}
.article-meta{display:flex;flex-wrap:wrap;gap:16px;font-size:13.5px;color:var(--muted-2);
  padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:26px;}
.article-meta .cat{color:var(--blue-600);background:var(--bg-2);padding:2px 12px;border-radius:999px;}
.article-content{font-size:16px;color:var(--ink-2);}
.article-content p{margin-bottom:16px;}
.article-content h3{font-size:18.5px;margin:28px 0 12px;padding-left:12px;border-left:4px solid var(--blue-500);}
.article-content ul{margin:0 0 18px 4px;}
.article-content li{position:relative;padding-left:20px;margin-bottom:8px;}
.article-content li::before{content:"";position:absolute;left:2px;top:10px;width:7px;height:7px;border-radius:50%;background:var(--blue-400);}
.article-content img{border-radius:10px;margin:18px 0;}
.article-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px;padding-top:22px;border-top:1px solid var(--line);}
.article-tags span{font-size:13px;color:var(--muted);background:var(--bg);padding:4px 14px;border-radius:999px;}
.article-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:30px;
  padding-top:24px;border-top:1px solid var(--line);}
.article-foot .back{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:14.5px;}
.article-foot .back:hover{color:var(--blue-600);}

/* 侧栏 */
.side{display:flex;flex-direction:column;gap:22px;}
.side-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px;}
.side-card h4{font-size:16.5px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line);position:relative;}
.side-card h4::after{content:"";position:absolute;left:0;bottom:-1px;width:44px;height:2px;background:var(--grad-cyan);}
.side-list{display:flex;flex-direction:column;gap:14px;}
.side-list a{display:block;}
.side-list a b{display:block;font-size:14.5px;font-weight:500;color:var(--ink-2);line-height:1.6;
  transition:color .25s var(--ease);}
.side-list a:hover b{color:var(--blue-600);}
.side-list a span{font-size:12.5px;color:var(--muted-2);}
.side-cta{background:var(--grad-brand);color:#fff;border:0;text-align:center;}
.side-cta h4{color:#fff;border-bottom-color:rgba(255,255,255,.22);}
.side-cta h4::after{background:#fff;}
.side-cta p{font-size:14px;color:rgba(214,230,255,.86);margin-bottom:18px;}
.side-cta .btn{width:100%;}

/* 案例详情附加信息 */
.case-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:24px 0 30px;}
.case-fact{background:var(--bg);border-radius:12px;padding:14px 18px;}
.case-fact span{display:block;font-size:12.5px;color:var(--muted-2);margin-bottom:4px;}
.case-fact b{font-size:15px;color:var(--navy-700);font-weight:600;}
.case-highlight{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:26px;}
.case-highlight div{flex:1 1 180px;background:linear-gradient(135deg,#f0f6ff,#e4efff);border:1px solid #d7e6fb;
  border-radius:12px;padding:16px 18px;font-size:14.5px;color:var(--blue-600);font-weight:600;text-align:center;}

/* ---------- 产品页：模块详情 ---------- */
.mod-detail{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;padding:56px 0;
  border-bottom:1px dashed var(--line-2);}
.mod-detail:last-child{border-bottom:0;}
.mod-detail:nth-child(even) .mod-detail-text{order:2;}
.mod-detail-text .md-ico{width:56px;height:56px;border-radius:16px;background:var(--grad-brand);color:#fff;
  display:flex;align-items:center;justify-content:center;margin-bottom:18px;box-shadow:0 10px 22px rgba(18,87,201,.24);}
.mod-detail-text .md-ico .ico{width:28px;height:28px;}
.mod-detail-text h3{font-size:26px;margin-bottom:12px;}
.mod-detail-text > p{color:var(--muted);margin-bottom:20px;font-size:15.5px;}
.mod-detail-text ul{display:flex;flex-direction:column;gap:11px;}
.mod-detail-text ul li{position:relative;padding-left:28px;font-size:15px;color:var(--ink-2);}
.mod-detail-text ul li .ico{position:absolute;left:0;top:5px;color:var(--blue-500);}
.mod-detail-shot{position:relative;}
.mod-detail-shot img{border-radius:14px;border:1px solid var(--line-2);box-shadow:var(--shadow-lg);width:100%;}
.mod-detail-shot .shot-cap{font-size:13px;color:var(--muted-2);text-align:center;margin-top:12px;}

/* 界面画廊 */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.gallery-item{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  transition:all .35s var(--ease);}
.gallery-item:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.gallery-item .gal-img{background:linear-gradient(180deg,#f6faff,#eaf2ff);padding:14px 14px 0;border-bottom:1px solid var(--line);}
.gallery-item .gal-img img{width:100%;border-radius:10px 10px 0 0;border:1px solid var(--line-2);border-bottom:0;}
.gallery-item .gal-text{padding:18px 22px 22px;}
.gallery-item h4{font-size:16.5px;margin-bottom:6px;}
.gallery-item p{font-size:14px;color:var(--muted);}

/* 规格表 */
.spec-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--r);overflow:hidden;
  box-shadow:var(--shadow-sm);}
.spec-table tr+tr{border-top:1px solid var(--line);}
.spec-table th{width:190px;text-align:left;padding:18px 26px;background:var(--bg);color:var(--navy-700);
  font-size:15px;font-weight:600;vertical-align:top;}
.spec-table td{padding:18px 26px;font-size:14.5px;color:var(--ink-2);}

/* 信创适配规格卡片列表 */
.xinchuang-spec-list{display:flex;flex-direction:column;gap:10px;}
.xinchuang-spec-item{display:flex;align-items:flex-start;gap:12px;line-height:1.6;}
.xinchuang-badge{display:inline-flex;align-items:center;flex:none;font-size:12px;font-weight:600;
  color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;padding:2px 10px;border-radius:6px;
  margin-top:2px;white-space:nowrap;}
.xinchuang-text{font-size:14px;color:#334155;line-height:1.65;}
.xinchuang-text b{color:#0f2963;font-weight:700;}
@media (max-width:768px){
  .xinchuang-spec-item{flex-direction:column;gap:4px;}
}

/* ---------- FAQ ---------- */
.faq-list{display:flex;flex-direction:column;gap:12px;max-width:900px;margin:0 auto;}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:all .3s var(--ease);}
.faq-item.open{border-color:#c9dcf7;box-shadow:var(--shadow-sm);}
.faq-q{display:flex;align-items:center;gap:14px;width:100%;padding:20px 24px;font-size:16.5px;font-weight:600;
  color:var(--ink);text-align:left;}
.faq-q .qmark{width:26px;height:26px;border-radius:8px;background:var(--bg-2);color:var(--blue-600);flex:none;
  display:flex;align-items:center;justify-content:center;font-size:14px;}
.faq-q .chev{margin-left:auto;color:var(--muted-2);transition:transform .3s var(--ease);}
.faq-item.open .chev{transform:rotate(180deg);color:var(--blue-600);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .38s var(--ease);}
.faq-a-inner{padding:0 24px 22px 64px;font-size:14.8px;color:var(--muted);}

/* ---------- 表单 ---------- */
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:36px 38px;box-shadow:var(--shadow-sm);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.field{margin-bottom:18px;}
.field label{display:block;font-size:14.5px;font-weight:600;color:var(--ink-2);margin-bottom:8px;}
.field label i{font-style:normal;color:#e2503a;margin-left:3px;}
.field input,.field select,.field textarea{
  width:100%;height:46px;border:1px solid var(--line-2);border-radius:10px;padding:0 16px;font-size:15px;
  color:var(--ink);background:#fbfdff;font-family:inherit;transition:all .25s var(--ease);}
.field textarea{height:120px;padding:12px 16px;resize:vertical;line-height:1.7;}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235d6f8c' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:40px;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue-500);
  background:#fff;box-shadow:0 0 0 3px rgba(43,123,243,.13);}
.field .hint{font-size:12.5px;color:var(--muted-2);margin-top:6px;}
.field.err input,.field.err select,.field.err textarea{border-color:#e2503a;background:#fff8f7;}
.field .err-msg{display:none;font-size:12.5px;color:#e2503a;margin-top:6px;}
.field.err .err-msg{display:block;}
.check-group{display:flex;flex-wrap:wrap;gap:10px;}
.check-group label{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border:1px solid var(--line-2);
  border-radius:999px;font-size:14px;color:var(--ink-2);font-weight:500;cursor:pointer;margin:0;
  transition:all .25s var(--ease);background:#fbfdff;}
.check-group input{width:auto;height:auto;margin:0;}
.check-group label.on{border-color:var(--blue-500);color:var(--blue-600);background:var(--bg-2);}
.form-note{font-size:13px;color:var(--muted-2);margin-top:14px;display:flex;gap:8px;align-items:flex-start;}
.alert{padding:14px 18px;border-radius:12px;font-size:14.5px;margin-bottom:20px;display:flex;gap:10px;align-items:flex-start;}
.alert-ok{background:#eefaf3;border:1px solid #bfe9d2;color:#1d7a4d;}
.alert-err{background:#fdf2f0;border:1px solid #f3cdc4;color:#b03a24;}
.alert .ico{margin-top:3px;}

/* 试用页布局 */
.trial-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:40px;align-items:start;}
.trial-side{display:flex;flex-direction:column;gap:20px;}
.side-panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px;}
.side-panel h4{font-size:16.5px;margin-bottom:16px;}
.side-panel .step-list{display:flex;flex-direction:column;gap:16px;}
.side-panel .step-list li{display:flex;gap:12px;font-size:14.5px;color:var(--ink-2);}
.side-panel .step-list .n{width:26px;height:26px;border-radius:50%;background:var(--bg-2);color:var(--blue-600);
  flex:none;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;}
.side-panel.contact{background:var(--grad-brand);color:#fff;border:0;}
.side-panel.contact h4{color:#fff;}
.side-panel.contact p{font-size:14.5px;color:rgba(214,230,255,.9);margin-bottom:10px;display:flex;gap:8px;align-items:flex-start;}
.side-panel.contact b{color:#fff;font-size:17px;letter-spacing:.5px;}

/* ---------- CTA 条 ---------- */
.cta-band{position:relative;background:var(--navy-900);color:#fff;padding:64px 0;overflow:hidden;}
.cta-glow{position:absolute;inset:0;background:
  radial-gradient(620px 300px at 18% 10%,rgba(43,123,243,.42),transparent 64%),
  radial-gradient(520px 300px at 88% 90%,rgba(34,211,238,.26),transparent 66%),
  linear-gradient(120deg,#040d22,#0a2354);}
.cta-inner{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:36px;}
.cta-text{max-width:640px;}
.cta-tag{display:inline-block;font-size:13px;color:var(--cyan-soft);letter-spacing:2px;margin-bottom:12px;}
.cta-text h2{font-size:30px;color:#fff;margin-bottom:12px;line-height:1.4;}
.cta-text p{font-size:15.5px;color:rgba(212,229,255,.8);}
.cta-actions{display:flex;gap:14px;flex-wrap:wrap;}

/* ---------- 页脚 ---------- */
.site-footer{background:#03091a;color:rgba(196,215,245,.76);font-size:14.5px;padding:66px 0 0;}
.footer-main{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1.25fr;gap:40px;padding-bottom:50px;}
.footer-logo{height:38px;background:#fff;padding:8px 14px;border-radius:8px;margin-bottom:18px;}
.footer-intro{font-size:14px;line-height:1.9;color:rgba(186,208,242,.7);margin-bottom:18px;}
.footer-badges{display:flex;flex-wrap:wrap;gap:8px;}
.footer-badges span{font-size:12.5px;color:#a9c8f5;border:1px solid rgba(120,170,255,.24);padding:3px 12px;border-radius:999px;}
.footer-col h4{font-size:15.5px;color:#fff;margin-bottom:18px;font-weight:600;}
.footer-col ul{display:flex;flex-direction:column;gap:11px;}
.footer-col a{font-size:14px;color:rgba(186,208,242,.74);}
.footer-col a:hover{color:var(--cyan-soft);}
.footer-contact p{font-size:14px;color:rgba(186,208,242,.74);margin-bottom:10px;display:flex;gap:8px;align-items:flex-start;}
.footer-contact .ico{margin-top:4px;color:var(--blue-400);}
.contact-phone{display:flex;flex-direction:column;gap:2px;}
.contact-phone b{font-size:22px;color:#fff;letter-spacing:.5px;}
.contact-phone span{font-size:12.5px;color:rgba(160,190,235,.66);}
.footer-qr-card{display:flex;align-items:center;gap:12px;padding:10px 12px;background:rgba(255,255,255,.06);border:1px solid rgba(147,197,253,.22);border-radius:12px;margin:12px 0 14px;transition:all .3s ease;}
.footer-qr-card:hover{background:rgba(255,255,255,.1);border-color:rgba(147,197,253,.45);transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.25);}
.footer-qr-img{width:76px;height:76px;background:#fff;padding:4px;border-radius:8px;object-fit:contain;flex:none;}
.footer-qr-meta{display:flex;flex-direction:column;gap:3px;}
.footer-qr-title{display:flex;align-items:center;gap:5px;color:#fff;font-size:13.5px;}
.footer-qr-title .ico{width:15px;height:15px;color:#38bdf8;margin:0;}
.footer-qr-desc{font-size:12px;color:rgba(186,208,242,.72);line-height:1.45;margin:0 !important;}
.footer-contact .btn{margin-top:8px;}
.footer-bottom{border-top:1px solid rgba(120,170,255,.14);padding:22px 0;font-size:13.5px;}
.footer-bottom-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.footer-bottom p{color:rgba(160,190,235,.6);}
.footer-bottom-links{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.footer-bottom-links a{color:rgba(186,208,242,.7);}
.footer-bottom-links a:hover{color:#fff;}
.footer-bottom-links span{opacity:.4;}

/* ---------- 悬浮工具 ---------- */
.float-tools{position:fixed;right:22px;bottom:34px;z-index:800;display:flex;flex-direction:column;gap:12px;}
.float-btn{width:50px;height:50px;border-radius:14px;background:#fff;border:1px solid var(--line-2);
  color:var(--blue-600);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);
  transition:all .3s var(--ease);}
.float-btn:hover{background:var(--grad-cyan);color:#fff;border-color:transparent;transform:translateY(-3px);}
.float-btn .ico{width:22px;height:22px;}
.float-item{position:relative;}
.float-pop{position:absolute;right:62px;bottom:0;width:250px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--shadow-lg);padding:20px;opacity:0;visibility:hidden;
  transform:translateX(10px);transition:all .3s var(--ease);}
.float-item:hover .float-pop{opacity:1;visibility:visible;transform:translateX(0);}
.float-pop h5{font-size:16px;margin-bottom:12px;color:#0f2963;}
.float-pop .float-phone{font-size:13px;color:var(--muted);margin-bottom:10px;line-height:1.6;}
.float-pop .float-phone b{color:#0f2963;font-size:16px;}
.float-qr-wrap{text-align:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:10px;margin-bottom:14px;}
.float-qr-img{display:block;width:120px;height:120px;margin:0 auto 6px;border-radius:6px;object-fit:contain;background:#fff;padding:4px;border:1px solid #cbd5e1;}
.float-qr-wrap span{display:block;font-size:12px;color:#0f2963;font-weight:600;}

/* 关于我们 微信二维码卡片 */
.f-card-qr{display:flex;flex-direction:column;align-items:center;justify-content:center;}
.about-qr-card{width:120px;height:120px;margin:0 auto;padding:5px;background:#ffffff;border:1.5px solid #bfdbfe;border-radius:12px;box-shadow:0 6px 18px rgba(37,99,235,.1);}
.about-qr-img{width:100%;height:100%;object-fit:contain;border-radius:6px;display:block;}

/* 试用侧边栏 微信二维码卡片 */
.trial-side-qr-card{display:flex;align-items:center;gap:12px;padding:10px 12px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);border-radius:12px;margin:12px 0 14px;}
.trial-side-qr-img{width:70px;height:70px;background:#ffffff;padding:3px;border-radius:6px;object-fit:contain;flex:none;}
.trial-side-qr-text{display:flex;flex-direction:column;gap:3px;}
.trial-side-qr-text b{font-size:13.5px;color:#fff;}
.trial-side-qr-text span{font-size:11.5px;color:rgba(214,230,255,.85);line-height:1.4;}
#backTop{opacity:0;visibility:hidden;}
#backTop.show{opacity:1;visibility:visible;}

/* ---------- 动画 ---------- */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
[data-reveal].revealed{opacity:1;transform:none;}
[data-reveal="left"]{transform:translateX(-30px);}
[data-reveal="right"]{transform:translateX(30px);}
[data-reveal="zoom"]{transform:scale(.95);}
[data-delay="1"]{transition-delay:.08s;}
[data-delay="2"]{transition-delay:.16s;}
[data-delay="3"]{transition-delay:.24s;}
[data-delay="4"]{transition-delay:.32s;}
[data-delay="5"]{transition-delay:.4s;}

.marquee{overflow:hidden;position:relative;padding:6px 0;
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);}
.marquee-track{display:flex;gap:18px;width:max-content;animation:marquee 34s linear infinite;}
.marquee:hover .marquee-track{animation-play-state:paused;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.marquee-item{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 26px;
  display:flex;align-items:center;gap:12px;font-size:15px;color:var(--ink-2);white-space:nowrap;
  box-shadow:var(--shadow-sm);}
.marquee-item .ico{color:var(--blue-500);}

/* 语义标签云 */
.tag-cloud{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;}
.tag-cloud span{font-size:14px;color:var(--ink-2);background:#fff;border:1px solid var(--line);
  padding:8px 18px;border-radius:999px;transition:all .3s var(--ease);}
.tag-cloud span:hover{border-color:var(--blue-400);color:var(--blue-600);transform:translateY(-2px);box-shadow:var(--shadow-sm);}

/* 空状态 */
.empty{text-align:center;padding:70px 20px;color:var(--muted-2);}
.empty .ico{width:44px;height:44px;color:var(--line-2);margin-bottom:14px;}

/* ---------- 响应式 ---------- */
@media (max-width:1180px){
  .nav-menu{gap:0;}
  .nav-link{padding:10px 11px;font-size:15px;}
  .footer-main{grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:30px;}
  .footer-col:nth-child(4){display:none;}
}
@media (max-width:1024px){
  .hero-inner{grid-template-columns:1fr;gap:48px;}
  .hero h1{font-size:40px;}
  .hero-visual{max-width:640px;}
  .mock-card{transform:none;}
  .mock-float.f1{left:0;} .mock-float.f2{right:0;}
  .grid-4{grid-template-columns:repeat(2,1fr);}
  .grid-3{grid-template-columns:repeat(2,1fr);}
  .flow{grid-template-columns:repeat(3,1fr);gap:26px;}
  .flow::before{display:none;}
  .gallery{grid-template-columns:repeat(2,1fr);}
  .mod-detail{grid-template-columns:1fr;gap:30px;}
  .mod-detail:nth-child(even) .mod-detail-text{order:0;}
  .article-layout,.trial-layout{grid-template-columns:1fr;}
  .cta-inner{flex-direction:column;align-items:flex-start;}
}
@media (max-width:820px){
  .hide-md{display:none !important;}

  /* 1. 顶部信息条精细单行布局 */
  .topbar{
    background:linear-gradient(90deg, #091a3c 0%, #0d2657 100%);
    border-bottom:1px solid rgba(255,255,255,0.08);
  }
  .topbar-inner{
    height:36px;
    padding:0 2px;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
  }
  .topbar-left,.topbar-right{
    display:flex;
    align-items:center;
    gap:0;
    flex-wrap:nowrap;
  }
  .topbar-item{
    font-size:12px;
    color:rgba(255,255,255,0.88);
    gap:5px;
    line-height:1;
  }
  .topbar-item .ico{
    width:13px;
    height:13px;
    color:#60a5fa;
    flex-shrink:0;
  }
  .topbar-item b{
    color:#ffffff;
    font-weight:600;
    letter-spacing:0.3px;
  }
  .topbar-link{
    font-size:11.5px;
    color:#bfdbfe;
    background:rgba(37,99,235,0.28);
    border:1px solid rgba(147,197,253,0.35);
    padding:3px 10px;
    border-radius:999px;
    transition:all 0.2s ease;
    gap:3px;
    white-space:nowrap;
    line-height:1.2;
  }
  .topbar-link:hover{
    background:#2563eb;
    color:#ffffff;
    border-color:#60a5fa;
  }
  .topbar-link .ico{
    width:10px;
    height:10px;
  }

  /* 2. 导航栏与包含块解绑 */
  .navbar{
    position:relative;
    background:#ffffff !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    border-bottom:1px solid #e2e8f0;
    box-shadow:0 2px 10px rgba(15,23,42,0.05);
  }
  .navbar-inner{
    position:relative;
    height:64px;
  }
  .brand-text b{font-size:15px;white-space:nowrap;}
  .brand-text i{display:none;}

  /* 汉堡按钮高质感样式与展开变形 */
  .nav-toggle{
    display:flex;
    position:relative;
    z-index:910;
    width:38px;
    height:38px;
    border-radius:8px;
    border:1px solid #cbd5e1;
    background:#f8fafc;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4.5px;
    padding:0;
    cursor:pointer;
    transition:all .2s ease;
  }
  .nav-toggle span{
    display:block;
    width:18px;
    height:2px;
    background:#0f2963;
    border-radius:2px;
    transition:transform .25s ease, opacity .2s ease, background .2s ease;
    transform-origin:center;
  }
  .nav-toggle.open{
    background:#eff6ff;
    border-color:#93c5fd;
  }
  .nav-toggle.open span:nth-child(1){
    transform:translateY(6.5px) rotate(45deg);
    background:#1d4ed8;
  }
  .nav-toggle.open span:nth-child(2){
    opacity:0;
    transform:scaleX(0);
  }
  .nav-toggle.open span:nth-child(3){
    transform:translateY(-6.5px) rotate(-45deg);
    background:#1d4ed8;
  }

  /* 下拉抽屉式菜单 */
  .nav-menu{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    bottom:auto;
    width:100%;
    max-height:calc(100vh - 105px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    background:#ffffff;
    box-shadow:0 20px 32px -4px rgba(15,23,42,0.16), 0 8px 16px -2px rgba(15,23,42,0.08);
    border-top:1px solid #f1f5f9;
    border-bottom:2px solid #e2e8f0;
    padding:12px 18px 22px;
    gap:4px;
    flex-direction:column;
    align-items:stretch;
    transform:translateY(-10px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease, visibility 0.25s;
    z-index:905;
  }
  .nav-menu.open{
    transform:translateY(0);
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
  .nav-link{
    width:100%;
    padding:12px 14px;
    font-size:15.5px;
    font-weight:500;
    color:#1e293b;
    border-radius:8px;
    border-bottom:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    transition:background 0.18s ease, color 0.18s ease;
  }
  .nav-link::after{
    content:"→";
    font-size:14px;
    color:#94a3b8;
    font-weight:400;
    display:block;
  }
  .nav-link.active{
    color:#1d4ed8;
    background:#eff6ff;
    font-weight:700;
  }
  .nav-link.active::after{
    color:#1d4ed8;
  }
  .nav-link:hover, .nav-link:active{
    background:#f8fafc;
    color:#1d4ed8;
  }
  .nav-link.is-trial{
    display:flex;
    align-items:center;
    justify-content:center;
    margin-top:10px;
    background:linear-gradient(135deg, #1e40af 0%, #2563eb 100%);
    color:#ffffff !important;
    font-weight:600;
    padding:12px;
    border-radius:8px;
    box-shadow:0 4px 14px rgba(37,99,235,0.28);
  }
  .nav-link.is-trial::after{
    display:none;
  }

  /* 遮罩背景 */
  .nav-backdrop{
    display:block;
    position:fixed;
    top:0;
    left:0;
    right:0;
    bottom:0;
    background:rgba(15,23,42,0.45);
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .25s ease, visibility .25s;
    z-index:890;
  }
  .nav-backdrop.open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }

  .nav-actions .btn-outline{display:none;}
  .section{padding:64px 0;}
  .section-head h2{font-size:29px;}
  .page-hero h1{font-size:30px;}
  .hero{padding-top:64px;}
  .hero h1{font-size:32px;}
  .hero-stats-inner{grid-template-columns:repeat(2,1fr);gap:18px;}
  .hero-stat b{font-size:26px;}
  .grid-3,.grid-2,.grid-4{grid-template-columns:1fr;}
  .flow{grid-template-columns:repeat(2,1fr);}
  .gallery{grid-template-columns:1fr;}
  .news-card{flex-direction:column;gap:14px;}
  .news-date{width:auto;border-right:0;border-bottom:1px solid var(--line);padding:0 0 10px;text-align:left;
    display:flex;align-items:baseline;gap:10px;}
  .news-date b{font-size:22px;}
  .article{padding:26px 20px;}
  .article-head h1{font-size:23px;}
  .case-facts{grid-template-columns:1fr;}
  .form-card{padding:26px 20px;}
  .form-row{grid-template-columns:1fr;}
  .spec-table th{width:110px;padding:14px 16px;font-size:14px;}
  .spec-table td{padding:14px 16px;}
  .footer-main{grid-template-columns:1fr 1fr;gap:28px;}
  .footer-brand{grid-column:1/-1;}
  .footer-col:nth-child(4){display:block;}
  .float-tools{right:14px;bottom:20px;}
  .float-pop{display:none;}
  .cta-text h2{font-size:23px;}
  .cta-band{padding:48px 0;}
  .pager .pg-total{width:100%;text-align:center;margin:6px 0 0;}
}
@media (max-width:520px){
  .container{padding:0 16px;}
  .hide-sm{display:none !important;}
  .brand-text{display:none;}
  .nav-actions .btn{height:38px;padding:0 14px;font-size:13.5px;}
  .hero h1{font-size:27px;}
  .hero-badge{font-size:12px;}
  .section-head h2{font-size:24px;}
  .flow{grid-template-columns:1fr;}
  .footer-main{grid-template-columns:1fr;}
  .case-cover{height:158px;}
  .mod-detail-text h3{font-size:22px;}
  .article-content{font-size:15.4px;}
  .btn{height:42px;padding:0 20px;font-size:14.5px;}
  .btn-lg{height:48px;padding:0 26px;font-size:15px;}
  .hero-v2-inner{padding:36px 0 20px;}
  .hero-logo{height:34px;margin-bottom:16px;}
  .hero-typing-title{font-size:22px;line-height:1.4;}
  .slogan-tab{padding:6px 12px;font-size:12px;gap:6px;}
  .slogan-tab .tab-idx{font-size:10px;padding:1px 4px;}
}
@media (max-width:380px){
  .hide-xs{display:none !important;}
  .topbar-item{font-size:11.5px;}
  .topbar-link{font-size:11px;padding:2px 8px;}
  .nav-actions .btn{height:36px;padding:0 10px;font-size:13px;}
}

/* ==================== Hero V2（整屏居中式） ==================== */
.hero-v2{display:flex;flex-direction:column;min-height:calc(100vh - 116px);}
.hero-v2-inner{position:relative;z-index:2;text-align:center;padding:72px 0 30px;}

/* 顶部 Logo 严格尺寸约束与质感微阴影（避免图片未约束导致巨大爆屏） */
.hero-logo{
  display:block;
  height:48px;
  width:auto;
  max-width:260px;
  margin:0 auto 24px;
  object-fit:contain;
  filter:drop-shadow(0 2px 8px rgba(15,41,99,.06));
  transition:transform .3s ease;
}
.hero-logo:hover{transform:scale(1.02);}

/* ==================== 动效轮播标语：智能打字机 + 核心业务场景胶囊 ==================== */
.hero-typing-wrap{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  margin:0 auto 22px;
  max-width:1100px;
}
.hero-typing-title{
  font-size:clamp(28px, 4vw, 50px);
  line-height:1.36;
  letter-spacing:1px;
  margin:0 0 18px;
  color:#0f172a;
  min-height:1.36em;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  text-align:center;
}
.typing-prefix{
  color:#0f172a;
  font-weight:700;
}
.typing-accent{
  background:linear-gradient(135deg, #0f2963 0%, #2563eb 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  font-weight:800;
  display:inline-block;
  padding-right:2px;
}
.typing-caret{
  display:inline-block;
  color:#2563eb;
  font-weight:300;
  font-size:0.92em;
  line-height:1;
  margin-left:3px;
  vertical-align:baseline;
  user-select:none;
  animation:typingCaretBlink 0.9s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes typingCaretBlink{
  0%, 100%{opacity:1; text-shadow:0 0 10px rgba(37,99,235,.8);}
  50%{opacity:0; text-shadow:none;}
}

/* 3大场景指示切换胶囊卡片 */
.hero-slogan-tabs{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:2px;
  user-select:none;
}
.slogan-tab{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 18px;
  background:#ffffff;
  border:1px solid #cbd5e1;
  border-radius:999px;
  font-size:13.5px;
  color:#475569;
  cursor:pointer;
  transition:border-color .25s ease, color .25s ease, background-color .25s ease, transform .25s ease, box-shadow .25s ease;
  box-shadow:0 2px 6px rgba(15, 41, 99, 0.04);
  overflow:hidden;
}
.slogan-tab:hover{
  border-color:#93c5fd;
  color:#1e40af;
  background:#f8fafc;
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(37, 99, 235, 0.08);
}
.slogan-tab.active{
  border-color:#2563eb;
  color:#0f2963;
  font-weight:600;
  background:#ffffff;
  box-shadow:0 4px 14px rgba(37, 99, 235, 0.16);
}
.slogan-tab .tab-idx{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:11px;
  padding:1px 6px;
  border-radius:4px;
  background:#f1f5f9;
  color:#64748b;
  font-weight:700;
  transition:background-color .25s ease, color .25s ease;
}
.slogan-tab.active .tab-idx{
  background:rgba(37, 99, 235, 0.12);
  color:#2563eb;
}
.slogan-tab .tab-bar{
  position:absolute;
  bottom:0;
  left:0;
  height:2.5px;
  width:0%;
  background:linear-gradient(90deg, #0f2963, #2563eb);
  border-radius:2px;
  transition:none;
}
.slogan-tab.active.animating .tab-bar{
  width:100%;
  transition:width 3.2s linear;
}
.hero-v2 .hero-sub{margin:0 auto 34px;font-size:17.5px;line-height:1.75;color:#475569;}
.hero-v2 .hero-actions{justify-content:center;margin-bottom:26px;}
.hero-tags-row{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 14px;list-style:none;}
.hero-tags-row li{font-size:13.5px;color:#1e40af;padding:7px 16px;border-radius:999px;
  border:1px solid #bfdbfe;background:#eff6ff;font-weight:500;}
/* ==================== HyperFrames HTML5 交互式动效中枢 ==================== */
.hf-console-wrap{position:relative;z-index:2;margin-top:36px;padding-bottom:56px;}

/* 悬浮微动效全息卡片 */
.hf-float-badge{
  position:absolute;z-index:10;
  display:inline-flex;align-items:center;gap:12px;
  padding:12px 18px;border-radius:16px;
  background:#ffffff;
  border:1.5px solid #bfdbfe;
  box-shadow:0 16px 36px rgba(15,23,42,.10), 0 2px 8px rgba(15,23,42,.04);
  color:#0f2963;
  transition:all .35s var(--ease);
}
.hf-float-top-right{
  top:-20px;right:20px;
  animation:hfFloatA 6s ease-in-out infinite;
}
.hf-float-bottom-left{
  bottom:35px;left:20px;
  animation:hfFloatB 7s ease-in-out infinite;
}
@keyframes hfFloatA{
  0%,100%{transform:translateY(0) rotate(0.5deg);}
  50%{transform:translateY(-12px) rotate(-1deg);}
}
@keyframes hfFloatB{
  0%,100%{transform:translateY(0) rotate(-0.5deg);}
  50%{transform:translateY(-10px) rotate(1deg);}
}
.badge-icon{
  width:38px;height:38px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  flex:none;font-size:18px;
}
.badge-icon.glow-cyan{
  background:#eff6ff;color:#2563eb;
  box-shadow:0 0 12px rgba(37,99,235,.2);
}
.badge-icon.glow-blue{
  background:#eff6ff;color:#1e40af;
  box-shadow:0 0 12px rgba(30,64,175,.2);
}
.badge-content{display:flex;flex-direction:column;text-align:left;}
.badge-content b{font-size:14px;color:#0f2963;letter-spacing:.3px;font-weight:700;}
.badge-content span{font-size:11.5px;color:#64748b;}
.badge-status-dot{
  width:8px;height:8px;border-radius:50%;background:#2563eb;flex:none;
  box-shadow:0 0 8px #2563eb;animation:hfPulse 2s infinite;
}
.badge-status-live{
  padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600;
  background:#ecfdf5;color:#059669;border:1px solid #a7f3d0;
}

/* 主动效视窗外壳 */
.hf-console{
  position:relative;
  background:#ffffff;
  border-radius:20px;
  border:1.5px solid #cbd5e1;
  box-shadow:0 25px 65px rgba(15,23,42,.10), 0 4px 16px rgba(15,23,42,.04);
  overflow:hidden;
  transform:perspective(1600px) rotateX(2deg);
  transform-origin:center bottom;
  transition:all .5s var(--ease);
}
.hf-console:hover{
  transform:perspective(1600px) rotateX(0deg);
  border-color:#93c5fd;
  box-shadow:0 35px 80px rgba(37,99,235,.15), 0 8px 24px rgba(37,99,235,.06);
}
.hf-bar{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 20px;
  background:#f8fafc;
  border-bottom:1px solid #e2e8f0;
}
.hf-dots{display:flex;align-items:center;gap:7px;}
.hf-dots i{width:10px;height:10px;border-radius:50%;display:block;}
.dot-red{background:#ff5f56;box-shadow:0 0 6px rgba(255,95,86,.4);}
.dot-yellow{background:#ffbd2e;box-shadow:0 0 6px rgba(255,189,46,.4);}
.dot-green{background:#27c93f;box-shadow:0 0 6px rgba(39,201,63,.4);}
.hf-bar-title{
  display:flex;align-items:center;gap:8px;
  font-size:13px;font-weight:700;color:#1e293b;letter-spacing:.4px;
}
.hf-bar-meta{display:flex;align-items:center;gap:12px;font-size:12px;color:#64748b;}
.pulse-beacon{
  width:7px;height:7px;border-radius:50%;background:#10b981;
  box-shadow:0 0 8px #10b981;animation:hfPulse 2s infinite;
}
@keyframes hfPulse{
  0%,100%{opacity:1;transform:scale(1);}
  50%{opacity:.5;transform:scale(1.2);}
}
.cluster-tag{
  font-style:normal;font-weight:600;font-size:11px;
  padding:2px 8px;border-radius:6px;
  background:#eff6ff;color:#1d4ed8;
  border:1px solid #bfdbfe;
}

/* 控制台主体面板 */
.hf-body{padding:24px 26px 28px;}

/* 3 指标卡片行 */
.hf-kpi-row{
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:20px;
}
.hf-kpi-card{
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:14px;padding:16px 18px;
  position:relative;overflow:hidden;
  transition:all .3s var(--ease);
}
.hf-kpi-card:hover{
  background:#f1f5f9;
  border-color:#bfdbfe;
}
.kpi-head{
  display:flex;align-items:center;justify-content:space-between;
  font-size:12.5px;color:#64748b;margin-bottom:8px;
}
.kpi-trend.up{color:#10b981;font-weight:600;}
.kpi-status-ok{color:#2563eb;font-weight:600;}
.kpi-chip{
  background:#fef3c7;color:#b45309;
  padding:2px 7px;border-radius:4px;font-size:11px;font-weight:700;
}
.kpi-num{
  display:flex;align-items:baseline;gap:8px;margin-bottom:12px;
}
.hf-counter{
  font-size:27px;font-weight:800;color:#0f172a;
  font-variant-numeric:tabular-nums;letter-spacing:.5px;
}
.kpi-num small{font-size:12px;color:#64748b;}
.kpi-progress{
  height:4px;width:100%;border-radius:2px;
  background:rgba(0,0,0,.06);overflow:hidden;
}
.kpi-bar{
  height:100%;border-radius:2px;
  background:linear-gradient(90deg,#1e40af,#2563eb);
  animation:hfBarGrow 1.5s var(--ease) forwards;
}
.kpi-bar.cyan{background:linear-gradient(90deg,#059669,#10b981);}
.kpi-bar.purple{background:linear-gradient(90deg,#d97706,#f59e0b);}
@keyframes hfBarGrow{from{width:0;}to{}}

/* 图表与实时流水行 */
.hf-chart-row{
  display:grid;grid-template-columns:1.55fr 1fr;gap:18px;
}
.hf-chart-panel{
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:14px;padding:18px 20px;
}
.chart-panel-header{
  display:flex;align-items:flex-start;justify-content:space-between;
  margin-bottom:16px;
}
.chart-title b{display:block;font-size:14.5px;color:#0f172a;margin-bottom:3px;}
.chart-title span{font-size:11.5px;color:#64748b;}
.chart-legend{display:flex;align-items:center;gap:14px;font-size:11.5px;color:#64748b;}
.legend-item{display:flex;align-items:center;gap:5px;}
.legend-item i{width:8px;height:8px;border-radius:50%;}
.legend-item .dot-cyan{background:#2563eb;}
.legend-item .dot-blue{background:#3b82f6;}

.chart-svg-wrap{position:relative;width:100%;height:150px;}
.hf-waveform{width:100%;height:120px;overflow:visible;}
.wave-pulse-dot{
  animation:hfWavePulse 4s ease-in-out infinite;
}
.wave-pulse-ring{
  animation:hfRingPulse 2s cubic-bezier(0.2,0.8,0.2,1) infinite;
}
@keyframes hfWavePulse{
  0%,100%{transform:scale(1);}
  50%{transform:scale(1.2);}
}
@keyframes hfRingPulse{
  0%{transform:scale(0.8);opacity:0.8;}
  100%{transform:scale(1.8);opacity:0;}
}
.chart-time-labels{
  display:flex;justify-content:space-between;
  margin-top:6px;font-size:11px;color:#94a3b8;
}

/* 实时考务动态流水 */
.hf-events-panel{
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:14px;padding:18px 18px;
  display:flex;flex-direction:column;
}
.events-panel-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:14px;
}
.events-panel-header b{font-size:14px;color:#0f172a;}
.live-tag{
  font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;
  background:rgba(239,68,68,.12);color:#dc2626;border:1px solid rgba(239,68,68,.25);
  letter-spacing:.6px;
}
.events-scroller{
  display:flex;flex-direction:column;gap:10px;
  overflow:hidden;max-height:140px;position:relative;
}
.event-item{
  display:flex;align-items:flex-start;gap:10px;
  padding:8px 10px;border-radius:8px;
  background:#ffffff;
  border:1px solid #e2e8f0;
  box-shadow:0 1px 4px rgba(15,23,42,.04);
  animation:hfSlideIn 0.5s ease-out;
}
@keyframes hfSlideIn{
  from{opacity:0;transform:translateY(10px);}
  to{opacity:1;transform:translateY(0);}
}
.event-time{
  font-size:11px;color:#2563eb;font-weight:600;font-variant-numeric:tabular-nums;
  padding-top:1px;flex:none;
}
.event-body{min-width:0;flex:1;}
.event-title{
  font-size:12px;font-weight:600;color:#0f172a;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.event-desc{font-size:11px;color:#64748b;margin-top:2px;}

/* ==================== 客户评价卡片 ==================== */
.testi-card{
  background:#ffffff;
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:32px 28px;
  display:flex;flex-direction:column;
  position:relative;overflow:hidden;
  transition:all .35s var(--ease);
}
.testi-card:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 45px rgba(14,42,92,.12);
  border-color:#bad7fc;
}
.testi-quote-mark{
  font-family:Georgia, serif;
  font-size:54px;line-height:.8;
  color:rgba(43,123,243,.2);
  margin-bottom:12px;user-select:none;
}
.testi-body{flex:1;}
.testi-text{
  font-size:15px;line-height:1.75;
  color:var(--ink-2);margin-bottom:18px;
}
.testi-highlight{
  display:flex;flex-wrap:wrap;gap:8px;
  margin-bottom:22px;padding-bottom:18px;
  border-bottom:1px dashed var(--line);
}
.testi-highlight span{
  font-size:12px;font-weight:600;
  padding:4px 10px;border-radius:6px;
  background:var(--bg-2);color:var(--blue-600);
}
.testi-author{
  display:flex;align-items:center;gap:14px;
}
.testi-avatar{
  width:52px;height:52px;border-radius:50%;
  object-fit:cover;flex:none;
  border:2px solid var(--white);
  box-shadow:0 4px 12px rgba(14,42,92,.15);
}
.testi-meta{display:flex;flex-direction:column;line-height:1.35;}
.testi-meta b{font-size:16px;color:var(--ink);font-weight:700;}
.testi-meta span{font-size:12.5px;color:var(--muted);margin-top:2px;}
.testi-stars{
  font-size:12px;color:#f59e0b;margin-top:4px;
  display:flex;align-items:center;gap:6px;
}
.testi-stars i{font-style:normal;font-size:11px;color:var(--muted-2);}

.testi-trust-banner{
  margin-top:44px;
  background:#ffffff;
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:20px 28px;
  display:flex;align-items:center;justify-content:space-between;
  gap:20px;
}
.trust-badge{
  display:flex;align-items:center;gap:12px;
  font-size:15px;color:var(--ink-2);
}
.trust-badge .ico{width:22px;height:22px;color:var(--blue-600);}
.trust-badge b{color:var(--blue-600);font-weight:700;}

@media (max-width:960px){
  .hf-chart-row{grid-template-columns:1fr;}
  .hf-kpi-row{grid-template-columns:1fr;}
  .hf-float-badge{display:none;}
  .testi-trust-banner{flex-direction:column;text-align:center;}
}

.hero-v2 .hero-stats{border-top:1px solid #e2e8f0;background:#ffffff;}

/* ==================== 证书自动签发引擎 ==================== */
.cert-auto{background:
  radial-gradient(800px 420px at 85% 0,rgba(43,123,243,.28),transparent 60%),
  radial-gradient(700px 400px at 8% 100%,rgba(34,211,238,.14),transparent 60%),
  linear-gradient(160deg,#040d22 0%,#071c45 55%,#0b2a63 100%);}
.auto-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.auto-card{position:relative;background:rgba(255,255,255,.045);border:1px solid rgba(120,170,255,.22);
  border-radius:var(--r);padding:30px 24px;transition:all .35s var(--ease);overflow:hidden;}
.auto-card::after{content:"";position:absolute;left:0;top:0;height:3px;width:100%;
  background:var(--grad-cyan);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease);}
.auto-card:hover{transform:translateY(-6px);background:rgba(90,162,255,.10);border-color:rgba(120,180,255,.45);}
.auto-card:hover::after{transform:scaleX(1);}
.auto-num{position:absolute;right:18px;top:12px;font-size:44px;font-weight:800;color:rgba(120,170,255,.14);
  font-variant-numeric:tabular-nums;line-height:1;}
.auto-ico{width:50px;height:50px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  background:rgba(34,211,238,.14);color:var(--cyan);margin-bottom:18px;}
.auto-card h3{color:#fff;font-size:19px;margin-bottom:12px;}
.auto-card p{font-size:14px;color:rgba(205,224,252,.78);line-height:1.75;margin-bottom:18px;}
.auto-chip{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#8ff0ff;
  border:1px dashed rgba(34,211,238,.45);padding:6px 13px;border-radius:999px;}
.auto-chain{display:flex;align-items:stretch;gap:0;margin-top:34px;background:rgba(4,13,34,.45);
  border:1px solid rgba(120,170,255,.2);border-radius:var(--r-lg);padding:26px 20px;}
.chain-node{flex:1;text-align:center;position:relative;padding:0 8px;}
.chain-node i{display:block;width:34px;height:34px;margin:0 auto 10px;border-radius:50%;
  background:var(--grad-cyan);color:#04122e;font-style:normal;font-weight:800;font-size:15px;
  display:flex;align-items:center;justify-content:center;}
.chain-node b{display:block;color:#fff;font-size:15.5px;margin-bottom:5px;}
.chain-node span{font-size:12.5px;color:rgba(190,214,250,.66);}
.chain-arrow{flex:none;width:46px;display:flex;align-items:center;justify-content:center;position:relative;}
.chain-arrow::before{content:"";width:100%;height:2px;background:linear-gradient(90deg,rgba(34,211,238,.15),rgba(34,211,238,.75));}
.chain-arrow::after{content:"";position:absolute;right:6px;width:8px;height:8px;border-top:2px solid rgba(34,211,238,.9);
  border-right:2px solid rgba(34,211,238,.9);transform:rotate(45deg);}
.auto-note{margin-top:26px;text-align:center;font-size:13.5px;color:rgba(190,212,245,.6);max-width:860px;margin-left:auto;margin-right:auto;line-height:1.8;}

/* ==================== 客户 LOGO 墙 ==================== */
.clients-band{padding-bottom:34px;}
.clients-wall{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;}
.client-logo{background:#fff;border:1px solid var(--line);border-radius:14px;height:108px;
  display:flex;align-items:center;justify-content:center;padding:12px 18px;overflow:hidden;
  transition:all .3s var(--ease);}
.client-logo img{max-width:86%;max-height:82%;object-fit:contain;filter:grayscale(1);opacity:.62;transition:all .3s var(--ease);}
.client-logo:hover{border-color:#c9dcf7;box-shadow:var(--shadow-sm);transform:translateY(-3px);}
.client-logo:hover img{filter:grayscale(0);opacity:1;}
.clients-note{text-align:center;margin-top:22px;font-size:13px;color:var(--muted-2);}

@media (max-width:1180px){
  .clients-wall{grid-template-columns:repeat(4,1fr);gap:14px;}
}
@media (max-width:1024px){
  .hero-v2 h1, .hero-v2 h1.hero-rotator{font-size:42px;}
  .rotator-track{min-height:58px;}
  .auto-grid{grid-template-columns:repeat(2,1fr);}
  .auto-chain{flex-wrap:wrap;gap:18px;}
  .chain-arrow{display:none;}
  .chain-node{flex:1 1 30%;}
}
@media (max-width:820px){
  .hero-v2{min-height:0;}
  .hero-v2-inner{padding:56px 0 8px;}
  .hero-logo{height:48px;margin-bottom:24px;}
  .hero-v2 h1, .hero-v2 h1.hero-rotator{font-size:28px;}
  .rotator-track{min-height:46px;}
  .rotator-item{white-space:normal;text-align:center;}
  .auto-grid{grid-template-columns:1fr;}
  .chain-node{flex:1 1 45%;}
  .clients-wall{grid-template-columns:repeat(3,1fr);gap:12px;}
  .client-logo{height:84px;padding:10px 14px;}
}
@media (max-width:520px){
  .hero-v2 h1, .hero-v2 h1.hero-rotator{font-size:22px;letter-spacing:0.5px;}
  .rotator-track{min-height:64px;}
  .clients-wall{grid-template-columns:repeat(2,1fr);}
}
