/* =========================================================
   智裕云 · 设计系统 (移动优先 / 浅色明亮 / 简洁大气)
   Tokens → 基础 → 组件 → 响应式增强
   ========================================================= */
:root{
  /* 背景 (浅色明亮) */
  --bg:#f5f8fc; --bg-2:#eef3f9; --bg-3:#ffffff;
  /* 表面 */
  --surface:#ffffff;
  --surface-2:#f1f6fb;
  --border:rgba(15,23,42,.09);
  --border-strong:rgba(15,23,42,.18);
  /* 文字 (深色) */
  --text:#0f1b2d; --text-2:#46566b; --text-3:#6b7a90;
  /* 品牌 / 语义 (深蓝色调) */
  --brand:#1e40af; --brand-2:#2563eb;
  --ok:#0f9d6f; --warn:#d98b1a; --bad:#e0556b;
  --grad:linear-gradient(135deg,#1e40af,#2563eb);
  --grad-soft:linear-gradient(135deg,rgba(30,64,175,.14),rgba(37,99,235,.14));
  /* 形状 / 阴影 (浅色柔和) */
  --r:16px; --r-sm:10px;
  --shadow:0 8px 24px rgba(20,40,70,.09);
  --shadow-lg:0 18px 44px rgba(20,40,70,.14);
  /* 字号刻度 (8px 基线) */
  --fs-12:12px; --fs-14:14px; --fs-16:16px; --fs-18:18px; --fs-20:20px;
  --fs-24:24px; --fs-30:30px; --fs-38:38px; --fs-48:48px;
  /* 字体 */
  --font:"Inter",-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  --space:8px;
}
/* ---------- 基础 ---------- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font);
  color:var(--text-2);
  background:
    radial-gradient(1100px 560px at 85% -10%,rgba(37,99,235,.16),transparent),
    radial-gradient(900px 480px at 5% 12%,rgba(30,64,175,.13),transparent),
    linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 55%,var(--bg) 100%);
  background-attachment:fixed;
  line-height:1.75;font-size:var(--fs-16);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
.container{max-width:1180px;margin:0 auto;padding:0 20px}
img,svg{max-width:100%}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 24px;border-radius:var(--r-sm);font-size:var(--fs-16);font-weight:600;
  cursor:pointer;transition:transform .22s ease,box-shadow .22s ease,background .22s ease;border:1px solid transparent;
}
.btn-primary{background:var(--grad);color:#ffffff;box-shadow:var(--shadow)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.btn-primary:active{transform:scale(.97)}
.btn-ghost{border-color:var(--border-strong);color:var(--text)}
.btn-ghost:hover{background:var(--surface-2);border-color:var(--brand)}

/* ---------- 导航 (移动优先：链接可横滑，CTA 宽屏显示) ---------- */
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:60px;gap:12px;transition:height .25s var(--ease)}
.logo{display:flex;align-items:center;gap:9px;font-weight:800;color:var(--text);font-size:var(--fs-20);white-space:nowrap;letter-spacing:-.3px}
.logo .mark{width:26px;height:26px;border-radius:50%;object-fit:cover;flex-shrink:0;display:block;margin-right:2px}
.logo .grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.nav-links{display:flex;gap:2px;align-items:center;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.nav-links::-webkit-scrollbar{display:none}
.nav-links a{color:var(--text-3);padding:8px 10px;border-radius:var(--r-sm);font-size:var(--fs-14);white-space:nowrap;transition:.2s}
.nav-links a:hover{color:var(--text);background:var(--surface)}
.nav-links a.active{color:var(--text);background:var(--grad-soft);font-weight:600}
@media(min-width:768px){.nav-links a{padding:8px 14px;font-size:var(--fs-15)}.logo .mark{width:32px;height:32px}.logo{font-size:var(--fs-22)}}

/* ---------- HERO (移动优先：单列) ---------- */
.hero-wrap{padding:56px 0 32px}
.hero{display:grid;grid-template-columns:1fr;gap:36px;align-items:center}
.hero-badge{display:inline-block;padding:7px 15px;border-radius:999px;background:var(--grad-soft);border:1px solid var(--border);color:var(--text);font-size:var(--fs-14);font-weight:600;margin-bottom:18px}
.hero h1{font-size:var(--fs-30);line-height:1.22;color:var(--text);font-weight:800;letter-spacing:-.5px}
.hero h1 .grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{margin-top:16px;font-size:var(--fs-16);color:var(--text-2);max-width:540px}
.hero-btns{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap}
.hero-visual .hero-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:22px;box-shadow:var(--shadow-lg)}
.hero-visual .hc-title{color:var(--text);font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:8px;font-size:var(--fs-16)}
/* KPI 行 (替代原 hero-stats) */
.kpi-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.kpi{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:14px}
.kpi .val{font-size:var(--fs-24);font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.1}
.kpi .lbl{font-size:var(--fs-12);color:var(--text-3);margin-top:4px}
.kpi-note{margin-top:10px;font-size:var(--fs-12);color:var(--text-3);text-align:center;letter-spacing:.2px;display:flex;align-items:center;justify-content:center;gap:6px}
.kpi-note::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok);flex:none;animation:kpulse 1.8s ease-in-out infinite}
@keyframes kpulse{0%,100%{opacity:1}50%{opacity:.35}}

