/* ============================================================
   柯鲸 KeJing 官网 · site.css
   设计语言: 4a「极光深海」玻璃拟态
   深海底色 + 极光光晕(teal + 极光紫) + 半透明玻璃卡 + 发光大数字
   等宽数字字体 = JetBrains Mono(自托管可变字体)
   ============================================================ */

/* ---------- 字体自托管 ---------- */
@font-face {
  font-family: 'JetBrains Mono';
  src: url('fonts/JetBrainsMono.woff2') format('woff2');
  font-weight: 100 800;
  font-style: normal;
  font-display: swap;
}

/* ---------- 设计 token ---------- */
:root {
  /* ── 盈桥品牌色（提案：墨 / 纸 / 青三色体系）──
     纪律：青只作强调色，不作底色；主按钮用墨。全站青占比控制在 2% 以内。 */

  /* 品牌青 600（唯一「品牌位」，出现即代表可点/需注意） */
  --teal: #2A6E7A;
  --teal-light: #35818E;   /* 青 500，hover / 次级 */
  --teal-deep: #1F565F;    /* 青 700，按下态 */

  /* 功能色（与品牌青同明度同彩度，只转 hue） */
  --mint: #2E7154;         /* 成功 */
  --amber: #8A6420;        /* 警示 */
  --danger: #A03B2E;       /* 错误（彩度放宽至 0.12，唯一在案例外） */
  --purple: #2A6E7A;       /* 提案不另设第四色：信息类提示直接用青 */
  --purple-glow: #2A6E7A;

  /* 底色（纸系，暖白） */
  --sea-black: #FCFBF9;    /* 页面主底 · 纸 */
  --sea-deep: #F4F1EB;     /* 次级底 · section-alt */

  /* 卡面（浅色下不做玻璃拟态，用实色 + 描边） */
  --glass-1: #FFFFFF;
  --glass-2: #F7F4EE;
  --glass-3: #FCFBF9;

  /* 边框（暖灰，与纸同族——禁止混用纯灰 #999 系） */
  --border-soft: #E8E4DC;
  --border-mid: #DEDAD2;
  --border-strong: #D6D2CA;
  /* 🔴 翻浅色时这三个被脚本一律压成 rgba(42,110,122,0.045) —— 纸底上等于没有边。
     不新造刻度, 直接指向上面已有的暖灰三档(注释已写明"禁止混用纯灰")。 */
  --border-teal: var(--border-soft);        /* #E8E4DC 卡片主描边 */
  --border-teal-soft: #EFEBE3;              /* 更浅一档, 用于分隔线/导航底边 */
  --border-purple: var(--border-soft);      /* 与 --teal 同值已久, 不再假装是第二色 */
  --border-amber: rgba(138, 100, 32, 0.3);

  /* 文字（墨系。变量名沿用 on-dark 仅为兼容，实际是纸底上的墨字） */
  --on-dark: #1A1A19;       /* 墨 · 标题与正文 */
  --on-dark-dim: #55524B;   /* 700 · 次级正文 */
  --on-dark-faint: #8A8579; /* 500 · 辅助，仅限 ≥18px */

  /* 阴影（提案：描边代替投影，一律克制；浅色下不存在发光）
     🔴 --glow-* 原是深色主题的青色辉光, 翻浅色后被压成 0.045 = 三个空阴影,
     导致所有 hover 抬起 3px 却没有任何投影变化。改成墨系双层, 变量名保留避免动 8 处引用。 */
  --glow-teal: 0 2px 4px -1px rgba(26, 26, 25, 0.10), 0 8px 20px -6px rgba(26, 26, 25, 0.10);
  --glow-teal-soft: 0 1px 2px -1px rgba(26, 26, 25, 0.08), 0 6px 16px -6px rgba(26, 26, 25, 0.08);
  --glow-purple: var(--glow-teal-soft);
  --shadow-card: 0 1px 2px -1px rgba(26, 26, 25, 0.10), 0 4px 12px -2px rgba(26, 26, 25, 0.06);
  --shadow-card-hover: 0 2px 4px -1px rgba(26, 26, 25, 0.12), 0 10px 24px -6px rgba(26, 26, 25, 0.10);

  /* 圆角 */
  --radius: 16px;
  --radius-sm: 8px;
  --radius-xs: 4px;
  --radius-pill: 999px;

  /* 间距节奏 */
  --sp-section: 88px;
  --sp-gutter: 56px;

  /* 字体栈
     🔴 中文命中微软雅黑只有 Light/Regular/Bold 三个字面, 700/800/900 渲染完全一样;
        而 Segoe UI 有真 Black —— 实测 200px 下拉丁字干 700→31px、800→42px(+35%),
        汉字纹丝不动。所以 800/900 只会让中英混排里的拉丁单方面变粗(「AI 全功能」的 A、I)。
        全站字重只用 400/600/700, **不要再写 800/900**。 */
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, "SF Mono", Consolas, monospace;

  --maxw: 1120px;
}

