/* =========================================================
   同橙GEO 官网样式
   设计基调：浅色模式 / 专业科技感 / 现代 SaaS 质感
   主色 #ff8500，中性灰阶文字，克制留白与阴影
   ========================================================= */

/* ---------- 设计变量 ---------- */
:root {
  --brand: #ff8500;              /* 品牌主色（用户指定，核心强调色，保持不变） */
  --brand-strong: #f07800;       /* hover / 强调 */
  --brand-grad: linear-gradient(135deg, #ffa033 0%, #f07800 100%);
  --brand-deep: #c85f00;         /* 文字级橙色（eyebrow / 链接 / 品牌名） */
  --brand-tint: #fff5e9;          /* 浅橙底色 */
  --brand-tint-2: #ffe7cc;        /* 橙色描边 */

  /* 六色光谱：品牌橙为主色，辅以科技青/紫/蓝/绿/玫，保证模块内卡片颜色各不相同 */
  --tech-cyan: #0891b2;
  --tech-blue: #2563eb;
  --tech-violet: #7c3aed;
  --c1: #ff8500; --c1-soft: rgba(255, 133, 0, 0.45); --c1-ink: #c85f00; --c1-grad: linear-gradient(135deg, #ffa033 0%, #f07800 100%);
  --c2: #0891b2; --c2-soft: rgba(8, 145, 178, 0.42); --c2-ink: #0e7490; --c2-grad: linear-gradient(135deg, #22d3ee 0%, #0891b2 100%);
  --c3: #7c3aed; --c3-soft: rgba(124, 58, 237, 0.38); --c3-ink: #6d28d9; --c3-grad: linear-gradient(135deg, #a78bfa 0%, #7c3aed 100%);
  --c4: #2563eb; --c4-soft: rgba(37, 99, 235, 0.38); --c4-ink: #1d4ed8; --c4-grad: linear-gradient(135deg, #60a5fa 0%, #2563eb 100%);
  --c5: #0d9488; --c5-soft: rgba(13, 148, 136, 0.40); --c5-ink: #0f766e; --c5-grad: linear-gradient(135deg, #2dd4bf 0%, #0d9488 100%);
  --c6: #e11d48; --c6-soft: rgba(225, 29, 72, 0.36); --c6-ink: #be123c; --c6-grad: linear-gradient(135deg, #fb7185 0%, #e11d48 100%);

  --ink: #191d26;                 /* 主文字 */
  --ink-2: #3d4657;               /* 次级文字 */
  --ink-3: #6b7488;               /* 辅助文字 */
  --ink-4: #9aa2b1;               /* 占位 / 弱化 */

  --bg: #ffffff;
  --bg-soft: #f7f8fb;             /* 交替区块底色 */
  --line: #e7eaf1;                /* 分隔线 / 描边 */
  --line-soft: #eef0f5;

  --radius-s: 8px;
  --radius-m: 12px;
  --radius-l: 16px;
  --radius-xl: 20px;

  --shadow-s: 0 1px 2px rgba(22, 27, 40, 0.05);
  --shadow-m: 0 6px 20px rgba(22, 27, 40, 0.07);
  --shadow-l: 0 16px 40px rgba(22, 27, 40, 0.10);

  --container: 1320px;
  --header-h: 68px;

  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);

  /* 玻璃质感（iOS 风：半透明白 + 模糊 + 高光描边） */
  --glass-bg: rgba(255, 255, 255, 0.55);
  --glass-bg-strong: rgba(255, 255, 255, 0.72);
  --glass-border: rgba(255, 255, 255, 0.62);
  --glass-blur: 12px;
  --glass-shadow: 0 10px 34px rgba(255, 133, 0, 0.10), 0 2px 10px rgba(22, 27, 40, 0.06);
  --glass-inset: inset 0 1px 0 rgba(255, 255, 255, 0.55);

  /* 科技/未来感装饰变量（静态，无动画 / 无粒子 / 无网格） */
  --ink-deep: #0b1020;
  --ink-deep-2: #141a33;
  --tech-aurora-1: rgba(255, 138, 61, 0.30);   /* 暖橙光晕 */
  --tech-aurora-2: rgba(54, 197, 240, 0.24);   /* 科技青 */
  --tech-aurora-3: rgba(124, 92, 255, 0.22);   /* 未来紫 */
}

/* ---------- 基础重置 ---------- */
*, *::before, *::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  scrollbar-width: none;        /* Firefox：隐藏滚动条 */
  -ms-overflow-style: none;     /* 旧 Edge/IE：隐藏滚动条 */
}
html::-webkit-scrollbar,
body::-webkit-scrollbar { display: none; }   /* WebKit：隐藏滚动条 */
html, body { overflow-x: hidden; }           /* 禁止横向溢出产生横向滚动条 */

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
    "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}
/* 固定橙白渐变 + 柔光斑：玻璃材质赖以显现的背景（静态，无动画） */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background: #ffffff;
}

h1, h2, h3, h4 { margin: 0; line-height: 1.3; font-weight: 700; letter-spacing: 0.01em; }
p { margin: 0; }
ul, ol, dl, dd { margin: 0; padding: 0; }
li { list-style: none; }
a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; }
table { border-collapse: collapse; width: 100%; }

::selection { background: var(--brand); color: #fff; }

/* 键盘焦点可见性（WCAG 2.4.7） */
:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 3px;
  border-radius: 8px;
}

/* ---------- 布局工具 ---------- */
/* 超宽屏（2K/4K）进一步放宽，最大占视口约 92%，避免左右留白过多 */
@media (min-width: 1680px) {
  :root { --container: 1440px; }
}
@media (min-width: 1920px) {
  :root { --container: 1560px; }
}
.container {
  width: min(var(--container), calc(100% - 48px));
  margin-inline: auto;
}
.container-narrow { width: min(820px, calc(100% - 48px)); }

.section { padding: 88px 0; scroll-margin-top: var(--header-h); }
.section-soft { background: rgba(255, 250, 245, 0.5); }

.section-head { max-width: 720px; margin-bottom: 48px; }
.section-head h2,
.results-copy h2,
.about-copy h2,
.contact-copy h2,
.contact-lead h2 {
  font-size: clamp(24px, 3.2vw, 34px);
  margin: 14px 0 16px;
}
.section-lead { color: var(--ink-2); font-size: 17px; }

