/* ==========================================================================
   PARTNERS — 「五步路线」专属版面
   --------------------------------------------------------------------------
   由 content/en/partners.json 的 _meta.css 挂载，**只在这一页生效**。
   规则来源：全部复用站内已有 token（色板 / 字体 / 间距 / 缓动），
   不引入任何新颜色、新字体、新组件 —— 只是把这一页的版面重新编排。
   每条规则都带 body[data-page="partners.html"] 前缀，改不到别的页面。

   这一页原来五个区块是直接套通用组件堆起来的，具体毛病：
     1. .steps 是 3 列网格（编号 / 标题 / 正文），但没有正文 → 右侧一整列空着
     2. 两个 Action 卡放进 3 列的 .svc-grid → 永远空掉右边 1/3
     3. 卡里没有配图，.svc__media 仍是 4/5 空面板，只有一个角标
     4. 五个图文屏（split）完全同款，且区块的 idx="Step 01" 模板从不渲染 → 看不到序号
     5. 全页一色到底，没有任何明暗对比或停顿
   下面逐条处理。
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. 让 position:sticky 生效
   tokens.css 里 body{overflow-x:hidden} 会新建滚动容器，sticky 会在里面失效。
   overflow-x:clip 同样裁掉横向溢出，但不新建滚动容器。
   -------------------------------------------------------------------------- */
body[data-page="partners.html"]{overflow-x:clip}

/* --------------------------------------------------------------------------
   1. 首屏
   首屏标题的 em（「4 Steps」）与 h1 一字同形：字体族 / 字重 / 字号 / 字距 / 行高
   全部继承 h1，只保留金色作为唯一的强调手段。
   原先这里套的是衬线斜体（站内既有的「sans 打底 + 衬线斜体转折」手法），
   但首屏标题被拆成 h1 + h1_em 两个字段后，一个标题里出现了两套字体 ——
   所以只在这一处取消斜体衬线；结尾声明段的 .theme--statement .h-lg 照常使用该手法。
   -------------------------------------------------------------------------- */
body[data-page="partners.html"] .hero h1 em{
  font-family:inherit;
  font-style:inherit;font-weight:inherit;font-variation-settings:inherit;
  font-size:1em;line-height:inherit;letter-spacing:inherit;
  color:var(--gold-lt);
}
body[data-page="partners.html"] .hero__spec{border-left-color:rgba(201,162,74,.34)}

/* --------------------------------------------------------------------------
   2. 五步路线条（.steps）
   原来：纵向 3 列网格，右侧空白。
   现在：桌面横向五节「路线」——一条细金线串起五个菱形节点，大号等宽编号在上，
   标题在下；悬停节点实心。窄屏退回纵向路线（左脊 + 节点）。
   -------------------------------------------------------------------------- */
body[data-page="partners.html"] .steps{--rail:clamp(30px,3.2vw,44px)}
body[data-page="partners.html"] .steps{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  gap:clamp(14px,1.8vw,28px);
}
body[data-page="partners.html"] .steps::before{
  content:"";position:absolute;left:4px;right:4px;width:auto;
  top:calc(var(--rail) + .5px);bottom:auto;height:1px;
  background:linear-gradient(90deg,var(--gold),rgba(201,162,74,.18));
}
body[data-page="partners.html"] .step{
  display:block;padding:var(--rail) 0 0;border-bottom:0;
}
body[data-page="partners.html"] .step:hover{background:transparent}
body[data-page="partners.html"] .step::before{
  left:0;top:calc(var(--rail) - 5px);
  width:11px;height:11px;
  background:var(--ink);border:1px solid var(--gold);
  transform:rotate(45deg);
  transition:background .4s var(--ease),transform .5s var(--ease);
}
body[data-page="partners.html"] .step:hover::before{
  background:var(--gold);transform:rotate(45deg) scale(1.4);
}
body[data-page="partners.html"] .step__n{
  padding-top:0;font-size:clamp(1.45rem,2.5vw,2.2rem);line-height:1;
  font-weight:500;letter-spacing:.02em;color:var(--gold);
  font-variant-numeric:tabular-nums;
}
body[data-page="partners.html"] .step__t{margin-top:clamp(10px,1.3vw,18px)}
body[data-page="partners.html"] .step__t h3{
  font-size:clamp(.96rem,1.1vw,1.1rem);line-height:1.3;letter-spacing:-.012em;
  max-width:17ch;transition:color .4s var(--ease);
}
body[data-page="partners.html"] .step:hover .step__t h3{color:var(--gold-lt)}
@media(max-width:900px){
  body[data-page="partners.html"] .steps{grid-template-columns:minmax(0,1fr);gap:0}
  body[data-page="partners.html"] .steps::before{
    left:4px;right:auto;top:var(--rail);bottom:0;width:1px;height:auto;
    background:linear-gradient(180deg,var(--gold),rgba(201,162,74,.16));
  }
  body[data-page="partners.html"] .step{
    padding:clamp(18px,4.4vw,26px) 0 clamp(18px,4.4vw,26px) clamp(24px,5vw,34px);
    border-bottom:1px solid var(--line);
  }
  body[data-page="partners.html"] .step:last-child{border-bottom:0}
  body[data-page="partners.html"] .step::before{top:calc(clamp(18px,4.4vw,26px) + 4px)}
  body[data-page="partners.html"] .step__t h3{max-width:none}
}

