/* WebCheck 官网 —— 与产品同一套设计语言：石板灰 + 一点绿（来自 logo），大留白，1px 边，浅阴影。
   原则：每屏一个重点；数字大、标签小；不用装饰性渐变和插画，用真实的产品结构做"图"。 */
:root{
  --bg:#f5f6f9;--surface:#fff;--surface-2:#fafbfc;--surface-3:#f1f3f7;
  --bd:#e4e7ec;--bd-strong:#d3d8e0;
  --txt:#101828;--txt-2:#344054;--mut:#667085;--faint:#8a94a6;
  --ink:#2f3b45;--ink-2:#232b31;           /* logo 的深灰蓝 */
  --green:#2f7a47;--green-soft:#e9f4ec;--green-txt:#256b3c;   /* logo 的绿 */
  --ok:#0f9d6e;--warn:#d97706;--err:#dc2626;--warn-soft:#fff5e6;--err-soft:#fdecec;
  --r:12px;--r-lg:18px;--r-pill:999px;
  --sh-1:0 1px 2px rgba(16,24,40,.05);--sh-2:0 8px 28px -8px rgba(16,24,40,.12),0 1px 2px rgba(16,24,40,.05);
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Microsoft YaHei","PingFang SC",sans-serif;
  --mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font:15px/1.65 var(--sans);color:var(--txt);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:var(--ink);text-decoration:none}
a:hover{color:var(--ink-2)}
img{max-width:100%;display:block}
h1,h2,h3,h4{margin:0;letter-spacing:-.02em;line-height:1.2;color:var(--txt)}
p{margin:0}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.narrow{max-width:760px}
.mono{font-family:var(--mono)}
.muted{color:var(--mut)}
.eyebrow{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--green-txt);margin-bottom:14px}
.eyebrow.dim{color:var(--mut)}

/* 按钮 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 20px;border-radius:10px;
  border:1px solid var(--bd-strong);background:var(--surface);color:var(--txt);font-weight:600;font-size:14.5px;
  transition:background .15s,border-color .15s,transform .15s var(--ease),box-shadow .15s;white-space:nowrap;cursor:pointer}
.btn:hover{background:var(--surface-3);border-color:var(--faint);color:var(--txt)}
.btn.pri{background:var(--ink);border-color:var(--ink);color:#fff}
.btn.pri:hover{background:var(--ink-2);border-color:var(--ink-2);color:#fff;box-shadow:0 6px 18px -6px rgba(47,59,69,.5);transform:translateY(-1px)}
.btn.lg{height:50px;padding:0 26px;font-size:15.5px;border-radius:12px}
.btn.ghost{border-color:transparent;background:transparent}
.btn.ghost:hover{background:var(--surface-3)}
.btn svg{width:16px;height:16px}

/* 顶栏 */
.nav{position:sticky;top:0;z-index:40;background:rgba(245,246,249,.85);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid transparent;transition:border-color .2s}
.nav.scrolled{border-bottom-color:var(--bd)}
.nav .wrap{display:flex;align-items:center;gap:28px;height:64px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;letter-spacing:-.01em;color:var(--txt)}
.brand img{width:28px;height:28px}
.nav-links{display:flex;gap:4px;margin-left:8px}
.nav-links a{padding:8px 12px;border-radius:8px;font-size:14px;color:var(--txt-2)}
.nav-links a:hover,.nav-links a.on{background:var(--surface-3);color:var(--txt)}
.nav-cta{margin-left:auto;display:flex;gap:8px;align-items:center}
.nav-cta .btn{height:38px;padding:0 16px;font-size:14px}
.nav-toggle{display:none;margin-left:auto;width:40px;height:40px;border:0;background:none;border-radius:8px;cursor:pointer;align-items:center;justify-content:center}
.nav-toggle svg{width:22px;height:22px;color:var(--txt)}

/* ── 手机抽屉：右侧滑出。在 header 之外（见 build.php 的注释）。
   布局：顶部 logo + 关闭；中间编号菜单（大标签 + 一句话副标题 + 箭头）；底部两个动作钉住。 ── */
.drawer-bg{position:fixed;inset:0;z-index:60;background:rgba(16,24,40,.42);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  opacity:0;transition:opacity .25s;pointer-events:none}
.drawer-bg[hidden]{display:block}
body.drawer-open .drawer-bg{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:61;width:min(86vw,360px);background:var(--surface);
  display:flex;flex-direction:column;box-shadow:-24px 0 60px -30px rgba(16,24,40,.35);
  transform:translateX(100%);visibility:hidden;transition:transform .32s var(--ease),visibility 0s linear .32s;
  padding-bottom:env(safe-area-inset-bottom)}