/* ---------- 小组件 ---------- */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--brand-deep);
}
.eyebrow .dot {
  width: 6px; height: 6px;
  border-radius: 1px;
  background: var(--brand);
  box-shadow: 0 0 0 3px rgba(255, 133, 0, 0.16);
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 46px;
  padding: 0 26px;
  border: 0;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  transition: transform 0.2s var(--ease), box-shadow 0.2s var(--ease),
    background-color 0.2s var(--ease), border-color 0.2s var(--ease);
}
/* 玻璃质感按钮：半透明 + 模糊 + 顶部高光 */
.btn-primary {
  background: linear-gradient(180deg, rgba(255, 153, 51, 0.92), rgba(240, 120, 0, 0.92));
  -webkit-backdrop-filter: blur(8px) saturate(160%);
  backdrop-filter: blur(8px) saturate(160%);
  color: #fff;                     /* 橙玻璃白字 */
  border: 1px solid rgba(255, 255, 255, 0.35);
  box-shadow: 0 10px 24px rgba(255, 133, 0, 0.32), var(--glass-inset);
}
.btn-primary:hover {
  background: linear-gradient(180deg, rgba(255, 165, 70, 0.96), rgba(245, 128, 0, 0.96));
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(240, 120, 0, 0.38), var(--glass-inset);
}
.btn-ghost {
  background: rgba(255, 255, 255, 0.55);
  -webkit-backdrop-filter: blur(8px) saturate(160%);
  backdrop-filter: blur(8px) saturate(160%);
  color: var(--brand-deep);
  border: 1px solid var(--glass-border-brand);
  box-shadow: 0 6px 16px rgba(22, 27, 40, 0.08);
}
.btn-ghost:hover {
  border-color: var(--brand);
  color: var(--brand);
  transform: translateY(-2px);
}
/* 顶栏「预约咨询」：玻璃白底 + 主题橙字 + 主题橙边框 */
.btn-brand {
  background: rgba(255, 255, 255, 0.6);
  -webkit-backdrop-filter: blur(8px) saturate(160%);
  backdrop-filter: blur(8px) saturate(160%);
  color: var(--brand);
  border: 1px solid rgba(255, 133, 0, 0.42);
  font-weight: 600;
}
.btn-brand:hover {
  background: rgba(255, 245, 233, 0.82);
  border-color: var(--brand);
  color: var(--brand);
  transform: translateY(-2px);
}
.btn-sm { height: 38px; padding: 0 18px; font-size: 14px; }
.btn-lg { height: 52px; padding: 0 34px; font-size: 16px; }
.btn-block { width: 100%; }

.card {
  --accent: var(--brand);
  --accent-soft: rgba(255, 133, 0, 0.45);
  --accent-ink: var(--brand-deep);
  --icon-grad: var(--brand-grad);
  background: #fff;
  border: 0;
  border-radius: var(--radius-l);
  padding: 28px;
  box-shadow: var(--shadow-l);
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
/* 玻璃风格：移除 HUD 直角装饰，保持纯净 */
.card::before,
.card::after {
  display: none;
}
.card:not(.contact-form):hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-l);
}
.card:not(.contact-form):hover::before,
.card:not(.contact-form):hover::after { opacity: 1; transform: none; }
.card-icon { transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease); }
.card:not(.contact-form):hover .card-icon {
  transform: scale(1.08);
  box-shadow: 0 12px 26px rgba(22, 27, 40, 0.20);
}
.card h3 { transition: color 0.25s var(--ease); }
.card:not(.contact-form):hover h3 { color: var(--accent-ink); }

.card-icon {
  width: 48px; height: 48px;
  display: grid;
  place-items: center;
  border-radius: var(--radius-m);
  background: var(--icon-grad);
  color: #fff;
  margin-bottom: 18px;
  box-shadow: 0 6px 16px rgba(22, 27, 40, 0.16);
}
.card-icon svg { width: 24px; height: 24px; }

.card h3 { font-size: 18px; margin-bottom: 10px; }
.card p { color: var(--ink-2); font-size: 15px; }

.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }

/* 对勾列表 */
.tick-list { display: grid; gap: 10px; }
.tick-list li {
  position: relative;
  padding-left: 28px;
  color: var(--ink-2);
  font-size: 15px;
}
.tick-list li::before {
  content: "";
  position: absolute;
  left: 0; top: 0.42em;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: var(--brand-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%23f07800' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    center / 10px no-repeat;
}
.tick-list-lg li { font-size: 16px; line-height: 1.6; }
.tick-list strong { color: var(--ink); }

/* ---------- 顶部导航 ---------- */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  height: var(--header-h);
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: blur(14px) saturate(180%);
  -webkit-backdrop-filter: blur(14px) saturate(180%);
  border-bottom: 1px solid var(--glass-border);
  transition: border-color 0.3s, box-shadow 0.3s, background 0.3s;
}
.site-header.scrolled {
  border-bottom-color: var(--glass-border);
  background: rgba(255, 255, 255, 0.72);
  box-shadow: var(--shadow-s);
}
.header-inner {
  height: var(--header-h);
  display: flex;
  align-items: center;
  gap: 28px;
}
.brand { display: inline-flex; align-items: center; gap: 10px; }
.brand-mark { width: 36px; height: 36px; flex: none; }
.brand-name { font-size: 19px; font-weight: 800; letter-spacing: 0.02em; color: var(--ink); }
.brand-name i { font-style: normal; color: var(--ink); margin-left: 2px; }
/* 顶栏 logo 与字标（用户要求放大） */
.site-header .brand-mark { width: 36px; height: 36px; }
.site-header .brand-name { font-size: 20px; letter-spacing: 0.02em; }

/* 主导航：占满中间宽度并居中，选项间距加大、按内容自适应（非等宽） */
.main-nav { flex: 1 1 auto; display: flex; justify-content: center; align-items: center; gap: clamp(28px, 3.5vw, 56px); margin-left: clamp(16px, 3vw, 40px); flex-wrap: nowrap; }
.main-nav a { flex: 0 1 auto; white-space: nowrap; }
.main-nav a {
  font-size: 17px;
  color: var(--ink-2);
  position: relative;
  padding: 4px 0;
  transition: color 0.2s;
}
.main-nav a::after {
  content: "";
  position: absolute;
  left: 0; right: 100%;
  bottom: 0;
  height: 2px;
  border-radius: 2px;
  background: var(--brand);
  transition: right 0.25s var(--ease);
}
.main-nav a:hover { color: var(--ink); }
.main-nav a:hover::after { right: 0; }
/* 当前页导航项选中效果：橙色加粗 + 橙色下划线，无背景 */
.main-nav a[aria-current="page"] {
  color: var(--brand);
  font-weight: 700;
}
.main-nav a[aria-current="page"]::after { right: 0; }
.main-nav a[aria-current="page"]:hover { color: var(--brand); }