/* --------------------------------------------------------------------------
   3. 步骤行（split → .section--step）
   模板钩子：JSON 里给 split 写 "step":"01" 时，
     · 区块获得 .section--step 与 data-step，用于右上角的描边幽灵数字
     · 正文列顶部多一行 .pstep（编号 + 眉标 + 金线），并吞掉原来的 .eyebrow
   不写 step 的 split（about 页那份）完全不受影响。
   -------------------------------------------------------------------------- */
body[data-page="partners.html"] .section--step{
  border-top:1px solid var(--line);
  padding-block:clamp(56px,6.6vw,112px);
}
/* 右上角描边幽灵数字：装饰件，不参与布局 */
body[data-page="partners.html"] .section--step::before{
  content:attr(data-step);
  position:absolute;top:clamp(0px,.4vw,8px);right:calc(var(--pad-x) - .04em);
  font-weight:900;font-variation-settings:'wdth' 94,'wght' 900;
  font-size:clamp(3rem,6vw,6rem);line-height:.8;letter-spacing:-.05em;
  color:transparent;-webkit-text-stroke:max(1px,.007em) var(--line-2);
  pointer-events:none;user-select:none;z-index:0;
}
body[data-page="partners.html"] .section--step > .u-container{position:relative;z-index:1}

/* 步骤抬头：大号编号 + 眉标 + 贯穿金线；滚动时吸附在导航下方 */
body[data-page="partners.html"] .pstep{
  display:flex;align-items:baseline;gap:clamp(12px,1.5vw,20px);
  padding:6px 0 clamp(10px,1.2vw,15px);
  margin-bottom:clamp(16px,1.9vw,26px);
  border-bottom:1px solid var(--line-2);
  position:sticky;top:calc(var(--nav-h) + 10px);z-index:3;
  background:linear-gradient(180deg,var(--ink) 70%,rgba(11,11,12,.82));
  backdrop-filter:blur(6px);
}
body[data-page="partners.html"] .pstep::after{
  content:"";position:absolute;left:0;bottom:-1px;
  width:clamp(46px,6vw,88px);height:1px;background:var(--gold);
}
body[data-page="partners.html"] .pstep__n{
  font-family:var(--f-mono);font-variant-numeric:tabular-nums;
  font-size:clamp(1.5rem,2.4vw,2.15rem);font-weight:500;line-height:1;
  letter-spacing:.02em;color:var(--gold);
}
body[data-page="partners.html"] .pstep__e{
  font-family:var(--f-mono);font-size:11px;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
}
@media(max-width:900px){
  body[data-page="partners.html"] .pstep{position:static;background:none;backdrop-filter:none}
  body[data-page="partners.html"] .section--step::before{display:none}
}

/* 配图：金色角标 + 悬停轻推（不做位移，避免与幽灵数字打架） */
body[data-page="partners.html"] .section--step .figure{border-color:var(--line-2)}
body[data-page="partners.html"] .section--step .figure img{
  filter:saturate(.78) contrast(1.06) brightness(.9);
  transition:transform 1.3s var(--ease),filter .6s var(--ease);
}
body[data-page="partners.html"] .section--step .figure:hover img{
  transform:scale(1.03);filter:saturate(.96) contrast(1.04) brightness(.96);
}
body[data-page="partners.html"] .section--step .figure::after{
  content:"";position:absolute;left:0;top:0;z-index:2;pointer-events:none;
  width:clamp(30px,3.2vw,54px);height:clamp(30px,3.2vw,54px);
  border-top:1px solid var(--gold);border-left:1px solid var(--gold);
}

