/* ============================================================
   aizensopa.php — SOP-AI 智能装配辅助系统 产品销售页
   所有选择器使用 sa- 前缀隔离，避免与站点全局样式冲突
   ============================================================ */

.sa-page {
  --sa-navy: #071521;
  --sa-navy-2: #0b2030;
  --sa-panel: #0e2536;
  --sa-cyan: #47e0d5;
  --sa-cyan-2: #20c6bb;
  --sa-ink: #0f1c26;
  --sa-body: #475a69;
  --sa-muted: #7c8f9d;
  --sa-line: #dce5eb;
  --sa-red: #e5484d;
  --sa-green: #2fbf8f;
  --sa-amber: #f0b429;
  background: #fff;
  color: var(--sa-ink);
}

.sa-sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

.sa-honeypot {
  position: absolute !important;
  left: -9999px !important;
  top: auto !important;
  width: 1px; height: 1px;
  overflow: hidden;
}

/* 确保 hidden 属性优先于各区块的 display 规则 */
.sa-page [hidden] { display: none !important; }

section[id] { scroll-margin-top: calc(var(--nav-h) + 2px); }

/* ---------- 通用 ---------- */
.sa-kicker {
  margin: 0 0 14px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--sa-cyan-2);
}

.sa-section {
  padding: 96px 0;
}