.header-actions { margin-left: auto; display: flex; align-items: center; gap: 14px; }

.nav-toggle {
  display: none;
  width: 40px; height: 40px;
  border: 1px solid var(--glass-border-brand);
  border-radius: var(--radius-s);
  background: rgba(255, 255, 255, 0.6);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: var(--ink);
  cursor: pointer;
  padding: 9px;
}
.nav-toggle svg { width: 100%; height: 100%; }

/* ---------- Hero ---------- */
/* 首屏容器：Hero + 波浪 + 数据条 合撑一屏（内容过高时整体增高，不裁切） */
.hero-screen { display: flex; flex-direction: column; min-height: 100vh; }
.hero {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  align-items: center;
  padding: calc(var(--header-h) + 32px) 0 36px;
  overflow-x: hidden;
  background: transparent;
}
.hero-copy h1 {
  font-size: clamp(34px, 4.4vw, 52px);
  line-height: 1.2;
  letter-spacing: 0.005em;
  margin: 18px 0 20px;
}
.hero-sub {
  font-size: 16.5px;
  line-height: 1.75;
  color: var(--ink-2);
  max-width: 560px;
  margin-bottom: 30px;
}
.hero-cta { display: flex; flex-wrap: wrap; gap: 14px; }
.hero-note { margin-top: 16px; font-size: 13.5px; color: var(--ink-3); }

/* Hero 标题关键词高亮 */
.hl {
  background: var(--brand-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ---------- 设计增强：Hero 左右分栏 / 引擎条 / HUD 细线 ---------- */
/* 左文右图两栏布局：左侧文案，右侧截图 + 覆盖引擎 */
.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr);
  gap: 56px;
  align-items: center;
  /* 幻灯片内内容宽度与页面 .container 一致：左右各 24px 留白，和其他模块对齐 */
  width: min(var(--container), calc(100% - 48px));
  margin-inline: auto;
}
.hero-copy { text-align: left; }
.hero .container { position: relative; z-index: 1; }

.engine-strip { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; margin-top: 22px; }
.engine-strip .es-label { font-size: 12.5px; font-weight: 600; color: var(--ink-3); margin-right: 2px; }
.engine-strip li:not(.es-label) {
  font-size: 13px;
  color: var(--ink-2);
  padding: 5px 13px;
  background: rgba(255, 255, 255, 0.6);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  border: 1px solid var(--glass-border);
  border-radius: 999px;
  transition: border-color 0.2s, color 0.2s, transform 0.2s var(--ease), box-shadow 0.2s;
}
.engine-strip li:not(.es-label):hover {
  border-color: var(--brand);
  color: var(--brand-deep);
  transform: translateY(-2px);
  box-shadow: var(--shadow-s);
}

/* AI 回答证据卡（Hero 右侧视觉锚点）—— 不再右侧内退，右卡与容器右缘对齐 */
.hero-visual { display: grid; gap: 0; }
.hero-proof { margin-top: 0; max-width: none; margin-inline: 0; }
.proof-card {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-l);
  box-shadow: var(--shadow-l), var(--glass-inset);
  overflow: hidden;
  text-align: left;
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(160%);
  backdrop-filter: blur(var(--glass-blur)) saturate(160%);
}
.proof-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px;
  border-bottom: 1px solid var(--line-soft);
  background: rgba(255, 255, 255, 0.4);
}
.proof-dots { display: inline-flex; gap: 5px; }
.proof-dots i { width: 9px; height: 9px; border-radius: 50%; background: var(--line); }
.proof-dots i:first-child { background: #ffbd7a; }
.proof-title { font-size: 12.5px; color: var(--ink-3); }
.proof-q {
  margin: 0;
  padding: 16px 20px 4px;
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
}
.proof-a { padding: 4px 20px 20px; }
.proof-a > p { font-size: 14px; color: var(--ink-2); margin-bottom: 8px; }
.proof-a ul { display: grid; gap: 8px; padding-left: 18px; margin: 0 0 14px; }
.proof-a li { list-style: disc; font-size: 14px; color: var(--ink-2); line-height: 1.7; }
.mention {
  background: var(--brand-tint);
  color: var(--brand-deep);
  padding: 1px 7px;
  border-radius: 5px;
  font-weight: 700;
}
.proof-src {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--ink-3);
  border-top: 1px dashed var(--line);
  padding-top: 12px;
}
.proof-src em {
  font-style: normal;
  padding: 2px 9px;
  border-radius: 999px;
  background: var(--brand-tint);
  color: var(--brand-deep);
}
.hero-proof-cap { margin-top: 14px; text-align: center; font-size: 12.5px; line-height: 1.6; color: var(--ink-3); }

/* 轮播中非首屏大标题沿用 h1 视觉（页面仅保留一个 h1） */
.hero-copy h2.hero-title {
  font-size: clamp(34px, 4.4vw, 52px);
  line-height: 1.2;
  letter-spacing: 0.005em;
  margin: 18px 0 20px;
  font-weight: 700;
}

/* ---------- Hero 轮播（首页多项目左右滚动切换） ---------- */
/* 轮播盒与 hero 同宽（满屏宽）；幻灯片内部内容由 .hero-grid 约束到 .container 宽度，
   左右各 24px 留白，与其他页面模块对齐。底部留白给圆点。
   裁切交给内层 .hero-viewport。左右箭头 position:absolute 悬浮不占宽 */
.hero-carousel {
  position: relative;
  padding: 0 0 40px;
}
.hero-viewport { position: relative; overflow: hidden; }
.hero-track { display: flex; transition: transform 0.55s var(--ease); will-change: transform; }
/* min-width:0 关键：防止 flex 项因内容过宽而超出 100%，否则平移的不是“一整张”导致邻页从左右露出 */
.hero-slide { flex: 0 0 100%; width: 100%; min-width: 0; }