/* ---------- 基线 ---------- */
* { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--font-sans);
  color: var(--on-dark);
  background-color: var(--sea-black);
  /* 🔴 原有三条「极光光晕」是深色主题语言。压到 0.045 后在暖纸底上不但看不见,
     还把 (252,251,249) 染成冷灰绿 (238,241,240) —— 通道从 R>G>B 翻成 G>R,
     首屏顶部像屏幕没擦干净。整体删除, 纸底就是纯净的纸底。 */
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

.num, .mono {
  font-family: var(--font-mono);
  font-feature-settings: "tnum" 1;
}

/* 焦点可见 */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
.nav-link:focus-visible,
.btn-primary:focus-visible,
.btn-ghost:focus-visible {
  outline: 2px solid var(--teal-light);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

/* ---------- 容器 ---------- */
.container {
  max-width: var(--maxw);
  margin: 0 auto;
  padding-left: var(--sp-gutter);
  padding-right: var(--sp-gutter);
}

/* ---------- 按钮 ---------- */
.btn-primary,
.btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 600;
  border-radius: var(--radius-sm);
  padding: 12px 26px;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
  border: 1px solid transparent;
}

.btn-primary {
  /* 提案纪律：主按钮用墨，不用青 —— 躲开「跨境 SaaS 满屏蓝」 */
  color: #FFFFFF;
  background: var(--on-dark);
  box-shadow: 0 1px 2px rgba(26, 26, 25, 0.12);
}
/* 🔴 这里原本有两条同选择器的 :hover, 后者用青覆盖了前者的墨 ——
   直接违反上面第 149 行自己写的「主按钮用墨，不用青」。合并成一条, 保留墨。 */
.btn-primary:hover {
  background: #33322F;
  box-shadow: var(--glow-teal);
  transform: translateY(-1px);
}

.btn-ghost {
  color: var(--on-dark);
  background: rgba(26, 26, 25, 0.04);
  border-color: var(--border-strong);
}
.btn-ghost:hover {
  background: rgba(26, 26, 25, 0.08);
  border-color: var(--teal);
  color: var(--on-dark);
}

.btn-lg {
  font-size: 16px;
  padding: 15px 36px;
}

/* ============================================================
   导航栏
   ============================================================ */
.site-nav {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--glass-3);
  border-bottom: 1px solid var(--border-teal-soft);
}
.nav-inner {
  max-width: var(--maxw);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px var(--sp-gutter);
}
.nav-logo {
  font-size: 20px;
  font-weight: 700;
  color: var(--on-dark);
  letter-spacing: 0.01em;
}
.nav-logo span {
  font-family: var(--font-mono);
  font-weight: 400;
  font-size: 13px;
  color: var(--teal-light);
  margin-left: 2px;
}
.nav-menu {
  display: flex;
  align-items: center;
  gap: 26px;
}
.nav-link {
  font-size: 14px;
  color: var(--on-dark-dim);
  transition: color .16s ease;
}
.nav-link:hover { color: var(--on-dark); }

.lang-switch {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--on-dark-dim);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-pill);
  padding: 4px 12px;
  transition: color .16s ease, border-color .16s ease;
}
.lang-switch:hover { color: var(--teal-light); border-color: var(--teal); }

.nav-cta {
  font-size: 14px;
  font-weight: 600;
  color: #FFFFFF;
  background: var(--on-dark);
  border-radius: var(--radius-sm);
  padding: 9px 20px;
  box-shadow: 0 1px 2px rgba(26, 26, 25, 0.12);
  transition: background .16s ease, box-shadow .16s ease;
}
/* 同上: 右上角黑按钮一悬停就变青, 与主按钮纪律冲突 */
.nav-cta:hover { background: #33322F; box-shadow: var(--glow-teal); }

/* 汉堡按钮(桌面隐藏) */
.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 42px;
  height: 42px;
  padding: 0;
  background: transparent;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  cursor: pointer;
}
.nav-toggle-bar {
  display: block;
  width: 20px;
  height: 2px;
  margin: 0 auto;
  background: var(--teal-light);
  border-radius: 2px;
  transition: transform .22s ease, opacity .22s ease;
}

/* ============================================================
   首页 Hero(极光背景 + 悬浮玻璃数据卡)
   ============================================================ */
.hero {
  position: relative;
  overflow: hidden;
  padding: 96px 0 80px;
  /* 冷青雾换成同族暖色的一层极淡纵向渐变: 顶部次底 → 纸, 给首屏一点纵深又不脏 */
  background: linear-gradient(180deg, #F6F3ED 0%, var(--sea-black) 72%);
}
.hero-inner {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--sp-gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
}
.hero-copy { max-width: 560px; flex: 1 1 auto; min-width: 0; }

.hero-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--border-soft);
  background: var(--glass-2);
  border-radius: var(--radius-pill);
  padding: 6px 14px;
  margin-bottom: 26px;
}
.hero-pill-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--teal);
  box-shadow: 0 0 10px var(--teal);
  flex: none;
}
.hero-pill-text {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--teal-light);
  letter-spacing: 0.02em;
}