/* 要点清单：做成有边界的面板，行距收紧，悬停提亮 */
body[data-page="partners.html"] .section--step .ticklist{border-top:1px solid var(--line-2)}
body[data-page="partners.html"] .section--step .ticklist li{
  padding:clamp(12px,1.4vw,17px) 0;font-size:14.6px;line-height:1.62;
  transition:color .35s var(--ease);
}
body[data-page="partners.html"] .section--step .ticklist li:hover{color:var(--bone)}
body[data-page="partners.html"] .section--step .ticklist li:last-child{border-bottom:1px solid var(--line-2)}

/* 注记（subs）：小标题改走等宽金标，与全站 .eyebrow 同族；正文降为安静的注释 */
body[data-page="partners.html"] .section--step .h-sm{
  display:flex;align-items:center;gap:10px;
  font-family:var(--f-mono);font-size:11px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
}
body[data-page="partners.html"] .section--step .h-sm::before{
  content:"";width:6px;height:6px;flex:none;background:var(--gold);border-radius:1px;
}
body[data-page="partners.html"] .section--step .h-sm + .lede{
  font-size:clamp(.95rem,1.06vw,1.08rem);line-height:1.7;color:var(--muted);
}

/* --------------------------------------------------------------------------
   4. 备忘录对照表（theme="light"）
   —— 不把它做成表格，做成「两块对立的账本」：
      中间一条金色中脊，左金方块 / 右细横线两套标记贯穿到底，
      每一对是一个带编号的单元（不是 5 行 × 2 格），行与行之间只留发丝线。
      全页唯一的亮底段落 —— 一个明暗停顿，让这块成为视觉锚点。
   ⚠️ 顺带修一个已有缺陷：.tbl td:first-child 用的是 var(--bone)，而
      .theme--light 只覆盖了 --bone-2 / --muted，没覆盖 --bone，
      浅底上第一列会变成近白字、几乎看不见。此处补上。
   -------------------------------------------------------------------------- */
body[data-page="partners.html"] .theme--light .lede{ color:#3A382F }

/* 面板：让这张对照表从底色上「抬起来」，成为一个物件 */
body[data-page="partners.html"] .tblwrap{
  position:relative;
  margin-top:clamp(1.8rem,3.2vw,2.8rem);
  background:#FCFAF5;
  border:1px solid rgba(11,11,12,.10);
  border-radius:var(--r);
  overflow:clip;
}
body[data-page="partners.html"] .tbl{
  width:100%; min-width:0; table-layout:fixed; border-collapse:collapse;
}

/* ── 表头：两块面板的抬头 ── */
body[data-page="partners.html"] .tbl thead th{ width:50%;
  position:relative; text-align:left;
  padding:clamp(16px,1.9vw,24px) clamp(16px,2vw,30px) clamp(14px,1.6vw,20px);
  border-bottom:1px solid rgba(11,11,12,.30);
  font-family:var(--f-mono); font-size:10.4px; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink);
}
body[data-page="partners.html"] .tbl thead th::before{
  content:"\2714\FE0E"; display:inline-block; vertical-align:0;
  width:14px; margin-right:8px; text-align:left;
  font-size:11.5px; font-weight:700; line-height:1; letter-spacing:0;
  color:#17804C;
}
body[data-page="partners.html"] .tbl thead th:nth-child(2)::before{
  content:"\2716\FE0E"; color:var(--signal);
}

/* ── 金色中脊：两列不再读成一片网格 ── */
body[data-page="partners.html"] .tbl th:nth-child(2),
body[data-page="partners.html"] .tbl td:nth-child(2){
  border-left:1px solid rgba(201,162,74,.28);
}

/* ── 成对编号（CSS 计数器，不需要改 HTML） ── */
body[data-page="partners.html"] .tbl tbody{ counter-reset:pair 0 }
body[data-page="partners.html"] .tbl tbody tr{ counter-increment:pair 1 }

/* ── 正文格 ── */
body[data-page="partners.html"] .tbl td{
  position:relative; vertical-align:top;
  padding:clamp(17px,1.9vw,24px) clamp(16px,2vw,30px);
  font-size:14.4px; line-height:1.62;
}
body[data-page="partners.html"] .tbl tbody tr + tr td{
  border-top:1px solid rgba(11,11,12,.09);
}