/* 项目展示卡（轮播右侧视觉，按产品线取六色强调） */
.proj-card {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-l);
  box-shadow: var(--shadow-l), var(--glass-inset);
  overflow: hidden;
  text-align: left;
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(160%);
  backdrop-filter: blur(var(--glass-blur)) saturate(160%);
}
.proj-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 22px;
  border-bottom: 1px solid var(--line-soft);
  background: rgba(255, 255, 255, 0.4);
}
.proj-ico {
  width: 44px; height: 44px; flex: none;
  display: grid; place-items: center;
  border-radius: var(--radius-m);
  background: var(--accent, var(--brand));
  color: #fff;
  box-shadow: 0 6px 14px rgba(22, 27, 40, 0.16);
}
.proj-ico svg { width: 23px; height: 23px; }
.proj-head strong { display: block; font-size: 16px; color: var(--ink); }
.proj-head span { font-size: 12.5px; color: var(--ink-3); }
.proj-list { padding: 16px 22px 2px; display: grid; gap: 11px; }
.proj-list li { position: relative; padding-left: 26px; font-size: 14.5px; color: var(--ink-2); }
.proj-list li::before {
  content: "";
  position: absolute; left: 0; top: 0.45em;
  width: 16px; height: 16px; border-radius: 50%;
  background: var(--accent-soft, var(--brand-tint)) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%23f07800' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 10px no-repeat;
}
.proj-foot {
  margin: 12px 22px 20px;
  padding: 10px 14px;
  border-radius: var(--radius-s);
  background: var(--accent-soft, var(--brand-tint));
  color: var(--accent-ink, var(--brand-deep));
  font-size: 13px; font-weight: 600;
}

/* 强调色工具类（供轮播卡取六色） */
.ac-c1 { --accent: var(--c1); --accent-soft: var(--c1-soft); --accent-ink: var(--c1-ink); }
.ac-c2 { --accent: var(--c2); --accent-soft: var(--c2-soft); --accent-ink: var(--c2-ink); }
.ac-c3 { --accent: var(--c3); --accent-soft: var(--c3-soft); --accent-ink: var(--c3-ink); }
.ac-c4 { --accent: var(--c4); --accent-soft: var(--c4-soft); --accent-ink: var(--c4-ink); }
.ac-c5 { --accent: var(--c5); --accent-soft: var(--c5-soft); --accent-ink: var(--c5-ink); }
.ac-c6 { --accent: var(--c6); --accent-soft: var(--c6-soft); --accent-ink: var(--c6-ink); }

/* 轮播控制：左右箭头 + 底部圆点 */
.hero-arrow {
  position: absolute;
  top: calc(50% - 20px);
  transform: translateY(-50%);
  z-index: 4;
  width: 44px; height: 44px;
  display: grid; place-items: center;
  border: 1px solid var(--glass-border);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.55);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  color: var(--ink-2);
  cursor: pointer;
  box-shadow: var(--shadow-s), var(--glass-inset);
  transition: color 0.2s, border-color 0.2s, background 0.2s, transform 0.2s var(--ease);
}
.hero-arrow:hover { color: var(--brand); border-color: var(--brand); transform: translateY(-50%) scale(1.06); }
.hero-arrow svg { width: 20px; height: 20px; }
.hero-prev { left: 18px; }
.hero-next { right: 18px; }

.hero-dots {
  position: absolute;
  left: 0; right: 0;
  bottom: 0;
  display: flex; justify-content: center; align-items: center;
  gap: 9px;
  z-index: 4;
}
.hero-dot {
  width: 9px; height: 9px;
  padding: 0; border: 0;
  border-radius: 50%;
  background: var(--line);
  cursor: pointer;
  transition: background 0.25s var(--ease), width 0.25s var(--ease), border-radius 0.25s;
}
.hero-dot:hover { background: var(--brand-tint-2); }
.hero-dot.is-active { width: 26px; border-radius: 999px; background: var(--brand); }
@media (max-width: 860px) { .hero-arrow { display: none; } }

.wave { line-height: 0; flex: none; }
.wave svg { display: block; width: 100%; height: 56px; }
.wave svg path { fill: var(--brand); }

/* 卡片作为定位上下文（供装饰定位使用） */
.card { position: relative; }

/* CTA 区装饰光斑 */
.cta-band { position: relative; overflow: hidden; }
.cta-band::after {
  content: "";
  position: absolute;
  width: 420px; height: 420px;
  right: -120px; top: -160px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.18), transparent 65%);
  pointer-events: none;
}

/* ---------- 数据条 ---------- */
.stats { background: var(--brand); flex: none; }
.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  padding: 36px 0;
}
.stat { display: grid; gap: 4px; text-align: center; position: relative; }
.stat + .stat::before {
  content: "";
  position: absolute;
  left: -12px; top: 50%;
  transform: translateY(-50%);
  width: 1px; height: 34px;
  background: rgba(255, 255, 255, 0.28);
}
.stat-num {
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 800;
  color: #fff;
  font-variant-numeric: tabular-nums;
}
.stat-label { font-size: 14px; color: rgba(255, 255, 255, 0.9); }

/* ---------- SEO / GEO 对比表 ---------- */
.compare {
  margin-top: 48px;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-l);
  overflow: hidden;
  background: var(--glass-bg);
  box-shadow: var(--shadow-s), var(--glass-inset);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(160%);
  backdrop-filter: blur(var(--glass-blur)) saturate(160%);
}
.compare table caption {
  text-align: left;
  font-size: 16px;
  font-weight: 700;
  padding: 20px 24px;
  border-bottom: 1px solid var(--line-soft);
  background: rgba(255, 255, 255, 0.45);
}
.compare th, .compare td {
  text-align: left;
  padding: 14px 24px;
  font-size: 15px;
  border-bottom: 1px solid var(--line-soft);
  vertical-align: top;
}
.compare thead th { font-size: 14px; color: var(--ink-3); font-weight: 600; }
.compare .th-brand { color: var(--brand); }
.compare tbody th { color: var(--ink); font-weight: 600; width: 130px; }
.compare td { color: var(--ink-2); }
.compare .td-brand {
  background: var(--bg);
  color: var(--brand);
  font-weight: 700;
}
.compare tbody tr:last-child th,
.compare tbody tr:last-child td { border-bottom: 0; }
.compare-note {
  padding: 16px 24px;
  font-size: 13.5px;
  color: var(--ink-3);
  background: rgba(255, 255, 255, 0.45);
  border-top: 1px solid var(--line-soft);
}