.hero-title {
  margin: 0;
  /* 🔴 左栏实宽 = maxw1120 - gutter56*2 - cluster460 - gap48 = 500px,
     而 56px x 9 个全角字 = 504px, 差 4px 把「广告」劈成两行、留孤字「告」。
     769px 以上每个桌面宽度都会发生。钳到 52px: 9x52=468px, 留 32px 余量。 */
  font-size: clamp(34px, 3.6vw, 52px);
  font-weight: 700;
  line-height: 1.22;
  color: var(--on-dark);
}
.hero-title .glow {
  color: var(--teal-light);
}
.hero-sub {
  font-size: 17px;
  color: var(--on-dark-dim);
  line-height: 1.8;
  margin: 22px 0 0;
}
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 34px;
}

/* 悬浮玻璃数据卡簇 */
.hero-cluster {
  position: relative;
  width: 460px;
  height: 420px;
  flex: none;
}
.float-card {
  position: absolute;
  background: var(--glass-1);
  border: 1px solid var(--border-teal);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
}
.float-gmv {
  top: 0; left: 0;
  width: 340px;
  padding: 24px;
  transform: rotate(-2deg);
}
.float-label {
  font-family: var(--font-mono);
  font-size: 11.5px;
  color: var(--on-dark-dim);
  letter-spacing: 0.06em;   /* 原 .15em —— 装的是「今日 GMV · 示例数据」, 中文被拉散 */
  margin-bottom: 8px;
}
.float-bignum {
  font-family: var(--font-mono);
  font-size: 36px;
  font-weight: 600;
  color: var(--teal);
}
.float-delta {
  font-size: 12.5px;
  color: var(--mint);
  margin-top: 6px;
}
.float-bars {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  height: 48px;
  margin-top: 16px;
}
.float-bars span {
  flex: 1;
  background: rgba(26, 26, 25, .10);
  border-radius: 2px;
}
.float-bars span:nth-child(1){ height:35%; background:rgba(26, 26, 25, .08);}
.float-bars span:nth-child(2){ height:52%; background:rgba(26, 26, 25, .10);}
.float-bars span:nth-child(3){ height:44%; background:rgba(26, 26, 25, .11);}
.float-bars span:nth-child(4){ height:66%; background:rgba(26, 26, 25, .13);}
.float-bars span:nth-child(5){ height:58%; background:rgba(26, 26, 25, .14);}
.float-bars span:nth-child(6){ height:82%; background:rgba(26, 26, 25, .16);}
.float-bars span:nth-child(7){ height:100%; background:var(--teal);}

.float-ai {
  top: 190px; left: 150px;
  width: 300px;
  padding: 20px;
  border-color: var(--border-purple);
  transform: rotate(1.5deg);
}
.float-ai-tag {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--purple);
  background: var(--glass-2);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-xs);
  padding: 3px 8px;
}
.float-ai-text {
  font-size: 13px;
  color: rgba(26, 26, 25, 0.68);
  line-height: 1.7;
  margin-top: 12px;
}

.float-stock {
  top: 330px; left: 40px;
  width: 280px;
  padding: 16px 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  border-color: var(--border-amber);
  border-radius: var(--radius);
  transform: rotate(-1deg);
}
.float-stock-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--amber);
  box-shadow: 0 0 10px var(--amber);
  flex: none;
}
.float-stock-text {
  font-size: 12.5px;
  color: rgba(26, 26, 25, 0.68);
}

/* ============================================================
   Trust strip 跑马条
   ============================================================ */
.trust-strip {
  border-top: 1px solid var(--border-soft);
  border-bottom: 1px solid var(--border-soft);
  padding: 16px 0;
  overflow: hidden;
}
.trust-inner {
  display: flex;
  gap: 56px;
  justify-content: center;
  flex-wrap: wrap;
  white-space: nowrap;
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--sp-gutter);
}
.trust-item {
  font-family: var(--font-mono);
  font-size: 13px;
  /* 🔴 原 rgba(26,26,25,0.18) 对纸底只有 1.46:1 —— 这条"信任背书"带实际看不见 */
  color: #6B675E;
  letter-spacing: 0.1em;   /* 原 .2em —— 「API 直连」「数据一套口径」中文被拉散 */
}

/* 标题类统一均衡断行, 消掉末行孤字。正文用 pretty(Safari 17.5-/Firefox 支持不全,
   只作渐进增强, 不当唯一手段 —— hero 标题另有字号钳制兜底)。 */
.hero-title, .section-title, .card-title, .cta-title,
.page-hero-title, .pricing-name, .step-title {
  text-wrap: balance;
  /* balance 只均衡行长, 不管词的完整性 —— 「上架」「广告」照样被劈成两行。
     keep-all 把断点限制在标点/空格上, 这才是中文标题该有的断行。 */
  word-break: keep-all;
}
.card-text, .section-sub, .faq-a p, .story p { text-wrap: pretty; }