body.drawer-open .drawer{transform:none;visibility:visible;transition:transform .32s var(--ease)}
body.drawer-open{overflow:hidden}
.dr-head{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 14px 0 20px;border-bottom:1px solid var(--bd);flex:none}
.dr-head .brand{font-size:16px}
.dr-close{width:40px;height:40px;border:0;border-radius:10px;background:var(--surface-3);color:var(--txt);display:grid;place-items:center;cursor:pointer}
.dr-close svg{width:18px;height:18px}
.dr-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:8px 8px}
.dr-item{display:grid;grid-template-columns:34px 1fr 20px;align-items:center;gap:8px;padding:16px 12px;border-radius:12px;color:var(--txt);
  transition:background .15s}
.dr-item:hover,.dr-item:active{background:var(--surface-3)}
.dr-item[aria-current="page"]{background:var(--green-soft)}
.dr-item[aria-current="page"] .dr-n{color:var(--green-txt)}
.dr-n{font-family:var(--mono);font-size:11.5px;color:var(--faint);letter-spacing:.06em}
.dr-t{display:flex;flex-direction:column;gap:3px;min-width:0}
.dr-t b{font-size:18px;font-weight:650;letter-spacing:-.01em;line-height:1.2}
.dr-t small{font-size:12.5px;color:var(--mut);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dr-item svg{width:18px;height:18px;color:var(--faint)}
.dr-foot{flex:none;padding:16px 20px 18px;border-top:1px solid var(--bd);display:flex;flex-direction:column;gap:10px;background:var(--surface-2)}
.dr-foot .btn{width:100%}
.dr-meta{margin:6px 0 0;font-size:12.5px;color:var(--mut);text-align:center}
.dr-meta a{color:var(--txt-2)}
@media(min-width:721px){.drawer,.drawer-bg{display:none}}
@media(prefers-reduced-motion:reduce){.drawer,.drawer-bg{transition:none}}

/* Hero：居中版式 + 全宽脉搏线（时间轴上的循环扫描动画）。
   高度预算按 1920×1080 一屏：顶栏 64 + 文案区 ≈ 420 + 线 220 ≈ 700，留出信任条露头。 */
.hero{position:relative;padding:64px 0 0;overflow:hidden}
.hero::before{content:'';position:absolute;left:50%;top:-280px;width:1100px;height:600px;transform:translateX(-50%);pointer-events:none;
  background:radial-gradient(closest-side,#e9edf1 0%,rgba(233,237,241,0) 100%)}
.hero-in{position:relative;text-align:center;max-width:820px}
.hero .eyebrow{margin-bottom:18px}
.hero h1{font-size:clamp(36px,4.6vw,64px);font-weight:760;letter-spacing:-.045em;line-height:1.04}
.hero h1 em{font-style:normal;color:var(--green)}
.hero .lead{margin:22px auto 26px;font-size:clamp(16px,1.4vw,18px);line-height:1.7;color:var(--txt-2);max-width:600px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:center}
.hero .fine{margin-top:14px;font-size:13px;color:var(--mut)}
.hero .fine b{color:var(--txt-2);font-weight:600}

/* ── 脉搏线：一次扫描 = var(--dur)，所有动画同周期、无限循环 ── */
.pulse-wrap{position:relative;margin-top:22px;height:clamp(150px,15vw,220px)}
.pulse-svg{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible}
.pulse-svg text{font-family:var(--sans);font-size:var(--fs,12.5px);fill:var(--mut)}
.pulse-svg.pulse-m{display:none}
.pulse-svg .base{stroke:var(--bd);stroke-width:1}
/* 线：pathLength=1000 归一化，offset 1000→0 与扫描点同速；最后 8% 淡出 */
.pulse-svg .line{fill:none;stroke:var(--ink);stroke-width:calc(2.2px * var(--sw,1));stroke-linejoin:round;stroke-linecap:round;
  stroke-dasharray:1000;animation:draw var(--dur) linear infinite}
@keyframes draw{0%{stroke-dashoffset:1000;opacity:1}94%{opacity:1}100%{stroke-dashoffset:0;opacity:0}}
/* 扫描头：光晕 + 实心点 + 一根淡竖线 */
.pulse-svg .head circle:nth-child(2){fill:var(--green);r:calc(5px * var(--sw,1))}
.pulse-svg .head line{stroke:var(--green);stroke-opacity:.35;stroke-width:var(--sw,1)}
.pulse-svg .head{animation:headfade var(--dur) linear infinite}
@keyframes headfade{0%,88%{opacity:1}94%,100%{opacity:0}}
/* 刻度：扫描点经过（--d）时刻度线变深、✓ 弹出并停留到本轮结束 */
.pulse-svg .tick line{stroke:var(--bd-strong);stroke-width:1}
.pulse-svg .tick text{text-anchor:middle;fill:var(--faint)}
.pulse-svg .tick .chk{opacity:0;transform-box:fill-box;transform-origin:center;animation:chk var(--dur) var(--ease) infinite;animation-delay:var(--d)}
.pulse-svg .tick .chk circle{fill:var(--green-soft);stroke:var(--green);stroke-width:calc(1.5px * var(--sw,1))}
.pulse-svg .tick .chk path{fill:none;stroke:var(--green);stroke-width:calc(2px * var(--sw,1));stroke-linecap:round;stroke-linejoin:round}
.pulse-svg .tick.bad .chk circle{fill:var(--err-soft);stroke:var(--err)}
.pulse-svg .tick.bad .chk path{stroke:var(--err)}
/* 出现→停留→在本轮尾部随线一起消失。动画从 --d 开始，所以"结束点"= (dur - d)/dur，
   用 92% 近似：最后一个刻度 d≈9.2s，剩余 1.8s，92% 刚好落在整轮 97% 淡出之前。 */
@keyframes chk{0%{opacity:0;transform:scale(.4)}6%{opacity:1;transform:scale(1.15)}10%{transform:scale(1)}70%{opacity:1}80%,100%{opacity:0}}
/* 故障与恢复标签 */
.pulse-svg .ev circle{fill:var(--err)}
.pulse-svg .ev line{stroke:var(--err);stroke-opacity:.45;stroke-width:1}
.pulse-svg .ev text{fill:var(--err);font-weight:600}
.pulse-svg .ok circle{fill:var(--green)}
.pulse-svg .ok text{fill:var(--green-txt);font-weight:600}
.pulse-svg .ev,.pulse-svg .ok{opacity:0;animation:label var(--dur) var(--ease) infinite;animation-delay:var(--d)}
@keyframes label{0%{opacity:0;transform:translateY(4px)}5%{opacity:1;transform:none}55%{opacity:1}62%,100%{opacity:0}}
@media(prefers-reduced-motion:reduce){
  .pulse-svg .line,.pulse-svg .head,.pulse-svg .tick .chk,.pulse-svg .ev,.pulse-svg .ok{animation:none}
  .pulse-svg .line{stroke-dashoffset:0}.pulse-svg .head{display:none}
  .pulse-svg .tick .chk,.pulse-svg .ev,.pulse-svg .ok{opacity:1;transform:none}
}
/* 功能页里"状态墙示意"仍用到的迷你表格样式 */
.mock-card{background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-lg);overflow:hidden}
.mock-rows{padding:6px 0}
.mock-row{display:grid;grid-template-columns:14px 1fr auto auto;gap:14px;align-items:center;padding:11px 18px;border-top:1px solid var(--bd);font-size:13.5px}
.mock-row:first-child{border-top:0}
.dot{width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(15,157,110,.15)}
.dot.warn{background:var(--warn);box-shadow:0 0 0 3px rgba(217,119,6,.15)}
.dot.err{background:var(--err);box-shadow:0 0 0 3px rgba(220,38,38,.15)}
.mock-row .n{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mock-row .n small{display:block;font-weight:400;color:var(--mut);font-family:var(--mono);font-size:11.5px}
.mock-row .ms{font-family:var(--mono);color:var(--txt-2);font-size:12.5px}
.mock-row .tag{font-size:11.5px;padding:3px 9px;border-radius:var(--r-pill);background:var(--green-soft);color:var(--green-txt);font-weight:600}
.mock-row .tag.err{background:var(--err-soft);color:var(--err)}
/* 信任条 */
.trust{padding:28px 0 8px}
.trust .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.trust-item{padding:18px 0;border-top:1px solid var(--bd)}
.trust-item .v{font-size:26px;font-weight:700;letter-spacing:-.03em}
.trust-item .v small{font-size:14px;font-weight:600;color:var(--mut);margin-left:2px}
.trust-item .k{font-size:13px;color:var(--mut);margin-top:2px}

/* 区块 */
.section{padding:88px 0}
.section.alt{background:var(--surface);border-top:1px solid var(--bd);border-bottom:1px solid var(--bd)}
.section-head{max-width:640px;margin-bottom:44px}
.section-head h2{font-size:clamp(26px,3.2vw,38px);font-weight:720;letter-spacing:-.03em}
.section-head p{margin-top:14px;font-size:16.5px;color:var(--txt-2);line-height:1.7}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}

/* 功能网格 */
.grid{display:grid;gap:16px}
.grid.c3{grid-template-columns:repeat(3,1fr)}
.grid.c2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-lg);padding:26px 26px 24px;box-shadow:var(--sh-1);transition:transform .2s var(--ease),box-shadow .2s}
.card:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}
.card .ic{width:40px;height:40px;border-radius:11px;background:var(--surface-3);color:var(--ink);display:grid;place-items:center;margin-bottom:18px}
.card .ic svg{width:20px;height:20px}
.card h3{font-size:17px;font-weight:700;margin-bottom:8px}
.card p{font-size:14.5px;color:var(--txt-2);line-height:1.7}
.card .more{display:inline-block;margin-top:14px;font-size:13.5px;font-weight:600;color:var(--green-txt)}