/* ---------- 工作流程 ---------- */
.steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  counter-reset: step;
}
.step {
  position: relative;
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-l);
  padding: 26px 28px;
  box-shadow: var(--glass-shadow), var(--glass-inset);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(160%);
  backdrop-filter: blur(var(--glass-blur)) saturate(160%);
  transition: transform 0.28s var(--ease), box-shadow 0.28s var(--ease), border-color 0.28s var(--ease);
}
.step:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-l);
}
.step-num { transition: transform 0.28s var(--ease); }
.step:hover .step-num { transform: scale(1.08); }
.step-num {
  display: inline-grid;
  place-items: center;
  width: 42px; height: 42px;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #fff;
  background: var(--brand-grad);
  border-radius: 50%;
  margin-bottom: 16px;
  box-shadow: 0 6px 14px rgba(22, 27, 40, 0.16);
}
.step h3 { font-size: 17px; margin-bottom: 8px; }
.step p { color: var(--ink-2); font-size: 14.5px; }
/* 步骤间连接线已按需求移除（不再用横线链接） */

/* ---------- 产品 / 行业 / 优势卡片 ---------- */
.product-card ul { margin-top: 14px; }

/* 产品能力：Bento 大小卡混排 */
/* 产品能力：四卡均分等宽（同列同高），不再一大两小 */
.bento-products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}
.bento-products .product-card {
  display: flex;
  flex-direction: column;
}
/* 勾选列表推到卡片底部，四卡底边对齐 */
.bento-products .product-card .tick-list { margin-top: auto; }
.bento-products .product-card h3 { font-size: 18px; }
.bento-products .product-card p { font-size: 14.5px; }
@media (max-width: 1180px) {
  .bento-products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .bento-products { grid-template-columns: 1fr; }
}

.industry-card {
  background: var(--bg);
  border-color: var(--line);
}
.industry-card .card-icon { box-shadow: 0 6px 16px rgba(22, 27, 40, 0.16); }
.industry-card p { font-size: 14.5px; }
.feature-card p { font-size: 14.5px; }

/* ---------- 卡片/步骤按序号取六色（模块内不重复） ---------- */
.card:nth-child(1) { --accent: var(--c1); --accent-soft: var(--c1-soft); --accent-ink: var(--c1-ink); --icon-grad: var(--c1-grad); }
.card:nth-child(2) { --accent: var(--c2); --accent-soft: var(--c2-soft); --accent-ink: var(--c2-ink); --icon-grad: var(--c2-grad); }
.card:nth-child(3) { --accent: var(--c3); --accent-soft: var(--c3-soft); --accent-ink: var(--c3-ink); --icon-grad: var(--c3-grad); }
.card:nth-child(4) { --accent: var(--c4); --accent-soft: var(--c4-soft); --accent-ink: var(--c4-ink); --icon-grad: var(--c4-grad); }
.card:nth-child(5) { --accent: var(--c5); --accent-soft: var(--c5-soft); --accent-ink: var(--c5-ink); --icon-grad: var(--c5-grad); }
.card:nth-child(6) { --accent: var(--c6); --accent-soft: var(--c6-soft); --accent-ink: var(--c6-ink); --icon-grad: var(--c6-grad); }

/* 工作流程步骤徽标：六色依次 */
/* 工作流程步骤：六色依次（徽标 + 悬停主题色） */
.steps .step:nth-child(1) { --accent: var(--c1); --accent-grad: var(--c1-grad); --accent-soft: var(--c1-soft); }
.steps .step:nth-child(2) { --accent: var(--c2); --accent-grad: var(--c2-grad); --accent-soft: var(--c2-soft); }
.steps .step:nth-child(3) { --accent: var(--c3); --accent-grad: var(--c3-grad); --accent-soft: var(--c3-soft); }
.steps .step:nth-child(4) { --accent: var(--c4); --accent-grad: var(--c4-grad); --accent-soft: var(--c4-soft); }
.steps .step:nth-child(5) { --accent: var(--c5); --accent-grad: var(--c5-grad); --accent-soft: var(--c5-soft); }
.steps .step:nth-child(6) { --accent: var(--c6); --accent-grad: var(--c6-grad); --accent-soft: var(--c6-soft); }
.step:nth-child(1) .step-num { background: var(--c1-grad); box-shadow: 0 6px 14px rgba(22, 27, 40, 0.16); }
.step:nth-child(2) .step-num { background: var(--c2-grad); box-shadow: 0 6px 14px rgba(8, 145, 178, 0.22); }
.step:nth-child(3) .step-num { background: var(--c3-grad); box-shadow: 0 6px 14px rgba(124, 58, 237, 0.22); }
.step:nth-child(4) .step-num { background: var(--c4-grad); box-shadow: 0 6px 14px rgba(37, 99, 235, 0.22); }
.step:nth-child(5) .step-num { background: var(--c5-grad); box-shadow: 0 6px 14px rgba(13, 148, 136, 0.22); }
.step:nth-child(6) .step-num { background: var(--c6-grad); box-shadow: 0 6px 14px rgba(225, 29, 72, 0.22); }
/* （步骤连接线已移除，以下 .step::after 颜色规则一并删除） */

/* ---------- 数据效果 ---------- */
.results-grid {
  display: grid;
  grid-template-columns: 0.92fr 1.08fr;
  gap: 56px;
  align-items: center;
}
.results-copy p { color: var(--ink-2); margin-bottom: 22px; }
.results-copy .tick-list-lg { margin-bottom: 30px; }