/* 行长按 em 不按 px: 中文每行 30-40 字最舒服, 原来 820px/14.5px = 每行 74 字 */
.faq-a { max-width: 38em; }
.section-sub { max-width: 40em; }
.article-p { max-width: 40em; }

/* ============================================================
   章节
   ============================================================ */
.section {
  padding: var(--sp-section) 0;
}
/* 🔴 原来只有两条 0.045 渐变、没有 background-color —— 与普通 section 逐像素同底,
   11744px 长页全程只有 1 次换底。这是"整页一片白、感觉不到分章节"的直接原因。
   用 #F8F6F1 而非 --sea-deep #F4F1EB: 每页最后一段 section-alt 都紧贴 .cta-band(已是 #F4F1EB),
   同值会连成一片, 反而抹掉全页唯一成立的那个台阶。 */
.section-alt {
  background-color: #F8F6F1;
}

/* 🔴 全站 63 处 .kicker 装的全是汉字("我们是谁""平台与边界"), 却套着为英文小标题设计的
   等宽 + 0.18em 大字距 + uppercase。JetBrains Mono 没有汉字 → 全部回落雅黑, 再被字距撑开成
   「平 台 与 边 界」一个个孤立方块; uppercase 对中文完全无效, 说明这套 kicker 是照抄英文
   模板从没为中文改过。改回正文字体 + 中文能接受的微字距。 */
.kicker {
  font-family: var(--font-sans);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--teal-light);
  margin-bottom: 14px;
}
.kicker-ai { color: var(--purple); }

.section-title {
  margin: 0 0 8px;
  font-size: 32px;
  font-weight: 700;
  color: var(--on-dark);
  line-height: 1.3;
}
.section-title-sm { font-size: 26px; }

.section-sub {
  font-size: 15px;
  color: var(--on-dark-dim);
  margin: 0 0 40px;
  max-width: 760px;
  line-height: 1.75;
}

/* 引言块 */
.intro {
  max-width: 820px;
  margin: 0 auto;
}
.intro-text {
  font-size: 24px;
  line-height: 1.7;
  color: var(--on-dark);
  font-weight: 400;
}
.em-teal {
  color: var(--teal-light);
  font-weight: 700;
}

/* ============================================================
   图文卡(截图行)
   ============================================================ */
.feature-rows {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.feature-row,
.feature-row-reverse {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 40px;
  align-items: center;
  background: var(--glass-1);
  border: 1px solid var(--border-teal);
  border-radius: var(--radius);
  padding: 40px;
  box-shadow: var(--shadow-card);
}
.feature-row-reverse { grid-template-columns: 420px 1fr; }
.feature-row-title {
  margin: 0 0 12px;
  font-size: 22px;
  font-weight: 700;
  color: var(--on-dark);
}
.feature-row-text {
  margin: 0;
  font-size: 15px;
  color: var(--on-dark-dim);
  line-height: 1.85;
}
.feature-shot {
  margin: 0;
  border-radius: var(--radius-sm);
  overflow: hidden;
  border: 1px solid var(--border-mid);
  box-shadow: 0 2px 6px rgba(26, 26, 25, 0.08);
}
.feature-shot img { width: 100%; height: auto; }

/* ============================================================
   玻璃卡网格
   ============================================================ */
/* 🔴 三列网格里塞了 4/5/8 个卡时, 末行会留一块几百 px 宽的空洞(全站 13 处)。
   用 6 列底盘 + span 的"数量查询"写法, 让末行的孤儿自动均分整行 —— 不用逐页改 class,
   以后加减卡片也不会再出洞。
   纪律: 沟宽 ≥ 卡内边距的 3/4 (卡 padding 32px → 沟 24px), 原来 14/16px 是"卡挤在一起、卡内却空"。 */
.card-grid-3,
.card-grid-6 {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 24px;
}
.card-grid-3 > *,
.card-grid-6 > * { grid-column: span 2; }

/* 末行只剩 1 个 → 独占整行 */
.card-grid-3 > :last-child:nth-child(3n + 1),
.card-grid-6 > :last-child:nth-child(3n + 1) { grid-column: span 6; }

/* 末行剩 2 个 → 各占半行 */
.card-grid-3 > :nth-last-child(2):nth-child(3n + 1),
.card-grid-3 > :nth-last-child(2):nth-child(3n + 1) ~ *,
.card-grid-6 > :nth-last-child(2):nth-child(3n + 1),
.card-grid-6 > :nth-last-child(2):nth-child(3n + 1) ~ * { grid-column: span 3; }

/* 🔴 刚好 4 个是特例, 必须排在上面两条之后(同权重, 后者胜)。
   走通用规则会变成 3 + 1, 那一张横跨整行、右边三分之二全空 —— 比原来的空洞更难看。
   4 个就该 2x2。实测于首页「四件事，管到底」。 */
.card-grid-3 > :first-child:nth-last-child(4),
.card-grid-3 > :first-child:nth-last-child(4) ~ *,
.card-grid-6 > :first-child:nth-last-child(4),
.card-grid-6 > :first-child:nth-last-child(4) ~ * { grid-column: span 3; }
/* 通用玻璃卡 */
.glass-card,
.card {
  background: var(--glass-1);
  border: 1px solid var(--border-teal);
  border-radius: var(--radius);
  padding: 32px;
  box-shadow: var(--shadow-card);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.card-sm { padding: 22px; }
.glass-card:hover,
.card:hover {
  transform: translateY(-3px);
  border-color: var(--border-mid);
  box-shadow: var(--shadow-card-hover);
}
/* AI 卡(紫边) */
.card-ai {
  border-color: var(--border-purple);
}
.card-ai:hover {
  border-color: var(--border-mid);
  box-shadow: var(--shadow-card-hover);
}

.card-index {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--teal-light);
  letter-spacing: 0.05em;
  margin-bottom: 14px;
}
.card-index-ai { color: var(--purple); }

.card-tag {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--purple);
  background: var(--glass-2);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-xs);
  padding: 3px 8px;
  margin-bottom: 14px;
}
.card-title {
  margin: 0 0 10px;
  font-size: 19px;
  font-weight: 700;
  color: var(--on-dark);
}
.card-sm .card-title { font-size: 17px; }
.card-text {
  margin: 0;
  font-size: 14px;
  color: var(--on-dark-dim);
  line-height: 1.8;
}