.sa-section-light { background: #fff; }
.sa-section-muted { background: #f3f7f9; }
.sa-section-dark {
  background: var(--sa-navy);
  color: #eaf3f8;
}

.sa-section-head {
  max-width: 760px;
  margin-bottom: 48px;
}

.sa-section-head h2,
.sa-fit-copy h2,
.sa-assessment-copy h2,
.sa-demo-inner h2,
.sa-final-inner h2 {
  margin: 0 0 18px;
  font-size: clamp(1.9rem, 3.2vw, 2.75rem);
  line-height: 1.28;
  letter-spacing: -0.015em;
  font-weight: 800;
}

.sa-lead {
  margin: 0;
  font-size: 16px;
  line-height: 1.85;
  color: var(--sa-body);
}

.sa-head-dark .sa-lead { color: rgba(224, 240, 248, 0.72); }
.sa-head-dark h2 { color: #fff; }

.sa-section-dark .sa-kicker { color: var(--sa-cyan); }

.sa-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 0 24px;
  border: 1px solid transparent;
  border-radius: 4px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.sa-btn:hover { transform: translateY(-1px); text-decoration: none; }

.sa-btn-primary {
  background: var(--sa-cyan);
  color: #04222a;
  box-shadow: 0 10px 26px rgba(33, 196, 186, 0.28);
}

.sa-btn-primary:hover {
  background: #63f0e5;
  box-shadow: 0 14px 32px rgba(33, 196, 186, 0.34);
}

.sa-btn-ghost {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.28);
  color: #eaf3f8;
}

.sa-btn-ghost:hover {
  border-color: var(--sa-cyan);
  color: var(--sa-cyan);
}

.sa-btn-block { width: 100%; }

.sa-textlink {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  font-size: 14px;
  font-weight: 700;
  color: var(--sa-cyan-2);
  text-decoration: none;
}

.sa-textlink span { transition: transform 0.18s ease; }
.sa-textlink:hover span { transform: translateX(4px); }
.sa-textlink:hover { text-decoration: none; }
.sa-section-dark .sa-textlink { color: var(--sa-cyan); }
.sa-section-dark .sa-textlink:hover { color: #8ff2e8; }

.sa-dot {
  display: inline-block;
  width: 7px; height: 7px;
  margin-right: 8px;
  border-radius: 50%;
  background: var(--sa-cyan);
  box-shadow: 0 0 0 4px rgba(71, 224, 213, 0.16);
  animation: saPulse 2.4s ease-in-out infinite;
}

/* ---------- HERO ---------- */
.sa-hero {
  position: relative;
  overflow: hidden;
  padding: 78px 0 88px;
  background:
    radial-gradient(900px 520px at 82% 18%, rgba(37, 173, 190, 0.16), transparent 62%),
    linear-gradient(160deg, #071521 0%, #081a27 55%, #07131e 100%);
  color: #fff;
}

.sa-hero-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(122, 170, 197, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(122, 170, 197, 0.08) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(70% 70% at 50% 40%, #000 30%, transparent 100%);
  -webkit-mask-image: radial-gradient(70% 70% at 50% 40%, #000 30%, transparent 100%);
  pointer-events: none;
}

.sa-hero-inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
  gap: 56px;
  align-items: center;
}

.sa-eyebrow {
  display: inline-flex;
  align-items: center;
  margin: 0 0 20px;
  padding: 7px 12px;
  border: 1px solid rgba(71, 224, 213, 0.28);
  border-radius: 3px;
  background: rgba(71, 224, 213, 0.06);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #a9eae5;
}

.sa-hero h1 {
  margin: 0 0 22px;
  font-size: clamp(2.35rem, 4.1vw, 3.7rem);
  line-height: 1.18;
  letter-spacing: -0.02em;
  font-weight: 800;
  color: #fff;
}

.sa-hero-sub {
  margin: 0;
  max-width: 36em;
  font-size: 16px;
  line-height: 1.85;
  color: rgba(221, 238, 247, 0.78);
}

.sa-hero-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 28px 0 32px;
  padding: 0;
  list-style: none;
}

.sa-hero-tags li {
  padding: 6px 10px;
  border: 1px solid rgba(146, 186, 210, 0.22);
  border-radius: 3px;
  font-size: 12px;
  color: #b6d0df;
}

.sa-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.sa-hero-note {
  max-width: 42em;
  margin: 30px 0 0;
  padding: 14px 16px;
  border-left: 2px solid var(--sa-cyan);
  background: rgba(255, 255, 255, 0.035);
  font-size: 13px;
  line-height: 1.8;
  color: rgba(200, 222, 234, 0.72);
}

.sa-hero-note strong { color: #fff; font-weight: 700; }

.sa-visual-frame {
  border: 1px solid rgba(139, 180, 203, 0.22);
  border-radius: 8px;
  background: #081722;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45);
  overflow: hidden;
}

.sa-visual-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(139, 180, 203, 0.16);
  font-size: 10.5px;
  letter-spacing: 0.12em;
  color: #8fb4c9;
}

.sa-visual-station { color: #cfe4ee; font-weight: 700; }
.sa-visual-mode { color: #7fa6bd; }

.sa-assembly-svg {
  display: block;
  width: 100%;
  height: auto;
}

.sa-visual-photo img {
  display: block;
  width: 100%;
  height: auto;
}

.sa-blueprint { pointer-events: none; }

.sa-detect {
  animation: saDetect 3.2s ease-in-out infinite;
}

.sa-detect-off {
  animation-delay: 1.6s;
}

.sa-scanline {
  animation: saScan 5s linear infinite;
}

@keyframes saScan {
  0% { transform: translateY(0); opacity: 0.15; }
  50% { opacity: 0.5; }
  100% { transform: translateY(240px); opacity: 0.15; }
}

@keyframes saDetect {
  0%, 100% { opacity: 0.85; }
  50% { opacity: 1; }
}

@keyframes saPulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(71, 224, 213, 0.2); }
  50% { box-shadow: 0 0 0 6px rgba(71, 224, 213, 0.08); }
}

/* ---------- 问题共鸣 ---------- */
.sa-problem-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.sa-problem {
  background: #fff;
  border: 1px solid var(--sa-line);
  border-radius: 6px;
  overflow: hidden;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.sa-problem:hover { border-color: #b9cdd8; box-shadow: 0 12px 34px rgba(18, 40, 54, 0.07); }

.sa-problem-head {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 24px;
  gap: 14px;
  width: 100%;
  padding: 26px 26px 24px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  color: inherit;
}

.sa-problem-no {
  padding-top: 2px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--sa-cyan-2);
}

.sa-problem-body { display: block; }
.sa-problem-body strong {
  display: block;
  margin-bottom: 8px;
  font-size: 18px;
  font-weight: 800;
}
.sa-problem-body span {
  display: block;
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--sa-body);
}

.sa-problem-plus {
  font-size: 20px;
  font-weight: 300;
  line-height: 1;
  color: var(--sa-muted);
  transition: transform 0.2s ease, color 0.2s ease;
}

.sa-problem-head[aria-expanded="true"] .sa-problem-plus {
  transform: rotate(45deg);
  color: var(--sa-cyan-2);
}

.sa-problem-panel {
  padding: 0 26px 26px 84px;
  font-size: 14px;
  line-height: 1.8;
  color: var(--sa-body);
}

.sa-panel-label {
  margin: 0 0 4px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--sa-muted);
}

.sa-problem-panel p { margin: 0 0 14px; }
.sa-problem-panel p:last-child { margin-bottom: 0; }

.sa-quote {
  margin: 56px 0 0;
  padding-left: 22px;
  border-left: 3px solid var(--sa-cyan);
  font-size: clamp(1.3rem, 2vw, 1.7rem);
  font-weight: 700;
  line-height: 1.6;
  color: var(--sa-ink);
}

/* ---------- 解决方案 ---------- */
.sa-solution-stack {
  display: grid;
  gap: 52px;
}

.sa-solution-media {
  width: min(100%, 920px);
  margin: 0 auto;
  border: 1px solid rgba(139, 180, 203, 0.2);
  border-radius: 6px;
  overflow: hidden;
  background: #0b1c29;
}

.sa-solution-media img {
  display: block;
  width: 100%;
  height: auto;
}

/* 技术架构图带透明底，容器保持透明，与区块底色融为一体 */
.sa-arch-media {
  background: transparent;
  border: 0;
}

/* 解决方案区块使用浅灰底时的配色 */
.sa-solution-light {
  background: #eef1f5;
}

.sa-solution-light .sa-solution-media {
  background: transparent;
  border: 0;
}

.sa-solution-light .sa-flow-title { color: var(--sa-body); }

.sa-solution-light .sa-flow li {
  background: #fff;
  border-color: rgba(7, 21, 33, 0.1);
}

.sa-solution-light .sa-flow li strong { color: var(--sa-ink); }
.sa-solution-light .sa-flow li small { color: var(--sa-body); }

.sa-solution-light .sa-flow li span,
.sa-solution-light .sa-flow li:not(:last-child)::after {
  color: var(--sa-cyan-2);
}

.sa-flow {
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
}

.sa-compare {
  border: 1px solid rgba(139, 180, 203, 0.2);
  border-radius: 6px;
  overflow: hidden;
}

.sa-compare-head,
.sa-compare-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.sa-compare-head {
  background: rgba(255, 255, 255, 0.05);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #9dbdce;
}

.sa-compare-head span { padding: 13px 18px; }
.sa-compare-head span + span { color: var(--sa-cyan); border-left: 1px solid rgba(139, 180, 203, 0.16); }

.sa-compare-row { border-top: 1px solid rgba(139, 180, 203, 0.14); }
.sa-compare-row p {
  margin: 0;
  padding: 15px 18px;
  font-size: 14px;
  line-height: 1.6;
}
.sa-compare-row p:first-child { color: rgba(203, 222, 232, 0.62); }
.sa-compare-row p + p { color: #eaf3f8; border-left: 1px solid rgba(139, 180, 203, 0.14); background: rgba(71, 224, 213, 0.04); }

.sa-flow-title {
  margin: 0 0 24px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #9dbdce;
  text-align: center;
}

.sa-flow ol {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 40px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sa-flow li {
  position: relative;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 8px 12px;
  padding: 16px;
  border: 1px solid rgba(139, 180, 203, 0.16);
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.025);
}

.sa-flow li span {
  grid-row: span 2;
  font-size: 11px;
  font-weight: 800;
  color: var(--sa-cyan);
  padding-top: 3px;
}

.sa-flow li strong { font-size: 14px; color: #fff; }
.sa-flow li small { font-size: 12px; color: rgba(203, 222, 232, 0.6); }

.sa-flow li:not(:last-child)::after {
  content: "→";
  position: absolute;
  top: 50%;
  right: -30px;
  transform: translateY(-50%);
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  color: var(--sa-cyan);
  opacity: 0.75;
}

.sa-callout {
  margin-top: 44px;
  padding: 26px 30px;
  border: 1px solid rgba(71, 224, 213, 0.22);
  border-radius: 6px;
  background: linear-gradient(90deg, rgba(71, 224, 213, 0.08), transparent 70%);
}

.sa-callout p {
  margin: 0 0 6px;
  font-size: 17px;
  font-weight: 800;
  color: #fff;
}
.sa-callout span { font-size: 13.5px; line-height: 1.7; color: rgba(203, 222, 232, 0.66); }

/* ---------- 场景 ---------- */
.sa-tabs {
  display: flex;
  gap: 10px;
  margin-bottom: 22px;
  border-bottom: 1px solid var(--sa-line);
}

.sa-tab {
  display: grid;
  gap: 3px;
  padding: 14px 20px 16px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  text-align: left;
  cursor: pointer;
  color: var(--sa-muted);
  transition: color 0.2s ease, border-color 0.2s ease;
}

.sa-tab strong, .sa-tab { font-size: 15px; font-weight: 800; }
.sa-tab i {
  font-style: normal;
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--sa-muted);
}

.sa-tab.is-active {
  color: var(--sa-ink);
  border-bottom-color: var(--sa-cyan-2);
}
.sa-tab.is-active i { color: var(--sa-cyan-2); }

.sa-panels { position: relative; }

.sa-scenario-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr);
  gap: 44px;
  align-items: center;
  padding: 10px 0 0;
}

.sa-scenario-kicker {
  margin: 0 0 12px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--sa-cyan-2);
}

.sa-scenario-lead {
  margin: 0 0 22px;
  font-size: 17px;
  line-height: 1.75;
  font-weight: 600;
  color: var(--sa-ink);
}

.sa-scenario-block { margin-bottom: 16px; }
.sa-scenario-block p { margin: 0; font-size: 14px; line-height: 1.75; color: var(--sa-body); }
.sa-scenario-block .sa-panel-label { margin-bottom: 3px; color: var(--sa-muted); }

.sa-scenario-visual {
  border: 1px solid var(--sa-line);
  border-radius: 6px;
  background: var(--sa-navy-2);
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(12, 32, 46, 0.16);
}

.sa-scenario-visual svg { display: block; width: 100%; height: auto; }
.sa-scenario-visual img { display: block; width: 100%; height: auto; }

/* ---------- 案例 ---------- */
.sa-case-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.sa-case {
  display: flex;
  flex-direction: column;
  padding: 24px;
  background: #fff;
  border: 1px solid var(--sa-line);
  border-radius: 6px;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.sa-case:hover {
  transform: translateY(-3px);
  border-color: #b9cdd8;
  box-shadow: 0 16px 40px rgba(18, 40, 54, 0.09);
}

.sa-case-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.sa-case-tag {
  padding: 4px 8px;
  border-radius: 2px;
  background: rgba(32, 198, 187, 0.1);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #0e8d86;
}

.sa-case-index {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--sa-muted);
}

.sa-case h3 { margin: 0 0 14px; font-size: 18px; font-weight: 800; }

.sa-case dl { margin: 0 0 20px; flex: 1; }
.sa-case dt {
  margin-top: 10px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--sa-muted);
}
.sa-case dt:first-child { margin-top: 0; }
.sa-case dd { margin: 2px 0 0; font-size: 13.5px; line-height: 1.7; color: var(--sa-body); }

