:root{
--primary:#2563eb;--accent:#f59e0b;--radius:12px;
--nav-on-bg:#2563eb;--nav-on-fg:#fff;
--ink:#111827;--muted:#6b7280;--line:#e5e7eb;--bg:#ffffff;--soft:#f9fafb;--card:#ffffff;--hero-bg:linear-gradient(180deg,#f5f8ff,#ffffff 60%);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
/* 页内锚点跳转时留出吸顶导航的高度，否则目标区块标题会被盖住 */
@media(prefers-reduced-motion:no-preference){html{scroll-padding-top:84px}}
:target{scroll-margin-top:84px}
body{margin:0;color:var(--ink);background:var(--bg);line-height:1.68;font-size:16px;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1080px;margin:0 auto;padding:0 22px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:var(--bg);padding:8px;border:1px solid var(--line);z-index:99}
h1{font-size:clamp(30px,4.2vw,50px);line-height:1.14;margin:0 0 18px;letter-spacing:-.025em;font-weight:800}
h2{font-size:clamp(23px,3vw,34px);line-height:1.22;margin:0 0 14px;letter-spacing:-.015em;font-weight:750}
h3{font-size:18px;margin:0 0 9px;font-weight:700}
.lead{font-size:18px;color:var(--muted);margin:0 0 26px;max-width:68ch}
.rt{margin:0 0 20px;max-width:72ch}
.rt p{margin:0 0 15px}
.rt ul,.rt ol{padding-left:22px;margin:0 0 15px}
.rt li{margin:0 0 7px}
.rt blockquote{margin:0 0 16px;padding:14px 18px;border-left:3px solid var(--primary);background:var(--soft);color:var(--muted)}
.rt code{background:var(--soft);padding:2px 6px;border-radius:4px;font-size:.92em}
.grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));list-style:none;padding:0;margin:30px 0 0}
/* 卡片数量填不满最后一行的兜底（只对 auto-fit 网格生效）。
   固定列数的结构模板（如 .feat .grid 的 4 列）靠 :nth-child(3n+1)
   判断会误判，把第 4 张卡也拉成通栏，所以这里限定为 auto-fit。 */
.grid:not([data-cols])>*:last-child:nth-child(3n+1){grid-column:1/-1}
/* 卡片数 fill 最后一行的兜底：视觉模板的 grid 常是固定 3/4 列，
   上一行 n+1 会把 4 张里第 4 张拉成通栏。这里按「实际渲染到的列数」
   把孤零零的最后一行卡片撑成与上一行对齐的等宽（窄屏 1 列时自动失效）。 */