/* 左列＝「含」：✔ 排在正文之前（::before 本就在内容之前），天然与首行基线对齐 */
body[data-page="partners.html"] .tbl td:first-child{
  color:var(--ink); font-size:15.2px; font-weight:600;
  padding-left:calc(clamp(16px,2vw,30px) + 30px);
}
/* 成对编号退到左侧留白槽：绝对定位，不参与行内流 */
body[data-page="partners.html"] .tbl td:first-child::after{
  content:counter(pair,decimal-leading-zero);
  position:absolute; left:clamp(16px,2vw,30px);
  top:calc(clamp(17px,1.9vw,24px) + 4px);
  font-family:var(--f-mono); font-size:10.4px; font-weight:400;
  letter-spacing:.08em; color:var(--muted);
}

/* 右列＝「不含」：轻一档，✖ 同样走行内流 —— 两列的符号与正文落在同一条竖线上 */
body[data-page="partners.html"] .tbl td:nth-child(2){
  color:#3A382F; font-size:14.4px; font-weight:400;
  padding-left:calc(clamp(16px,2vw,30px) + 30px);
}

/* ── 判定符号本体：✔ 绿 / ✖ 红 ──
   ① 尾部 \FE0E 是「文字呈现」变体选择符。U+2714 / U+2716 本身虽是 Emoji_Presentation=No，
      但在部分系统上会被 emoji 字体抢走 —— 那样 color 就失效、渲染成彩色表情（永远红/绿）。
      显式带上 FE0E 才能保证这两枚符号的颜色由 CSS 说了算。
   ② inline-block + 定宽居中：两列的符号起点与正文起点因此严格对齐。 */
body[data-page="partners.html"] .tbl td:first-child::before,
body[data-page="partners.html"] .tbl td:nth-child(2)::before{
  display:inline-block; width:16px; margin-right:6px; text-align:center;
  font-size:13.5px; font-weight:700; line-height:1; letter-spacing:0;
}
body[data-page="partners.html"] .tbl td:first-child::before{
  content:"\2714\FE0E"; color:#17804C;
}
body[data-page="partners.html"] .tbl td:nth-child(2)::before{
  content:"\2716\FE0E"; color:var(--signal);
}

/* 悬停：整对同时亮起，左缘弹出一道金条 —— 强调「这两个是一组对照」 */
body[data-page="partners.html"] .tbl tbody tr{ transition:background .2s var(--ease) }
body[data-page="partners.html"] .tbl tbody tr:hover{ background:rgba(201,162,74,.075) }
body[data-page="partners.html"] .tbl tbody tr:hover td:first-child{
  box-shadow:inset 3px 0 0 var(--gold);
}

/* ── 签名说明：从「一行小灰字」升格为页脚条款条 ── */
body[data-page="partners.html"] .theme--light p.u-mono{
  display:flex; align-items:flex-start; gap:12px;
  margin-top:clamp(14px,1.6vw,20px);
  padding:clamp(15px,1.7vw,20px) clamp(16px,2vw,26px);
  background:rgba(11,11,12,.032);
  border:1px solid rgba(11,11,12,.08);
  border-radius:var(--r);
  font-size:12.6px; line-height:1.6; letter-spacing:.02em;
  color:#3A382F; text-transform:none;
}
body[data-page="partners.html"] .theme--light p.u-mono::before{
  content:""; flex:0 0 auto; width:8px; height:8px; margin-top:6px;
  background:var(--gold); border-radius:1px; transform:rotate(45deg);
}

/* ── 窄屏：保住两列的对照关系，只收紧字号与留白（编号槽让出） ── */
@media (max-width:760px){
  body[data-page="partners.html"] .tbl thead th{
    font-size:9.6px; letter-spacing:.10em; padding:14px 12px 12px;
  }
  body[data-page="partners.html"] .tbl thead th::before{
    width:13px; margin-right:6px; font-size:10.5px;
  }
  body[data-page="partners.html"] .tbl td{ padding:15px 12px; font-size:12.8px }
  /* 窄屏把编号槽让出来：编号隐藏，✔ / ✖ 直接起行，两列仍落在同一条竖线上 */
  body[data-page="partners.html"] .tbl td:first-child{
    font-size:13.4px; padding-left:12px;
  }
  body[data-page="partners.html"] .tbl td:first-child::after{ display:none }
  body[data-page="partners.html"] .tbl td:nth-child(2){ padding-left:12px }
  body[data-page="partners.html"] .tbl td:first-child::before,
  body[data-page="partners.html"] .tbl td:nth-child(2)::before{
    width:14px; margin-right:5px; font-size:12.5px;
  }
  body[data-page="partners.html"] .theme--light p.u-mono{
    font-size:12px; padding:14px; gap:10px;
  }
}

