/* ==========================================================================
   木正禾科技 · 全站样式表
   目录：
   01 变量与基础  02 通用组件  03 页头导航  04 首屏  05 服务卡片
   06 技术栈      07 开发流程  08 优势     09 行业方案  10 FAQ
   11 CTA 与表单  12 页脚      13 内页     14 响应式     15 动画
   ========================================================================== */

/* ---------- 01 变量与基础 ---------- */
:root {
  --brand: #1652f0;
  --brand-light: #3b82f6;
  --brand-cyan: #00c2ff;
  --brand-dark: #0b2a8a;
  --ink: #0a1730;
  --text: #26324c;
  --muted: #64718c;
  --line: #e6ebf6;
  --bg: #ffffff;
  --soft: #f5f8ff;
  --soft-2: #eef3ff;

  --radius-sm: 10px;
  --radius: 16px;
  --radius-lg: 22px;

  --shadow-sm: 0 1px 2px rgba(12, 26, 60, .05), 0 8px 24px -14px rgba(12, 26, 60, .18);
  --shadow: 0 2px 4px rgba(12, 26, 60, .04), 0 18px 44px -22px rgba(12, 26, 60, .28);
  --shadow-brand: 0 14px 34px -14px rgba(22, 82, 240, .55);

  --grad: linear-gradient(135deg, #1652f0 0%, #3b82f6 45%, #00c2ff 100%);
  --maxw: 1180px;
  --header-h: 72px;

  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
    "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC",
    "WenQuanYi Micro Hei", Roboto, Helvetica, Arial, sans-serif;
  --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, "Courier New", monospace;
}

*, *::before, *::after { box-sizing: border-box; }

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

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 {
  margin: 0;
  color: var(--ink);
  font-weight: 700;
  line-height: 1.28;
  letter-spacing: -.01em;
}

h1 { font-size: clamp(1.85rem, 3.9vw, 2.8rem); }
h2 { font-size: clamp(1.5rem, 2.9vw, 2.15rem); }
h3 { font-size: 1.16rem; }
h4 { font-size: 1.02rem; }

p { margin: 0; }

a { color: var(--brand); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--brand-cyan); }

img, svg { display: block; max-width: 100%; }

ul, ol { margin: 0; padding: 0; list-style: none; }

strong { color: var(--ink); font-weight: 700; }

::selection { background: rgba(22, 82, 240, .16); }

:focus-visible {
  outline: 3px solid rgba(22, 82, 240, .45);
  outline-offset: 2px;
  border-radius: 4px;
}

/* ---------- 02 通用组件 ---------- */
.wrap {
  width: min(100% - 40px, var(--maxw));
  margin-inline: auto;
}

.section { padding: clamp(56px, 7vw, 92px) 0; }
.section--soft { background: var(--soft); }
.section--tight { padding-top: clamp(40px, 4vw, 56px); }

[id] { scroll-margin-top: calc(var(--header-h) + 16px); }

.sec-head { max-width: 720px; margin-bottom: clamp(30px, 4vw, 48px); }
.sec-head--center { margin-inline: auto; text-align: center; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  padding: 5px 12px 5px 10px;
  border-radius: 999px;
  background: var(--soft-2);
  color: var(--brand);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .04em;
}
.eyebrow::before {
  content: "";
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--grad);
}
.section--dark .eyebrow {
  background: rgba(255, 255, 255, .1);
  color: #cfe0ff;
}

.lead { margin-top: 14px; color: var(--muted); font-size: 1.04rem; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 0 24px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--grad);
  color: #fff;
  font-family: inherit;
  font-size: .97rem;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: var(--shadow-brand);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}
.btn:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 18px 40px -14px rgba(22, 82, 240, .6); }
.btn:active { transform: translateY(0); }

.btn--ghost {
  border-color: rgba(255, 255, 255, .34);
  background: rgba(255, 255, 255, .07);
  box-shadow: none;
  backdrop-filter: blur(6px);
}
.btn--ghost:hover { background: rgba(255, 255, 255, .16); box-shadow: none; }