.sa-case-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding-top: 16px;
  border-top: 1px solid var(--sa-line);
}

.sa-case-foot span { font-size: 10.5px; color: var(--sa-muted); }
.sa-case-foot a { font-size: 12.5px; font-weight: 700; color: var(--sa-cyan-2); text-decoration: none; }
.sa-case-foot a:hover { text-decoration: underline; }

.sa-case-note {
  margin: 26px 0 0;
  font-size: 12.5px;
  line-height: 1.75;
  color: var(--sa-muted);
}

/* ---------- 架构 ---------- */
.sa-arch {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
  gap: 28px;
  align-items: stretch;
}

.sa-arch-layers { display: grid; gap: 8px; align-content: start; }

.sa-arch-layer {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 4px 10px;
  padding: 16px 18px;
  border: 1px solid rgba(139, 180, 203, 0.18);
  border-left: 2px solid transparent;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.025);
  text-align: left;
  cursor: pointer;
  color: #eaf3f8;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.sa-arch-layer span {
  grid-row: span 2;
  padding-top: 2px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: #7fa6bd;
}

.sa-arch-layer strong { font-size: 14.5px; }
.sa-arch-layer small { font-size: 11.5px; color: rgba(203, 222, 232, 0.58); }

.sa-arch-layer:hover { background: rgba(255, 255, 255, 0.05); }

