/* ==========================================================================
   商务版（暗色 · 品牌色不变）：结构按商务站排，颜色全部沿用原品牌
   --primary #22D3EE / 背景 #070B14 / 文字 #E6EDF7
   ========================================================================== */

:root {
  --b-bg: #070B14;
  --b-bg-2: #0A1220;
  --b-panel: rgba(255, 255, 255, .035);
  --b-line: rgba(255, 255, 255, .10);
  --b-ink: #E6EDF7;
  --b-body: #A9B6C8;
  --b-muted: #7C8AA5;
  --b-brand: #22D3EE;
}

body.page-home main {
  background: var(--b-bg) !important;
  background-image: none !important;
  color: var(--b-ink);
}

/* 顶栏 */
body.page-home .site-header {
  background: rgba(7, 11, 20, .86) !important;
  border-bottom: 1px solid var(--b-line) !important;
}
body.page-home .site-header .nav-link,
body.page-home .site-header nav a { color: var(--b-body) !important; }
body.page-home .site-header .nav-link:hover { color: #fff !important; }
body.page-home .site-header .logo b,
body.page-home .site-header .logo-text,
body.page-home .site-header .brand,
body.page-home .site-header strong { color: var(--b-ink) !important; }
body.page-home .site-header svg { color: var(--b-ink) !important; }

/* 按钮：品牌青 */
.a-pill {
  border-radius: 8px !important; height: 46px; padding: 0 26px;
  background: var(--b-brand) !important; color: #04121A !important;
  border: 1px solid var(--b-brand) !important; box-shadow: none !important;
  font-weight: 700; letter-spacing: .02em;
}
.a-pill:hover { background: #5EE0F0 !important; border-color: #5EE0F0 !important; }
.a-seg .k { color: var(--b-brand) !important; font-family: var(--font-mono) !important; font-weight: 500; letter-spacing: .18em; }
.a-cta .a-pill { background: var(--b-brand) !important; color: #04121A !important; border-color: var(--b-brand) !important; }

/* 页脚 */
.site-footer { background: #05080F !important; color: var(--b-muted) !important; border-top: 1px solid var(--b-line) !important; }
.site-footer a { color: var(--b-body) !important; }
.site-footer a:hover { color: #fff !important; }
.a-strip-item .k { font-family: var(--font-mono); font-size: 11px; letter-spacing: .2em; color: var(--b-brand); }
.cap-kicker { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .22em; color: var(--b-brand); text-transform: uppercase; }
.cap-body { margin: 0; font-size: 17px; line-height: 1.85; color: var(--b-body); max-width: 560px; }
.cap-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.cap-chips span { font-size: 12.5px; color: var(--b-body); border: 1px solid var(--b-line); border-radius: 999px; padding: 5px 12px; }
.cap-body { font-size: 16.5px !important; max-width: 520px; }

/* 运行时一节：强调 */
.cap:has(.cap-chips span:nth-child(4)) .cap-title { font-size: clamp(30px, 3vw, 40px) !important; }
.cap:has(.cap-chips span:nth-child(4)) .cap-chips span { border-color: rgba(34,211,238,.4); color: var(--b-brand); }
body.page-home .sec-head { max-width: 820px; }
body.page-home .sec-head h2 { margin: 16px 0 0; font-size: clamp(32px, 4vw, 54px); line-height: 1.18; letter-spacing: -.03em; color: var(--b-ink); }
body.page-home .sec-head .lede { margin: 20px 0 0; font-size: 18px; line-height: 1.8; color: var(--b-body); }

/* 组织资产沉淀章：两条 */
.cap-inner { display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(0, 0.94fr); gap: 56px;
  padding: 46px 0; border-top: 1px solid var(--b-line); align-items: start; }
.cap-subtitle { margin: 14px 0 0; font-size: clamp(22px, 2.2vw, 30px); line-height: 1.36; letter-spacing: -.02em;
  font-weight: 700; color: var(--b-ink); max-width: 560px; text-wrap: balance; }
#assets .sec-head { margin-bottom: 12px; }
@media (max-width: 900px) { .cap-inner { grid-template-columns: 1fr; gap: 16px; padding: 30px 0; } }

/* 内容矩阵 */
.content-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: 48px; }
.content-card { display: block; border: 1px solid var(--b-line); border-radius: 12px; padding: 26px;
  background: var(--b-panel); text-decoration: none; transition: border-color .2s, transform .2s; }
.content-card:hover { border-color: rgba(34,211,238,.45); transform: translateY(-2px); }
.content-card h3 { margin: 0 0 10px; font-size: 18px; color: var(--b-ink); }
.content-card p { margin: 0 0 18px; font-size: 14px; line-height: 1.75; color: var(--b-body); }
.content-card span { font-size: 13px; color: var(--b-brand); }

/* 4 小时诊断 */
.diag-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: 48px; }
.diag-step { border-top: 1px solid var(--b-line); padding-top: 20px; }
.diag-step .k { font-family: var(--font-mono); font-size: 11px; letter-spacing: .2em; color: var(--b-brand); }
.diag-step h3 { margin: 12px 0 8px; font-size: 17px; color: var(--b-ink); }
.diag-step p { margin: 0; font-size: 14px; line-height: 1.75; color: var(--b-body); }
.diag-cta { display: flex; align-items: center; gap: 24px; margin-top: 48px; flex-wrap: wrap; }
@media (max-width: 1000px) { .content-grid, .diag-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .content-grid, .diag-grid { grid-template-columns: 1fr; } }
.perm-ladder { display: flex; align-items: stretch; gap: 10px; margin-top: 26px; }
.perm-level { flex: 1; border: 1px solid var(--b-line); border-radius: 10px; padding: 14px 16px; background: var(--b-panel); }
.perm-level b { display: block; font-size: 15px; color: var(--b-ink); }
.perm-level span { display: block; margin-top: 6px; font-size: 12.5px; line-height: 1.6; color: var(--b-body); }
.perm-level:last-child { border-color: rgba(34,211,238,.4); }
.perm-level:last-child b { color: var(--b-brand); }
@media (max-width: 900px) { .perm-ladder { flex-wrap: wrap; } .perm-level { flex: 1 1 45%; } }
@media (max-width: 560px) { .perm-level { flex: 1 1 100%; } }

/* 首页头：apple.css 里把它压到 52px 了，这里显式改回来 */
body.page-home .site-header { height: auto !important; min-height: 88px; }
body.page-home .site-header .wrap,
body.page-home .site-header .header-inner { height: 88px !important; min-height: 88px; }
body.page-home .site-header .nav-link { height: 44px !important; }

/* 头高统一 60px（最后一次覆盖） */
.header-inner,
body.page-home .site-header .wrap,
body.page-home .site-header .header-inner { height: 60px !important; min-height: 60px !important; }
body.page-home .site-header { min-height: 60px !important; }
.site-nav .nav-link,
body.page-home .site-header .nav-link { height: 36px !important; font-size: 14.5px; padding: 0 12px; }
.brand .mark { width: 26px; height: 26px; }
.brand .name b { font-size: 16px; }

/* ============ 去分割线，用间距表达分层 ============ */
.site-header { border-bottom: 0 !important; }
.site-footer { border-top: 0 !important; }
.chapter, .cap, .cap-inner, .a-sec, .a-item, .a-seg, .a-cta, .a-cases { border-top: 0 !important; border-bottom: 0 !important; }
.diag-step { border-top: 0 !important; padding-top: 0 !important; }
.cap-inner { padding: 66px 0 !important; }
.cap-inner:first-of-type { padding-top: 46px !important; }
.diag-grid { gap: 40px 24px !important; }

/* 统一底色：不再用色块分区，只靠间距 */
body.page-home main { background: #070B14 !important; background-image: none !important; }

/* 导航底色与页面完全一致，去掉玻璃和模糊 */
.site-header,
body.page-home .site-header {
  background: #070B14 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}
.site-nav .nav-link:hover,
.site-nav .nav-link.active { background: transparent !important; }
.site-nav .nav-link:hover { color: #FFFFFF !important; }
.site-nav .nav-link.active { color: #FFFFFF !important; }

/* 导航里的按钮不要光晕 */
.site-header .btn,
body.page-home .site-header .btn { box-shadow: none !important; }

.diag-note { font-size: 13.5px; color: var(--b-muted); }
.ill-wrap.in .ill-draw { animation: draw 1.6s cubic-bezier(.2,.7,.2,1) forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }
@keyframes illPulse { 0%,100% { opacity: .3; } 50% { opacity: 1; } }
.ill-wrap.in .ill-pulse { animation-delay: .9s; }
@keyframes flowMove { to { stroke-dashoffset: -32; } }

.logo-block { margin-top: 64px; }
.logo-head { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 20px; }
.logo-head b { font-size: 16px; color: var(--b-ink); }
.logo-head span { font-size: 12.5px; color: var(--b-muted); }
.logo-row { display: grid; grid-template-columns: repeat(8, 1fr); gap: 12px; }
.logo-slot { aspect-ratio: 3 / 2; border: 1px dashed rgba(255,255,255,.18); border-radius: 10px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  color: #5A6577; background: rgba(255,255,255,.02); }
.logo-slot span { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .12em; }
.logo-slot i { font-style: normal; font-size: 10px; color: #46505F; }
@media (max-width: 1000px) { .logo-row { grid-template-columns: repeat(4, 1fr); } }

/* ---------------- 手绘涂鸦点缀 + 动效 ---------------- */
:root {
  --ddl: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 22'><path d='M3 15 C38 5 72 19 108 10 S182 5 237 13' fill='none' stroke='%2322D3EE' stroke-width='2.6' stroke-linecap='round'/></svg>");
}
.a-h1 .hl { position: relative; display: inline-block; }
.a-h1 .hl::after {
  content: ""; position: absolute; left: -2%; right: -2%; bottom: -12px; height: 20px;
  background: var(--ddl) no-repeat center / 100% 100%;
  animation: drawIn .9s .35s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes drawIn { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }

/* 首屏两个涂鸦符号 */
.doodle { position: absolute; color: rgba(34,211,238,.75); pointer-events: none; }
.doodle svg { display: block; width: 100%; height: 100%; }
.doodle.d1 { width: 58px; height: 58px; right: 44%; top: 6px; transform: rotate(-8deg); animation: bob 6s ease-in-out infinite; }
.doodle.d2 { width: 26px; height: 26px; right: 40%; top: 76px; opacity: .6; animation: bob 7.5s ease-in-out infinite reverse; }
@keyframes bob { 0%,100% { transform: translateY(0) rotate(-8deg); } 50% { transform: translateY(-8px) rotate(-4deg); } }
@keyframes floatSlow { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
.engine, .ind-card, .content-card, .case-card, .diag-step { transition: transform .25s ease, border-color .25s ease; }
.engine:hover, .ind-card:hover, .content-card:hover, .case-card:hover { transform: translateY(-4px); border-color: rgba(34,211,238,.4) !important; }
@media (prefers-reduced-motion: reduce) {
  .a-h1 .hl::after, .doodle, .art-slot { animation: none !important; }
}

/* 卡片图标：渐变方块 + 线图标 */
.engine .ico, .ind-card .ico, .content-card .ico {
  width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; margin-bottom: 14px;
  background: linear-gradient(135deg, rgba(34,211,238,.22), rgba(34,211,238,.05));
  border: 1px solid rgba(34,211,238,.25);
}
.engine .ico svg, .ind-card .ico svg, .content-card .ico svg { width: 18px; height: 18px; color: #7DE2F2; }
.engine .ico + h3, .ind-card .ico + h3, .content-card .ico + h3 { margin-top: 0; }

/* 卡片错峰入场 */
@keyframes fadeUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.engine, .ind-card, .content-card { animation: fadeUp .7s cubic-bezier(.2,.7,.2,1) both; }
.engine:nth-child(1), .ind-card:nth-child(1), .content-card:nth-child(1) { animation-delay: .02s; }
.engine:nth-child(2), .ind-card:nth-child(2), .content-card:nth-child(2) { animation-delay: .08s; }
.engine:nth-child(3), .ind-card:nth-child(3), .content-card:nth-child(3) { animation-delay: .14s; }
.engine:nth-child(4), .ind-card:nth-child(4), .content-card:nth-child(4) { animation-delay: .2s; }
@media (prefers-reduced-motion: reduce) { .engine, .ind-card, .content-card { animation: none !important; } }

/* 章节标题：手绘下划线 / 高亮贴纸 / 涂鸦点缀 */
body.page-home .sec-head h2 .u { position: relative; display: inline-block; }
body.page-home .sec-head h2 .u::after {
  content: ""; position: absolute; left: -2%; right: -2%; bottom: -6px; height: 16px;
  background: var(--ddl) no-repeat center / 100% 100%;
  animation: drawIn .8s .2s cubic-bezier(.2,.7,.2,1) both;
}
.stk {
  display: inline-block; padding: 0 12px; border-radius: 12px;
  background: rgba(34,211,238,.14); color: #9FEEF9;
  box-shadow: inset 0 0 0 1px rgba(34,211,238,.25);
  transform: rotate(-1.2deg);
}
body.page-home .sec-head { position: relative; }
.doodle.dd-arrow { width: 64px; height: 46px; right: 84px; top: -18px; opacity: .7; animation: bob 7s ease-in-out infinite; }
.doodle.dd-spark { width: 22px; height: 22px; right: 120px; top: -6px; opacity: .55; animation: bob 6s ease-in-out infinite reverse; }
.doodle.dd-swirl { width: 54px; height: 54px; right: 96px; top: -14px; opacity: .6; animation: bob 8s ease-in-out infinite; }
@media (max-width: 900px) { .doodle.dd-arrow, .doodle.dd-spark, .doodle.dd-swirl { display: none; } }
@media (prefers-reduced-motion: reduce) {
  body.page-home .sec-head h2 .u::after { animation: none !important; }
}
.art-art.in .doodle-art .dw { animation: dwDraw 1.8s cubic-bezier(.2,.7,.2,1) forwards; }
@keyframes dwDraw { to { stroke-dashoffset: 0; } }
.art-art.in .doodle-art { animation: dwFloat 9s ease-in-out infinite; }
@keyframes dwFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@media (prefers-reduced-motion: reduce) {
  .art-art.in .doodle-art { animation: none !important; }
}

/* ================= 结构升级：Tab / 对比 / 观点 / 步骤条 / FAQ / 指示器 ================= */
/* 图标升级 */
.engine .ico, .ind-card .ico, .content-card .ico { width: 44px; height: 44px; border-radius: 12px;
  background: linear-gradient(145deg, rgba(34,211,238,.28), rgba(34,211,238,.06) 60%), #0A1626;
  border: 1px solid rgba(34,211,238,.28); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
.engine .ico svg, .ind-card .ico svg, .content-card .ico svg { width: 21px; height: 21px; }
.engine .ico svg *[stroke], .ind-card .ico svg *[stroke], .content-card .ico svg *[stroke] { stroke-width: 1.9; }
.ind-tab { padding: 10px 18px; border-radius: 999px; border: 1px solid var(--b-line);
  background: transparent; color: var(--b-body); font: inherit; font-size: 14.5px; cursor: pointer;
  transition: color .2s, background .2s, border-color .2s; }
.ind-tab:hover { color: var(--b-ink); border-color: rgba(34,211,238,.35); }
.ind-tab.is-on { background: rgba(34,211,238,.14); border-color: rgba(34,211,238,.5); color: #fff; }
.ind-panels { min-height: 120px; }
.ind-panel { display: none; }
.ind-panel.is-on { display: block; animation: fadeUp .35s cubic-bezier(.2,.7,.2,1) both; }

/* 对比 */
div.cmp { margin-top: 44px; border: 1px solid var(--b-line); border-radius: 14px; overflow: hidden; }
.cmp-row { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--b-line); }
.cmp-row p { margin: 0; padding: 18px 22px; font-size: 15px; line-height: 1.75; }
.cmp-a { color: var(--b-muted); text-decoration: line-through; text-decoration-color: rgba(255,255,255,.16); }
.cmp-b { color: var(--b-ink); background: rgba(34,211,238,.045); }

/* 大字观点 */
.quote-band .q-big { margin: 0 0 22px; font-size: clamp(30px, 4.2vw, 56px); line-height: 1.24;
  font-weight: 800; letter-spacing: -.02em; color: var(--b-ink); }
.quote-band .q-sub { margin: 0; font-size: 16px; line-height: 1.9; color: var(--b-body); max-width: 720px; }

/* 诊断步骤条 */
.diag-stepper { position: relative; }
.diag-stepper::before { content: ""; position: absolute; left: 0; right: 0; top: 6px; height: 1px;
  background: linear-gradient(90deg, rgba(34,211,238,.45), rgba(34,211,238,.04)); }
.diag-stepper .diag-step { padding-top: 30px; position: relative; }
.diag-stepper .diag-step::before { content: ""; position: absolute; top: 1px; left: 0; width: 9px; height: 9px;
  border-radius: 50%; background: var(--b-brand); box-shadow: 0 0 0 4px rgba(34,211,238,.14); }

/* FAQ */
.faq { display: grid; gap: 12px; margin-top: 36px; max-width: 900px; }
.faq-item { border: 1px solid var(--b-line); border-radius: 12px; background: var(--b-panel); overflow: hidden; }
.faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 20px 22px; cursor: pointer; font-size: 16px; color: var(--b-ink); list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary i { width: 9px; height: 9px; border-right: 1.7px solid var(--b-brand);
  border-bottom: 1.7px solid var(--b-brand); transform: rotate(45deg); transition: transform .22s; flex: none; }
.faq-item[open] summary i { transform: rotate(-135deg); }
.faq-item p { margin: 0; padding: 0 22px 22px; font-size: 15px; line-height: 1.85; color: var(--b-body); }

/* 章节指示器 */
.x-dots { position: fixed; right: 22px; top: 50%; transform: translateY(-50%);
  display: flex; flex-direction: column; gap: 11px; z-index: 40; }
.x-dot { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.2);
  transition: background .25s, box-shadow .25s; display: block; }
.x-dot:hover { background: rgba(34,211,238,.65); }
.x-dot.on { background: #22D3EE; box-shadow: 0 0 0 3px rgba(34,211,238,.16); }
@media (max-width: 1100px) { .x-dots { display: none; } }

/* 卡片指针高光 */
.engine, .ind-card, .content-card { position: relative; overflow: hidden; }
.engine::after, .ind-card::after, .content-card::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .25s;
  background: radial-gradient(220px circle at var(--mx, 50%) var(--my, 50%), rgba(34,211,238,.12), transparent 60%);
}
.engine:hover::after, .ind-card:hover::after, .content-card:hover::after { opacity: 1; }

/* ================= 滚动动效 ================= */
/* 通用入场 */
.rv { opacity: 0; transform: translate3d(0, 22px, 0); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); transition-delay: calc(var(--i, 0) * 70ms); }
.rv.in { opacity: 1; transform: none; }

/* 标题遮罩上移 */
body.page-home .sec-head.rv { opacity: 1; transform: none; }
body.page-home .sec-head h2 { clip-path: inset(0 0 110% 0); transition: clip-path .9s cubic-bezier(.2,.7,.2,1); }
body.page-home .sec-head.in h2 { clip-path: inset(0 0 -14% 0); }
body.page-home .sec-head .lede { opacity: 0; transform: translateY(10px); transition: opacity .6s .25s, transform .6s .25s; }
body.page-home .sec-head.in .lede { opacity: 1; transform: none; }

/* 对比行：左从左侧、右从右侧 */
.cmp-row.rv { opacity: 0; transform: none; }
.cmp-row .cmp-a { transform: translateX(-22px); opacity: 0; transition: transform .6s cubic-bezier(.2,.7,.2,1), opacity .6s; transition-delay: calc(var(--i,0) * 80ms); }
.cmp-row .cmp-b { transform: translateX(22px); opacity: 0; transition: transform .6s cubic-bezier(.2,.7,.2,1), opacity .6s; transition-delay: calc(var(--i,0) * 80ms + 80ms); }
.cmp-row.in .cmp-a, .cmp-row.in .cmp-b { transform: none; opacity: 1; }

/* 步骤条：线从左画到右，节点依次亮起 */
.diag-stepper::before { transform: scaleX(0); transform-origin: left center; transition: transform 1.1s cubic-bezier(.2,.7,.2,1); }
.chapter.in .diag-stepper::before, .diag-stepper.in::before { transform: scaleX(1); }
.diag-step.rv { opacity: 0; transform: translateY(12px); transition: opacity .5s, transform .5s; transition-delay: calc(var(--i,0) * 110ms); }
.diag-step.in { opacity: 1; transform: none; }
.diag-step::before { transform: scale(.4); opacity: .3; transition: transform .45s cubic-bezier(.2,.7,.2,1), opacity .45s; transition-delay: calc(var(--i,0) * 110ms + 120ms); }
.diag-step.in::before { transform: scale(1); opacity: 1; }

/* FAQ 展开（高度过渡） */
.faq-item p { max-height: 0; overflow: hidden; transition: max-height .35s ease, padding .35s ease; padding-top: 0; }
.faq-item[open] p { max-height: 260px; padding-top: 0; }

/* 行业 Tab：下划线滑块感 */
.ind-tab { position: relative; overflow: hidden; }
.ind-tab::after { content: ""; position: absolute; left: 18%; right: 18%; bottom: 8px; height: 1.5px; background: #22D3EE; transform: scaleX(0); transform-origin: center; transition: transform .3s; }
.ind-tab.is-on::after { transform: scaleX(1); }

@media (prefers-reduced-motion: reduce) {
  .rv, .cmp-row .cmp-a, .cmp-row .cmp-b, .diag-step, body.page-home .sec-head h2, body.page-home .sec-head .lede { transition: none !important; opacity: 1 !important; transform: none !important; clip-path: none !important; }
  .diag-stepper::before { transform: none !important; }
}

/* 仅在动效脚本加载后隐藏标题，避免脚本失败白屏 */
html.mo body.page-home .sec-head h2 { clip-path: inset(0 0 110% 0); }
html.mo body.page-home .sec-head.in h2 { clip-path: inset(0 0 -14% 0); }
body.page-home .sec-head h2 { clip-path: none; }

/* ================= 更多动效机制 ================= */
/* 1) 横向滚动带 */
.mq { overflow: hidden; border-top: 1px solid rgba(255,255,255,.06); border-bottom: 1px solid rgba(255,255,255,.06);
  padding: 16px 0; margin: 8px 0 0; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.mq-track { display: flex; width: max-content; gap: 0; }
/* 副本数与位移距离由 interact.js 实测后写入：--mq-shift = 一份内容的宽度 */
.mq-track.is-ready { animation: mqMove var(--mq-dur, 38s) linear infinite; }
.mq:hover .mq-track { animation-play-state: paused; }
.mq-item { display: inline-flex; align-items: center; gap: 26px; padding-right: 26px;
  font-size: 13.5px; color: var(--b-body); letter-spacing: .02em; white-space: nowrap; }
.mq-dot { width: 4px; height: 4px; border-radius: 50%; background: rgba(34,211,238,.6); }
@keyframes mqMove { from { transform: translate3d(0,0,0); } to { transform: translate3d(calc(var(--mq-shift, 50%) * -1),0,0); } }

/* 2) 卡片 3D 轻微倾斜（指针驱动，由 JS 设 --rx/--ry） */
.tilt { transform: perspective(700px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateZ(0);
  transition: transform .18s ease-out; will-change: transform; }
.tilt:hover { transition: transform .06s linear; }

/* 3) 观点带逐字揭示 */
.q-big .ch { display: inline-block; opacity: 0; transform: translateY(14px) rotate(2deg); }
.q-big.in .ch { animation: chIn .55s cubic-bezier(.2,.7,.2,1) forwards; animation-delay: calc(var(--k, 0) * 32ms); }
@keyframes chIn { to { opacity: 1; transform: none; } }

/* 4) CTA 磁吸（JS 设 --tx/--ty） */
.mag { transform: translate3d(var(--tx, 0px), var(--ty, 0px), 0); transition: transform .25s cubic-bezier(.2,.7,.2,1); }

@media (prefers-reduced-motion: reduce) {
  .mq-track, .mq-track.is-ready { animation: none !important; }
  .tilt, .mag { transform: none !important; }
  .q-big .ch { animation: none !important; opacity: 1 !important; transform: none !important; }
}

/* 对比：改成卡片式对照，不用表格线，也不再划线 */
div.cmp { display: grid; gap: 14px; margin-top: 44px; border: 0 !important; overflow: visible !important; }
.cmp-row { display: grid; grid-template-columns: minmax(0,1fr) 44px minmax(0,1fr); align-items: center; gap: 18px;
  padding: 20px 24px; border: 1px solid var(--b-line); border-radius: 12px; background: var(--b-panel);
  transition: border-color .25s, background .25s, transform .25s; }
.cmp-row:hover { border-color: rgba(34,211,238,.4); background: rgba(34,211,238,.035); transform: translateY(-2px); }
.cmp-row p { padding: 0 !important; margin: 0; }
.cmp-a { color: var(--b-body) !important; font-size: 15px; text-decoration: none !important; }
.cmp-a::before { content: "常见做法 · "; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .14em; color: var(--b-muted); }
.cmp-arrow { text-align: center; color: rgba(34,211,238,.75); font-size: 17px; line-height: 1; }
.cmp-b { color: var(--b-ink) !important; font-size: 15.5px; font-weight: 600; background: none !important; position: relative; padding-left: 14px !important; }
.cmp-b::before { content: ""; position: absolute; left: 0; top: .35em; bottom: .35em; width: 2px; border-radius: 2px; background: var(--b-brand); }
@media (max-width: 860px) { .cmp-row { grid-template-columns: 1fr; gap: 8px; } .cmp-arrow { transform: rotate(90deg); } }

/* 只有动效脚本就绪时才隐藏，且 2.5s 兜底会显示 */
html.mo .rv { opacity: 0; transform: translate3d(0, 22px, 0); }
html.mo .rv.in { opacity: 1; transform: none; }
html.mo .cmp-row.rv { transform: none; }
html.mo .cmp-row.rv .cmp-a, html.mo .cmp-row.rv .cmp-b { opacity: 0; }
html.mo .cmp-row.rv.in .cmp-a, html.mo .cmp-row.rv.in .cmp-b { opacity: 1; }

/* 对比：表头只出现一次，行内不再重复 */
.cmp-legend { display: grid; grid-template-columns: minmax(0,1fr) 44px minmax(0,1fr); gap: 18px; margin: 44px 0 12px; padding: 0 24px;
  font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .18em; color: var(--b-muted); }
.cmp-legend span:last-child { color: rgba(34,211,238,.85); }
div.cmp { margin-top: 0 !important; }
.cmp-a::before { content: none !important; }
.cmp-b::before { background: var(--b-brand) !important; }

/* 对比 v3：无卡片边框，靠字号/颜色分层 */
.cmp-legend { grid-template-columns: minmax(0,.9fr) 36px minmax(0,1.1fr) !important; padding: 0 20px !important; }
div.cmp { gap: 4px !important; }
.cmp-row { grid-template-columns: minmax(0,.9fr) 36px minmax(0,1.1fr) !important; gap: 16px;
  padding: 22px 20px !important; border: 0 !important; border-radius: 10px !important; background: transparent !important; }
.cmp-row:hover { background: rgba(255,255,255,.025) !important; transform: none !important; }
.cmp-a { font-size: 14.5px !important; color: var(--b-muted) !important; }
.cmp-b { font-size: 16.5px !important; color: var(--b-ink) !important; padding-left: 16px !important; }
.cmp-arrow { color: rgba(34,211,238,.55) !important; font-size: 15px !important; }

/* 去掉右列前面那条竖线 */
.cmp-b::before { display: none !important; }
.cmp-b { padding-left: 0 !important; }

/* 对比行：不再依赖入场类，永远可见 */
.cmp-row .cmp-a, .cmp-row .cmp-b { opacity: 1 !important; transform: none !important; transition: none !important; }

/* 行业 Tab：不要下划线 */
.ind-tab::after { display: none !important; }

/* 空的 logo 位：只留虚框，不放内部文案 */
.logo-slot { border: 1px dashed rgba(255,255,255,.16) !important; background: rgba(255,255,255,.015) !important; }

/* 行业 Tab：彻底去掉任何线条，选中改为实心胶囊 */
.ind-tab::after, .ind-tab::before { content: none !important; display: none !important; }
.ind-tab { position: relative; }
.ind-tab.is-on { background: #22D3EE !important; border-color: #22D3EE !important; color: #04121A !important; font-weight: 600; }
.ind-tab:hover { background: rgba(34,211,238,.1); }
.ind-tab.is-on:hover { background: #22D3EE !important; }

/* 标题动画换一种：淡入 + 轻微上浮 + 模糊到清晰（不再用遮罩） */
html.mo body.page-home .sec-head h2 { clip-path: none !important; opacity: 0; transform: translateY(16px); filter: blur(10px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1), filter .8s ease; }
html.mo body.page-home .sec-head.in h2 { opacity: 1; transform: none; filter: none; }
body.page-home .sec-head h2 { clip-path: none !important; }
.a-hero .a-pill { align-self: flex-start; }

/* 首屏动作区：强制与标题左缘对齐（各断点） */
.a-hero .a-actions,
body.page-home .a-hero .a-actions { justify-content: flex-start !important; align-items: flex-start !important; padding-left: 0 !important; margin-left: 0 !important; }
.a-hero .a-pill { margin-left: 0 !important; }

/* FAQ：答案区顶部留白 + 高度动画 */
.faq-item p { max-height: none !important; overflow: visible !important; padding: 8px 22px 26px !important; transition: none !important; }
.faq-item .faq-a { max-height: 0; overflow: hidden; transition: max-height .34s cubic-bezier(.2,.7,.2,1); }
.faq-item.is-open .faq-a { max-height: 400px; }
.faq-item summary { padding-bottom: 18px !important; }
.faq-item[open] summary { padding-bottom: 10px !important; }

/* FAQ：箭头跟随 is-open；答案顶部留白加大 */
.faq-item summary i { transform: rotate(45deg) !important; }
.faq-item.is-open summary i { transform: rotate(-135deg) !important; }
.faq-item[open] summary i { transform: rotate(45deg) !important; }
.faq-item.is-open[open] summary i { transform: rotate(-135deg) !important; }
.faq-item p { padding: 14px 22px 26px !important; line-height: 1.9 !important; }
.faq-item .faq-a { will-change: max-height; }

/* 卡片：不要页面加载时就把动画播完，改为滚动到才播 */
.engine, .ind-card, .content-card, .faq-item, .ind-note, .logo-block { animation: none !important; }
html.mo .engine.rv, html.mo .ind-card.rv, html.mo .content-card.rv, html.mo .faq-item.rv, html.mo .ind-note.rv, html.mo .logo-block.rv {
  opacity: 0; transform: translate3d(0, 18px, 0);
  transition: opacity .55s cubic-bezier(.2,.7,.2,1), transform .55s cubic-bezier(.2,.7,.2,1);
}
html.mo .engine.rv.in, html.mo .ind-card.rv.in, html.mo .content-card.rv.in, html.mo .faq-item.rv.in, html.mo .ind-note.rv.in, html.mo .logo-block.rv.in {
  opacity: 1; transform: none;
}

/* FAQ：与容器同宽，左右都对齐其它章节 */
.faq { max-width: none !important; width: 100%; }
.faq-item summary { padding-left: 24px !important; padding-right: 24px !important; }
.faq-item p { padding-left: 24px !important; padding-right: 24px !important; }

/* FAQ：去掉卡片内边距，问题文本与容器左缘对齐 */
.faq { gap: 6px !important; }
.faq-item { border: 0 !important; background: transparent !important; border-radius: 0 !important; }
.faq-item summary { padding: 20px 0 !important; font-size: 17px !important; }
.faq-item p { padding: 0 80px 22px 0 !important; color: var(--b-body) !important; max-width: 900px; }
.faq-item summary i { margin-right: 6px; }
.faq-item:hover summary { color: #FFFFFF !important; }

/* 去掉 <details open> 带来的分隔线 */
.faq-item[open] summary, .faq-item summary { border-bottom: 0 !important; }

/* 卡片滚动入场：用 CSS 滚动时间线（不依赖 JS 观察器）；用 translate 属性避免和倾斜冲突 */
@supports (animation-timeline: view()) {
  html.mo .engine.rv, html.mo .ind-card.rv, html.mo .content-card.rv, html.mo .faq-item.rv,
  html.mo .ind-note.rv, html.mo .logo-block.rv { transform: none !important; }
  .engine, .ind-card, .content-card, .faq-item, .ind-note, .logo-block {
    animation: cardScrollIn linear both;
    animation-timeline: view();
    animation-range: entry 4% entry 48%;
  }
  @keyframes cardScrollIn {
    from { opacity: 0; translate: 0 26px; }
    to { opacity: 1; translate: 0 0; }
  }
}

/* FAQ：直接展开，不再点击 */
.faq-item summary { cursor: default !important; }
.faq-item summary i { display: none !important; }
.faq-item .faq-a { max-height: none !important; overflow: visible !important; }
.faq-item p { padding: 8px 80px 26px 0 !important; }
.faq-item summary { padding-bottom: 4px !important; }
.faq-item { padding-top: 10px; }

/* 卡片入场改由 JS 随滚动控制，这里清掉旧的 CSS 隐藏与动画 */
.engine, .ind-card, .content-card, .faq-item, .ind-note, .logo-block { animation: none !important; }
html.mo .engine.rv, html.mo .ind-card.rv, html.mo .content-card.rv, html.mo .faq-item.rv, html.mo .ind-note.rv, html.mo .logo-block.rv { opacity: 1; transform: none; }
.mq { margin: 12px 0 0 !important; }
.engine-grid .engine:nth-child(4n+2) .ico { margin-bottom: 0; grid-row: span 2; }
.content-grid .content-card:nth-child(2n) { display: grid; grid-template-columns: auto 1fr; column-gap: 14px; align-items: start; }
.content-grid .content-card:nth-child(2n) .ico { margin-bottom: 0; grid-row: span 2; }

/* 滚动带与首屏之间留出呼吸 */
.mq { margin-top: 48px !important; }
.engine-grid .engine .ico { margin-bottom: 14px !important; grid-row: auto !important; }
.content-grid .content-card { background: var(--b-panel) !important; border: 1px solid var(--b-line) !important; }

/* 2) 标题也跟滚动联动（上滑会退场），取消一次性揭示 */
html.mo body.page-home .sec-head h2, html.mo body.page-home .sec-head.in h2,
html.mo body.page-home .sec-head .lede, html.mo body.page-home .sec-head.in .lede,
html.mo body.page-home .sec-head.rv, html.mo body.page-home .sec-head.rv.in { clip-path: none !important; transform: none !important; }
#gateway .engine-grid .engine .ico { grid-row: span 3; margin-bottom: 0 !important; }

/* 5) 内容组：紧凑横排，第一条通栏 */
.content-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
.content-grid .content-card { display: grid; grid-template-columns: auto 1fr; column-gap: 14px; align-items: start; padding: 22px; }
.content-grid .content-card .ico { grid-row: span 3; margin-bottom: 0 !important; width: 34px; height: 34px; border-radius: 9px; }
.content-grid .content-card:nth-child(1) { grid-column: span 2; }
.content-grid .content-card h3 { margin: 0 0 8px; font-size: 17px; }
.content-grid .content-card p { font-size: 13.5px; line-height: 1.7; }


/* 入场统一交给 fx.js：CSS 不再隐藏任何元素 */
html.mo .rv, html.mo .rv.in, .rv, .rv.in { opacity: 1 !important; transform: none !important; transition: none !important; }
html.mo body.page-home .sec-head h2, html.mo body.page-home .sec-head.in h2 { opacity: 1 !important; filter: none !important; clip-path: none !important; transform: none !important; }
html.mo body.page-home .sec-head .lede, html.mo body.page-home .sec-head.in .lede { opacity: 1 !important; transform: none !important; }
#gateway .engine-grid .engine .ico { grid-column: 1 !important; grid-row: 1 / span 3 !important; margin: 0 !important; }
.content-grid .content-card { background: var(--b-panel) !important; border: 1px solid var(--b-line) !important; }

/* 内容矩阵：三张长卡，封面在上、简介在下 */
.content-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 24px !important; }
.content-card.v-long { display: block !important; padding: 0 !important; overflow: hidden; border-radius: 14px; background: var(--b-panel) !important; border: 1px solid var(--b-line) !important; }
.content-card.v-long .cc-cover { position: relative; aspect-ratio: 16 / 10; display: flex; align-items: flex-end; justify-content: space-between;
  padding: 18px 20px; background:
    radial-gradient(120% 90% at 20% 0%, rgba(34,211,238,.22), transparent 60%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.03) 0 10px, transparent 10px 20px),
    #0A1626;
  border-bottom: 1px solid rgba(255,255,255,.06); }
.content-card.v-long .cc-mark { font-size: clamp(22px, 2.2vw, 30px); font-weight: 800; letter-spacing: -.01em; color: #CFE9F5; }
.content-card.v-long .cc-ico { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center;
  background: rgba(7,11,20,.55); border: 1px solid rgba(34,211,238,.3); }
.content-card.v-long .cc-ico svg { width: 17px; height: 17px; color: #7DE2F2; }
.content-card.v-long .cc-body { padding: 20px 22px 24px; }
.content-card.v-long h3 { margin: 0 0 10px !important; font-size: 18px !important; }
.content-card.v-long p { margin: 0 0 16px !important; font-size: 14px !important; line-height: 1.75 !important; color: var(--b-body) !important; }
.content-card.v-long .cc-cta { font-size: 13px; color: var(--b-brand); }
.content-card.v-long:hover .cc-cover { filter: brightness(1.08); }
@media (max-width: 900px) { .content-grid { grid-template-columns: 1fr !important; } }

/* 内容矩阵：三卡等宽等高，清掉旧的跨列与内边距 */
.content-grid .content-card.v-long,
.content-grid .content-card.v-long:nth-child(1) { grid-column: auto !important; display: block !important; padding: 0 !important; }
.content-grid .content-card.v-long .cc-cover { height: 210px; aspect-ratio: auto !important; }
.content-grid .content-card.v-long .cc-body { min-height: 148px; display: flex; flex-direction: column; }
.content-grid .content-card.v-long .cc-cta { margin-top: auto; }

/* 网关：横向大卡切换 */
.gw-slider { margin-top: 48px; }
.gw-track { display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  padding: 4px 2px 22px; scrollbar-width: none; }
.gw-track::-webkit-scrollbar { display: none; }
.gw-card { flex: 0 0 min(640px, 78%); scroll-snap-align: center; padding: 38px 40px 44px; border-radius: 16px;
  background: linear-gradient(160deg, rgba(34,211,238,.07), rgba(34,211,238,.015) 55%), #0A1626;
  border: 1px solid rgba(34,211,238,.22); min-height: 300px; display: flex; flex-direction: column; }
.gw-card .ico { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; margin-bottom: 22px;
  background: linear-gradient(145deg, rgba(34,211,238,.3), rgba(34,211,238,.06)), #0A1626;
  border: 1px solid rgba(34,211,238,.32); }
.gw-card .ico svg { width: 24px; height: 24px; color: #7DE2F2; }
.gw-card h3 { margin: 0 0 14px; font-size: clamp(22px, 2.2vw, 30px); line-height: 1.3; color: var(--b-ink); letter-spacing: -.01em; }
.gw-card p { margin: 0; font-size: 15.5px; line-height: 1.85; color: var(--b-body); max-width: 54ch; }
.gw-ctrl { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 6px; }
.gw-dots { display: flex; gap: 8px; }
.gw-dot.on { background: #22D3EE; width: 22px; border-radius: 4px; }
.gw-arrows { display: flex; gap: 10px; }
.gw-btn { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,.16); background: transparent;
  color: var(--b-ink); font-size: 17px; cursor: pointer; transition: border-color .2s, background .2s, opacity .2s; }
.gw-btn:hover { border-color: rgba(34,211,238,.5); background: rgba(34,211,238,.08); }
.gw-btn[disabled] { opacity: .3; cursor: default; }
@media (max-width: 760px) { .gw-card { flex: 0 0 88%; padding: 26px 24px 32px; min-height: 260px; } }

/* 网关横卡：收窄尺寸 */
.gw-card { flex: 0 0 min(440px, 58%) !important; padding: 26px 28px 30px !important; min-height: 230px !important; border-radius: 14px !important; }
.gw-card .ico { width: 44px !important; height: 44px !important; margin-bottom: 16px !important; border-radius: 11px !important; }
.gw-card .ico svg { width: 20px !important; height: 20px !important; }
.gw-card h3 { font-size: clamp(19px, 1.7vw, 23px) !important; margin-bottom: 10px !important; }
.gw-card p { font-size: 14px !important; line-height: 1.8 !important; }
.gw-track { gap: 18px !important; }
@media (max-width: 760px) { .gw-card { flex: 0 0 86% !important; padding: 22px 20px 26px !important; } }

/* 网关：长卡片（卡片占满一屏，横向切换） */
.gw-card { flex: 0 0 100% !important; min-height: auto !important; display: grid !important; grid-template-columns: 64px minmax(0,1fr) !important;
  column-gap: 26px !important; align-items: start; padding: 34px 40px !important; border-radius: 16px !important; }
.gw-card .ico { width: 64px !important; height: 64px !important; border-radius: 16px !important; margin: 0 !important; grid-row: 1 / span 2 !important; }
.gw-card .ico svg { width: 28px !important; height: 28px !important; }
.gw-card h3 { grid-column: 2 !important; margin: 0 0 10px !important; font-size: clamp(21px, 1.9vw, 26px) !important; }
.gw-card p { grid-column: 2 !important; margin: 0 !important; max-width: 78ch !important; font-size: 15px !important; line-height: 1.85 !important; }
@media (max-width: 760px) { .gw-card { grid-template-columns: 1fr !important; padding: 24px 22px !important; } .gw-card .ico { grid-row: auto !important; margin-bottom: 16px !important; } .gw-card h3, .gw-card p { grid-column: 1 !important; } }

/* 网关：竖版长卡（高卡片，横向切换） */
.gw-card { flex: 0 0 min(380px, 42%) !important; min-height: 520px !important; display: flex !important; flex-direction: column !important;
  grid-template-columns: none !important; padding: 30px 30px 28px !important; text-decoration: none; }
.gw-card .ico { width: 54px !important; height: 54px !important; margin: 0 0 22px !important; border-radius: 14px !important; }
.gw-card .ico svg { width: 24px !important; height: 24px !important; }
.gw-card h3 { font-size: clamp(21px, 1.8vw, 25px) !important; margin: 0 0 14px !important; }
.gw-card p { font-size: 14.5px !important; line-height: 1.85 !important; max-width: none !important; }
.gw-card .gw-cta { margin-top: auto; padding-top: 26px; font-size: 13px; color: var(--b-brand); }
.gw-card:hover { border-color: rgba(34,211,238,.45) !important; }
@media (max-width: 760px) { .gw-card { flex: 0 0 86% !important; min-height: 440px !important; } }

/* 网关：更窄的竖卡，去掉 CTA */
.gw-card { flex: 0 0 min(300px, 31%) !important; min-height: 400px !important; padding: 26px 24px !important; }
.gw-card .ico { width: 46px !important; height: 46px !important; margin-bottom: 18px !important; }
.gw-card .ico svg { width: 21px !important; height: 21px !important; }
.gw-card h3 { font-size: 20px !important; margin: 0 0 10px !important; }
.gw-card p { font-size: 13.5px !important; line-height: 1.8 !important; }
.gw-card .gw-cta { display: none !important; }
@media (max-width: 760px) { .gw-card { flex: 0 0 76% !important; min-height: 340px !important; } }

/* 再收窄一档 */
.gw-card { flex: 0 0 264px !important; min-height: 300px !important; padding: 22px 22px !important; }
.gw-card h3 { font-size: 18px !important; }
.gw-card p { font-size: 13px !important; }
.gw-track { gap: 16px !important; }
@media (max-width: 760px) { .gw-card { flex: 0 0 70% !important; } }

/* 网关：3×2 网格布局（取消横向滑动） */
.gw-track { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 20px !important;
  overflow: visible !important; scroll-snap-type: none !important; padding: 0 !important; }
.gw-card { flex: none !important; display: block !important; min-height: 250px !important; padding: 28px !important; border-radius: 14px !important; }
.gw-card .ico { margin: 0 0 18px !important; width: 48px !important; height: 48px !important; }
.gw-card .ico svg { width: 22px !important; height: 22px !important; }
.gw-card h3 { font-size: 19px !important; margin: 0 0 10px !important; }
.gw-card p { font-size: 14px !important; line-height: 1.8 !important; }
.gw-ctrl { display: none !important; }
@media (max-width: 1000px) { .gw-track { grid-template-columns: repeat(2, minmax(0,1fr)) !important; } }
@media (max-width: 640px) { .gw-track { grid-template-columns: 1fr !important; } }

/* 人和 AI 协同章：分节标题 + 横排可滑动卡片 */
.sub-head { margin-top: 72px; max-width: 780px; }
.sub-kicker { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .18em; color: var(--b-brand); text-transform: uppercase; }
.sub-title { margin: 12px 0 10px; font-size: clamp(24px, 2.6vw, 34px); font-weight: 800; letter-spacing: -.01em; color: var(--b-ink); }
.sub-sub { margin: 0; font-size: 15.5px; line-height: 1.85; color: var(--b-body); }

.run-slider { margin-top: 36px; }
.run-track { display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  padding: 4px 2px 20px; scrollbar-width: none; }
.run-track::-webkit-scrollbar { display: none; }

/* 横向轨道两端渐隐：卡片滑到容器边缘时淡出，不再被硬切一半 */
.run-track { --edge-fade: 72px; }
.run-track.fade-l {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--edge-fade));
  mask-image: linear-gradient(90deg, transparent 0, #000 var(--edge-fade));
}
.run-track.fade-r {
  -webkit-mask-image: linear-gradient(270deg, transparent 0, #000 var(--edge-fade));
  mask-image: linear-gradient(270deg, transparent 0, #000 var(--edge-fade));
}
.run-track.fade-l.fade-r {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--edge-fade), #000 calc(100% - var(--edge-fade)), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 var(--edge-fade), #000 calc(100% - var(--edge-fade)), transparent 100%);
}
/* 窄屏卡片本身就窄，渐隐收窄，避免把「下一张卡」淡得看不清 */
@media (max-width: 760px) { .run-track { --edge-fade: 40px; } }
@media (max-width: 480px) { .run-track { --edge-fade: 30px; } }
.run-card { flex: 0 0 340px; scroll-snap-align: start; padding: 28px; border-radius: 14px;
  background: linear-gradient(160deg, rgba(34,211,238,.06), rgba(34,211,238,.01) 60%), #0A1626;
  border: 1px solid rgba(34,211,238,.18); min-height: 260px; display: flex; flex-direction: column; }
.run-card .ico { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; margin-bottom: 20px;
  background: linear-gradient(145deg, rgba(34,211,238,.26), rgba(34,211,238,.05)), #0A1626; border: 1px solid rgba(34,211,238,.28); }
.run-card .ico svg { width: 21px; height: 21px; color: #7DE2F2; }
.run-card h3 { margin: 0 0 10px; font-size: 19px; color: var(--b-ink); }
.run-card p { margin: 0; font-size: 14px; line-height: 1.8; color: var(--b-body); }
.run-ctrl { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 4px; }
.run-dots { display: flex; gap: 8px; }
.run-dot.on { background: #22D3EE; width: 22px; border-radius: 4px; }
.run-arrows { display: flex; gap: 10px; }
.run-btn { width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255,255,255,.16); background: transparent;
  color: var(--b-ink); font-size: 16px; cursor: pointer; transition: border-color .2s, background .2s; }
.run-btn:hover { border-color: rgba(34,211,238,.5); background: rgba(34,211,238,.08); }
.run-btn[disabled] { opacity: .3; cursor: default; }
@media (max-width: 760px) { .run-card { flex: 0 0 82%; padding: 22px; min-height: 230px; } }

/* 运行时横卡：一屏至少 5 张 */
.run-track { gap: 14px !important; }
.run-card { flex: 0 0 204px !important; padding: 18px !important; min-height: 230px !important; border-radius: 12px !important; }
.run-card .ico { width: 36px !important; height: 36px !important; border-radius: 9px !important; margin-bottom: 14px !important; }
.run-card .ico svg { width: 17px !important; height: 17px !important; }
.run-card h3 { font-size: 15.5px !important; margin-bottom: 8px !important; }
.run-card p { font-size: 12.5px !important; line-height: 1.7 !important; }
@media (max-width: 1100px) { .run-card { flex: 0 0 46% !important; } }
@media (max-width: 700px) { .run-card { flex: 0 0 72% !important; } }
.scn-tab.is-on { background: #22D3EE; border-color: #22D3EE; color: #04121A; font-weight: 600; }
.scn-panel.is-on { display: block; animation: fadeUp .3s ease both; }
.scn2-left .sub-title { margin: 12px 0 12px; }
.sc-item.is-on { background: rgba(34,211,238,.07); border-color: rgba(34,211,238,.3); }
.sc-item.is-on .sc-k { color: var(--b-brand); }
.win-panel.is-on { display: block; }
@keyframes blink { 50% { opacity: 0; } }
.win-panel.show .bubble.bot > * { opacity: 1; transform: none; }
.win-panel.show .bar i { width: var(--w); }

.steps { margin-top: 12px; display: grid; gap: 10px; }
.step { display: grid; grid-template-columns: 92px 1fr; gap: 12px; font-size: 13px; align-items: baseline; }
.step b { color: var(--b-ink); font-weight: 600; }
.step span { color: var(--b-body); }
.win-panel.approved .cf-act { opacity: 0; pointer-events: none; }
.win-panel.approved .cf-done { display: block; animation: fadeUp .3s ease both; }
.win-panel .step { grid-template-columns: 88px minmax(0,1fr) !important; }
.steps { display: grid !important; grid-auto-flow: row !important; }
.step { display: grid !important; grid-template-columns: 88px minmax(0,1fr) !important; }

/* 步骤列表改用 flex，避免被父级 grid 影响 */
.steps, .bars, .kv, .cf-act { min-width: 0; }
.steps { display: flex !important; flex-direction: column !important; gap: 10px !important; width: 100% !important; }
.step { display: flex !important; gap: 12px !important; align-items: baseline; width: 100% !important; grid-template-columns: none !important; }
.step b { flex: 0 0 76px !important; }
.step span { flex: 1 1 auto; min-width: 0; }
.scn2-left .sub-title { margin: 12px 0 12px; }
.sc-item.is-on { background: rgba(34,211,238,.07); border-color: rgba(34,211,238,.3); }
.sc-item.is-on .sc-k { color: var(--b-brand); }
.scpanel.is-on { display: block; }
@keyframes blink { 50% { opacity: 0; } }
.scpanel.show .scbub.bot > * { opacity: 1; transform: none; }
.scpanel.show .scrow i { width: var(--w); }
.scpanel.approved .scact { opacity: 0; pointer-events: none; }
.scpanel.approved .scdone { display: block; }

/* ===== 第二章第二节：业务场景 + 产品原型 ===== */
.sc2 { display: grid; grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr); gap: 56px; align-items: start; margin-top: 88px; }
.sc2-list { margin-top: 26px; display: grid; gap: 4px; }
.sc2-item { text-align: left; padding: 14px 16px; border-radius: 10px; border: 1px solid transparent; background: transparent;
  color: var(--b-body); font: inherit; cursor: pointer; transition: background .2s, border-color .2s; }
.sc2-item:hover { background: rgba(255,255,255,.03); }
.sc2-item.is-on { background: rgba(34,211,238,.07); border-color: rgba(34,211,238,.28); }
.sc2-k { display: block; font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; color: var(--b-muted); }
.sc2-item.is-on .sc2-k { color: var(--b-brand); }
.sc2-item b { display: block; margin: 4px 0 3px; font-size: 16px; color: var(--b-ink); font-weight: 600; }
.sc2-item em { font-style: normal; font-size: 12.5px; line-height: 1.65; color: var(--b-muted); }
.app-nav span.on { background: rgba(34,211,238,.12); color: var(--b-ink); }
.sc2-panel.is-on { display: flex; flex-direction: column; gap: 18px; }
.sc2-panel.show .pvb i { width: var(--w); }
.sc2-panel.approved .pv-act { display: none; }
.sc2-panel.approved .pv-done { display: block; }
@media (max-width: 1000px) { .sc2 { grid-template-columns: 1fr; gap: 32px; } }

/* 产品可视化图 */
.diag { margin: 44px 0 0; border-radius: 14px; overflow: hidden; border: 1px solid rgba(255,255,255,.1); background: #060D18; }
.diag img { display: block; width: 100%; height: auto; }
.sc2-right .diag { margin: 0; box-shadow: 0 40px 90px rgba(0,0,0,.45); }
.sc2 { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr); gap: 56px; align-items: center; margin-top: 88px; }
.sc2-list { margin-top: 26px; display: grid; gap: 14px; }
.sc2-item { padding: 14px 16px; border-radius: 10px; border-left: 2px solid rgba(255,255,255,.12); background: rgba(255,255,255,.02); }
.sc2-item.is-on { border-left-color: #22D3EE; background: rgba(34,211,238,.06); }
.sc2-k { display: block; font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; color: var(--b-muted); }
.sc2-item.is-on .sc2-k { color: var(--b-brand); }
.sc2-item b { display: block; margin-top: 4px; font-size: 14.5px; color: var(--b-ink); font-weight: 500; line-height: 1.6; }
@media (max-width: 1000px) { .sc2 { grid-template-columns: 1fr; gap: 32px; } }

/* 业务场景小节：标题在上，左场景、右固定尺寸原型窗口 */
.sc2-head { margin-top: 88px; }
.sc2-head .sub-title { margin: 12px 0 10px; }
.sc2 { display: grid; grid-template-columns: minmax(0,.62fr) minmax(0,1.38fr); gap: 48px; align-items: start; margin-top: 34px; }
.sc2-list { display: grid; gap: 10px; }
.sc2-item { padding: 13px 16px; border-radius: 10px; border-left: 2px solid rgba(255,255,255,.12); background: rgba(255,255,255,.02); }
.sc2-item.is-on { border-left-color: #22D3EE; background: rgba(34,211,238,.06); }
.sc2-k { display: block; font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; color: var(--b-muted); }
.sc2-item.is-on .sc2-k { color: var(--b-brand); }
.sc2-item b { display: block; margin-top: 4px; font-size: 14px; color: var(--b-ink); font-weight: 500; line-height: 1.6; }

/* ===== 业务场景原型 · 1:1 真密度产品窗口（自动播放，不自动滚） =====
   参考 hf_ch7v2 的中列窗口解剖，宽度跟官网 1020 measure；实机字号 10–12.5px，无缩放。
   每屏先演 AI 拆解 3 步，再出结果；点完光标 0.7s 后消失。 */
@media (max-width: 1080px) {
  .sc2 { grid-template-columns: minmax(0, 1fr); gap: 28px; }
}
.sc2 > * { min-width: 0; }

.sc2-right > .pw { display: none; }
.sc2-right > .pw.is-on { display: flex; }

.pw { position: relative; width: 100%; height: 560px; flex-direction: column;
  background: #0B1220; border: 1px solid rgba(255,255,255,.14); border-radius: 14px; overflow: hidden;
  box-shadow: 0 30px 70px rgba(0,0,0,.55); }

/* 窗口条 */
.pw-bar { display: flex; align-items: center; gap: 7px; padding: 10px 15px; flex: 0 0 auto;
  border-bottom: 1px solid rgba(255,255,255,.07); background: rgba(255,255,255,.018); }
.pw-d { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.16); }
.pw-t { margin-left: 9px; font-size: 12.5px; font-weight: 700; color: var(--b-ink); }
.pw-bc { margin-left: 10px; font-family: var(--font-mono); font-size: 10.5px; color: #5C6B85; }
.pw-u { margin-left: auto; font-size: 11.5px; color: #8B9AB3; }
.pw-av { flex: 0 0 auto; width: 20px; height: 20px; border-radius: 50%;
  background: rgba(34,211,238,.25); border: 1px solid rgba(34,211,238,.6); }

/* 主体 */
.pw-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; padding: 10px 14px 6px;
  display: flex; flex-direction: column; scrollbar-width: none; -ms-overflow-style: none;
  scroll-behavior: smooth; }
.pw-body::-webkit-scrollbar { width: 0; height: 0; }
.pw-sess { display: flex; align-items: center; gap: 9px; flex: 0 0 auto; }
.pw-id { font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; color: #5C6B85; }
.pw-st { font-family: var(--font-mono); font-size: 9px; padding: 2px 7px; border-radius: 4px;
  border: 1px solid rgba(34,211,238,.45); color: #22D3EE; }
.pw-trig { font-family: var(--font-mono); font-size: 9px; padding: 2px 7px; border-radius: 4px;
  border: 1px solid rgba(139,154,179,.35); color: #93A1B8; }

.pw-me { display: flex; justify-content: flex-end; margin-top: 10px; flex: 0 0 auto; }
.pw-me-c { max-width: 76%; padding: 9px 12px; border-radius: 10px 10px 2px 10px;
  background: rgba(34,211,238,.10); border: 1px solid rgba(34,211,238,.32); }
.pw-me-c > span { display: block; font-size: 12.5px; line-height: 1.5; color: #DDEEF5; }
/* 气泡里的附件卡 */
.pw-att { display: flex; gap: 8px; align-items: center; margin-top: 8px; padding: 7px 9px;
  border-radius: 7px; background: rgba(7,11,20,.55); border: 1px solid rgba(255,255,255,.14); }
.pw-att > i { flex: 0 0 auto; font-style: normal; font-family: var(--font-mono); font-size: 8px;
  letter-spacing: .06em; padding: 3px 5px; border-radius: 3px; color: #22D3EE;
  background: rgba(34,211,238,.16); border: 1px solid rgba(34,211,238,.4); }
.pw-att-n { font-size: 10.5px; color: #E6EDF7; line-height: 1.3; }
.pw-att-m { margin-top: 1px; font-family: var(--font-mono); font-size: 8.5px; color: #8B9AB3; }

/* AI 拆解（思考）过程：不包卡片，直接是助理名字下面的几行字 */
.pw-think { margin-top: 5px; }
.pw-th-h { display: flex; align-items: center; gap: 8px; margin-bottom: 4px;
  font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .08em; color: #5FB6C9; }
/* 拆解与它下面的正文/卡片之间留一口气，别糊成一段 */
.pw-think + .pw-tx, .pw-think + .pw-card { margin-top: 9px; }
.pw-spin { width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid rgba(34,211,238,.28);
  border-top-color: #22D3EE; animation: pw-spin .9s linear infinite; }
@keyframes pw-spin { to { transform: rotate(360deg); } }
.pw-step { display: flex; gap: 8px; align-items: baseline; margin-top: 5px; padding-left: 2px;
  font-size: 11px; line-height: 1.45; color: #8B9AB3; }
.pw-step i { flex: 0 0 auto; width: 12px; height: 12px; border-radius: 50%; font-style: normal;
  font-family: var(--font-mono); font-size: 7.5px; color: #5C6B85; border: 1px solid rgba(139,154,179,.32);
  display: inline-flex; align-items: center; justify-content: center; }

/* AI 结果 */
.pw-ai { display: flex; gap: 9px; align-items: flex-start; margin-top: 11px; }
.pw-ai > .pw-av { width: 24px; height: 24px; border-radius: 6px; background: rgba(34,211,238,.18);
  border: 1px solid rgba(34,211,238,.45); display: grid; place-items: center;
  font-family: var(--font-mono); font-size: 10px; color: #22D3EE; }
.pw-c { flex: 1 1 auto; min-width: 0; }
.pw-nm { font-size: 10.5px; color: #8B9AB3; margin-bottom: 3px; }
.pw-tx { font-size: 12.5px; line-height: 1.55; color: #C9D4E6; }

/* 数据卡 */
.pw-card { margin-top: 8px; padding: 11px 12px 9px; border-radius: 10px;
  background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.10); }
.pw-ch { font-size: 12px; font-weight: 800; color: var(--b-ink); }
.pw-rows { margin-top: 5px; }
.pw-row { display: flex; align-items: baseline; gap: 12px; padding: 5px 0;
  border-top: 1px solid rgba(255,255,255,.05); }
.pw-row:first-child { border-top: 0; }
.pw-k { flex: 0 0 70px; font-family: var(--font-mono); font-size: 10px; color: #5C6B85; }
.pw-v { flex: 1 1 auto; min-width: 0; font-size: 12px; color: var(--b-ink); }
.pw-x { flex: 0 0 auto; font-family: var(--font-mono); font-size: 11px; color: #8B9AB3; }
.pw-x.up { color: #6EE7A8; }
.pw-x.down { color: #FF9B9B; }
.pw-fn { margin-top: 7px; font-size: 10.5px; color: #8B9AB3; }

/* 看板：KPI + 维度切换 + 表格 */
.pw-kpis { display: flex; gap: 8px; margin-top: 8px; }
.pw-kpi { flex: 1 1 0; padding: 6px 9px 7px; border-radius: 8px;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); }
.pw-kpi b { display: block; font-size: 13px; font-weight: 700; color: var(--b-ink); }
.pw-kpi span { display: block; margin-top: 1px; font-size: 9.5px; color: #8B9AB3; }
.pw-tabs { display: flex; gap: 6px; margin-top: 9px; }
.pw-tab { font-family: var(--font-mono); font-size: 9px; padding: 3px 8px; border-radius: 5px;
  border: 1px solid rgba(255,255,255,.10); color: #8B9AB3; }
.pw-tab.on { color: #22D3EE; border-color: rgba(34,211,238,.45); background: rgba(34,211,238,.10); }
.pw-bhead { display: grid; grid-template-columns: 56px 1fr 58px 56px; gap: 10px;
  margin-top: 7px; padding-bottom: 2px; border-bottom: 1px solid rgba(255,255,255,.06);
  font-family: var(--font-mono); font-size: 9px; letter-spacing: .06em; color: #5C6B85; }
.pw-bhead span:nth-child(n+3) { text-align: right; }
.pw-brow { display: grid; grid-template-columns: 56px 1fr 58px 56px; gap: 10px;
  align-items: baseline; padding: 3px 0; border-top: 1px solid rgba(255,255,255,.05); }
.pw-brow:nth-child(1) { border-top: 0; }
.pw-bk { font-family: var(--font-mono); font-size: 10px; color: #5C6B85; }
.pw-bv { font-size: 12px; color: var(--b-ink); }
.pw-bx, .pw-by { font-family: var(--font-mono); font-size: 10.5px; color: #8B9AB3; text-align: right; }
.pw-by.up { color: #6EE7A8; }
.pw-by.down { color: #FF9B9B; }

/* 按钮组 + 光标 */
.pw-acts { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; position: relative; }
.pw-btn { padding: 6px 11px; border-radius: 6px; font: inherit; font-size: 11.5px; cursor: pointer; }
.pw-ghost { border: 1px solid rgba(255,255,255,.16); background: transparent; color: #8B9AB3; }
.pw-ghost:hover { border-color: rgba(255,255,255,.3); color: var(--b-ink); }
.pw-prim { border: 1px solid #22D3EE; background: #22D3EE; color: #03121A; font-weight: 800; }
.pw-prim:hover { background: #5CE6F8; }
.pw-prim.done { border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.07);
  color: #8B9AB3; cursor: default; }
.pw-ring { position: absolute; right: 15px; top: 13px; width: 36px; height: 36px; border-radius: 50%;
  border: 2px solid rgba(34,211,238,.9); opacity: 0; pointer-events: none; }
.pw-ring.go { animation: pw-ring .55s ease-out; }
@keyframes pw-ring {
  0% { opacity: .9; transform: scale(.35); }
  100% { opacity: 0; transform: scale(1.3); }
}

/* 回执 */
.pw-receipt { display: flex; gap: 9px; align-items: flex-start; margin-top: 11px; }
.pw-receipt[hidden] { display: none; }
.pw-receipt .pw-nm { margin-bottom: 3px; }
.pw-receipt > .pw-av { width: 24px; height: 24px; border-radius: 6px; background: rgba(34,211,238,.18);
  border: 1px solid rgba(34,211,238,.45); display: grid; place-items: center;
  font-family: var(--font-mono); font-size: 10px; color: #22D3EE; }
/* 回执就是一条 AI 回复，正文用正常颜色；结论里的「审计已记录」做小胶囊 */
.pw-receipt .pw-tx { color: #C9D4E6; }
.pw-tag { display: inline-block; margin-left: 6px; font-style: normal; font-family: var(--font-mono);
  font-size: 9px; padding: 2px 6px; border-radius: 4px;
  border: 1px solid rgba(34,211,238,.35); color: #22D3EE; }

/* 输入条 */
.pw-inp { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; padding: 9px 14px;
  border-top: 1px solid rgba(255,255,255,.07); }
.pw-f { flex: 1 1 auto; padding: 8px 12px; border-radius: 8px; background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.10); font-size: 11.5px; color: #5C6B85; }
.pw-s { flex: 0 0 auto; padding: 7px 13px; border-radius: 8px; background: #22D3EE;
  color: #03121A; font-size: 11.5px; font-weight: 800; }

@media (max-width: 1080px) {
  .pw { height: auto; min-height: 560px; }
  .pw-body { overflow: visible; }
}

/* ===== 自动播放：还没「说出来」的内容先不占位，出现时淡入 ===== */
.pw--auto .pw-me,
.pw--auto .pw-nm,
.pw--auto .pw-tx,
.pw--auto .pw-card,
.pw--auto .pw-acts,
.pw--auto .pw-think { display: none; }
.pw--auto .pw-think.is-in { display: block; animation: pw-in .3s ease-out both; }
.pw--auto .pw-me.is-in { display: flex; animation: pw-in .34s ease-out both; }
.pw--auto .pw-nm.is-in,
.pw--auto .pw-tx.is-in,
.pw--auto .pw-card.is-in { display: block; animation: pw-in .34s ease-out both; }
.pw--auto .pw-acts.is-in { display: flex; animation: pw-in .34s ease-out both; }
.pw--auto .pw-receipt:not([hidden]) { animation: pw-in .34s ease-out both; }
.pw--auto .pw-step { opacity: .3; transition: opacity .3s, color .3s; }
.pw--auto .pw-step.is-done { opacity: 1; color: #C9D4E6; }
.pw--auto .pw-step.is-done i { color: #03121A; background: #22D3EE; border-color: #22D3EE; }
.pw--auto .pw-step.is-done + .pw-step:not(.is-done) { opacity: .55; }
@keyframes pw-in {
  from { opacity: 0; transform: translateY(7px); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .pw--auto .pw-me, .pw--auto .pw-nm, .pw--auto .pw-tx,
  .pw--auto .pw-card, .pw--auto .pw-acts, .pw--auto .pw-think { display: revert; animation: none; }
  .pw-spin { animation: none; }
}

/* 拆解完成后：步骤留在原地（不收起、不隐藏），只把标题转成「拆解完成」 */
.pw--auto .pw-think.is-done .pw-spin {
  animation: none; border-color: #22D3EE; background: #22D3EE;
}
.pw--auto .pw-think.is-done .pw-th-h { color: #7DE2F2; }

/* 看板：标题与维度切换同排 */
.pw-chrow { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pw-chrow .pw-tabs { margin-top: 0; }
.pw-chrow .pw-ch { flex: 0 0 auto; }

/* 窗口条上的「重播」 */
.pw-replay { margin-left: 10px; padding: 3px 9px; border-radius: 5px; font: inherit;
  font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .06em;
  color: #22D3EE; background: rgba(34,211,238,.10); border: 1px solid rgba(34,211,238,.42);
  cursor: pointer; flex: 0 0 auto; }
.pw-replay:hover { background: rgba(34,211,238,.20); }
.pw-replay[hidden] { display: none; }

/* 自动播放时：AI 这一轮（头像 + 拆解 + 回复）整体在「开始拆解」时才出现 */
.pw--auto .pw-ai { display: none; }
.pw--auto .pw-ai.is-in { display: flex; animation: pw-in .3s ease-out both; }

/* 回执是 AI 回复，但不受「未出现就隐藏」那套规则影响：显示时名字与正文一起出来 */
/* 确认这条也先走一遍拆解：名字直接出，过程走完才出结论 */
.pw--auto .pw-receipt:not([hidden]) .pw-nm { display: block; }
.pw--auto .pw-receipt:not([hidden]) .pw-tx { display: none; }
.pw--auto .pw-receipt.is-done .pw-tx { display: block; animation: pw-in .3s ease-out both; }

/* 确认那两步用迷你版拆解（同样不包卡片、完成后不隐藏） */
.pw-think--mini { margin-top: 4px; }
.pw-think--mini .pw-th-h { font-size: 9px; }
.pw-think--mini .pw-step { font-size: 10.5px; margin-top: 4px; }
.pw-think--mini .pw-step i { width: 11px; height: 11px; font-size: 7px; }

/* 左列场景列表和右栏窗口对齐：去掉历史遗留的 26px 上偏移，两列上下边齐平 */
.sc2-list { margin-top: 0; }
@media (min-width: 1081px) {
  .sc2 { align-items: stretch; }
  .sc2-left { display: flex; }
  .sc2-list { display: flex; flex-direction: column; justify-content: space-between;
    gap: 6px; flex: 1 1 auto; }
}

/* 模拟客户打字：输入框里逐字打字 + 闪烁光标 */
.pw-f.is-typing { color: #C9D4E6; }
.pw-f.is-typing::after {
  content: ""; display: inline-block; width: 1px; height: 11px; margin-left: 1px;
  vertical-align: -1px; background: #22D3EE; animation: pw-blink .9s steps(1) infinite;
}
@keyframes pw-blink { 50% { opacity: 0; } }

/* 拆解完成态（主回复与确认回复共用）：圆点停转、变实心、标题转亮 —— 不再区分是不是 .pw--auto 作用域 */
.pw-think.is-done .pw-spin { animation: none; border-color: #22D3EE; background: #22D3EE; }
.pw-think.is-done .pw-th-h { color: #7DE2F2; }

/* 定时任务的三篇备选：可点选，选中的那篇高亮 */
.pw-picks { margin-top: 7px; display: flex; flex-direction: column; gap: 5px; }
.pw-pick { display: flex; gap: 9px; align-items: flex-start; padding: 7px 9px; border-radius: 7px;
  border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.02); cursor: pointer;
  transition: border-color .2s, background .2s; }
.pw-pick:hover { border-color: rgba(255,255,255,.18); }
.pw-pick.on { border-color: rgba(34,211,238,.5); background: rgba(34,211,238,.08); }
.pw-pick i { flex: 0 0 12px; width: 12px; height: 12px; border-radius: 50%; margin-top: 2px;
  border: 1px solid rgba(139,154,179,.45); }
.pw-pick.on i { border-color: #22D3EE; background: #22D3EE; }
.pw-pick-t { font-size: 11.5px; line-height: 1.35; color: #C9D4E6; }
.pw-pick.on .pw-pick-t { color: #E6EDF7; font-weight: 700; }
.pw-pick-c { flex: 1 1 auto; min-width: 0; }
.pw-pick-s { margin-top: 3px; font-size: 10.5px; line-height: 1.5; color: #8B9AB3;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pw-pick-m { margin-top: 4px; font-family: var(--font-mono); font-size: 9px; color: #5C6B85; }

/* 看板：区域条形图 + 三列数字 */
.pw-bhead5, .pw-brow { grid-template-columns: 40px minmax(0, 1fr) 74px 52px 54px; gap: 9px; }
.pw-bhead5 { margin-top: 8px; padding-bottom: 2px; border-bottom: 1px solid rgba(255,255,255,.06);
  display: grid; font-family: var(--font-mono); font-size: 9px; letter-spacing: .06em; color: #5C6B85; }
.pw-bhead5 span:nth-child(n+3) { text-align: right; }
.pw-brow { display: grid; align-items: center; padding: 5px 0;
  border-top: 1px solid rgba(255,255,255,.05); }
.pw-brow:first-child { border-top: 0; }
.pw-bbar { display: block; height: 7px; border-radius: 4px; background: rgba(255,255,255,.06); overflow: hidden; }
.pw-bbar > i { display: block; height: 100%; border-radius: 4px;
  background: linear-gradient(90deg, rgba(34,211,238,.85), rgba(34,211,238,.35)); }
.pw-bp { font-family: var(--font-mono); font-size: 10px; color: #8B9AB3; text-align: right; }

/* 不需要人挑的备选清单：只展示，不可点 */
.pw-picks.is-static .pw-pick { cursor: default; }
.pw-picks.is-static .pw-pick:hover { border-color: rgba(255,255,255,.08); }
.cube-canvas { display: block; width: 100%; max-width: 460px; height: auto; aspect-ratio: 1 / 1;
  cursor: default; touch-action: auto; }   /* 不再响应拖拽：恢复页面滚动 */
.cube-canvas.is-dragging { cursor: grabbing; }

/* 窄屏：首屏改单列 + 画布跟着列宽收缩
   （这段之前误删过；注意必须把 grid-template-columns 也重置成 1 列，
     否则会被上面 L1684 的「1fr 460px」按源顺序盖掉 → 正文列宽度变 0） */
@media (max-width: 1080px) {
  .a-hero .a-wrap { grid-template-columns: minmax(0, 1fr); }
  .a-hero-cube { margin-top: 24px; min-height: 0; }
  .cube-canvas { max-width: 380px; }
}

/* ===== mobile overflow fix (2026-10-29) =====
   窄屏横向滚动条的根因：滚动入场动画（fx.js）给还没进入视口的元素写了内联
   `translate: 34px 0; opacity:.001`，这些元素把页面撑宽。
   比较表容器在 L714 被改成 overflow:visible!important，这里在窄屏重新裁掉。 */
/* 所有宽度都要裁：入场动画给未触发的 .cmp-row 写了 inline translate:34px，
   在 981–1100px 这段（a-wrap 贴边）也会把页面撑出横向滚动条。 */
div.cmp { overflow: hidden !important; }
.cmp-row { min-width: 0; }
.cmp-row > p { min-width: 0; overflow-wrap: anywhere; }


/* ==========================================================================
   Step 2a：首页首屏迁入模板 hero 组件（2026-10-29）
   --------------------------------------------------------------------------
   标记：<section class="hero hero-home"><div class="wrap hero-wrap">…
        .hero-copy / .eyebrow / .hero-title / .hero-note / .hero-actions
        .hero-visual.hero-cube + canvas + .doodle 插槽
   取值：与迁移前 .a-hero 的实测值逐项一致（像素对比 0 差异为准）
   ========================================================================== */
.hero.hero-home {
  position: relative; text-align: left;
  padding: 84px 0 120px;
  overflow: hidden;
  background: none; border: 0;
}
.hero.hero-home::before { display: none !important; }
.hero-home .hero-wrap {
  position: relative;
  display: grid; grid-template-columns: minmax(0, 1fr) 460px; gap: 64px; align-items: start;
  width: min(1020px, 100% - 48px); margin-inline: auto;
}
.hero-home .hero-copy { min-width: 0; }
.hero-home .eyebrow {
  font-family: inherit; font-size: 13px; font-weight: 600; letter-spacing: .08em;
  text-transform: none; color: var(--b-brand);
}
.hero-home .hero-title {
  margin: 18px 0 0; max-width: 15em;
  font-size: clamp(38px, 4.8vw, 62px);
  line-height: 1.16 !important; letter-spacing: -.02em !important; font-weight: 700 !important;
  text-wrap: wrap; word-break: normal;
  background: linear-gradient(180deg, #FFFFFF 40%, #A9B6C8 100%) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important; color: transparent !important;
}
.hero .hl { position: relative; display: inline-block; }
.hero .hl::after {
  content: ""; position: absolute; left: -2%; right: -2%; bottom: -12px; height: 20px;
  background: var(--ddl) no-repeat center / 100% 100%;
  animation: drawIn .9s .35s cubic-bezier(.2,.7,.2,1) both;
}
.hero-home .hero-note {
  margin-top: 20px; max-width: 640px;
  font-size: 18px; line-height: 1.75; color: var(--b-body);
  font-weight: 400;
}
.hero-home .hero-actions {
  margin-top: 40px;
  display: flex; align-items: center; justify-content: flex-start; gap: 16px;
}
.hero-home .hero-visual {
  border: 0; background: none; box-shadow: none; padding: 0; margin: 0;
  border-radius: 12px; overflow: visible;
  display: flex; align-items: center; justify-content: center; align-self: center;
  min-height: 380px;
}
.hero-home .cube-canvas {
  display: block; width: 100%; max-width: 460px; height: auto; aspect-ratio: 1 / 1;
}
@media (max-width: 1080px) {
  .hero-home .hero-wrap { grid-template-columns: minmax(0, 1fr); }
  .hero-home .hero-visual { margin-top: 24px; min-height: 0; }
  .hero-home .cube-canvas { max-width: 380px; }
}

/* ==========================================================================
   Step 2b：首页章节头迁入模板 sec-head 后的取值回填（2026-10-29）
   --------------------------------------------------------------------------
   premium.css 用 !important 给 .sec-head h2/.lede 定了一套「内页」值，
   首页要的是迁移前 .chapter-head 的值：kicker 11/1.85/500、标题 820 宽、
   引文 18px/1.8/#A9B6C8 且不设 720 上限。
   ========================================================================== */
body.page-home .sec-head .sec-tag {
  display: block !important;
  font-family: var(--font-mono) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  line-height: 1.85 !important;
  letter-spacing: .2em !important;
  text-transform: uppercase;
  color: var(--b-brand) !important;
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
}
body.page-home .sec-head .lede {
  font-size: 18px !important;
  line-height: 1.8 !important;
  font-weight: 500 !important;
  color: var(--b-body) !important;
  margin-top: 20px !important;
  max-width: none !important;
  text-wrap: wrap !important;
}


/* ==========================================================================
   系统架构图（内联 SVG，2026-10-29）
   --------------------------------------------------------------------------
   产品页「五层，各管一件事」不再用截图：SVG 矢量、随主题 token 取色、
   直接改 layout.arch_svg() 里的文案即可。窄屏横向滚动，避免文字缩到看不清。
   ========================================================================== */
.diag svg { display: block; width: 100%; height: auto; }
.diag-scroll { overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; }
.diag-scroll::-webkit-scrollbar { height: 0; }
.diag text { font-family: var(--font-sans); }
.arch-layer { font-size: 20px; font-weight: 700; fill: var(--b-ink); }
.arch-node { fill: rgba(255, 255, 255, .035); stroke: rgba(255, 255, 255, .10); stroke-width: 1; }
.arch-node-emph { stroke: rgba(34, 211, 238, .22); }
.arch-node-dash { fill: none; stroke: rgba(255, 255, 255, .16); stroke-dasharray: 5 5; }
.arch-node-t, .arch-node-t2 { font-size: 21px; font-weight: 700; fill: var(--b-ink); }
.arch-sub { font-size: 14px; fill: var(--b-muted); }
.arch-plus { font-size: 22px; fill: var(--b-muted); }
.arch-chip { fill: rgba(255, 255, 255, .03); stroke: rgba(255, 255, 255, .10); }
.arch-chip-t { font-size: 15px; font-weight: 600; fill: var(--b-body); }
.arch-band { fill: rgba(255, 255, 255, .05); stroke: rgba(255, 255, 255, .12); }
.arch-band-t { font-size: 22px; font-weight: 700; fill: var(--b-ink); }
.arch-isec { font-size: 13px; font-weight: 400; fill: var(--b-muted); }
.arch-isub { font-size: 13px; font-weight: 400; fill: var(--b-muted); }
.arch-bsub { font-size: 13px; font-weight: 400; fill: var(--b-muted); }
.arch-cap { fill: none; stroke: rgba(255, 255, 255, .18); }
.arch-cap-t { font-size: 13px; fill: var(--b-body); }
.arch-rail { stroke: rgba(255, 255, 255, .18); stroke-width: 1.5; }
.arch-dot { fill: rgba(255, 255, 255, .35); }
.arch-dot-on { fill: var(--b-brand); }
.arch-arrow { fill: none; stroke: rgba(255, 255, 255, .25); stroke-width: 1.6; }
@media (max-width: 980px) { .diag-scroll svg { width: 900px; max-width: none; } }

/* 架构图容器：给 SVG 一点内边距，别贴着卡片边框 */
.diag { padding: 14px 12px; }
#arch .footnote { margin-top: 18px; }
/* 架构图窄屏可横向拖动：两端渐隐提示还有内容 */
.diag-scroll { --edge-fade: 28px; }
.diag-scroll.fade-l, .cmp-wrap.fade-l {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--edge-fade));
  mask-image: linear-gradient(90deg, transparent 0, #000 var(--edge-fade));
}
.diag-scroll.fade-r, .cmp-wrap.fade-r {
  -webkit-mask-image: linear-gradient(270deg, transparent 0, #000 var(--edge-fade));
  mask-image: linear-gradient(270deg, transparent 0, #000 var(--edge-fade));
}
.diag-scroll.fade-l.fade-r, .cmp-wrap.fade-l.fade-r {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--edge-fade), #000 calc(100% - var(--edge-fade)), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 var(--edge-fade), #000 calc(100% - var(--edge-fade)), transparent 100%);
}

/* 架构图去掉外框：图自己就是内容，不要再套一张卡片 */
.diag.diag-plain {
  margin-top: 48px;
  border: 0;
  border-radius: 0;
  background: none;
  padding: 0;
  overflow: visible;
}

/* ==========================================================================
   产品页（2026-10-29 v2）：产品为主，Tab 折叠深度
   ========================================================================== */
.overview { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 52px; }
.ov-card { padding: 30px; border: 1px solid rgba(255,255,255,.075); border-radius: 16px; background: rgba(255,255,255,.022); display: flex; flex-direction: column; gap: 12px; }
.ov-card h3 { margin: 0; font-size: 24px; line-height: 1.2; color: var(--b-ink); }
.ov-card p { margin: 0; font-size: 14.5px; line-height: 1.7; color: var(--b-body); }
.ov-card ul { margin: 10px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.ov-card li { position: relative; margin: 0; padding-left: 14px; font-size: 13.5px; line-height: 1.7; color: var(--b-body); }
.ov-card li::before { content: ""; position: absolute; left: 0; top: .8em; width: 5px; height: 1px; background: var(--b-brand); }
.ov-service { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 32px; padding: 26px 30px; border: 1px dashed rgba(34,211,238,.32); border-radius: 16px; background: rgba(255,255,255,.02); }
.ov-service-main { display: flex; flex-direction: column; gap: 8px; }
.ov-service-main h3 { margin: 0; font-size: 20px; color: var(--b-ink); }
.ov-service-main p { margin: 0; font-size: 14px; line-height: 1.7; color: var(--b-body); }
.ov-service-meta { text-align: right; display: flex; flex-direction: column; gap: 4px; white-space: nowrap; }
.ov-service-meta b { font-size: 20px; color: var(--b-ink); line-height: 1.2; }
.ov-service-meta span { font-size: 12px; color: var(--b-muted); }

.anchor { display: block; height: 0; scroll-margin-top: 110px; }
.p-tag { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--b-brand); }
.p-tabs { display: flex; gap: 6px; margin-top: 52px; border-bottom: 1px solid rgba(255,255,255,.1); }
.p-tab { padding: 14px 24px; background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; font-family: inherit; font-size: 15px; font-weight: 600; color: var(--b-muted); cursor: pointer; }
.p-tab:hover { color: var(--b-ink); }
.p-tab.is-on { color: var(--b-ink); border-bottom-color: var(--b-brand); }
.p-panel { display: none; }
.p-panel.is-on { display: block; margin-top: 44px; }
.p-head { display: flex; flex-direction: column; gap: 10px; }
.p-panel h3 { margin: 0; font-size: 30px; line-height: 1.2; color: var(--b-ink); }
.p-tagline { margin: 0; font-size: 15px; line-height: 1.7; color: var(--b-body); }
.p-h { margin: 0 0 16px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--b-muted); }
.cap { margin: 30px 0 0; padding: 0; list-style: none; display: grid; gap: 0; }
.cap li { margin: 0; display: grid; grid-template-columns: 148px minmax(0,1fr); gap: 24px; padding: 16px 0; border-top: 1px solid rgba(255,255,255,.07); font-size: 14.5px; line-height: 1.75; color: var(--b-body); }
.cap li b { color: var(--b-ink); font-weight: 600; }
.spec-wrap { margin-top: 34px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.1); }
.spec { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 22px 40px; }
.spec-item { min-width: 0; }
.spec dt { margin-bottom: 6px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--b-muted); }
.spec dd { margin: 0; font-size: 13.5px; line-height: 1.7; color: var(--b-body); }


.svc-steps { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 24px; margin-top: 52px; }
.svc-step { border-top: 1px solid rgba(255,255,255,.12); padding-top: 18px; }
.svc-step span { font-family: var(--font-mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--b-brand); }
.svc-step p { margin: 10px 0 0; font-size: 14px; line-height: 1.75; color: var(--b-body); }
.fine { margin: 34px 0 0; font-size: 13px; line-height: 1.9; color: var(--b-muted); max-width: 880px; }

@media (max-width: 980px) {
  .overview { grid-template-columns: 1fr; gap: 18px; }
  .ov-service { grid-template-columns: 1fr; align-items: start; gap: 16px; }
  .ov-service-meta { text-align: left; }
  .p-tabs { overflow-x: auto; }
  .spec { grid-template-columns: 1fr 1fr; gap: 16px 24px; }
  .cap li { grid-template-columns: 1fr; gap: 4px; }
  .spec { grid-template-columns: 1fr; }
  .svc-steps { grid-template-columns: 1fr 1fr; gap: 20px; }

}

/* 关系图（手绘 SVG） */
.arch-link { stroke: rgba(255,255,255,.28); stroke-width: 1.4; fill: none; }
.arch-link-dash { stroke: rgba(34,211,238,.45); stroke-dasharray: 5 5; }
.arch-head { stroke: rgba(255,255,255,.3); stroke-width: 1.4; }
.arch-note { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .12em; fill: var(--b-muted); }
.arch-flow .arch-node { fill: rgba(255,255,255,.035); stroke: rgba(255,255,255,.10); }
.arch-flow .arch-node-emph { stroke: rgba(34,211,238,.28); }
.arch-flow .arch-node-dash { fill: none; stroke: rgba(34,211,238,.30); stroke-dasharray: 5 5; }
.arch-flow .arch-node-t { font-size: 20px; font-weight: 700; fill: var(--b-ink); }

/* 关系图箭头（多边形，跨浏览器稳定） */
.arch-head-fill { fill: rgba(255,255,255,.34); }
.arch-link, .arch-link-dash { stroke-linecap: round; }
/* 买法卡：先别买 用弱色 */
.plan-card dt.no { color: var(--b-muted); }
/* 责任卡 / 产品卡列表：去掉全局 li 的额外间距 */
.p-block li, .duty-col li { margin: 0; }

/* 产品卡上的老锚点（/product/#gate|#desk|#fde）留出固定页头的空间 */
.pmap-card[id] { scroll-margin-top: 110px; }

/* 深链 /product/#gate 等：高亮目标产品卡 */
.pmap-card:target { border-color: rgba(34,211,238,.45); background: rgba(34,211,238,.03); }
/* 产品页脚注：和上方图/卡片拉开距离，限制行宽（原来贴着卡片底边） */
#map .footnote, #relation .footnote, #arch .footnote, #assemble .footnote {
  margin-top: 40px;
  max-width: 920px;
  font-size: 13.5px !important;
  line-height: 1.9;
  color: var(--b-muted) !important;
}
/* 窄屏表格：保底宽度 + 横向滚动，别把单元格压成一字一行 */
@media (max-width: 900px) {
  .cmp-wrap table.cmp { min-width: 680px; }
}


/* 表格不再套卡片：直接落在页面底上，只保留横向细线 */
.cmp-wrap {
  margin: 30px 0 38px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  overflow-x: auto;
  overscroll-behavior-x: contain;
}
.cmp-wrap table.cmp { width: 100%; }
.cmp-wrap table.cmp th,
.cmp-wrap table.cmp td { padding: 13px 18px; }
.cmp-wrap table.cmp th:first-child,
.cmp-wrap table.cmp td:first-child { padding-left: 0; }
.cmp-wrap table.cmp th:last-child,
.cmp-wrap table.cmp td:last-child { padding-right: 0; }
.cmp-wrap table.cmp thead th { background: none; }

/* 无卡片表格：上下各一道稍实的横线，收住表头和末行 */
main .cmp-wrap table.cmp thead th {
  border-top: 1px solid rgba(255,255,255,.12) !important;
  border-bottom: 1px solid rgba(255,255,255,.12) !important;
}
main .cmp-wrap table.cmp tbody tr:last-child th,
main .cmp-wrap table.cmp tbody tr:last-child td {
  border-bottom: 1px solid rgba(255,255,255,.12) !important;
}


/* 联系我们：左栏信息列表收紧一点 */
.contact-list li { margin: 6px 0; }


/* 联系我们页：我们是谁里的两个子节 */
.about-sub { margin-top: 64px; padding-top: 40px; border-top: 1px solid rgba(255,255,255,.06); }
.about-sub h3 { margin: 0 0 22px; font-size: clamp(22px, 2.2vw, 28px); line-height: 1.3; color: var(--b-ink); }
.about-beliefs { display: grid; grid-template-columns: 1fr 1fr; gap: 32px 48px; }
.about-beliefs h4 { margin: 0 0 10px; font-size: 17px; line-height: 1.55; color: var(--b-ink); }
.about-beliefs p { margin: 0; font-size: 15px; line-height: 1.85; color: var(--b-body); }
@media (max-width: 900px) { .about-beliefs { grid-template-columns: 1fr; gap: 24px; } }


/* 联系表单：单列（覆盖 .form-grid 的两列） */
.form-grid.form-single { grid-template-columns: 1fr; }


/* 联系我们：左右等宽、左栏相对表单垂直居中，避免一边空一半 */
.about-contact { align-items: center; }
.about-contact .form-grid { margin-top: 0; }
@media (max-width: 900px) { .about-contact { align-items: start; } }


/* 联系我们：左信息卡 + 右表单卡，两栏等高 */
.contact-cols { margin-top: 44px; gap: 24px; align-items: stretch; }
.contact-card { display: flex; flex-direction: column; }
.contact-rows { display: grid; }
.contact-rows > div { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 18px; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.07); }
.contact-rows > div:first-child { border-top: 0; padding-top: 4px; }
.contact-rows span { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--b-muted); padding-top: 4px; }
.contact-rows b { font-weight: 500; font-size: 15px; line-height: 1.75; color: var(--b-ink); }
.contact-rows a { color: var(--b-brand); text-decoration: none; }
.contact-rows a:hover { text-decoration: underline; }
.contact-note { margin: auto 0 0; padding-top: 18px; font-size: 13px; line-height: 1.8; color: var(--b-muted); }
.contact-cols .form-grid { margin-top: 0; }
@media (max-width: 900px) { .contact-cols { grid-template-columns: 1fr; } }


/* 联系我们左卡：标题 + 信息行 + 底部注记 */
.contact-head { display: flex; flex-direction: column; gap: 12px; margin-bottom: 20px; }
.contact-head h2 { margin: 0; font-size: clamp(26px, 2.6vw, 34px); line-height: 1.25; color: var(--b-ink); }
.contact-head .lede { margin: 0; }


/* 联系我们：左栏不套卡片，直接落在页面上；与右侧表单顶部对齐 */
.contact-cols { align-items: start; }
.contact-card { padding: 0; border: 0; background: none; }
.contact-card .contact-rows > div:first-child { padding-top: 0; }


/* 联系表单：标签与输入框同一行 */
.form-row-inline { display: grid; grid-template-columns: 92px minmax(0, 1fr); align-items: center; gap: 16px; }
.form-row-inline > label { margin: 0; white-space: nowrap; }
.form-row-inline > label em { margin-left: 6px; }
@media (max-width: 560px) { .form-row-inline { grid-template-columns: 76px minmax(0, 1fr); gap: 12px; } }


/* 联系我们：最后一块不再留大段底部空白 */
main #form.section { padding-bottom: 24px !important; }


/* 联系我们：左宽右窄，拉开两栏间距 */
.contact-cols { grid-template-columns: minmax(0, 1.3fr) minmax(0, .9fr); gap: 80px; }
@media (max-width: 900px) { .contact-cols { grid-template-columns: 1fr; gap: 32px; } }


/* 联系表单：说明文字默认不显示，只在提交出错时由 JS 填入 */
#form .form-note:empty { display: none; }


/* 下拉框：给 select 和选项显式暗色（原生弹层不跟随半透明背景，某些系统会显示白底） */
select.input {
  background-color: var(--surface-2) !important;
  color: var(--text) !important;
  color-scheme: dark;
}
select.input option {
  background-color: var(--bg-2);
  color: var(--text);
}


/* 联系我们 / 我们是谁：团队 */
.team-intro { margin: 0 0 28px; max-width: 880px; font-size: 15px; line-height: 1.85; color: var(--b-body); }
.team-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.team-card { padding: 22px; border: 1px solid rgba(255,255,255,.075); border-radius: 14px; background: rgba(255,255,255,.022); }
.team-card h4 { margin: 10px 0 4px; font-size: 21px; line-height: 1.2; color: var(--b-ink); }
.team-role { margin: 0 0 14px; font-size: 13px; color: var(--b-brand); }
.team-card ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.team-card li { position: relative; margin: 0; padding-left: 12px; font-size: 13px; line-height: 1.7; color: var(--b-body); }
.team-card li::before { content: ""; position: absolute; left: 0; top: .8em; width: 4px; height: 1px; background: rgba(255,255,255,.35); }
.team-compose { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 32px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.08); }
.team-compose b { display: block; margin-bottom: 8px; font-size: 15px; color: var(--b-ink); }
.team-compose span { font-size: 13px; line-height: 1.75; color: var(--b-body); }
.team-note { margin: 24px 0 0; font-size: 13px; line-height: 1.8; color: var(--b-muted); }
@media (max-width: 980px) { .team-grid { grid-template-columns: 1fr 1fr; } .team-compose { grid-template-columns: 1fr; gap: 18px; } }
@media (max-width: 560px) { .team-grid { grid-template-columns: 1fr; } }


/* CTA 带不再用玻璃卡：与其它分区同样的排版，只靠一道上分割线 */
.cta-band .cta-plain { display: block; padding: 0; border: 0; border-radius: 0; background: none; border-top: 1px solid rgba(255,255,255,.08); padding-top: 36px; }
.cta-band .cta-plain .cta-actions { justify-content: flex-start; margin-top: 22px; }


/* FAQ 页内的 CTA 行：与正文左对齐 */
.faq-lead .cta-actions { justify-content: flex-start; margin-top: 4px; }


/* 页脚三列：按实际列数铺满，不再留出空列 */
.foot-cols { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)) !important; gap: 32px !important; }
@media (max-width: 900px) { .foot-cols { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 520px) { .foot-cols { grid-template-columns: 1fr !important; } }


/* 页脚品牌块：补邮箱与地址，右侧三列不再显空 */
.foot-contact { margin: 16px 0 0; font-size: 12.5px; line-height: 1.85; color: var(--b-muted); }
.foot-contact a { color: var(--b-body) !important; }
.foot-contact a:hover { color: #fff !important; }


/* 页脚底栏：左法务、右联系方式，铺满一行 */
.foot-bottom { justify-content: space-between !important; }
.foot-legal, .foot-legal-right { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; }
.foot-legal-right { justify-content: flex-end; }
@media (max-width: 760px) {
  .foot-legal-right { justify-content: flex-start; }
}


/* 页脚品牌块与底栏精简后：不再需要右对齐联系方式 */
.foot-bottom { justify-content: flex-start !important; }


/* 页脚精简后收紧留白，避免大片空区 */
.site-footer .foot-top { padding: 44px 0 26px !important; }
.site-footer .foot-bottom { padding: 16px 0 24px !important; }


/* 表单提交按钮：三个表单统一为全宽、44 高、说明文字居中 */
.form-actions {
  display: grid !important;
  grid-template-columns: 1fr !important;
  align-items: stretch !important;
  gap: 12px !important;
}
.form-actions [type="submit"].btn {
  width: 100%;
  height: 44px;
  margin: 0;
  justify-content: center;
  font-size: 15px;
}
.form-actions .form-note { max-width: none; text-align: center; }


/* 表单：整块收紧，字段之间与「最后一个字段 → 提交按钮」同一节奏，读成一组 */
.form-grid { gap: 14px 18px !important; margin-top: 24px !important; }
.form-row { gap: 6px; }
.form-actions { margin-top: 2px !important; }


/* 解决方案页：三个行业 × 三栏（卡在哪 / 怎么搭 / 交付与验收） */
.sol-grid { display: grid; grid-template-columns: .9fr 1.25fr .85fr; gap: 40px; margin-top: 36px; }
.sol-col h3 { margin: 0 0 14px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--b-brand); }
.sol-col ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.sol-col li { position: relative; padding-left: 14px; font-size: 14px; line-height: 1.75; color: var(--b-body); }
.sol-col li::before { content: ""; position: absolute; left: 0; top: .8em; width: 5px; height: 1px; background: rgba(255,255,255,.32); }
.sol-case { margin: 28px 0 0; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.08); font-size: 13px; line-height: 1.8; color: var(--b-muted); }
.sol-footnote { margin: 0; font-size: 12.5px; line-height: 1.8; color: var(--b-muted); }
@media (max-width: 900px) { .sol-grid { grid-template-columns: 1fr; gap: 26px; } }


/* ===== 解决方案页 v2：索引卡 / 事实条 / 案例卡 / 步骤 / 三层 ===== */
.sol-index { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; margin-top: 30px; }
.sol-card { display: flex; flex-direction: column; gap: 6px; padding: 22px 20px; border: 1px solid rgba(255,255,255,.08); border-radius: 14px; background: rgba(255,255,255,.022); text-decoration: none; transition: border-color .2s ease, background .2s ease; }
.sol-card:hover { border-color: rgba(34,211,238,.45); background: rgba(34,211,238,.05); }
.sol-no { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .16em; color: var(--b-brand); }
.sol-card b { font-size: 15.5px; line-height: 1.4; color: var(--b-ink); }
.sol-card p { margin: 0; font-size: 12.5px; line-height: 1.65; color: var(--b-muted); }
.sol-go { margin-top: auto; padding-top: 14px; font-size: 12px; color: var(--b-body); }
.sol-card:hover .sol-go { color: var(--b-brand); }

.facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 34px 0 6px; border-top: 1px solid rgba(255,255,255,.08); border-bottom: 1px solid rgba(255,255,255,.08); }
.facts > div { padding: 18px 22px 18px 0; }
.facts > div + div { border-left: 1px solid rgba(255,255,255,.08); padding-left: 22px; }
.facts b { display: block; font-size: 26px; line-height: 1.2; color: var(--b-ink); }
.facts span { display: block; margin-top: 6px; font-size: 12.5px; line-height: 1.55; color: var(--b-muted); }

.sol-sub { margin: 42px 0 18px; font-size: 15px; letter-spacing: .02em; color: var(--b-ink); }

.sol-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.sol-step { padding: 18px 18px 20px; border: 1px solid rgba(255,255,255,.08); border-radius: 12px; background: rgba(255,255,255,.02); }
.sol-step .k { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .14em; color: var(--b-brand); }
.sol-step h4 { margin: 10px 0 8px; font-size: 15px; color: var(--b-ink); }
.sol-step p { margin: 0; font-size: 13px; line-height: 1.7; color: var(--b-body); }

.layers-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.layer { position: relative; padding: 20px 20px 22px; border: 1px solid rgba(255,255,255,.08); border-radius: 12px; background: rgba(255,255,255,.02); }
.layer .k { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .14em; color: var(--b-brand); }
.layer b { display: block; margin: 10px 0 8px; font-size: 15px; color: var(--b-ink); }
.layer p { margin: 0; font-size: 13px; line-height: 1.75; color: var(--b-body); }

.sol-case { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 18px; align-items: start; margin-top: 30px; padding: 20px 22px; border: 1px solid rgba(34,211,238,.22); border-radius: 12px; background: rgba(34,211,238,.045); }
.sol-case-label { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .14em; color: var(--b-brand); padding-top: 3px; }
.sol-case p { margin: 0; font-size: 13.5px; line-height: 1.75; color: var(--b-body); }

@media (max-width: 1100px) {
  .sol-index { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .facts > div:nth-child(3) { border-left: 0; padding-left: 0; }
}
@media (max-width: 900px) {
  .sol-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sol-steps { grid-template-columns: 1fr 1fr; }
  .layers-3 { grid-template-columns: 1fr; }
  .sol-case { grid-template-columns: 1fr; gap: 8px; }
}
@media (max-width: 560px) {
  .sol-index, .sol-steps { grid-template-columns: 1fr; }
  .facts { grid-template-columns: 1fr; }
  .facts > div + div { border-left: 0; padding-left: 0; border-top: 1px solid rgba(255,255,255,.08); }
}


/* 解决方案页：索引节与下一节之间不要留两个 section 的空白 */
main #index.section { padding-bottom: 40px !important; }


/* 解决方案页表格：窄屏逐行堆叠，每行带列名（避免横向裁切） */
@media (max-width: 760px) {
  .cmp-wrap table.cmp.cmp-stack { min-width: 0 !important; width: 100%; display: block; }
  .cmp-wrap table.cmp.cmp-stack thead { display: none; }
  .cmp-wrap table.cmp.cmp-stack tbody { display: block; }
  .cmp-wrap table.cmp.cmp-stack tr { display: block; padding: 14px 0; border-top: 1px solid rgba(255,255,255,.08); }
  .cmp-wrap table.cmp.cmp-stack tr:first-child { border-top: 0; }
  .cmp-wrap table.cmp.cmp-stack td {
    display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 12px;
    border: 0 !important; padding: 4px 0 !important; background: none !important;
    white-space: normal !important;
  }
  .cmp-wrap table.cmp.cmp-stack td::before {
    content: attr(data-label);
    font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .12em;
    color: var(--b-muted); padding-top: 3px;
  }
}


/* 解决方案页：律所两层链路 + 双案例卡 + 四列索引 */
.sol-index { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sol-chain { display: grid; grid-template-columns: 1fr auto 1fr; gap: 20px; align-items: stretch; margin: 34px 0 4px; }
.chain-node { padding: 22px 24px; border: 1px solid rgba(255,255,255,.08); border-radius: 14px; background: rgba(255,255,255,.022); }
.chain-node .k { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .14em; color: var(--b-brand); }
.chain-node b { display: block; margin: 8px 0 8px; font-size: 22px; color: var(--b-ink); }
.chain-node p { margin: 0; font-size: 13.5px; line-height: 1.75; color: var(--b-body); }
.chain-arrow { display: grid; place-items: center; font-size: 22px; color: var(--b-brand); }
.sol-cases { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 30px; }
.sol-cases .sol-case { margin-top: 0; }
@media (max-width: 1100px) { .sol-index { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) {
  .sol-chain { grid-template-columns: 1fr; gap: 10px; }
  .chain-arrow { transform: rotate(90deg); padding: 2px 0; }
  .sol-cases { grid-template-columns: 1fr; }
}


/* 解决方案页：案例证据块（处境 / 做了什么 / 可核的点） */
.sol-evidence { margin-top: 30px; padding: 22px 24px 24px; border: 1px solid rgba(34,211,238,.22); border-radius: 14px; background: rgba(34,211,238,.045); }
.ev-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; padding-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,.08); }
.ev-head b { font-size: 16px; color: var(--b-ink); }
.ev-head p { margin: 0; flex-basis: 100%; font-size: 12.5px; line-height: 1.7; color: var(--b-muted); }
.ev-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; padding-top: 18px; }
.ev-col h4 { margin: 0 0 10px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--b-brand); }
.ev-col ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.ev-col li { position: relative; padding-left: 13px; font-size: 13px; line-height: 1.7; color: var(--b-body); }
.ev-col li::before { content: ""; position: absolute; left: 0; top: .8em; width: 5px; height: 1px; background: rgba(255,255,255,.32); }
@media (max-width: 900px) { .ev-grid { grid-template-columns: 1fr; gap: 18px; } }


/* 解决方案：三栏列数按实际内容自适应（证据块接手了「卡在哪」，正文剩两栏时不空一列） */
.sol-grid { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }


/* 解决方案页：行业判断句 */
.sol-view { margin: 30px 0 0; padding: 16px 20px; border-left: 2px solid var(--b-brand); background: rgba(34,211,238,.035); font-size: 14px; line-height: 1.85; color: var(--b-body); }
.sol-view span { display: block; margin-bottom: 6px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .14em; color: var(--b-brand); }


/* 解决方案 v5：每节各用自己的形态 */
.flow-6 { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; margin: 34px 0 0; border-top: 1px solid rgba(255,255,255,.08); border-bottom: 1px solid rgba(255,255,255,.08); }
.flow-step { padding: 18px 16px 20px; }
.flow-step + .flow-step { border-left: 1px solid rgba(255,255,255,.08); }
.flow-step .k { font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; color: var(--b-brand); }
.flow-step p { margin: 10px 0 0; font-size: 12.5px; line-height: 1.65; color: var(--b-body); }
.sol-two { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 40px; margin-top: 32px; }
.sol-two h3 { margin: 0 0 12px; font-size: 15px; color: var(--b-ink); }
.sol-two p, .sol-two li { font-size: 13.5px; line-height: 1.8; color: var(--b-body); }
.sol-two ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.sol-two li { position: relative; padding-left: 13px; }
.sol-two li::before { content: ""; position: absolute; left: 0; top: .8em; width: 5px; height: 1px; background: rgba(255,255,255,.32); }
.split { margin-top: 30px; border-top: 1px solid rgba(255,255,255,.08); }
.split-row { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 18px; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.06); }
.split-row span { font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; color: var(--b-muted); padding-top: 2px; }
.split-row b { font-weight: 500; font-size: 14px; color: var(--b-ink); }
.split-row.lv2 { padding-left: 22px; }
.split-row.lv3 { padding-left: 44px; }
.split-row.lv4 { padding-left: 66px; }
.pain { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 32px; }
.pain-card { padding: 20px 20px 22px; border: 1px solid rgba(255,255,255,.08); border-radius: 12px; background: rgba(255,255,255,.02); }
.pain-card h4 { margin: 0 0 8px; font-size: 15px; color: var(--b-ink); }
.pain-card p { margin: 0 0 14px; font-size: 13px; line-height: 1.75; color: var(--b-muted); }
.pain-card em { display: block; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.08); font-style: normal; font-size: 13px; line-height: 1.75; color: var(--b-body); }
.query { margin-top: 30px; padding: 22px 24px; border-left: 2px solid var(--b-brand); background: rgba(34,211,238,.035); }
.query .q { margin: 0 0 14px; font-size: 14px; color: var(--b-ink); }
.query .a b { display: block; font-size: 15px; color: var(--b-ink); }
.query .a span { display: block; margin-top: 4px; font-size: 12.5px; color: var(--b-muted); }
.query .a p { margin: 10px 0 0; font-size: 13px; color: var(--b-brand); }
.cap-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.cap-chip { padding: 7px 15px; border: 1px solid rgba(255,255,255,.12); border-radius: 999px; font-size: 13px; color: var(--b-body); }
.sol-note { margin: 24px 0 0; font-size: 12.5px; line-height: 1.8; color: var(--b-muted); }
@media (max-width: 1000px) { .flow-6 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .flow-step:nth-child(4) { border-left: 0; } }
@media (max-width: 900px) {
  .flow-6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .flow-step { border-left: 0 !important; border-top: 1px solid rgba(255,255,255,.06); }
  .flow-step:nth-child(-n+2) { border-top: 0; }
  .sol-two, .pain { grid-template-columns: 1fr; }
  .split-row { grid-template-columns: 84px minmax(0, 1fr); }
  .split-row.lv2, .split-row.lv3, .split-row.lv4 { padding-left: 12px; }
}


.pain-card em span { display: block; margin-bottom: 6px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .14em; color: var(--b-brand); }


.query .sol-note { margin-top: 16px; text-align: left; }


/* 解决方案页：「先说明白」——给不熟这个行业的读者的一段话 */
.explain { margin: 26px 0 0; padding: 20px 24px; border: 1px solid rgba(255,255,255,.08); border-radius: 12px; background: rgba(255,255,255,.022); }
.explain span { display: block; margin-bottom: 8px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .14em; color: var(--b-brand); }
.explain p { margin: 0; font-size: 14.5px; line-height: 1.9; color: var(--b-body); }
@media (max-width: 560px) { .explain { padding: 18px 18px; } }


/* 解决方案页：「卡在哪」——先说明白之后的痛点 */
.pains, .pains-label { margin-top: 26px; display: block; }
.pains .k, .pains-label { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .14em; color: var(--b-brand); }
.pains ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 26px; margin: 12px 0 0; padding: 0; list-style: none; }
.pains li { padding-top: 12px; border-top: 1px solid rgba(255,255,255,.1); font-size: 13px; line-height: 1.75; color: var(--b-body); }
.pains li b { display: block; margin-bottom: 6px; font-size: 14.5px; color: var(--b-ink); }
.pains-label + .pain { margin-top: 14px; }
@media (max-width: 900px) { .pains ul { grid-template-columns: 1fr; gap: 14px; } }


/* ===== 解决方案页 v8：行业信息卡 + 详情弹窗 ===== */
.ind-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 34px; }
.ind-card { margin: 0; }
.ind-card-link { display: flex; flex-direction: column; gap: 12px; height: 100%; padding: 28px 28px 24px; border: 1px solid rgba(255,255,255,.09); border-radius: 16px; background: rgba(255,255,255,.022); text-decoration: none; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.ind-card-link:hover { border-color: rgba(34,211,238,.45); background: rgba(34,211,238,.05); transform: translateY(-2px); }
.ind-top { display: flex; align-items: baseline; gap: 12px; }
.ind-no { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .16em; color: var(--b-brand); }
.ind-kicker { font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--b-muted); }
.ind-card h2 { margin: 2px 0 0; font-size: clamp(21px, 2vw, 27px); line-height: 1.25; color: var(--b-ink); }
.ind-one { margin: 0; font-size: 14px; line-height: 1.7; color: var(--b-brand); }
.ind-bg { margin: 0; font-size: 13.5px; line-height: 1.85; color: var(--b-body); }
.ind-pains { margin-top: 4px; }
.ind-pains .k { display: block; margin-bottom: 8px; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .14em; color: var(--b-muted); }
.ind-pains ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.ind-pains li { position: relative; padding-left: 13px; font-size: 13px; line-height: 1.7; color: var(--b-body); }
.ind-pains li::before { content: ""; position: absolute; left: 0; top: .8em; width: 5px; height: 1px; background: rgba(255,255,255,.32); }
.ind-more { margin-top: auto; padding-top: 16px; font-size: 13px; color: var(--b-body); }
.ind-card-link:hover .ind-more { color: var(--b-brand); }

/* 弹窗 */
dialog.ind-modal { width: min(920px, calc(100vw - 48px)); max-height: 86vh; margin: auto; padding: 0; border: 1px solid rgba(255,255,255,.12); border-radius: 18px; background: #0A1120; color: var(--b-body); overflow: auto; }
dialog.ind-modal::backdrop { background: rgba(3,7,14,.74); backdrop-filter: blur(6px); }
.ind-modal-inner { padding: 34px 38px 44px; }
.ind-modal-head { position: relative; padding-right: 46px; }
.ind-modal-head h2 { margin: 4px 0 6px; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.25; color: var(--b-ink); }
.ind-close { position: absolute; top: -4px; right: 0; width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; background: transparent; color: var(--b-body); font-size: 20px; line-height: 1; cursor: pointer; }
.ind-close:hover { border-color: var(--b-brand); color: var(--b-brand); }
.modal-h3 { margin: 30px 0 12px; font-size: 15px; color: var(--b-ink); }
.modal-p { margin: 0; font-size: 14px; line-height: 1.9; color: var(--b-body); }
.ind-modal-body ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.ind-modal-body ul li { position: relative; padding-left: 13px; font-size: 13.5px; line-height: 1.8; color: var(--b-body); }
.ind-modal-body ul li::before { content: ""; position: absolute; left: 0; top: .85em; width: 5px; height: 1px; background: rgba(255,255,255,.32); }
.ind-modal-body .flow-6 { margin-top: 0; }
.ind-modal-body .sol-two, .ind-modal-body .pain, .ind-modal-body .layers-3 { margin-top: 0; }
@media (max-width: 1000px) { .ind-grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
  dialog.ind-modal { width: calc(100vw - 20px); max-height: 92vh; }
  .ind-modal-inner { padding: 24px 20px 32px; }
  .ind-card-link { padding: 22px 20px; }
}


/* 行业卡：痛点写出解释 */
.ind-pains li { font-size: 12.5px; color: var(--b-muted); }
.ind-pains li b { display: block; margin-bottom: 2px; font-size: 13px; font-weight: 600; color: var(--b-ink); }
/* 弹窗内的二级小标题降一级 */
.ind-modal-body .sol-two h3 { font-size: 13.5px; color: var(--b-brand); letter-spacing: .02em; }


/* 信息卡改为就地展开（v9） */
.ind-card { border: 1px solid rgba(255,255,255,.09); border-radius: 16px; background: rgba(255,255,255,.022); transition: border-color .2s ease, background .2s ease; }
.ind-card:hover { border-color: rgba(34,211,238,.45); background: rgba(34,211,238,.05); }
.ind-card.is-open { grid-column: 1 / -1; }
.ind-card-link { border: 0 !important; border-radius: 0; background: none !important; padding: 28px 28px 22px; }
.ind-card-link:hover { transform: none; background: none !important; }
.ind-more-close { display: none; }
.ind-card.is-open .ind-more-open { display: none; }
.ind-card.is-open .ind-more-close { display: inline; }
.ind-detail { margin: 0 28px; padding: 24px 0 30px; border-top: 1px solid rgba(255,255,255,.08); }
.ind-detail ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.ind-detail ul li { position: relative; padding-left: 13px; font-size: 13.5px; line-height: 1.8; color: var(--b-body); }
.ind-detail ul li::before { content: ""; position: absolute; left: 0; top: .85em; width: 5px; height: 1px; background: rgba(255,255,255,.32); }
.ind-detail .modal-h3 { margin-top: 26px; }
.ind-detail .modal-h3:first-child { margin-top: 0; }
.ind-detail .flow-6 { margin-top: 0; }
.ind-detail .sol-two, .ind-detail .pain, .ind-detail .layers-3 { margin-top: 0; }
.ind-detail .sol-two h3 { font-size: 13.5px; color: var(--b-brand); letter-spacing: .02em; }
@media (max-width: 1000px) {
  .ind-card.is-open { grid-column: auto; }
  .ind-card-link { padding: 22px 20px; }
  .ind-detail { margin: 0 20px; }
}


/* 展开后卡片高度随内容走，链接不再被拉伸 */
.ind-card { display: flex; flex-direction: column; }
.ind-card-link { height: auto !important; }


/* 弹窗：隐藏滚动条、关闭按钮图标、遮罩淡入 */
dialog.ind-modal { scrollbar-width: none; }
dialog.ind-modal::-webkit-scrollbar { display: none; }
.ind-close svg { width: 15px; height: 15px; color: currentColor; }
.ind-modal-head .ind-bg { margin-top: 10px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.08); }
@keyframes indBackdropIn { from { opacity: 0; } to { opacity: 1; } }
dialog.ind-modal[open]::backdrop { animation: indBackdropIn .24s ease both; }
@media (prefers-reduced-motion: reduce) { dialog.ind-modal[open]::backdrop { animation: none; } }


/* 共享元素克隆：飞行动画中的卡片副本 */
.ind-fly { position: fixed; z-index: 9999; margin: 0; padding: 28px; box-sizing: border-box; overflow: hidden; pointer-events: none; border: 1px solid rgba(34,211,238,.35); border-radius: 16px; background: #0A1120; }
.ind-fly .ind-more { display: none; }
.ind-fly .ind-card-link { height: auto; padding: 0; border: 0; background: none; }
.ind-modal.ind-morphing { opacity: 0 !important; }
.ind-modal-head .ind-pains { margin-top: 12px; }


/* 飞行期间：弹窗只剩一个透明框，克隆层在弹窗内（top layer）飞行，不被遮罩压暗 */
.ind-modal.ind-morphing { opacity: 1 !important; background: transparent !important; border-color: transparent !important; box-shadow: none !important; overflow: visible !important; }
.ind-modal.ind-morphing .ind-modal-inner,
.ind-modal.ind-morphing .ind-close { opacity: 0 !important; }
.ind-fly { position: fixed; }


/* 克隆层直接用卡片本身的样式（.ind-card + .ind-card-link），飞行中不变形 */
.ind-fly { position: fixed !important; z-index: 9999; margin: 0; box-sizing: border-box; overflow: hidden; pointer-events: none; }
.ind-fly .ind-more { display: none; }


/* 卡片生长成弹窗 */
.ind-hole { visibility: hidden; }
.ind-backdrop { position: fixed; inset: 0; z-index: 1000; background: rgba(3,7,14,.72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); opacity: 0; transition: opacity .3s ease; }
.ind-backdrop.is-on { opacity: 1; }
.ind-card.is-portal { position: fixed !important; z-index: 1001; margin: 0 !important; overflow: hidden; }
.ind-card.is-modal { position: fixed !important; z-index: 1001; margin: 0 !important; overflow: auto; padding: 34px 38px 40px; border-radius: 18px; background: #0A1120; box-shadow: 0 30px 90px rgba(0,0,0,.55); scrollbar-width: none; }
.ind-card.is-modal::-webkit-scrollbar { display: none; }
.ind-card.is-modal .ind-card-link { cursor: default; pointer-events: none; }
.ind-card.is-modal .ind-more { display: none; }
.ind-card.is-modal .ind-detail { display: block; }
.ind-close { position: absolute; top: 18px; right: 18px; width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: rgba(10,17,32,.8); color: var(--b-body); cursor: pointer; z-index: 2; }
.ind-close:hover { border-color: var(--b-brand); color: var(--b-brand); }
.ind-close svg { width: 15px; height: 15px; }
.ind-close.is-hidden { display: none; }
.ind-card.is-modal .ind-card-link { padding-right: 46px; }
body.ind-lock { overflow: hidden; }


/* motion.css 对 .ind-card 有 !important 的卡片底色/描边/圆角，弹窗态要压过它 */
.ind-card.is-modal {
  background: #0A1120 !important;
  border-color: rgba(255,255,255,.12) !important;
  border-radius: 18px !important;
}
.ind-card.is-portal { border-radius: 16px !important; }
.ind-card.is-modal::after { display: none !important; }


.ind-card.is-portal { background: #0A1120 !important; }


/* 排版与卡片完全一致：弹窗态不改 padding / 圆角 / 字号 / 行宽，只改底色与交互 */
.ind-card.is-modal { padding: 0 !important; border-radius: 16px !important; background: #0A1120 !important; box-shadow: 0 30px 90px rgba(0,0,0,.55); overflow: auto; }
.ind-card.is-modal .ind-card-link { padding: 28px 28px 24px !important; }
.ind-card.is-modal .ind-more { display: inline !important; pointer-events: auto; cursor: pointer; }
.ind-card.is-growing { background: #0A1120 !important; }


/* 卡片标题在网格里会被 main h2 放大到 --fs-h2；移入 body 后会掉回 .ind-card h2 的 27px。
   这里把两处的标题字号/行高/字距钉死成同一个值，展开前后不重排。 */
.ind-card h2 {
  font-size: var(--fs-h2) !important;
  line-height: 1.2 !important;
  letter-spacing: -.02em !important;
}


/* 弹窗底色与卡片实际呈现的颜色一致（卡片是 rgba(255,255,255,.024) 叠在页面上 ≈ #0D111A），
   描边也沿用卡片的 7.5% 白，避免展开后像换了张卡。 */
.ind-card.is-modal,
.ind-card.is-growing { background: #0D111A !important; border-color: rgba(255,255,255,.075) !important; }
.ind-card.is-modal .ind-close { background: #0D111A; }


/* 展开/收起态里隐藏「看完整方案 / 收起」这一行 */
.ind-card.is-link-hidden .ind-more { display: none !important; }


/* 去掉展开时的全屏蒙层：只保留一层不可见的点击层（点空白处关闭），
   让卡片就是自己长大，而不是"压一层遮罩再弹一个窗"。 */
.ind-backdrop {
  background: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}


/* 蒙层改淡：只压暗 35% + 轻微模糊，保留焦点又不至于像盖了一层黑板 */
.ind-backdrop {
  background: rgba(3, 7, 14, 0.35) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  backdrop-filter: blur(8px) !important;
}


/* 「看完整方案」：展开/收起期间只隐藏不塌陷（保留高度），收起落位后淡入恢复，避免硬切 */
.ind-card .ind-more { transition: opacity .28s ease, transform .28s ease; }
.ind-card.is-link-hidden .ind-more {
  display: inline !important;
  visibility: hidden;
  opacity: 0;
  transform: translateY(4px);
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
}


/* 弹窗不再动页面背景：遮罩层保持 opacity 0（只留作点击关闭），不压暗、不模糊 */
.ind-backdrop, .ind-backdrop.is-on {
  background: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  opacity: 0 !important;
}


/* 弹窗/生长过程中保留卡片的顶部光晕（.ind-card::after） */
.ind-card.is-modal::after,
.ind-card.is-portal::after { display: block !important; }


/* 光晕随尺寸等比放大：卡片是 420px 圆（约 84% 宽），弹窗也按宽度比例铺 */
.ind-card.is-modal::after,
.ind-card.is-portal::after {
  display: block !important;
  background-image: radial-gradient(84% 65% at 50% 0%, rgba(34, 211, 238, .10), rgba(0, 0, 0, 0) 62%) !important;
}


/* 卡片底色叠在页面渐变上，实际光晕比纯 ::after 更亮；弹窗按实测补到同亮度 */
.ind-card.is-modal::after,
.ind-card.is-portal::after {
  background-image: radial-gradient(84% 65% at 50% 0%, rgba(34, 211, 238, .18), rgba(0, 0, 0, 0) 62%) !important;
}


/* 光晕在卡片态/弹窗态保持一致：始终用卡片本身的 420px 渐变与 .55 透明度，
   不随 hover 变化，也不随尺寸缩放，避免收起落位时光晕亮度/形状跳变 */
.ind-card::after,
.ind-card:hover::after,
.ind-card.is-modal::after,
.ind-card.is-portal::after {
  opacity: .55 !important;
  background-image: radial-gradient(420px at 50% 0%, rgba(34, 211, 238, .1), rgba(0, 0, 0, 0) 62%) !important;
}



/* 弹窗/生长中的卡片不参与 hover 位移与描边高亮：
   否则鼠标停在弹窗卡片上时会被 translateY(-2px) 抬起，落位时又弹回，看起来像"跳一下" */
.ind-card.is-portal,
.ind-card.is-modal,
.ind-card.is-portal:hover,
.ind-card.is-modal:hover {
  transform: none !important;
  border-color: rgba(255, 255, 255, .075) !important;
}


/* 落位后 300ms 内先不响应 hover 的位移/描边，之后再由 transition 平滑接上，
   避免鼠标正好落在卡片上时落位瞬间抬起 2px */
.ind-card.ind-settle,
.ind-card.ind-settle:hover {
  transform: none !important;
  border-color: rgba(255, 255, 255, .075) !important;
}


/* 「看完整方案」在卡片上固定贴底（margin-top:auto 已实现）；展开时直接不占位 */
.ind-card.is-link-hidden .ind-more { display: none !important; }


/* 卡片里的内容撑满，保证「看完整方案 →」始终贴在卡片底部同一位置 */
.ind-card-link { flex: 1 1 auto; }


/* 恢复蒙层：打开时 0.3s 淡入，关闭一开始就淡出；压暗 35% + 8px 模糊 */
.ind-backdrop {
  background: rgba(3, 7, 14, .35) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  backdrop-filter: blur(8px) !important;
  opacity: 0;
}
.ind-backdrop.is-on { opacity: 1 !important; }


.ind-backdrop.is-on {
  background: rgba(3, 7, 14, .35) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  backdrop-filter: blur(8px) !important;
}


/* 标题下的这句改成"问题"陈述，字号和字重提一点，让行业 + 问题一眼看完 */
.ind-one { font-size: 15.5px; font-weight: 600; line-height: 1.6; }


/* 解决方案页：去掉重复的 section 标题后，卡片区直接接 hero */
.section-industries { padding-top: 8px; }
.section-industries .ind-grid { margin-top: 0; }


/* 解决方案页：hero 与卡片区贴合，不留两个 section 叠加的大空档 */
.hero-industries { padding-bottom: 48px; }
.section-industries { padding-top: 26px; }


.hero.hero-industries { padding-bottom: 48px !important; }
.section.section-industries { padding-top: 26px !important; }
.section-industries .ind-grid { margin-top: 0 !important; }


main > .hero.hero-industries + .section.section-industries { padding-top: 26px !important; }


/* 标题在宽度动画中不要用平衡换行：text-wrap: balance 会逐帧重算行数，看起来像闪 */
.ind-card h2 { text-wrap: wrap !important; }


/* 卡片问题标题：比正文明显大，但不要用 54px 的大标题字号，保证两行放得下 */
.ind-card h2 {
  font-size: clamp(24px, 2.4vw, 32px) !important;
  line-height: 1.32 !important;
  letter-spacing: -.01em !important;
  text-wrap: wrap !important;
  margin-top: 8px !important;
}


/* 卡片问题标题：网格里 main h2 的规则更"重"，这里用更高优先级压住；弹窗时卡片在 body 下 */
main .ind-grid .ind-card h2,
body > .ind-card h2 {
  font-size: clamp(24px, 2.4vw, 32px) !important;
  line-height: 1.32 !important;
  letter-spacing: -.01em !important;
  text-wrap: wrap !important;
  margin-top: 8px !important;
}


/* 标题自动换行；限制最大行宽，保证弹窗里也是两行，宽度变化时只做逐字重排 */
main .ind-grid .ind-card h2,
body > .ind-card h2 { max-width: 17em; }


/* 标题保持自动换行，但在桌面宽度下正好一行，展开过程不会重排 */
main .ind-grid .ind-card h2,
body > .ind-card h2 { max-width: none; }


/* 30px：四句问题在卡片宽度下都正好一行，展开时标题不重排 */
main .ind-grid .ind-card h2,
body > .ind-card h2 {
  font-size: clamp(22px, 2.2vw, 30px) !important;
}


/* ===== 预约诊断：联系弹窗 ===== */
.contact-modal { position: fixed; inset: 0; z-index: 3000; display: flex; align-items: center; justify-content: center; padding: 24px; }
.contact-modal[hidden] { display: none !important; }
.contact-modal-bd { position: absolute; inset: 0; background: rgba(3, 7, 14, .72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); opacity: 0; transition: opacity .22s ease; }
.contact-modal.is-on .contact-modal-bd { opacity: 1; }
.contact-modal-panel { position: relative; width: min(560px, 100%); max-height: 88vh; overflow: auto; background: #0D111A; border: 1px solid rgba(255,255,255,.12); border-radius: 18px; padding: 32px 34px 30px; box-shadow: 0 30px 90px rgba(0,0,0,.55); transform: translateY(10px) scale(.98); opacity: 0; transition: opacity .24s ease, transform .24s cubic-bezier(.2,.85,.25,1); scrollbar-width: none; }
.contact-modal-panel::-webkit-scrollbar { display: none; }
.contact-modal.is-on .contact-modal-panel { opacity: 1; transform: none; }
.contact-modal-x { position: absolute; top: 14px; right: 14px; width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: transparent; color: var(--b-body); cursor: pointer; }
.contact-modal-x:hover { border-color: var(--b-brand); color: var(--b-brand); }
.contact-modal-x svg { width: 15px; height: 15px; }
.contact-modal-panel .eyebrow { margin: 0 0 6px; }
.contact-modal-panel h2 { margin: 0 0 8px; font-size: clamp(24px, 2.6vw, 30px); line-height: 1.25; color: var(--b-ink); }
.contact-modal-lede { margin: 0 0 18px; font-size: 14px; line-height: 1.8; color: var(--b-body); }
.contact-modal-panel .glass { background: none !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; }
@media (max-width: 640px) {
  .contact-modal { padding: 12px; }
  .contact-modal-panel { padding: 24px 20px 22px; }
}


/* 联系弹窗：提交按钮和最后一个字段拉开距离 */
.contact-modal-panel .form-actions { margin-top: 16px !important; padding-top: 6px; }







/* ===== 媒体页频道卡：统一到站内卡片语言 ===== */
.ch-card {
  background: var(--card-bg) !important;
  border: 1px solid var(--card-line) !important;
  border-radius: var(--card-r) !important;
  box-shadow: none !important;
  transition: border-color .2s ease, background .2s ease;
}
.ch-card:hover { border-color: rgba(34, 211, 238, .45) !important; background: rgba(34, 211, 238, .04) !important; }
.ch-head { border-bottom: 1px solid rgba(255,255,255,.07); }
.ch-foot { border-top: 1px solid rgba(255,255,255,.07); background: transparent !important; }
.ch-type { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--b-muted); }
.ch-state { font-family: var(--font-mono); font-size: 10px; letter-spacing: .08em; color: var(--b-muted); border: 1px solid rgba(255,255,255,.12); }
.ch-link { color: var(--b-brand); font-size: 13.5px; }
.book-cover { background: rgba(255,255,255,.03) !important; border: 1px solid rgba(255,255,255,.09) !important; border-radius: 10px; }
.wb-toc { display: flex !important; flex-wrap: wrap; gap: 8px; padding: 0 !important; list-style: none !important; }
.wb-toc li {
  display: inline-flex; align-items: center; height: 26px; padding: 0 11px;
  border: 1px solid rgba(34,211,238,.35); border-radius: 999px; background: rgba(34,211,238,.07);
  font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .04em; color: var(--b-brand);
}


/* 人与 AI 协同 / AI 能力卡 */
.ai-caps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 22px; }
.ai-caps .run-card { height: 100%; }
@media (max-width: 900px) { .ai-caps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .ai-caps { grid-template-columns: 1fr; } }


/* AI 能力卡：桌面四列（8 张） */
.ai-caps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1180px) { .ai-caps { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) { .ai-caps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .ai-caps { grid-template-columns: 1fr; } }


/* 解决方案四张卡：正文/痛点字号调大，卡片可以更长 */
.ind-bg { font-size: 15px !important; line-height: 1.9 !important; }
.ind-kicker { font-size: 13px !important; }
.ind-pains .k { font-size: 11px !important; letter-spacing: .14em; }
.ind-pains li { font-size: 14px !important; line-height: 1.8 !important; }
.ind-pains li b { font-size: 14.5px !important; }
.ind-more { font-size: 13.5px !important; }


/* 解决方案卡正文与首页正文对齐：同一字族，字号/行高按首页 .cap-body 一档 */
.ind-bg { font-size: 16.5px !important; line-height: 1.85 !important; }
.ind-pains li { font-size: 16px !important; line-height: 1.75 !important; }
.ind-pains li b { font-size: 16.5px !important; }
.ind-more { font-size: 15px !important; }


/* 解决方案卡：子标题、正文、展开详情的字号一起适配 */
.ind-kicker { font-size: 13.5px !important; }
.ind-card h2 { font-size: clamp(24px, 2.3vw, 32px) !important; }
.ind-pains .k { font-size: 11.5px !important; letter-spacing: 2.2px !important; }
.ind-pains li b { font-size: 18px !important; line-height: 1.55 !important; }
.ind-more { font-size: 15.5px !important; }

.ind-detail .modal-h3 { font-size: 21px !important; line-height: 1.35 !important; }
.ind-detail p { font-size: 16px !important; line-height: 1.8 !important; }
.ind-detail ul li { font-size: 16px !important; line-height: 1.8 !important; }
.ind-detail table { font-size: 15px !important; }
.ind-detail table th { font-size: 11.5px !important; letter-spacing: .12em !important; }
.ind-detail table td { font-size: 15px !important; line-height: 1.7 !important; }
.ind-detail .sol-two h3 { font-size: 15px !important; }


/* 展开详情里的小卡（怎么解的三个原则）字号 */
.ind-detail .pain-card h4 { font-size: 16.5px !important; line-height: 1.45 !important; }
.ind-detail .pain-card p { font-size: 15px !important; line-height: 1.75 !important; }
.ind-detail .modal-p { font-size: 16px !important; line-height: 1.8 !important; }


/* 移动端：章节上下留白收紧（原来 118px×2，一屏全是空） */
@media (max-width: 640px) {
  main > .section { padding-top: 64px !important; padding-bottom: 64px !important; }
  main > .section.section-tight { padding-top: 44px !important; padding-bottom: 44px !important; }
  main > .section.quote-band { padding-top: 56px !important; padding-bottom: 56px !important; }
  main > .hero + .section { padding-top: 48px !important; }
  main > .hero.hero-home { padding-top: 64px !important; padding-bottom: 76px !important; }
  main > .hero.hero-marketing { padding-top: 48px !important; padding-bottom: 40px !important; }
  main > .hero + .section.section-industries { padding-top: 20px !important; }
}


/* 弹窗里的表单不要 .glass 顶部那条高光分割线 */
.contact-modal-panel .glass::before,
.contact-modal-panel .glass::after { content: none !important; display: none !important; }


/* 解决方案卡：桌面改横向宽卡，标题在左、内容在右，三条痛点在右下一排，降低"字多"压迫感 */
@media (min-width: 901px) {
  .ind-grid { grid-template-columns: 1fr !important; gap: 20px !important; }
  .ind-grid .ind-card-link {
    display: grid !important;
    grid-template-columns: minmax(230px, .78fr) minmax(0, 1.5fr) !important;
    grid-template-areas: "top top" "title bg" "more pains" !important;
    gap: 14px 48px !important;
    align-items: start;
    height: auto !important;
    padding: 30px 36px 26px !important;
  }
  .ind-grid .ind-top { grid-area: top; }
  .ind-grid .ind-card h2 { grid-area: title; margin: 4px 0 0 !important; max-width: 16ch; }
  .ind-grid .ind-bg { grid-area: bg; margin: 0 !important; max-width: 60ch; }
  .ind-grid .ind-pains { grid-area: pains; margin: 6px 0 0 !important; display: grid; gap: 10px; }
  .ind-grid .ind-pains ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 26px; }
  .ind-grid .ind-pains li { padding-left: 12px; }
  .ind-grid .ind-more { grid-area: more; margin: 0 !important; padding: 0 !important; align-self: end; }
}
@media (min-width: 901px) and (max-width: 1180px) {
  .ind-grid .ind-card-link { grid-template-columns: minmax(210px, .9fr) minmax(0, 1.4fr) !important; gap: 12px 32px !important; }
  .ind-grid .ind-pains ul { grid-template-columns: 1fr 1fr; }
}


/* 宽卡排版第二版：标题左、背景右、痛点半宽三列铺开 */
@media (min-width: 901px) {
  .ind-grid .ind-card-link {
    grid-template-columns: 1.05fr 1.35fr !important;
    grid-template-areas: "top top" "title bg" "more bg" "pains pains" !important;
    gap: 12px 48px !important;
  }
  .ind-grid .ind-card h2 { max-width: none !important; font-size: clamp(24px, 2.1vw, 30px) !important; }
  .ind-grid .ind-bg { align-self: start; max-width: 66ch; }
  .ind-grid .ind-pains { margin-top: 12px !important; }
  .ind-grid .ind-pains ul { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}


/* 宽卡第三版：标题 28px、链接放卡底右，卡片留白再多一点 */
@media (min-width: 901px) {
  .ind-grid .ind-card-link {
    grid-template-columns: 1.08fr 1.32fr !important;
    grid-template-areas: "top top" "title bg" "pains pains" "more more" !important;
    gap: 14px 48px !important;
    padding: 32px 36px 24px !important;
  }
  .ind-grid .ind-card h2 { font-size: clamp(24px, 1.95vw, 28px) !important; line-height: 1.32 !important; }
  .ind-grid .ind-more { justify-self: end; }
}


@media (min-width: 901px) {
  .ind-grid .ind-card h2 { max-width: none !important; }
}


@media (min-width: 901px) {
  main .ind-grid .ind-card h2 { font-size: clamp(24px, 1.95vw, 28px) !important; line-height: 1.32 !important; }
}


/* 移动端卡片弹窗：底部抽屉 */
.ind-card.is-sheet { border-radius: 18px 18px 0 0 !important; }
.ind-card.is-sheet.is-modal { border-radius: 18px 18px 0 0 !important; }


.ind-card.is-sheet {
  transform: translateY(var(--sheet-y, 0%)) !important;
  transition: transform .3s cubic-bezier(.2,.85,.25,1) !important;
}


/* 卡片移出网格后（弹窗态）保持同一套横向排版，避免打开瞬间文字重排 */
@media (min-width: 901px) {
  body > .ind-card .ind-card-link,
  .ind-card.is-modal .ind-card-link {
    display: grid !important;
    grid-template-columns: 1.08fr 1.32fr !important;
    grid-template-areas: "top top" "title bg" "pains pains" "more more" !important;
    gap: 14px 48px !important;
    align-items: start;
    height: auto !important;
    padding: 32px 36px 24px !important;
  }
  body > .ind-card .ind-top { grid-area: top; }
  body > .ind-card .ind-card h2,
  body > .ind-card h2 { grid-area: title; margin: 4px 0 0 !important; max-width: none !important; font-size: clamp(24px, 1.95vw, 28px) !important; line-height: 1.32 !important; }
  body > .ind-card .ind-bg { grid-area: bg; margin: 0 !important; max-width: 66ch; }
  body > .ind-card .ind-pains { grid-area: pains; margin: 12px 0 0 !important; display: grid; gap: 10px; }
  body > .ind-card .ind-pains ul { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 10px 26px; }
  body > .ind-card .ind-pains li { padding-left: 12px; }
  body > .ind-card .ind-more { grid-area: more; justify-self: end; margin: 0 !important; padding: 0 !important; align-self: end; }
}


/* 宽卡：标题列再放宽一点，弹窗收窄到 920 时标题仍是一行，避免换行跳变 */
@media (min-width: 901px) {
  .ind-grid .ind-card-link,
  body > .ind-card .ind-card-link,
  .ind-card.is-modal .ind-card-link {
    grid-template-columns: 1.25fr 1.15fr !important;
    gap: 14px 44px !important;
  }
}


/* 驻留条并进顶栏的一块玻璃：固定玻璃层 + 顶栏与驻留条自身透明 */
.hdr-glass {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: calc(60px + var(--stuck-h, 0px));
  background: rgba(7, 11, 20, .72);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  backdrop-filter: saturate(180%) blur(14px);
  z-index: 40;
  pointer-events: none;
  opacity: 0;
  transition: opacity .16s ease;
}
body.stuck-bar .hdr-glass { opacity: 1; }
body.stuck-bar .site-header,
body.stuck-bar.page-home .site-header {
  background: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
.ind-rail.is-stuck,
.p-tabs.is-stuck,
.sc2-list.is-stuck {
  background: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
}
.ind-rail.is-stuck::before,
.p-tabs.is-stuck::before,
.sc2-list.is-stuck::before { display: none !important; }


body.stuck-bar .ind-rail,
body.stuck-bar .p-tabs,
body.stuck-bar .sc2-list { z-index: 60 !important; }


/* 驻留条并入顶栏：玻璃放在驻留条自己的 ::before（同一 stacking context），
   覆盖顶栏+驻留条两块区域，只算一次模糊；顶栏让出背景与模糊。 */
.hdr-glass { display: none !important; }
body.stuck-bar .ind-rail,
body.stuck-bar .p-tabs,
body.stuck-bar .sc2-list { z-index: 45 !important; }
body.stuck-bar .site-header,
body.stuck-bar.page-home .site-header {
  background: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
body.stuck-bar .ind-rail::before,
body.stuck-bar .p-tabs::before,
body.stuck-bar .sc2-list::before {
  content: "";
  display: block !important;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: calc(60px + var(--stuck-h, 0px));
  transform: none;
  background: rgba(7, 11, 20, .72);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  backdrop-filter: saturate(180%) blur(14px);
  z-index: -1;
  pointer-events: none;
}


/* 覆盖之前的 display:none（同 specificity 的更早规则） */
body.stuck-bar .ind-rail.is-stuck::before,
body.stuck-bar .p-tabs.is-stuck::before,
body.stuck-bar .sc2-list.is-stuck::before {
  display: block !important;
}


/* 移动端菜单遮罩：body 级固定层做毛玻璃（不受 sticky 顶栏影响），菜单本身透明 */
.nav-veil {
  position: fixed;
  left: 0;
  right: 0;
  top: 60px;
  height: 0;
  z-index: 45;
  background: rgba(7, 11, 20, .72);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  backdrop-filter: saturate(180%) blur(14px);
  pointer-events: none;
  opacity: 0;
  transition: opacity .18s ease;
}
body.nav-open .nav-veil { opacity: 1; }
@media (max-width: 980px) {
  body.nav-open .site-header.open .site-nav {
    background: transparent !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
  }
}


.cube-fallback { display: block; width: 100%; max-width: 460px; height: auto; margin: 0 auto; }
@media (max-width: 1080px) { .cube-fallback { max-width: 380px; } }