.chart-card {
  margin: 0;
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-l);
  padding: 28px;
  box-shadow: var(--shadow-m), var(--glass-inset);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(160%);
  backdrop-filter: blur(var(--glass-blur)) saturate(160%);
}
.chart-card figcaption {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 22px;
}
.chart { display: grid; gap: 22px; }
.chart-row { display: grid; gap: 8px; }
.chart-name { font-size: 14px; color: var(--ink-2); font-weight: 600; }
.chart-bars { display: grid; gap: 6px; }
.bar {
  position: relative;
  height: 26px;
  border-radius: 6px;
  width: 0;
  transition: width 1s var(--ease);
}
.in-view .bar { width: var(--w, 0); }
.bar span {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 13px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.bar-before { background: #e3e6ee; }
.bar-before span { color: var(--ink-2); }
.bar-after { background: linear-gradient(90deg, #ff9e2c, var(--brand)); }
.bar-after span { color: #fff; }

.chart-legend {
  display: flex;
  gap: 20px;
  margin-top: 20px;
  font-size: 13px;
  color: var(--ink-3);
}
.chart-legend span { display: inline-flex; align-items: center; gap: 7px; }
.key { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.key-before { background: #e3e6ee; }
.key-after { background: var(--brand); }
.chart-note {
  margin-top: 16px;
  font-size: 12.5px;
  color: var(--ink-3);
  line-height: 1.6;
}

/* ---------- 案例 ---------- */
.case-card .case-tag {
  display: inline-block;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--brand-deep);
  background: var(--brand-tint);
  border-radius: 999px;
  padding: 3px 12px;
  margin-bottom: 14px;
}
.case-card h3 { font-size: 17px; margin-bottom: 12px; }
.case-card .case-result {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 10px;
  padding: 12px 16px;
  margin-bottom: 16px;
  background: linear-gradient(120deg, var(--brand-tint) 0%, #fff 100%);
  border-radius: var(--radius-m);
}
.case-card .cr-num {
  font-size: 26px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.01em;
  color: var(--brand);
  font-variant-numeric: tabular-nums;
}
.case-card .cr-text { font-size: 13.5px; color: var(--ink-2); }
.case-card dl { display: grid; gap: 8px; }
.case-card dt {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink-3);
  letter-spacing: 0.04em;
}
.case-card dd { font-size: 14.5px; color: var(--ink-2); margin: 0; }
.case-card dd:last-of-type { color: var(--ink); font-weight: 500; }

/* 案例卡片统一品牌橙：hover 标题色与卡片橙色调一致，不再取六色强调 */
.card.case-card {
  --accent: var(--brand);
  --accent-soft: rgba(255, 133, 0, 0.45);
  --accent-ink: var(--brand-deep);
  --icon-grad: var(--brand-grad);
}

/* ---------- 客户评价 ---------- */
.quote-card { display: grid; gap: 16px; align-content: start; }
.quote-mark { width: 28px; height: 28px; color: var(--brand); }
.quote-card blockquote {
  margin: 0;
  font-size: 15.5px;
  line-height: 1.85;
  color: var(--ink);
}
.quote-card figcaption { display: flex; align-items: center; gap: 12px; }
.avatar {
  width: 42px; height: 42px;
  flex: none;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--brand);
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  box-shadow: 0 4px 12px rgba(22, 27, 40, 0.16);
}
.quote-card figcaption strong { display: block; font-size: 14.5px; }
.quote-card figcaption i { display: block; font-style: normal; font-size: 13px; color: var(--ink-3); }

/* ---------- GEO 系统平台（进入系统模块） ---------- */
.platform-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;   /* 四步闭环流程与截图平分屏幕 */
  gap: 48px;
  align-items: start;
}
.platform-head { margin-bottom: 36px; }
.platform-title {
  font-size: 26px;
  margin-bottom: 12px;
  color: var(--brand);              /* 小标题为主题色 */
}
.platform-desc {
  font-size: 16px;
  color: var(--ink-2);              /* 与上方 section-lead 描述同色 */
  margin: 0;
}

/* 四步闭环流程：简洁纵向列表，品牌橙序号 + 细分隔线 */
.platform-sub {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--brand-deep);
  margin: 4px 0 8px;
}
.platform-steps {
  list-style: none;
  margin: 0 0 30px;
  padding: 0;
}
.platform-steps li { display: flex; gap: 14px; align-items: flex-start; padding: 15px 0; border-bottom: 1px solid var(--line); }
.platform-steps li:last-child { border-bottom: none; }
.ps-num {
  flex: none;
  width: 28px; height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--brand);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  margin-top: 1px;
}
/* 四步序号：壹/贰/叁/肆 各用不同主题色 */
.platform-steps li:nth-child(1) .ps-num { background: var(--c1); }
.platform-steps li:nth-child(2) .ps-num { background: var(--c2); }
.platform-steps li:nth-child(3) .ps-num { background: var(--c3); }
.platform-steps li:nth-child(4) .ps-num { background: var(--c4); }
.platform-steps strong { display: block; font-size: 17px; margin-bottom: 4px; color: var(--ink); }
.platform-steps p { font-size: 15px; color: var(--ink-3); line-height: 1.65; margin: 0; }
/* 序号徽标样式已迁移至 .ps-num */

/* 内置 AI 工具 chips */
.platform-tools {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 26px;
}
.platform-tools .pt-label {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink-3);
  margin-right: 2px;
}
.platform-tools em {
  font-style: normal;
  font-size: 12.5px;
  color: var(--brand-deep);
  background: var(--brand-tint);
  border-radius: 999px;
  padding: 5px 12px;
}

.platform-cta { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; }
.platform-note { margin: 0; font-size: 13.5px; color: var(--ink-3); }
.platform-note a { color: var(--brand-deep); font-weight: 600; }
.platform-note a:hover { text-decoration: underline; }
.platform-cap { margin-top: 14px; text-align: center; font-size: 12.5px; color: var(--ink-3); }

/* 系统界面截图（真实工作台） */
.sys-shot {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-l);
  box-shadow: 0 28px 60px rgba(22, 27, 40, 0.12), 0 6px 16px rgba(22, 27, 40, 0.06), var(--glass-inset);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(160%);
  backdrop-filter: blur(var(--glass-blur)) saturate(160%);
  overflow: hidden;
}
.sys-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 14px;
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.5);
}
.sys-dots { display: flex; gap: 6px; }
.sys-dots i { width: 9px; height: 9px; border-radius: 50%; background: var(--line); }
.sys-dots i:first-child { background: #ff5f57; }
.sys-dots i:nth-child(2) { background: #febc2e; }
.sys-dots i:last-child { background: #28c840; }
.sys-url {
  flex: 1;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11.5px;
  color: var(--ink-3);
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid var(--glass-border);
  border-radius: 999px;
  padding: 4px 12px;
}
.sys-img { display: block; width: 100%; height: auto; }

@media (max-width: 1024px) {
  .platform-grid { grid-template-columns: 1fr; gap: 40px; }
}

/* ---------- FAQ ---------- */
.faq-list {
  display: grid;
  border-top: 1px solid var(--line);   /* 顶部封口，与分隔线呼应 */
}
.faq-item {
  background: transparent;             /* 与背景融为一体，淡化卡片形状 */
  border: none;
  border-bottom: 1px solid var(--line);/* 仅用一条浅灰线分隔 */
  border-radius: 0;
  overflow: hidden;
}
.faq-item[open] { background: transparent; }   /* 展开不改底色，仍是白 */
.faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
  list-style: none;
  padding: 18px 0;
  font-size: 16px;
  font-weight: 600;
  color: var(--ink);
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-icon {
  position: relative;
  flex: none;
  width: 26px; height: 26px;
  border-radius: 50%;
  background: var(--brand);            /* 主题橙底 */
  border: 1px solid transparent;       /* 占位，保证开合尺寸一致 */
  transition: background 0.22s var(--ease), border-color 0.22s var(--ease);
}
.faq-icon::before, .faq-icon::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 11px; height: 2px;
  border-radius: 2px;
  background: #fff;                    /* 白色加号 */
  transition: transform 0.25s var(--ease), background 0.22s var(--ease);
}
.faq-icon::after { transform: rotate(90deg); }
.faq-item[open] .faq-icon { background: #fff; border-color: var(--brand); }            /* 减号反之：白底橙边 */
.faq-item[open] .faq-icon::before,
.faq-item[open] .faq-icon::after { background: var(--brand); }                          /* 橙色减号 */
.faq-item[open] .faq-icon::after { transform: rotate(180deg); }
/* 平滑展开：高度过渡，避免原生 details 的瞬间切换 */
.faq-body {
  height: 0;
  overflow: hidden;
  padding: 0;
  transition: height 0.34s var(--ease);
}
.faq-body p { color: var(--ink-2); font-size: 15px; padding: 0 0 20px; }

/* ---------- 关于我们 ---------- */
.about-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 56px;
  align-items: start;
}
.about-copy p { color: var(--ink-2); margin-bottom: 20px; }
.about-copy .tick-list-lg { margin-bottom: 28px; }

.about-side-title {
  font-size: 15px;
  color: var(--ink-3);
  letter-spacing: 0.06em;
  margin-bottom: 16px;
}
.group-card {
  position: relative;
  display: grid;
  gap: 3px;
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-m);
  padding: 18px 52px 18px 20px;
  margin-bottom: 14px;
  box-shadow: var(--glass-shadow), var(--glass-inset);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(160%);
  backdrop-filter: blur(var(--glass-blur)) saturate(160%);
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s var(--ease);
}
.group-card:hover {
  box-shadow: var(--shadow-m);
  transform: translateY(-2px);
}
.group-card-name { font-weight: 700; font-size: 15.5px; }
.group-card-desc { font-size: 13.5px; color: var(--ink-2); }
.group-card-url { font-size: 12.5px; color: var(--brand-deep); }
.group-card > svg {
  position: absolute;
  right: 18px; top: 50%;
  transform: translateY(-50%);
  width: 18px; height: 18px;
  color: var(--ink-4);
}
.group-card:hover > svg { color: var(--brand-deep); }

/* ---------- 联系表单 ---------- */
.contact-head { margin-bottom: 20px; }   /* 标题独占一行 */
.contact-lead { margin-bottom: 36px; }   /* 引导文案整行撑满宽度 */
.contact-lead p { color: var(--ink-2); margin: 0; font-size: 17px; line-height: 1.7; }
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;   /* 二分页面 */
  gap: 56px;
  align-items: center;              /* 两列在交叉轴（垂直）居中对齐 */
}
.contact-copy .tick-list-lg { margin-bottom: 0; }
.contact-info { display: grid; gap: 10px; }
.contact-info p {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14.5px;
  color: var(--ink-2);
  margin: 0;
}
.contact-info svg { width: 18px; height: 18px; flex: none; color: var(--brand-deep); }
.contact-info a {
  color: var(--ink);
  font-weight: 600;
  border-bottom: 1px solid var(--brand-tint-2);
  transition: color 0.2s, border-color 0.2s;
}
.contact-info a:hover { color: var(--brand-deep); border-color: var(--brand); }
.contact-card h3 { margin-bottom: 16px; }
.contact-card .contact-info { margin-bottom: 16px; }
.contact-card-note { font-size: 13.5px; color: var(--ink-3); line-height: 1.6; }

