/* Shengxu deck — design tokens measured from the reference profile PDF */
@page { size: 1920px 1080px; margin: 0; }

:root{
  --navy:#005B9A; --navy2:#01487B; --blue:#2E75B6;
  --orange:#F79C55; --gold:#E29955; --amber:#FFC000;
  --ink:#0F172A; --ink2:#334155; --muted:#64748B; --tint:#F0F5F8;
}

*{margin:0;padding:0;box-sizing:border-box;-webkit-print-color-adjust:exact;print-color-adjust:exact;}

body{
  font-family:"Helvetica Neue",Helvetica,Arial,"Segoe UI",sans-serif;
  background:#111; color:var(--ink);
  -webkit-font-smoothing:antialiased;
}

.slide{
  position:relative; width:1920px; height:1080px;
  padding:64px 96px 76px; overflow:hidden;
  background:#fff; page-break-after:always; break-after:page;
  display:flex; flex-direction:column;
}
.slide:last-child{page-break-after:auto;}
.slide.dark{background:var(--navy); color:#fff;}
.slide::after{ /* page number */
  content:attr(data-n); position:absolute; right:76px; bottom:34px;
  font-size:20px; letter-spacing:.1em; color:var(--muted); font-weight:600;
}
.slide.dark::after{color:rgba(255,255,255,.45);}

/* ---------- header ---------- */
.phead{position:relative;padding-bottom:26px;border-bottom:2px solid rgba(0,91,154,.16);margin-bottom:44px;}
.phead.compact{margin-bottom:26px;}
.phead h2{font-size:54px;line-height:1.05;font-weight:700;letter-spacing:-.02em;color:var(--navy);}
.ph-sub{font-size:21px;color:var(--muted);margin-top:12px;max-width:1180px;line-height:1.4;}
.ph-tag{
  position:absolute;right:0;bottom:30px;font-size:24px;font-weight:700;
  color:var(--orange);letter-spacing:.01em;
}

/* ---------- 01 cover ---------- */
.cover{padding:0;}
.cover-grid{display:flex;height:100%;}
.cover-left{width:58%;padding:120px 90px 0 96px;display:flex;flex-direction:column;justify-content:center;}
.cover-right{width:42%;position:relative;overflow:hidden;}
.cover-right img{width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.02);}
.cover-veil{position:absolute;inset:0;
  background:linear-gradient(90deg,var(--navy) 0%,rgba(0,91,154,.72) 22%,rgba(0,91,154,.10) 60%,rgba(1,72,123,.35) 100%);}
