@charset "utf-8";
/* ==========================================================================
   闪链云官网 - 页面级样式
   Home Hero / 产品 / 软件 / 方案 / 案例 / 关于
   ========================================================================== */

/* ============ 首页 Hero ============ */
.hero {
  position: relative;
  padding: 118px 0 108px;
  background: var(--grad-dark);
  color: #fff;
  overflow: hidden;
  isolation: isolate;
}
.hero__glow {
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image:
    radial-gradient(52rem 30rem at 78% 8%, rgba(10, 96, 240, .58), transparent 66%),
    radial-gradient(38rem 26rem at 12% 96%, rgba(0, 216, 255, .20), transparent 64%);
}
.hero__grid {
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image:
    linear-gradient(rgba(122, 174, 255, .10) 1px, transparent 1px),
    linear-gradient(90deg, rgba(122, 174, 255, .10) 1px, transparent 1px);
  background-size: 62px 62px;
  mask-image: radial-gradient(70% 62% at 50% 40%, #000 30%, transparent 100%);
  -webkit-mask-image: radial-gradient(70% 62% at 50% 40%, #000 30%, transparent 100%);
}
.hero__in {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 56px;
  align-items: center;
}
.hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 34px;
  padding: 0 16px 0 6px;
  margin-bottom: 26px;
  border-radius: 999px;
  border: 1px solid var(--line-dark);
  background: rgba(255, 255, 255, .05);
  font-size: 13px;
  color: var(--tx-on-dark-2);
}
.hero__badge b {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  background: var(--grad-brand);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
}
.hero h1 {
  font-size: clamp(34px, 4.6vw, 60px);
  line-height: 1.14;
  letter-spacing: -.03em;
}
.hero h1 .grad {
  background: var(--grad-text);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.hero__sub {
  margin-top: 24px;
  max-width: 590px;
  font-size: 17px;
  color: var(--tx-on-dark-2);
}
.hero__acts { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 38px; }
.hero__points {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 28px;
  margin-top: 40px;
  padding-top: 32px;
  border-top: 1px solid var(--line-dark);
}
.hero__points li {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 14.5px;
  color: var(--tx-on-dark-2);
}
.hero__points svg { width: 18px; height: 18px; color: var(--cyan); flex: none; }

/* Hero 产品可视化 */
.hero__visual { position: relative; display: grid; place-items: center; min-height: 460px; }
.hero__ring {
  position: absolute;
  width: 430px;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 1px solid rgba(107, 166, 255, .22);
  background: radial-gradient(circle at 50% 46%, rgba(10, 96, 240, .28), transparent 62%);
}
.hero__ring::after {
  content: "";
  position: absolute;
  inset: 46px;
  border-radius: 50%;
  border: 1px dashed rgba(107, 166, 255, .22);
  animation: spin 26s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.hero__shot {
  position: relative;
  width: 100%;
  max-width: 380px;
  filter: drop-shadow(0 34px 54px rgba(0, 0, 0, .5));
  animation: float 7s ease-in-out infinite;
}
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-14px); }
}
.hero__float {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 12px 16px;
  border-radius: 14px;
  background: rgba(6, 18, 41, .78);
  border: 1px solid var(--line-dark);
  backdrop-filter: blur(12px);
  box-shadow: var(--shadow-lg);
  white-space: nowrap;
}
.hero__float svg { width: 20px; height: 20px; color: var(--cyan); flex: none; }
.hero__float b { display: block; font-size: 14px; color: #fff; }
.hero__float span { display: block; font-size: 12px; color: var(--tx-on-dark-3); }
.hero__float--a { left: -8px; top: 16%; animation: float 8s ease-in-out infinite; }
.hero__float--b { right: -12px; top: 44%; animation: float 9s ease-in-out .6s infinite; }
.hero__float--c { left: 4%; bottom: 10%; animation: float 7.5s ease-in-out 1.2s infinite; }

/* 首页数据条 */
.hero-stats { background: var(--ink-700); padding: 46px 0; }

/* ============ 通用：图文左右块 ============ */
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
.split--flip .split__media { order: 2; }
.split__media {
  position: relative;
  border-radius: var(--r-xl);
  overflow: hidden;
}
.split__media img { width: 100%; }
.split__media--plain {
  background: linear-gradient(160deg, var(--paper-2), var(--paper-3));
  padding: 34px;
  border: 1px solid var(--line);
}
.split__media--dark {
  background: linear-gradient(160deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .02));
  border: 1px solid var(--line-dark);
  padding: 34px;
}
.split h2 { font-size: clamp(24px, 2.6vw, 34px); }
.split__list { margin-top: 26px; display: grid; gap: 16px; }
.split__list li { display: flex; gap: 14px; }
.split__list svg { width: 22px; height: 22px; flex: none; color: var(--brand); margin-top: 3px; }
.split__list b { display: block; font-size: 16px; }
.split__list p { font-size: 14.5px; color: var(--tx-2); margin-top: 3px; }
.section--dark .split__list svg { color: var(--cyan); }
.section--dark .split__list p { color: var(--tx-on-dark-2); }