body[data-page="partners.html"] .theme--light .u-mono.u-muted{color:#7A7568;margin-top:clamp(14px,1.6vw,20px)}

/* --------------------------------------------------------------------------
   5. 结尾声明（theme="statement"）
   「It marks the beginning of the cooperation.」是这一页分量最重的一句，
   用衬线斜体把它变成一枚引语，而不是又一个 h2。
   -------------------------------------------------------------------------- */
body[data-page="partners.html"] .theme--statement{
  background:
    radial-gradient(760px 320px at 14% 0%,rgba(201,162,74,.11),transparent 62%),
    var(--ink-2);
  border-block:1px solid var(--line);
  padding-block:clamp(60px,7vw,124px);
}
body[data-page="partners.html"] .theme--statement .h-lg{
  font-family:var(--f-serif);font-style:italic;font-weight:400;
  font-variation-settings:normal;
  font-size:clamp(1.7rem,4vw,3.2rem);line-height:1.1;
  letter-spacing:.004em;color:var(--gold-lt);max-width:24ch;
}
body[data-page="partners.html"] .theme--statement .prosewide{max-width:62ch}
body[data-page="partners.html"] .theme--statement .lede{
  color:var(--bone-2);font-size:clamp(1rem,1.12vw,1.16rem);
}

/* --------------------------------------------------------------------------
   6. 两个 Action 卡
   原来：3 列网格装 2 张卡（空 1/3），卡内还有一块 4/5 的空媒体面板。
   现在：两列；媒体面板压成一条细索引带，编号即标题；
        文字链接重新做成按钮：两个都是金色主行动，卡 01 点开是三个提交入口的下拉。
   -------------------------------------------------------------------------- */
body[data-page="partners.html"] .svc-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,30px);
}
body[data-page="partners.html"] .svc{
  background:linear-gradient(180deg,var(--ink-3),var(--ink-2));
  border-color:var(--line-2);
}
body[data-page="partners.html"] .svc::before{
  content:"";position:absolute;left:0;top:0;z-index:3;width:100%;height:2px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;
  transition:transform .8s var(--ease);
}
body[data-page="partners.html"] .svc:hover::before{transform:scaleX(1)}
body[data-page="partners.html"] .svc--plain .svc__media{
  aspect-ratio:auto;min-height:clamp(74px,8vw,110px);
  display:flex;align-items:center;background:transparent;
  border-bottom:1px solid var(--line);padding:0 clamp(18px,2.1vw,30px);
}
body[data-page="partners.html"] .svc--plain .svc__idx{
  position:static;background:none;border:0;backdrop-filter:none;padding:0;
  font-size:clamp(1.1rem,1.7vw,1.5rem);letter-spacing:.08em;color:var(--gold);
}
body[data-page="partners.html"] .svc__body{padding:clamp(20px,2.2vw,32px)}
/* 两个 Action 按钮「常年金色」。
   改前：只有第一张卡是金色实心（:first-child），第二张是描边、悬停才变金色。 */
body[data-page="partners.html"] .svc .tlink{
  margin-top:auto;align-self:flex-start;
  padding:13px 22px;border:1px solid var(--gold);border-radius:var(--r);
  font-size:13.5px;gap:11px;transition:all .35s var(--ease);
  background:var(--gold);color:var(--ink);font-weight:600;
}
body[data-page="partners.html"] .svc .tlink:hover{
  background:var(--gold-lt);border-color:var(--gold-lt);color:var(--ink);
}
body[data-page="partners.html"] .svc .tlink:hover span{transform:translateX(3px)}
body[data-page="partners.html"] .svc .tlink span{transition:transform .35s var(--ease)}
/* 下拉形态的按钮（summary 复用 .tlink 外观）。
   ⚠️ details 才是 .svc__body 的 flex 子项，margin-top:auto 必须挂在 details 上。 */