.sa-arch-layer.is-active {
  border-color: rgba(71, 224, 213, 0.34);
  border-left-color: var(--sa-cyan);
  background: rgba(71, 224, 213, 0.06);
}
.sa-arch-layer.is-active span { color: var(--sa-cyan); }

.sa-arch-panel {
  height: 100%;
  padding: 32px;
  border: 1px solid rgba(139, 180, 203, 0.18);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.03);
}

.sa-arch-kicker {
  margin: 0 0 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--sa-cyan);
}
.sa-arch-panel h3 { margin: 0 0 12px; font-size: 21px; font-weight: 800; color: #fff; }
.sa-arch-panel > p { margin: 0 0 20px; font-size: 14px; line-height: 1.8; color: rgba(210, 230, 240, 0.72); }
.sa-arch-panel ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.sa-arch-panel li {
  position: relative;
  padding-left: 16px;
  font-size: 13.5px;
  line-height: 1.6;
  color: rgba(226, 241, 248, 0.85);
}
.sa-arch-panel li::before {
  content: "";
  position: absolute;
  left: 0; top: 8px;
  width: 5px; height: 5px;
  background: var(--sa-cyan);
  transform: rotate(45deg);
}

.sa-feature-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 28px;
}
.sa-feature-strip span {
  padding: 6px 12px;
  border: 1px solid rgba(139, 180, 203, 0.22);
  border-radius: 3px;
  font-size: 12px;
  color: #b6d0df;
}