.grid>*:last-child:nth-child(4){grid-column:1/-1;justify-self:center;width:calc((100% - 40px)/3);max-width:100%}
@media(max-width:900px){.grid>*:last-child:nth-child(4){grid-column:auto;width:auto}}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.btn{display:inline-block;padding:12px 24px;background:var(--primary);color:#fff;border-radius:var(--radius);font-weight:650;border:0;transition:filter .15s,transform .15s}
.btn:hover{filter:brightness(1.08);text-decoration:none;transform:translateY(-1px)}
.faq details{border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;margin:0 0 12px;background:var(--card)}
.faq summary{cursor:pointer;font-weight:650;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+ ";color:var(--primary);font-weight:800}
.faq details[open] summary::before{content:"− "}
.faq details p{margin:12px 0 0;color:var(--muted)}
.kv{list-style:none;padding:0;margin:22px 0 0}
.kv li{padding:12px 0;border-bottom:1px solid var(--line);color:var(--muted)}
.ftr{padding:36px 0;color:var(--muted);font-size:14px;border-top:1px solid var(--line);background:var(--soft)}
.ftr p{margin:5px 0}
/* 页脚相关推荐链接区 */
.ftr-rel{margin:0 0 22px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.ftr-h{margin:0 0 11px;font-size:11.5px;font-weight:700;letter-spacing:.9px;text-transform:uppercase;color:var(--ink);opacity:.72}
.ftr-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 10px}
.ftr-links li{margin:0}
.ftr-links a{display:inline-block;padding:5px 11px;border:1px solid var(--line);border-radius:var(--r-sm,6px);font-size:13px;color:inherit;text-decoration:none;transition:border-color .15s,color .15s,background .15s}
.ftr-links a:hover{color:var(--ink);border-color:currentColor}
.ftr-note{margin:13px 0 0;font-size:12px;opacity:.65;line-height:1.6}
nav a.on{font-weight:700;color:var(--primary)}
/* ---------- 导航选中态（最后加载的兜底层） ---------- */
/* 结构模板会在页头导航上叠自己的字体、下划线和颜色声明，很多只改 color、
   不改 background。两者一叠就变成「主色底 + 主色字」，选中项看起来像消失了。
   这里用 --nav-on-bg / --nav-on-fg 一对变量统一兜底，背景和文字永远反色，
   任何视觉模板的主色下都清晰可读。多写几个选择器形状，是因为结构模板
   本身的选择器写法不统一（.hdr nav a / header nav a / .hdr .nav a 都有）。 */
.hdr a.on,.hdr nav a.on,.hdr .nav a.on,.hdr .navlink.on,
header a.on,header nav a.on,header .nav a.on{background:var(--nav-on-bg) !important;color:var(--nav-on-fg) !important;border-color:var(--nav-on-bg) !important;font-weight:700 !important}
.hdr a.on:hover,.hdr nav a.on:hover,.hdr .nav a.on:hover,header a.on:hover,header nav a.on:hover{background:var(--nav-on-bg) !important;color:var(--nav-on-fg) !important}
/* 选中态带下划线风格的模板：下划线跟主色一致，文字也不能用主色 */
.hdr nav a.on[aria-current],header nav a.on[aria-current]{color:var(--nav-on-fg) !important}
/* ---------- 单页站：导航放进页头，靠右对齐 ---------- */
/* 单页站没有其它页面，导航项全是页内锚点。位置上跟多页站保持一致：
   都在 .hdr 里、logo 右侧，只是换成胶囊样式，栏数多时可横向滚动。 */
.pagenav{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-left:auto;padding:4px 0}
.pagenav::-webkit-scrollbar{display:none}
.pagenav a{flex:0 0 auto;padding:6px 13px;border-radius:999px;font-size:13px;font-weight:600;color:var(--muted);border:1px solid var(--line);white-space:nowrap;text-decoration:none;transition:color .15s,border-color .15s,background .15s}
.pagenav a:hover{color:var(--ink);border-color:currentColor;text-decoration:none}
/* 选中态必须压过各结构模板的页头导航规则（那些规则只改 color、
   不改背景）。模板选择器特异性是 0,2,1，这里用 0,3,0 才盖得住；
   否则会出现「主色底 + 主色字」看不出文字的情况。 */
.hdr .pagenav a.on{background:var(--primary);border-color:var(--primary);color:#fff}
.hdr .pagenav a.on:hover{color:#fff;border-color:var(--primary)}
@media(max-width:600px){.pagenav a{padding:5px 11px;font-size:12.5px}}
/* ---------- 站点骨架：logo 标记 / 面包屑 ---------- */
.logo-mk{display:inline-block;width:9px;height:9px;margin-right:8px;border-radius:2px;background:linear-gradient(135deg,var(--primary),var(--accent));vertical-align:middle;transform:translateY(-1px)}
.crumbs{border-bottom:1px solid var(--line);background:var(--soft);font-size:13px}
.crumb-in{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding-top:11px;padding-bottom:11px;color:var(--muted)}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--primary);text-decoration:underline}
.crumbs [aria-current]{color:var(--ink);font-weight:600}
.crumb-sep{opacity:.4}
/* ---------- 图片 ---------- */
.hero-split{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;max-width:1180px}
.hero-art img{width:100%;height:auto;border-radius:var(--radius);box-shadow:0 24px 60px -30px rgba(15,23,42,.45)}
/* ---------- 首屏右栏要点卡（无配图时的填充） ----------
   min-height 是个保底值：卡片被 grid 拉伸到与左栏等高时，内容靠
   flex 居中，不会全堆在顶部留一大块空底。 */
.hero-aside{display:flex;flex-direction:column;justify-content:center;text-align:left;margin:0;padding:34px 30px;border-radius:20px;background:#0f1a16;color:#dbe7e1;box-shadow:0 22px 48px -26px rgba(10,20,15,.55);border:1px solid rgba(255,255,255,.06)}
.hero-aside .ha-t{margin:0 0 20px;font-size:17px;font-weight:800;letter-spacing:.01em;color:#fff;line-height:1.5;text-align:left}
.hero-aside .ha-t::after{content:"";display:block;width:36px;height:2px;margin-top:13px;background:var(--accent);border-radius:2px;opacity:.9}
.hero-aside .ha-list{list-style:none;margin:0;padding:0;display:grid;gap:18px;counter-reset:ha}
/* 卡片很高时（.ha-list[data-fit]）让列表撑满剩余空间，行与行之间均分；
   比单纯放大字号协调得多：内容少时不会变成几行巨型字。 */
.hero-aside .ha-list[data-fit]{flex:1 1 auto;align-content:space-evenly;gap:0}
.hero-aside .ha-list>li{position:relative;padding-left:30px;font-size:14.5px;line-height:1.85;color:#c3d3cb;text-align:left}
.hero-aside .ha-list>li::before{content:"";position:absolute;left:0;top:.42em;width:17px;height:17px;border-radius:50%;background:rgba(255,255,255,.09)}
.hero-aside .ha-list>li::after{content:"";position:absolute;left:4.5px;top:calc(.42em + 4.5px);width:8px;height:4px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}
@media(max-width:959px){.hero-aside{margin-top:26px;padding:26px 22px}}
/* 卡片被拉伸到很高时（左栏文字很长），把标题、字号、行距一起放大，
   否则中间一小条内容、上下两大块空白。
   这里不靠媒体查询拍脑袋：“填满多少”是内容量÷卡片高度，CSS 未知。
   由内联 JS 量完高度后按比例写到 --ha-k（字号缩放系数），
   CSS 只负责乘上去。 */
.hero-aside{--ha-k:1;--ha-g:1}
@media(min-width:960px){
  .hero-aside{padding:calc(36px * var(--ha-g)) clamp(30px,3vw,42px)}
  .hero-aside .ha-t{font-size:calc(17px * var(--ha-k));margin-bottom:calc(20px * var(--ha-g))}
  /* [data-fit] 的列表要自己均分剩余空间（gap 归零），不能被这里的行距覆盖 */
  .hero-aside .ha-list:not([data-fit]){gap:calc(18px * var(--ha-g))}
  .hero-aside .ha-list>li{font-size:calc(14.5px * var(--ha-k));line-height:1.85}
}
/* 卡片只有 500px 高时内容基本填满，系数接近 1，不额外放大。 */
.hero-txt{min-width:0}
.fig{margin:30px 0 0}
.fig img{width:100%;height:auto;border-radius:var(--radius);border:1px solid var(--line)}
.art-fig{margin:0 0 30px}
.art .fig img{box-shadow:0 16px 40px -28px rgba(15,23,42,.5)}
/* feature 卡片图标 */
.ic{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin-bottom:13px;border-radius:calc(var(--radius) * .7);background:var(--soft);border:1px solid var(--line);color:var(--primary)}
.ic svg{width:19px;height:19px}
.more{display:inline-block;margin-top:11px;font-size:14px;font-weight:600}
/* ---------- 新增区块：stats / steps / gallery / timeline / logos / quote ---------- */
.stats .stat-grid{list-style:none;padding:0;margin:30px 0 0;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
/* 统计数字不够一行的倍数时，最后一个橑满剩余，不让右边缘空出一截 */
.stats .stat-grid>*:last-child:nth-child(4n+1){grid-column:1/-1}
.stats .stat-grid li{padding:26px 22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);text-align:center}
.stat-num{margin:0 0 6px;font-size:clamp(28px,3.4vw,40px);font-weight:800;letter-spacing:-.03em;color:var(--primary);line-height:1.1}
.stat-lbl{margin:0;font-weight:650}
.stat-txt{margin:8px 0 0;font-size:14px;color:var(--muted)}
.step-list{list-style:none;counter-reset:s;padding:0;margin:30px 0 0;display:grid;gap:0}
.step-list li{position:relative;padding:0 0 26px 54px;border-left:2px solid var(--line);margin-left:15px}
.step-list li:last-child{border-left-color:transparent;padding-bottom:0}
.step-n{position:absolute;left:-16px;top:-2px;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--primary);color:#fff;font-size:14px;font-weight:700}
.step-list h3{margin:0 0 6px;font-size:17px}
.step-list p{margin:0;color:var(--muted);font-size:15px;max-width:66ch}
.gal-grid{list-style:none;padding:0;margin:30px 0 0;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.gal-item{margin:0}
.gal-item img{width:100%;height:auto;border-radius:var(--radius);border:1px solid var(--line);display:block}
.gal-item p{margin:9px 0 0;font-size:14px;color:var(--muted);font-weight:600}
.tl-list{list-style:none;padding:0;margin:30px 0 0}
.tl-list li{display:grid;grid-template-columns:110px 1fr;gap:22px;padding:0 0 24px}
.tl-when{font-weight:700;color:var(--primary);font-size:15px;font-variant-numeric:tabular-nums}
.tl-body{border-left:2px solid var(--line);padding-left:22px;margin-left:-12px}
.tl-body h3{margin:0 0 6px;font-size:17px}
.tl-body p{margin:0;color:var(--muted);font-size:15px}
.logos{padding:34px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--soft)}
.logos-h{margin:0 0 16px;text-align:center;font-size:12.5px;letter-spacing:.9px;text-transform:uppercase;color:var(--muted);font-weight:700}
.logos-row{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:16px 38px}
.logos-row li{font-weight:700;font-size:15px;color:var(--muted);opacity:.8;letter-spacing:.02em}
.logos-note{margin:16px 0 0;text-align:center;font-size:12.5px;color:var(--muted);opacity:.8}
.quote{padding:60px 0;background:var(--soft)}
.quote .wrap{max-width:820px}
.quote blockquote{margin:0;padding:0;border:0;background:none;font-size:clamp(19px,2.3vw,25px);line-height:1.6;font-weight:500;color:var(--ink)}
.quote blockquote p{margin:0 0 12px}
.quote-by{margin:18px 0 0;color:var(--muted);font-size:14.5px}
/* 价格卡片徽标 / 价格单位 */
.price .card{position:relative}
.price .badge{position:absolute;top:-11px;right:16px;background:var(--accent);color:#fff;font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:99px;letter-spacing:.02em}
.price .amt small{font-size:14px;font-weight:600;opacity:.7;margin-left:3px}
@media(max-width:860px){.hero-split{grid-template-columns:1fr;gap:34px}.hero-art{order:-1}}
/* 相关阅读列表 */
.rel{background:var(--soft)}
.tbl-scroll{overflow-x:auto}
/* mcol-reset：打断结构模板的 CSS 多栏流，让表格占满整行。
   CSS 多栏下 max-width:none 会让内部块直接溢出到栏外，必须显式 width:100%。 */
.mcol-reset{column-span:all;break-inside:avoid;width:100%;max-width:100%;min-width:0;float:none;clear:both}
.mcol-reset>table{margin:20px 0}
.rt table{width:100%;border-collapse:collapse;margin:20px 0;font-size:14.5px;min-width:520px}
.rt th,.rt td{padding:11px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.rt th{background:var(--soft);font-weight:700;white-space:nowrap}
.rt tbody tr:hover{background:var(--soft)}
.rel-list{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.rel-list li{margin:0;padding:14px 18px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;gap:4px;transition:border-color .15s,transform .15s}
.rel-list li:hover{border-color:var(--primary);transform:translateY(-2px)}
.rel-list a{font-weight:650;font-size:15px;line-height:1.45}
.rel-list span{font-size:13px;color:var(--muted)}
@media(max-width:560px){.tl-list li{grid-template-columns:1fr;gap:6px}.tl-body{margin-left:0}.step-list li{padding-left:46px}}
@media(max-width:640px){.wrap{padding:0 18px}.cta-row{flex-direction:column}.btn{text-align:center}.ftr-links a{padding:4px 9px;font-size:12.5px}}

body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}
.hero{text-align:center}.hero .lead{margin-left:auto;margin-right:auto}
section{padding:70px 0;border-bottom:1px solid var(--line)}
section:last-of-type{border-bottom:0}
.hero{padding:92px 0 72px;background:var(--hero-bg)}
.hero .cta-row{justify-content:center}
.feat h2,.feat .lead,.price h2,.price .lead,.faq h2,.faq .lead,.cta h2,.cta .lead{text-align:center}
.feat .lead,.price .lead,.faq .lead,.cta .lead{margin-left:auto;margin-right:auto}
.cta .cta-row{justify-content:center}
.hdr{border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);z-index:20}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:66px;flex-wrap:wrap}
.logo{font-weight:750;font-size:18px;color:var(--ink);letter-spacing:-.02em}
.hdr nav{display:flex;gap:22px;flex-wrap:wrap}
.hdr nav a{color:var(--muted);font-size:14.5px}
.hdr nav a:hover{color:var(--primary);text-decoration:none}
h1{font-weight:800;letter-spacing:-.03em}
.lead{color:var(--muted)}
.btn{box-shadow:0 4px 14px -6px rgba(37,99,235,.6)}
.btn:hover{box-shadow:0 8px 22px -8px rgba(37,99,235,.7)}
.feat{background:var(--soft)}
.feat .grid li{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.feat .grid li h3{color:var(--ink)}
.feat .grid li p{color:var(--muted);font-size:15px;margin:0}
.price .card{background:var(--card);border:1px solid var(--line);box-shadow:0 1px 3px rgba(16,24,40,.06)}
.price .amt{color:var(--primary);font-size:32px;font-weight:800}
.faq details{background:var(--card)}
.faq details p{color:var(--muted)}
.art{max-width:820px;padding:72px 22px}

/* ---- 结构排版模板 ---- */
.stx-dash-panel{--stx-w:1240px}
.stx-dash-panel .wrap{max-width:var(--stx-w);margin:0 auto;padding:0 24px}
.stx-dash-panel .hdr{background:var(--card);border-bottom:1px solid var(--line)}
.stx-dash-panel .hdr-in{max-width:var(--stx-w);margin:0 auto;padding:0 24px;min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.stx-dash-panel .hdr .logo{font-weight:800;font-size:16px}
.stx-dash-panel .hdr nav{display:flex;gap:8px;flex-wrap:wrap}
.stx-dash-panel .hdr nav a{font-size:14px;color:var(--muted);padding:6px 10px;border-radius:8px}
.stx-dash-panel .hdr nav a:hover,.stx-dash-panel .hdr nav a.on{background:var(--soft);color:var(--primary);text-decoration:none}
.stx-dash-panel section{padding:40px 0}
.stx-dash-panel section:nth-of-type(even){background:var(--soft)}
.stx-dash-panel h2{font-size:22px;letter-spacing:-.01em;margin:0 0 6px}
.stx-dash-panel .lead{color:var(--muted);margin:0 0 22px;font-size:15px}
.stx-dash-panel .hero{padding:48px 0;background:var(--hero-bg)}
.stx-dash-panel .hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:40px;align-items:center}
.stx-dash-panel .hero h1{font-size:34px;line-height:1.24;letter-spacing:-.025em;margin:0 0 14px}
.stx-dash-panel .hero .lead{font-size:16px;margin-bottom:22px}
.stx-dash-panel .hero .cta-row{display:flex;gap:12px;flex-wrap:wrap}
.stx-dash-panel .hero-art img{border-radius:12px;border:1px solid var(--line);box-shadow:0 18px 44px -26px rgba(2,6,23,.3);display:block;max-width:100%;height:auto}
.stx-dash-panel .grid{display:grid;gap:16px;margin:0;padding:0;list-style:none}
.stx-dash-panel .grid-3,.stx-dash-panel .feat .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.stx-dash-panel .grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.stx-dash-panel .feat .grid li,.stx-dash-panel .price .card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;position:relative;overflow:hidden}
.stx-dash-panel .feat .grid li::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--primary)}
.stx-dash-panel .feat .grid li h3{font-size:15px;margin:0 0 6px;line-height:1.45}
.stx-dash-panel .feat .grid li p{font-size:13px;line-height:1.7;color:var(--muted);margin:0;min-height:calc(1.7em * 3)}
/* 流程步骤：固定 4 列，四个阶段一行排完。
   基础样式的 .step-list 是单列流式网格，不显式给列数会竖排成一大列。 */
.stx-dash-panel .steps .step-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;counter-reset:dp}
.stx-dash-panel .steps .step-list li{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px 18px;position:relative;overflow:hidden}
.stx-dash-panel .steps .step-list li::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--primary)}
.stx-dash-panel .steps .step-n{position:static;left:auto;top:auto;width:30px;height:30px;border-radius:8px;background:var(--soft);color:var(--primary);font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;margin:0 0 12px}
.stx-dash-panel .steps .step-list h3{font-size:15px;line-height:1.45;margin:0 0 6px}
.stx-dash-panel .steps .step-list p{font-size:13px;color:var(--muted);line-height:1.7;margin:0}
.stx-dash-panel .stats .stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;list-style:none;padding:0;margin:0}
.stx-dash-panel .stats .stat-grid li{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px}
.stx-dash-panel .stat-num{font-size:28px;font-weight:800;color:var(--primary);margin:0;line-height:1.2}
.stx-dash-panel .stat-lbl{font-size:13px;color:var(--muted);margin:6px 0 0}
.stx-dash-panel .stat-txt{font-size:12px;color:var(--muted);margin:4px 0 0}
.stx-dash-panel .art{max-width:var(--stx-w);margin:0 auto;padding:40px 24px}
/* 仪表盘版的「联系」区块不太像正文，更像一块面板：
   用卡片、圆角、左侧主色引导条包起来，跟其它模板的纯文本区块拉开差距。 */