/* ============================================================
   大数字 stat callout
   ============================================================ */
.stat-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--sp-gutter);
}
.stat {
  text-align: center;
  flex: 1;
}
.stat-num {
  font-family: var(--font-mono);
  font-size: 48px;
  font-weight: 600;
  color: var(--teal);
  line-height: 1;
}
.stat-num small { font-size: 24px; }
.stat-label {
  font-size: 13.5px;
  color: var(--on-dark-dim);
  margin-top: 8px;
}
.stat-divider {
  width: 1px;
  height: 56px;
  background: rgba(26, 26, 25, 0.08);
  flex: none;
}

/* ============================================================
   页面小 hero(内页)
   ============================================================ */
.page-hero {
  position: relative;
  overflow: hidden;
  padding: 80px 0 64px;
  text-align: center;
  background: linear-gradient(180deg, #F6F3ED 0%, var(--sea-black) 78%);
}
.page-hero-inner {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 var(--sp-gutter);
}
.page-hero-title {
  margin: 0;
  font-size: 42px;
  font-weight: 700;
  color: var(--on-dark);
  line-height: 1.25;
}
.page-hero-sub {
  font-size: 17px;
  color: var(--on-dark-dim);
  line-height: 1.8;
  margin: 18px auto 0;
  max-width: 640px;
}

/* ============================================================
   定价玻璃卡
   ============================================================ */
.pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  align-items: stretch;
}
.pricing-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--glass-1);
  border: 1px solid var(--border-teal);
  border-radius: var(--radius);
  padding: 32px 28px;
  box-shadow: var(--shadow-card);
}
.pricing-card-featured {
  border-color: var(--teal);
  box-shadow: 0 0 0 1px var(--teal), var(--glow-teal-soft);
  background: var(--glass-1);
}
.pricing-badge {
  position: absolute;
  top: -13px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  color: var(--sea-deep);
  background: var(--teal);
  border-radius: var(--radius-pill);
  padding: 5px 16px;
  box-shadow: var(--shadow-card-hover);
  white-space: nowrap;
}
.pricing-name {
  margin: 0 0 8px;
  font-size: 22px;
  font-weight: 700;
  color: var(--on-dark);
}
.pricing-tagline {
  font-size: 14px;
  color: var(--on-dark-dim);
  line-height: 1.7;
  margin: 0 0 18px;
  min-height: 44px;
}
.pricing-quote {
  font-family: var(--font-mono);
  font-size: 14px;
  color: var(--teal-light);
  padding: 14px 0;
  border-top: 1px solid var(--border-soft);
  border-bottom: 1px solid var(--border-soft);
  margin-bottom: 18px;
}
.pricing-price {
  font-family: var(--font-mono);
  color: var(--on-dark);   /* 原 var(--text) 未定义, 回退 inherit */
  padding: 14px 0;
  border-top: 1px solid var(--border-soft);
  border-bottom: 1px solid var(--border-soft);
  margin-bottom: 18px;
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.pricing-price-num {
  font-size: 34px;
  font-weight: 600;
  color: var(--teal);
  line-height: 1;
}
.pricing-price-unit {
  font-size: 14px;
  color: var(--on-dark-dim);   /* 原 var(--text-muted) 未定义 */
}
.pricing-features {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  flex: 1;
}
.pricing-features li {
  position: relative;
  padding-left: 26px;
  font-size: 14px;
  color: var(--on-dark);
  line-height: 1.7;
  margin-bottom: 12px;
}
.pricing-features li::before {
  /* 原为系统字符 "✓" —— 各平台字形不一(Win 是细线, Mac 是粗钩), 且无法控制粗细。
     换成 mask 出来的矢量勾, 颜色仍走 currentColor 体系。 */
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  width: 15px;
  height: 15px;
  background-color: var(--teal);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.pricing-card .btn-primary,
.pricing-card .btn-ghost { width: 100%; }

/* ============================================================
   步骤条
   ============================================================ */
/* 同上: 10 个页面的 steps 装了 4 或 5 步, 三列必留洞 */
.steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 20px;
}
.steps > * { grid-column: span 2; }
.steps > :last-child:nth-child(3n + 1) { grid-column: span 6; }
.steps > :nth-last-child(2):nth-child(3n + 1),
.steps > :nth-last-child(2):nth-child(3n + 1) ~ * { grid-column: span 3; }
.steps > :first-child:nth-last-child(4),
.steps > :first-child:nth-last-child(4) ~ * { grid-column: span 3; }
.step {
  background: var(--glass-1);
  border: 1px solid var(--border-teal);
  border-radius: var(--radius);
  padding: 28px;
  box-shadow: var(--shadow-card);
}
.step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  font-family: var(--font-mono);
  font-size: 18px;
  font-weight: 600;
  color: var(--sea-deep);
  background: var(--teal);
  border-radius: 50%;
  box-shadow: var(--shadow-card-hover);
  margin-bottom: 16px;
}
.step-title {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 700;
  color: var(--on-dark);
}
.step-text {
  margin: 0;
  font-size: 14px;
  color: var(--on-dark-dim);
  line-height: 1.75;
}

