/* ============================================================
   案例详情 · 档案页
   ============================================================ */
.cd-hero{padding:44px 0 0;background:var(--w)}
.cd-meta{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:14px;border-bottom:1px solid var(--line);font-family:var(--num);font-size:9.5px;letter-spacing:.16em;color:var(--ink-3);text-transform:uppercase}
.cd-meta .crumbs{display:flex;gap:8px;align-items:center}
.cd-meta .crumbs a:hover{color:var(--red)}
.cd-head{display:grid;grid-template-columns:minmax(0,7.6fr) minmax(280px,4.4fr);gap:64px;align-items:end;padding:34px 0 30px}
.cd-head .cd-ind{font-family:var(--num);font-size:10px;letter-spacing:.16em;color:var(--red);text-transform:uppercase}
.cd-head h1{margin-top:12px;font-family:var(--serif);font-size:clamp(40px,4.8vw,66px);font-weight:700;line-height:1.32;letter-spacing:.005em}
.cd-cust{margin-top:18px;padding-top:15px;border-top:1px solid var(--line);font-size:13px;line-height:1.95;color:var(--ink-2);max-width:48em}
.cd-cust b{color:var(--ink);font-weight:600}
.cd-summary{border-top:1px solid var(--ink)}
.cd-summary div{display:grid;grid-template-columns:64px 1fr;gap:16px;padding:11px 0;border-bottom:1px solid var(--line)}
.cd-summary dt{font-family:var(--num);font-size:9px;letter-spacing:.14em;color:var(--ink-3);padding-top:3px;text-transform:uppercase}
.cd-summary dd{font-size:11.5px;line-height:1.75;color:var(--ink-2)}
.cd-summary dd b{font-family:var(--num);font-size:16px;font-weight:600;color:var(--ink);letter-spacing:.02em}
.cd-cover{margin:0}
.cd-cover .plate{position:relative;overflow:hidden;aspect-ratio:21/8;background:#ececea}
.cd-cover img{width:100%;height:100%;object-fit:cover;filter:saturate(.88) contrast(1.04)}
.cd-cover figcaption{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:.13em;color:var(--ink-3);text-transform:uppercase}
.cd-cover figcaption b{font-family:var(--num);font-weight:500;letter-spacing:.18em;color:var(--ink-2)}
.cd-kpis{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}
.cd-kpi{padding:18px 26px 20px 0;border-right:1px solid var(--line)}
.cd-kpi:last-child{border-right:none;padding-right:0}
.cd-kpi b{display:block;font-family:var(--num);font-size:clamp(26px,2.8vw,40px);font-weight:500;line-height:1.1;letter-spacing:.01em}
.cd-kpi span{display:block;margin-top:8px;font-size:10.5px;line-height:1.6;color:var(--ink-3)}

/* 正文 */
.cd-body{padding:94px 0 118px;background:var(--w)}
.cd-layout{display:grid;grid-template-columns:218px minmax(0,1fr);gap:66px;align-items:start}
.cd-rail{position:sticky;top:108px}
.cd-rail-label{font-family:var(--num);font-size:9.5px;letter-spacing:.18em;color:var(--ink-3);text-transform:uppercase;padding-bottom:9px;border-bottom:1px solid var(--ink)}
.cd-index nav{display:flex;flex-direction:column}
.cd-index a{display:grid;grid-template-columns:24px 1fr;gap:8px;padding:9px 0;border-bottom:1px solid rgba(17,17,17,.1);font-size:11.5px;color:var(--ink-2);transition:color .25s,padding-left .3s var(--ease)}
.cd-index a span{font-family:var(--num);font-size:9.5px;color:var(--ink-3);letter-spacing:.06em}
.cd-index a:hover{color:var(--red);padding-left:3px}
.cd-meta-box{margin-top:30px}
.cd-meta-box dl{margin-top:0}
.cd-meta-box .r{display:grid;grid-template-columns:64px 1fr;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-2);font-size:10.5px;line-height:1.7}
.cd-meta-box dt{font-family:var(--num);font-size:8.5px;letter-spacing:.1em;color:var(--ink-3)}
.cd-meta-box dd{color:var(--ink-2)}
.cd-related{margin-top:30px}
.cd-related a{display:block;padding:10px 0;border-bottom:1px solid var(--line-2);transition:color .25s}
.cd-related .k{display:block;font-family:var(--num);font-size:8.5px;letter-spacing:.1em;color:var(--red);text-transform:uppercase}
.cd-related h4{margin-top:4px;font-family:var(--serif);font-size:14px;font-weight:700;line-height:1.5;transition:color .25s}
.cd-related a:hover h4{color:var(--red)}
.cd-cta{margin-top:26px;padding:20px 18px;background:var(--tint-band);border-top:2px solid var(--red)}
.cd-cta h4{font-family:var(--serif);font-size:17px;font-weight:700;line-height:1.5}
.cd-cta p{margin-top:7px;font-size:10.5px;line-height:1.8;color:var(--ink-2)}
.cd-cta .btn-red{margin-top:13px;font-size:11.5px;padding:10px 14px}
.cd-cta .tel{display:block;margin-top:12px;font-family:var(--num);font-size:19px;font-weight:600;letter-spacing:.02em}