.brandmark{margin-bottom:52px;}
.bm-cn{font-size:34px;font-weight:700;letter-spacing:.14em;color:#fff;}
.bm-en{font-size:15px;letter-spacing:.42em;color:var(--orange);margin-top:8px;font-weight:600;}
.cover h1{font-size:104px;line-height:.98;font-weight:700;letter-spacing:-.035em;color:#fff;}
.kicker{font-size:23px;color:rgba(255,255,255,.78);margin-top:26px;letter-spacing:.06em;}
.hr-acc{width:88px;height:4px;background:var(--orange);margin:36px 0 30px;}
.lead{font-size:22px;line-height:1.6;color:rgba(255,255,255,.86);max-width:760px;}
.cover-stats{display:flex;gap:64px;margin-top:64px;}
.cover-stats b{display:block;font-size:56px;font-weight:700;color:var(--orange);line-height:1;}
.cover-stats span{display:block;font-size:16px;color:rgba(255,255,255,.7);margin-top:12px;line-height:1.45;}
.cover-foot{position:absolute;left:96px;right:180px;bottom:40px;
  display:flex;justify-content:space-between;font-size:16px;letter-spacing:.18em;
  text-transform:uppercase;color:rgba(255,255,255,.45);}
.ph-cell{font-size:26px;color:var(--orange);font-weight:700;letter-spacing:.04em;margin-left:14px;}

/* ---------- 02 toc ---------- */
.toc{display:flex;flex-direction:column;gap:0;flex:1;}
.toc-row{display:flex;align-items:center;gap:44px;padding:30px 8px;border-bottom:1px solid #E2E8F0;}
.toc-n{font-size:44px;font-weight:700;color:var(--orange);min-width:88px;letter-spacing:-.02em;}
.toc-row b{display:block;font-size:34px;font-weight:700;color:var(--navy);letter-spacing:-.015em;}
.toc-row i{display:block;font-size:20px;color:var(--muted);font-style:normal;margin-top:8px;}

/* ---------- chapter pages ---------- */
.chap-pg{justify-content:center;}
.chap{position:relative;}
.chap-n{font-size:26px;font-weight:700;letter-spacing:.3em;color:var(--orange);}
.chap h2{font-size:96px;line-height:1.02;font-weight:700;letter-spacing:-.035em;margin-top:22px;color:#fff;}
.chap p{font-size:26px;color:rgba(255,255,255,.72);margin-top:24px;}
.chap-ghost{position:absolute;right:-40px;top:-130px;font-size:250px;font-weight:800;
  letter-spacing:-.03em;color:rgba(255,255,255,.055);pointer-events:none;line-height:1;}

/* ---------- generic two column ---------- */
.two-col{display:flex;gap:72px;flex:1;}
.col-l{width:56%;} .col-r{width:44%;}
.body{font-size:21px;line-height:1.72;color:var(--blue);margin-bottom:22px;}
.body strong{color:var(--gold);font-weight:700;}
.body em{color:var(--ink2);font-style:italic;}

.quote-box{margin-top:34px;padding:30px 34px;background:var(--tint);border-left:5px solid var(--orange);}
.quote-box p{font-size:20px;line-height:1.6;color:var(--ink2);font-style:italic;}
.quote-box span{display:block;margin-top:16px;font-size:17px;color:var(--muted);letter-spacing:.02em;}

.facts{display:flex;flex-direction:column;}
.fact{padding:15px 0;border-bottom:1px solid #E2E8F0;}
.fact span{display:block;font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.fact b{display:block;font-size:20px;color:var(--navy);margin-top:6px;line-height:1.4;font-weight:600;}

/* ---------- number strip ---------- */
.numstrip{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.num{background:var(--tint);padding:34px 30px;border-top:4px solid var(--orange);}
.num b{display:block;font-size:52px;font-weight:700;color:var(--blue);line-height:1;letter-spacing:-.02em;}
.num span{display:block;font-size:17px;color:var(--muted);margin-top:14px;line-height:1.4;}
.footnote{margin-top:34px;font-size:16px;color:var(--muted);line-height:1.55;max-width:1500px;}

/* ---------- licensing grids ---------- */
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.lic{background:var(--tint);padding:28px 26px;min-height:170px;position:relative;}
.lic i{font-style:normal;font-size:16px;font-weight:700;color:var(--orange);letter-spacing:.12em;}
.lic b{display:block;font-size:22px;color:var(--navy);margin-top:14px;line-height:1.3;font-weight:700;}
.lic span{display:block;font-size:15px;color:var(--muted);margin-top:10px;letter-spacing:.04em;}

.note-strip{margin-top:auto;padding:28px 34px;background:var(--navy);color:#fff;display:flex;gap:32px;align-items:center;}
.note-strip b{font-size:20px;color:var(--orange);min-width:250px;}
.note-strip p{font-size:20px;line-height:1.5;color:rgba(255,255,255,.9);}

.lic-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;flex:1;}
.lic-cols h4{font-size:22px;color:var(--orange);letter-spacing:.02em;padding-bottom:14px;
  border-bottom:2px solid rgba(0,91,154,.18);margin-bottom:20px;}
.lic-cols ul{list-style:none;}
.lic-cols li{font-size:19px;color:var(--blue);padding:9px 0 9px 20px;position:relative;line-height:1.35;}
.lic-cols li::before{content:"";position:absolute;left:0;top:17px;width:8px;height:8px;background:var(--gold);}

/* ---------- management systems ---------- */
.three-band{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.band{background:var(--tint);padding:34px 30px;border-top:4px solid var(--blue);}
.band b{display:block;font-size:34px;color:var(--navy);font-weight:700;letter-spacing:-.01em;}
.band span{display:block;font-size:18px;color:var(--orange);font-weight:700;margin-top:10px;}
.band p{font-size:17px;line-height:1.55;color:var(--muted);margin-top:18px;}
.cred-row{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-top:auto;}
.cred{background:#fff;border:1px solid #DCE6EF;padding:24px 20px;text-align:center;}
.cred b{display:block;font-size:34px;color:var(--gold);font-weight:700;line-height:1;}
.cred span{display:block;font-size:14px;color:var(--muted);margin-top:12px;line-height:1.4;}

/* ---------- map ---------- */
.map-wrap{display:flex;gap:56px;flex:1;align-items:center;}
.cnmap{width:800px;height:auto;}
.map-legend{width:100%;}
.map-legend h4{font-size:22px;color:var(--navy);margin-bottom:22px;}
.prov-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 24px;}
.prov-grid span{font-size:20px;color:var(--blue);padding:9px 0 9px 22px;position:relative;border-bottom:1px solid #E8EEF4;}
.prov-grid span::before{content:"";position:absolute;left:0;top:18px;width:9px;height:9px;background:var(--orange);border-radius:50%;}
.map-note{font-size:18px;line-height:1.55;color:var(--muted);margin-top:26px;}
.map-note b{color:var(--gold);}

/* ---------- case pages ---------- */
.case-pg{padding:0;}
.case{display:flex;height:100%;}
.case-img{width:52%;overflow:hidden;background:var(--navy);}
.case-img img{width:100%;height:100%;object-fit:cover;}
.case-txt{width:48%;padding:110px 90px 90px 80px;display:flex;flex-direction:column;justify-content:center;}
.case-tag{font-size:15px;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);font-weight:700;}
.case-txt h2{font-size:46px;line-height:1.14;color:var(--navy);font-weight:700;margin-top:20px;letter-spacing:-.015em;}
.case-loc{font-size:20px;color:var(--muted);margin-top:16px;}
.case-amt{font-size:44px;color:var(--gold);font-weight:700;margin-top:30px;letter-spacing:-.02em;}
.case-amt span{display:block;font-size:15px;color:var(--muted);font-weight:400;letter-spacing:.06em;margin-top:8px;}
.case-txt p{font-size:19px;line-height:1.66;color:var(--blue);margin-top:28px;}
.case-mark{margin-top:auto;padding-top:30px;font-size:15px;letter-spacing:.16em;text-transform:uppercase;color:#B8C4D0;}

/* ---------- ledger ---------- */
.ledger{width:100%;border-collapse:collapse;font-size:17px;}
.ledger th{text-align:left;font-size:14px;letter-spacing:.1em;text-transform:uppercase;
  color:#fff;background:var(--navy);padding:14px 16px;font-weight:700;}
.ledger td{padding:12px 16px;border-bottom:1px solid #E5EBF1;color:var(--blue);line-height:1.35;}
.ledger tbody tr:nth-child(even){background:#FAFCFD;}
.ledger .num{text-align:right;color:var(--gold);font-weight:700;white-space:nowrap;}

/* ---------- people ---------- */
.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;flex:1;}
.ppl{background:var(--tint);padding:28px 26px;border-left:4px solid var(--blue);}
.ppl b{display:block;font-size:21px;color:var(--navy);font-weight:700;line-height:1.25;}
.ppl ul{list-style:none;margin-top:16px;}
.ppl li{font-size:16px;color:var(--ink2);padding:5px 0 5px 16px;position:relative;line-height:1.35;}
.ppl li::before{content:"";position:absolute;left:0;top:12px;width:6px;height:6px;background:var(--orange);}
.ppl p{font-size:15px;line-height:1.5;color:var(--muted);margin-top:16px;}

/* ---------- engagement models ---------- */
.models{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;flex:1;}
.model{background:var(--tint);padding:38px 32px;display:flex;flex-direction:column;border-top:4px solid var(--orange);}
.m-n{font-size:15px;font-weight:700;letter-spacing:.2em;color:var(--orange);}
.model b{display:block;font-size:30px;color:var(--navy);font-weight:700;margin-top:14px;line-height:1.15;}
.model p{font-size:18px;line-height:1.6;color:var(--ink2);margin-top:20px;}
.model ul{list-style:none;margin-top:auto;padding-top:24px;}
.model li{font-size:16px;color:var(--muted);padding:7px 0 7px 18px;position:relative;}
.model li::before{content:"—";position:absolute;left:0;color:var(--gold);}

/* ---------- commitments ---------- */
.commit{display:grid;grid-template-columns:repeat(3,1fr);gap:24px 32px;flex:1;}
.cm b{font-size:15px;color:var(--orange);letter-spacing:.16em;font-weight:700;}
.cm h4{font-size:24px;color:var(--navy);font-weight:700;margin-top:12px;line-height:1.25;}
.cm p{font-size:17px;line-height:1.6;color:var(--ink2);margin-top:12px;}

/* ---------- closing ---------- */
.closing-pg{padding:0;}
.closing{display:flex;height:100%;}
.close-left{width:62%;padding:130px 80px 90px 96px;display:flex;flex-direction:column;justify-content:center;}
.close-left h2{font-size:82px;line-height:1.03;font-weight:700;letter-spacing:-.035em;color:#fff;}
.close-lead{font-size:22px;line-height:1.62;color:rgba(255,255,255,.8);margin-top:34px;max-width:720px;}
.contact{margin-top:56px;display:grid;grid-template-columns:1fr 1fr;gap:26px 40px;}
.contact span{display:block;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);}
.contact b{display:block;font-size:18px;color:#fff;margin-top:8px;line-height:1.45;font-weight:600;}
.close-right{width:38%;background:var(--navy2);display:flex;align-items:center;justify-content:center;}
.bigmark{text-align:center;}
.bm-cn2{font-size:64px;font-weight:700;letter-spacing:.1em;color:#fff;}
.bm-en2{font-size:19px;letter-spacing:.34em;color:var(--orange);margin-top:22px;line-height:1.9;font-weight:600;}

/* ---------- sector mix bars ---------- */
.sec-h{font-size:22px;color:var(--navy);font-weight:700;margin:46px 0 22px;}
.mix{display:flex;flex-direction:column;gap:14px;}
.mix-row{display:flex;align-items:center;gap:24px;}
.mix-l{width:400px;font-size:19px;color:var(--blue);}
.bar{flex:1;height:22px;background:#E8EEF4;}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--navy));}
.mix-n{width:56px;text-align:right;font-size:22px;font-weight:700;color:var(--gold);}

/* ---------- licence flow ---------- */
.flow{display:flex;align-items:stretch;gap:14px;margin-top:26px;}
.fl{flex:1;background:#fff;border:1px solid #DCE6EF;border-top:3px solid var(--blue);padding:22px 20px;}
.fl.last{border-top-color:var(--orange);background:var(--tint);}
.fl b{display:block;font-size:20px;color:var(--navy);font-weight:700;}
.fl span{display:block;font-size:15px;color:var(--muted);margin-top:8px;line-height:1.4;}
.fa{display:flex;align-items:center;font-size:30px;color:var(--orange);font-weight:700;}

.cnmap{width:820px;display:block;}

/* ---------- toc foot ---------- */
.toc-foot{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-top:auto;padding-top:44px;
  border-top:2px solid rgba(0,91,154,.16);}
.toc-foot h4{font-size:20px;color:var(--orange);font-weight:700;margin-bottom:14px;}
.toc-foot p{font-size:18px;line-height:1.6;color:var(--ink2);}

/* ---------- certificate count ---------- */
.cc{background:#fff;border-left:3px solid var(--blue);padding:22px 20px;}
.cc b{display:block;font-size:38px;font-weight:700;color:var(--blue);line-height:1;}
.cc span{display:block;font-size:14px;color:var(--muted);margin-top:12px;line-height:1.4;}

/* ---------- licence map ---------- */
.lic-map{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:auto;padding-top:34px;
  border-top:2px solid rgba(0,91,154,.16);}
.lm b{display:block;font-size:18px;color:var(--navy);font-weight:700;}
.lm span{display:block;font-size:15px;color:var(--muted);margin-top:10px;line-height:1.5;}

/* specialist column headers with count badge */
.lic-cols h4{display:flex;align-items:center;gap:14px;}
.cnt{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:28px;
  background:var(--navy);color:#fff;font-size:14px;font-weight:700;border-radius:3px;padding:0 8px;}
.lic-cols li{font-size:19px;padding:11px 0 11px 22px;}

/* ---- p8: pull the mapping cards up, grow the list ---- */
.lic-cols{flex:0 1 auto;}
.lic-cols li{font-size:20px;padding:13px 0 13px 22px;}
.lic-map{margin-top:auto;padding-top:36px;gap:24px;}
.lm{background:var(--tint);padding:20px 18px;}

/* ---- p22: models fill their cards, not float to bottom ---- */
.model p{margin-top:20px;flex:0 0 auto;}
.model ul{margin-top:26px;padding-top:20px;border-top:1px solid rgba(46,117,182,.18);}
.model p{font-size:19px;line-height:1.65;}
.model ul li{font-size:17px;padding:9px 0 9px 22px;}

/* ---- p23: commitments breathe apart, fill the page ---- */
.commit{gap:44px 40px;align-content:space-between;}
.cm{padding:26px 0 0;border-top:2px solid rgba(247,156,85,.55);}
.cm h4{font-size:26px;margin-top:14px;}
.cm p{font-size:18px;line-height:1.65;margin-top:14px;}

/* p22 真实修法：卡片内元素按内容排列，多余空间均分在标题与要点之间 */
.models{align-content:stretch;}
.model{justify-content:flex-start;}
.model p{flex:1 1 auto;}
.model ul{margin-top:0;}

/* p23 真实修法：单行两行卡片用更厚的上框和更大行距撑满，消除中缝大洞 */
.commit{grid-auto-rows:minmax(0,1fr);align-content:stretch;}
.cm{display:flex;flex-direction:column;justify-content:flex-start;padding:34px 0 0;}
.cm p{flex:0 0 auto;}

/* ===== 最终修版：卡片内部垂直均分，不留大洞 ===== */
.models .model{display:flex;flex-direction:column;justify-content:space-between;}
.models .model > b{margin-top:12px;}
.models .model > p{margin-top:22px;flex:1 1 auto;}
.models .model > ul{margin-top:22px;flex:0 0 auto;padding-top:20px;border-top:1px solid rgba(46,117,182,.20);}
.models .model > ul li{font-size:17px;padding:10px 0 10px 22px;}

.commit .cm{justify-content:space-between;padding:32px 0 0;}
.commit .cm h4{margin-top:0;}
.commit .cm b{display:block;margin-bottom:14px;}

.m-when{margin-top:22px;padding:18px 20px;background:#fff;border-left:3px solid var(--orange);
  font-size:16px;line-height:1.55;color:var(--ink2);}
.m-when span{display:block;font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin-bottom:8px;}
.models .model > .m-when{margin-top:22px;flex:1 1 auto;}

/* case illustration */
.case-img{position:relative;}
.case-img img{width:100%;height:100%;object-fit:cover;}

/* case note 更克制，不与图内元素打架 */

/* case art: contain, center, never crop */
.case-img{display:flex;align-items:center;justify-content:center;background:var(--navy);}
.case-img img{object-fit:contain;width:100%;height:100%;}

/* case art 覆盖左栏满幅，比例 1200:1110 ≈ 左栏 998:1080 */
.case-img img{object-fit:cover;}

/* 案例图垂直居中，避免上部留白 */
.case-img{align-items:center;}
.case-img img{object-position:center center;}

/* ================= 证书附录 ================= */
.appx-n{display:inline-block;background:var(--navy);color:#fff;font-size:22px;
  padding:4px 14px;border-radius:3px;margin-right:14px;vertical-align:middle;
  letter-spacing:.04em;}






/* 每类页的卡片高度 */








/* 附录网格：自适应高度、末行不塌、卡片等比 */





/* 附录网格强制撑满整页高度 */




/* 5列布局时让卡片瘦高，符合证书竖版 */




/* 少量证书页：大卡片撑满 */





/* 案例页：说明图片为代表作业场景，避免图文对应误解 */
.scene-tag{position:absolute;left:26px;top:26px;padding:8px 16px;
  background:rgba(1,40,66,.72);color:rgba(255,255,255,.9);
  font-size:13px;letter-spacing:.10em;text-transform:uppercase;
  border-left:3px solid var(--orange);}

.close-note{margin-top:34px;font-size:13px;line-height:1.6;color:rgba(255,255,255,.42);
  max-width:660px;border-top:1px solid rgba(255,255,255,.14);padding-top:18px;}

/* Grade-II 承包范围 */
.grade-scope{margin-top:24px;padding:26px 30px;background:#fff;border:1px solid #DCE6EF;
  border-left:5px solid var(--gold);}
.gs-h{font-size:20px;font-weight:700;color:var(--navy);margin-bottom:14px;}
.gs-body{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.gs-body p{font-size:16px;line-height:1.6;color:var(--ink2);}
.gs-body b{color:var(--blue);}

/* 业主类型 */
.client-types{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.ct{background:var(--tint);padding:22px 20px;border-top:3px solid var(--blue);}
.ct b{display:block;font-size:18px;color:var(--navy);font-weight:700;}
.ct span{display:block;font-size:14px;line-height:1.5;color:var(--muted);margin-top:10px;}

/* 业主类型独立页 */
.client-types-page{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;flex:1;}
.ctp{background:var(--tint);padding:32px 30px;border-left:4px solid var(--blue);
  display:flex;flex-direction:column;}
.ctp b{font-size:26px;color:var(--navy);font-weight:700;line-height:1.2;}
.ctp p{font-size:17px;line-height:1.65;color:var(--ink2);margin-top:18px;flex:1 1 auto;}
.ctp-tag{display:inline-block;align-self:flex-start;margin-top:20px;padding:6px 14px;
  background:var(--navy);color:#fff;font-size:13px;letter-spacing:.08em;}

/* ===== 修正：证书必须完整显示，不得裁切 ===== */




/* ===== 证书卡：最大化利用页面，消除下方空白 ===== */




/* 3列×2行 */





/* ===== 证书网格：自动排布，永不溢出 ===== */








/* ===== 证书页最终方案：显式两行高度，按每页张数精确布局 ===== */
/* 3列×2行 = 6张 */

/* 5列×2行 = 10张 */

/* 4列×1行 = 4张 */

/* 3张 / 5张（单页少证） */





/* 网格：固定高度 = 页面内容区，行数按类名 */

/* 卡片 */

/* ==========================================================
   证书附录 v3 —— 竖版卡片（证书本身是 1:1.414 竖版）
   核心：不把竖证塞进横卡。按证书比例分配版心。
   ========================================================== */
.cert-pg{
  padding:44px 60px 54px;
  box-sizing:border-box;
  overflow:hidden;
}
.cert-pg .phead{flex:0 0 auto;margin-bottom:18px;padding-bottom:14px;}
.cert-pg .phead h2{font-size:38px;line-height:1.05;}
.cert-pg .ph-sub{font-size:16px;margin-top:6px;}
.cert-pg .ph-cell{font-size:20px;}

/* 版心高度 = 1080 - 44 - 54 - 约120(标题) = 862 */
.cert-grid{
  display:grid;
  gap:10px 12px;
  height:858px;
  box-sizing:border-box;
  justify-items:center;
}

/* 3列×2行（6张）：每格约 580×424，证书按高度撑满 → 显示尺寸约 300×424 */
.cert-grid.cols3{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);}
/* 5列×2行（10张） */
.cert-grid.cols5{grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(2,1fr);}
/* 4列×1行（4张） */
.cert-grid.cols4{grid-template-columns:repeat(4,1fr);grid-template-rows:1fr;}
/* 少量：3张 / 5张 / 4张 */
.cert-grid.few {grid-template-columns:repeat(3,1fr);grid-template-rows:1fr;}
.cert-grid.five{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);}
.cert-grid.four{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);}

/* 卡片：透明容器，让证书自己占满高度 */
.cert-grid .cert-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  min-height:0;
  height:100%;
  width:100%;
}
.cert-grid .cert-img{
  flex:1 1 auto;
  min-height:0;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:transparent;
  padding:0;
  border:1px solid #DCE6EF;
  box-shadow:0 1px 4px rgba(15,23,42,.10);
  background:#fff;
}
.cert-grid .cert-img img{
  display:block;
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
}
.cert-grid .cert-cap{
  flex:0 0 auto;
  font-size:11px;
  line-height:1.2;
  padding:5px 4px 0;
  text-align:center;
  color:#475569;
  min-height:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  border:none;
}

/* ===== 附录目录：9 类必须全部可见（原 6 类溢出被截） ===== */
.cert-toc{flex:0 1 auto;}
.cert-toc .toc-row{
  padding:9px 8px;
  border-bottom:1px solid #E2E8F0;
}
.cert-toc .toc-n{font-size:30px;min-width:74px;}
.cert-toc .toc-row b{font-size:22px;line-height:1.15;}
.cert-toc .toc-row i{font-size:14px;margin-top:3px;line-height:1.35;}
.cert-toc .toc-cnt{font-size:22px;min-width:52px;}

/* ===== 俄文：数字卡标签折行防重叠 ===== */
body.lang-ru .cover-nums .num,
body.lang-ru .num{ min-height:96px; }
body.lang-ru .num span{ line-height:1.15; font-size:13px; }
body.lang-ru .num b{ font-size:44px; }
body.lang-ru .kicker{ font-size:15px; letter-spacing:.04em; }
body.lang-ru .lead{ font-size:16px; line-height:1.5; }

/* 中文数字卡标签 */
body.lang-zh .num span{ line-height:1.25; }
body.lang-zh .num b{ font-family:"Helvetica Neue",Arial,sans-serif; }

/* ============ 站点顶栏 ============ */
.topbar{
  position:fixed; top:0; left:0; right:0; height:56px; z-index:9000;
  background:rgba(1,40,66,.94); backdrop-filter:blur(14px);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 26px; box-sizing:border-box;
  border-bottom:1px solid rgba(255,255,255,.10);
  font-family:"Helvetica Neue",Arial,"PingFang SC",sans-serif;
}
.tb-brand{
  color:#fff; font-size:16px; font-weight:700; letter-spacing:.02em;
  text-decoration:none; display:flex; align-items:baseline; gap:9px;
}
.tb-brand span{ font-size:10.5px; font-weight:400; letter-spacing:.14em;
  color:rgba(255,255,255,.52); }
.tb-right{ display:flex; align-items:center; gap:16px; }

.lang-switch{
  display:flex; gap:2px; background:rgba(255,255,255,.09);
  border-radius:5px; padding:3px;
}
.lang-switch button{
  border:0; background:transparent; color:rgba(255,255,255,.68);
  font-size:13px; padding:6px 14px; border-radius:3px; cursor:pointer;
  font-family:inherit; transition:all .16s; white-space:nowrap;
}
.lang-switch button:hover{ color:#fff; background:rgba(255,255,255,.10); }
.lang-switch button.active{
  background:#fff; color:#01487B; font-weight:700;
}

.btn-dl{
  display:inline-flex; align-items:center; gap:7px;
  background:#F79C55; color:#1a1207; text-decoration:none;
  font-size:13px; font-weight:700; padding:8px 16px; border-radius:4px;
  transition:all .16s; white-space:nowrap;
}
.btn-dl:hover{ background:#ffb073; transform:translateY(-1px); }

/* 顶栏占位，避免遮挡第一页 */
body{ padding-top:56px; }
.slide{ scroll-margin-top:56px; }

/* 翻页提示 */
.pagehint{
  position:fixed; bottom:20px; left:50%; transform:translateX(-50%);
  background:rgba(1,40,66,.88); color:rgba(255,255,255,.86);
  font-size:12.5px; padding:8px 20px; border-radius:20px;
  z-index:9000; pointer-events:none; transition:opacity .4s;
  font-family:"Helvetica Neue",Arial,"PingFang SC",sans-serif;
  letter-spacing:.02em;
}
.pagehint.hide{ opacity:0; }

@media (max-width:760px){
  .topbar{ padding:0 12px; height:52px; }
  .tb-brand span{ display:none; }
  .tb-brand{ font-size:14px; }
  .lang-switch button{ padding:5px 9px; font-size:12px; }
  .btn-dl{ padding:7px 11px; font-size:12px; }
  .btn-dl span{ display:none; }
  body{ padding-top:52px; }
  .slide{ scroll-margin-top:52px; }
}

/* ============ 手机端：横向等比缩放整页 ============ */
@media (max-width: 1200px){
  .slide{
    width:1920px !important;
    height:1080px !important;
    transform-origin: top left !important;
    transform: scale(var(--sx)) !important;
    margin-bottom: calc(1080px * var(--sx) - 1080px) !important;
    margin-right: calc(1920px * var(--sx) - 1920px) !important;
    flex:0 0 auto !important;
  }
  body{
    overflow-x:hidden;
    width:100%;
  }
  .slides-wrap{ width:100%; overflow-x:hidden; }
}

/* ============ 手机/窄屏：用 zoom 等比缩放（比 transform 稳） ============ */
@media (max-width: 1919px){
  html{ overflow-x:hidden; }
  body{ overflow-x:hidden; width:100vw; }

  /* 每页整体缩放 */
  .slide{
    zoom: calc(100vw / 1920);
    width:1920px;
    height:1080px;
    flex:0 0 auto;
    margin:0;
  }
  /* zoom 已处理尺寸，去掉多余占位 */
  .slide + .slide{ margin-top:0; }

  /* 顶栏按正常尺寸（不受 zoom 影响，因在 slide 外） */
  .topbar{ width:100vw; }

  .pagehint{ font-size:11px; padding:6px 14px; bottom:12px; }
}
