/* --ease 别名：本文件多处使用 var(--ease) 但此前未定义，导致缓动失效 */
:root{--ease:cubic-bezier(.22,1,.36,1)}
/* ══════════ 内页样式（与首页同一视觉语言）══════════ */

/* 内页头 */
.zy-page__head{padding:calc(var(--nav-h) + 60px) 0 44px;background:var(--bgDeep);
  border-bottom:1px solid var(--bd)}
.zy-page__head .st{margin:14px 0 0}
.zy-page__head .eyebrow{
  display:inline-flex;align-items:center;gap:9px;font-size:12px;letter-spacing:3px;text-transform:uppercase;
  color:var(--cyan);font-weight:600;padding:8px 18px;border-radius:999px;
  border:1px solid rgba(34,211,238,.3);background:rgba(34,211,238,.08);margin-bottom:4px}
.zy-page__head .eyebrow::before{content:"";width:6px;height:6px;border-radius:99px;background:currentColor;box-shadow:0 0 10px currentColor}
.zy-back{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--od2);
  transition:.22s;margin-bottom:22px}
.zy-back:hover{color:var(--cyan);transform:translateX(-3px)}

/* 内页正文容器 */
.zy-page__body{padding:48px 0 80px;max-width:820px;margin:0 auto}
.zy-page__body .lead{color:var(--od2)}

/* 卡片列表（归档/搜索） */
.zy-card{background:rgba(255,255,255,.045);border:1px solid var(--bd);border-radius:var(--r-lg);
  overflow:hidden;margin-bottom:18px;transition:.32s var(--ease)}
.zy-card:hover{border-color:var(--bd-hi);transform:translateY(-4px);box-shadow:0 18px 44px rgba(0,0,0,.35)}
.zy-card__thumb img{width:100%;height:200px;object-fit:cover;display:block}
.zy-card__body{padding:22px 24px}
.zy-card__title{font-size:19px;font-weight:700;line-height:1.45;margin-bottom:10px}
.zy-card__title a{transition:.22s}
.zy-card__title a:hover{color:var(--cyan)}
.zy-card__ex{font-size:14px;color:var(--od2);line-height:1.75;margin-bottom:14px}
.zy-card__meta{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--od3)}
.zy-card__meta a{color:var(--cyan)}

/* 文章页 */
.zy-article__thumb{margin-bottom:32px;border-radius:var(--r-lg);overflow:hidden}
.zy-article__thumb img{width:100%;display:block}
.zy-article__meta{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--od3);
  padding-bottom:20px;margin-bottom:28px;border-bottom:1px solid var(--bd)}
.zy-article__meta a{color:var(--cyan)}