.sa-arch-note {
  margin: 18px 0 0;
  font-size: 12.5px;
  line-height: 1.75;
  color: rgba(203, 222, 232, 0.55);
}

/* ---------- 部署路径 ---------- */
.sa-deploy {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--sa-line);
}

.sa-deploy li {
  position: relative;
  padding: 24px 20px 0 0;
  border-right: 1px solid var(--sa-line);
}
.sa-deploy li:last-child { border-right: 0; padding-right: 0; }
.sa-deploy li:not(:first-child) { padding-left: 20px; }

.sa-deploy li span {
  display: block;
  margin-bottom: 12px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--sa-cyan-2);
}
.sa-deploy li strong { display: block; margin-bottom: 8px; font-size: 16px; font-weight: 800; }
.sa-deploy li p { margin: 0; font-size: 13px; line-height: 1.75; color: var(--sa-body); }

.sa-deploy-note {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 24px;
  align-items: baseline;
  margin-top: 40px;
  padding: 22px 26px;
  border: 1px solid var(--sa-line);
  border-left: 3px solid var(--sa-cyan-2);
  border-radius: 4px;
  background: #f7fafb;
}
.sa-deploy-note p { margin: 0; font-size: 16px; font-weight: 800; white-space: nowrap; }
.sa-deploy-note span { font-size: 13px; line-height: 1.7; color: var(--sa-body); }

/* ---------- 适配自测 ---------- */
.sa-fit {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: 56px;
  align-items: start;
}

.sa-fit-copy { position: sticky; top: 140px; }
.sa-fit-hint { margin: 20px 0 0; font-size: 13px; color: var(--sa-muted); }

.sa-fit-form {
  padding: 32px;
  background: #fff;
  border: 1px solid var(--sa-line);
  border-radius: 8px;
  box-shadow: 0 24px 60px rgba(18, 40, 54, 0.08);
}

.sa-fit-form fieldset { margin: 0; padding: 0; border: 0; }

.sa-fit-q {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 15px 0;
  border-bottom: 1px solid #edf2f5;
}
.sa-fit-q:last-of-type { border-bottom: 0; }

.sa-fit-q p { display: flex; gap: 12px; margin: 0; font-size: 14px; line-height: 1.6; color: var(--sa-ink); }
.sa-fit-q p span { font-size: 11px; font-weight: 800; color: var(--sa-cyan-2); padding-top: 3px; }

.sa-fit-options { display: flex; gap: 6px; }
.sa-fit-options label { cursor: pointer; }
.sa-fit-options input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sa-fit-options span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  height: 34px;
  padding: 0 10px;
  border: 1px solid var(--sa-line);
  border-radius: 3px;
  font-size: 12.5px;
  color: var(--sa-body);
  transition: all 0.15s ease;
}
.sa-fit-options input:checked + span {
  border-color: var(--sa-cyan-2);
  background: rgba(32, 198, 187, 0.1);
  color: #0e8d86;
  font-weight: 700;
}
.sa-fit-options input:focus-visible + span { outline: 2px solid var(--sa-cyan-2); outline-offset: 2px; }

.sa-fit-form .sa-btn { margin-top: 24px; }

.sa-fit-result {
  margin-top: 24px;
  padding: 20px 22px;
  border-left: 3px solid var(--sa-cyan-2);
  background: #f4faf9;
}
.sa-fit-result-level { margin: 0 0 6px; font-size: 16px; font-weight: 800; color: var(--sa-ink); }
.sa-fit-result-text { margin: 0; font-size: 13.5px; line-height: 1.75; color: var(--sa-body); }

/* ---------- 表单 ---------- */
.sa-assessment { padding: 100px 0; }