/* ============================================================
   FAQ(details/summary 深色玻璃)
   ============================================================ */
.faq {
  max-width: 820px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.faq-item {
  background: var(--glass-1);
  border: 1px solid var(--border-teal);
  border-radius: var(--radius-sm);
  padding: 0 24px;
  overflow: hidden;
}
.faq-item summary {
  list-style: none;
  cursor: pointer;
  padding: 20px 0;
  font-size: 16px;
  font-weight: 600;
  color: var(--on-dark);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  /* 原为 "+" 旋转 45° 变叉 —— 折叠控件的通用语言是 chevron, 展开转 180° 而不是变成叉 */
  content: "";
  width: 18px;
  height: 18px;
  background-color: var(--on-dark-dim);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .2s cubic-bezier(.2,.8,.25,1);
  flex: none;
}
.faq-item[open] summary::after { transform: rotate(180deg); background-color: var(--teal); }
.faq-a {
  margin: 0;
  padding: 0 0 22px;
  font-size: 14.5px;
  color: var(--on-dark-dim);
  line-height: 1.85;
}

/* ============================================================
   联系占位卡
   ============================================================ */
.contact-card {
  max-width: 620px;
  margin: 0 auto;
  text-align: center;
  background: var(--glass-2);
  border: 1px dashed var(--border-mid);
  border-radius: var(--radius);
  padding: 48px 40px;
  box-shadow: var(--shadow-card);
}
.contact-card-title {
  font-family: var(--font-mono);
  margin: 0 0 12px;
  font-size: 24px;
  font-weight: 600;
  color: var(--teal-light);
}
.contact-card-text {
  margin: 0 0 28px;
  font-size: 15px;
  color: var(--on-dark-dim);
  line-height: 1.8;
}

/* ============================================================
   About 故事 block
   ============================================================ */
.story {
  max-width: 820px;
  margin: 0 auto;
}
.story p {
  font-size: 16.5px;
  color: var(--on-dark);
  line-height: 1.9;
  margin: 0 0 20px;
}
.story p:last-child { margin-bottom: 0; }

/* ============================================================
   CTA 带
   ============================================================ */
.cta-band {
  text-align: center;
  padding: 80px var(--sp-gutter);
  border-top: 1px solid var(--border-teal-soft);
  background: var(--sea-deep);
}
.cta-title {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  color: var(--on-dark);
}
.cta-sub {
  margin: 12px auto 28px;
  font-size: 15px;
  color: var(--on-dark-dim);
  max-width: 560px;
  line-height: 1.75;
}

/* ============================================================
   页脚
   ============================================================ */
.site-footer {
  background: var(--sea-black);
  border-top: 1px solid var(--border-teal-soft);
  padding: 56px 0 40px;
}
.footer-inner {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--sp-gutter);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 32px;
}
.footer-brand {
  font-size: 20px;
  font-weight: 700;
  color: var(--on-dark);
}
.footer-brand span {
  font-family: var(--font-mono);
  font-weight: 400;
  font-size: 13px;
  color: var(--teal-light);
  margin-left: 2px;
}
.footer-slogan {
  font-size: 14px;
  color: var(--on-dark-faint);
  margin-top: 10px;
  max-width: 300px;
  line-height: 1.7;
}
.footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
}
.footer-links a {
  font-size: 14px;
  color: var(--on-dark-dim);
  transition: color .16s ease;
}
.footer-links a:hover { color: var(--teal-light); }
.footer-copy {
  max-width: var(--maxw);
  margin: 40px auto 0;
  padding: 24px var(--sp-gutter) 0;
  border-top: 1px solid var(--border-soft);
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--on-dark-faint);
}