.btn--line {
  border-color: var(--line);
  background: #fff;
  color: var(--ink);
  box-shadow: var(--shadow-sm);
}
.btn--line:hover { color: var(--brand); border-color: rgba(22, 82, 240, .35); box-shadow: var(--shadow); }

.btn--sm { min-height: 42px; padding: 0 18px; font-size: .9rem; }

.btn-row { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }

.tag {
  display: inline-block;
  padding: 6px 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--text);
  font-size: .87rem;
  line-height: 1.5;
}

.ticks { display: grid; gap: 10px; }
.ticks li { position: relative; padding-left: 26px; color: var(--text); }
.ticks li::before {
  content: "";
  position: absolute;
  left: 0; top: .58em;
  width: 15px; height: 9px;
  border-left: 2px solid var(--brand);
  border-bottom: 2px solid var(--brand);
  transform: rotate(-45deg) scale(.82);
  transform-origin: left center;
}

.card {
  position: relative;
  padding: 28px 26px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow-sm);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.card:hover {
  transform: translateY(-4px);
  border-color: rgba(22, 82, 240, .3);
  box-shadow: var(--shadow);
}
.card h3 { margin-bottom: 10px; }
.card p { color: var(--muted); font-size: .95rem; }

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

.icon {
  display: grid;
  place-items: center;
  width: 50px; height: 50px;
  margin-bottom: 18px;
  border-radius: 14px;
  background: var(--soft-2);
  color: var(--brand);
}
.icon svg { width: 24px; height: 24px; stroke: currentColor; fill: none; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- 03 页头导航 ---------- */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 60;
  background: rgba(8, 18, 43, .74);
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: background .25s ease, box-shadow .25s ease;
}
.site-header.is-scrolled {
  background: rgba(8, 18, 43, .95);
  box-shadow: 0 12px 30px -18px rgba(0, 0, 0, .8);
}

.header-inner {
  display: flex;
  align-items: center;
  gap: 20px;
  height: var(--header-h);
}