/* 三步 */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;counter-reset:s}
.step{position:relative;padding:28px 26px 26px;background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-lg)}
.step::before{counter-increment:s;content:counter(s,decimal-leading-zero);font-family:var(--mono);font-size:12px;color:var(--faint);letter-spacing:.1em}
.step h3{font-size:18px;margin:14px 0 8px}
.step p{font-size:14.5px;color:var(--txt-2);line-height:1.7}
.step .demo{margin-top:18px;padding:12px 14px;border-radius:10px;background:var(--surface-2);border:1px solid var(--bd);font-family:var(--mono);font-size:12.5px;color:var(--txt-2);overflow-wrap:anywhere}
.step .demo b{color:var(--ok);font-weight:600}
.step .demo .er{color:var(--err)}

/* 可信机制：左文右列 */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.split .sticky{position:sticky;top:96px}
.list{display:flex;flex-direction:column;gap:12px}
.list-item{padding:20px 22px;background:var(--surface);border:1px solid var(--bd);border-radius:14px;display:grid;grid-template-columns:34px 1fr;gap:14px}
.list-item .ic{width:34px;height:34px;border-radius:9px;background:var(--green-soft);color:var(--green-txt);display:grid;place-items:center}
.list-item .ic svg{width:17px;height:17px}
.list-item h4{font-size:15.5px;font-weight:700;margin-bottom:4px}
.list-item p{font-size:14px;color:var(--txt-2);line-height:1.65}