/* ============================================================
   响应式(≤768px)
   ============================================================ */
/* 🔴 hero 两栏在 769–1023px 之间是硬撑的: 左栏 = vw − 112(gutter) − 460(卡簇) − 48(gap),
   900px 时只剩 280px, 9 个全角字再怎么钳字号也放不下。
   768px 断点里本来就有一套"转单列 + 浮卡静态堆叠"的正确布局, 只是触发太晚。
   这里把 hero 那一组提前到 1023px 触发, 导航等其余部分仍走 768px, 爆炸半径最小。 */
@media (max-width: 1023px) {
  .hero { padding: 72px 0 56px; }
  .hero-inner { flex-direction: column; align-items: stretch; gap: 40px; }
  .hero-copy { max-width: 100%; }
  .hero-cluster {
    position: static;
    width: 100%;
    max-width: 460px;
    height: auto;
    display: flex;
    flex-direction: column;
    gap: 14px;
  }
  .float-card {
    position: static;
    width: 100% !important;
    transform: none !important;
  }
  .float-gmv, .float-ai, .float-stock { width: 100%; }
}

@media (max-width: 768px) {
  :root {
    --sp-section: 56px;
    --sp-gutter: 20px;
  }

  /* 导航折叠 */
  .nav-toggle { display: flex; }
  .nav-menu {
    position: fixed;
    top: 65px;
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    background: #F4F1EB;
    /* 🔴 这里原本有一行裸的 `-webkit-`, 会和下一行连成 `-webkit- box-shadow` 这个非法属性名,
       整条声明被解析器丢弃 —— 移动端下拉菜单一直没有投影。 */
    box-shadow: 0 24px 48px rgba(26, 26, 25, 0.08);
    z-index: 90;
    border-bottom: 1px solid var(--border-teal-soft);
    padding: 16px 20px 24px;
    transform: translateY(-140%);
    transition: transform .28s ease;
    max-height: calc(100vh - 65px);
    overflow-y: auto;
  }
  body.nav-open .nav-menu { transform: translateY(0); }
  .nav-menu .nav-link,
  .nav-menu .lang-switch,
  .nav-menu .nav-cta {
    width: 100%;
    padding: 12px 4px;
  }
  .nav-menu .nav-cta {
    text-align: center;
    padding: 12px;
    margin-top: 6px;
  }
  .nav-menu .lang-switch { text-align: center; }
  body.nav-open .nav-toggle .nav-toggle-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  body.nav-open .nav-toggle .nav-toggle-bar:nth-child(2) { opacity: 0; }
  body.nav-open .nav-toggle .nav-toggle-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  /* Hero 转单列, 浮动卡改静态堆叠 */
  .hero { padding: 56px 0 48px; }
  .hero-inner { flex-direction: column; align-items: stretch; gap: 36px; }
  .hero-copy { max-width: 100%; }
  .hero-title { font-size: 36px; }
  .hero-sub { font-size: 15.5px; }
  .hero-cluster {
    position: static;
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
    gap: 14px;
  }
  .float-card {
    position: static;
    width: 100% !important;
    transform: none !important;
  }
  .float-gmv, .float-ai, .float-stock { width: 100%; }

  .page-hero { padding: 56px 0 44px; }
  .page-hero-title { font-size: 32px; }

  /* 网格降单列 */
  .card-grid-3,
  .card-grid-6,
  .pricing-grid,
  .steps {
    grid-template-columns: 1fr;
  }
  .feature-row,
  .feature-row-reverse {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 24px;
  }
  /* 图文卡: 文字永远在上 */
  .feature-row-reverse .feature-shot { order: 2; }
  .feature-row-reverse .feature-row-body { order: 1; }

  .section-title { font-size: 26px; }
  .intro-text { font-size: 19px; }

  /* stat 转竖排 */
  .stat-row { flex-direction: column; gap: 28px; }
  .stat-divider { width: 56px; height: 1px; }

  .cta-title { font-size: 26px; }

  .footer-inner { flex-direction: column; gap: 24px; }
}

/* 降低动效(可访问性) */
@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* ---------- SEO breadcrumb ---------- */
.seo-breadcrumb {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 12px var(--sp-gutter) 0;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.02em;
  color: var(--on-dark-faint);
  display: flex;
  flex-wrap: wrap;
  gap: 6px 8px;
  align-items: center;
}
.seo-breadcrumb a {
  color: var(--on-dark-dim);
  text-decoration: none;
}
.seo-breadcrumb a:hover { color: var(--teal-light); }
.seo-breadcrumb [aria-current="page"] { color: var(--on-dark-dim); }
.seo-breadcrumb .bc-sep { opacity: 0.45; user-select: none; }