/* ---------- SECTION ---------- */
.sec{padding:64px 0}
.sec-alt{background:linear-gradient(180deg,transparent,rgba(15,23,42,.025),transparent);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.sec-head{text-align:center;max-width:720px;margin:0 auto 40px}
.sec-title{font-size:var(--fs-30);font-weight:800;color:var(--text);letter-spacing:-.5px;margin:0;line-height:1.25}
.sec-title .grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.sec-sub{margin-top:12px;color:var(--text-3);font-size:var(--fs-16)}

/* ---------- 产品矩阵 ---------- */
.matrix-grid{display:grid;grid-template-columns:1fr;gap:18px}
.m-card{background:var(--surface);border:1px solid var(--border);border-top:3px solid transparent;border-radius:var(--r);padding:22px;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background .22s ease;display:flex;flex-direction:column}
.m-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);filter:brightness(.97)}
.m-ico{font-size:30px;margin-bottom:10px}.m-ico-imgbox{line-height:0}.m-ico-img{width:34px;height:34px;border-radius:50%;object-fit:cover;display:inline-block}
.m-name{font-size:var(--fs-20);font-weight:700;color:var(--text)}
.m-desc{margin-top:8px;font-size:var(--fs-14);color:var(--text-2);flex:1}
.m-badge{display:inline-block;margin-top:14px;padding:5px 14px;border-radius:999px;font-size:var(--fs-14);font-weight:600;width:fit-content}
.m-badge.green{background:rgba(15,157,111,.12);color:var(--ok);border:1px solid rgba(15,157,111,.3)}
.m-badge.blue{background:rgba(31,159,224,.12);color:var(--brand-2);border:1px solid rgba(31,159,224,.3)}
.m-badge.orange{background:rgba(217,139,26,.12);color:var(--warn);border:1px solid rgba(217,139,26,.3)}
/* 产品矩阵：6 个卡片各配色系背景 + 顶部色条（与产品介绍页同一套色系） */
.m-yun{background:#dbeafe;border-top-color:#2563eb}
.m-tu{background:#f3e8ff;border-top-color:#7c3aed}
.m-knife{background:#ccfbf1;border-top-color:#0d9488}
.m-shop{background:#ffedd5;border-top-color:#d98b1a}
.m-ai{background:#c7d2fe;border-top-color:#4f46e5}
.m-craftsman{background:#dcfce7;border-top-color:#16a34a}
/* 徽章改白底彩字：半透明底色在有色卡片上会被稀释 */
.m-badge.green{background:#fff;color:var(--ok);border:1px solid rgba(15,157,111,.35)}
.m-badge.blue{background:#fff;color:var(--brand-2);border:1px solid rgba(37,99,235,.35)}
.m-badge.orange{background:#fff;color:var(--warn);border:1px solid rgba(217,139,26,.35)}
.m-link{margin-top:14px;color:var(--brand);font-size:var(--fs-14);font-weight:600;display:inline-flex;align-items:center;gap:6px;transition:gap .2s}
.m-link:hover{gap:10px}

/* ---------- 产品介绍 ---------- */
/* 产品块：每个产品不同淡色背景 + 左侧品牌色条，便于区分 */
.prod{padding:36px 14px;border-radius:var(--r);margin-bottom:18px;position:relative;overflow:hidden}
.prod:last-child{margin-bottom:0}
.prod::before{content:;position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent,var(--brand))}
@media(min-width:768px){.prod{padding:44px 24px;margin-bottom:20px}}
.prod#yun{background:#dbeafe;--accent:#2563eb}
.prod#tu{background:#f3e8ff;--accent:#7c3aed}
.prod#knife{background:#ccfbf1;--accent:#0d9488}
.prod#shop{background:#ffedd5;--accent:#d98b1a}
.prod#ai{background:#c7d2fe;--accent:#4f46e5}
.prod#craftsman{background:#dcfce7;--accent:#16a34a}
.prod-head{display:flex;align-items:center;gap:14px;margin-bottom:6px;flex-wrap:wrap}
.prod-ico{font-size:34px}
.prod-ico-img{width:34px;height:34px;border-radius:50%;object-fit:cover;flex-shrink:0;display:inline-block}
.prod-name{font-size:var(--fs-24);font-weight:800;color:var(--text);margin:0;line-height:1.3}
.prod-tag{margin-left:auto;font-size:var(--fs-13);padding:5px 13px;border-radius:999px;background:var(--grad-soft);border:1px solid var(--border);color:var(--text);white-space:nowrap}
.prod-desc{color:var(--text-2);font-size:var(--fs-16);max-width:760px;margin-bottom:22px}
/* 对比 */
.comp{display:grid;grid-template-columns:1fr;gap:14px}
.comp-col{border-radius:var(--r-sm);padding:18px;border:1px solid var(--border)}
.comp-old{background:#fee2e2}
.comp-new{background:#d1fae5;border-color:rgba(16,185,129,.35)}
.comp-col h3{font-size:var(--fs-15);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.comp-old h3{color:var(--bad)}.comp-new h3{color:var(--ok)}
.comp-col ul{list-style:none}
.comp-col li{font-size:var(--fs-14);padding:6px 0 6px 22px;position:relative;color:var(--text-2)}
.comp-old li::before{content:"✕";position:absolute;left:0;color:var(--bad)}
.comp-new li::before{content:"✓";position:absolute;left:0;color:var(--ok)}
/* SVG 对比图容器 */
.chart{margin:18px auto 0;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:18px}
.chart svg{width:100%;height:auto;display:block}
.chart .legend{display:flex;gap:18px;justify-content:center;margin-top:10px;font-size:var(--fs-13);color:var(--text-3)}
.chart .legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}

/* ---------- 功能展示轮播 (左右切换) ---------- */
.fs{margin:26px auto 0;max-width:480px}
.fs-head{display:flex;align-items:center;gap:8px;margin-bottom:14px;color:var(--text);font-weight:700;font-size:var(--fs-16)}
.fs-head .bar{width:4px;height:16px;border-radius:2px;background:var(--grad)}
.fs-window{position:relative;overflow:hidden;border-radius:var(--r)}
.fs-track{display:flex;transition:transform .55s var(--ease)}
.fs-slide{flex:0 0 100%;padding:6px;box-sizing:border-box}
/* fs-slide 始终单张大图，靠 main.js per=1 实现左右滑动轮播 */
.fs-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:20px;display:flex;flex-direction:column;gap:12px;height:100%;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.fs-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--border-strong)}
.fs-ico{width:46px;height:46px;border-radius:12px;background:var(--grad-soft);display:flex;align-items:center;justify-content:center;font-size:24px;flex:none}
.fs-title{font-size:var(--fs-16);font-weight:700;color:var(--text)}
.fs-desc{font-size:var(--fs-14);color:var(--text-2);line-height:1.6}
.fs-prev,.fs-next{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:rgba(255,255,255,.92);color:var(--text);font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:5;box-shadow:var(--shadow);transition:transform .2s ease,background .2s ease,color .2s ease}
.fs-prev{left:4px}.fs-next{right:4px}
.fs-prev:hover,.fs-next:hover{background:var(--grad);color:#fff;border-color:transparent}
.fs-prev:active,.fs-next:active{transform:translateY(-50%) scale(.92)}
.fs-prev[disabled],.fs-next[disabled]{opacity:.35;cursor:default;background:rgba(255,255,255,.92);color:var(--text)}
.fs-dots{display:flex;gap:8px;justify-content:center;margin-top:14px}
.fs-dots button{width:8px;height:8px;border-radius:50%;border:none;background:var(--border-strong);cursor:pointer;padding:0;transition:width .25s ease,background .25s ease}
.fs-dots button.active{background:var(--brand);width:22px;border-radius:4px}
/* 功能轮播·截图卡片（云管家真实界面） */
.fs-shot{padding:10px;background:linear-gradient(180deg,#fff,#f6faff)}
.fs-shot img{width:100%;height:auto;border-radius:14px;display:block;box-shadow:0 10px 30px rgba(20,40,70,.16);border:1px solid var(--border)}


/* ---------- 客户案例 ---------- */
.case-grid{display:grid;grid-template-columns:1fr;gap:20px}
.case-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;gap:14px;transition:transform .22s ease,border-color .22s ease,box-shadow .22s}
.case-card:hover{transform:translateY(-4px);border-color:var(--border-strong);box-shadow:var(--shadow)}
.case-tag{font-size:var(--fs-12);font-weight:600;color:var(--brand);background:var(--grad-soft);padding:4px 12px;border-radius:999px;width:fit-content}
.case-card h2{font-size:var(--fs-18);color:var(--text);line-height:1.4}
.case-row{font-size:var(--fs-14)}
.case-row .k{color:var(--text-3);font-weight:600;display:block;margin-bottom:3px}
.case-row .v{color:var(--text-2)}
.case-gain{margin-top:auto;background:rgba(52,211,153,.08);border:1px solid rgba(52,211,153,.25);border-radius:var(--r-sm);padding:14px;font-size:var(--fs-14);color:var(--text-2)}
.case-gain b{color:var(--ok);font-size:var(--fs-18);display:block;margin-bottom:2px}
/* 案例 KPI 大数字 */
.case-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:2px 0 4px}
.case-kpi .k{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:12px;text-align:center}
.case-kpi .k .n{font-size:var(--fs-20);font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.1}
.case-kpi .k .t{font-size:var(--fs-12);color:var(--text-3);margin-top:3px}
/* 案例 before/after 对比小图 */
.case-chart{margin-top:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:16px 16px 10px}
.case-chart svg{width:100%;height:auto;display:block}
.case-chart .cap{margin-top:6px;text-align:center;font-size:var(--fs-13);color:var(--text-3)}
.case-chart .cap b{color:var(--text)}

/* ---------- 架构图 ---------- */
.arch-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:24px;overflow-x:auto}
.arch-wrap svg{width:100%;height:auto;display:block;min-width:640px}
.arch-note{margin-top:16px;color:var(--text-3);font-size:var(--fs-14);text-align:center}

/* ---------- 时间线 ---------- */
.timeline{position:relative;max-width:820px;margin:0 auto;padding-left:8px}
.timeline::before{content:"";position:absolute;left:14px;top:6px;bottom:6px;width:2px;background:var(--grad)}
.tl-item{position:relative;padding:0 0 28px 46px}
.tl-dot{position:absolute;left:6px;top:4px;width:18px;height:18px;border-radius:50%;background:var(--grad);box-shadow:0 0 0 4px rgba(45,212,191,.18)}
.tl-date{font-weight:800;color:var(--text);font-size:var(--fs-16)}
.tl-body{color:var(--text-3);font-size:var(--fs-15);margin-top:4px}

/* ---------- CTA / 页脚 ---------- */
.cta{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:48px 24px}
.cta h2{font-size:var(--fs-24);color:var(--text);font-weight:800}
.cta p{color:var(--text-3);margin:12px 0 22px}
.footer{background:var(--bg-3);border-top:1px solid var(--border);padding:50px 0 24px;margin-top:36px}
.footer-inner{display:grid;grid-template-columns:1fr;gap:26px}
.footer-col h3{color:var(--text);font-size:var(--fs-15);margin-bottom:12px}
.footer-col a,.footer-col p{display:block;color:var(--text-3);font-size:var(--fs-14);padding:4px 0}
.footer-col a:hover{color:var(--text)}
.footer-col .brand{font-size:var(--fs-18);font-weight:800;color:var(--text);margin-bottom:10px;display:flex;align-items:center;gap:8px}.brand-mark{width:26px;height:26px;border-radius:50%;object-fit:cover;flex:none}
.footer-bot{border-top:1px solid var(--border);margin-top:30px;padding-top:18px;text-align:center;color:var(--text-3);font-size:var(--fs-13)}

/* ---------- 联系我们 / 微信公众号 / 在线咨询 ---------- */
.contact{display:grid;grid-template-columns:1fr;gap:22px}
.contact-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:26px}
.contact-card h2{font-size:var(--fs-20);color:var(--text);margin-bottom:6px}
.contact-card .c-sub{color:var(--text-3);font-size:var(--fs-14);margin-bottom:18px}
.wx-qr{display:flex;flex-direction:column;align-items:center;gap:12px}
.wx-qr img{width:168px;height:168px;border-radius:12px;background:#fff;padding:10px;border:1px solid var(--border)}
.qr-cap{font-size:var(--fs-13);color:var(--text-3);text-align:center}
.qr-cap b{color:var(--text)}
.contact-list{list-style:none;display:flex;flex-direction:column;gap:15px}
.contact-list li{display:flex;gap:12px;align-items:flex-start;font-size:var(--fs-15);color:var(--text-2)}
.contact-list .ic{font-size:18px;line-height:1.45;flex:none}
.contact-list b{color:var(--text);font-weight:700}
.contact-list a{color:var(--brand)}
.contact-list .ph{color:var(--warn);font-weight:600}
/* 浮动在线咨询 */
.float-cta{position:fixed;right:18px;bottom:18px;z-index:90;display:inline-flex;align-items:center;gap:8px;padding:13px 18px;border:none;border-radius:999px;background:var(--grad);color:#04121f;font-size:var(--fs-14);font-weight:700;cursor:pointer;box-shadow:var(--shadow-lg);transition:transform .2s ease,box-shadow .2s ease}
.float-cta:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 28px 70px rgba(0,0,0,.5)}
.float-cta:active{transform:scale(.97)}
.float-panel{position:fixed;right:18px;bottom:76px;z-index:90;width:min(320px,calc(100vw - 36px));background:var(--bg-3);border:1px solid var(--border-strong);border-radius:var(--r);padding:18px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:14px}
.float-panel[hidden]{display:none}
.fp-head{font-size:var(--fs-16);font-weight:700;color:var(--text)}
.fp-qr{display:flex;justify-content:center}
.fp-qr img{width:140px;height:140px;background:#fff;border-radius:10px;padding:8px}
.fp-list{display:flex;flex-direction:column;gap:10px;font-size:var(--fs-14);color:var(--text-2)}
.fp-list a{color:var(--brand)}
.fp-list .ph{color:var(--warn);font-weight:600}
.fp-note{font-size:var(--fs-12);color:var(--text-3);text-align:center}
@media(min-width:768px){.contact{grid-template-columns:1fr 1fr}}

/* =========================================================
   响应式增强 (移动优先：向上增强)
   ========================================================= */
@media(min-width:576px){
  .matrix-grid{grid-template-columns:1fr 1fr}
  .case-grid{grid-template-columns:1fr 1fr}
  .footer-inner{grid-template-columns:1fr 1fr}
}
@media(min-width:768px){
  .hero-wrap{padding:74px 0 40px}
  .hero{grid-template-columns:1.05fr .95fr;gap:48px}
  .hero h1{font-size:var(--fs-38)}
  .sec{padding:76px 0}
  .sec-title{font-size:var(--fs-38)}
  .comp{grid-template-columns:1fr 1fr}
  .prod-name{font-size:var(--fs-30)}
}
@media(min-width:992px){
  .matrix-grid{grid-template-columns:repeat(3,1fr)}
  .footer-inner{grid-template-columns:1.4fr 1fr 1fr 1fr}
  .hero h1{font-size:var(--fs-48)}
}

/* =========================================================
   交互动画系统 (reveal / 图表绘制 / 导航滚动) — 渐进增强
   ========================================================= */
/* about 旧深色调色别名补全，避免未定义变量导致文字异常 */
:root{--on:var(--text);--on2:var(--text-2);--on3:var(--text-3)}
:root{--ease:cubic-bezier(.22,.7,.25,1)}
/* 滚动进入：仅 JS 开启时初始隐藏 */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
/* 导航滚动缩紧 + 投影 */
.nav.scrolled{box-shadow:0 6px 22px rgba(20,40,70,.10);background:rgba(255,255,255,.92)}
.nav.scrolled .nav-inner{height:54px}
/* 图表网格背景（数据感） */
.chart,.case-chart{position:relative;overflow:hidden}
.chart::before,.case-chart::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background-image:linear-gradient(rgba(15,23,42,.045) 1px,transparent 1px);background-size:100% 26px}
/* 柱状图进入生长动画 */
.chart svg,.case-chart svg{overflow:visible}
.js .anim svg rect{transform:scaleY(0);transform-box:fill-box;transform-origin:50% 100%;
  transition:transform .9s var(--ease);filter:drop-shadow(0 6px 9px rgba(20,40,70,.12))}
.js .anim.in svg rect{transform:scaleY(1)}
/* 环形进度进入动画 */
.anim-ring{stroke-dasharray:289;stroke-dashoffset:289;transition:stroke-dashoffset 1.3s var(--ease)}
.anim.in .anim-ring{stroke-dashoffset:58}
/* 卡片 hover 渐变描边光晕 */
.m-card,.case-card{position:relative}
.m-card::after,.case-card::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;
  background:linear-gradient(135deg,rgba(20,194,171,.55),rgba(42,163,232,.55));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  opacity:0;transition:opacity .3s ease;pointer-events:none}
.m-card:hover::after,.case-card:hover::after{opacity:1}

/* 电话可点击拨号（占位符已替换为真实号码） */
.contact-list a.ph,.fp-list a.ph,.footer-col a.ph{text-decoration:none;border-bottom:1px dashed currentColor;padding-bottom:1px}
.contact-list a.ph:hover,.fp-list a.ph:hover,.footer-col a.ph:hover{opacity:.85}
.contact-list a.ph:active,.fp-list a.ph:active,.footer-col a.ph:active{opacity:.6}

/* 企业微信二维码块（联系方式卡 + 浮动面板） */
.wecom-item{align-items:flex-start}
.wecom{display:flex;gap:12px;align-items:center;flex:1;min-width:0}
.wecom-qr{width:88px;height:88px;border-radius:8px;background:#fff;padding:6px;border:1px solid var(--border);flex:none;object-fit:contain}
.wecom-qr-sm{width:60px;height:60px;border-radius:6px;background:#fff;padding:4px;border:1px solid var(--border);flex:none;object-fit:contain;margin-right:10px}
.wecom-text{display:flex;flex-direction:column;gap:4px;min-width:0}
.wecom-text b{color:var(--text);font-size:var(--fs-15)}
.c-sub-line{font-size:var(--fs-12);color:var(--text-3);line-height:1.45}
.wecom-row{display:flex;gap:8px;align-items:center}

/* 公众号自家 Logo（图 1 绿色循环箭头，替代通用 emoji） */
.gzh-ico{width:24px;height:24px;vertical-align:middle;margin-right:8px;border-radius:6px;object-fit:cover}
.gzh-ico-sm{width:20px;height:20px;vertical-align:middle;margin-right:6px;border-radius:5px;object-fit:cover}
.gzh-row{display:inline-flex;align-items:center}

/* 企业微信官方 Logo（与公众号 Logo 对称） */
.wecom-brand{width:22px;height:22px;vertical-align:middle;display:inline-block;object-fit:contain}
.wecom-brand-sm{width:18px;height:18px;vertical-align:middle;margin-right:4px;display:inline-block;object-fit:contain}

/* 卡片内多个 m-badge 横排时的间距 */
.m-badge + .m-badge{margin-left:6px}