/* 定价 */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch}
.plan{background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-lg);padding:28px 26px;display:flex;flex-direction:column;box-shadow:var(--sh-1)}
.plan.hot{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink),var(--sh-2);position:relative}
.plan.hot .flag{position:absolute;top:-12px;left:26px;font-size:11.5px;font-weight:700;letter-spacing:.06em;padding:4px 10px;border-radius:var(--r-pill);background:var(--ink);color:#fff}
.plan h3{font-size:17px;font-weight:700}
.plan .price{margin:14px 0 6px;font-size:40px;font-weight:750;letter-spacing:-.04em;line-height:1}
.plan .price small{font-size:14px;font-weight:600;color:var(--mut);letter-spacing:0;margin-left:4px}
.plan .desc{font-size:13.5px;color:var(--mut);min-height:40px}
.plan ul{list-style:none;margin:20px 0 24px;padding:0;display:flex;flex-direction:column;gap:9px;font-size:14px;color:var(--txt-2)}
.plan li{display:flex;gap:9px;align-items:flex-start}
.plan li svg{flex:none;width:16px;height:16px;color:var(--green);margin-top:3px}
.plan li b{color:var(--txt);font-weight:650}
.plan .btn{margin-top:auto;width:100%}
.plan-note{margin-top:18px;font-size:13px;color:var(--mut);text-align:center}

/* FAQ */
.faq{max-width:760px;margin:0 auto}
.faq details{border-top:1px solid var(--bd);padding:4px 0}
.faq details:last-child{border-bottom:1px solid var(--bd)}
.faq summary{list-style:none;cursor:pointer;padding:18px 40px 18px 0;font-weight:650;font-size:16px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'';position:absolute;right:6px;top:50%;width:9px;height:9px;border-right:2px solid var(--mut);border-bottom:2px solid var(--mut);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq .a{padding:0 0 20px;color:var(--txt-2);line-height:1.75;font-size:15px;max-width:680px}

/* 尾部 CTA */
.cta-band{padding:80px 0}
.cta-box{background:var(--ink);color:#fff;border-radius:24px;padding:60px 56px;display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center;position:relative;overflow:hidden}
.cta-box::after{content:'';position:absolute;right:-120px;top:-120px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(47,122,71,.55),rgba(47,122,71,0) 70%)}
.cta-box h2{color:#fff;font-size:clamp(26px,3vw,36px);letter-spacing:-.03em}
.cta-box p{margin-top:12px;color:rgba(255,255,255,.72);font-size:16px;max-width:520px}
.cta-box .btn.pri{background:#fff;border-color:#fff;color:var(--ink)}
.cta-box .btn.pri:hover{background:#f1f3f7;border-color:#f1f3f7;color:var(--ink-2)}
.cta-box .btn.ghost{color:#fff;border-color:rgba(255,255,255,.3)}
.cta-box .btn.ghost:hover{background:rgba(255,255,255,.08);color:#fff}
.cta-box .actions{display:flex;gap:10px;position:relative;z-index:1}

/* 页脚 */
.footer{padding:56px 0 36px;border-top:1px solid var(--bd);background:var(--surface)}
.footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.footer h5{margin:0 0 14px;font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:14px}
.footer ul a{color:var(--txt-2)}
.footer ul a:hover{color:var(--txt)}
.footer .about p{margin-top:12px;font-size:13.5px;color:var(--mut);line-height:1.7;max-width:320px}
.footer .legal{margin-top:40px;padding-top:22px;border-top:1px solid var(--bd);display:flex;gap:18px;flex-wrap:wrap;align-items:center;font-size:12.5px;color:var(--mut)}
.footer .legal a{color:var(--mut)}
.footer .legal .sp{margin-left:auto}

/* 内页：标题区 + 正文 */
.page-head{padding:72px 0 36px}
.page-head h1{font-size:clamp(30px,4vw,46px);font-weight:750;letter-spacing:-.035em}
.page-head p{margin-top:14px;font-size:17px;color:var(--txt-2);max-width:640px;line-height:1.7}
.page-body{padding:0 0 88px}
/* 法律条款排版 */
.doc{max-width:760px;margin:0 auto;background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-lg);padding:48px 52px}
.doc .meta{font-size:13px;color:var(--mut);margin-bottom:28px;display:flex;gap:16px;flex-wrap:wrap}
.doc h2{font-size:20px;margin:36px 0 12px;letter-spacing:-.02em}
.doc h2:first-of-type{margin-top:0}
.doc h3{font-size:16px;margin:22px 0 8px}
.doc p,.doc li{font-size:15px;line-height:1.8;color:var(--txt-2)}
.doc p{margin:0 0 12px}
.doc ul,.doc ol{margin:0 0 12px;padding-left:22px}
.doc li{margin-bottom:6px}
.doc .note{padding:14px 16px;border-radius:10px;background:var(--surface-2);border:1px solid var(--bd);font-size:14px;color:var(--txt-2);margin:16px 0}
.doc table{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0 16px}
.doc th,.doc td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--bd);vertical-align:top;color:var(--txt-2)}
.doc th{font-weight:650;color:var(--txt);background:var(--surface-2)}
.doc code{font-family:var(--mono);font-size:13px;background:var(--surface-3);padding:1px 6px;border-radius:5px}
.toc{max-width:760px;margin:0 auto 20px;display:flex;gap:8px;flex-wrap:wrap}
.toc a{font-size:13px;padding:6px 12px;border-radius:var(--r-pill);border:1px solid var(--bd);background:var(--surface);color:var(--txt-2)}
.toc a:hover{border-color:var(--bd-strong);color:var(--txt)}

/* 功能详情页的交替块 */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:56px 0;border-top:1px solid var(--bd)}
.feature:first-of-type{border-top:0}
.feature:nth-child(even) .feature-text{order:2}
.feature h3{font-size:26px;letter-spacing:-.03em;margin-bottom:12px}
.feature p{font-size:15.5px;color:var(--txt-2);line-height:1.75}
.feature ul{margin:16px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;font-size:14.5px;color:var(--txt-2)}
.feature li{display:flex;gap:9px}
.feature li svg{flex:none;width:16px;height:16px;color:var(--green);margin-top:4px}
.feature-vis{background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-lg);padding:22px;box-shadow:var(--sh-1)}
.kv{display:grid;grid-template-columns:110px 1fr;gap:8px 14px;font-size:13.5px}
.kv dt{color:var(--mut)}
.kv dd{margin:0;color:var(--txt);font-family:var(--mono);font-size:12.5px;overflow-wrap:anywhere}
.bars{display:flex;flex-direction:column;gap:10px}
.bar{display:grid;grid-template-columns:70px 1fr 54px;gap:12px;align-items:center;font-size:13px}
.bar .lab{color:var(--txt-2)}
.bar .tr{height:10px;border-radius:6px;background:var(--surface-3);overflow:hidden}
.bar .fl{height:100%;border-radius:6px;background:var(--ink)}
.bar .fl.slow{background:var(--warn)}
.bar .v{font-family:var(--mono);color:var(--mut);text-align:right;font-size:12px}
.mail{border:1px solid var(--bd);border-radius:12px;overflow:hidden;font-size:13.5px}
.mail .h{padding:12px 16px;background:var(--surface-2);border-bottom:1px solid var(--bd);display:grid;gap:4px}
.mail .h span{color:var(--mut);font-size:12.5px}
.mail .b{padding:16px;line-height:1.7;color:var(--txt-2)}
.mail .b b{color:var(--err)}
.mail .b code{font-family:var(--mono);font-size:12px;background:var(--surface-3);padding:2px 6px;border-radius:5px}

/* 通用小件 */
.pill{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--r-pill);border:1px solid var(--bd);background:var(--surface);font-size:12.5px;color:var(--txt-2)}
.pill i{width:7px;height:7px;border-radius:50%;background:var(--ok);display:block}
.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.contact-card{background:var(--surface);border:1px solid var(--bd);border-radius:var(--r-lg);padding:28px}
.contact-card h3{font-size:17px;margin-bottom:6px}
.contact-card p{color:var(--txt-2);font-size:14.5px;line-height:1.7}
.contact-card a.big{display:inline-block;margin-top:14px;font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}
.notice{padding:14px 18px;border-radius:12px;background:var(--warn-soft);color:#7a4a05;font-size:14px;line-height:1.65;border:1px solid #f4dcae}

/* 进场动画：只做透明度和位移，尊重减少动效偏好 */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.card:hover{transform:none}}

/* ── 移动端 ─────────────────────────────────────────────── */
@media(max-width:960px){
  .hero{padding-top:64px}
  .trust .wrap{grid-template-columns:repeat(2,1fr)}
  .grid.c3{grid-template-columns:repeat(2,1fr)}
  .steps,.plans{grid-template-columns:1fr}
  .split{grid-template-columns:1fr;gap:32px}
  .split .sticky{position:static}
  .feature{grid-template-columns:1fr;gap:26px;padding:44px 0}
  .feature:nth-child(even) .feature-text{order:0}
  .cta-box{grid-template-columns:1fr;padding:44px 32px}
  .footer .cols{grid-template-columns:1fr 1fr}
}
@media(max-width:720px){
  .wrap{padding:0 18px}
  .nav-links,.nav-cta{display:none}
  .nav-toggle{display:flex}
  .hero h1{font-size:36px}
  .hero .lead{font-size:16px}
  .pulse-wrap{margin-top:18px;height:calc(100vw * 260 / 720)}
  .pulse-svg.pulse-d{display:none}
  .pulse-svg.pulse-m{display:block}
  .hero .cta .btn{flex:1 1 100%}
  .section{padding:60px 0}
  .grid.c3,.grid.c2,.contact-grid{grid-template-columns:1fr}
  .mock-row{grid-template-columns:14px 1fr auto;gap:10px}
  .mock-row .ms{display:none}
  .trust .wrap{grid-template-columns:1fr 1fr;gap:0 18px}
  .footer .cols{grid-template-columns:1fr}
  .footer .legal .sp{margin-left:0;flex-basis:100%}
  .doc{padding:28px 20px;border-radius:14px}
  .page-head{padding:48px 0 24px}
  .cta-box .actions{flex-wrap:wrap}
  .cta-box .actions .btn{flex:1 1 100%}
}