.footer-modules {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-top: 16px;
  max-width: 640px;
}
.footer-modules a {
  color: var(--on-dark-faint);
  font-size: 12px;
  text-decoration: none;
  font-family: var(--font-mono);
}
.footer-modules a:hover { color: var(--teal-light); }

/* ---------- Guide / article SEO pages ---------- */
.article-prose { max-width: 760px; }
.article-p {
  font-size: 17px;
  line-height: 1.75;
  color: var(--on-dark-dim);
  margin: 0 0 0;
}
.article-related {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 32px;
  align-items: center;
}
a.guide-card {
  display: block;
  text-decoration: none;
  color: inherit;
  transition: border-color .2s, box-shadow .2s;
}
a.guide-card:hover {
  border-color: var(--border-teal);
  box-shadow: var(--shadow-card-hover);
}
.guide-card .card-title { font-size: 18px; margin-top: 8px; }
.guide-card-go {
  display: inline-block;
  margin-top: 14px;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--teal-light);
}
.guide-grid { align-items: stretch; }

.related-guides-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.related-guides-list a {
  color: var(--teal-light);
  text-decoration: none;
  font-size: 16px;
}
.related-guides-list a:hover { text-decoration: underline; }

/* ============================================================
   平台能力对照表 platform-matrix
   结构: <div class="table-wrap"><table class="platform-matrix">…</table></div>
   观感对齐 .card(玻璃底 + teal 细边 + 16px 圆角), 窄屏横向滚动
   ============================================================ */
.table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 0 0 8px;
  border-radius: var(--radius);
  /* 滚动条也走深底配色, 避免亮色滚动条割裂视觉 */
  scrollbar-width: thin;
  scrollbar-color: var(--border-mid) transparent;
}
.table-wrap::-webkit-scrollbar { height: 8px; }
.table-wrap::-webkit-scrollbar-track { background: transparent; }
.table-wrap::-webkit-scrollbar-thumb {
  background: var(--border-mid);
  border-radius: var(--radius-pill);
}

.platform-matrix {
  width: 100%;
  min-width: 620px;               /* 低于此宽度改为横滚, 保证单元格不挤成竖条 */
  border-collapse: separate;
  border-spacing: 0;
  background: var(--glass-1);
  border: 1px solid var(--border-teal);
  border-radius: var(--radius);
  overflow: hidden;
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--on-dark-dim);
  text-align: left;
}

.platform-matrix caption {
  caption-side: top;
  text-align: left;
  padding: 0 0 12px;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--teal-light);
}

.platform-matrix thead th {
  padding: 16px 20px;
  background: var(--glass-2);
  font-size: 13px;
  font-weight: 700;
  color: var(--on-dark);
  letter-spacing: 0.02em;
  white-space: nowrap;
  border-bottom: 1px solid var(--border-teal);
}

.platform-matrix tbody th {
  padding: 15px 20px;
  font-weight: 600;
  color: var(--on-dark);
  text-align: left;
  vertical-align: top;
}

.platform-matrix tbody td {
  padding: 15px 20px;
  vertical-align: top;
}

/* 斑马纹: 极轻的一层白, 深底上只做分组不抢边框 */
.platform-matrix tbody tr:nth-child(even) th,
.platform-matrix tbody tr:nth-child(even) td {
  background: rgba(26, 26, 25, 0.022);
}

.platform-matrix tbody tr + tr th,
.platform-matrix tbody tr + tr td {
  border-top: 1px solid var(--border-soft);
}

.platform-matrix tbody tr:hover th,
.platform-matrix tbody tr:hover td {
  background: var(--glass-2);
}

/* 首列(能力名)与后续平台列的分隔 */
.platform-matrix thead th:first-child,
.platform-matrix tbody th:first-child {
  border-right: 1px solid var(--border-soft);
}

/* 支持 / 未接入 两种状态 */
.platform-matrix .yes,
.platform-matrix .no {
  font-family: var(--font-mono);
  font-size: 12.5px;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.platform-matrix .yes {
  color: var(--teal-light);
  font-weight: 600;
}
.platform-matrix .no {
  color: var(--on-dark-faint);
  font-weight: 400;
}

/* 单元格内的补充说明(如"数据持续增长中") */
.platform-matrix .cell-note {
  display: block;
  margin-top: 4px;
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--on-dark-faint);
}

@media (max-width: 860px) {
  .platform-matrix { font-size: 13.5px; }
  .platform-matrix caption { font-size: 11.5px; }
  .platform-matrix thead th { padding: 13px 15px; }
  .platform-matrix tbody th,
  .platform-matrix tbody td { padding: 12px 15px; }
}