/* 正文排版 */
.zy-article__content{font-size:16.5px;line-height:1.9;color:var(--od2)}
.zy-article__content>h2,.zy-article__content>h3,.zy-article__content>h4{
  color:#fff;font-weight:750;line-height:1.4;margin:36px 0 16px;letter-spacing:-.3px}
.zy-article__content>h2{font-size:24px}
.zy-article__content>h3{font-size:20px}
.zy-article__content>h4{font-size:17.5px}
.zy-article__content>p{margin-bottom:18px}
.zy-article__content>ul,.zy-article__content>ol{margin:0 0 18px 22px}
.zy-article__content>ul{list-style:disc}
.zy-article__content>ol{list-style:decimal}
.zy-article__content>li{margin-bottom:8px}
.zy-article__content>a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.zy-article__content>a:hover{color:#fff}
.zy-article__content>blockquote{border-left:3px solid var(--cyan);padding:4px 0 4px 20px;
  margin:0 0 18px;color:var(--od2);font-style:normal}
.zy-article__content>img{border-radius:var(--r-md);margin:24px 0;width:100%}
.zy-article__content>table{width:100%;border-collapse:collapse;margin:24px 0;font-size:14px;
  background:rgba(255,255,255,.04);border-radius:var(--r-md);overflow:hidden}
.zy-article__content>table th{background:rgba(255,255,255,.07);color:#fff;font-weight:650;
  padding:12px 15px;text-align:left}
.zy-article__content>table td{padding:12px 15px;border-top:1px solid var(--bd)}
.zy-article__content pre{background:#0a0e22;border:1px solid var(--bd);border-radius:var(--r-md);
  padding:18px;overflow-x:auto;font-size:13.5px;margin:24px 0}
.zy-article__content code{background:rgba(34,211,238,.1);color:var(--cyan);padding:2px 7px;
  border-radius:5px;font-size:14px;font-family:ui-monospace,monospace}
.zy-article__content pre code{background:none;padding:0;color:inherit}
.zy-article__content hr{border:none;border-top:1px solid var(--bd);margin:36px 0}

/* 分页 */
.zy-page__body .nav-links,.zy-page__body .page-numbers,.zy-page__body .page-links{
  display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:44px}
.zy-page__body .page-numbers{display:inline-flex;min-width:42px;height:42px;align-items:center;
  justify-content:center;border:1px solid var(--bd);border-radius:10px;color:var(--od2);
  background:rgba(255,255,255,.04);transition:.24s}
.zy-page__body .page-numbers:hover{border-color:var(--cyan);color:var(--cyan)}
.zy-page__body .page-numbers.current{background:var(--bp);border-color:var(--bp);color:#fff}

/* ══════════ 联系页 /contact/ ══════════ */
.ct-hero{padding:calc(var(--nav-h) + 56px) 0 64px;position:relative;overflow:hidden;
  background:radial-gradient(1100px 520px at 78% -10%,rgba(77,97,214,.34),transparent 62%),
             linear-gradient(160deg,var(--bdeeper),var(--bgDeep) 58%)}
.ct-hero::after{content:"";position:absolute;left:50%;bottom:-260px;width:720px;height:720px;
  transform:translateX(-50%);background:radial-gradient(circle,rgba(34,211,238,.14),transparent 62%);
  pointer-events:none}
.ct-hero__in{display:grid;grid-template-columns:1.25fr .95fr;gap:52px;align-items:center;position:relative;z-index:1}
.ct-hero h1{font-size:clamp(28px,4.2vw,46px);font-weight:800;line-height:1.22;letter-spacing:-1.2px;margin-bottom:18px}
.ct-hero h1 .gr{background:linear-gradient(110deg,#8aa0ff,#a78bfa 50%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.ct-hero .lead{color:var(--od2);font-size:16.5px;max-width:560px;line-height:1.85}
.ct-hero__act{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.ct-hero__note{margin-top:18px;font-size:13px;color:var(--od3)}
.ct-card{background:rgba(255,255,255,.05);border:1px solid var(--bd);border-radius:var(--r-xl);
  padding:30px 28px;backdrop-filter:blur(6px);box-shadow:0 24px 60px -18px rgba(0,0,0,.5)}
.ct-card h2{font-size:18px;font-weight:700;color:#fff;margin-bottom:18px}
.ct-card ul{list-style:none;display:grid;gap:11px;margin-bottom:20px}
.ct-card li{position:relative;padding-left:24px;font-size:14px;color:var(--od2);line-height:1.7}
.ct-card li::before{content:"";position:absolute;left:0;top:9px;width:9px;height:9px;border-radius:99px;
  background:var(--cyan);box-shadow:0 0 9px var(--cyan)}
.ct-card__mail{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:99px;
  background:rgba(34,211,238,.1);border:1px solid rgba(34,211,238,.32);color:var(--cyan);
  font-size:14.5px;font-weight:600;transition:.26s}
.ct-card__mail:hover{background:rgba(34,211,238,.18);border-color:var(--cyan)}
/* 邮箱 + 电话并排：两者是同一层的联系方式，视觉权重保持一致 */
.ct-card__ct{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.ct-card__tel{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:99px;
  background:rgba(139,92,246,.12);border:1px solid rgba(139,92,246,.34);color:#c4b5fd;
  font-size:14.5px;font-weight:600;letter-spacing:.3px;transition:.26s;
  font-variant-numeric:tabular-nums}
.ct-card__tel:hover{background:rgba(139,92,246,.2);border-color:var(--violet);color:#ddd6fe}
.ct-card__tel i{font-style:normal;font-size:11px;font-weight:400;opacity:.72;
  padding-left:8px;border-left:1px solid currentColor;letter-spacing:0}

.ct-sec{padding:clamp(64px,8vw,104px) 0}
.ct-sec--lt{background:var(--bmist);color:var(--dp)}
.ct-ctr{text-align:center;margin-bottom:44px}
.ct-ctr .st{font-size:clamp(26px,3.4vw,38px);font-weight:800;letter-spacing:-.8px;line-height:1.3;margin:16px 0 16px}
.ct-ctr .st .gr{background:linear-gradient(110deg,var(--b1),var(--violet) 60%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent}
/* 实测祖先链 ct-sec--lt = 浅底 rgb(245,247,255) → 用浅底 token（同 ins-hero，曾误改已回退） */
.ct-ctr .lead{color:var(--dp2);max-width:640px;margin-inline:auto;line-height:1.85}
.ct-ctr .lead b{color:var(--dp)}
.ct-ctr .eyebrow{color:var(--b1);border-color:rgba(77,97,214,.28);background:rgba(77,97,214,.07)}
.ct-ctr .eyebrow::before{box-shadow:0 0 8px currentColor}

.ct-dims{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.ct-dim{background:#fff;border:1px solid var(--bdl);border-radius:var(--r-lg);padding:26px 20px;
  position:relative;overflow:hidden;transition:.34s var(--ease);box-shadow:0 8px 24px rgba(26,31,61,.05)}
.ct-dim:hover{transform:translateY(-5px);border-color:rgba(77,97,214,.34);box-shadow:0 18px 40px rgba(26,31,61,.12)}
.ct-dim__n{display:block;font-size:30px;font-weight:800;letter-spacing:-1.4px;line-height:1;
  font-variant-numeric:tabular-nums;color:var(--b1);opacity:.28;margin-bottom:12px}
.ct-dim h3{font-size:16px;font-weight:700;color:var(--dp);margin-bottom:8px;line-height:1.45}
.ct-dim p{font-size:13.5px;color:var(--dp2);line-height:1.7;margin-bottom:10px}
.ct-dim em{display:block;font-style:normal;font-size:12px;color:var(--b1);line-height:1.6}

.ct-form-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}
.ct-form-intro .st{font-size:clamp(25px,3.2vw,36px);font-weight:800;line-height:1.28;letter-spacing:-.8px;margin:16px 0 18px}
.ct-form-intro .st .gr{background:linear-gradient(110deg,#8aa0ff,#a78bfa 50%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.ct-form-intro .lead{color:var(--od2);line-height:1.85;margin-bottom:24px}
.ct-tips{list-style:none;display:grid;gap:11px}
.ct-tips li{position:relative;padding-left:24px;font-size:13.5px;color:var(--od3);line-height:1.7}
.ct-tips li::before{content:"›";position:absolute;left:6px;top:-1px;color:var(--cyan);font-size:17px;font-weight:700}

.ct-form{background:rgba(255,255,255,.045);border:1px solid var(--bd);border-radius:var(--r-xl);
  padding:32px 30px;display:grid;gap:18px}
.ct-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ct-field{display:grid;gap:8px;border:0;padding:0;margin:0;min-width:0}
.ct-field>span,.ct-field>legend{font-size:13px;color:var(--od2);font-weight:600;letter-spacing:.3px;padding:0}
.ct-field i{color:var(--cyan);font-style:normal}
.ct-field input[type=text],.ct-field input[type=email],.ct-field input[type=url],.ct-field textarea{
  width:100%;background:rgba(255,255,255,.05);border:1px solid var(--bd);border-radius:var(--r-sm);
  padding:13px 15px;color:#fff;font:inherit;font-size:15px;transition:.24s;resize:vertical}
.ct-field input::placeholder,.ct-field textarea::placeholder{color:var(--od3);opacity:.7}
.ct-field input:focus,.ct-field textarea:focus{outline:0;border-color:var(--cyan);background:rgba(34,211,238,.07);
  box-shadow:0 0 0 3px rgba(34,211,238,.12)}
.ct-field--topics legend{margin-bottom:10px}
.ct-topics{display:flex;flex-wrap:wrap;gap:9px}
.ct-topics label{cursor:pointer}
.ct-topics input{position:absolute;opacity:0;width:0;height:0}
.ct-topics span{display:inline-block;padding:8px 15px;border-radius:99px;border:1px solid var(--bd);
  background:rgba(255,255,255,.04);font-size:13px;color:var(--od2);transition:.24s}
.ct-topics label:hover span{border-color:var(--bd-hi);color:#fff}
.ct-topics input:checked+span{background:linear-gradient(120deg,var(--b1),var(--violet));
  border-color:transparent;color:#fff}
.ct-topics input:focus-visible+span{outline:2px solid var(--cyan);outline-offset:2px}
.ct-submit{width:100%;justify-content:center;margin-top:4px}
.ct-form__note{font-size:12.5px;color:var(--od3);text-align:center;line-height:1.7}

/* ══ Contact Form 7 适配（结构由 CF7 输出，样式必须贴着它真实的 DOM 写）══ */
.ct-form .wpcf7{margin:0}
/*
 * ★ CF7 6.1.7（html5:true）最终输出的是这种结构：
 *     <p><label class="ct-field"><br/><span>姓名</span><br/><span class="wpcf7-form-control-wrap">…</span><br/></label></p>
 *   也就是说：grid 的直接子项是 CF7 套的那层无 class 的 <p>，而不是我们写的 label。
 *   所以布局规则要挂在 .ct-form__grid > p 上，--wide 跨行也得靠 :has() 选到外层 p。
 *   （用 html5:false 更糟：label 不在旧格式化器的白名单里，会被整个改写成 p 并丢掉 class。）
 */
.ct-form .ct-field>br{display:none}
/* 同理：CF7 会把 .ct-topics 里的 6 个 label 全包进一个 <p> 并在每个之间插 <br>，
   不屏蔽的话胶囊会一个一行竖着排，完全不流动。 */
.ct-form .ct-topics br{display:none}
.ct-form .ct-topics>p{margin:0;display:flex;flex-wrap:wrap;gap:9px}
.ct-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ct-form__grid>p{margin:0;min-width:0;display:grid;gap:8px;align-content:start}
.ct-form__grid>p>.ct-field{display:grid;gap:8px;min-width:0}
.ct-form__grid>p:has(>.ct-field--wide){grid-column:1/-1}
.ct-form__grid>fieldset.ct-field{grid-column:1/-1}
.ct-form__grid .wpcf7-form-control-wrap{display:block}
.ct-form .wpcf7-form-control{width:100%;background:rgba(255,255,255,.05);border:1px solid var(--bd);
  border-radius:var(--r-sm);padding:13px 15px;color:#fff;font:inherit;font-size:15px;transition:.24s}
.ct-form .wpcf7-form-control::placeholder{color:var(--od3);opacity:.7}
.ct-form .wpcf7-form-control:focus{outline:0;border-color:var(--cyan);background:rgba(34,211,238,.07);
  box-shadow:0 0 0 3px rgba(34,211,238,.12)}
.ct-form textarea.wpcf7-form-control{resize:vertical;min-height:118px}
.ct-form .wpcf7-checkbox{display:none}          /* 我们用胶囊样式，不用 CF7 默认方框 */
.ct-form .wpcf7-list-item{margin:0}
.ct-form .wpcf7-form:not(.wpcf7-units){margin:0}
.ct-submit-row{grid-column:1/-1;margin-top:4px}
.ct-form .wpcf7-submit,.ct-form .ct-submit{
  width:100%;display:flex;align-items:center;justify-content:center;cursor:pointer;
  padding:16px 22px;border:0;border-radius:var(--r-sm);font:inherit;font-size:15.5px;font-weight:700;
  color:#fff;background:linear-gradient(120deg,var(--b1),var(--violet));
  transition:.26s var(--ease);box-shadow:0 12px 30px -10px rgba(77,97,214,.7)}
.ct-form .wpcf7-submit:hover,.ct-form .ct-submit:hover{transform:translateY(-2px);
  box-shadow:0 18px 40px -10px rgba(77,97,214,.85)}
.ct-form .wpcf7-submit:disabled{opacity:.55;cursor:not-allowed;transform:none}
/* CF7 响应/校验提示 */
.ct-form__status{grid-column:1/-1}
.ct-form .wpcf7-response-output{margin:0;font-size:13.5px;line-height:1.7;padding:13px 16px;border-radius:var(--r-sm);
  border:1px solid var(--bd);background:rgba(255,255,255,.04)}
.ct-form .wpcf7-response-output:empty{display:none}
.ct-form .wpcf7-not-valid-tip{color:#fca5a5;font-size:13.5px;display:block;margin-top:5px}
.ct-form .wpcf7-form.invalid .wpcf7-form-control{border-color:rgba(248,113,113,.6)}
/* 蜜罐诱饵：移出视口而不是 display:none —— 不少爬虫会跳过隐藏字段 */
.ct-form .wpcf7-hidden-field,.zy-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.zy-trap label{font-size:0}
.ct-form--fallback{text-align:center;justify-items:center}

.ct-info{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ct-info__c{background:#fff;border:1px solid var(--bdl);border-radius:var(--r-lg);padding:28px 24px;
  transition:.32s var(--ease);box-shadow:0 8px 24px rgba(26,31,61,.05)}
.ct-info__c:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(26,31,61,.12)}
.ct-info__c h3{font-size:13px;letter-spacing:1.4px;text-transform:uppercase;color:var(--dp3);
  font-weight:650;margin-bottom:14px}
.ct-info__c a{font-size:16px;font-weight:700;color:var(--b1);word-break:break-all}
.ct-info__c a:hover{text-decoration:underline;text-underline-offset:3px}
.ct-info__t{font-size:16px;font-weight:700;color:var(--dp);line-height:1.6;margin-bottom:8px}
.ct-info__c p{font-size:13.5px;color:var(--dp2);line-height:1.75}

@media(max-width:1080px){
  .ct-hero__in{grid-template-columns:1fr;gap:38px}
  .ct-dims{grid-template-columns:repeat(2,1fr)}
  .ct-form-wrap{grid-template-columns:1fr;gap:34px}
  .ct-info{grid-template-columns:1fr}
}
@media(max-width:640px){
  .ct-hero{padding:calc(var(--nav-h) + 34px) 0 44px}
  .ct-dims{grid-template-columns:1fr}
  .ct-row,.ct-form__grid{grid-template-columns:1fr}
  .ct-form{padding:24px 18px}
  .ct-hero__act{flex-direction:column}
  .ct-hero__act .btn{width:100%;justify-content:center}
}

/* ══════════════════════════════════════════════════════════
   文章页 ap-*（single.php）
   排版取向：中文长文阅读 —— 窄栏、宽行距、标题有视觉锚点
   配色：白底黑字。深色导航 + 白色正文 + 深色页脚，
        深浅两段把文章区「框」出来，长时间阅读也不刺眼。
   ══════════════════════════════════════════════════════════ */
/* 主体三栏：粘性目录 + 正文 + 右侧栏
   ★ 加右栏后容器不能沿用 1240 的 --wrap，否则正文会被压到 520px 以下，
     中文一行只剩 30 字出头。单独放宽到 1320，正文仍能保持 ~41 字/行。 */
/* 通栏白底容器：只给限宽的 .ap 上白底的话，两侧会漏出深色底色，不干净。
   ★ 这里顺手就地重定义 --dp3：原值 #7a84ab 是给深色底配的「弱化白字」，
     翻到白底只有 3.67:1，达不到 AA 的 4.5（13px 的元信息、目录文字都在用）。
     自定义属性会向下继承，所以 .ap-* 全部自动换成深色版，页脚不受影响。
   ★ 容器不再限死窄宽：放到 1800，超宽屏才居中留白，常见分辨率是真正铺满一屏。 */
.ap-page{background:#fff;--dp3:#5f6a8c}
/* 三栏铺开（左侧目录 / 正文 / 右侧栏），但左右边缘仍与导航、页脚对齐 */
.ap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 clamp(20px,3.4vw,64px);color:var(--dp)}
.ap-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:9px;padding-top:calc(var(--nav-h) + 26px);
  font-size:13px;color:var(--dp3)}
.ap-crumb a{color:var(--dp3);transition:.2s}
.ap-crumb a:hover{color:var(--b1)}
.ap-crumb__cur{color:var(--dp2);max-width:36em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 标题区：有封面时左文右图通栏，把上方那一横真正占满 */
.ap-head{padding:30px 0 34px;border-bottom:1px solid var(--bdl);margin-bottom:38px}
.ap-head--fig{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,38%);gap:44px;align-items:center}
.ap-head__fig{margin:0;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--bdl);
  box-shadow:0 18px 44px rgba(26,31,61,.1)}
.ap-head__fig img{width:100%;height:100%;max-height:340px;object-fit:cover;display:block}
.ap-cat{display:inline-block;font-size:12px;letter-spacing:1.2px;font-weight:600;color:#fff;
  padding:6px 15px;border-radius:99px;margin-bottom:20px;
  background:linear-gradient(120deg,var(--b1),var(--violet))}
.ap-h1{font-size:clamp(26px,3.6vw,40px);font-weight:800;line-height:1.34;letter-spacing:-.8px;
  color:var(--dp);margin-bottom:20px;max-width:24em}
/* 导语：AI 摘要通常取首段，这里给的就是文章自己的第一段 */
.ap-standfirst{font-size:17px;line-height:1.85;color:var(--dp2);max-width:56em;
  padding-left:18px;border-left:2px solid var(--violet);margin-bottom:22px}
.ap-meta{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:13px;color:var(--dp3);align-items:center}
.ap-meta__upd{color:var(--dp3)}
.ap-meta__src{color:var(--b1);font-weight:600}

/* 主体：粘性目录 + 正文窄栏 + 右侧栏
   ★ space-between 让两侧栏贴到屏幕两边、正文始终保持 38em，
     这样容器放大到全屏也不会出现「正文挤在中间、右侧一大片空」 */
.ap-layout{display:grid;grid-template-columns:230px minmax(0,38em) 310px;
  justify-content:space-between;gap:0;align-items:start;padding-bottom:20px}
/* 没有目录时（极少见的无标题文章）退化成两栏 */
.ap-layout--solo{grid-template-columns:minmax(0,38em) 310px}
.ap-layout--solo.ap-layout--norail{grid-template-columns:minmax(0,38em)}
.ap-side{position:sticky;top:calc(var(--nav-h) + 24px);max-height:calc(100vh - var(--nav-h) - 48px);
  overflow-y:auto;overscroll-behavior:contain}
.ap-toc__h{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--dp3);
  font-weight:600;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--bdl)}
.ap-toc ol{list-style:none;counter-reset:none}
.ap-toc li{margin:0}
.ap-toc a{display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:baseline;
  padding:7px 10px;margin-left:-10px;border-radius:8px;transition:.2s}
.ap-toc a:hover{background:rgba(77,97,214,.08)}
.ap-toc__n{font-size:11px;color:var(--dp3);font-variant-numeric:tabular-nums;line-height:1.6}
.ap-toc a:hover .ap-toc__n{color:var(--b1)}
.ap-toc__t{font-size:13.5px;color:var(--dp2);line-height:1.6}
.ap-toc a:hover .ap-toc__t{color:var(--b1)}
.ap-toc li.lv3 a{grid-template-columns:24px 1fr;padding-left:20px}
.ap-toc li.lv3 .ap-toc__t{font-size:12.5px;color:var(--dp3)}

/* 右侧栏 */
.ap-rail{position:sticky;top:calc(var(--nav-h) + 24px);max-height:calc(100vh - var(--nav-h) - 48px);
  overflow-y:auto;overscroll-behavior:contain;display:grid;gap:14px;align-content:start;min-width:0}
.ap-rail__box{background:var(--bmist);border:1px solid var(--bdl);
  border-radius:var(--r-lg);padding:20px 20px;transition:.3s var(--ease)}
.ap-rail__box:hover{border-color:var(--bdl-hi);background:#fff;
  box-shadow:0 10px 26px rgba(26,31,61,.07)}
.ap-rail__t{font-size:12px;letter-spacing:1.8px;text-transform:uppercase;color:var(--dp3);
  font-weight:600;margin-bottom:13px}
.ap-rail__org{background:linear-gradient(160deg,rgba(77,97,214,.1),var(--bmist) 66%);
  border-color:rgba(77,97,214,.2)}
.ap-rail__n{font-size:15.5px;font-weight:700;color:var(--dp);line-height:1.5;margin-bottom:9px}
.ap-rail__d{font-size:12.5px;color:var(--dp2);line-height:1.75;margin-bottom:15px}
.ap-rail__cta{display:block;text-align:center;padding:11px 14px;border-radius:var(--r-sm);
  font-size:13.5px;font-weight:600;color:#fff;
  background:linear-gradient(120deg,var(--b1),var(--violet));
  box-shadow:0 10px 24px -10px rgba(77,97,214,.8);transition:.26s}
.ap-rail__cta:hover{transform:translateY(-2px);box-shadow:0 16px 32px -10px rgba(77,97,214,.95)}

.ap-rail__cats{list-style:none;display:grid;gap:4px}
.ap-rail__cats a{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:8px 11px;margin:0 -11px;border-radius:9px;transition:.22s}
.ap-rail__cats a:hover{background:rgba(77,97,214,.08)}
.ap-rail__cats span{font-size:13.5px;color:var(--dp2)}
.ap-rail__cats a:hover span{color:var(--b1)}
.ap-rail__cats em{font-style:normal;font-size:11.5px;color:var(--dp3);
  font-variant-numeric:tabular-nums;min-width:22px;text-align:right}
.ap-rail__all{display:block;margin-top:12px;padding-top:12px;border-top:1px solid var(--bdl);
  font-size:13px;color:var(--b1);font-weight:600;transition:.2s}
.ap-rail__all:hover{color:var(--violet)}

.ap-rail__rel{list-style:none;display:grid;gap:11px}
.ap-rail__rel li{position:relative;padding-left:14px}
.ap-rail__rel li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;
  border-radius:99px;background:var(--b1);opacity:.55}
.ap-rail__rel a{font-size:13.5px;color:var(--dp2);line-height:1.6;transition:.2s}
.ap-rail__rel a:hover{color:var(--b1)}
/* 右栏只有两块了，给它一点纵向分量，别显得头重脚轻 */
.ap-rail{gap:18px}

.ap-main{min-width:0}

/* 正文排版：中文长文的核心 —— 窄栏 + 大行高 + 清晰层级 */
.ap-body{font-size:16.5px;line-height:1.95;color:var(--dp2);max-width:38em}
.ap-body>*+*{margin-top:1.5em}
.ap-body p{margin:0}
.ap-body>h2{font-size:25px;font-weight:750;line-height:1.45;color:var(--dp);letter-spacing:-.4px;
  margin:2.4em 0 .9em;padding-top:1.1em;border-top:1px solid var(--bdl);scroll-margin-top:calc(var(--nav-h) + 24px)}
.ap-body>h2:first-child{margin-top:0;padding-top:0;border-top:none}
.ap-body>h3{font-size:19px;font-weight:700;line-height:1.5;color:var(--dp);margin:2em 0 .7em;
  scroll-margin-top:calc(var(--nav-h) + 24px)}
.ap-body>h4{font-size:17px;font-weight:700;color:var(--dp);margin:1.7em 0 .6em}
/* 中文正文里西文/数字用略小字号，视觉更匀 */
.ap-body strong{color:var(--dp);font-weight:650}
.ap-body em{color:var(--dp);font-style:italic}
.ap-body a{color:var(--b1);text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:rgba(77,97,214,.35);transition:.2s}
.ap-body a:hover{color:var(--violet);text-decoration-color:var(--violet)}
.ap-body ul,.ap-body ol{margin:0;padding-left:1.4em}
.ap-body ul{list-style:disc}
.ap-body ol{list-style:decimal}
.ap-body li{margin:.5em 0;line-height:1.8}
.ap-body li::marker{color:var(--b1)}
.ap-body blockquote{border-left:3px solid var(--violet);padding:.2em 0 .2em 1.2em;margin:0;
  color:var(--dp2);font-style:normal}
.ap-body figure{margin:0}
.ap-body figure img{width:100%;height:auto;border-radius:var(--r-md);border:1px solid var(--bdl);margin:0}
.ap-body figcaption{font-size:13px;color:var(--dp3);line-height:1.7;margin-top:10px;text-align:center}
.ap-body table{width:100%;border-collapse:collapse;margin:0;font-size:14.5px;
  background:var(--bmist);border-radius:var(--r-md);overflow:hidden}
.ap-body th{background:rgba(77,97,214,.1);color:var(--dp);font-weight:650;padding:12px 15px;text-align:left}
.ap-body td{padding:12px 15px;border-top:1px solid var(--bdl);line-height:1.75}
.ap-body pre{background:#f2f4fb;border:1px solid var(--bdl);border-radius:var(--r-md);
  padding:18px;overflow-x:auto;font-size:13.5px;margin:0}
.ap-body code{background:rgba(77,97,214,.1);color:var(--b1);padding:2px 7px;
  border-radius:5px;font-size:.9em;font-family:ui-monospace,monospace}
.ap-body pre code{background:none;padding:0;color:var(--dp2)}
.ap-body hr{border:none;border-top:1px solid var(--bdl);margin:2.6em 0}
.ap-body .wp-block-image{margin:0}
.ap-body .wp-caption-text,.ap-body .wp-image-caption{font-size:13px;color:var(--dp3);margin-top:10px}

.ap-note{margin-top:44px;padding:18px 22px;border-radius:var(--r-md);
  background:var(--bmist);border:1px solid var(--bdl)}
.ap-note p{font-size:13px;color:var(--dp3);line-height:1.8;margin:0}

/* 「继续读」：放在中间正文列（宽度同正文 38em），不再放右栏 */
.ap-next{margin-top:44px}
.ap-next__t{font-size:13px;letter-spacing:2.2px;text-transform:uppercase;color:var(--dp3);
  font-weight:600;margin-bottom:16px}
.ap-next__list{list-style:none;display:grid;gap:12px}
.ap-next__list a{display:grid;grid-template-columns:88px minmax(0,1fr);gap:16px;align-items:center;
  padding:12px;border:1px solid var(--bdl);border-radius:var(--r-md);background:#fff;
  transition:.28s var(--ease)}
.ap-next__list a:hover{border-color:rgba(77,97,214,.34);box-shadow:0 10px 24px rgba(26,31,61,.07);
  transform:translateX(3px)}
.ap-next__thumb{display:block;overflow:hidden;border-radius:8px;background:var(--bmist);height:66px}
.ap-next__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ap-next__txt{min-width:0}
.ap-next__txt b{display:block;font-size:14.5px;font-weight:650;color:var(--dp);line-height:1.55;
  margin-bottom:5px}
.ap-next__list a:hover .ap-next__txt b{color:var(--b1)}
.ap-next__txt i{display:block;font-style:normal;font-size:13px;color:var(--dp3);line-height:1.7;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 上下篇：也在中间列，宽度与正文齐平 */
.ap-pager{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px}
/* 只有一篇时占满整行，否则右边会空半屏 */
.ap-pager--single{grid-template-columns:1fr}
.ap-pager a{padding:16px 20px;border-radius:var(--r-md);background:var(--bmist);
  border:1px solid var(--bdl);transition:.28s var(--ease)}
.ap-pager a:hover{border-color:rgba(77,97,214,.34);background:#fff;
  box-shadow:0 10px 24px rgba(26,31,61,.07)}
.ap-pager__r{text-align:right}
.ap-pager em{display:block;font-style:normal;font-size:12px;letter-spacing:1.4px;
  color:var(--dp3);margin-bottom:6px}
.ap-pager b{display:block;font-size:14.5px;font-weight:600;color:var(--dp2);line-height:1.6}
.ap-pager a:hover b{color:var(--b1)}

/* 收口 CTA */
.ap-end{margin-top:36px;padding:28px 30px;border-radius:var(--r-lg);
  background:linear-gradient(140deg,rgba(77,97,214,.12),rgba(139,92,246,.07) 70%);
  border:1px solid rgba(77,97,214,.24);text-align:center}
.ap-end__t{font-size:19px;font-weight:700;color:var(--dp);line-height:1.5;margin-bottom:8px}
.ap-end__x{font-size:13.5px;color:var(--dp2);line-height:1.7;margin-bottom:18px}
.ap-end__btn{display:inline-flex;align-items:center;justify-content:center;
  padding:12px 26px;border-radius:99px;font-size:14.5px;font-weight:600;color:#fff;
  background:linear-gradient(120deg,var(--b1),var(--violet));
  box-shadow:0 12px 26px -10px rgba(77,97,214,.85);transition:.24s}
.ap-end__btn:hover{transform:translateY(-2px);box-shadow:0 18px 32px -10px rgba(77,97,214,1)}

@media(max-width:1400px){
  /* 屏幕不够宽时三栏会挤在一起：收窄两侧栏并给回 gap */
  .ap-layout{grid-template-columns:200px minmax(0,38em) 280px;gap:28px;justify-content:stretch}
  .ap-layout--solo{grid-template-columns:minmax(0,38em) 280px;gap:28px}
}
@media(max-width:1180px){
  /* 再窄就把右栏挪到正文下方，别把正文压到读不下去 */
  .ap-head--fig{grid-template-columns:1fr;gap:24px}
  .ap-head__fig{order:-1}
  .ap-head__fig img{max-height:260px}
  .ap-layout,.ap-layout--solo{grid-template-columns:200px minmax(0,1fr);gap:28px;justify-content:stretch}
  .ap-rail{grid-column:1/-1;position:static;max-height:none;overflow:visible;margin-top:36px;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid;gap:14px}
}
@media(max-width:1080px){
  /* 目录从侧栏降级为顶部折叠块 */
  .ap-layout,.ap-layout--solo{grid-template-columns:minmax(0,1fr);gap:0}
  .ap-side{position:static;max-height:none;overflow:visible;margin-bottom:32px}
  .ap-toc{border:1px solid var(--bdl);border-radius:var(--r-md);padding:4px 18px 14px;
    background:var(--bmist)}
  .ap-toc__h{padding-top:14px;cursor:pointer;margin-bottom:0;position:relative;list-style:none}
  .ap-toc__h::after{content:"▾";position:absolute;right:0;top:12px;font-size:13px;transition:.2s}
  .ap-toc.is-folded .ap-toc__h::after{transform:rotate(-90deg)}
  .ap-toc.is-folded ol{display:none}
}
@media(max-width:640px){
  .ap{padding:0 18px}
  .ap-crumb{padding-top:calc(var(--nav-h) + 20px);font-size:12.5px}
  .ap-head{padding:22px 0 26px;margin-bottom:28px}
  .ap-head--fig{gap:18px}
  .ap-h1{font-size:clamp(22px,5.8vw,27px);letter-spacing:-.5px;max-width:none}
  .ap-standfirst{font-size:15.5px;padding-left:14px;max-width:none}
  .ap-body{font-size:16px;line-height:1.9}
  .ap-body>h2{font-size:21px;margin:2em 0 .8em;padding-top:.9em}
  .ap-body>h3{font-size:18px}
  .ap-rail{grid-template-columns:1fr}
  .ap-next__list a{grid-template-columns:64px minmax(0,1fr);gap:12px;padding:10px}
  .ap-next__thumb{height:56px}
  .ap-next__txt i{display:none}
  .ap-pager{grid-template-columns:1fr}
  .ap-pager__r{text-align:left}
  .ap-end{padding:22px 18px}
}

/* ══════════════════════════════════════════════════════════
   内容中心 ins-*（page-insights.php）
   浅色清爽风：白底、细边框、克制的层次。
   ★ 容器 1400 且真正铺满（--ins-wrap 用 width:100% + clamp 内边距）。
   ★ 白底上的次要文字同样要加深：--dp3 在白底只有 3.67:1，达不到 AA。
   ══════════════════════════════════════════════════════════ */
.ins-hub{background:#fff;color:var(--dp);--dp3:#5f6a8c}
/* 与全站容器对齐（--wrap 现为 min(1680px,94vw)），否则内容边缘和导航/页脚错位 */
.ins-wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 clamp(20px,3.2vw,48px)}

/* Hero：横向满幅、纵向占满整屏。
   ★ 意象刻意区别于首页那块深色渐变面板 —— 全站每页顶部都长成同一块黑底会很重复。
   内容中心是「知识库」，用同心圆 + 环绕节点：既在蓝紫体系内，又说清了「被逐层索引、被检索到」。 */
.ins-hero{position:relative;overflow:hidden;
  min-height:100vh;min-height:100svh;
  display:flex;align-items:center;
  padding:calc(var(--nav-h) + 48px) 0 76px;
  background:linear-gradient(168deg,#fbfcff 0%,#f2f5ff 46%,#e9eeff 100%);
  border-bottom:1px solid var(--bdl)}
/* 品牌色细线压在 hero 底边，作为「全屏区 → 白色内容区」的接缝。
   放底部而不是顶部：顶部被固定导航盖住，放那儿等于看不见。 */
.ins-hero::before{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:linear-gradient(90deg,var(--b1),var(--violet) 50%,var(--cyan))}
.ins-hero__in{position:relative;z-index:1}
.ins-hero__art{position:absolute;z-index:0;top:50%;right:-2%;
  transform:translateY(-50%);width:min(46vw,580px);aspect-ratio:1;pointer-events:none}
.ins-hero__art svg{width:100%;height:100%;display:block;
  animation:insOrbit 64s linear infinite}
/* 只有节点在转，环线保持不动 —— 全转会有点吵 */
.ins-hero__art .ins-nodes{transform-box:fill-box;transform-origin:center;
  animation:insSpin 48s linear infinite}
@keyframes insSpin{to{transform:rotate(360deg)}}
@keyframes insOrbit{0%,100%{opacity:.95}50%{opacity:.8}}
@media(prefers-reduced-motion:reduce){
  .ins-hero__art svg,.ins-hero__art .ins-nodes{animation:none}
}
.ins-hero h1{font-size:clamp(28px,4vw,46px);font-weight:800;line-height:1.24;
  letter-spacing:-1.1px;margin-bottom:18px;max-width:18em}
.ins-hero h1 .gr{background:linear-gradient(110deg,var(--b1),var(--violet) 55%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent}
/* 实测祖先链落在 rgb(245,247,255) 浅底 → 保持浅底 token。
   （一度误判为暗底改成 --od2，实测反而降到 1.39~1.5:1，已回退） */
.ins-hero .lead{color:var(--dp2);font-size:17px;max-width:46em;line-height:1.85}
.ins-hero .lead b{color:var(--dp)}
.ins-hero__stats{display:flex;flex-wrap:wrap;gap:0;margin-top:32px;max-width:fit-content;
  border:1px solid var(--bdl);border-radius:var(--r-md);background:#fff;overflow:hidden}
.ins-stat{padding:14px 28px;border-right:1px solid var(--bdl);text-align:center}
.ins-stat:last-child{border-right:none}
.ins-stat b{display:block;font-size:26px;font-weight:800;letter-spacing:-1px;line-height:1.15;
  font-variant-numeric:tabular-nums;color:var(--b1)}
.ins-stat span{font-size:12.5px;color:var(--dp3);letter-spacing:.4px}

/* 吸顶分类条 */
.ins-bar{position:sticky;top:var(--nav-h);z-index:60;transition:top .26s var(--ease);
  background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--bdl)}

/* ★ 导航向下滚动时会自动隐藏（.nav.hid 整体 translateY(-100%) 滑出视口）。
   吸顶元素若仍按 --nav-h 偏移，导航一走顶部就空出一条 74px 的带子，
   页面内容会从缝里穿过去。所以跟着导航状态一起改偏移。 */
body:has(.nav.hid) .ins-bar{top:0}
body:has(.nav.hid) .ap-side,
body:has(.nav.hid) .ap-rail{top:24px}
.ap-side,.ap-rail{transition:top .26s var(--ease)}
.ins-bar__in{display:flex;gap:9px;align-items:center;padding:13px 0;overflow-x:auto;scrollbar-width:none}
.ins-bar__in::-webkit-scrollbar{display:none}
.ins-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;
  padding:8px 16px;border-radius:99px;border:1px solid var(--bdl);background:#fff;
  font-size:14px;color:var(--dp2);white-space:nowrap;transition:.24s}
.ins-chip span{font-size:11.5px;color:var(--dp3);font-variant-numeric:tabular-nums}
.ins-chip:hover{border-color:var(--b1);color:var(--b1)}
.ins-chip.on{background:linear-gradient(120deg,var(--b1),var(--violet));border-color:transparent;
  color:#fff;font-weight:600}
.ins-chip.on span{color:rgba(255,255,255,.8)}
.ins-chip.is-empty{border-style:dashed;color:var(--dp3)}

.ins-body{padding:clamp(40px,4.5vw,64px) 0 72px}

/* H2 分区标题：给爬虫一个明确层级 */
.ins-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  margin-bottom:26px;padding-bottom:14px;border-bottom:1px solid var(--bdl)}
.ins-head__t{font-size:clamp(20px,2.4vw,27px);font-weight:800;color:var(--dp);letter-spacing:-.5px}
.ins-head__c{font-size:13px;color:var(--dp3);font-variant-numeric:tabular-nums}

/* 头条大卡 */
.ins-lead{display:grid;grid-template-columns:1.05fr .95fr;background:#fff;
  border:1px solid var(--bdl);border-radius:var(--r-lg);overflow:hidden;
  margin-bottom:22px;transition:.34s var(--ease)}
.ins-lead:hover{border-color:rgba(77,97,214,.34);box-shadow:0 16px 38px rgba(26,31,61,.09)}
.ins-lead__txt{padding:34px 36px;display:flex;flex-direction:column;justify-content:center}
.ins-lead__tag{font-size:12px;letter-spacing:1.4px;font-weight:600;color:var(--b1);
  margin-bottom:13px;text-transform:uppercase}
.ins-lead__t{font-size:clamp(19px,2vw,26px);font-weight:800;color:var(--dp);line-height:1.44;
  letter-spacing:-.4px;margin-bottom:13px}
.ins-lead__t a{transition:.2s}
.ins-lead__t a:hover{color:var(--b1)}
.ins-lead__x{font-size:15px;color:var(--dp2);line-height:1.82;margin-bottom:16px;max-width:40em}
.ins-lead__m{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--dp3);
  margin-bottom:20px;font-variant-numeric:tabular-nums}
.ins-lead__go{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;
  padding:10px 19px;border-radius:99px;font-size:14px;font-weight:600;color:#fff;
  background:linear-gradient(120deg,var(--b1),var(--violet));transition:.24s}
.ins-lead__go:hover{transform:translateY(-2px);box-shadow:0 12px 24px -10px rgba(77,97,214,.85)}
.ins-lead__img{display:block;overflow:hidden;background:var(--bmist);min-height:260px}
.ins-lead__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.ins-lead:hover .ins-lead__img img{transform:scale(1.04)}

/* 文章网格 */
.ins-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ins-card{background:#fff;border:1px solid var(--bdl);border-radius:var(--r-lg);
  overflow:hidden;display:flex;flex-direction:column;transition:.3s var(--ease)}
.ins-card:hover{border-color:rgba(77,97,214,.34);box-shadow:0 14px 32px rgba(26,31,61,.09)}
.ins-card__img{display:block;overflow:hidden;background:var(--bmist);aspect-ratio:16/9}
.ins-card__img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s var(--ease)}
.ins-card:hover .ins-card__img img{transform:scale(1.04)}
.ins-card__b{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
.ins-card__m{display:flex;flex-wrap:wrap;align-items:center;gap:9px;font-size:12px;
  color:var(--dp3);margin-bottom:10px}
.ins-card__m span{padding:3px 10px;border-radius:99px;background:rgba(77,97,214,.08);
  border:1px solid rgba(77,97,214,.22);color:var(--b1);font-size:11px}
.ins-card__m em{font-style:normal}
.ins-card__t{font-size:16.5px;font-weight:700;color:var(--dp);line-height:1.55;margin-bottom:9px}
.ins-card__t a{transition:.2s}
.ins-card__t a:hover{color:var(--b1)}
.ins-card__x{font-size:13.5px;color:var(--dp2);line-height:1.78;flex:1}

/* 分页 */
.ins-pager{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:40px}
.ins-pager a,.ins-pager span{display:inline-flex;align-items:center;justify-content:center;
  min-width:42px;height:42px;padding:0 16px;border-radius:10px;border:1px solid var(--bdl);
  background:#fff;color:var(--dp2);font-size:14px;transition:.24s}
.ins-pager a:hover{border-color:var(--b1);color:var(--b1)}
.ins-pager .current{background:linear-gradient(120deg,var(--b1),var(--violet));
  border-color:transparent;color:#fff;font-weight:600}
.ins-pager .dots{border-color:transparent;background:none;color:var(--dp3)}

.in-empty{text-align:center;padding:70px 0;font-size:15px;color:var(--dp2)}
.in-empty a{color:var(--b1);text-decoration:underline;text-underline-offset:3px}

/* 「全部内容索引」那块纯文本列表已随模板一并移除（与上方卡片重复、对爬虫也重复），
   对应样式一并清掉，避免留下没人引用的死 CSS。 */

@media(max-width:1280px){
  /* 窄下来后意象会压到 H1 上，先缩小并调淡 */
  .ins-hero__art{width:min(50vw,440px);right:-8%;opacity:.62}
}
@media(max-width:1180px){
  .ins-lead{grid-template-columns:1fr}
  .ins-lead__img{min-height:200px;order:-1}
  .ins-lead__txt{padding:26px}
  .ins-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:860px){
  /* 单列布局下意象不再「站旁边」，退成文字后面的一层浅底 */
  .ins-hero__art{width:min(94vw,430px);right:-26%;top:46%;opacity:.3}
}
@media(max-width:640px){
  .ins-hero{padding:calc(var(--nav-h) + 32px) 0 44px;min-height:100svh}
  .ins-hero .lead{font-size:15.5px}
  .ins-hero__stats{width:100%}
  .ins-stat{flex:1;padding:12px 8px}
  .ins-stat b{font-size:21px}
  .ins-lead__txt{padding:20px}
  .ins-grid{grid-template-columns:1fr}
  .ins-head{flex-direction:column;gap:6px}
  .ins-lead__t,.ins-lead__x{max-width:none}
}

@media(max-width:640px){
  .zy-page__head{padding:calc(var(--nav-h) + 40px) 0 32px}
  .zy-page__body{padding:32px 0 60px}
  .zy-article__content{font-size:16px}
  .zy-article__content>h2{font-size:21px}
  .zy-article__content>h3{font-size:18px}
}

/* ══════════════════════════════════════════════════════════
   内页组件库 sp-*（GEM·GEO / 产品架构 / 智能体 / AI 生态 共用）
   颜色全部走 home.css 的 :root token，深浅区块交替
   ══════════════════════════════════════════════════════════ */

/* Hero —— 所有内页统一占满整屏（原来只有部分页面是全屏，视觉不统一） */
.sp-hero{position:relative;overflow:hidden;
  min-height:100vh;min-height:100svh;
  display:flex;align-items:center;
  padding:calc(var(--nav-h) + 48px) 0 76px;
  background:radial-gradient(1100px 540px at 80% -12%,rgba(77,97,214,.32),transparent 62%),
             linear-gradient(160deg,var(--bdeeper),var(--bgDeep) 60%)}
.sp-hero>.wrap{position:relative;z-index:1;width:100%}
.sp-hero::after{content:"";position:absolute;left:50%;bottom:-300px;width:760px;height:760px;
  transform:translateX(-50%);background:radial-gradient(circle,rgba(34,211,238,.13),transparent 62%);
  pointer-events:none}
.sp-hero>.wrap{position:relative;z-index:1}
.sp-hero h1{font-size:clamp(28px,4.2vw,46px);font-weight:800;line-height:1.22;
  letter-spacing:-1.2px;margin-bottom:18px;max-width:22em}
.sp-hero h1 .gr{background:linear-gradient(110deg,#8aa0ff,#a78bfa 50%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.sp-hero .lead{color:var(--od2);font-size:16.5px;max-width:760px;line-height:1.85}

/* ★ 无意象的内页 hero：容器变宽到 1680 后，右侧会空出一大片。
   让文字与标签横向分居，把整宽用起来，而不是把标题拉得更长。 */
.sp-hero>.wrap:not(:has(.sp-hero__art)){
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
  gap:clamp(32px,5vw,88px);align-items:end}
.sp-hero>.wrap:not(:has(.sp-hero__art)) .eyebrow{grid-column:1;align-self:start;justify-self:start}
.sp-hero>.wrap:not(:has(.sp-hero__art)) h1{grid-column:1}
.sp-hero>.wrap:not(:has(.sp-hero__art)) .lead{grid-column:1}
.sp-hero>.wrap:not(:has(.sp-hero__art)) .sp-hero__meta{
  grid-column:2;grid-row:2;align-self:end;justify-self:end;margin-top:0;
  max-width:420px;display:flex;flex-wrap:wrap;gap:9px;justify-content:flex-end}
@media(max-width:1080px){
  .sp-hero>.wrap:not(:has(.sp-hero__art)){grid-template-columns:1fr;gap:20px}
  .sp-hero>.wrap:not(:has(.sp-hero__art)) .sp-hero__meta{
    grid-column:1;grid-row:auto;justify-self:start;max-width:none}
}
.sp-hero__meta{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}
.sp-hero__meta span{font-size:12.5px;color:var(--od2);padding:7px 15px;border-radius:99px;
  border:1px solid var(--bd);background:rgba(255,255,255,.05)}

/* 区块 */
.sp-sec{padding:clamp(60px,7.5vw,100px) 0}
.sp-sec--lt{background:var(--bmist);color:var(--dp)}
.sp-ctr{text-align:center;margin-bottom:42px}
.sp-ctr h2{font-size:clamp(24px,3.2vw,36px);font-weight:800;letter-spacing:-.8px;
  line-height:1.3;margin:16px 0 16px}
.sp-ctr h2 .gr{background:linear-gradient(110deg,var(--b1),var(--violet) 60%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent}
/* ★ 默认按暗底给色（.sp-ctr 自身透明，颜色由外层 .sp-sec 决定）。
   原来这里直接写 --dp2（浅底深字），于是暗底区块里的居中正文变成
   rgb(63,72,112) 压 rgb(16,23,64) ≈ 1.95:1 —— 跨 /about/ /distillation/
   /trust/ 等页的隐形文字。改成默认 --od2，浅底再单独覆盖。 */
.sp-ctr .lead{color:var(--od2);max-width:820px;margin-inline:auto;line-height:1.85}
.sp-ctr .lead b{color:#fff;font-weight:600}
.sp-sec--lt .sp-ctr .lead{color:var(--dp2)}
.sp-sec--lt .sp-ctr .lead b{color:var(--dp)}
.sp-ctr .eyebrow{color:var(--b1);border-color:rgba(77,97,214,.28);background:rgba(77,97,214,.07)}
.sp-ctr .eyebrow::before{box-shadow:0 0 8px currentColor}

/* 通用卡组 */
.sp-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.sp-card{background:rgba(255,255,255,.045);border:1px solid var(--bd);border-radius:var(--r-lg);
  padding:26px 24px;position:relative;overflow:hidden;transition:.34s var(--ease)}
.sp-card:hover{transform:translateY(-5px);border-color:var(--bd-hi);
  box-shadow:0 20px 46px rgba(0,0,0,.34)}
.sp-sec--lt .sp-card{background:#fff;border-color:var(--bdl);box-shadow:0 8px 24px rgba(26,31,61,.05)}
.sp-sec--lt .sp-card:hover{border-color:rgba(77,97,214,.34);box-shadow:0 18px 40px rgba(26,31,61,.12)}
.sp-card__n{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
  border-radius:11px;margin-bottom:14px;font-size:15px;font-weight:800;letter-spacing:-.4px;
  color:#fff;background:linear-gradient(135deg,var(--b1),var(--violet));
  box-shadow:0 8px 20px -6px rgba(77,97,214,.6);font-variant-numeric:tabular-nums}
.sp-card__tag{display:inline-block;font-size:11.5px;letter-spacing:1.4px;font-weight:600;color:#fff;
  padding:5px 12px;border-radius:99px;margin-bottom:13px;
  background:linear-gradient(120deg,var(--b1),var(--violet))}
.sp-card__tag.cy{background:linear-gradient(120deg,var(--violet),var(--cyan))}
.sp-sec--lt .sp-card__tag{background:linear-gradient(120deg,var(--b1),var(--violet))}
.sp-card__tag.cy{background:linear-gradient(120deg,var(--violet),var(--cyan))}
.sp-card h3{font-size:17px;font-weight:700;color:#fff;line-height:1.45;margin-bottom:9px}
.sp-sec--lt .sp-card h3{color:var(--dp)}
.sp-card p{font-size:13.5px;color:var(--od2);line-height:1.78}
.sp-sec--lt .sp-card p{color:var(--dp2)}
.sp-card ul{list-style:none;display:grid;gap:7px;margin-top:12px}
.sp-card li{position:relative;padding-left:18px;font-size:13px;color:var(--od2);line-height:1.7}
.sp-card li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;
  border-radius:99px;background:var(--cyan)}
.sp-sec--lt .sp-card li{color:var(--dp2)}
.sp-sec--lt .sp-card li::before{background:var(--b1)}

/* 堆叠层（技术架构）*/
.sp-layers{display:grid;gap:14px}
.sp-layer{display:grid;grid-template-columns:200px 1fr;gap:28px;align-items:center;
  background:rgba(255,255,255,.045);border:1px solid var(--bd);border-radius:var(--r-lg);
  padding:24px 26px;position:relative;transition:.34s var(--ease)}
.sp-layer:hover{background:rgba(255,255,255,.075);border-color:var(--bd-hi);transform:translateX(5px)}
.sp-sec--lt .sp-layer{background:#fff;border-color:var(--bdl);box-shadow:0 8px 24px rgba(26,31,61,.05)}
.sp-sec--lt .sp-layer:hover{border-color:rgba(77,97,214,.34);box-shadow:0 16px 36px rgba(26,31,61,.1)}
.sp-layer__k{display:flex;flex-direction:column;gap:7px}
.sp-layer__k b{font-size:17px;font-weight:700;color:#fff;line-height:1.4}
.sp-sec--lt .sp-layer__k b{color:var(--dp)}
.sp-layer__k em{font-style:normal;font-size:11px;letter-spacing:1.6px;text-transform:uppercase;
  color:var(--cyan);font-weight:600}
.sp-sec--lt .sp-layer__k em{color:var(--b1)}
.sp-layer__v{font-size:14px;color:var(--od2);line-height:1.8}
.sp-sec--lt .sp-layer__v{color:var(--dp2)}
.sp-layer__v b{color:#fff;font-weight:600}
.sp-sec--lt .sp-layer__v b{color:var(--dp)}

/* 智能体矩阵（按阶段分组）*/
.sp-matrix{display:grid;gap:16px}
.sp-group{background:rgba(255,255,255,.045);border:1px solid var(--bd);border-radius:var(--r-lg);
  padding:22px 24px;transition:.32s var(--ease)}
.sp-group:hover{background:rgba(255,255,255,.075);border-color:var(--bd-hi)}
.sp-sec--lt .sp-group{background:#fff;border-color:var(--bdl);box-shadow:0 6px 20px rgba(26,31,61,.05)}
.sp-sec--lt .sp-group:hover{border-color:rgba(77,97,214,.3)}
.sp-group__h{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.sp-group__h b{font-size:16px;font-weight:700;color:#fff}
.sp-sec--lt .sp-group__h b{color:var(--dp)}
.sp-group__h em{font-style:normal;font-size:11.5px;letter-spacing:1.4px;color:var(--cyan);font-weight:600}
.sp-sec--lt .sp-group__h em{color:var(--b1)}
.sp-group__h span{font-size:12.5px;color:var(--od3);margin-left:auto}
.sp-sec--lt .sp-group__h span{color:var(--dp3)}
.sp-items{display:flex;flex-wrap:wrap;gap:9px}
.sp-items span{font-size:13.5px;color:var(--od2);padding:8px 15px;border-radius:10px;
  border:1px solid var(--bd);background:rgba(255,255,255,.04);transition:.26s}
.sp-items span:hover{border-color:var(--cyan);color:#fff;transform:translateY(-2px)}
.sp-sec--lt .sp-items span{color:var(--dp2);border-color:var(--bdl);background:var(--bmist)}
.sp-sec--lt .sp-items span:hover{border-color:var(--b1);color:var(--b1)}
.sp-items span.key{border-color:rgba(34,211,238,.4);color:var(--cyan);
  background:rgba(34,211,238,.08)}
.sp-sec--lt .sp-items span.key{border-color:rgba(77,97,214,.4);color:var(--b1);
  background:rgba(77,97,214,.07)}

/* 编号步骤条 */
.sp-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;
  border:1px solid var(--bd);border-radius:var(--r-xl);overflow:hidden;background:rgba(255,255,255,.045)}
.sp-step{padding:24px 20px;border-right:1px solid var(--bd);position:relative;transition:.32s var(--ease)}
.sp-step:last-child{border-right:none}
.sp-step:hover{background:rgba(255,255,255,.08)}
.sp-sec--lt .sp-step{border-right-color:var(--bdl)}
.sp-sec--lt .sp-step:hover{background:var(--card-lh)}
.sp-step__n{display:block;font-size:26px;font-weight:800;letter-spacing:-1.2px;line-height:1;
  color:var(--cyan);opacity:.6;margin-bottom:12px;font-variant-numeric:tabular-nums}
.sp-sec--lt .sp-step__n{color:var(--b1)}
.sp-step b{display:block;font-size:15.5px;font-weight:700;color:#fff;margin-bottom:7px;line-height:1.45}
.sp-sec--lt .sp-step b{color:var(--dp)}
.sp-step i{font-style:normal;font-size:13px;color:var(--od2);line-height:1.7;display:block}
.sp-sec--lt .sp-step i{color:var(--dp2)}

/* 痛点卡 */
.sp-pain{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.sp-painc{background:rgba(255,255,255,.045);border:1px solid var(--bd);border-radius:var(--r-lg);
  padding:26px 24px;position:relative;overflow:hidden;transition:.34s var(--ease);
  display:flex;flex-direction:column}
.sp-painc::before{content:"";position:absolute;left:0;top:0;right:0;height:2px;
  background:linear-gradient(90deg,#f87171,var(--violet))}
.sp-painc:hover{transform:translateY(-5px);border-color:var(--bd-hi);
  box-shadow:0 20px 46px rgba(0,0,0,.34)}
.sp-painc h3{font-size:17px;font-weight:700;color:#fff;margin-bottom:14px;line-height:1.45}
/* ★ 三张卡文案长短不一，用 flex:1 把「对应解法」压到同一基线，
   否则分隔虚线和解法行会随文案长短错开，看起来像没对齐 */
.sp-painc .sym{flex:1;display:block;font-size:13.5px;color:var(--od2);line-height:1.75;
  margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed var(--bd)}
.sp-painc .fix{display:block;font-size:13.5px;color:var(--od2);line-height:1.75}
.sp-painc .fix b{color:var(--cyan);font-weight:600}
.sp-painc .sym b{color:#fca5a5;font-weight:600}

/* 双栏对照 */
.sp-duo{display:grid;grid-template-columns:1fr 64px 1fr;gap:18px;align-items:stretch}
.sp-duoc{border:1px solid var(--bd);border-radius:var(--r-xl);padding:30px 28px;
  background:rgba(255,255,255,.045);position:relative;overflow:hidden;transition:.34s var(--ease)}
.sp-duoc:hover{transform:translateY(-5px);border-color:var(--bd-hi);box-shadow:0 20px 46px rgba(0,0,0,.34)}
.sp-duoc.hl{border-color:rgba(34,211,238,.34);background:linear-gradient(160deg,rgba(34,211,238,.08),transparent 58%)}
.sp-duoc__b{display:inline-block;font-size:12px;letter-spacing:1.8px;font-weight:700;color:#fff;
  padding:6px 14px;border-radius:99px;margin-bottom:14px}
.sp-duoc__b.g{background:linear-gradient(120deg,var(--b1),var(--violet))}
.sp-duoc__b.c{background:linear-gradient(120deg,var(--violet),var(--cyan))}
.sp-duoc h3{font-size:21px;font-weight:750;color:#fff;margin-bottom:6px}
.sp-duoc .en{font-size:12px;letter-spacing:1.2px;color:var(--od3);margin-bottom:14px;display:block}
.sp-duoc p{font-size:14px;color:var(--od2);line-height:1.8;margin-bottom:14px}
.sp-duoc ul{list-style:none;display:grid;gap:9px}
.sp-duoc li{position:relative;padding-left:22px;font-size:13.5px;color:var(--od2);line-height:1.7}
.sp-duoc li::before{content:"✓";position:absolute;left:0;top:0;color:var(--cyan);font-weight:700;font-size:12px}
.sp-duox{display:grid;place-items:center;font-size:19px;font-weight:800;color:var(--od3);letter-spacing:1px}

/* 平台标签墙 */
.sp-pills{display:flex;flex-wrap:wrap;gap:9px}
.sp-pill{font-size:13.5px;color:var(--od2);padding:9px 17px;border-radius:99px;
  border:1px solid var(--bd);background:rgba(255,255,255,.04);transition:.26s}
.sp-pill:hover{border-color:var(--cyan);color:#fff;transform:translateY(-2px)}
.sp-sec--lt .sp-pill{color:var(--dp2);border-color:var(--bdl);background:#fff}
.sp-sec--lt .sp-pill:hover{border-color:var(--b1);color:var(--b1)}
.sp-pill.dom{font-weight:600;color:var(--od);border-color:rgba(34,211,238,.28)}
.sp-sec--lt .sp-pill.dom{color:var(--b1);border-color:rgba(77,97,214,.28);background:rgba(77,97,214,.06)}

/* 引述 / 高亮 */
.sp-quote{background:linear-gradient(150deg,rgba(77,97,214,.14),transparent 62%);
  border:1px solid var(--bd);border-left:3px solid var(--cyan);border-radius:var(--r-lg);
  padding:28px 30px;max-width:860px;margin-inline:auto}
.sp-quote p{font-size:16px;color:#fff;line-height:1.85;margin-bottom:12px}
.sp-quote cite{font-style:normal;font-size:13px;color:var(--od3)}

/* 结尾 CTA 条 */
.sp-cta{background:linear-gradient(130deg,#1a1f3d,#3a4280 55%,#4d61d6);
  border-radius:var(--r-xl);padding:clamp(34px,5vw,52px);text-align:center;position:relative;
  overflow:hidden;box-shadow:0 26px 64px -18px rgba(26,31,61,.5)}
.sp-cta h2{font-size:clamp(22px,2.8vw,30px);font-weight:800;letter-spacing:-.6px;line-height:1.35;
  color:#fff;margin-bottom:14px}
.sp-cta p{font-size:15px;color:rgba(255,255,255,.82);max-width:560px;margin:0 auto 26px;line-height:1.8}
.sp-cta__b{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

@media(max-width:1080px){
  .sp-cards,.sp-pain{grid-template-columns:1fr 1fr}
  .sp-layer{grid-template-columns:1fr;gap:12px}
  .sp-steps{grid-template-columns:1fr 1fr}
  .sp-step:nth-child(2n){border-right:none}
  .sp-step:nth-child(-n+4){border-bottom:1px solid var(--bd)}
  .sp-duo{grid-template-columns:1fr;gap:12px}
  .sp-duox{padding:2px 0}
}
@media(max-width:640px){
  .sp-hero{padding:calc(var(--nav-h) + 34px) 0 44px}
  .sp-cards,.sp-pain,.sp-steps{grid-template-columns:1fr}
  .sp-step{border-right:none;border-bottom:1px solid var(--bd)}
  .sp-step:last-child{border-bottom:none}
  .sp-card,.sp-painc,.sp-layer,.sp-group{padding:22px 18px}
  .sp-cta{padding:30px 20px;border-radius:22px}
  .sp-cta__b{flex-direction:column}
  .sp-cta__b .btn{width:100%;justify-content:center}
}


/* ══════════════════════════════════════════════════════════
   关于我们页（page-about.php）
   内容全部取自知识库 1.3 品牌故事 / 1.4 初心 / 2 客户画像 /
   3.9.1 权威认可 / 8 OPC 模式。
   意象是「双流汇聚」：方块流（结构化的专家经验）+ 圆点流（算法与数据）
   汇聚成一条主干向前走，对应"营销老兵 × AI 算法专家"。
   ══════════════════════════════════════════════════════════ */

/* Hero 右侧意象。
   ⚠ 这条是「art 写在 .wrap 外」的旧定位方案（绝对定位贴右边），
     只对没有 sp-hero--u 标记的老页面还有效。
     8 个 --art 页面已把 art 移进 .wrap 走网格分栏，
     由下面「Hero 收尾：有插画页（art）插画归位成第 2 列」解除绝对定位。 */
.sp-hero__art{position:absolute;z-index:0;top:50%;right:clamp(0px,2vw,48px);transform:translateY(-50%);
  width:min(38vw,620px);pointer-events:none}
.sp-hero__art svg{width:100%;height:auto;display:block;
  animation:abFade 9s ease-in-out infinite}
@keyframes abFade{0%,100%{opacity:.9}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.sp-hero__art svg{animation:none}}

/* 「一句话记住我们」 */
.ab-quote{text-align:center;max-width:820px}
.ab-quote .eyebrow{margin-bottom:18px}
.ab-quote p{font-size:clamp(23px,3.4vw,38px);font-weight:800;color:#fff;
  letter-spacing:-.8px;line-height:1.34;margin-bottom:16px}
.ab-quote p .gr{background:linear-gradient(110deg,#8aa0ff,#a78bfa 50%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.ab-quote__x{display:block;font-size:14px;color:var(--od2);line-height:1.7}

/* 区块中段的居中收口（浅底区要换深色） */
.ab-mid{margin:54px 0 0}
.sp-sec--lt .ab-mid .lead{color:var(--dp2)}

/* 我们相信的事：5 条
   ★ 不用 repeat(5,1fr)——1240px 下每列只有 236px，塞不下。
   ★ 也不能让它排成 4+1。所以用 6 栏轨道：前 3 张各占 2 栏，
     后 2 张各占 3 栏 → 3 + 2 的整齐两行，没有孤儿卡。 */
.sp-beliefs{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.sp-belief{grid-column:span 2;background:#fff;border:1px solid var(--bdl);
  border-radius:var(--r-lg);padding:26px 24px;position:relative;overflow:hidden;
  transition:.34s var(--ease)}
.sp-belief:nth-child(n+4){grid-column:span 3}
.sp-belief:hover{transform:translateY(-5px);border-color:rgba(77,97,214,.34);
  box-shadow:0 16px 38px rgba(26,31,61,.09)}
.sp-belief::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--b1),var(--violet) 60%,var(--cyan));
  opacity:0;transition:.3s}
.sp-belief:hover::before{opacity:1}
.sp-belief__n{font-size:13px;font-weight:700;color:var(--b1);letter-spacing:1.4px;
  font-variant-numeric:tabular-nums;display:block;margin-bottom:12px}
.sp-belief h3{font-size:17.5px;font-weight:700;color:var(--dp);line-height:1.5;
  margin-bottom:10px}
.sp-belief p{font-size:13.5px;color:var(--dp2);line-height:1.85}

/* 我们要去哪里：三步 = 三列，正好 */
.sp-road{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.sp-roadc{position:relative;background:rgba(255,255,255,.045);border:1px solid var(--bd);
  border-radius:var(--r-lg);padding:28px 26px;overflow:hidden;transition:.34s var(--ease)}
.sp-roadc:hover{transform:translateY(-5px);border-color:var(--bd-hi);
  background:rgba(255,255,255,.075)}
.sp-roadc__t{display:inline-block;font-size:12px;font-weight:700;letter-spacing:1.2px;
  padding:6px 14px;border-radius:99px;margin-bottom:16px;
  border:1px solid var(--bd);color:var(--od2);background:rgba(255,255,255,.05)}
.sp-roadc.is-done .sp-roadc__t{background:rgba(52,211,153,.14);border-color:rgba(52,211,153,.4);color:#34d399}
.sp-roadc.is-now .sp-roadc__t{background:linear-gradient(120deg,var(--b1),var(--violet));
  border-color:transparent;color:#fff}
.sp-roadc.is-next .sp-roadc__t{border-style:dashed;color:var(--od3)}
.sp-roadc h3{font-size:19px;font-weight:700;color:#fff;line-height:1.45;margin-bottom:11px}
.sp-roadc p{font-size:13.5px;color:var(--od2);line-height:1.85}

/* OPC：20 + 30 */
.sp-opc{display:grid;grid-template-columns:1fr auto 1fr;gap:26px;align-items:center}
.sp-opcc{position:relative;background:#fff;border:1px solid var(--bdl);
  border-radius:var(--r-lg);padding:34px 32px;text-align:center;
  box-shadow:0 10px 30px rgba(26,31,61,.06);overflow:hidden;transition:.34s var(--ease)}
.sp-opcc:hover{transform:translateY(-5px);box-shadow:0 20px 46px rgba(26,31,61,.11)}
.sp-opcc__n{display:block;font-size:clamp(52px,7vw,76px);font-weight:800;
  line-height:1;letter-spacing:-3px;margin-bottom:6px;
  background:linear-gradient(140deg,var(--b1),var(--violet) 62%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-variant-numeric:tabular-nums}
.sp-opcc b{display:block;font-size:16px;font-weight:700;color:var(--dp);margin-bottom:12px}
.sp-opcc p{font-size:13.5px;color:var(--dp2);line-height:1.85;max-width:38em;
  margin-inline:auto;text-align:left}
.sp-opcc.alt::before{content:"";position:absolute;inset:0;border-radius:inherit;
  padding:1px;pointer-events:none;
  background:linear-gradient(135deg,transparent 40%,rgba(34,211,238,.5),transparent 62%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude}
.sp-opcx{font-size:34px;font-weight:300;color:var(--b1);opacity:.5;line-height:1;
  font-style:italic}

/* 权威认可 */
.sp-award{display:flex;align-items:center;gap:34px;padding:32px 38px;
  border-radius:var(--r-xl);border:1px solid var(--bd);
  background:linear-gradient(140deg,rgba(77,97,214,.14),rgba(34,211,238,.05) 62%,transparent)}
.sp-award__badge{flex:0 0 auto;width:116px;height:116px;border-radius:26px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:linear-gradient(140deg,var(--b1),var(--violet) 65%,var(--cyan));
  box-shadow:0 18px 44px -14px rgba(77,97,214,.9)}
.sp-award__badge span{font-size:11px;letter-spacing:2.4px;color:rgba(255,255,255,.86);font-weight:700}
.sp-award__badge b{font-size:38px;font-weight:800;color:#fff;line-height:1.1;
  letter-spacing:-1.5px;font-variant-numeric:tabular-nums}
.sp-award__txt h2{font-size:clamp(20px,2.5vw,27px);font-weight:800;color:#fff;
  line-height:1.4;margin:10px 0 10px}
.sp-award__txt p{font-size:14.5px;color:var(--od2);line-height:1.8}
.sp-award .eyebrow{color:var(--cyan);border-color:rgba(34,211,238,.3);background:rgba(34,211,238,.09)}
.sp-award .eyebrow::before{box-shadow:0 0 8px currentColor}

/* 4 张卡用 2×2，不能沿用 3 列（会 3+1 孤儿） */
.sp-cards--2{grid-template-columns:repeat(2,1fr)}

@media(max-width:1280px){
  .sp-hero__art{width:min(48vw,430px);right:-10%;opacity:.55}
}
@media(max-width:1080px){
  .sp-hero__art{width:min(80vw,400px);right:-22%;top:62%;opacity:.3}
  .sp-road{grid-template-columns:1fr}
  .sp-beliefs{grid-template-columns:repeat(2,1fr)}
  .sp-belief,.sp-belief:nth-child(n+4){grid-column:span 1}
  .sp-award{flex-direction:column;text-align:center;gap:24px;padding:32px 26px}
  .sp-award__txt{text-align:center}
  .sp-award__txt p{margin-inline:auto}
}
@media(max-width:760px){
  .sp-opc{grid-template-columns:1fr;gap:14px}
  .sp-opcx{justify-self:center}
  .sp-opcc p{text-align:center}
}
@media(max-width:640px){
  .sp-cards--2{grid-template-columns:1fr}
  .sp-beliefs{grid-template-columns:1fr}
  .sp-award__badge{width:96px;height:96px;border-radius:22px}
  .sp-award__badge b{font-size:31px}
}


/* ══════════════════════════════════════════════════════════
   客户案例页（page-cases.php）
   内容取自知识库 5 案例库 / 6 客户评价 / 7 适合谁·不适合谁。
   意象是「上升刻度柱 + AI 推荐阈值虚线」——
   案例页的主角是数据，意象直接表达"从看不见到被推荐"的位移。
   ══════════════════════════════════════════════════════════ */

/* 关键成效数据带：4 条 = 4 列 */
.sp-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.sp-metric{padding:26px 24px;border-radius:var(--r-lg);text-align:center;
  border:1px solid var(--bd);background:rgba(255,255,255,.045);transition:.32s var(--ease)}
.sp-metric:hover{transform:translateY(-4px);border-color:var(--bd-hi);background:rgba(255,255,255,.075)}
.sp-metric b{display:flex;align-items:baseline;justify-content:center;gap:3px;
  font-size:clamp(34px,4vw,44px);font-weight:800;letter-spacing:-2px;line-height:1.1;
  font-variant-numeric:tabular-nums}
.sp-metric b span{background:linear-gradient(120deg,#8aa0ff,#a78bfa 55%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.sp-metric b i{font-style:normal;font-size:17px;font-weight:700;color:var(--cyan);
  letter-spacing:0;margin-left:2px}
.sp-metric__l{display:block;font-size:14.5px;font-weight:600;color:#fff;margin:10px 0 5px}
.sp-metric__s{display:block;font-size:12px;color:var(--od3);line-height:1.6}

/* 单个案例（浅底区） */
.cs-case{background:#fff;border:1px solid var(--bdl);border-radius:var(--r-xl);
  overflow:hidden;box-shadow:0 12px 34px rgba(26,31,61,.06)}
.cs-case__hd{padding:30px 34px 24px;border-bottom:1px solid var(--bdl);
  background:linear-gradient(140deg,rgba(77,97,214,.07),transparent 58%)}
.cs-case__n{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;
  font-size:15px;font-weight:800;color:#fff;letter-spacing:.5px;
  background:linear-gradient(135deg,var(--b1),var(--violet));margin-bottom:14px}
.cs-case__tag{display:inline-block;font-size:12px;letter-spacing:.6px;color:var(--dp3);
  padding:5px 13px;border-radius:99px;border:1px solid var(--bdl);background:#fff;margin-bottom:12px}
.cs-case__hd h2{font-size:clamp(21px,2.6vw,30px);font-weight:800;color:var(--dp);
  line-height:1.35;letter-spacing:-.6px}
.cs-case__hd h2 .gr{background:linear-gradient(110deg,var(--b1),var(--violet) 60%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.cs-case__bd{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:28px 34px}
.cs-case__col{padding:0 26px;border-right:1px solid var(--bdl)}
.cs-case__col:first-child{padding-left:0}
.cs-case__col:last-child{border-right:none;padding-right:0}
.cs-case__kt{display:block;font-size:11.5px;font-weight:700;letter-spacing:1.8px;
  color:var(--b1);margin-bottom:11px}
.cs-case__col p{font-size:14px;color:var(--dp2);line-height:1.88}
.cs-case__ft{padding:22px 34px 26px;border-top:1px solid var(--bdl);background:var(--bmist)}
.cs-case__chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.cs-chipline{display:inline-flex;align-items:baseline;gap:8px;padding:9px 17px;
  border-radius:12px;background:#fff;border:1px solid var(--bdl)}
.cs-chipline b{font-size:17px;font-weight:800;color:var(--b1);letter-spacing:-.4px;
  font-variant-numeric:tabular-nums}
.cs-chipline i{font-style:normal;font-size:12.5px;color:var(--dp3)}
.cs-case__echo{font-size:14px;color:var(--dp2);line-height:1.8;padding-left:16px;
  border-left:2px solid var(--violet)}
/* 同一分组内两则案例上下堆叠时的间距 */
.cs-case+.cs-case{margin-top:22px}

/* 分组标题：MarTech 客户 / GEO 客户 —— 案例按知识库 §5 分两组，用它做视觉分界 */
.cs-group{display:flex;align-items:baseline;gap:14px;margin-bottom:26px}
.cs-group b{font-size:clamp(20px,2.4vw,26px);font-weight:800;color:var(--dp);letter-spacing:-.5px;white-space:nowrap}
.cs-group i{font-style:normal;font-size:13px;color:var(--dp3);white-space:nowrap}
.cs-group::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--bdl),transparent)}

/* 客户评价（深底区） */
.cs-voice{max-width:900px;margin-inline:auto;text-align:center;
  padding:44px 40px;border-radius:var(--r-xl);border:1px solid var(--bd);
  background:linear-gradient(150deg,rgba(77,97,214,.16),transparent 62%)}
.cs-voice__q{font-size:clamp(20px,2.7vw,30px);font-weight:700;color:#fff;
  line-height:1.5;letter-spacing:-.5px;margin:0 0 20px}
.cs-voice__by{display:flex;align-items:center;justify-content:center;gap:12px;
  font-size:13.5px;color:var(--od2);margin-bottom:30px}
.cs-voice__who{padding:5px 13px;border-radius:99px;background:rgba(255,255,255,.08);
  border:1px solid var(--bd);color:#fff;font-weight:600}
.cs-voice__rows{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}
.cs-voice__row{padding:20px 14px;border-radius:var(--r-md);
  border:1px solid var(--bd);background:rgba(255,255,255,.045)}
.cs-voice__row b{display:block;font-size:clamp(26px,3.2vw,34px);font-weight:800;
  letter-spacing:-1.4px;line-height:1.15;color:var(--cyan);font-variant-numeric:tabular-nums}
.cs-voice__row span{display:block;font-size:12.5px;color:var(--od2);margin-top:6px}
.cs-voice__note{font-size:13px;color:var(--od3);line-height:1.8;text-align:left}
/* .cs-voice__org 此前没有定义，职衔后面的机构名一直是继承正文字号 */
.cs-voice__org{color:var(--od3)}

/* 评价分组小标：MarTech 客户 / GEO 客户 */
.cs-grpcap{margin:0 0 20px}
.cs-grpcap b{display:inline-block;font-size:12px;font-weight:700;letter-spacing:1.6px;
  padding:6px 14px;border-radius:99px;background:rgba(34,211,238,.12);color:var(--cyan);
  border:1px solid rgba(34,211,238,.3)}
.cs-grpcap--alt{margin-top:38px}
.cs-grpcap--alt b{background:rgba(139,92,246,.14);color:#c4b5fd;border-color:rgba(139,92,246,.38)}

/* MarTech 客户评价：两条并列卡片 */
.cs-voice2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.cs-voicec{padding:32px 30px;border-radius:var(--r-xl);border:1px solid var(--bd);
  background:linear-gradient(150deg,rgba(77,97,214,.16),transparent 62%)}
.cs-voicec__q{font-size:17px;color:#fff;line-height:1.85;margin:0 0 18px}
.cs-voicec__by{display:flex;align-items:center;gap:12px;font-size:13.5px}
.cs-voicec__who{padding:5px 13px;border-radius:99px;background:rgba(255,255,255,.08);
  border:1px solid var(--bd);color:#fff;font-weight:600}
.cs-voicec__org{color:var(--od3)}
@media(max-width:900px){.cs-voice2{grid-template-columns:1fr}}

/* 适合谁 / 不适合谁（浅底区） */
.cs-fit{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.cs-fity,.cs-fitn{border-radius:var(--r-lg);padding:28px 30px;border:1px solid var(--bdl);
  background:#fff;box-shadow:0 10px 30px rgba(26,31,61,.05)}
.cs-fity{border-top:3px solid var(--b1)}
.cs-fitn{border-top:3px solid var(--bdl-hi)}
.cs-fity__t,.cs-fitn__t{display:inline-block;font-size:12px;font-weight:700;letter-spacing:1.6px;
  padding:6px 14px;border-radius:99px;margin-bottom:20px}
.cs-fity__t{background:rgba(77,97,214,.1);color:var(--b1)}
.cs-fitn__t{background:rgba(90,100,130,.1);color:var(--dp3)}
.cs-fity ul,.cs-fitn ul{list-style:none;display:grid;gap:14px}
.cs-fity li,.cs-fitn li{padding-left:20px;position:relative}
.cs-fity li::before,.cs-fitn li::before{content:"";position:absolute;left:0;top:8px;
  width:7px;height:7px;border-radius:50%;background:var(--b1)}
.cs-fitn li::before{background:var(--bdl-hi)}
.cs-fity b,.cs-fitn b{display:block;font-size:14.5px;font-weight:700;color:var(--dp);
  line-height:1.55;margin-bottom:4px}
.cs-fitn b{color:var(--dp2)}
.cs-fity i,.cs-fitn i{font-style:normal;font-size:13px;color:var(--dp2);line-height:1.75;display:block}
.cs-fity li.cs-fit__odd::before{background:var(--cyan)}
.cs-fity li.cs-fit__odd b{color:var(--dp3)}

@media(max-width:1080px){
  .sp-metrics{grid-template-columns:repeat(2,1fr)}
  .cs-case__bd{grid-template-columns:1fr;gap:22px;padding:24px 26px}
  .cs-case__col,.cs-case__col:first-child,.cs-case__col:last-child{
    padding:0 0 22px;border-right:none;border-bottom:1px solid var(--bdl)}
  .cs-case__col:last-child{padding-bottom:0;border-bottom:none}
  .cs-fit{grid-template-columns:1fr}
}
@media(max-width:640px){
  .sp-metrics{grid-template-columns:1fr}
  .cs-case__hd,.cs-case__bd,.cs-case__ft{padding-left:20px;padding-right:20px}
  .cs-voice{padding:30px 22px}
  .cs-voice__rows{grid-template-columns:1fr}
  .cs-fity,.cs-fitn{padding:24px 22px}
}

/* 平台技术架构六层（知识库 3.6.1，page-architecture.php）
   每层两段：先一句能力清单（strong），再一句它解决什么业务问题（span）。 */
.sp-layer__v strong{display:block;font-size:14.5px;font-weight:650;color:#fff;
  line-height:1.7;margin-bottom:6px}
.sp-sec--lt .sp-layer__v strong{color:var(--dp)}
.sp-layer__v span{display:block;font-size:13.5px;line-height:1.8}
.sp-split{height:1px;margin:40px 0 28px;
  background:linear-gradient(90deg,transparent,var(--bdl-hi),transparent)}

/* ══════════════════════════════════════════════════════════
   蒸馏与准入页（page-distillation.php）
   内容取自知识库 3.6.3 蒸馏方法 / 3.8.2 三组追踪指标 /
   3.8.3 上岗门槛 / 3.7.5 五个反常识 / 3.8.5 客户共建。
   意象是「六道工序的环形流转」——蒸馏不是线性工序，
   而是专家→语料→Agent→回流→季度更新的闭环。
   ══════════════════════════════════════════════════════════ */

/* 蒸馏六步：竖排变体。
   原 .sp-steps 是 5 列横排，6 步会排成 5+1 留孤儿，故用 3 列两行。 */
.sp-steps--v{grid-template-columns:repeat(3,1fr);gap:16px}
.sp-steps--v .sp-step{border:1px solid var(--bd);border-radius:var(--r-lg);
  background:rgba(255,255,255,.045);padding:26px 24px}
.sp-steps--v .sp-step:last-child{border-right:1px solid var(--bd)}
.sp-steps--v .sp-step__n{font-size:24px;margin-bottom:12px;
  background:linear-gradient(120deg,#8aa0ff,#a78bfa 55%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent}

/* 上岗门槛：5 个硬指标 → 5 列一行，放不下才降到 3 列（3+2，不留单孤儿） */
.sp-gate{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.sp-gatec{position:relative;padding:26px 20px;border-radius:var(--r-lg);
  border:1px solid var(--bdl);background:#fff;text-align:center;overflow:hidden;
  transition:.34s var(--ease)}
.sp-gatec:hover{transform:translateY(-5px);border-color:rgba(77,97,214,.34);
  box-shadow:0 16px 36px rgba(26,31,61,.09)}
.sp-gatec::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--b1),var(--violet) 60%,var(--cyan))}
.sp-gatec__l{display:block;font-size:12.5px;font-weight:700;color:var(--dp2);margin-bottom:12px}
.sp-gatec b{display:flex;align-items:baseline;justify-content:center;gap:2px;
  line-height:1.1;letter-spacing:-1.5px;font-variant-numeric:tabular-nums}
.sp-gatec b i{font-style:normal;font-size:clamp(26px,3.2vw,36px);font-weight:800;
  background:linear-gradient(120deg,var(--b1),var(--violet) 60%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.sp-gatec b{font-size:17px;color:var(--dp)}
.sp-gatec__d{display:block;font-size:12.5px;color:var(--dp3);line-height:1.7;margin-top:12px}

/* 五个反常识：同为 5 项，沿用同样的列数策略 */
.sp-contra{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.sp-contrac{position:relative;padding:26px 22px;border-radius:var(--r-lg);
  border:1px solid var(--bd);background:rgba(255,255,255,.045);
  transition:.34s var(--ease)}
.sp-contrac:hover{transform:translateY(-5px);border-color:var(--bd-hi);
  background:rgba(255,255,255,.075)}
.sp-contrac::after{content:"";position:absolute;left:22px;right:22px;top:0;height:2px;
  background:linear-gradient(90deg,var(--cyan),transparent);opacity:.7}
.sp-contrac b{display:block;font-size:15px;font-weight:700;color:#fff;line-height:1.5;
  margin-bottom:10px}
.sp-contrac p{font-size:13px;color:var(--od2);line-height:1.8}

@media(max-width:1080px){
  .sp-steps--v{grid-template-columns:repeat(2,1fr)}
  .sp-gate,.sp-contra{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:640px){
  .sp-steps--v,.sp-gate,.sp-contra{grid-template-columns:1fr}
}

/* ══════════════════════════════════════════════════════════
   行业语料库页（page-industries.php）
   内容取自知识库 3.5③（8 大行业 + 六类语料）。
   意象是「八行业挂在共用语料库上的辐网」——强调"一套语料、多行业复用"。
   ══════════════════════════════════════════════════════════ */

/* 8 个行业 → 4 列两行，子项数整除列数，无末行孤儿 */
.sp-inds{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.sp-indc{position:relative;padding:26px 22px;border-radius:var(--r-lg);
  border:1px solid var(--bdl);background:#fff;overflow:hidden;transition:.34s var(--ease)}
.sp-indc:hover{transform:translateY(-5px);border-color:rgba(77,97,214,.34);
  box-shadow:0 16px 36px rgba(26,31,61,.09)}
.sp-indc::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--b1),var(--violet) 60%,var(--cyan));opacity:0;transition:.3s}
.sp-indc:hover::before{opacity:1}
.sp-indc__h{display:flex;align-items:baseline;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.sp-indc__n{font-size:13px;font-weight:700;color:var(--b1);letter-spacing:1px;
  font-variant-numeric:tabular-nums}
.sp-indc__h b{font-size:17.5px;font-weight:700;color:var(--dp);line-height:1.4}
.sp-indc__h em{font-style:normal;font-size:10.5px;letter-spacing:1px;color:var(--dp3);
  width:100%;margin-top:2px}
.sp-indc p{font-size:13.5px;color:var(--dp2);line-height:1.8;margin-bottom:14px}
.sp-indc__tags{display:flex;flex-wrap:wrap;gap:6px}
.sp-indc__tags span{font-size:11.5px;color:var(--dp3);padding:4px 10px;border-radius:8px;
  background:var(--bmist);border:1px solid var(--bdl)}

@media(max-width:1080px){ .sp-inds{grid-template-columns:repeat(2,1fr)} }
@media(max-width:640px){ .sp-inds{grid-template-columns:1fr} }

/* ══════════════════════════════════════════════════════════
   产品矩阵页（page-products.php）
   知识库 3.5：六支柱 + 四条主推业务线（GEO / GEM / 声誉 / 内容）。
   这一页的职责是把「我们不只做 GEO」讲清楚 ——
   所以产品线用 4 列平铺、底座用一条贯穿的横条隐喻，
   视觉上一眼能看出四条线同源，而不是四件并列生意。
   ══════════════════════════════════════════════════════════ */

/* 三条产品线（GEM 已并入 GEO）→ 3 列一行，子项数与列数一致 */
.pd-lines{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pd-line{display:flex;flex-direction:column;position:relative;overflow:hidden;
  padding:28px 24px 24px;border-radius:var(--r-lg);
  border:1px solid var(--bd);background:rgba(255,255,255,.045);transition:.34s var(--ease)}
.pd-line:hover{transform:translateY(-6px);border-color:var(--bd-hi);
  background:rgba(255,255,255,.075);box-shadow:0 20px 44px rgba(0,0,0,.28)}
.pd-line::after{content:"";position:absolute;left:24px;right:24px;top:0;height:2px;
  background:linear-gradient(90deg,var(--cyan),transparent)}
.pd-line__h{margin-bottom:14px}
.pd-line__n{display:block;font-size:12px;font-weight:700;letter-spacing:1.4px;
  color:var(--cyan);font-variant-numeric:tabular-nums;margin-bottom:6px}
.pd-line__h b{display:block;font-size:26px;font-weight:800;color:#fff;
  letter-spacing:-.6px;line-height:1.15}
.pd-line__h em{display:block;font-style:normal;font-size:13px;color:var(--od3);margin-top:5px}
.pd-line p{font-size:13.5px;color:var(--od2);line-height:1.8;flex:1;margin-bottom:16px}
.pd-line__tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.pd-line__tags span{font-size:11.5px;color:var(--od2);padding:4px 10px;border-radius:8px;
  border:1px solid var(--bd);background:rgba(255,255,255,.05)}
.pd-line__go{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;
  color:var(--cyan);transition:.24s}
.pd-line:hover .pd-line__go{gap:11px}
.pd-line__go i{font-style:normal}

/* 六支柱：6 项 → 3 列两行，子项数整除列数无孤儿 */
.sp-found{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.sp-foundc{position:relative;overflow:hidden;padding:26px 24px;
  border-radius:var(--r-lg);border:1px solid var(--bdl);background:#fff;transition:.34s var(--ease)}
.sp-foundc:hover{transform:translateY(-5px);border-color:rgba(77,97,214,.34);
  box-shadow:0 16px 36px rgba(26,31,61,.09)}
.sp-foundc__role{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:1.2px;
  padding:4px 11px;border-radius:99px;margin-bottom:12px;
  background:rgba(77,97,214,.09);color:var(--b1)}
.sp-foundc__h b{display:block;font-size:18px;font-weight:700;color:var(--dp);line-height:1.45}
.sp-foundc__t{display:block;font-size:12.5px;color:var(--dp3);margin-top:6px}
.sp-foundc p{font-size:13.5px;color:var(--dp2);line-height:1.8;margin-top:12px}
.sp-foundc__go{display:inline-flex;align-items:center;gap:6px;margin-top:14px;
  font-size:12.5px;font-weight:600;color:var(--b1)}
.sp-foundc__go i{font-style:normal;transition:.24s}
.sp-foundc__go:hover i{transform:translateX(3px)}
/* 第一根（Know-how）视觉加权 —— 它是护城河，不是并列的第一项 */
.sp-foundc.is-key{border-top:3px solid var(--violet);
  background:linear-gradient(160deg,rgba(139,92,246,.07),#fff 62%)}
.sp-foundc.is-key .sp-foundc__role{background:rgba(139,92,246,.12);color:var(--violet)}

@media(max-width:1280px){
  .pd-lines{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:1080px){
  .sp-found{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .pd-lines,.sp-found{grid-template-columns:1fr}
}

/* 智元时代 GEO 独立页的九大模块（page-ai-ecosystem.php）
   9 项 → 3 列三行，正好整除，不留末行孤儿。 */
.sp-gmods{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.sp-gmod{position:relative;padding:24px 24px;border-radius:var(--r-lg);
  border:1px solid var(--bd);background:rgba(255,255,255,.045);transition:.34s var(--ease)}
.sp-gmod:hover{transform:translateY(-5px);border-color:var(--bd-hi);
  background:rgba(255,255,255,.075)}
.sp-gmod__n{display:block;font-size:12px;font-weight:700;letter-spacing:1.4px;
  color:var(--cyan);font-variant-numeric:tabular-nums;margin-bottom:10px}
.sp-gmod b{display:block;font-size:16.5px;font-weight:700;color:#fff;line-height:1.45;margin-bottom:9px}
.sp-gmod p{font-size:13px;color:var(--od2);line-height:1.8}
@media(max-width:900px){ .sp-gmods{grid-template-columns:1fr} }

/* ══════════════════════════════════════════════════════════
   GEO 页里的 GEM 章节（page-ai-ecosystem.php，3.5⑤）
   「GEO 做完就完事了吗」——这页回答"被看见之后接不接得住"。
   ══════════════════════════════════════════════════════════ */

/* 五个流失点 → 5 列一行（整除，无末行孤儿） */
.sp-gleak{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.sp-gleakc{position:relative;padding:24px 20px;border-radius:var(--r-lg);
  border:1px solid var(--bd);background:rgba(255,255,255,.045);transition:.34s var(--ease)}
.sp-gleakc:hover{transform:translateY(-5px);border-color:var(--bd-hi);
  background:rgba(255,255,255,.075)}
.sp-gleakc::before{content:"";position:absolute;left:20px;right:20px;top:0;height:2px;
  background:linear-gradient(90deg,var(--violet),transparent)}
.sp-gleakc__n{display:block;font-size:12px;font-weight:700;letter-spacing:1.4px;
  color:var(--violet);font-variant-numeric:tabular-nums;margin-bottom:10px}
.sp-gleakc b{display:block;font-size:15.5px;font-weight:700;color:#fff;
  line-height:1.45;margin-bottom:8px}
.sp-gleakc p{font-size:12.5px;color:var(--od2);line-height:1.75}

/* GEO ⇄ GEM 闭环：四步回流 */
.sp-gloop{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);
  gap:14px;counter-reset:none}
.sp-gloop li{position:relative;padding:24px 22px;border-radius:var(--r-lg);
  border:1px solid var(--bd);background:rgba(255,255,255,.045)}
.sp-gloop li::after{content:"↓";position:absolute;left:50%;bottom:-19px;transform:translateX(-50%);
  font-size:15px;color:var(--cyan);opacity:.75;line-height:1}
.sp-gloop li:last-child::after{content:"↻";bottom:auto;top:50%;transform:translateY(-50%);
  left:auto;right:-18px;font-size:17px}
.sp-gloop b{display:block;font-size:16.5px;font-weight:800;color:#fff;margin-bottom:7px}
.sp-gloop span{font-size:13px;color:var(--od2);line-height:1.75;display:block}
.sp-gloop__x{margin-top:28px;text-align:center}
.sp-gloop__x p{font-size:14.5px;color:var(--od2);line-height:1.85;max-width:760px;margin-inline:auto}

@media(max-width:1080px){
  .sp-gleak{grid-template-columns:repeat(3,1fr)}
  .sp-gloop{grid-template-columns:repeat(2,1fr)}
  .sp-gloop li::after{content:""}
  .sp-gloop li:last-child::after{content:""}
}
@media(max-width:640px){
  .sp-gleak,.sp-gloop{grid-template-columns:1fr}
}

/* ══════════ 产品页图示化：分层塔 .pyr / 楼层堆叠 .flr ══════════
   原来两块都是「等宽横条文字堆叠」，看不出层与层的关系。 */
.pyr{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:8px}
.pyr__r{position:relative;display:grid;grid-template-columns:52px minmax(140px,1.05fr) 128px minmax(0,1.5fr) auto;
  align-items:center;gap:18px;padding:20px 24px;border-radius:var(--r-lg);
  border:1px solid var(--bdl);background:#fff;box-shadow:0 6px 18px rgba(26,31,61,.04);
  transition:.32s var(--ease)}
.pyr__r:nth-child(1){width:70%}
.pyr__r:nth-child(2){width:76%}
.pyr__r:nth-child(3){width:82%}
.pyr__r:nth-child(4){width:88%}
.pyr__r:nth-child(5){width:94%}
.pyr__r:nth-child(6){width:100%}
.pyr__r:hover{transform:translateY(-4px);border-color:rgba(77,97,214,.38);
  box-shadow:0 16px 34px rgba(26,31,61,.1)}
.pyr__lv{font-size:12px;font-weight:800;letter-spacing:.06em;color:var(--b1);
  padding:5px 0;border-radius:8px;background:rgba(77,97,214,.08);text-align:center}
.pyr__t{font-size:16.5px;font-weight:750;color:var(--dp);line-height:1.45}
.pyr__role{font-size:11.5px;color:var(--dp3)}
.pyr__d{font-size:13.5px;color:var(--dp2);line-height:1.72}
.pyr__r.is-key{border-color:rgba(139,92,246,.42);
  background:linear-gradient(120deg,rgba(139,92,246,.07),rgba(77,97,214,.04))}
.pyr__r.is-key .pyr__lv{color:var(--violet);background:rgba(139,92,246,.12)}
.pyr__r.is-key .pyr__t{color:var(--violet)}
.pyr__go{font-size:12.5px;font-weight:600;color:var(--b1);white-space:nowrap}
.pyr__go:hover{color:var(--violet)}
.pyr__go i{font-style:normal}
@media(max-width:980px){
  .pyr__r{grid-template-columns:44px 1fr;gap:8px 14px}
  .pyr__r,.pyr__r:nth-child(n){width:100%}
  .pyr__role{grid-column:2}
  .pyr__d,.pyr__go{grid-column:1/-1}
}

.flr{display:flex;flex-direction:column;align-items:center;margin-top:34px}
.flr__r{position:relative;width:var(--w);display:grid;grid-template-columns:46px minmax(0,1fr);
  gap:3px 16px;align-items:center;padding:17px 26px;
  border:1px solid var(--bd);
  background:linear-gradient(100deg,rgba(34,211,238,.1),rgba(77,97,214,.12));
  transition:.34s var(--ease)}
.flr__r:first-child{margin-bottom:7px;border-radius:var(--r-lg) var(--r-lg) 0 0}
.flr__r:last-child{border-radius:0 0 var(--r-lg) var(--r-lg)}
.flr__r::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,var(--cyan),var(--b1))}
.flr__lv{grid-row:1/3;font-size:13px;font-weight:800;color:var(--cyan);letter-spacing:.04em}
.flr__t{font-size:16px;font-weight:750;color:#fff;line-height:1.4}
.flr__v{font-size:13px;color:var(--od2);line-height:1.6}
.flr__d{grid-column:2;font-size:12.5px;color:var(--od3);line-height:1.65}
.flr:hover .flr__r{opacity:.4}
.flr .flr__r:hover{opacity:1;transform:translateY(-4px) scale(1.012);z-index:2;
  border-color:rgba(34,211,238,.5);box-shadow:0 18px 42px -12px rgba(34,211,238,.32)}
@media(max-width:820px){.flr__r{width:100%!important;padding:15px 18px}}


/* ══════════ 解决方案页图示化 ══════════
   ① 层1 .sol2 痛点/解法双轨，解法逐条挂产品线
   ② 层2 .map  场景 → 对应模块 映射
   ③ 层3 .mtx3 三种规模对比矩阵 */
.sol-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.sol2{display:flex;flex-direction:column;padding:26px 26px 22px;border-radius:var(--r-xl);
  border:1px solid var(--bd);background:rgba(255,255,255,.045);transition:.32s var(--ease)}
.sol2:hover{transform:translateY(-5px);border-color:var(--bd-hi);background:rgba(255,255,255,.075)}
.sol2__h{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin-bottom:13px;
  padding-bottom:12px;border-bottom:1px solid var(--bd)}
.sol2__h b{font-size:19px;font-weight:750;color:#fff;line-height:1.4}
.sol2__h em{font-style:normal;font-size:11.5px;letter-spacing:.08em;color:var(--od3)}
.sol2__flag{margin-left:auto;font-size:10.5px;font-weight:700;letter-spacing:.08em;
  padding:4px 10px;border-radius:99px;color:#fff;
  background:linear-gradient(120deg,var(--b1),var(--violet))}
.sol2--hi{border-color:rgba(139,92,246,.36);background:linear-gradient(150deg,rgba(139,92,246,.1),rgba(255,255,255,.03))}
.sol2__pain{position:relative;padding-left:14px;margin-bottom:16px;
  font-size:13.5px;color:var(--od2);line-height:1.72}
.sol2__pain i{position:absolute;left:0;top:3px;width:3px;height:16px;border-radius:99px;
  background:linear-gradient(180deg,#f87171,rgba(248,113,113,.35))}
.sol2__rows{display:grid;gap:9px}
.sol2__r{display:grid;grid-template-columns:62px 1fr;gap:12px;align-items:start;
  padding:11px 13px;border-radius:var(--r-md);background:rgba(255,255,255,.04);
  border:1px solid transparent;transition:.26s var(--ease)}
.sol2__r:hover{background:rgba(255,255,255,.085);border-color:var(--bd-hi)}
.sol2__r p{font-size:13px;color:var(--od2);line-height:1.68}
/* 产品线标签：GEO 青 / GEM 紫 / Agent 蓝 —— 全站统一色，看标签就知道归谁 */
.sol2__m{align-self:start;padding:4px 8px;border-radius:8px;font-size:10.5px;font-weight:800;
  letter-spacing:.06em;text-align:center}
.sol2__m--geo{color:#22d3ee;background:rgba(34,211,238,.14);border:1px solid rgba(34,211,238,.34)}
.sol2__m--gem{color:#c4b5fd;background:rgba(139,92,246,.16);border:1px solid rgba(139,92,246,.36)}
.sol2__m--agent{color:#a5b6ff;background:rgba(77,97,214,.18);border:1px solid rgba(77,97,214,.4)}
.sol2__stat{display:grid;grid-template-columns:1fr auto 1fr auto;gap:3px 10px;align-items:baseline;
  margin-top:auto;padding-top:15px}
.sol2__stat b{font-size:16px;font-weight:800;color:var(--cyan);letter-spacing:-.3px;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.sol2__stat i{font-style:normal;font-size:11.5px;color:var(--od3);white-space:nowrap}
@media(max-width:1080px){.sol-grid{grid-template-columns:1fr}}

.map{display:flex;flex-direction:column;gap:10px}
.map__r{display:grid;grid-template-columns:190px 1fr 96px minmax(0,1.5fr) 110px;
  align-items:center;gap:16px;padding:18px 22px;border-radius:var(--r-lg);
  border:1px solid var(--bdl);background:#fff;box-shadow:0 6px 18px rgba(26,31,61,.04);
  transition:.3s var(--ease)}
.map__r:hover{transform:translateY(-3px);border-color:rgba(77,97,214,.36);
  box-shadow:0 14px 32px rgba(26,31,61,.09)}
.map__s{font-size:15.5px;font-weight:700;color:var(--dp);white-space:nowrap}
.map__line{height:2px;border-radius:99px;
  background:repeating-linear-gradient(90deg,var(--bdl-hi) 0 6px,transparent 6px 11px)}
.map__m{padding:5px 10px;border-radius:99px;font-size:11px;font-weight:800;letter-spacing:.06em;
  text-align:center;color:#fff}
.map__m--geo{background:linear-gradient(120deg,var(--b1),#22d3ee)}
.map__m--gem{background:linear-gradient(120deg,var(--violet),var(--b1))}
.map__m--agent{background:linear-gradient(120deg,var(--bdeep),var(--b1))}
/* scene 档（AI 搜索获客等）原本没有任何背景规则 → 白字压白卡 1:1 完全隐形。
   补一个描边浅底徽章，深字可读。 */
.map__m--scene{background:rgba(77,97,214,.09);border:1px solid rgba(77,97,214,.28);color:var(--b1)}
.map__d{font-size:13px;color:var(--dp2);line-height:1.7}
.map__o{font-size:11.5px;font-weight:600;color:var(--b1);text-align:right;white-space:nowrap}
@media(max-width:980px){
  .map__r{grid-template-columns:1fr auto;gap:8px 12px}
  .map__line{display:none}
  .map__m{grid-row:1;grid-column:2}
  .map__d,.map__o{grid-column:1/-1;text-align:left}
}

.mtx3{display:grid;gap:8px}
.mtx3__hd{display:grid;grid-template-columns:200px 1fr minmax(0,1.4fr);gap:18px;
  padding:0 4px 10px;font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--dp3)}
.mtx3__r{display:grid;grid-template-columns:200px 1fr minmax(0,1.4fr);gap:18px;align-items:center;
  padding:20px 24px;border-radius:var(--r-lg);border:1px solid var(--bd);
  background:rgba(255,255,255,.045);transition:.3s var(--ease)}
.mtx3__r:hover{border-color:var(--bd-hi);background:rgba(255,255,255,.075);transform:translateX(4px)}
.mtx3__r b{font-size:16.5px;font-weight:750;color:#fff}
.mtx3__p{padding:6px 12px;border-radius:99px;font-size:12px;font-weight:650;line-height:1.5;
  color:#fff;text-align:center}
.mtx3__r--1 .mtx3__p{background:linear-gradient(120deg,var(--b1),var(--violet))}
.mtx3__r--2 .mtx3__p{background:linear-gradient(120deg,var(--bdeep),var(--b1))}
.mtx3__r--3 .mtx3__p{background:linear-gradient(120deg,#5b21b6,var(--bdeep))}
.mtx3__r p{font-size:13.5px;color:var(--od2);line-height:1.72}
@media(max-width:980px){
  .mtx3__hd{display:none}
  .mtx3__r{grid-template-columns:1fr;gap:8px}
}



/* ══════════ 服务保障页（/trust/）══════════ */
.tp-np{display:grid;gap:14px;max-width:900px;margin-inline:auto}
.tp-npc{display:flex;gap:18px;align-items:flex-start;padding:22px 26px;border-radius:var(--r-lg);
  background:#fff;border:1px solid var(--bdl);border-left:3px solid #ef4444;
  box-shadow:0 8px 24px rgba(26,31,61,.05)}
.tp-npc__n{flex-shrink:0;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;
  font-size:14px;font-weight:800;color:#ef4444;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.24)}
.tp-npc b{display:block;font-size:16px;font-weight:750;color:var(--dp);line-height:1.55;margin-bottom:5px}
.tp-npc i{display:block;font-style:normal;font-size:13.5px;color:var(--dp2);line-height:1.75}
.tp-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tp-listc{padding:24px;border-radius:var(--r-lg);border:1px solid var(--bd);
  background:rgba(255,255,255,.045);transition:.34s var(--ease)}
.tp-listc:hover{border-color:var(--bd-hi);background:rgba(255,255,255,.075)}
.tp-listc b{display:block;font-size:15.5px;font-weight:700;color:#fff;line-height:1.5;margin-bottom:8px;
  padding-left:14px;position:relative}
.tp-listc b::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:99px;
  background:linear-gradient(135deg,var(--b1),var(--cyan))}
.tp-listc p{font-size:13.5px;color:var(--od2);line-height:1.78}
.tp-list--lt .tp-listc{border-color:var(--bdl);background:#fff;box-shadow:0 10px 28px rgba(26,31,61,.05)}
.tp-list--lt .tp-listc:hover{border-color:rgba(77,97,214,.34);box-shadow:0 18px 42px rgba(26,31,61,.1)}
.tp-list--lt .tp-listc b{color:var(--dp)}
.tp-list--lt .tp-listc p{color:var(--dp2)}
.tp-list--lt .tp-listc b::before{background:var(--b1)}
@media(max-width:1080px){.tp-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.tp-list{grid-template-columns:1fr}}
.tp-aw{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.tp-awc{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;
  padding:28px 20px;border-radius:var(--r-lg);border:1px solid var(--bd);background:rgba(255,255,255,.045)}
.tp-awc__badge{display:grid;place-items:center;min-width:96px;height:96px;padding:0 12px;border-radius:20px;
  font-size:13.5px;font-weight:800;letter-spacing:.02em;line-height:1.3;
  color:#fff;background:linear-gradient(135deg,var(--b1),var(--bdeep));
  box-shadow:0 10px 26px -8px rgba(77,97,214,.6)}
.tp-awc b{font-size:14.5px;font-weight:700;color:#fff;line-height:1.5}
.tp-awc i{font-style:normal;font-size:12.5px;color:var(--od3);line-height:1.6}
.tp-awc--todo{background:rgba(255,255,255,.028);border-style:dashed;border-color:var(--bd-hi)}
.tp-awc--todo .tp-awc__badge{color:var(--od2);background:transparent;
  border:1px dashed var(--bd-hi);box-shadow:none}
.tp-awc--todo b{color:var(--od2);font-weight:600}
@media(max-width:1080px){.tp-aw{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.tp-aw{grid-template-columns:1fr}}


/* ══════════ 法务页：隐私政策 / 用户协议 ══════════ */
.lg-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.lg-step{position:relative;padding:26px 22px;border-radius:var(--r-xl);border:1px solid var(--bd);
  background:rgba(255,255,255,.045);transition:.32s var(--ease)}
.lg-step:hover{transform:translateY(-5px);border-color:var(--bd-hi);background:rgba(255,255,255,.075)}
.lg-step__n{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;margin-bottom:15px;
  font-size:15px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--b1),var(--violet));
  box-shadow:0 8px 20px -6px rgba(77,97,214,.6)}
.lg-step b{display:block;font-size:16px;font-weight:700;color:#fff;line-height:1.5;margin-bottom:9px}
.lg-step p{font-size:13.5px;color:var(--od2);line-height:1.8}
@media(max-width:1080px){.lg-steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.lg-steps{grid-template-columns:1fr}}

.lg-two{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.lg-two__c{padding:30px 32px;border-radius:var(--r-xl);border:1px solid var(--bd);
  background:rgba(255,255,255,.045)}
.lg-two__c--alt{border-color:rgba(239,68,68,.32);background:rgba(239,68,68,.045)}
.lg-two__h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--bd)}
.lg-two__h b{font-size:17px;font-weight:750;color:#fff}
.lg-two__c--alt .lg-two__h b{color:#fca5a5}
.lg-two__h i{font-style:normal;font-size:12px;color:var(--od3)}
.lg-two__c ul{list-style:none;display:grid;gap:15px}
.lg-two__c li{padding-left:17px;position:relative}
.lg-two__c li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:99px;
  background:linear-gradient(135deg,var(--b1),var(--cyan))}
.lg-two__c--alt li::before{background:#ef4444}
.lg-two__c li b{display:block;font-size:14.5px;font-weight:700;color:#fff;line-height:1.55;margin-bottom:5px}
.lg-two__c li i{display:block;font-style:normal;font-size:13px;color:var(--od2);line-height:1.75}
@media(max-width:900px){.lg-two{grid-template-columns:1fr}}
.lg-cta{text-align:center;max-width:820px}
.lg-cta p{font-size:clamp(19px,2.4vw,26px);font-weight:750;color:#fff;line-height:1.6;margin-bottom:14px}
.lg-cta p .gr{background:linear-gradient(110deg,#8aa0ff,#a78bfa 50%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.lg-cta>span{display:block;font-size:14px;color:var(--od2);line-height:1.7}
.lg-cta .eyebrow{margin-bottom:18px}
.sp-card a{color:var(--b1);border-bottom:1px solid rgba(77,97,214,.4)}


/* ══════════ 资源中心：5.2 白皮书 / 5.4 术语 / 5.5 文档 ══════════ */
.rs-sec{padding:clamp(64px,7vw,104px) 0;background:var(--bmist);border-top:1px solid var(--bdl)}
.rs-ctr{text-align:center;margin-bottom:52px}
.rs-ctr .eyebrow{margin-bottom:22px}
.rs-ctr h2{font-size:clamp(26px,3.6vw,42px);font-weight:800;color:var(--dp);line-height:1.24;
  letter-spacing:-1px;margin-bottom:18px}
.rs-ctr h2 .gr{background:linear-gradient(110deg,var(--b1),var(--violet) 60%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent}
/* rs-sec 实测为浅底 rgb(245,247,255) → 保持浅底 token */
.rs-ctr .lead{color:var(--dp2);font-size:16px;max-width:660px;margin-inline:auto;line-height:1.82}
.rs-ctr .lead b{color:var(--dp)}
.rs-blk{margin-bottom:52px}
.rs-blk:last-child{margin-bottom:0}
.rs-blk__h{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:22px;
  padding-bottom:14px;border-bottom:1px solid var(--bdl)}
.rs-blk__h b{font-size:19px;font-weight:750;color:var(--dp);letter-spacing:-.3px}
.rs-blk__h span{font-size:13px;color:var(--dp3)}
.rs-wp{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.rs-wpc{display:flex;flex-direction:column;padding:26px 24px;border-radius:var(--r-xl);
  border:1px solid var(--bdl);background:#fff;box-shadow:0 10px 28px rgba(26,31,61,.05);
  transition:.32s var(--ease)}
.rs-wpc:hover{transform:translateY(-5px);border-color:rgba(77,97,214,.34);
  box-shadow:0 20px 46px rgba(26,31,61,.1)}
.rs-wpc__k{align-self:flex-start;margin-bottom:13px;padding:5px 11px;border-radius:99px;
  font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--b1);
  background:rgba(77,97,214,.09);border:1px solid rgba(77,97,214,.2)}
.rs-wpc b{display:block;font-size:16.5px;font-weight:700;color:var(--dp);line-height:1.5;margin-bottom:9px}
.rs-wpc p{font-size:13.5px;color:var(--dp2);line-height:1.78;margin-bottom:18px}
.rs-wpc__a{margin-top:auto;font-size:13px;font-weight:600;color:var(--b1)}
.rs-wpc__a:hover{color:var(--violet)}
.rs-ind{font-size:12.5px;color:var(--dp3);line-height:1.7;margin-top:16px}
.rs-ind a{color:var(--b1);border-bottom:1px solid rgba(77,97,214,.4)}
@media(max-width:980px){.rs-wp{grid-template-columns:1fr}}
.rs-gls{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.rs-glsc{padding:20px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--bdl);
  transition:.3s var(--ease)}
.rs-glsc:hover{border-color:rgba(77,97,214,.34);box-shadow:0 12px 30px rgba(26,31,61,.07);
  transform:translateY(-3px)}
.rs-glsc b{display:block;font-size:15px;font-weight:800;color:var(--b1);letter-spacing:.4px;margin-bottom:7px}
.rs-glsc p{font-size:12.5px;color:var(--dp2);line-height:1.72}
.rs-glsc--more{border-style:dashed;background:transparent}
.rs-glsc--more b{color:var(--dp2);font-weight:600;font-size:13.5px}
.rs-glsc--more p{color:var(--dp3)}
@media(max-width:1080px){.rs-gls{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.rs-gls{grid-template-columns:1fr}}
.rs-doc{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.rs-docc{display:flex;flex-direction:column;padding:24px 22px;border-radius:var(--r-lg);
  border:1px solid var(--bdl);background:#fff;box-shadow:0 10px 28px rgba(26,31,61,.05);
  transition:.3s var(--ease)}
.rs-docc:hover{transform:translateY(-4px);border-color:rgba(77,97,214,.4);
  box-shadow:0 18px 42px rgba(26,31,61,.1)}
.rs-docc b{font-size:15.5px;font-weight:700;color:var(--dp);margin-bottom:8px}
.rs-docc p{font-size:13px;color:var(--dp2);line-height:1.72;margin-bottom:14px}
.rs-docc span{margin-top:auto;font-size:12.5px;font-weight:600;color:var(--b1)}
@media(max-width:1080px){.rs-doc{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.rs-doc{grid-template-columns:1fr}}


/* ══════════ 关于我们：2.1 公司简介 / 2.3 发展历程 / 2.4 价值观 ══════════ */
.ab-pro{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:center}
.ab-pro__l h2{font-size:clamp(26px,3.4vw,40px);font-weight:800;color:#fff;line-height:1.24;
  letter-spacing:-1px;margin-bottom:20px}
.ab-pro__l h2 .gr{background:linear-gradient(110deg,#8aa0ff,#a78bfa 50%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.ab-pro__l .lead{font-size:16.5px}
.ab-pro__r{display:grid;gap:14px}
.ab-pro__c{padding:20px 24px;border-radius:var(--r-lg);border:1px solid var(--bd);
  background:rgba(255,255,255,.045);border-left:3px solid var(--b1);transition:.3s var(--ease)}
.ab-pro__c:hover{background:rgba(255,255,255,.075);border-left-color:var(--cyan)}
.ab-pro__c b{display:block;font-size:15.5px;font-weight:700;color:#fff;margin-bottom:7px}
.ab-pro__c p{font-size:13.5px;color:var(--od2);line-height:1.78}
@media(max-width:900px){.ab-pro{grid-template-columns:1fr;gap:28px}}
.ab-tl{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ab-tlc{position:relative;padding:28px 26px;border-radius:var(--r-xl);border:1px solid var(--bd);
  background:rgba(255,255,255,.045);transition:.32s var(--ease)}
.ab-tlc:hover{transform:translateY(-5px);border-color:var(--bd-hi);background:rgba(255,255,255,.075)}
.ab-tlc__y{display:block;font-size:clamp(34px,4vw,46px);font-weight:800;letter-spacing:-2px;line-height:1;
  background:linear-gradient(110deg,#8aa0ff,#a78bfa 60%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:16px;
  font-variant-numeric:tabular-nums}
.ab-tlc b{display:block;font-size:15.5px;font-weight:700;color:#fff;line-height:1.55;margin-bottom:9px}
.ab-tlc p{font-size:13.5px;color:var(--od2);line-height:1.78}
@media(max-width:900px){.ab-tl{grid-template-columns:1fr}}
.ab-vals{margin-top:40px}
.ab-vals__t{display:block;margin-bottom:16px;font-size:12px;font-weight:700;letter-spacing:2px;color:var(--b1)}
.ab-vals__g{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ab-valsc{padding:22px;border-radius:var(--r-lg);background:var(--bmist);
  border:1px solid var(--bdl);border-top:3px solid var(--b1);transition:.3s var(--ease)}
.ab-valsc:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(26,31,61,.08)}
.ab-valsc b{display:block;font-size:14.5px;font-weight:750;color:var(--dp);line-height:1.5;margin-bottom:8px}
.ab-valsc p{font-size:13px;color:var(--dp2);line-height:1.75}
@media(max-width:1080px){.ab-vals__g{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.ab-vals__g{grid-template-columns:1fr}}


/* ══════════ 产品页：3.0 三层 / 3.6 交付 / 3.7 集成 / 3.8 反常识 / 3.9 迭代 ══════════ */
.pr-ov{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pr-ovc{position:relative;padding:28px 26px;border-radius:var(--r-xl);
  border:1px solid var(--bd);background:rgba(255,255,255,.045);transition:.32s var(--ease);
  overflow:hidden}
.pr-ovc:hover{transform:translateY(-5px);border-color:var(--bd-hi);background:rgba(255,255,255,.075)}
.pr-ovc__l{position:absolute;top:22px;right:24px;font-size:30px;font-weight:800;letter-spacing:-1.5px;
  line-height:1;color:rgba(255,255,255,.1);font-variant-numeric:tabular-nums}
.pr-ovc b{display:block;font-size:18px;font-weight:750;color:#fff;line-height:1.45;margin-bottom:6px;
  padding-right:58px}
.pr-ovc b em{display:block;font-style:normal;font-size:12.5px;font-weight:500;color:var(--od3);margin-top:5px}
.pr-ovc p{font-size:13.5px;color:var(--od2);line-height:1.8;margin-bottom:14px}
.pr-ovc__tag{display:block;padding:10px 13px;border-radius:var(--r-md);font-size:11.5px;line-height:1.6;
  color:var(--cyan);background:rgba(34,211,238,.09);border:1px solid rgba(34,211,238,.22)}
@media(max-width:980px){.pr-ov{grid-template-columns:1fr}}

.pr-dlv{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pr-dlvc{position:relative;padding:28px 26px;border-radius:var(--r-xl);
  border:1px solid var(--bdl);background:#fff;transition:.32s var(--ease)}
.pr-dlvc:hover{transform:translateY(-5px);border-color:rgba(77,97,214,.34);
  box-shadow:0 18px 42px rgba(26,31,61,.1)}
.pr-dlvc--hi{border-color:rgba(77,97,214,.42);box-shadow:0 14px 36px rgba(26,31,61,.09)}
.pr-dlvc__n{position:absolute;top:24px;right:24px;font-size:26px;font-weight:800;letter-spacing:-1.2px;
  line-height:1;color:rgba(26,31,61,.08);font-variant-numeric:tabular-nums}
.pr-dlvc b{display:block;font-size:18px;font-weight:750;color:var(--dp);margin-bottom:8px}
.pr-dlvc__f{font-size:12.5px!important;color:var(--b1)!important;font-weight:600;margin-bottom:10px!important}
.pr-dlvc p{font-size:13.5px;color:var(--dp2);line-height:1.8}
@media(max-width:980px){.pr-dlv{grid-template-columns:1fr}}

.pr-int{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}
.pr-intc{padding:28px 30px;border-radius:var(--r-xl);border:1px solid var(--bd);
  background:rgba(255,255,255,.045);display:flex;flex-direction:column}
.pr-intc__t{display:flex;align-items:baseline;gap:12px;margin-bottom:18px;padding-bottom:14px;
  border-bottom:1px solid var(--bd)}
.pr-intc__t b{font-size:16.5px;font-weight:750;color:#fff}
.pr-intc__t span{font-size:11.5px;color:var(--od3)}
.pr-intc__g{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.pr-intc__g span{padding:11px 8px;border-radius:11px;font-size:13px;color:var(--od2);text-align:center;
  background:rgba(255,255,255,.06);border:1px solid var(--bd-hi);transition:.26s var(--ease)}
.pr-intc__g span:hover{color:var(--cyan);border-color:rgba(34,211,238,.42);transform:translateY(-2px)}
.pr-intc__p{font-size:14px;color:var(--od2);line-height:1.82;margin-bottom:20px}
.pr-intc__sla{margin-top:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pr-intc__sla span{padding:14px 12px;border-radius:var(--r-md);text-align:center;
  background:rgba(255,255,255,.05);border:1px solid var(--bd)}
.pr-intc__sla b{display:block;font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--od3);margin-bottom:5px}
.pr-intc__sla i{font-style:normal;font-size:15px;font-weight:750;color:var(--cyan);font-variant-numeric:tabular-nums}
@media(max-width:980px){.pr-int{grid-template-columns:1fr}}

.pr-ctr5{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.pr-ctr5c{padding:28px 30px;border-radius:var(--r-xl);border:1px solid var(--bdl);background:#fff;
  transition:.32s var(--ease)}
.pr-ctr5c:hover{transform:translateY(-5px);border-color:rgba(77,97,214,.34);
  box-shadow:0 18px 42px rgba(26,31,61,.1)}
.pr-ctr5c b{display:block;font-size:17px;font-weight:750;color:var(--dp);line-height:1.55;margin-bottom:10px}
.pr-ctr5c b .gr{background:linear-gradient(110deg,var(--b1),var(--violet) 60%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.pr-ctr5c p{font-size:14px;color:var(--dp2);line-height:1.82}
.pr-ctr5c--wide{grid-column:1/-1;border-color:rgba(77,97,214,.4);
  background:linear-gradient(120deg,rgba(77,97,214,.08),rgba(139,92,246,.05))}
@media(max-width:820px){.pr-ctr5{grid-template-columns:1fr}}

.pr-iter{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.pr-iterc{padding:24px 22px;border-radius:var(--r-lg);border:1px solid var(--bd);
  background:rgba(255,255,255,.045);transition:.3s var(--ease)}
.pr-iterc:hover{border-color:var(--bd-hi);background:rgba(255,255,255,.075);transform:translateY(-4px)}
.pr-iterc b{display:block;font-size:15px;font-weight:700;color:#fff;line-height:1.5;
  margin-bottom:9px;padding-left:13px;position:relative}
.pr-iterc b::before{content:"";position:absolute;left:0;top:7px;width:5px;height:5px;border-radius:99px;
  background:var(--cyan)}
.pr-iterc p{font-size:13px;color:var(--od2);line-height:1.78}
@media(max-width:1080px){.pr-iter{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.pr-iter{grid-template-columns:1fr}}

/* 浅底区适配：这些卡有深浅两种底 */
.sp-sec--lt .pr-dlvc,.sp-sec--lt .pr-ctr5c{box-shadow:0 10px 28px rgba(26,31,61,.05)}
.sp-sec--lt .pr-dlvc b,.sp-sec--lt .pr-ctr5c b{color:var(--dp)}


/* ══════════ 浮窗（规划 §3.1 通用元素）══════════ */
.fab{position:fixed;right:24px;bottom:24px;z-index:920;display:flex;flex-direction:column;
  align-items:flex-end;gap:12px}
.fab__btns{display:flex;flex-direction:column;align-items:center;gap:10px}
.fab__b,.fab .totop{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;
  border:1px solid var(--bd-hi);background:rgba(16,23,64,.82);backdrop-filter:blur(14px);
  color:#fff;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.4);transition:.28s var(--ease)}
.fab__b svg{width:20px;height:20px}
.fab__b--main{background:linear-gradient(135deg,var(--b1),var(--violet));border:none;
  box-shadow:0 12px 34px rgba(77,97,214,.55)}
.fab__b--main:hover{transform:translateY(-3px) scale(1.04)}
.fab .totop{width:42px;height:42px;opacity:0;pointer-events:none;transform:translateY(10px)}
.fab .totop.on{opacity:1;pointer-events:auto;transform:none}
.fab__panel{width:min(320px,calc(100vw - 48px));border-radius:var(--r-xl);overflow:hidden;
  border:1px solid var(--bd-hi);background:rgba(13,18,50,.96);backdrop-filter:blur(20px);
  box-shadow:0 26px 64px rgba(0,0,0,.55);
  opacity:0;pointer-events:none;transform:translateY(14px) scale(.97);transform-origin:bottom right;
  transition:.32s var(--ease)}
.fab[data-open="true"] .fab__panel{opacity:1;pointer-events:auto;transform:none}
.fab__hd{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:15px 18px;border-bottom:1px solid var(--bd);font-size:14px;font-weight:700;color:#fff}
.fab__x{width:26px;height:26px;border-radius:7px;border:1px solid var(--bd);
  background:transparent;color:var(--od2);font-size:17px;line-height:1;cursor:pointer}
.fab__x:hover{color:#fff;border-color:var(--bd-hi)}
.fab__i{display:block;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.07);transition:.22s var(--ease)}
.fab__i:last-child{border-bottom:none}
.fab__i:hover{background:rgba(77,97,214,.16)}
.fab__i b{display:block;font-size:14px;font-weight:650;color:#fff;line-height:1.5}
.fab__i i{display:block;font-style:normal;font-size:12px;color:var(--od3);line-height:1.6;margin-top:3px}
@media(max-width:700px){.fab{right:14px;bottom:14px}}

/* 页脚法务链接 */
.ft-legal{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.ft-legal a{color:var(--od2);font-size:12.5px}
.ft-legal a:hover{color:var(--cyan)}
@media(max-width:700px){.ft-b{flex-direction:column;align-items:flex-start;gap:10px}}

/* ══════════ 底部转化区：左右分栏 ══════════ */
.cta-band{padding:0}
.cta-two{display:grid;grid-template-columns:1.15fr .85fr;align-items:stretch;
  border-radius:var(--r-xl);overflow:hidden;
  background:linear-gradient(140deg,rgba(30,40,88,.85),rgba(20,27,64,.92));
  border:1px solid var(--bd-hi);box-shadow:0 30px 80px -30px rgba(0,0,0,.7)}
.cta-two__main{padding:48px 46px;display:flex;flex-direction:column;justify-content:center}
.cta-two__main h2{font-size:clamp(24px,3.1vw,36px);font-weight:800;color:#fff;line-height:1.24;
  letter-spacing:-.9px;margin-bottom:16px}
.cta-two__main h2 .gr{background:linear-gradient(110deg,#8aa0ff,#a78bfa 50%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.cta-two__main p{font-size:15px;color:var(--od2);line-height:1.8;margin-bottom:24px}
.cta-two__act{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.cta-two__mail{font-size:13.5px;color:var(--od3)}
.cta-two__mail a{color:var(--cyan);font-weight:600;border-bottom:1px solid rgba(34,211,238,.4);
  padding-bottom:1px}
.cta-two__mail a:hover{color:#fff;border-bottom-color:#fff}
.nl{padding:44px 40px;display:flex;flex-direction:column;justify-content:center;
  border-left:1px solid var(--bd);background:rgba(255,255,255,.035)}
.nl-t{margin-bottom:16px;text-align:left}
.nl-t b{display:block;font-size:17px;font-weight:750;color:#fff;line-height:1.45;margin-bottom:6px}
.nl-t i{display:block;font-style:normal;font-size:12.5px;color:var(--od2);line-height:1.7}
.nl-f{display:flex;gap:9px;flex-wrap:wrap;margin:0}
.nl-f input{flex:1 1 190px;min-width:0;height:52px;padding:0 18px;border-radius:var(--r-md);
  font-size:14.5px;font-family:inherit;color:#fff;background:rgba(255,255,255,.07);
  border:1px solid var(--bd-hi);outline:none;transition:.26s var(--e)}
.nl-f input::placeholder{color:var(--od3)}
.nl-f input:focus{border-color:var(--cyan);background:rgba(255,255,255,.11)}
.nl-f .btn{height:52px;min-height:52px;padding:0 26px;flex:0 0 auto}
.nl-note{margin-top:12px;font-size:11.5px;color:var(--od3);line-height:1.65;text-align:left}
.nl-tip{margin:0 0 10px;padding:11px 14px;border-radius:var(--r-md);font-size:13px;line-height:1.6;
  text-align:left}
.nl-tip--ok{color:var(--cyan);background:rgba(34,211,238,.12);border:1px solid rgba(34,211,238,.4)}
.nl-tip--bad{color:#fca5a5;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.4)}
@media(max-width:980px){
  .cta-two{grid-template-columns:1fr}
  .cta-two__main{padding:38px 30px}
  .nl{padding:32px 30px;border-left:none;border-top:1px solid var(--bd)}
}

/* 图示化区块入场动画（滚动进视口触发） */
.pyr__r,.flr__r,.sol2__r,.map__r,.mtx3__r{opacity:0}
.js .pyr__r{transform:translateY(22px)}
.js .flr__r{transform:translateY(-22px)}
.js .sol2__r{transform:translateY(26px)}
.js .map__r{transform:translateX(-26px)}
.js .mtx3__r{transform:translateY(20px)}
.pyr__r,.flr__r,.sol2__r,.map__r,.mtx3__r{
  transition:opacity .55s var(--ease),transform .55s var(--ease),
    border-color .32s var(--ease),box-shadow .32s var(--ease),background .3s var(--ease)}
.is-in .pyr__r,.is-in .flr__r,.is-in .sol2__r,.is-in .map__r,.is-in .mtx3__r{opacity:1;transform:none}
.pyr__r:nth-child(2),.flr__r:nth-child(2),.sol2__r:nth-child(2),.map__r:nth-child(2),.mtx3__r:nth-child(2){transition-delay:.07s}
.pyr__r:nth-child(3),.flr__r:nth-child(3),.sol2__r:nth-child(3),.map__r:nth-child(3),.mtx3__r:nth-child(3){transition-delay:.14s}
.pyr__r:nth-child(4),.flr__r:nth-child(4),.sol2__r:nth-child(4),.map__r:nth-child(4),.mtx3__r:nth-child(4){transition-delay:.21s}
.pyr__r:nth-child(5),.flr__r:nth-child(5),.sol2__r:nth-child(5),.map__r:nth-child(5),.mtx3__r:nth-child(5){transition-delay:.28s}
.pyr__r:nth-child(6),.flr__r:nth-child(6),.sol2__r:nth-child(6),.map__r:nth-child(6),.mtx3__r:nth-child(6){transition-delay:.35s}
.pyr__r:hover,.flr:hover .flr__r:hover,.sol2__r:hover,.map__r:hover,.mtx3__r:hover{
  transform:translateY(-4px)!important}
@media(prefers-reduced-motion:reduce){
  .pyr__r,.flr__r,.sol2__r,.map__r,.mtx3__r{opacity:1;transform:none;transition:none}
}

/* ══════════ 全站 Hero 统一规格 ══════════
   实测基线：内页普遍 900px 高、760/456 分栏；联系我们仅 527px；
   GEO / 智能体无插画块（右侧空 456px）。
   统一为：满屏 + 1:1 对称分栏 + 顶部让出导航高度。 */

/* 内页 Hero 满屏：用 svh 而非 vh，移动端地址栏收起时不会跳动 */
.sp-hero{position:relative;display:flex;align-items:center;min-height:100svh;
  padding-top:calc(var(--nav-h) + clamp(32px,5vw,64px));
  padding-bottom:clamp(40px,6vw,72px)}
/* 内部分栏改为 1:1 —— 原来 1.67:1 让右侧插画偏窄、左侧文字偏挤 */
.sp-hero>.wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,4.4vw,72px);align-items:center}
/* 文字栏垂直居中，标题与正文之间用固定节奏 */
.sp-hero__h,.sp-hero>.wrap>.sp-hero__copy{align-self:center}
.sp-hero h1{font-size:clamp(30px,3.9vw,50px);line-height:1.2;letter-spacing:-1.4px}
.sp-hero .lead{max-width:32em;margin-top:20px}
.sp-hero__meta{margin-top:26px}
/* 插画块：允许超出容器宽度一点，避免右侧显得空 */
.sp-hero__art{display:flex;align-items:center;justify-content:center}
.sp-hero__art svg{max-width:100%;height:auto}

/* 资源中心 Hero 同样归口 */
.ins-hero{position:relative;display:flex;align-items:center;min-height:100svh;
  padding-top:calc(var(--nav-h) + clamp(32px,5vw,64px));
  padding-bottom:clamp(40px,6vw,72px)}
.ins-hero>.ins-wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,4.4vw,72px);align-items:center}

/* 联系页 Hero 原本 527px，不满屏 —— 归口到同一规格 */
.ct-hero{position:relative;display:flex;align-items:center;min-height:100svh;
  padding-top:calc(var(--nav-h) + clamp(32px,5vw,64px));
  padding-bottom:clamp(40px,6vw,72px)}
.ct-hero>.wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,4.4vw,72px);align-items:center}
.ct-hero h1{font-size:clamp(30px,3.9vw,50px);line-height:1.2;letter-spacing:-1.4px}

/* 无插画的页面（GEO / 智能体）：把文字栏居中，别让右侧空 456px */
.sp-hero--solo>.wrap{grid-template-columns:1fr;max-width:1000px}
.sp-hero--solo .sp-hero__meta{justify-content:center}
.sp-hero--solo h1,.sp-hero--solo .lead{margin-inline:auto;text-align:center}
.sp-hero--solo .lead{max-width:46em}

/* 窄屏：单栏居中
   ★ 不再把 min-height 降成 auto —— 那样只有内容短的 4 页不满屏（实测 768px 下
     GEO/智能体 63%、资源中心 64%、联系我们 92%，而其余页 102~117%），同一套模板
     出现两种观感。min-height 只是下限，内容更高时照样撑开，保留 100svh 无副作用。 */
@media(max-width:980px){
  .sp-hero,.ins-hero,.ct-hero{
    padding-top:calc(var(--nav-h) + clamp(28px,6vw,48px));
    padding-bottom:clamp(36px,7vw,56px)}
  .sp-hero>.wrap,.ins-hero>.ins-wrap,.ct-hero>.wrap{grid-template-columns:1fr;gap:32px}
  .sp-hero__art{max-width:420px;margin-inline:auto}
  .sp-hero--solo h1,.sp-hero--solo .lead{text-align:left}
}


/* ══════════ Hero 统一规格（专用类，避免被旧规则覆盖）══════════
   同优先级的 .sp-hero>.wrap 在文件前面已有一条 width:100% 的规则，
   统一规格统一挂在 .sp-hero--u 上，语义更清楚，也不怕顺序变化。 */
.sp-hero--u{position:relative;display:flex;align-items:center;min-height:100svh;
  padding-top:calc(var(--nav-h) + clamp(32px,5vw,64px));
  padding-bottom:clamp(40px,6vw,72px)}
.sp-hero--u>.wrap{position:relative;z-index:1;width:100%;
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,4.4vw,72px);align-items:center}
.sp-hero--u h1{font-size:clamp(30px,3.9vw,50px);line-height:1.2;letter-spacing:-1.4px}
.sp-hero--u .lead{max-width:32em;margin-top:20px}
.sp-hero--u .sp-hero__meta{margin-top:26px;justify-content:flex-start}
.sp-hero--u .sp-hero__art{display:flex;align-items:center;justify-content:center}
.sp-hero--u .sp-hero__art svg{max-width:100%;height:auto}

/* 无插画的两页：文字居中，右侧不留 456px 空白 */
.sp-hero--u.sp-hero--solo>.wrap{grid-template-columns:1fr;max-width:1000px}
.sp-hero--u.sp-hero--solo h1,.sp-hero--u.sp-hero--solo .lead{margin-inline:auto;text-align:center}
.sp-hero--u.sp-hero--solo .lead{max-width:46em}
.sp-hero--u.sp-hero--solo .sp-hero__meta{justify-content:center}

@media(max-width:980px){
  .sp-hero--u{
    padding-top:calc(var(--nav-h) + clamp(28px,6vw,48px));
    padding-bottom:clamp(36px,7vw,56px)}
  .sp-hero--u>.wrap{grid-template-columns:1fr;gap:32px}
  .sp-hero--u .sp-hero__art{max-width:420px;margin-inline:auto}
  .sp-hero--u.sp-hero--solo h1,.sp-hero--u.sp-hero--solo .lead{text-align:left}
}


/* ══════════ 关于我们：OPC / 权威认可 / 加入我们（子代理产出，已合并）══════════ */
/* ══════════════════════════════════════════════════════════════════
   关于我们页 · 三块图示化改造的配套样式（aw- 前缀，BEM）
   ------------------------------------------------------------------
   对应 page-about.php 的三个区块：
     #team   OPC：20 位人类精英 + 30 位数字员工  → .aw-opc
     权威认可 CXOU 100                          → .aw-award
     #join   在招岗位标签                        → .aw-join

   ★ 深浅两套都要有。这一页 .sp-sec（深底）与 .sp-sec--lt（浅底）交替出现，
     所以「基础规则 = 深底」，浅底一律用 .sp-sec--lt 覆盖文字色与卡片表面色。
     少写一边就会出现白字压浅底、字直接隐形 —— 这是这页最容易踩的坑。
   ★ 只用 aw- 前缀。2.1 公司简介 / 2.3 发展历程 / 2.4 价值观已占用另一套前缀，
     本文件不写那套前缀的任何规则，避免与既有样式互相覆盖。
   ★ 过渡曲线用 var(--e)：:root 里实际定义的缓动变量是 --e，
     旧样式里有若干处引用了并未定义的缓动变量，那是既存问题，不在本轮范围。
   ★ 本文件是增量片段，需由 page.css 的维护方合并；functions.php 目前只
     enqueue 了 home.css 与 page.css。
   ══════════════════════════════════════════════════════════════════ */


/* ──────────────────────────────────────────────
   ① OPC：20 + 30 —— 配比条 + 双栏对照
   ────────────────────────────────────────────── */
.aw-opc{margin-top:38px}

/* 配比条：宽度由模板按 20 / 30 的占比以 --w 内联给出，这里只负责外观 */
.aw-opc__ratio{display:flex;align-items:stretch;height:92px;
  border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--bd);
  background:rgba(255,255,255,.05)}
.aw-opc__seg{position:relative;display:flex;flex-direction:column;justify-content:center;
  width:var(--w,50%);min-width:0;padding:0 26px}
.aw-opc__seg + .aw-opc__seg{box-shadow:inset 1px 0 0 rgba(255,255,255,.22)}
.aw-opc__seg--human{background:linear-gradient(115deg,rgba(77,97,214,.95),rgba(139,92,246,.9))}
.aw-opc__seg--digital{background:linear-gradient(115deg,rgba(139,92,246,.88),rgba(34,211,238,.6))}
.aw-opc__seg b{font-size:30px;font-weight:800;line-height:1;letter-spacing:-1px;color:#fff;
  font-variant-numeric:tabular-nums}
.aw-opc__seg span{display:block;margin-top:7px;font-size:12.5px;letter-spacing:.6px;
  color:rgba(255,255,255,.92);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 双栏对照：左边人类精英，右边数字员工 */
.aw-opc__cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.aw-opc__col{position:relative;padding:28px 26px;border-radius:var(--r-xl);
  border:1px solid var(--bd);background:rgba(255,255,255,.05);transition:.34s var(--e)}
.aw-opc__col:hover{transform:translateY(-4px);border-color:var(--bd-hi);
  background:rgba(255,255,255,.08)}
.aw-opc__col--human{border-top:3px solid var(--b1)}
.aw-opc__col--digital{border-top:3px solid var(--cyan)}
.aw-opc__top{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.aw-opc__n{font-size:clamp(44px,5.4vw,62px);font-weight:800;line-height:1;letter-spacing:-2px;
  background:linear-gradient(140deg,var(--b1),var(--violet) 60%,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-variant-numeric:tabular-nums}
.aw-opc__name{font-size:16px;font-weight:700;color:var(--od)}
.aw-opc__role{margin:10px 0 16px;font-size:13.5px;line-height:1.7;color:var(--od3)}
.aw-opc__ul{list-style:none;display:grid;gap:9px}
.aw-opc__li{position:relative;padding-left:19px;font-size:13.5px;line-height:1.8;color:var(--od2)}
.aw-opc__li + .aw-opc__li{padding-top:9px;border-top:1px dashed var(--bd)}
.aw-opc__li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;
  border-radius:2px;background:var(--b1)}
.aw-opc__col--digital .aw-opc__li::before{border-radius:50%;background:var(--cyan)}

/* 浅底区：文字换深色、卡片换白底 */
.sp-sec--lt .aw-opc__ratio{border-color:var(--bdl);background:var(--bmist)}
.sp-sec--lt .aw-opc__col{background:#fff;border-color:var(--bdl);
  box-shadow:0 8px 24px rgba(26,31,61,.05)}
.sp-sec--lt .aw-opc__col:hover{border-color:rgba(77,97,214,.34);
  box-shadow:0 16px 36px rgba(26,31,61,.1)}
.sp-sec--lt .aw-opc__name{color:var(--dp)}
.sp-sec--lt .aw-opc__role{color:var(--dp3)}
.sp-sec--lt .aw-opc__li{color:var(--dp2)}
.sp-sec--lt .aw-opc__li + .aw-opc__li{border-top-color:var(--bdl)}

@media(max-width:760px){
  /* 窄屏把配比条竖过来：横向 40% 在 390px 宽下只剩 156px，字会被挤没 */
  .aw-opc__ratio{height:auto;flex-direction:column}
  .aw-opc__seg{width:100%;min-height:76px;padding:14px 22px}
  .aw-opc__seg + .aw-opc__seg{box-shadow:inset 0 1px 0 rgba(255,255,255,.22)}
  .aw-opc__cols{grid-template-columns:1fr}
}


/* ──────────────────────────────────────────────
   ② 权威认可：CXOU 100 徽章 + 荣誉卡
   ────────────────────────────────────────────── */
.aw-award{position:relative;overflow:hidden;display:grid;grid-template-columns:auto 1fr;
  gap:42px;align-items:center;padding:38px 46px;border-radius:var(--r-xl);
  border:1px solid var(--bd);
  background:linear-gradient(140deg,rgba(77,97,214,.18),rgba(34,211,238,.06) 60%,transparent)}
.aw-award__medal{position:relative;flex:0 0 auto;width:152px;height:152px}
.aw-award__ring{position:absolute;inset:-13px;border-radius:50%;
  border:1px dashed rgba(34,211,238,.45)}
.aw-award__badge{position:relative;width:100%;height:100%;border-radius:50%;padding:0 18px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  background:radial-gradient(circle at 34% 26%,rgba(255,255,255,.34),transparent 58%),
             linear-gradient(140deg,var(--b1),var(--violet) 60%,var(--cyan));
  box-shadow:0 22px 52px -16px rgba(77,97,214,.9),inset 0 0 0 1px rgba(255,255,255,.2)}
.aw-award__badge-y{font-size:11.5px;font-weight:700;letter-spacing:2.4px;color:rgba(255,255,255,.86)}
.aw-award__badge b{margin:5px 0 4px;font-size:25px;font-weight:800;line-height:1.1;
  letter-spacing:-.6px;color:#fff;white-space:nowrap}
.aw-award__badge-c{font-size:11.5px;letter-spacing:.8px;color:rgba(255,255,255,.92)}
.aw-award .eyebrow{color:var(--cyan);border-color:rgba(34,211,238,.3);background:rgba(34,211,238,.09)}
.aw-award .eyebrow::before{box-shadow:0 0 8px currentColor}
.aw-award__txt h2{font-size:clamp(21px,2.6vw,29px);font-weight:800;color:#fff;letter-spacing:-.5px;
  line-height:1.4;margin:12px 0 10px}
.aw-award__txt p{font-size:14.5px;line-height:1.8;color:var(--od2);max-width:40em}
.aw-award__tags{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.aw-award__tag{padding:8px 15px;border-radius:var(--r-full);font-size:12.5px;font-weight:600;
  border:1px solid var(--bd);color:var(--od2);background:rgba(255,255,255,.05)}
.aw-award__tag--cy{border-color:rgba(34,211,238,.4);color:var(--cyan);background:rgba(34,211,238,.1)}

/* 浅底区 */
.sp-sec--lt .aw-award{border-color:var(--bdl);background:#fff;
  box-shadow:0 12px 34px rgba(26,31,61,.07)}
.sp-sec--lt .aw-award__ring{border-color:rgba(34,211,238,.6)}
.sp-sec--lt .aw-award__txt h2{color:var(--dp)}
.sp-sec--lt .aw-award__txt p{color:var(--dp2)}
.sp-sec--lt .aw-award__tag{border-color:var(--bdl);color:var(--dp2);background:var(--bmist)}
.sp-sec--lt .aw-award__tag--cy{border-color:rgba(34,211,238,.55);color:#0e7490;
  background:rgba(34,211,238,.12)}

@media(max-width:900px){
  .aw-award{grid-template-columns:1fr;gap:30px;text-align:center;padding:34px 26px}
  .aw-award__medal{margin-inline:auto}
  .aw-award__txt p{margin-inline:auto}
  .aw-award .eyebrow{margin-inline:auto}
  .aw-award__tags{justify-content:center}
}


/* ──────────────────────────────────────────────
   ③ 加入我们：在招岗位标签
   ────────────────────────────────────────────── */
.aw-join{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-bottom:34px;
  padding:24px 28px;border-radius:var(--r-xl);border:1px solid var(--bd);
  background:rgba(255,255,255,.05)}
.aw-join__t{flex:0 0 auto;font-size:12px;font-weight:700;letter-spacing:2px;color:var(--cyan)}
.aw-join__tags{flex:1 1 320px;list-style:none;display:flex;flex-wrap:wrap;gap:10px}
.aw-join__tag{display:inline-flex;align-items:center;gap:9px;padding:9px 16px;
  border-radius:var(--r-full);font-size:13.5px;font-weight:600;color:var(--od);
  border:1px solid var(--bd);background:rgba(255,255,255,.05);transition:.3s var(--e)}
.aw-join__tag::before{content:"";width:7px;height:7px;border-radius:50%;flex:0 0 auto;
  background:var(--cyan);box-shadow:0 0 0 3px rgba(34,211,238,.16)}
.aw-join__tag:hover{transform:translateY(-2px);border-color:rgba(34,211,238,.5);
  background:rgba(34,211,238,.1)}
.aw-join__more{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;padding:11px 20px;
  border-radius:var(--r-full);font-size:13.5px;font-weight:700;color:#fff;
  background:linear-gradient(120deg,var(--b1),var(--violet));
  box-shadow:0 10px 26px -10px rgba(77,97,214,.8);transition:.3s var(--e)}
.aw-join__more i{font-style:normal;transition:transform .3s var(--e)}
.aw-join__more:hover{transform:translateY(-2px);box-shadow:0 16px 34px -10px rgba(77,97,214,.95)}
.aw-join__more:hover i{transform:translateX(3px)}

/* 浅底区 */
.sp-sec--lt .aw-join{border-color:var(--bdl);background:#fff;
  box-shadow:0 10px 28px rgba(26,31,61,.06)}
.sp-sec--lt .aw-join__t{color:var(--b1)}
.sp-sec--lt .aw-join__tag{border-color:var(--bdl);color:var(--dp);background:var(--bmist)}
.sp-sec--lt .aw-join__tag:hover{border-color:rgba(77,97,214,.4);background:var(--bsoft)}
.sp-sec--lt .aw-join__tag::before{background:var(--b1);box-shadow:0 0 0 3px rgba(77,97,214,.14)}

@media(max-width:640px){
  .aw-join{gap:14px;padding:20px 18px}
  .aw-join__more{width:100%;justify-content:center}
}

/* ══════════ Hero 统一规格（修正特异度冲突）══════════
   ★ 历史冲突原因：文件前面有
     .sp-hero>.wrap:not(:has(.sp-hero__art)){grid-template-columns:1.25fr .75fr}
     :not() 让它特异度升到 (0,3,0)，与本节同优先级，靠书写顺序决胜。
   ★ 该规则本来只想管「无插画」的页面，但模板当时把 art 写在 .wrap 外面，
     :has() 恒不命中 → 它连有插画的页面一起接管了。art 移进 .wrap 后，
     :has() 才恢复本意：只命中真正没有插画的页面。
   现在的分工：
     · 有插画（.sp-hero--art）→ 真正 1:1 对称，插画和文字各占一半
     · 无插画（.sp-hero--solo）→ 文字居中单栏，不再右侧空一大块
     · 其余无 art/solo 标记的老页面 → 仍由上面 1.25fr/.75fr 那条兜底 */

.sp-hero--u.sp-hero--art>.wrap{grid-template-columns:1fr 1fr;
  gap:clamp(32px,4.4vw,72px);align-items:center}
.sp-hero--u.sp-hero--art h1{max-width:15em}
.sp-hero--u.sp-hero--art .lead{max-width:30em}
.sp-hero--u.sp-hero--art .sp-hero__meta{justify-content:flex-start}

.sp-hero--u.sp-hero--solo>.wrap{grid-template-columns:1fr;max-width:1020px;
  gap:0;text-align:center}
.sp-hero--u.sp-hero--solo .eyebrow{justify-self:center}
.sp-hero--u.sp-hero--solo h1,.sp-hero--u.sp-hero--solo .lead{margin-inline:auto}
.sp-hero--u.sp-hero--solo .lead{max-width:48em}
.sp-hero--u.sp-hero--solo .sp-hero__meta{justify-content:center;margin-top:28px}

/* 插画块与文字栏等高对齐，插画不因自身尺寸显得偏小 */
.sp-hero--u.sp-hero--art .sp-hero__art{align-self:center;justify-self:end;
  width:100%;max-width:520px}
.sp-hero--u.sp-hero--art .sp-hero__art svg{width:100%;height:auto}

@media(max-width:980px){
  .sp-hero--u.sp-hero--art>.wrap,
  .sp-hero--u.sp-hero--solo>.wrap{grid-template-columns:1fr;gap:30px}
  .sp-hero--u.sp-hero--solo{text-align:left}
  .sp-hero--u.sp-hero--solo h1,
  .sp-hero--u.sp-hero--solo .lead{margin-inline:0;text-align:left}
  .sp-hero--u.sp-hero--art .sp-hero__art{justify-self:center;max-width:420px}
}


/* ══════════ Hero 收尾：无插画页（solo）彻底单栏 ══════════
   .sp-hero>.wrap:not(:has(.sp-hero__art)) 会把 .sp-hero__meta 放进第 2 列并
   justify-self:end（靠右），于是 solo 页出现「标题在左、标签条孤零零在右下」。
   这里把 meta 拉回第 1 列、整块居中，与标题共用同一基线。 */
.sp-hero--u.sp-hero--solo>.wrap>.sp-hero__meta{grid-column:1;grid-row:auto;
  justify-self:center;align-self:center;max-width:none;margin-top:28px}
.sp-hero--u.sp-hero--solo>.wrap>*{grid-column:1!important;grid-row:auto!important;
  justify-self:center;align-self:center}

/* ══════════ Hero 收尾：有插画页（art）插画归位成第 2 列 ══════════
   ★ 起因：8 个模板曾把 .sp-hero__art 写在 .wrap 外面（与 .wrap 平级），
     造成两个连锁误判 —— 实测截图确认：
     ① .sp-hero>.wrap:not(:has(.sp-hero__art)) 对所有页恒成立，
        于是 .sp-hero__meta 被塞进第 2 列 + justify-self:end，
        标签条飘到右栏、悬在插画正中间（products / trust 页肉眼可见）。
     ② .sp-hero--u.sp-hero--art .sp-hero__art{justify-self:end} 作用在
        position:absolute 的元素上，justify-self / align-self 根本不生效。
   模板已把 art 移进 .wrap，这里配套解除绝对定位并固定网格位：
     文字四件套（eyebrow/h1/lead/meta）→ 第 1 列纵向排列
     插画 → 第 2 列，跨满四行垂直居中，真正做到 1:1 对称。 */
.sp-hero--u.sp-hero--art .sp-hero__art{
  position:static;top:auto;right:auto;bottom:auto;transform:none;opacity:1;
  width:100%;max-width:520px;align-self:center;justify-self:end;z-index:auto}
.sp-hero--u.sp-hero--art>.wrap>.eyebrow,
.sp-hero--u.sp-hero--art>.wrap>h1,
.sp-hero--u.sp-hero--art>.wrap>.lead,
.sp-hero--u.sp-hero--art>.wrap>.sp-hero__meta{grid-column:1;grid-row:auto}
.sp-hero--u.sp-hero--art>.wrap>.sp-hero__meta{justify-self:start;max-width:none}
.sp-hero--u.sp-hero--art>.wrap>.sp-hero__art{grid-column:2;grid-row:1/span 4}

/* 窄屏收尾：单栏后插画落到标题下方居中，并撤掉旧的绝对定位残留 */
@media(max-width:1280px){
  .sp-hero--u.sp-hero--art>.wrap>.sp-hero__art{max-width:420px}
}
@media(max-width:980px){
  .sp-hero--u.sp-hero--art>.wrap>.sp-hero__art{
    grid-column:1;grid-row:auto;justify-self:center;max-width:420px;margin-top:8px}
}
/* ══════════════════════════════════════════════════════════════
   关于我们页 · 文字墙图示化（第二轮）
   ──────────────────────────────────────────────────────────────
   起因：用户指出本页仍有大块静态文字。实测文本量最密的四块是
     转身双栏 576 字 / 起点三卡 561 字 / 5 条相信 458 字 / 三步走 286 字。
   处理原则：**一个字都不删**，只把长段落换成可扫读的图示 ——
     · 转身左侧 4 段年限 → 阶梯条（条高 = 年限/30）
     · 转身右侧 4 项能力 → 2×2 图标矩阵
     · 起点三卡     → 每卡一张示意图（口径发散 / 花费错位 / AI 三种下场）
     · 三步走       → 贯穿式进度轨 + 节点
     · 三个节点     → 贯穿式时间轴 + 节点
     · 居中过渡段   → 引文式竖线，不再是一整块居中文字
   ══════════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════════
   关于我们页 · 浅底区块（.sp-sec--lt）配色纠偏
   ──────────────────────────────────────────────────────────────
   ★ 既有问题，本轮做图示时被截图暴露：
     .sp-painc 是按「暗底卡」写的（h3{color:#fff}、底 rgba(255,255,255,.045)），
     但「起点」这一节带 sp-sec--lt，实际落在浅色底上 →
       白字压浅底 = 标题完全隐形（实测 h3 仍解析为 rgb(255,255,255)），
     正文 p 则被 .sp-sec--lt 的 --dp2 覆盖成深色，于是出现
     「标题看不见、正文正常」的怪相。
   这里补一套浅底变体：卡底改白、标题改墨色。
   ══════════════════════════════════════════════════════════════ */
.sp-sec--lt .sp-painc{background:#fff;border-color:var(--bdl);box-shadow:0 10px 26px rgba(26,31,61,.05)}
.sp-sec--lt .sp-painc:hover{border-color:rgba(77,97,214,.34);box-shadow:0 20px 44px rgba(26,31,61,.1)}
.sp-sec--lt .sp-painc h3{color:var(--dp)}
.sp-sec--lt .sp-painc p{color:var(--dp2)}
.sp-sec--lt .sp-painc__ic{background:rgba(77,97,214,.1);border-color:rgba(77,97,214,.22)}
.sp-sec--lt .sp-painc__ic svg{stroke:var(--b1)}
.sp-sec--lt .sp-painc:nth-child(2) .sp-painc__ic{background:rgba(34,211,238,.12);border-color:rgba(34,211,238,.28)}
.sp-sec--lt .sp-painc:nth-child(3) .sp-painc__ic{background:rgba(251,146,110,.12);border-color:rgba(251,146,110,.28)}

/* 浅底下的三张示意图：底色改淡、描边改灰、文字改墨色 */
.sp-sec--lt .ab-diverge,
.sp-sec--lt .ab-miss,
.sp-sec--lt .ab-ai{background:rgba(77,97,214,.045);border-color:var(--bdl)}
.sp-sec--lt .ab-diverge__src{color:var(--dp2)}
.sp-sec--lt .ab-diverge__n{color:var(--dp2);border-color:var(--bdl);background:rgba(77,97,214,.05)}
.sp-sec--lt .ab-miss__k{color:var(--dp2)}
.sp-sec--lt .ab-miss__t{background:rgba(26,31,61,.08)}
.sp-sec--lt .ab-miss__note{color:var(--dp2)}
.sp-sec--lt .ab-ai__q{color:var(--dp2)}
.sp-sec--lt .ab-ai__tags b{color:var(--dp2);border-color:var(--bdl);background:rgba(77,97,214,.05)}
.sp-sec--lt .ab-ai__s--gone{color:var(--dp2);border-color:var(--bdl);background:rgba(26,31,61,.04)}
/* ★ 浅底上不能沿用暗底那套亮绿/亮橙（实测 1.35:1 / 1.48:1，低于 2.0），
   改用同一色相的深一档，浅底可读 */
.sp-sec--lt .ab-ai__s--ok{color:#0f7a5a;border-color:rgba(15,122,90,.32);background:rgba(16,185,129,.12)}
.sp-sec--lt .ab-ai__s--bad{color:#a4552a;border-color:rgba(164,85,42,.32);background:rgba(251,146,110,.14)}

/* 浅底下的年限阶梯：底改淡、轨道底色改灰、标签改墨色 */
.sp-sec--lt .ab-steps{background:rgba(77,97,214,.045);border-color:var(--bdl)}
.sp-sec--lt .ab-steps__lab{color:var(--dp2)}
.sp-sec--lt .ab-steps__track{background:linear-gradient(0deg,rgba(26,31,61,.06),transparent);
  border-bottom-color:var(--bdl)}
.sp-sec--lt .ab-steps__val{color:var(--dp)}
.sp-sec--lt .ab-steps__val i{color:var(--dp2)}

/* 浅底下的居中引文段 */
.sp-sec--lt .sp-ctr.ab-mid{background:linear-gradient(120deg,rgba(77,97,214,.08),rgba(34,211,238,.06))}
.sp-painc__ic{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;
  margin-bottom:14px;background:rgba(139,92,246,.14);border:1px solid rgba(139,92,246,.3)}
.sp-painc__ic svg{width:21px;height:21px;fill:none;stroke:var(--violet);
  stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sp-painc:nth-child(2) .sp-painc__ic{background:rgba(34,211,238,.12);border-color:rgba(34,211,238,.3)}
.sp-painc:nth-child(2) .sp-painc__ic svg{stroke:var(--cyan)}
.sp-painc:nth-child(3) .sp-painc__ic{background:rgba(251,146,110,.12);border-color:rgba(251,146,110,.3)}
.sp-painc:nth-child(3) .sp-painc__ic svg{stroke:#fb926c}

/* ── 起点卡①：一份投入分出三个口径 ── */
.ab-diverge{display:grid;gap:9px;margin-top:16px;padding:14px 15px;border-radius:14px;
  background:rgba(8,12,38,.5);border:1px solid var(--bd)}
.ab-diverge__src{font-size:12px;color:var(--od3);letter-spacing:.4px}
.ab-diverge__fork{display:flex;align-items:center;gap:0;height:12px}
.ab-diverge__fork i{flex:1;height:1.5px;background:linear-gradient(90deg,var(--b1),var(--violet))}
.ab-diverge__out{display:flex;flex-direction:column;gap:6px}
.ab-diverge__n{display:block;font-size:11.5px;font-weight:600;padding:5px 11px;border-radius:99px;
  border:1px solid var(--bd);color:var(--od2);background:rgba(255,255,255,.04)}
.ab-diverge__n--a{border-color:rgba(52,211,153,.36);color:#6ee7b7}
.ab-diverge__n--b{border-color:rgba(34,211,238,.36);color:#67e8f9}
.ab-diverge__n--c{border-color:rgba(251,146,110,.36);color:#fdba74}

/* ── 起点卡②：花费与效果错位 ── */
.ab-miss{display:grid;gap:9px;margin-top:16px;padding:14px 15px;border-radius:14px;
  background:rgba(8,12,38,.5);border:1px solid var(--bd)}
.ab-miss__row{display:grid;grid-template-columns:96px 1fr;gap:10px;align-items:center}
.ab-miss__k{font-size:11.5px;color:var(--od2)}
.ab-miss__t{display:block;height:9px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}
.ab-miss__t i{display:block;height:100%;width:var(--w);border-radius:99px;
  background:linear-gradient(90deg,var(--b1),var(--violet))}
.ab-miss__t i.is-cy{background:linear-gradient(90deg,var(--cyan),#67e8f9)}
.ab-miss__note{margin:2px 0 0;font-size:11px;color:var(--od3);letter-spacing:.4px}

/* ── 起点卡③：AI 回答里的三种品牌下场 ── */
.ab-ai{display:grid;gap:11px;margin-top:16px;padding:14px 15px;border-radius:14px;
  background:rgba(8,12,38,.5);border:1px solid var(--bd)}
.ab-ai__q{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--od2);flex-wrap:wrap}
.ab-ai__dot{width:7px;height:7px;border-radius:50%;background:var(--cyan);
  box-shadow:0 0 0 3px rgba(34,211,238,.16)}
.ab-ai__tags{display:flex;gap:5px;margin-left:auto}
.ab-ai__tags b{font-size:10.5px;font-weight:600;padding:3px 8px;border-radius:99px;
  border:1px solid var(--bd);color:var(--od3);background:rgba(255,255,255,.04)}
.ab-ai__r{display:flex;gap:6px}
.ab-ai__s{flex:1;text-align:center;font-size:11.5px;font-weight:600;padding:7px 4px;
  border-radius:9px;border:1px solid}
.ab-ai__s--ok{color:#6ee7b7;border-color:rgba(52,211,153,.36);background:rgba(52,211,153,.1)}
.ab-ai__s--gone{color:var(--od3);border-color:var(--bd);background:rgba(255,255,255,.03)}
.ab-ai__s--bad{color:#fdba74;border-color:rgba(251,146,110,.4);background:rgba(251,146,110,.1)}

/* ── 转身左侧：从业年限阶梯 ──
   ★ 版式说明：横排「标签 | 条 | 数字」三列时，标签列只有 1fr，
     "制造业大客户营销"这类长标签会被 ellipsis 截成「制…」（实测截图）。
     改成「标签在上、条在下」竖排，纵向空间充足，标签永不截断。 */
.ab-steps{display:grid;gap:11px;margin-top:16px;padding:16px 16px 14px;border-radius:14px;
  background:rgba(8,12,38,.55);border:1px solid var(--bd)}
.ab-steps__row{display:grid;gap:5px}
.ab-steps__lab{font-size:12px;color:var(--od2);line-height:1.4;word-break:keep-all}
.ab-steps__track{position:relative;height:30px;display:flex;align-items:flex-end;
  background:linear-gradient(0deg,rgba(255,255,255,.05),transparent);
  border-bottom:1px solid var(--bd)}
.ab-steps__bar{display:block;width:var(--w,100%);height:100%;border-radius:4px 4px 0 0;
  background:linear-gradient(90deg,var(--b1),var(--violet));
  transform-origin:left;transform:scaleX(0);
  transition:transform .7s var(--ease) both}
.is-in .ab-steps__bar{transform:scaleX(1)}
.is-in .ab-steps__row:nth-child(2) .ab-steps__bar{transition-delay:.08s}
.is-in .ab-steps__row:nth-child(3) .ab-steps__bar{transition-delay:.16s}
.is-in .ab-steps__row:nth-child(4) .ab-steps__bar{transition-delay:.24s}
.ab-steps__val{position:absolute;right:0;bottom:calc(100% + 4px);
  font-size:14px;font-weight:800;color:#fff;letter-spacing:-.4px;line-height:1}
.ab-steps__val i{font-size:10.5px;font-style:normal;font-weight:600;color:var(--od3);margin-left:1px}

/* ── 转身右侧：能力矩阵 2×2 ── */
.ab-mx{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}
.ab-mx__i{display:grid;gap:7px;padding:14px 13px;border-radius:13px;
  background:rgba(34,211,238,.055);border:1px solid rgba(34,211,238,.2);
  transition:transform .3s var(--ease),border-color .3s var(--ease),background .3s var(--ease)}
.ab-mx__i:hover{transform:translateY(-4px);border-color:rgba(34,211,238,.5);
  background:rgba(34,211,238,.1)}
.ab-mx__ic{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;
  background:rgba(34,211,238,.13);border:1px solid rgba(34,211,238,.26)}
.ab-mx__ic svg{width:17px;height:17px;fill:none;stroke:var(--cyan);
  stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ab-mx__i b{font-size:12.5px;font-weight:650;color:#fff;line-height:1.5}

/* ── 三步走：贯穿式进度轨 ── */
.sp-road{position:relative;padding-top:26px}
.sp-road::before{content:"";position:absolute;left:12%;right:12%;top:11px;height:2px;
  background:linear-gradient(90deg,rgba(52,211,153,.75),var(--violet) 46%,rgba(255,255,255,.14))}
.sp-roadc::before{content:"";position:absolute;left:50%;top:-26px;width:13px;height:13px;
  margin-left:-6.5px;border-radius:50%;background:var(--bdeeper);
  border:2.5px solid var(--bd-hi);box-shadow:0 0 0 5px rgba(77,97,214,.12)}
.sp-roadc.is-done::before{background:#34d399;border-color:#34d399;
  box-shadow:0 0 0 5px rgba(52,211,153,.14)}
.sp-roadc.is-now::before{background:var(--violet);border-color:#c4b5fd;
  box-shadow:0 0 0 5px rgba(139,92,246,.2)}
.sp-roadc.is-next::before{border-style:dashed;background:var(--bdeeper)}

/* ── 三个节点：贯穿式时间轴 ── */
.ab-tl{position:relative;padding-top:26px}
.ab-tl::before{content:"";position:absolute;left:12%;right:12%;top:11px;height:2px;
  background:linear-gradient(90deg,rgba(34,211,238,.5),rgba(139,92,246,.7))}
.ab-tlc::before{content:"";position:absolute;left:50%;top:-26px;width:13px;height:13px;
  margin-left:-6.5px;border-radius:50%;background:var(--violet);
  border:2.5px solid #c4b5fd;box-shadow:0 0 0 5px rgba(139,92,246,.16)}
.ab-tlc:nth-child(2)::before{background:var(--cyan);border-color:#a5f3fc;
  box-shadow:0 0 0 5px rgba(34,211,238,.16)}
.ab-tlc:nth-child(3)::before{background:#34d399;border-color:#a7f3d0;
  box-shadow:0 0 0 5px rgba(52,211,153,.16)}

/* ── 居中过渡段：改成引文，不再是一整块居中文字 ── */
.sp-ctr.ab-mid{position:relative;padding:26px 30px 26px 34px;border-radius:16px;
  background:linear-gradient(120deg,rgba(139,92,246,.08),rgba(34,211,238,.05));
  border-left:3px solid var(--violet)}
.sp-ctr.ab-mid .lead{margin:0;line-height:1.95}

/* ── 窄屏 ── */
@media(max-width:1080px){
  .sp-road::before,.ab-tl::before{left:50%;right:auto;top:8px;bottom:8px;width:2px;height:auto;
    background:linear-gradient(180deg,rgba(52,211,153,.7),var(--violet) 46%,rgba(255,255,255,.14))}
  .sp-roadc::before,.ab-tlc::before{left:0;top:16px;margin-left:0}
}
@media(max-width:640px){
  .ab-steps__lab{font-size:11.5px}
  .ab-mx{grid-template-columns:1fr}
  .ab-ai__tags{margin-left:0}
  .sp-ctr.ab-mid{padding:20px 20px 20px 22px}
}