.cd-narrative{min-width:0}
.cd-narrative .cd-sec{border-top:1px solid var(--ink);padding:30px 0 50px}
.cd-narrative .cd-sec-h{display:grid;grid-template-columns:34px 1fr auto;gap:20px;align-items:baseline;padding-bottom:22px}
.cd-narrative .cd-sec-h .sn{font-family:var(--num);font-size:11px;letter-spacing:.1em;color:var(--red)}
.cd-narrative .cd-sec-h h2{font-family:var(--serif);font-size:clamp(28px,2.8vw,38px);font-weight:700;line-height:1.35}
.cd-narrative .cd-sec-h .sm{font-family:var(--num);font-size:9px;letter-spacing:.16em;color:var(--ink-3);text-transform:uppercase}

/* 问题 */
.cd-pains{counter-reset:cd-pain}
.cd-pain{display:grid;grid-template-columns:34px 1fr;gap:14px;padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid transparent;counter-increment:cd-pain}
.cd-pain::before{content:"0" counter(cd-pain);font-family:var(--num);font-size:10px;letter-spacing:.08em;color:var(--red);padding-top:4px}
.cd-pain span{font-size:13px;line-height:1.9;color:var(--ink-2)}
.cd-pains .cd-pain:first-child span{color:var(--ink);font-weight:600}

/* 列表 */
.cd-ul{list-style:none;border-top:1px solid var(--line)}
.cd-ul li{position:relative;padding:12px 0 12px 18px;border-bottom:1px solid var(--line-2);font-size:13px;line-height:1.95;color:var(--ink-2)}
.cd-ul li::before{content:"";position:absolute;left:0;top:21px;width:5px;height:5px;background:var(--red)}
.cd-ul.num li{padding-left:30px;counter-increment:cd-ul}
.cd-ul.num{counter-reset:cd-ul}
.cd-ul.num li::before{content:"0" counter(cd-ul);top:14px;width:auto;height:auto;background:none;font-family:var(--num);font-size:9.5px;color:var(--red);letter-spacing:.06em}

/* 实施 */
.cd-phase{border-top:1px solid var(--line)}
.cd-phase .ph{display:grid;grid-template-columns:88px 1fr;gap:22px;padding:14px 0;border-bottom:1px solid var(--line-2)}
.cd-phase .ph b{font-family:var(--num);font-size:9.5px;letter-spacing:.1em;color:var(--red);font-weight:500;padding-top:4px}
.cd-phase .ph span{font-size:13px;line-height:1.95;color:var(--ink-2)}

/* 原话 */
.cd-quote{margin:0;padding:6px 0 6px 26px;border-left:2px solid var(--red)}
.cd-quote p{font-family:var(--serif);font-size:clamp(20px,2vw,26px);font-weight:700;line-height:1.8;color:var(--ink);letter-spacing:.01em}
.cd-quote .who{display:block;margin-top:18px;font-family:var(--num);font-size:9px;letter-spacing:.12em;color:var(--ink-3);text-transform:uppercase}

/* 说明与技术 */
.cd-prose p{font-size:13px;line-height:1.95;color:var(--ink-2)}
.cd-prose p + p{margin-top:10px}
.cd-prose b{color:var(--ink);font-weight:600}
.cd-prose:empty{display:none}
.cd-tech{margin-top:24px;border-top:1px solid var(--ink)}
.cd-tech .tr{display:grid;grid-template-columns:92px 1fr;gap:22px;padding:11px 0;border-bottom:1px solid var(--line-2)}
.cd-tech dt{font-family:var(--num);font-size:9px;letter-spacing:.1em;color:var(--ink-3);padding-top:4px}
.cd-tech dd{font-size:11.5px;line-height:1.85;color:var(--ink-2)}

/* 上下篇 */
.cd-nextprev{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:36px 0 48px;border-top:1px solid var(--line)}
.cd-nextprev a{display:block;padding:17px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}
.cd-nextprev .k{font-family:var(--num);font-size:9px;letter-spacing:.14em;color:var(--ink-3);text-transform:uppercase}
.cd-nextprev h4{margin-top:7px;font-family:var(--serif);font-size:19px;font-weight:700;line-height:1.45;transition:color .25s}
.cd-nextprev a:hover h4{color:var(--red)}
.cd-nextprev .next{text-align:right}