.stx-dash-panel .art{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:30px 34px;margin-top:34px;margin-bottom:34px;box-shadow:0 18px 40px -32px rgba(15,23,42,.45)}
.stx-dash-panel .art h1{font-size:26px;line-height:1.3;letter-spacing:-.02em;margin:0 0 16px}
.stx-dash-panel .art h2{display:flex;align-items:center;gap:10px;padding:0;border:0;font-size:18px}
.stx-dash-panel .art h2::before{content:"";flex:0 0 auto;width:4px;height:18px;border-radius:2px;background:var(--primary)}
.stx-dash-panel .art .lead{font-size:14.5px;line-height:1.7;margin-bottom:20px;max-width:72ch}
.stx-dash-panel .art .rt{max-width:78ch;padding-top:20px;border-top:1px solid var(--line)}
.stx-dash-panel .art .rt>p:first-child{margin-top:0}
.stx-dash-panel .rt{font-size:15px;line-height:1.82}
.stx-dash-panel .rt h2{font-size:19px;margin:26px 0 10px;padding:0;border:0}
.stx-dash-panel .rt h2::before{display:none}
.stx-dash-panel .rt h3{font-size:16px;margin:22px 0 8px}
.stx-dash-panel .rt p{margin:0 0 14px}
/* 面板里的 kv 清单当指标条：每行拆成标签 + 值，带底纹和分隔线 */
.stx-dash-panel .art .kv{margin:20px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.stx-dash-panel .art .kv li{display:grid;grid-template-columns:110px minmax(0,1fr);gap:14px;align-items:baseline;background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:10px 14px;font-size:14px}
.stx-dash-panel .art .kv strong{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.stx-dash-panel .tbl table{width:100%;border-collapse:collapse;font-size:14px;background:var(--card)}
.stx-dash-panel .tbl th,.stx-dash-panel .tbl td{border:1px solid var(--line);padding:10px 12px;text-align:left}
.stx-dash-panel .tbl th{background:var(--soft);font-weight:650}
.stx-dash-panel .faq details{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:13px 16px;margin-bottom:9px}
.stx-dash-panel .faq summary{cursor:pointer;font-weight:650;font-size:14px}
.stx-dash-panel .faq details p{font-size:13px;color:var(--muted);line-height:1.75;margin:8px 0 0}
.stx-dash-panel .ftr{background:var(--card);border-top:1px solid var(--line);padding:32px 0;font-size:13px;color:var(--muted)}
.stx-dash-panel .ftr .ftr-links{display:flex;gap:16px;list-style:none;padding:0;margin:0 0 12px;flex-wrap:wrap}
@media(max-width:900px){
.stx-dash-panel .hero .wrap{grid-template-columns:1fr}
.stx-dash-panel .grid-3,.stx-dash-panel .grid-2,.stx-dash-panel .feat .grid{grid-template-columns:1fr}
.stx-dash-panel .stats .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.stx-dash-panel .steps .step-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.stx-dash-panel .hero h1{font-size:26px}
}
/* ===== 统一排版：保留各自骨架 + 文字居中 + 响应式（自动追加，勿手改） ===== */
.stx-dash-panel .hero .hero-txt{text-align:center}
.stx-dash-panel .hero h1,.stx-dash-panel .hero .lead{text-align:center;margin-left:auto;margin-right:auto}
.stx-dash-panel .hero .rt,.stx-dash-panel .hero .rt>p{text-align:center;margin-left:auto;margin-right:auto}
@media (min-width:960px){
.stx-dash-panel .hero .wrap:has(>.hero-art),.stx-dash-panel .hero .wrap:has(>.hero-aside){display:grid !important;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr) !important;gap:48px;align-items:stretch;max-width:var(--stx-w,1080px);margin-left:auto;margin-right:auto}
.stx-dash-panel .hero .wrap>.hero-txt{grid-column:1;align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.stx-dash-panel .hero .wrap>.hero-art{grid-column:2;align-self:stretch;display:flex;align-items:stretch}
.stx-dash-panel .hero .wrap>.hero-art>img{width:100%;height:100%;min-height:260px;object-fit:cover;object-position:center}
.stx-dash-panel .hero .wrap>.hero-art.is-portrait{overflow:hidden}
.stx-dash-panel .hero .wrap>.hero-art.is-portrait>img{width:100%;height:100%;min-height:100%;object-fit:cover;object-position:center}
.stx-dash-panel .hero .wrap>.hero-aside{grid-column:2;align-self:stretch}
.stx-dash-panel .hero .wrap:not(:has(>.hero-art)):not(:has(>.hero-aside)){display:block !important;width:100%;max-width:var(--stx-w,1080px);margin-left:auto;margin-right:auto}
}
@media (min-width:960px){
.stx-dash-panel .hero .wrap:not(:has(>.hero-art)):not(:has(>.hero-aside))>.hero-txt{max-width:none !important;width:100%;margin-left:0;margin-right:0}
.stx-dash-panel .hero .wrap:not(:has(>.hero-art)):not(:has(>.hero-aside)) .lead,.stx-dash-panel .hero .wrap:not(:has(>.hero-art)):not(:has(>.hero-aside)) .rt,.stx-dash-panel .hero .wrap:not(:has(>.hero-art)):not(:has(>.hero-aside)) h1{max-width:none !important}
}
.stx-dash-panel .hero .wrap:has(>.hero-art)>.hero-txt,.stx-dash-panel .hero .wrap:has(>.hero-aside)>.hero-txt{text-align:left}
.stx-dash-panel .hero .wrap:has(>.hero-art)>.hero-txt>h1,.stx-dash-panel .hero .wrap:has(>.hero-art)>.hero-txt>.lead,.stx-dash-panel .hero .wrap:has(>.hero-art)>.hero-txt>.rt,.stx-dash-panel .hero .wrap:has(>.hero-art)>.hero-txt>.cta-row,.stx-dash-panel .hero .wrap:has(>.hero-aside)>.hero-txt>h1,.stx-dash-panel .hero .wrap:has(>.hero-aside)>.hero-txt>.lead,.stx-dash-panel .hero .wrap:has(>.hero-aside)>.hero-txt>.rt,.stx-dash-panel .hero .wrap:has(>.hero-aside)>.hero-txt>.cta-row{text-align:left;justify-content:flex-start;max-width:100% !important;margin-left:0;margin-right:0}
.stx-dash-panel .hero .wrap:has(>.hero-art)>.hero-txt .rt *,.stx-dash-panel .hero .wrap:has(>.hero-aside)>.hero-txt .rt *{text-align:left}
}
.stx-dash-panel .hero{padding-top:56px;padding-bottom:56px;text-align:center}
.stx-dash-panel .hero .hero-txt{text-align:center}
.stx-dash-panel .hero h1{font-size:clamp(26px,2.7vw,34px) !important;line-height:1.3;max-width:20em;font-weight:700;letter-spacing:-.005em}
.stx-dash-panel .hero .lead{font-size:15px;line-height:1.75;max-width:600px;margin-top:10px;color:var(--muted,#64748b)}
.stx-dash-panel .hero .hero-art{padding:18px;border-radius:14px;background:#fff;border:1px solid rgba(15,23,42,.10);box-shadow:0 10px 30px rgba(15,23,42,.08)}
.stx-dash-panel .hero .btn{border-radius:8px;padding:10px 20px;font-size:14px}
@media (max-width:959px){.stx-dash-panel .hero .wrap{display:block !important;max-width:100%}.stx-dash-panel .hero .hero-art{grid-column:auto !important;margin:28px auto 0;max-width:100%}.stx-dash-panel .hero h1{font-size:clamp(24px,6.4vw,40px) !important;line-height:1.24}.stx-dash-panel .hero{padding-top:44px;padding-bottom:40px}}
.stx-dash-panel .hero-art img,.stx-dash-panel .hero-art svg{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}
.stx-dash-panel section h1, .stx-dash-panel section h2, .stx-dash-panel section h3, .stx-dash-panel section h4,
.stx-dash-panel .wrap>h2, .stx-dash-panel .art>h2, .stx-dash-panel .art>h3{text-align:center;margin-left:auto;margin-right:auto;padding-left:0;padding-right:0;text-indent:0;border-left:0;border-right:0;background-image:none}
.stx-dash-panel h1, .stx-dash-panel h2, .stx-dash-panel h3, .stx-dash-panel h4{text-align:center;margin-left:auto;margin-right:auto;padding-left:0;padding-right:0;text-indent:0;border-left:0;border-right:0;background:none}
.stx-dash-panel section h2, .stx-dash-panel section h3{justify-content:center;align-items:center}
.stx-dash-panel section .lead, .stx-dash-panel .art>.lead{text-align:center;margin-left:auto;margin-right:auto;max-width:760px}
.stx-dash-panel .art>h2::after,.stx-dash-panel .wrap>h2::after{margin-left:auto;margin-right:auto}
.stx-dash-panel .art .rt, .stx-dash-panel .art .rt>p{text-align:center;margin-left:auto;margin-right:auto}
.stx-dash-panel .art .rt h2, .stx-dash-panel .art .rt h3, .stx-dash-panel .art .rt h4{text-align:center;margin-left:auto;margin-right:auto}
.stx-dash-panel .art .rt ul, .stx-dash-panel .art .rt ol{margin-left:auto;margin-right:auto;padding-left:0;list-style-position:inside;text-align:center}
.stx-dash-panel .art .rt blockquote{margin-left:auto;margin-right:auto;text-align:center;border-left:0;padding-left:0}
.stx-dash-panel .art .rt img, .stx-dash-panel .art .rt figure, .stx-dash-panel .art .rt table{margin-left:auto;margin-right:auto}
.stx-dash-panel .art>h2, .stx-dash-panel .art>.lead{text-align:center}
.stx-dash-panel .art>.rt>p{text-align:center;margin-left:auto;margin-right:auto;max-width:72ch}
@media (max-width:959px){.stx-dash-panel .art{display:block;grid-template-columns:1fr;column-gap:0;max-width:100%;margin-left:auto;margin-right:auto;padding-left:20px;padding-right:20px;border-left:0}.stx-dash-panel .art>*{grid-column:auto;width:100%;max-width:100%;margin-left:auto;margin-right:auto;padding-left:0;border-left:0}.stx-dash-panel .art>.rt{padding-left:0;border-left:0}}
.stx-dash-panel .grid li,.stx-dash-panel .step-list li,.stx-dash-panel .tl-list li,.stx-dash-panel .price .card{text-align:center}
.stx-dash-panel .feat .grid li p,.stx-dash-panel .step-list li p,.stx-dash-panel .tl-body p{text-align:center;margin-left:auto;margin-right:auto}
.stx-dash-panel .grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;align-items:stretch}
.stx-dash-panel .grid:has(>li:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr)) !important}
.stx-dash-panel .grid:has(>li:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.stx-dash-panel .feat .grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.stx-dash-panel .feat .grid:has(>li:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr)) !important}
.stx-dash-panel .grid>li{grid-column:auto !important;justify-self:stretch !important;width:auto !important;max-width:none !important}
.stx-dash-panel .grid li{display:flex;flex-direction:column;justify-content:flex-start;min-width:0}
.stx-dash-panel .grid li h3,.stx-dash-panel .grid li p,.stx-dash-panel .grid li .more,.stx-dash-panel .grid li .btn{margin-left:auto;margin-right:auto}
.stx-dash-panel .grid li .more,.stx-dash-panel .grid li .btn{margin-top:auto}
@media (max-width:959px){.stx-dash-panel .grid,.stx-dash-panel .feat .grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}
@media (max-width:639px){.stx-dash-panel .grid,.stx-dash-panel .feat .grid{grid-template-columns:1fr !important}}
.stx-dash-panel .step-n{margin-left:auto;margin-right:auto;position:static;left:auto;top:auto}
.stx-dash-panel .step-list{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:16px;margin-left:0;padding-left:0;counter-reset:none}
.stx-dash-panel .step-list li{display:block;text-align:center;border-left:0;border-radius:14px;margin-left:0;padding:22px 20px;place-items:center;position:static;counter-increment:none}
.stx-dash-panel .step-list>li{grid-column:auto !important;justify-self:stretch !important;width:auto !important;max-width:none !important}
.stx-dash-panel .step-list:has(>li:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr)) !important}
.stx-dash-panel .step-list:has(>li:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.stx-dash-panel .steps .step-list li{text-align:center;display:block;grid-template-columns:1fr;grid-template-rows:auto;padding:22px 20px;margin-left:0;border-left:0;border-bottom:0;column-gap:0;row-gap:0;place-items:center;position:static}
.stx-dash-panel .steps .step-list:has(>li:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr)) !important}
.stx-dash-panel .steps .step-list:has(>li:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.stx-dash-panel .step-n{position:static;left:auto;top:auto;flex:none;grid-column:auto;grid-row:auto;margin:0 auto 12px;width:30px;height:30px;font-size:14px;line-height:30px;text-align:center}
.stx-dash-panel .step-list li h3, .stx-dash-panel .step-list li p{margin-left:auto;margin-right:auto;max-width:100%;grid-column:auto;grid-row:auto;text-align:center}
@media (max-width:959px){.stx-dash-panel .steps .step-list{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}
@media (max-width:639px){.stx-dash-panel .steps .step-list{grid-template-columns:1fr !important}}
.stx-dash-panel .tl-when{display:block;text-align:center;margin:0 auto 6px;padding-left:0}
.stx-dash-panel .tl-list li{text-align:center;display:block;grid-template-columns:1fr;gap:6px;margin-left:0;padding-left:0}
.stx-dash-panel .tl-body{text-align:center;margin-left:0;padding-left:0;border-left:0}
.stx-dash-panel .logos-row,.stx-dash-panel .cta-row,.stx-dash-panel .logos{justify-content:center;text-align:center}
.stx-dash-panel .logos-h,.stx-dash-panel .logos-note,.stx-dash-panel .quote-by{text-align:center;margin-left:auto;margin-right:auto}
.stx-dash-panel .faq summary,.stx-dash-panel .faq details p,.stx-dash-panel blockquote{text-align:center;margin-left:auto;margin-right:auto}
.stx-dash-panel .faq details{text-align:center}
.stx-dash-panel .quote .wrap{text-align:center}
.stx-dash-panel blockquote, .stx-dash-panel blockquote.rt{max-width:var(--center-rt,760px);margin-left:auto;margin-right:auto;text-align:center;border-left:0;padding-left:0}
.stx-dash-panel .kv{margin-left:auto;margin-right:auto;max-width:820px;display:block;width:100%}
.stx-dash-panel .kv li{display:block;text-align:center;align-items:center;align-content:center;justify-items:center;grid-template-columns:1fr;padding-left:0;padding-right:0;border-left:0}
.stx-dash-panel .kv li strong{display:block;margin:0 auto 4px;flex:none;width:auto}
.stx-dash-panel .tbl .rt,.stx-dash-panel .tbl .tbl-scroll{max-width:none;width:100%;margin-left:auto;margin-right:auto;padding-left:0}
.stx-dash-panel .tbl table{width:100%;margin-left:auto;margin-right:auto}
.stx-dash-panel table{margin-left:auto;margin-right:auto}
.stx-dash-panel th, .stx-dash-panel td, .stx-dash-panel .tbl th, .stx-dash-panel .tbl td, .stx-dash-panel .rt th, .stx-dash-panel .rt td, .stx-dash-panel .tbl-scroll th, .stx-dash-panel .tbl-scroll td{text-align:center}
.stx-dash-panel table th, .stx-dash-panel table td, .stx-dash-panel .tbl-scroll table th, .stx-dash-panel .tbl-scroll table td{text-align:center}
.stx-dash-panel .tbl th:first-child, .stx-dash-panel .tbl td:first-child, .stx-dash-panel table th:first-child, .stx-dash-panel table td:first-child{text-align:center;font-weight:inherit}
.stx-dash-panel .ftr{text-align:center}
.stx-dash-panel .ftr .wrap{display:flex;flex-direction:column;align-items:center;text-align:center;justify-items:center}
.stx-dash-panel .ftr .wrap>*{max-width:100%}
.stx-dash-panel .ftr-rel{text-align:center;border-bottom:none;padding-bottom:0;margin:0 0 14px}
.stx-dash-panel .ftr-h,.stx-dash-panel .ftr-note,.stx-dash-panel .ftr p{text-align:center;margin-left:auto;margin-right:auto}
.stx-dash-panel .ftr-links{justify-content:center;text-align:center;flex-wrap:wrap}
.stx-dash-panel .hdr{position:static !important;top:auto !important;background:transparent !important;border-bottom:0 !important;box-shadow:none !important;padding:18px 0 10px}
.stx-dash-panel .hdr .hdr-in{max-width:calc(var(--stx-w,1080px) - 16px) !important;width:auto;margin:0 auto !important;background:var(--card,#fff);border:1px solid var(--line);border-radius:16px;box-shadow:0 10px 28px rgba(15,23,42,.08);padding:10px 24px !important;min-height:60px;display:flex;align-items:center;justify-content:center;gap:12px 26px;flex-wrap:wrap}
.stx-dash-panel .hdr nav{justify-content:center}
@media (max-width:767px){.stx-dash-panel .hdr{padding:12px 10px 6px}.stx-dash-panel .hdr .hdr-in{padding:12px 14px !important;border-radius:12px;min-height:auto;max-width:100% !important}}
@media (max-width:767px){.stx-dash-panel .hdr nav{width:100%;justify-content:center;gap:12px 16px}}
@media (min-width:960px){.stx-dash-panel .feat>.wrap>.rt,.stx-dash-panel .feat .wrap>.rt,.stx-dash-panel .art>.rt,.stx-dash-panel .art .rt,.stx-dash-panel .tbl>.wrap>.rt,.stx-dash-panel .tbl .wrap>.rt,.stx-dash-panel main>.feat>.rt{max-width:min(100%,var(--rt-wide,980px)) !important;width:100%;margin-left:auto;margin-right:auto;text-align:left}.stx-dash-panel section .lead,.stx-dash-panel section>.wrap>.lead,.stx-dash-panel .art>.lead{max-width:min(100%,var(--rt-wide,980px)) !important;width:100%;margin-left:auto;margin-right:auto}}

/* ===== 首屏右栏配图等高（自动追加，勿手改） ===== */
@media (min-width:960px){
.stx-dash-panel .hero .wrap:has(>.hero-art){align-items:stretch !important}
.stx-dash-panel .hero .wrap:has(>.hero-art)>.hero-txt{align-self:stretch;display:flex;flex-direction:column;justify-content:center;min-width:0}
.stx-dash-panel .hero .wrap:has(>.hero-art)>.hero-art{align-self:stretch;margin-top:0 !important;display:flex;align-items:stretch;overflow:hidden}
.stx-dash-panel .hero .wrap:has(>.hero-art)>.hero-art>img{width:100%;height:100%;min-height:260px;max-width:100%;object-fit:cover;object-position:center;display:block;margin:0 auto}
.stx-dash-panel .hero .wrap:has(>.hero-art)>.hero-aside{align-self:stretch;margin-top:0 !important}
}


/* ---- 导航安全区 ---- */
.hdr .pagenav a.on{background:var(--nav-on-bg) !important;border-color:var(--nav-on-bg) !important;color:var(--nav-on-fg) !important}
.hdr .pagenav a.on:hover{background:var(--nav-on-bg) !important;border-color:var(--nav-on-bg) !important;color:var(--nav-on-fg) !important}