.sa-assessment-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 56px;
  align-items: start;
}

.sa-assessment-copy { padding-top: 8px; }
.sa-assessment-points {
  margin: 26px 0 24px;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}
.sa-assessment-points li {
  position: relative;
  padding-left: 16px;
  font-size: 13.5px;
  line-height: 1.7;
  color: rgba(210, 230, 240, 0.74);
}
.sa-assessment-points li::before {
  content: "";
  position: absolute;
  left: 0; top: 9px;
  width: 5px; height: 5px;
  background: var(--sa-cyan);
}
.sa-assessment-contact {
  padding-top: 18px;
  border-top: 1px solid rgba(139, 180, 203, 0.18);
  font-size: 13.5px;
  color: rgba(203, 222, 232, 0.7);
}
.sa-assessment-contact a { color: var(--sa-cyan); text-decoration: none; }

.sa-form-card {
  padding: 34px;
  border-radius: 8px;
  background: #fff;
  color: var(--sa-ink);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.32);
}

.sa-form-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin: 0 0 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid #e8eff3;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: var(--sa-ink);
}
.sa-form-title span { font-size: 10.5px; font-weight: 500; letter-spacing: 0; color: var(--sa-muted); }
.sa-form-title:not(:first-of-type) { margin-top: 28px; }

.sa-field { display: grid; gap: 7px; margin-bottom: 16px; }
.sa-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

.sa-field label,
.sa-field legend {
  font-size: 12.5px;
  font-weight: 700;
  color: #34495a;
}
.sa-field em { font-style: normal; color: var(--sa-red); }

.sa-field input[type="text"],
.sa-field input[type="tel"],
.sa-field input[type="email"],
.sa-field select,
.sa-field textarea {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid #d5e0e7;
  border-radius: 3px;
  background: #fff;
  font-size: 14px;
  color: var(--sa-ink);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.sa-field textarea { min-height: 100px; resize: vertical; line-height: 1.6; }

.sa-field input:focus,
.sa-field select:focus,
.sa-field textarea:focus {
  outline: none;
  border-color: var(--sa-cyan-2);
  box-shadow: 0 0 0 3px rgba(32, 198, 187, 0.14);
}

.sa-field input.is-invalid,
.sa-field select.is-invalid,
.sa-field textarea.is-invalid { border-color: var(--sa-red); box-shadow: 0 0 0 3px rgba(229, 72, 77, 0.1); }

.sa-field-error { margin: 0 !important; font-size: 12px; color: var(--sa-red); min-height: 0; }
.sa-field-error:empty { display: none; }

.sa-field-full { margin: 0 0 16px; padding: 0; border: 0; }
.sa-field-full legend { margin-bottom: 10px; }

.sa-checks { display: flex; flex-wrap: wrap; gap: 8px; }
.sa-checks label { cursor: pointer; }
.sa-checks input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sa-checks span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 12px;
  border: 1px solid #d5e0e7;
  border-radius: 3px;
  font-size: 12.5px;
  color: var(--sa-body);
  transition: all 0.15s ease;
}
.sa-checks input:checked + span {
  border-color: var(--sa-cyan-2);
  background: rgba(32, 198, 187, 0.1);
  color: #0e8d86;
  font-weight: 700;
}
.sa-checks input:focus-visible + span,
.sa-radios input:focus-visible + span { outline: 2px solid var(--sa-cyan-2); outline-offset: 2px; }

.sa-radios { display: flex; flex-wrap: wrap; gap: 8px; }
.sa-radios label { cursor: pointer; }
.sa-radios input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sa-radios span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 12px;
  border: 1px solid #d5e0e7;
  border-radius: 3px;
  font-size: 12.5px;
  color: var(--sa-body);
  transition: all 0.15s ease;
}
.sa-radios input:checked + span {
  border-color: var(--sa-cyan-2);
  background: rgba(32, 198, 187, 0.1);
  color: #0e8d86;
  font-weight: 700;
}

.sa-consent {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  margin-top: 20px;
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--sa-body);
  cursor: pointer;
}
.sa-consent input { width: 16px; height: 16px; margin-top: 2px; accent-color: var(--sa-cyan-2); }

.sa-privacy-note { margin: 10px 0 18px; font-size: 11px; line-height: 1.65; color: var(--sa-muted); }
.sa-privacy-note a { color: var(--sa-cyan-2); }