@media(max-width:1120px){
  .cd-head{grid-template-columns:1fr;gap:26px}
  .cd-summary{max-width:520px}
  .cd-layout{grid-template-columns:1fr;gap:32px}
  .cd-rail{position:static;display:grid;grid-template-columns:1fr 1fr;gap:26px 46px;align-items:start}
  .cd-index nav{flex-direction:row;flex-wrap:wrap;gap:0 22px;border-bottom:1px solid var(--line)}
  .cd-index a{width:auto;border-bottom:none;padding:9px 0}
  .cd-meta-box,.cd-related,.cd-cta{margin-top:0}
  .cd-rail > .cd-index{grid-column:1/-1}
}
@media(max-width:760px){
  .cd-hero{padding-top:30px}
  .cd-head{padding:26px 0 24px}
  .cd-head h1{font-size:clamp(34px,9.5vw,46px)}
  .cd-cust{font-size:12px}
  .cd-summary div{grid-template-columns:58px 1fr;gap:12px}
  .cd-cover .plate{aspect-ratio:4/3}
  .cd-kpis{grid-template-columns:1fr 1fr}
  .cd-kpi{padding:15px 16px 16px 0}
  .cd-kpi:nth-child(2){border-right:none}
  .cd-kpi:nth-child(n+3){border-top:1px solid var(--line)}
  .cd-body{padding:68px 0 84px}
  .cd-rail{grid-template-columns:1fr;gap:24px}
  .cd-rail > .cd-index{grid-column:auto}
  .cd-related,.cd-cta{display:none}
  .cd-narrative .cd-sec{padding:24px 0 36px}
  .cd-narrative .cd-sec-h{grid-template-columns:28px 1fr;gap:12px;padding-bottom:16px}
  .cd-narrative .cd-sec-h .sm{display:none}
  .cd-pain{grid-template-columns:28px 1fr;gap:10px}
  .cd-ul li,.cd-phase .ph span,.cd-prose p{font-size:12.5px}
  .cd-phase .ph{grid-template-columns:70px 1fr;gap:14px}
  .cd-quote{padding-left:18px}
  .cd-quote p{font-size:20px}
  .cd-tech .tr{grid-template-columns:76px 1fr;gap:14px}
  .cd-nextprev{grid-template-columns:1fr;gap:0}
  .cd-nextprev .next{text-align:left}
}

/* 用户补充的 UI 截图 */
.cd-narrative .pd-shot{margin:22px 0 0;border:1px solid var(--line);background:#fff}
.cd-narrative .pd-shot img{display:block;width:100%;height:auto}
.cd-narrative .pd-shot figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:10px 13px;border-top:1px solid var(--line);background:var(--tint-band);font-size:10.5px;line-height:1.7;color:var(--ink-3)}
.cd-narrative .pd-shot figcaption b{font-family:var(--sans);font-size:11px;font-weight:600;color:var(--ink-2);flex:none}
.cd-narrative .pd-shot figcaption span{text-align:right}
@media(max-width:760px){.cd-narrative .pd-shot figcaption{display:block}.cd-narrative .pd-shot figcaption span{display:block;text-align:left;margin-top:3px}}


/* 具体案例的 KPI 数字与竖分隔线留白 */
.cd-kpi + .cd-kpi{padding-left:26px}
@media(max-width:1100px){
  .cd-kpi + .cd-kpi{padding-left:0}
  .cd-kpi:nth-child(even){padding-left:18px}
}

/* 案例详情 · 悬停交互补强 */
.cd-cover img{transition:transform 1.1s var(--ease),filter .5s}
.cd-cover:hover img{transform:scale(1.02);filter:saturate(.95) contrast(1.04)}
.cd-kpi{transition:background .3s,transform .35s var(--ease)}
.cd-kpi b,.cd-kpi span{transition:color .3s}
@media(hover:hover){
  .cd-kpi:hover{background:rgba(224,11,22,.025);transform:translateY(-2px)}
  .cd-kpi:hover b{color:var(--red)}
  .cd-summary div:hover{background:rgba(224,11,22,.025);transform:translateX(3px)}
  .cd-pain:hover,.cd-ul li:hover,.cd-phase .ph:hover,.cd-tech .tr:hover{background:rgba(224,11,22,.025);transform:translateX(3px)}
  .cd-quote:hover{background:rgba(224,11,22,.02)}
  .cd-nextprev a:hover{transform:translateY(-2px)}
}
.cd-summary div,.cd-pain,.cd-ul li,.cd-phase .ph,.cd-tech .tr{transition:background .3s,transform .35s var(--ease)}
.cd-summary div:hover dd b{color:var(--red)}
.cd-summary dd b{transition:color .3s}
.cd-quote,.cd-nextprev a{transition:background .3s,transform .35s var(--ease)}
@media(prefers-reduced-motion:reduce){
  .cd-cover img,.cd-kpi,.cd-summary div,.cd-pain,.cd-ul li,.cd-phase .ph,.cd-tech .tr,.cd-quote,.cd-nextprev a{transition:none}
  .cd-cover:hover img,.cd-kpi:hover,.cd-summary div:hover,.cd-pain:hover,.cd-ul li:hover,.cd-phase .ph:hover,.cd-tech .tr:hover,.cd-nextprev a:hover{transform:none}
}

.cd-narrative .pd-shot{overflow:hidden}
.cd-narrative .pd-shot img{transition:transform 1s var(--ease)}
.cd-narrative .pd-shot:hover img{transform:scale(1.012)}