.contact-form { padding: 30px; }
.form-row { display: grid; gap: 6px; margin-bottom: 16px; }
.form-row label { font-size: 14px; font-weight: 600; color: var(--ink); }
.form-row label i { font-style: normal; color: var(--brand); }
.form-row input,
.form-row select,
.form-row textarea {
  width: 100%;
  font: inherit;
  font-size: 14.5px;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.6);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  border: 1px solid var(--glass-border-brand);
  border-radius: var(--radius-s);
  padding: 10px 14px;
  transition: border-color 0.2s, box-shadow 0.2s;
  appearance: none;
}
.form-row textarea { resize: vertical; min-height: 88px; }
.form-row select {
  background: var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%236b7488' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    right 12px center / 14px no-repeat;
  padding-right: 36px;
}
.form-row input:focus,
.form-row select:focus,
.form-row textarea:focus {
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(255, 133, 0, 0.15);
}
.form-row.invalid input,
.form-row.invalid select { border-color: #e5484d; }
.form-error { font-size: 12.5px; color: #e5484d; min-height: 0; }
.form-note { margin-top: 12px; font-size: 12.5px; color: var(--ink-4); text-align: center; }

.form-success[hidden] { display: none; }
.form-success {
  display: grid;
  gap: 4px;
  margin-top: 16px;
  border: 1px solid var(--brand-tint-2);
  background: var(--brand-tint);
  border-radius: var(--radius-m);
  padding: 14px 18px;
}
.form-success strong { color: var(--brand-deep); font-size: 15px; }
.form-success span { font-size: 13.5px; color: var(--ink-2); }

/* ---------- 底部 CTA ---------- */
.cta-band {
  background: var(--glass-bg-strong);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(160%);
  backdrop-filter: blur(var(--glass-blur)) saturate(160%);
  border-block: 1px solid var(--glass-border);
  box-shadow: var(--glass-shadow), var(--glass-inset);
}
.cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 56px 0;
}
.cta-inner h2 { font-size: clamp(22px, 2.6vw, 30px); line-height: 1.35; color: var(--ink-1); }
.cta-inner p { color: var(--ink-2); margin-top: 10px; }
.cta-band .btn-primary { background: var(--brand-grad); color: #fff; border: 1px solid rgba(255, 255, 255, 0.5); box-shadow: 0 12px 28px rgba(255, 133, 0, 0.34), var(--glass-inset); -webkit-backdrop-filter: blur(8px) saturate(160%); backdrop-filter: blur(8px) saturate(160%); }
.cta-band .btn-primary:hover { background: linear-gradient(180deg, #ffa033, #f07800); }

/* ---------- 页脚 ---------- */
.site-footer {
  background: rgba(255, 255, 255, 0.6);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  backdrop-filter: blur(16px) saturate(160%);
  border-top: 1px solid var(--glass-border);
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 40px;
  padding: 56px 0 44px;
}
.footer-brand p { font-size: 14px; color: var(--ink-2); margin: 16px 0 18px; max-width: 300px; }
.footer-group-links { display: flex; flex-wrap: wrap; gap: 8px; }
.footer-group-links a {
  font-size: 12.5px;
  color: var(--ink-2);
  border: 1px solid var(--glass-border-brand);
  background: rgba(255, 255, 255, 0.55);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border-radius: 999px;
  padding: 4px 12px;
  transition: color 0.2s, border-color 0.2s, background 0.2s;
}
.footer-group-links a:hover { color: var(--brand-deep); border-color: var(--brand-tint-2); }

.footer-col { display: grid; gap: 12px; align-content: start; }
.footer-col h3 { font-size: 14px; letter-spacing: 0.06em; color: var(--ink); margin-bottom: 4px; }
.footer-col a { font-size: 14px; color: var(--ink-2); transition: color 0.2s; width: fit-content; }
.footer-col a:hover { color: var(--brand-deep); }

.footer-bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 18px 0;
  border-top: 1px solid var(--line);
  font-size: 13px;
  color: var(--ink-3);
}
.footer-icp { color: var(--ink-4); }
.footer-icp a { color: inherit; text-decoration: none; }
.footer-icp a:hover { color: var(--brand); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- 滚动显现动画 ----------
   --rd 由 main.js 按「同组第几个」写入（0.05s 步进，封顶 0.3s），
   因此任意卡片网格都能依次入场，不再只认 .grid-2 / .grid-3。 */
.reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.62s var(--ease), transform 0.62s var(--ease);
  transition-delay: var(--rd, 0s);
}
.reveal.in-view {
  opacity: 1;
  transform: none;
}
/* 只给"还没显现"的元素预留图层，进入后立刻释放，避免整页几十个元素常驻 */
.reveal:not(.in-view) { will-change: opacity, transform; }
.reveal.in-view { will-change: auto; }

/* ---------- Hero 载入动画（页面打开即播放，轻量上浮，非装饰特效） ---------- */
@keyframes hero-rise {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes hero-fade {
  from { opacity: 0; transform: translateY(24px) scale(0.985); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
/* 首屏动画已迁移至 .hero-slide.is-active 作用域（见 Hero 轮播），
   仅在轮播切到某张时重新触发，避免非激活 slide 误播。 */

/* ---------- 卡片：纯白实底 + 中性柔和阴影（取消玻璃，去除橙色阴影） ---------- */
.step,
.proj-card,
.proof-card,
.chart-card,
.sys-shot,
.compare,
.group-card {
  background: #fff;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  border: 0;
  box-shadow: var(--shadow-l);
}
/* 截图框保留更强的悬浮投影，避免贴地 */
.sys-shot { box-shadow: 0 24px 54px rgba(22, 27, 40, 0.14), 0 6px 16px rgba(22, 27, 40, 0.07); }

/* ---------- 响应式 ---------- */
@media (max-width: 1024px) {
  .hero-grid { grid-template-columns: 1fr; gap: 44px; }
  .hero-copy { text-align: center; }
  .hero-copy h1 { max-width: 640px; margin-inline: auto; }
  .hero-sub { margin-inline: auto; max-width: 620px; }
  .hero-cta { justify-content: center; }
  .results-grid,
  .about-grid,
  .contact-grid { grid-template-columns: 1fr; gap: 44px; }
  .steps { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 860px) {
  .main-nav {
    position: fixed;
    top: var(--header-h);
    left: 0; right: 0;
    flex: none;
    flex-direction: column;
    justify-content: flex-start;
    gap: 4px;
    background: rgba(255, 255, 255, 0.82);
    -webkit-backdrop-filter: blur(16px) saturate(160%);
    backdrop-filter: blur(16px) saturate(160%);
    border-bottom: 1px solid var(--glass-border);
    padding: 12px 24px 20px;
    margin: 0;
    box-shadow: var(--shadow-m);
    transform: translateY(-8px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s, transform 0.25s var(--ease);
  }
  .main-nav.open { transform: none; opacity: 1; pointer-events: auto; }
  .main-nav a { flex: none; padding: 11px 4px; font-size: 15.5px; border-bottom: 1px solid var(--line-soft); }
  .main-nav a:last-child { border-bottom: 0; }
  .nav-toggle { display: block; }
  .hero-visual { padding-right: 0; }

  .grid-2, .grid-3 { grid-template-columns: 1fr; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 28px 24px; }
  .stat:nth-child(3)::before { display: none; }
  .section { padding: 64px 0; }
  .cta-inner { flex-direction: column; align-items: flex-start; padding: 44px 0; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; padding: 44px 0 36px; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
  .container, .container-narrow { width: calc(100% - 36px); }
  /* 顶栏两个按钮在小屏收紧，避免挤出容器 */
  .header-actions { gap: 8px; }
  .header-actions .btn-sm { height: 34px; padding: 0 12px; font-size: 13px; }
  .hero { padding: calc(var(--header-h) + 48px) 0 60px; }
  .hero-cta .btn { flex: 1 1 auto; }
  .stats-grid { grid-template-columns: 1fr 1fr; }
  .stat + .stat::before { display: none; }
  .compare th, .compare td { padding: 12px 14px; font-size: 14px; }
  .compare tbody th { width: 96px; }
  .steps { grid-template-columns: 1fr; }   /* 移动端一个卡片一行 */
  .contact-form { padding: 22px; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
}

/* ---------- 降低动效偏好 ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  .reveal { opacity: 1; transform: none; }
}