.sa-form-status { margin: 12px 0 0; font-size: 13px; line-height: 1.6; color: var(--sa-red); }
.sa-form-status.is-success { color: var(--sa-green); }

.sa-form-success {
  margin-top: 20px;
  padding: 24px;
  border: 1px solid rgba(47, 191, 143, 0.32);
  border-radius: 4px;
  background: #f1faf6;
}
.sa-success-title { margin: 0 0 6px; font-size: 18px; font-weight: 800; color: #14765a; }
.sa-success-text { margin: 0 0 10px; font-size: 13.5px; line-height: 1.7; color: #2d5f4f; }
.sa-success-code { margin: 0; font-size: 12.5px; color: #4b7c6b; }

.sa-form-card form.is-submitted .sa-btn-block { display: none; }

/* 提交成功后仅保留确认信息 */
.sa-form-card form.is-submitted > *,
.sa-demo-form.is-submitted > * { display: none; }
.sa-form-card form.is-submitted > .sa-form-success,
.sa-form-card form.is-submitted > .sa-form-status,
.sa-demo-form.is-submitted > .sa-form-success,
.sa-demo-form.is-submitted > .sa-form-status { display: block; }
.sa-form-card form.is-submitted > .sa-form-status,
.sa-demo-form.is-submitted > .sa-form-status { margin-top: 14px; }

/* ---------- 演示预约 ---------- */
.sa-demo {
  padding: 64px 0;
  background: linear-gradient(105deg, #e9f7f5, #f3f9fc 62%, #eaf2f8);
  border-top: 1px solid #dce9ee;
  border-bottom: 1px solid #dce9ee;
}

.sa-demo-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 48px;
  align-items: start;
}

.sa-demo-inner h2 { font-size: clamp(1.55rem, 2.4vw, 2.1rem); }
.sa-demo-inner > div > p:not(.sa-kicker) { margin: 0; font-size: 14.5px; line-height: 1.8; color: var(--sa-body); }
.sa-demo .sa-kicker { color: #0e8d86; }

.sa-demo-form {
  padding: 26px;
  background: #fff;
  border: 1px solid #d9e6ec;
  border-radius: 8px;
}
.sa-demo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.sa-demo-form .sa-consent { margin-top: 8px; font-size: 11.5px; }
.sa-demo-form .sa-btn { margin-top: 16px; }

/* ---------- FAQ ---------- */
.sa-faq { border-top: 1px solid var(--sa-line); }
.sa-faq-item { border-bottom: 1px solid var(--sa-line); }

.sa-faq-q {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) 20px;
  gap: 14px;
  width: 100%;
  padding: 22px 0;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  color: var(--sa-ink);
}
.sa-faq-q span { font-size: 11.5px; font-weight: 800; letter-spacing: 0.06em; color: var(--sa-cyan-2); padding-top: 4px; }
.sa-faq-q strong { font-size: 15.5px; line-height: 1.55; font-weight: 700; }
.sa-faq-q i { font-style: normal; font-size: 20px; font-weight: 300; color: var(--sa-muted); transition: transform 0.2s ease; }
.sa-faq-q[aria-expanded="true"] i { transform: rotate(45deg); color: var(--sa-cyan-2); }

.sa-faq-a { padding: 0 0 24px 54px; }
.sa-faq-a p { margin: 0; max-width: 68em; font-size: 14px; line-height: 1.8; color: var(--sa-body); }

/* ---------- 最终 CTA ---------- */
.sa-final {
  padding: 84px 0;
  background:
    radial-gradient(700px 380px at 76% 30%, rgba(37, 173, 190, 0.18), transparent 70%),
    var(--sa-navy);
  color: #fff;
}

.sa-final-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) auto;
  gap: 48px;
  align-items: center;
}

.sa-final-inner h2 { margin: 0 0 14px; color: #fff; font-size: clamp(1.8rem, 2.9vw, 2.5rem); }
.sa-final-inner p { margin: 0; font-size: 14.5px; line-height: 1.8; color: rgba(210, 230, 240, 0.7); }
.sa-final-actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- 移动端固定 CTA ---------- */
.sa-mobile-bar {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 60;
  display: flex;
  gap: 8px;
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
  background: rgba(7, 21, 33, 0.96);
  border-top: 1px solid rgba(139, 180, 203, 0.2);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.sa-mobile-bar a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  border-radius: 3px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}
.sa-mobile-call { width: 32%; border: 1px solid rgba(255, 255, 255, 0.26); color: #fff; }
.sa-mobile-main { flex: 1; background: var(--sa-cyan); color: #04222a; }
.sa-mobile-bar a:hover { text-decoration: none; }

/* ---------- 响应式 ---------- */
@media (max-width: 1100px) {
  .sa-hero-inner { gap: 40px; }
  .sa-solution-stack { gap: 36px; }
  .sa-flow ol { gap: 32px; }
  .sa-arch { grid-template-columns: 1fr; gap: 32px; }
  .sa-arch-layers { grid-template-columns: 1fr 1fr; }
  .sa-arch-panel { min-height: 280px; }
  .sa-scenario-panel { gap: 32px; }
  .sa-case-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sa-assessment-inner { gap: 40px; }
}

@media (max-width: 900px) {
  .sa-section { padding: 72px 0; }
  .sa-hero { padding: 56px 0 64px; }
  .sa-hero-inner { grid-template-columns: 1fr; gap: 40px; }
  .sa-visual-frame { max-width: 720px; }
  .sa-flow ol { grid-template-columns: 1fr; gap: 24px; }
  .sa-flow li:not(:last-child)::after {
    content: "↓";
    top: auto;
    right: auto;
    bottom: -22px;
    left: 50%;
    transform: translateX(-50%);
  }
  .sa-fit { grid-template-columns: 1fr; gap: 32px; }
  .sa-fit-copy { position: static; }
  .sa-assessment-inner { grid-template-columns: 1fr; gap: 36px; }
  .sa-demo-inner { grid-template-columns: 1fr; gap: 28px; }
  .sa-final-inner { grid-template-columns: 1fr; gap: 28px; }
  .sa-deploy { grid-template-columns: 1fr 1fr; gap: 20px; border-top: 0; }
  .sa-deploy li { padding: 18px 0 0; border-right: 0; border-top: 1px solid var(--sa-line); }
  .sa-deploy li:not(:first-child) { padding-left: 0; }
  .sa-deploy-note { grid-template-columns: 1fr; gap: 8px; margin-top: 28px; }
  .sa-deploy-note p { white-space: normal; }
}

@media (max-width: 720px) {
  .sa-section { padding: 58px 0; }
  .sa-section-head { margin-bottom: 32px; }
  .sa-hero h1 { font-size: 2rem; }
  .sa-hero-sub, .sa-lead { font-size: 14.5px; }
  .sa-hero-actions .sa-btn { flex: 1; min-width: 0; }
  .sa-problem-grid { grid-template-columns: 1fr; }
  .sa-problem-head { padding: 20px; grid-template-columns: 34px minmax(0, 1fr) 20px; gap: 10px; }
  .sa-problem-panel { padding: 0 20px 20px 64px; }
  .sa-quote { margin-top: 36px; }
  .sa-tabs { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .sa-tab { min-width: 150px; padding: 12px 14px; }
  .sa-scenario-panel { grid-template-columns: 1fr; gap: 24px; }
  .sa-scenario-lead { font-size: 15px; }
  .sa-case-grid { grid-template-columns: 1fr; }
  .sa-arch-layers { grid-template-columns: 1fr; }
  .sa-arch-panel { padding: 22px; min-height: 0; }
  .sa-fit-form { padding: 20px; }
  .sa-fit-q { grid-template-columns: 1fr; gap: 10px; }
  .sa-fit-options { justify-content: flex-start; }
  .sa-form-card { padding: 22px; }
  .sa-field-row { grid-template-columns: 1fr; gap: 0; }
  .sa-demo-grid { grid-template-columns: 1fr; }
  .sa-demo-form { padding: 20px; }
  .sa-faq-q { grid-template-columns: 30px minmax(0, 1fr) 18px; gap: 8px; }
  .sa-faq-a { padding-left: 38px; }
  .sa-final-actions .sa-btn { flex: 1; }
  .sa-mobile-bar { display: flex; }
  .sa-page { padding-bottom: 0; }
}

@media (max-width: 400px) {
  .sa-hero h1 { font-size: 1.78rem; }
  .sa-hero-tags li { font-size: 11px; padding: 5px 8px; }
  .sa-btn { padding: 0 18px; font-size: 14px; }
  .sa-form-title { display: block; }
  .sa-form-title span { display: block; margin-top: 4px; }
}

@media (prefers-reduced-motion: reduce) {
  .sa-dot, .sa-detect, .sa-scanline { animation: none; }
  .sa-btn, .sa-case, .sa-textlink span, .sa-faq-q i { transition: none; }
}