/* ============ 产品卡 ============ */
.pcard {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.pcard:hover { transform: translateY(-8px); box-shadow: var(--shadow-lg); border-color: rgba(10, 96, 240, .24); }
.pcard__pic {
  position: relative;
  aspect-ratio: 4 / 3.4;
  display: grid;
  place-items: center;
  padding: 26px;
  background:
    radial-gradient(70% 60% at 50% 22%, rgba(10, 96, 240, .10), transparent 70%),
    linear-gradient(170deg, #f6f9ff, #e8effa);
  overflow: hidden;
}
.pcard__pic img {
  max-height: 100%;
  width: auto;
  transition: transform .5s var(--ease);
}
.pcard:hover .pcard__pic img { transform: scale(1.06); }
.pcard__flag {
  position: absolute;
  left: 16px;
  top: 16px;
  height: 26px;
  padding: 0 11px;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: var(--grad-brand);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
}
.pcard__body { padding: 26px; display: flex; flex-direction: column; flex: 1; }
.pcard__body h3 { font-size: 20px; }
.pcard__body > p { margin-top: 10px; font-size: 14.5px; color: var(--tx-2); flex: 1; }
.pcard__spec {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px dashed var(--line);
  display: grid;
  gap: 9px;
}
.pcard__spec li { display: flex; justify-content: space-between; gap: 14px; font-size: 13.5px; }
.pcard__spec span { color: var(--tx-3); flex: none; }
.pcard__spec b { font-weight: 600; text-align: right; }
.pcard__tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 18px; }

/* 小尺寸产品卡（其他产品/场景柜） */
.mcard {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  overflow: hidden;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.mcard:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.mcard__pic { aspect-ratio: 16 / 11; overflow: hidden; background: var(--paper-3); }
.mcard__pic img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.mcard:hover .mcard__pic img { transform: scale(1.07); }
.mcard__body { padding: 20px 22px 24px; }
.mcard__body h3 { font-size: 17px; margin-bottom: 8px; }
.mcard__body p { font-size: 13.8px; color: var(--tx-2); }

/* 物料图标行 */
.matrow { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; }
.matrow figure {
  margin: 0;
  padding: 20px 14px;
  text-align: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  transition: transform .28s var(--ease), box-shadow .28s var(--ease);
}
.matrow figure:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
.matrow img { height: 74px; width: auto; margin: 0 auto 12px; object-fit: contain; mix-blend-mode: multiply; }
.matrow figcaption { font-size: 14.5px; font-weight: 600; }

/* ============ 软件系统 ============ */
.arch {
  display: grid;
  gap: 18px;
  padding: 34px;
  border-radius: var(--r-xl);
  background: linear-gradient(160deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .02));
  border: 1px solid var(--line-dark);
}
.arch__row {
  display: grid;
  grid-template-columns: 148px 1fr;
  gap: 22px;
  align-items: center;
  padding: 22px;
  border-radius: var(--r-md);
  background: rgba(3, 10, 24, .42);
  border: 1px solid var(--line-dark);
}
.arch__row > b {
  font-size: 15px;
  color: var(--cyan-soft);
  letter-spacing: .04em;
}
.arch__chips { display: flex; flex-wrap: wrap; gap: 9px; }
.arch__chips span {
  padding: 7px 13px;
  border-radius: 8px;
  background: rgba(107, 166, 255, .12);
  border: 1px solid var(--line-dark);
  font-size: 13.5px;
  color: var(--tx-on-dark-2);
}
.arch__link {
  display: grid;
  place-items: center;
  height: 26px;
  color: var(--brand-300);
}
.arch__link svg { width: 22px; height: 22px; }

/* 三端展示 */
.ends { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; align-items: start; }
.end {
  padding: 30px;
  border-radius: var(--r-lg);
  background: #fff;
  border: 1px solid var(--line);
  text-align: center;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.end:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.end__pic {
  height: 240px;
  display: grid;
  place-items: center;
  margin-bottom: 22px;
  border-radius: var(--r-md);
  background: linear-gradient(170deg, #f6f9ff, #e8effa);
  overflow: hidden;
}
.end__pic img { max-height: 100%; width: auto; }
.end h3 { font-size: 19px; }
.end p { margin-top: 9px; font-size: 14px; color: var(--tx-2); }
.end ul { margin-top: 18px; text-align: left; display: grid; gap: 8px; }
.end li { position: relative; padding-left: 18px; font-size: 13.8px; color: var(--tx-2); }
.end li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--brand-400);
}

/* 功能矩阵 */
.fmatrix { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.fmod {
  padding: 28px;
  border-radius: var(--r-lg);
  border: 1px solid var(--line);
  background: #fff;
}
.fmod__hd { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.fmod__hd i {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 11px;
  background: rgba(10, 96, 240, .08);
  color: var(--brand);
  flex: none;
}
.fmod__hd svg { width: 21px; height: 21px; }
.fmod__hd h3 { font-size: 17.5px; }
.fmod ul { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 14px; }
.fmod li { position: relative; padding-left: 16px; font-size: 13.6px; color: var(--tx-2); }
.fmod li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--brand-300);
}

/* 流程步骤 */
.flow { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.flow__i {
  position: relative;
  padding: 26px 20px;
  border-radius: var(--r-md);
  background: #fff;
  border: 1px solid var(--line);
  transition: transform .28s var(--ease), box-shadow .28s var(--ease);
}
.flow__i:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
.flow__i b {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin-bottom: 14px;
  border-radius: 10px;
  background: var(--grad-brand);
  color: #fff;
  font-size: 14px;
}
.flow__i h4 { font-size: 15.5px; margin-bottom: 8px; }
.flow__i p { font-size: 13.2px; color: var(--tx-2); }
.flow__i::after {
  content: "";
  position: absolute;
  right: -11px;
  top: 42px;
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--brand-300);
  border-bottom: 2px solid var(--brand-300);
  transform: rotate(-45deg);
}
.flow__i:last-child::after { display: none; }

/* 对比表 */
.ctable {
  border-radius: var(--r-lg);
  overflow: hidden;
  border: 1px solid var(--line);
  background: #fff;
}
.ctable table { font-size: 14.2px; }
.ctable th, .ctable td { padding: 15px 20px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.ctable thead th { background: var(--ink-700); color: #fff; font-size: 14.5px; font-weight: 600; border-bottom: 0; }
.ctable thead th:first-child { width: 22%; }
.ctable tbody th { width: 22%; font-weight: 600; background: var(--paper-2); color: var(--tx-1); }
.ctable td { color: var(--tx-2); }
.ctable tbody tr:last-child th,
.ctable tbody tr:last-child td { border-bottom: 0; }
.ctable tbody tr:hover td { background: rgba(10, 96, 240, .03); }
.tbl-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* API / 数据能力 */
.api-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.api-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 18px;
  border-radius: var(--r-md);
  background: rgba(3, 10, 24, .4);
  border: 1px solid var(--line-dark);
  font-size: 14px;
  color: var(--tx-on-dark-2);
}
.api-list code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12.5px;
  padding: 3px 8px;
  border-radius: 6px;
  background: rgba(107, 166, 255, .14);
  color: var(--cyan-soft);
  flex: none;
}

/* ============ 解决方案 ============ */
.sol {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 54px;
  align-items: center;
  padding: 44px 0;
}
.sol + .sol { border-top: 1px solid var(--line); }
.sol--flip .sol__media { order: 2; }
.sol__no {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .14em;
  color: var(--brand);
  margin-bottom: 14px;
}
.sol__no b {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: var(--grad-brand);
  color: #fff;
  font-size: 14px;
  letter-spacing: 0;
}
.sol h3 { font-size: clamp(21px, 2.3vw, 28px); }
.sol > div > p { margin-top: 16px; font-size: 15px; color: var(--tx-2); }
.sol__kv { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 24px; }
.sol__kv li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 16px;
  border-radius: var(--r-sm);
  background: var(--paper-2);
  font-size: 13.8px;
  font-weight: 500;
}
.sol__kv svg { width: 18px; height: 18px; color: var(--brand); flex: none; }
.sol__media {
  border-radius: var(--r-xl);
  overflow: hidden;
  background: linear-gradient(170deg, #f5f8ff, #e6edf9);
  border: 1px solid var(--line);
  display: grid;
  place-items: center;
  padding: 32px;
  min-height: 300px;
}
.sol__media img { max-height: 380px; width: auto; }
.sol__media--cover { padding: 0; }
.sol__media--cover img { width: 100%; max-height: none; }

/* 产品参数表 */
.spec-table {
  font-size: 14px;
  border-radius: var(--r-md);
  overflow: hidden;
}
.spec-table th,
.spec-table td {
  padding: 12px 16px;
  text-align: left;
  border-bottom: 1px solid var(--line);
}
.spec-table th {
  width: 40%;
  font-weight: 500;
  color: var(--tx-3);
  background: var(--paper-2);
}
.spec-table td { font-weight: 600; }
.spec-table tr:last-child th,
.spec-table tr:last-child td { border-bottom: 0; }

/* 六大方案概览格 */
.solgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }

/* ============ 案例 ============ */
.case-star {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.cstar {
  display: flex;
  flex-direction: column;
  border-radius: var(--r-lg);
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.cstar:hover { transform: translateY(-7px); box-shadow: var(--shadow-lg); }
.cstar__pic { aspect-ratio: 4 / 3; overflow: hidden; }
.cstar__pic img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s var(--ease); }
.cstar:hover .cstar__pic img { transform: scale(1.06); }
.cstar__body { padding: 26px; display: flex; flex-direction: column; flex: 1; }
.cstar__logo { height: 40px; width: auto; margin-bottom: 16px; object-fit: contain; }
.cstar__body h3 { font-size: 18.5px; }
.cstar__body p { margin-top: 11px; font-size: 14.2px; color: var(--tx-2); flex: 1; }
.cstar__foot {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px dashed var(--line);
}

/* 组合案例网格 */
.combo { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.combo figure {
  margin: 0;
  border-radius: var(--r-md);
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.combo figure:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.combo__pic { aspect-ratio: 4 / 3; overflow: hidden; background: var(--paper-3); }
.combo__pic img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.combo figure:hover img { transform: scale(1.06); }
.combo figcaption { padding: 16px 18px 20px; }
.combo figcaption b { display: block; font-size: 15px; }
.combo figcaption span { display: block; margin-top: 5px; font-size: 13.2px; color: var(--tx-3); }

/* ROI 收益 */
.roi { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.roi__i {
  padding: 28px 26px;
  border-radius: var(--r-lg);
  background: linear-gradient(165deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .02));
  border: 1px solid var(--line-dark);
}
.roi__i h4 { font-size: 16px; color: #fff; }
.roi__i p { margin-top: 10px; font-size: 13.6px; color: var(--tx-on-dark-3); min-height: 62px; }
.roi__i b {
  display: block;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line-dark);
  font-size: 24px;
  letter-spacing: -.02em;
  background: var(--grad-text);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.roi-total {
  margin-top: 26px;
  padding: 26px 32px;
  border-radius: var(--r-lg);
  background: var(--grad-brand);
  color: #fff;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  box-shadow: var(--shadow-glow);
}
.roi-total p { font-size: 15px; opacity: .92; }
.roi-total b { font-size: 32px; letter-spacing: -.02em; }

/* 前后对比 */
.vs {
  border-radius: var(--r-lg);
  overflow: hidden;
  border: 1px solid var(--line);
  background: #fff;
}
.vs table { font-size: 14.2px; }
.vs th, .vs td { padding: 15px 20px; border-bottom: 1px solid var(--line); }
.vs thead th { font-size: 14.5px; font-weight: 600; }
.vs thead th:nth-child(1) { background: #eef2f8; color: var(--tx-2); width: 34%; }
.vs thead th:nth-child(2) { background: var(--ink-700); color: #fff; width: 20%; text-align: center; }
.vs thead th:nth-child(3) { background: var(--brand); color: #fff; width: 46%; }
.vs td:nth-child(1) { color: var(--tx-3); }
.vs td:nth-child(2) { text-align: center; font-weight: 600; color: var(--tx-1); background: var(--paper-2); }
.vs td:nth-child(3) { color: var(--brand-600); font-weight: 600; }
.vs tbody tr:last-child td { border-bottom: 0; }

/* 客户墙 */
.wall {
  padding: 30px;
  border-radius: var(--r-xl);
  background: #fff;
  border: 1px solid var(--line);
}
.wall img { width: 100%; }

/* ============ 关于我们 ============ */
.about-lead { font-size: 16.5px; color: var(--tx-2); }
.about-lead p + p { margin-top: 16px; }
.about-lead strong { color: var(--tx-1); }

.milestone { position: relative; padding-left: 30px; }
.milestone::before {
  content: "";
  position: absolute;
  left: 5px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: linear-gradient(180deg, var(--brand), rgba(0, 216, 255, .35), transparent);
}
.milestone li { position: relative; padding-bottom: 30px; }
.milestone li:last-child { padding-bottom: 0; }
.milestone li::before {
  content: "";
  position: absolute;
  left: -30px;
  top: 8px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--brand);
  box-shadow: 0 0 0 4px rgba(10, 96, 240, .16);
}
.milestone time { font-size: 13.5px; font-weight: 700; color: var(--brand); letter-spacing: .04em; }
.milestone h4 { margin: 5px 0 6px; font-size: 17px; }
.milestone p { font-size: 14.2px; color: var(--tx-2); }

.honor { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.honor__i {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 20px 22px;
  border-radius: var(--r-md);
  background: #fff;
  border: 1px solid var(--line);
  transition: transform .28s var(--ease), box-shadow .28s var(--ease);
}
.honor__i:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
.honor__i svg { width: 30px; height: 30px; color: var(--brand); flex: none; }
.honor__i b { display: block; font-size: 21px; letter-spacing: -.01em; }
.honor__i span { display: block; font-size: 13.2px; color: var(--tx-2); }

.office { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.office__i {
  padding: 26px;
  border-radius: var(--r-md);
  background: rgba(255, 255, 255, .05);
  border: 1px solid var(--line-dark);
}
.office__i b { display: flex; align-items: center; gap: 9px; font-size: 16px; color: #fff; }
.office__i b svg { width: 18px; height: 18px; color: var(--cyan); }
.office__i p { margin-top: 12px; font-size: 14px; color: var(--tx-on-dark-2); }

.job-table th, .job-table td { padding: 15px 20px; border-bottom: 1px solid var(--line); font-size: 14.2px; text-align: left; }
.job-table thead th { background: var(--ink-700); color: #fff; font-weight: 600; border-bottom: 0; }
.job-table tbody tr:last-child td { border-bottom: 0; }

/* 联系表单 */
.cform { display: grid; gap: 16px; }
.cform__row { display: grid; gap: 7px; }
.cform__row label { font-size: 13.5px; font-weight: 600; color: var(--tx-2); }
.cform__row label span { color: #e0483c; }
.cform input,
.cform textarea {
  width: 100%;
  padding: 12px 15px;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  background: var(--paper-2);
  font-size: 14.5px;
  transition: border-color .22s var(--ease), background-color .22s var(--ease), box-shadow .22s var(--ease);
}
.cform textarea { resize: vertical; min-height: 96px; }
.cform input::placeholder,
.cform textarea::placeholder { color: var(--tx-3); }
.cform input:focus,
.cform textarea:focus {
  outline: 0;
  background: #fff;
  border-color: var(--brand-400);
  box-shadow: 0 0 0 3px rgba(10, 96, 240, .12);
}
.cform__tip {
  padding: 11px 14px;
  border-radius: var(--r-sm);
  background: rgba(10, 96, 240, .07);
  border: 1px solid rgba(10, 96, 240, .18);
  font-size: 13.5px;
  color: var(--brand-600);
}

/* ============ 通用 CTA 条 ============ */
.cta {
  position: relative;
  padding: 68px 0;
  background: var(--ink-800);
  color: #fff;
  overflow: hidden;
  isolation: isolate;
}
.cta__bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image:
    radial-gradient(40rem 20rem at 84% 0%, rgba(10, 96, 240, .5), transparent 66%),
    radial-gradient(30rem 18rem at 10% 100%, rgba(0, 216, 255, .18), transparent 64%);
}
.cta__in {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
}
.cta h2 { font-size: clamp(23px, 2.6vw, 33px); }
.cta p { margin-top: 12px; font-size: 15.5px; color: var(--tx-on-dark-2); }
.cta__acts { display: flex; flex-wrap: wrap; gap: 13px; }

/* ============ 响应式 ============ */
@media (max-width: 1080px) {
  .hero__in { grid-template-columns: 1fr; gap: 44px; }
  .hero__visual { min-height: 380px; }
  .hero__sub { max-width: none; }
  .matrow { grid-template-columns: repeat(3, 1fr); }
  .flow { grid-template-columns: repeat(3, 1fr); }
  .flow__i:nth-child(3n)::after { display: none; }
  .fmatrix, .ends, .solgrid, .case-star { grid-template-columns: 1fr; }
  .combo, .roi, .honor, .office { grid-template-columns: repeat(2, 1fr); }
  .split, .sol { grid-template-columns: 1fr; gap: 34px; }
  .split--flip .split__media, .sol--flip .sol__media { order: 0; }
  .api-list { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .hero { padding: 72px 0 62px; }
  .hero__float { display: none; }
  .hero__ring { width: 300px; }
  .hero__acts .btn { width: 100%; }
  .matrow { grid-template-columns: repeat(2, 1fr); }
  .flow { grid-template-columns: 1fr; }
  .flow__i::after { display: none; }
  .combo, .roi, .honor, .office, .sol__kv, .fmod ul { grid-template-columns: 1fr; }
  .arch__row { grid-template-columns: 1fr; gap: 14px; }
  .roi-total { flex-direction: column; align-items: flex-start; }
  .end__pic { height: 200px; }
  .cta__acts .btn { width: 100%; }
}