body[data-page="partners.html"] .svc .ctamenu{
  position:relative;z-index:6;display:inline-block;
  margin-top:auto;align-self:flex-start;
}
body[data-page="partners.html"] .svc .ctamenu > summary{
  list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none;
}
body[data-page="partners.html"] .svc .ctamenu > summary::-webkit-details-marker{display:none}
body[data-page="partners.html"] .svc .ctamenu > summary::marker{content:''}
/* 展开态：给按钮套一圈金色描边环，箭头转向下 */
body[data-page="partners.html"] .svc .ctamenu[open] > summary{box-shadow:0 0 0 3px rgba(201,162,74,.26)}
body[data-page="partners.html"] .svc .ctamenu[open] > summary span{transform:rotate(90deg)}
body[data-page="partners.html"] .svc .ctamenu__panel{
  position:absolute;left:0;top:auto;
  /* ⚠️ 必须往上开：.svc 是 overflow:hidden（components.css:54），向下开会被卡片底边裁掉。
     面板的包含块是 .ctamenu 自己（position:relative），所以 bottom:100% = 按钮高度。 */
  bottom:calc(100% + 10px);
  min-width:236px;padding:6px;
  background:var(--ink-2);border:1px solid rgba(201,162,74,.30);border-radius:var(--r);
  box-shadow:0 30px 70px -26px rgba(0,0,0,.88),0 0 0 1px rgba(0,0,0,.5);
}
body[data-page="partners.html"] .svc .ctamenu__item{
  display:block;padding:11px 13px;border-radius:calc(var(--r) - 2px);
  color:var(--bone);text-decoration:none;
  transition:background .2s var(--ease),color .2s var(--ease);
}
body[data-page="partners.html"] .svc .ctamenu__item:hover{background:rgba(201,162,74,.10);color:#fff}
body[data-page="partners.html"] .svc .ctamenu__label{display:block;font-size:14.4px;font-weight:600;letter-spacing:.01em}
@media (max-width:620px){
  body[data-page="partners.html"] .svc .ctamenu{display:block}
  body[data-page="partners.html"] .svc .ctamenu__panel{left:0;right:0;min-width:0}
}

/* --------------------------------------------------------------------------
   7. 页脚免责段（theme="quiet"）
   它是法律性质的小字，不该和上面的行动卡抢视觉重量。
   -------------------------------------------------------------------------- */
body[data-page="partners.html"] .theme--quiet{
  border-top:1px solid var(--line);padding-block:clamp(46px,5vw,82px);
}
body[data-page="partners.html"] .theme--quiet .h-lg{
  font-size:clamp(1.02rem,1.4vw,1.26rem);font-weight:600;
  line-height:1.34;letter-spacing:-.008em;color:var(--bone-2);
}
body[data-page="partners.html"] .theme--quiet .lede{
  font-size:clamp(.95rem,1.04vw,1.06rem);line-height:1.7;
  color:var(--muted);max-width:80ch;
}

/* --------------------------------------------------------------------------
   8. 段落之间的呼吸：只给紧邻步骤行的区块补一点上边距，
      避免「金线 + 紧贴的下一段」显得挤。
   -------------------------------------------------------------------------- */
body[data-page="partners.html"] .section + .section{padding-top:max(var(--sect-y),clamp(56px,6.6vw,112px))}


/* ═══════════ 五步条带：五张图一行 · 尺寸完全相同 · 下方注释文字 ═══════════ */
body[data-page="partners.html"] .theme--strip .svc-grid{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:clamp(10px,1.2vw,18px);
  align-items:start;
}
body[data-page="partners.html"] .theme--strip .svc{
  border:0;background:transparent;overflow:visible;border-radius:0;
}
body[data-page="partners.html"] .theme--strip .svc:hover{transform:none;border-color:transparent}
body[data-page="partners.html"] .theme--strip .svc__media{
  border:1px solid var(--line);border-radius:var(--r);
}
body[data-page="partners.html"] .theme--strip .svc__media::after{
  background:linear-gradient(180deg,rgba(11,11,12,.06) 0%,rgba(11,11,12,.30) 100%);
}
body[data-page="partners.html"] .theme--strip .svc__idx{
  top:10px;left:10px;font-size:10.4px;letter-spacing:.16em;
  padding:4px 7px;border-radius:2px;background:rgba(11,11,12,.62);
}
body[data-page="partners.html"] .theme--strip .svc__body{
  padding:clamp(12px,1.2vw,17px) 0 0;
}
body[data-page="partners.html"] .theme--strip .svc__body h3{
  margin-bottom:8px;font-size:16px;line-height:1.28;
}
body[data-page="partners.html"] .theme--strip .svc__body p{
  font-size:13.4px;line-height:1.56;color:var(--muted);
}
@media (max-width:1080px){
  body[data-page="partners.html"] .theme--strip .svc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:700px){
  body[data-page="partners.html"] .theme--strip .svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body[data-page="partners.html"] .theme--strip .svc__body p{font-size:13px}
}
@media (max-width:430px){
  body[data-page="partners.html"] .theme--strip .svc-grid{grid-template-columns:minmax(0,1fr)}
}
/* ===== 12. 五步条：悬停放大 =====

/* 悬停时该卡（图片 + 文字框）整体放大；只在有鼠标的设备上生效 */
body[data-page="partners.html"] .theme--strip .svc-grid > *{
  position:relative;
  z-index:1;
  transition:transform .38s var(--ease), box-shadow .38s var(--ease),
             background-color .38s var(--ease), opacity .38s var(--ease);
}
body[data-page="partners.html"] .theme--strip .svc__media img{
  transition:transform .55s var(--ease);
}

@media (hover:hover) and (pointer:fine){
  body[data-page="partners.html"] .theme--strip .svc-grid:hover > *:not(:hover){
    opacity:.42;
  }
  /* 悬停放大 1.5 倍：5 列时图与字太小，放大才读得清（先试过 3 倍，用户判定太大） */
  body[data-page="partners.html"] .theme--strip .svc-grid > *:hover{
    z-index:30;
    background:var(--ink-2);
    transform:scale(1.5);
    box-shadow:0 40px 90px -30px rgba(0,0,0,.85), 0 0 0 1px rgba(201,162,74,.42);
  }
  /* ⚠️ 靠边的卡片必须换锚点：居中放大 3 倍会伸出视口被切掉 */
  body[data-page="partners.html"] .theme--strip .svc-grid > *:first-child{ transform-origin:left center }
  body[data-page="partners.html"] .theme--strip .svc-grid > *:last-child{ transform-origin:right center }
  body[data-page="partners.html"] .theme--strip .svc-grid > *:hover .svc__media img{
    transform:scale(1.038);
  }
}
/* ===== 13. 五步面板：收紧文字间距 =====

/* 改前实测：ticklist 的 li 上下各 17px 内边距、列表上距 43.2px、h3 上距 72px —— 条目之间空 71px，太散。
   全部用 body[data-page] 双重限定，只作用于这一页的编号步骤屏。 */
body[data-page="partners.html"] .section--step p.lede{
  margin-top:14px;
  line-height:1.5;
}
body[data-page="partners.html"] .section--step h3.h-sm{
  margin-top:28px;
}
body[data-page="partners.html"] .section--step .ticklist{
  margin-top:20px;
}
body[data-page="partners.html"] .section--step .ticklist li{
  padding-top:4px;
  padding-bottom:4px;
}
body[data-page="partners.html"] .section--step .ticklist li > *{
  line-height:1.5;
}
/* ===== 13b. 勾选列表：勾与文字必须同一行 =====

/* ⚠️ 实测根因：li 是 flex，i(18px)+span 恰好超宽 → 触发换行 → 勾在上、文字在下，
   每个 2 行条目被撑到 89px（文字本身只需 44px），视觉上像每个要点之间空了一行。 */
body[data-page="partners.html"] .section--step .ticklist li{
  flex-wrap:nowrap;
  align-items:flex-start;
  column-gap:10px;
}
body[data-page="partners.html"] .section--step .ticklist li > i{
  flex:0 0 auto;
  margin-top:2px;
}
body[data-page="partners.html"] .section--step .ticklist li > span{
  flex:1 1 auto;
  min-width:0;
}

/* ===== 14. 首屏按钮的提交方式下拉（原生 details，零 JS）===== */

/* summary 要长得和 .btn 一模一样：去掉 details 自带的三角与 list-item 行为 */
body[data-page="partners.html"] .hero .ctamenu{ position:relative; z-index:6; display:inline-block }
body[data-page="partners.html"] .hero .ctamenu > summary{
  list-style:none;
  cursor:pointer;
  -webkit-user-select:none;
  user-select:none;
}
body[data-page="partners.html"] .hero .ctamenu > summary::-webkit-details-marker{ display:none }
body[data-page="partners.html"] .hero .ctamenu > summary::marker{ content:'' }
/* 展开时给一个小小的"已打开"提示：按钮描边转金 */
body[data-page="partners.html"] .hero .ctamenu[open] > summary{
  box-shadow:0 0 0 1px rgba(201,162,74,.55);
}

body[data-page="partners.html"] .hero .ctamenu__panel{
  position:absolute;
  left:0;
  /* ⚠️ 必须往上开：hero 是 overflow:hidden，向下开会被首屏底边裁掉
     （实测按钮在 788…840，首屏到 900，向下开的面板到 1062 → 下半截看不见） */
  bottom:calc(100% + 10px);
  top:auto;
  min-width:236px;
  padding:6px;
  background:var(--ink-2);
  border:1px solid rgba(201,162,74,.30);
  border-radius:var(--r);
  box-shadow:0 30px 70px -26px rgba(0,0,0,.88), 0 0 0 1px rgba(0,0,0,.5);
}
body[data-page="partners.html"] .hero .ctamenu__item{
  display:block;
  padding:11px 13px;
  border-radius:calc(var(--r) - 2px);
  color:var(--bone);
  text-decoration:none;
  transition:background .2s var(--ease), color .2s var(--ease);
}
body[data-page="partners.html"] .hero .ctamenu__item:hover{
  background:rgba(201,162,74,.10);
  color:#fff;
}
body[data-page="partners.html"] .hero .ctamenu__label{
  display:block;
  font-size:14.4px;
  font-weight:600;
  letter-spacing:.01em;
}
body[data-page="partners.html"] .hero .ctamenu__note{
  display:block;
  margin-top:3px;
  font-family:var(--f-mono);
  font-size:10.4px;
  font-style:normal;
  letter-spacing:.06em;
  color:var(--muted);
}
/* 窄屏：面板不超出视口 */
@media (max-width:620px){
  body[data-page="partners.html"] .hero .ctamenu{ display:block }
  body[data-page="partners.html"] .hero .ctamenu__panel{
    left:0; right:0; min-width:0;
  }
}
/* ===== 15. 对照表：压缩行距 =====

/* 实测改前：整表 503px · 每行 74/98/98/98/73 · 单元格上下内边距各 24px · 行高 24.6px。
   ⚠️ 只写 padding-top / padding-bottom：左右内边距（含左侧那道图标走廊）由前面第 4 节的规则给，
      写成 padding 简写会把图标位置一起冲掉。 */
body[data-page="partners.html"] .theme--light .tbl td{
  padding-top:13px;
  padding-bottom:13px;
  font-size:14.4px;
  line-height:1.5;
}
body[data-page="partners.html"] .theme--light .tbl thead th{
  padding-top:13px;
  padding-bottom:11px;
}
body[data-page="partners.html"] .theme--light .tblwrap{
  margin-top:clamp(1.2rem, 2.2vw, 1.7rem);
}
/* ===== 16. 五步条卡片里的多段正文 =====

/* 卡片里搬进了面板的「关键点」后，一段主文 + 若干条要点，靠明暗和发丝线分开 */
body[data-page="partners.html"] .theme--strip .svc__body p{
  font-size:11.5px;
  line-height:1.52;
  color:var(--muted);
}
body[data-page="partners.html"] .theme--strip .svc__body p + p{
  margin-top:8px;
  padding-top:8px;
  border-top:1px solid rgba(244,241,234,.10);
}
/* 标题下面那一段是主文：提亮、去掉分隔线（必须排在后面才压得住上面两条） */
body[data-page="partners.html"] .theme--strip .svc__body h3 + p{
  color:var(--bone);
  margin-top:0;
  padding-top:0;
  border-top:0;
}
/* ===== 17. 卡片里的要点列表：统一金色 =====

   旧规则是给卡 03 的两个小标题（Contained in it / Not contained in it）写的，
   用 p:nth-of-type(2) / (8) 定位。那两个小标题已随内容删除，规则失去对象，
   却仍会命中卡 01/02/05 的「第一条要点」，把它渲染成白色加粗（实测 600 字重）。
   现改为：除首段（主文）以外，所有段落——也就是每条要点——一律金色、同字重。 */
body[data-page="partners.html"] .theme--strip .svc__body p:not(:first-of-type){
  color:var(--gold-lt);
}
/* ===== 18. 五步条：4 张卡 ===

/* 删掉第 04 张卡后只剩 4 张：桌面从 5 列改 4 列，否则右边会空出一列。
   ⚠️ 必须限定在 min-width:1081px —— 基础规则之上还有 1080/760/430 三个 max-width 断点，
      不加媒体查询直接追加会把这三级都盖掉。 */
@media (min-width:1081px){
  body[data-page="partners.html"] .theme--strip .svc-grid{
    grid-template-columns:repeat(4, minmax(0,1fr));
  }
}