.logo { display: flex; align-items: center; gap: 11px; color: #fff; }
.logo:hover { color: #fff; }
.logo-mark { flex: none; width: 38px; height: 38px; }
.logo-text { display: flex; flex-direction: column; line-height: 1.2; }
.logo-name { font-size: 1.06rem; font-weight: 700; letter-spacing: .02em; }
.logo-sub { color: rgba(255, 255, 255, .5); font-size: .66rem; letter-spacing: .22em; text-transform: uppercase; }

.nav { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.nav a {
  position: relative;
  padding: 9px 15px;
  border-radius: 999px;
  color: rgba(255, 255, 255, .78);
  font-size: .95rem;
  font-weight: 500;
}
.nav a:hover { background: rgba(255, 255, 255, .09); color: #fff; }
.nav a.is-active { color: #fff; }
.nav a.is-active::after {
  content: "";
  position: absolute;
  left: 50%; bottom: 2px;
  width: 16px; height: 2px;
  border-radius: 2px;
  background: var(--brand-cyan);
  transform: translateX(-50%);
}

.header-cta { margin-left: 8px; }

.nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  margin-left: auto;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 12px;
  background: rgba(255, 255, 255, .06);
  color: #fff;
  cursor: pointer;
}
.nav-toggle span {
  position: relative;
  display: block;
  width: 18px; height: 2px;
  border-radius: 2px;
  background: currentColor;
}
.nav-toggle span::before,
.nav-toggle span::after {
  content: "";
  position: absolute;
  left: 0;
  width: 18px; height: 2px;
  border-radius: 2px;
  background: currentColor;
  transition: transform .2s ease;
}
.nav-toggle span::before { top: -6px; }
.nav-toggle span::after { top: 6px; }

/* 移动端抽屉 */
.nav-panel {
  display: none;
  border-top: 1px solid rgba(255, 255, 255, .08);
  border-bottom: 1px solid rgba(255, 255, 255, .14);
  background: rgba(7, 16, 38, .99);
  padding: 10px 0 22px;
  box-shadow: 0 22px 34px -20px rgba(0, 0, 0, .95);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.nav-panel.is-open { display: block; }
.nav-panel a {
  display: block;
  padding: 13px 2px;
  border-bottom: 1px solid rgba(255, 255, 255, .07);
  color: rgba(255, 255, 255, .82);
  font-size: 1rem;
}
.nav-panel a.is-active { color: #fff; font-weight: 600; }
.nav-panel .btn { width: 100%; margin-top: 20px; }

/* ---------- 04 首屏 ---------- */
.hero {
  position: relative;
  overflow: hidden;
  padding: calc(var(--header-h) + 72px) 0 84px;
  background:
    radial-gradient(1100px 560px at 82% -8%, rgba(37, 99, 235, .85) 0%, transparent 62%),
    radial-gradient(820px 520px at 4% 8%, rgba(11, 42, 138, .9) 0%, transparent 58%),
    linear-gradient(180deg, #071229 0%, #0a1730 62%, #0b1a38 100%);
  color: rgba(255, 255, 255, .82);
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, .055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .055) 1px, transparent 1px);
  background-size: 58px 58px;
  -webkit-mask-image: radial-gradient(880px 520px at 64% 4%, #000 20%, transparent 78%);
  mask-image: radial-gradient(880px 520px at 64% 4%, #000 20%, transparent 78%);
  pointer-events: none;
}
.hero > .wrap { position: relative; z-index: 1; }

.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
  gap: clamp(30px, 5vw, 64px);
  align-items: center;
}

.hero h1 { color: #fff; }
.hero h1 em { font-style: normal; background: linear-gradient(120deg, #7dd3fc, #38bdf8 45%, #a5b4fc); -webkit-background-clip: text; background-clip: text; color: transparent; }

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 22px;
  padding: 7px 15px 7px 12px;
  border: 1px solid rgba(125, 211, 252, .28);
  border-radius: 999px;
  background: rgba(56, 189, 248, .1);
  color: #bae6fd;
  font-size: .85rem;
}
.hero-badge::before {
  content: "";
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #4ade80;
  box-shadow: 0 0 0 4px rgba(74, 222, 128, .18);
}

.hero-lead { margin-top: 22px; max-width: 560px; font-size: 1.06rem; color: rgba(255, 255, 255, .74); }

.hero-points {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 22px;
  margin-top: 32px;
  max-width: 560px;
}
.hero-points li {
  position: relative;
  padding-left: 24px;
  color: rgba(255, 255, 255, .84);
  font-size: .95rem;
}
.hero-points li::before {
  content: "";
  position: absolute;
  left: 0; top: .55em;
  width: 14px; height: 8px;
  border-left: 2px solid #4ade80;
  border-bottom: 2px solid #4ade80;
  transform: rotate(-45deg) scale(.82);
  transform-origin: left center;
}

/* 终端窗口 */
.hero-visual { position: relative; }
.term {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: var(--radius);
  background: rgba(6, 14, 33, .82);
  box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .95), inset 0 1px 0 rgba(255, 255, 255, .06);
  backdrop-filter: blur(6px);
}
.term-bar {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, .09);
  background: rgba(255, 255, 255, .04);
}
.term-bar i { width: 11px; height: 11px; border-radius: 50%; background: #ff5f57; }
.term-bar i:nth-child(2) { background: #febc2e; }
.term-bar i:nth-child(3) { background: #28c840; }
.term-bar span { margin-left: 8px; color: rgba(255, 255, 255, .42); font-family: var(--font-mono); font-size: .76rem; }

.term-body {
  margin: 0;
  padding: 20px 18px;
  overflow-x: auto;
  color: #cbd5e1;
  font-family: var(--font-mono);
  font-size: .82rem;
  line-height: 1.95;
  white-space: pre;
}
.term-body .c-dim { color: #64748b; }
.term-body .c-key { color: #7dd3fc; }
.term-body .c-ok { color: #4ade80; }
.term-body .c-wait { color: #fbbf24; }
.term-body .c-soft { color: #94a3b8; }

.hero-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.hero-chips span {
  padding: 8px 15px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 999px;
  background: rgba(255, 255, 255, .06);
  color: rgba(255, 255, 255, .86);
  font-size: .88rem;
  animation: float 6s ease-in-out infinite;
}
.hero-chips span:nth-child(2) { animation-delay: .8s; }
.hero-chips span:nth-child(3) { animation-delay: 1.6s; }
.hero-chips span:nth-child(4) { animation-delay: 2.4s; }
.hero-chips span:nth-child(5) { animation-delay: 3.2s; }

/* 数据条 */
.facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin-top: 26px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--line);
  box-shadow: var(--shadow-sm);
}
.facts li { padding: 22px 20px; background: #fff; }
.facts b { display: block; color: var(--ink); font-size: 1.02rem; }
.facts span { color: var(--muted); font-size: .89rem; }

/* ---------- 05 服务卡片 ---------- */
.svc { display: flex; flex-direction: column; }
.svc p { flex: 1; }
.svc-more { margin-top: 18px; font-size: .92rem; font-weight: 600; }
.svc-more a::after { content: " →"; }

/* ---------- 06 技术栈 ---------- */
.tech { display: grid; gap: 14px; }
.tech-row {
  display: grid;
  grid-template-columns: 148px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  padding: 20px 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}
.tech-row h3 { padding-top: 5px; font-size: .98rem; }
.tech-row h3 small { display: block; margin-top: 3px; color: var(--muted); font-size: .76rem; font-weight: 400; letter-spacing: .06em; }
.tech-tags { display: flex; flex-wrap: wrap; gap: 9px; }
.tech-tags span {
  padding: 6px 13px;
  border-radius: 999px;
  background: var(--soft-2);
  color: #24356b;
  font-size: .86rem;
}

/* ---------- 07 开发流程 ---------- */
.steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  counter-reset: step;
}
.step {
  position: relative;
  padding: 26px 22px 24px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow-sm);
}
.step::before {
  counter-increment: step;
  content: "0" counter(step);
  position: absolute;
  top: 18px; right: 20px;
  color: rgba(22, 82, 240, .13);
  font-size: 1.9rem;
  font-weight: 800;
  letter-spacing: -.04em;
}
.step h3 { margin-bottom: 8px; font-size: 1.04rem; }
.step p { color: var(--muted); font-size: .92rem; }

/* ---------- 08 优势 ---------- */
.adv { display: grid; gap: 18px; }
.adv-item {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 16px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}
.adv-item .icon { width: 46px; height: 46px; margin: 0; border-radius: 12px; }
.adv-item h3 { margin-bottom: 6px; font-size: 1.02rem; }
.adv-item p { color: var(--muted); font-size: .93rem; }

.split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(28px, 5vw, 60px);
  align-items: center;
}
.split-panel {
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: #fff;
  box-shadow: var(--shadow);
}
.split-panel h3 { margin-bottom: 16px; }

/* ---------- 09 行业方案 ---------- */
.industry {
  padding: 24px 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow-sm);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.industry:hover { transform: translateY(-4px); border-color: rgba(22, 82, 240, .3); box-shadow: var(--shadow); }
.industry h3 { margin-bottom: 6px; }
.industry .industry-sub { color: var(--brand); font-size: .88rem; font-weight: 600; }
.industry ul { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.industry ul li {
  padding: 4px 11px;
  border-radius: 999px;
  background: var(--soft);
  color: #3c4a6a;
  font-size: .83rem;
}
.industry p { margin-top: 12px; color: var(--muted); font-size: .93rem; }

/* ---------- 10 FAQ ---------- */
.faq { display: grid; gap: 12px; }
.faq details {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.faq summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 22px;
  color: var(--ink);
  font-size: 1.01rem;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "";
  flex: none;
  width: 11px; height: 11px;
  border-right: 2px solid var(--brand);
  border-bottom: 2px solid var(--brand);
  transform: rotate(45deg) translateY(-2px);
  transition: transform .22s ease;
}
.faq details[open] summary::after { transform: rotate(-135deg) translateY(-2px); }
.faq .faq-body {
  padding: 0 22px 22px;
  color: var(--muted);
  font-size: .96rem;
}
.faq .faq-body p + p { margin-top: 10px; }

/* ---------- 11 CTA 与表单 ---------- */
.cta {
  position: relative;
  overflow: hidden;
  padding: clamp(40px, 6vw, 64px);
  border-radius: var(--radius-lg);
  background:
    radial-gradient(700px 380px at 88% 0%, rgba(0, 194, 255, .5) 0%, transparent 60%),
    linear-gradient(120deg, #0b2a8a 0%, #1652f0 55%, #0d3bb8 100%);
  color: rgba(255, 255, 255, .82);
  box-shadow: 0 30px 70px -34px rgba(11, 42, 138, .9);
}
.cta h2 { color: #fff; max-width: 620px; }
.cta p { margin-top: 16px; max-width: 620px; }

.form { display: grid; gap: 18px; }
.form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.field { display: grid; gap: 8px; }
.field label { color: var(--ink); font-size: .92rem; font-weight: 600; }
.field .req { color: #e11d48; }
.field input,
.field select,
.field textarea {
  width: 100%;
  padding: 13px 15px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: #fff;
  color: var(--text);
  font-family: inherit;
  font-size: .96rem;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.field textarea { min-height: 132px; resize: vertical; }
.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color: rgba(22, 82, 240, .55);
  box-shadow: 0 0 0 4px rgba(22, 82, 240, .12);
  outline: none;
}
.hint { color: var(--muted); font-size: .84rem; }
.form-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.form-msg {
  display: none;
  padding: 13px 16px;
  border: 1px solid rgba(22, 82, 240, .25);
  border-radius: var(--radius-sm);
  background: var(--soft-2);
  color: #1e3a8a;
  font-size: .92rem;
}
.form-msg.is-show { display: block; }
.form-msg.is-error { border-color: rgba(225, 29, 72, .3); background: #fff1f3; color: #9f1239; }

/* 联系卡片 */
.contact-list { display: grid; gap: 14px; }
.contact-item {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 15px;
  padding: 18px 20px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow-sm);
}
.contact-item .icon { width: 44px; height: 44px; margin: 0; border-radius: 12px; }
.contact-item dt { color: var(--muted); font-size: .84rem; }
.contact-item dd { margin: 2px 0 0; color: var(--ink); font-size: 1rem; font-weight: 600; word-break: break-all; }

/* ---------- 12 页脚 ---------- */
.site-footer {
  padding-top: 62px;
  background: linear-gradient(180deg, #071229 0%, #050e20 100%);
  color: rgba(255, 255, 255, .62);
  font-size: .92rem;
}
.footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr));
  gap: 34px;
  padding-bottom: 42px;
}
.footer-brand .logo { margin-bottom: 18px; }
.footer-brand p { max-width: 340px; }
.footer-col h4 { margin-bottom: 16px; color: #fff; font-size: .95rem; }
.footer-col li + li { margin-top: 10px; }
.footer-col a { color: rgba(255, 255, 255, .62); }
.footer-col a:hover { color: #fff; }
.footer-col .addr { line-height: 1.7; }
.footer-col .addr a { color: inherit; }
.footer-col .addr a:hover { color: #fff; }

.footer-legal {
  border-top: 1px solid rgba(255, 255, 255, .1);
  padding: 22px 0 30px;
}
.legal-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 18px;
}
.legal-row .legal-links { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.footer-legal a { color: rgba(255, 255, 255, .68); }
.footer-legal a:hover { color: #fff; }
.legal-note { margin-top: 12px; color: rgba(255, 255, 255, .38); font-size: .84rem; line-height: 1.7; }

/* ---------- 13 内页 ---------- */
.page-hero {
  position: relative;
  overflow: hidden;
  padding: calc(var(--header-h) + 58px) 0 58px;
  background:
    radial-gradient(900px 420px at 86% -20%, rgba(37, 99, 235, .78) 0%, transparent 62%),
    linear-gradient(180deg, #071229 0%, #0a1730 70%, #0b1a38 100%);
  color: rgba(255, 255, 255, .76);
}
.page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
  background-size: 58px 58px;
  -webkit-mask-image: radial-gradient(760px 420px at 70% 0%, #000 18%, transparent 78%);
  mask-image: radial-gradient(760px 420px at 70% 0%, #000 18%, transparent 78%);
  pointer-events: none;
}
.page-hero > .wrap { position: relative; z-index: 1; }
.page-hero h1 { color: #fff; }
.page-hero .lead { max-width: 660px; }

.crumb { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; color: rgba(255, 255, 255, .5); font-size: .86rem; }
.crumb a { color: rgba(255, 255, 255, .7); }
.crumb a:hover { color: #fff; }

.prose { max-width: 880px; }
.prose h2 { margin-top: 40px; }
.prose h3 { margin-top: 26px; }
.prose p + p { margin-top: 14px; }
.prose ul { margin-top: 14px; }
.prose .ticks li { margin-top: 8px; }
.prose .ticks li:first-child { margin-top: 0; }

.info-table {
  width: 100%;
  border-collapse: collapse;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow-sm);
}
.info-table th,
.info-table td {
  padding: 15px 20px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
  font-size: .95rem;
}
.info-table tr:last-child th,
.info-table tr:last-child td { border-bottom: 0; }
.info-table th { width: 190px; background: var(--soft); color: var(--ink); font-weight: 600; }
.info-table td { color: var(--text); }

.notice {
  padding: 18px 20px;
  border: 1px solid rgba(22, 82, 240, .22);
  border-radius: var(--radius);
  background: var(--soft-2);
  color: #1e3a8a;
  font-size: .93rem;
}

.err-wrap {
  display: grid;
  place-items: center;
  min-height: 60vh;
  padding: calc(var(--header-h) + 40px) 0 60px;
  text-align: center;
}
/* 内容较短的页面：让页脚贴住视口底部 */
body.page-flex { display: flex; flex-direction: column; min-height: 100vh; }
body.page-flex main { flex: 1 0 auto; }
/* 首屏不是深色区块时，页头用实色底，避免半透明发灰 */
.site-header--solid { background: #0a1730; }
.site-header--solid.is-scrolled { background: #071229; }
.err-code {
  font-size: clamp(4rem, 14vw, 8rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.04em;
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ---------- 返回顶部 ---------- */
.to-top {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 50;
  display: grid;
  place-items: center;
  width: 46px; height: 46px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  color: var(--brand);
  box-shadow: var(--shadow);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity .25s ease, transform .25s ease, visibility .25s;
}
.to-top.is-show { opacity: 1; visibility: visible; transform: none; }
.to-top svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- 14 响应式 ---------- */
@media (max-width: 1080px) {
  .nav { display: none; }
  .nav-toggle { display: flex; }
  .header-cta { display: none; }
  .hero-grid { grid-template-columns: minmax(0, 1fr); }
  .hero { padding-bottom: 66px; }
  .hero-visual { max-width: 640px; }
  .grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
  .grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split { grid-template-columns: minmax(0, 1fr); }
  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tech-row { grid-template-columns: minmax(0, 1fr); gap: 12px; }
}

@media (max-width: 620px) {
  body { font-size: 15.5px; }
  h1 { font-size: clamp(1.55rem, 6.2vw, 2.2rem); }
  .wrap { width: min(100% - 32px, var(--maxw)); }
  .grid--2, .grid--3, .grid--4 { grid-template-columns: minmax(0, 1fr); }
  .steps { grid-template-columns: minmax(0, 1fr); }
  .hero-points { grid-template-columns: minmax(0, 1fr); }
  .form-row { grid-template-columns: minmax(0, 1fr); }
  .facts { grid-template-columns: minmax(0, 1fr); }
  .footer-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .card, .step, .adv-item, .industry { padding: 22px 20px; }
  .cta { padding: 32px 22px; }
  .btn { width: 100%; }
  .btn-row { gap: 12px; }
  .form-foot .btn { width: auto; }
  .info-table th { width: 130px; padding: 13px 15px; }
  .info-table td { padding: 13px 15px; }
  .to-top { right: 14px; bottom: 14px; }
}

/* ---------- 15 动画 ---------- */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

.js .reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .65s ease, transform .65s cubic-bezier(.2, .7, .3, 1);
}
.js .reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
  .js .reveal { opacity: 1; transform: none; }
}
