.page-products{
  --pp-cut:18px;
  --pp-rule:rgba(200,150,62,.55);
  --pp-shadow:0 1px 0 rgba(36,26,22,.06);
  background:var(--paper);
  color:var(--ink);
  overflow-x:hidden;
}

/* ---------- 面包屑 ---------- */
.page-products .breadcrumb{padding-top:clamp(14px,3vw,24px);}
.page-products .breadcrumb ol{
  display:flex;flex-wrap:wrap;gap:8px;
  list-style:none;margin:0;padding:0;
  font-size:13px;color:var(--muted);
}
.page-products .breadcrumb a{
  color:var(--muted);text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color var(--ease),border-color var(--ease);
}
.page-products .breadcrumb a:hover{color:var(--ink);border-bottom-color:var(--gold);}
.page-products .breadcrumb li+li::before{content:"›";margin-right:8px;color:var(--gold);}

/* ---------- 首屏 ---------- */
.page-products .tools-hero{
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(120% 110% at 8% -10%,rgba(200,150,62,.20),transparent 58%),
    linear-gradient(180deg,rgba(231,218,196,.35),transparent 70%),
    var(--paper);
}
.page-products .tools-hero-inner{
  display:grid;
  gap:clamp(24px,4vw,36px);
  padding-block:clamp(24px,4vw,40px) clamp(28px,5vw,52px);
}
.page-products .hero-copy{min-width:0;}
.page-products .eyebrow{
  margin:0 0 10px;
  font-family:var(--mono);
  font-size:11.5px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--cinnabar);
}
.page-products h1{
  margin:0;
  font-family:var(--serif);
  font-weight:700;
  font-size:clamp(30px,6vw,56px);
  line-height:1.16;
  letter-spacing:.01em;
  color:var(--ink);
}
.page-products h1::after{
  content:"";
  display:block;
  width:88px;height:4px;
  margin-top:18px;
  background:linear-gradient(90deg,var(--gold),rgba(200,150,62,0));
}
.page-products .hero-lead{
  margin:20px 0 0;
  max-width:34em;
  font-size:clamp(15px,1.6vw,17px);
  line-height:1.85;
  color:rgba(36,26,22,.86);
}
.page-products .hero-actions{
  display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;
}

.page-products .hero-side{
  align-self:end;
  background:var(--sand);
  box-shadow:inset 0 0 0 1px rgba(200,150,62,.5);
  clip-path:polygon(0 0,calc(100% - var(--pp-cut)) 0,100% var(--pp-cut),100% 100%,0 100%);
  padding:18px 20px 14px;
}
.page-products .side-title{
  margin:0 0 8px;
  font-family:var(--mono);
  font-size:11.5px;letter-spacing:.16em;
  color:var(--muted);
}
.page-products .side-list{list-style:none;margin:0;padding:0;}
.page-products .side-list li{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 0;
  border-bottom:1px dashed rgba(36,26,22,.16);
}
.page-products .side-list li:last-child{border-bottom:0;}
.page-products .side-list a{
  color:var(--ink);text-decoration:none;font-size:15px;
  border-bottom:1px solid transparent;
  transition:color var(--ease),border-color var(--ease);
}
.page-products .side-list a:hover{color:var(--cinnabar);border-bottom-color:var(--cinnabar);}
.page-products .side-list .mono{font-size:12px;color:var(--muted);letter-spacing:.06em;}

/* ---------- 通用区块 ---------- */
.page-products .pp-block{padding-block:clamp(40px,6vw,74px);}
.page-products .pp-block--sand{
  background-color:var(--sand);
  background-image:
    repeating-linear-gradient(90deg,rgba(36,26,22,.035) 0 1px,transparent 1px 8px),
    repeating-linear-gradient(0deg,rgba(36,26,22,.03) 0 1px,transparent 1px 8px);
  border-block:1px solid var(--line);
}
.page-products .pp-head{max-width:52em;}
.page-products .pp-head h2{
  margin:0;
  font-family:var(--serif);
  font-weight:700;
  font-size:clamp(23px,3.4vw,36px);
  line-height:1.3;
  color:var(--ink);
}
.page-products .pp-lead{
  margin:14px 0 0;
  font-size:15px;line-height:1.85;color:rgba(36,26,22,.82);
}
.page-products .pp-sub{padding-top:clamp(36px,5vw,56px);}
.page-products .pp-sub:first-child{padding-top:0;}
.page-products .pp-sub + .pp-sub{
  margin-top:clamp(36px,5vw,56px);
  padding-top:clamp(30px,4vw,44px);
  border-top:1px solid var(--line);
}

/* ---------- 六类总览 ---------- */
.page-products .cat-grid{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:14px;
  margin:28px 0 0;
  padding:0;
}
.page-products .cat-card{
  position:relative;
  padding:22px 20px 20px;
  background:var(--paper);
  box-shadow:inset 0 0 0 1px var(--pp-rule);
  clip-path:polygon(0 0,calc(100% - var(--pp-cut)) 0,100% var(--pp-cut),100% 100%,var(--pp-cut) 100%,0 calc(100% - var(--pp-cut)));
  transition:background var(--ease),box-shadow var(--ease),transform var(--ease);
}
.page-products .cat-card:hover{
  background:#FFFAF0;
  box-shadow:inset 0 0 0 2px var(--gold);
  transform:translateY(-2px);
}
.page-products .cat-card img{
  display:block;width:46px;height:46px;object-fit:contain;
}
.page-products .cat-count{
  position:absolute;top:16px;right:18px;
  font-size:13px;color:var(--cinnabar);letter-spacing:.04em;
}
.page-products .cat-card h3{
  margin:14px 0 6px;
  font-family:var(--serif);
  font-size:19px;font-weight:700;color:var(--ink);
}
.page-products .cat-card p{
  margin:0;font-size:13.5px;line-height:1.75;color:var(--muted);
}

/* ---------- 左右分屏 ---------- */
.page-products .tools-layout{
  padding-block:clamp(32px,5vw,64px);
}
.page-products .filter-radio{
  position:absolute;width:1px;height:1px;
  overflow:hidden;clip-path:inset(50%);opacity:0;
  pointer-events:none;
}
.page-products .tools-split{display:grid;gap:clamp(22px,3vw,36px);}
.page-products .tools-rail{min-width:0;}
.page-products .tools-main{min-width:0;}

.page-products .rail-block + .rail-block{
  margin-top:22px;padding-top:20px;
  border-top:1px solid var(--line);
}
.page-products .rail-title{
  margin:0 0 12px;
  font-family:var(--mono);
  font-size:11.5px;letter-spacing:.16em;
  color:var(--muted);
}
.page-products .rail-toc{list-style:none;margin:0;padding:0;}
.page-products .rail-toc li{margin-bottom:2px;}
.page-products .rail-toc a{
  display:block;
  padding:7px 10px 7px 14px;
  position:relative;
  font-size:14px;color:var(--ink);text-decoration:none;
  transition:color var(--ease),background var(--ease);
}
.page-products .rail-toc a::before{
  content:"";
  position:absolute;left:0;top:50%;
  width:6px;height:1px;background:var(--gold);
  transform:translateY(-50%);
  transition:width var(--ease),background var(--ease);
}
.page-products .rail-toc a:hover{color:var(--cinnabar);background:rgba(200,150,62,.10);}
.page-products .rail-toc a:hover::before{width:12px;background:var(--cinnabar);}

.page-products .filter-chips{display:flex;flex-direction:column;gap:6px;}
.page-products .filter-chip{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:8px 12px;
  border:1px solid var(--line);
  background:var(--paper);
  font-size:13.5px;color:var(--ink);
  cursor:pointer;
  transition:background var(--ease),color var(--ease),border-color var(--ease);
}
.page-products .filter-chip:hover{border-color:var(--gold);color:var(--cinnabar);}
.page-products .filter-chip .n{font-family:var(--mono);font-size:12px;color:inherit;opacity:.6;}
.page-products .rail-note{
  margin:12px 0 0;font-size:12.5px;line-height:1.7;color:var(--muted);
}

.page-products #cat-all:checked ~ .tools-split .filter-chips label[for="cat-all"],
.page-products #cat-clt:checked ~ .tools-split .filter-chips label[for="cat-clt"],
.page-products #cat-set:checked ~ .tools-split .filter-chips label[for="cat-set"],
.page-products #cat-idx:checked ~ .tools-split .filter-chips label[for="cat-idx"],
.page-products #cat-rec:checked ~ .tools-split .filter-chips label[for="cat-rec"],
.page-products #cat-acc:checked ~ .tools-split .filter-chips label[for="cat-acc"],
.page-products #cat-sup:checked ~ .tools-split .filter-chips label[for="cat-sup"]{
  background:var(--navy);
  border-color:var(--navy);
  color:var(--paper);
}

.page-products #cat-clt:checked ~ .tools-split .svc-table tbody tr:not(.is-clt),
.page-products #cat-set:checked ~ .tools-split .svc-table tbody tr:not(.is-set),
.page-products #cat-idx:checked ~ .tools-split .svc-table tbody tr:not(.is-idx),
.page-products #cat-rec:checked ~ .tools-split .svc-table tbody tr:not(.is-rec),
.page-products #cat-acc:checked ~ .tools-split .svc-table tbody tr:not(.is-acc),
.page-products #cat-sup:checked ~ .tools-split .svc-table tbody tr:not(.is-sup){
  display:none;
}

/* ---------- 图片容器 ---------- */
.page-products .tool-figure{
  margin:24px 0 0;
  padding:10px;
  background:var(--paper);
  box-shadow:inset 0 0 0 1px var(--pp-rule);
}
.page-products .tool-figure img{
  display:block;
  width:100%;height:auto;
  object-fit:cover;
}
.page-products .tool-figure figcaption{
  padding:10px 4px 2px;
  font-size:12.5px;line-height:1.65;
  color:var(--muted);
}

/* ---------- 设置抽屉 ---------- */
.page-products .set-drawer{
  margin-top:12px;
  background:var(--paper);
  border:1px solid var(--line);
  border-left:4px solid transparent;
  transition:border-color var(--ease),background var(--ease);
}
.page-products .set-drawer:first-of-type{margin-top:22px;}
.page-products .set-drawer[open]{
  border-left-color:var(--celadon);
  background:rgba(79,124,107,.05);
}
.page-products .set-drawer summary{
  display:flex;align-items:center;gap:14px;
  padding:14px 16px;
  cursor:pointer;
  list-style:none;
}
.page-products .set-drawer summary::-webkit-details-marker{display:none;}
.page-products .set-drawer summary::after{
  content:"＋";
  margin-left:auto;
  font-size:15px;color:var(--gold);
  transition:color var(--ease);
}
.page-products .set-drawer[open] summary::after{content:"－";color:var(--celadon);}
.page-products .set-drawer summary:hover{background:rgba(200,150,62,.09);}
.page-products .drawer-idx{
  font-size:12px;letter-spacing:.12em;color:var(--gold);
}
.page-products .drawer-name{
  font-family:var(--serif);
  font-size:19px;font-weight:700;color:var(--ink);
}
.page-products .drawer-hint{
  font-size:12.5px;color:var(--muted);
}
.page-products .drawer-body{
  padding:2px 16px 16px;
  border-top:1px dashed var(--line);
}
.page-products .set-items{list-style:none;margin:0;padding:0;}
.page-products .set-items li{
  display:grid;
  grid-template-columns:1fr;
  gap:4px;
  padding:12px 0;
  border-bottom:1px solid var(--line-soft);
}
.page-products .set-items li:last-child{border-bottom:0;}
.page-products .set-code{
  font-size:11.5px;letter-spacing:.06em;color:var(--celadon);
}
.page-products .set-text{
  font-size:14px;line-height:1.8;color:rgba(36,26,22,.84);
}
.page-products .set-text b{
  display:inline-block;
  margin-right:6px;
  font-weight:600;color:var(--ink);
}

/* ---------- 模板 ---------- */
.page-products .tpl-split{display:grid;gap:24px;}
.page-products .tpl-copy h2{
  margin:0;
  font-family:var(--serif);
  font-weight:700;
  font-size:clamp(23px,3.4vw,34px);
  line-height:1.3;
}
.page-products .tpl-copy p{
  margin:14px 0 0;font-size:15px;line-height:1.85;color:rgba(36,26,22,.82);
}
.page-products .tpl-steps{
  list-style:none;margin:22px 0 0;padding:0;
  counter-reset:none;
}
.page-products .tpl-steps li{
  display:flex;gap:12px;align-items:baseline;
  padding:10px 0;
  border-bottom:1px dashed rgba(36,26,22,.16);
  font-size:14px;line-height:1.75;color:rgba(36,26,22,.86);
}
.page-products .tpl-steps li:last-child{border-bottom:0;}
.page-products .step-n{
  flex:0 0 auto;
  font-size:12px;letter-spacing:.08em;
  color:var(--paper);
  background:var(--navy);
  padding:2px 7px;
}
.page-products .tpl-figure{margin-top:0;align-self:start;}

/* ---------- 清单表格 ---------- */
.page-products .svc-wrap{
  margin-top:24px;
  background:var(--paper);
  border:1px solid var(--line);
}
.page-products .svc-scroll{overflow-x:auto;}
.page-products .svc-table{
  width:100%;
  min-width:660px;
  border-collapse:collapse;
  font-size:13.5px;
}
.page-products .svc-cap{
  caption-side:top;
  text-align:left;
  padding:12px 14px;
  font-family:var(--mono);
  font-size:11.5px;letter-spacing:.12em;
  color:var(--muted);
  border-bottom:1px solid var(--line);
}
.page-products .svc-table thead th{
  background:var(--navy);
  color:var(--paper);
  font-family:var(--sans);
  font-size:12.5px;font-weight:600;letter-spacing:.06em;
  text-align:left;
  padding:12px 14px;
  white-space:nowrap;
}
.page-products .svc-table tbody th,
.page-products .svc-table tbody td{
  text-align:left;
  font-weight:400;
  padding:11px 14px;
  vertical-align:top;
  border-bottom:1px solid var(--line-soft);
  color:rgba(36,26,22,.86);
  line-height:1.6;
}
.page-products .svc-table tbody th{
  font-weight:600;color:var(--ink);white-space:nowrap;
}
.page-products .svc-table tbody tr:nth-child(even){background:var(--sand);}
.page-products .svc-table tbody tr{transition:box-shadow var(--ease);}
.page-products .svc-table tbody tr:hover{
  box-shadow:inset 4px 0 0 var(--gold),inset 0 0 0 1px rgba(200,150,62,.35);
}
.page-products .svc-loc{
  font-size:12px;
  color:var(--muted);
  white-space:nowrap;
  opacity:.45;
  transition:opacity var(--ease),color var(--ease);
}
.page-products .svc-table tbody tr:hover .svc-loc{
  opacity:1;color:var(--cinnabar);
}
.page-products .svc-tip{
  margin:12px 0 0;
  font-size:12.5px;line-height:1.7;color:var(--muted);
}

/* ---------- 服务记录 ---------- */
.page-products .rec-grid{
  list-style:none;
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  margin:28px 0 0;padding:0;
}
.page-products .rec-card{
  position:relative;
  padding:22px 20px;
  background:var(--sand);
  border-top:3px solid var(--celadon);
}
.page-products .rec-num{
  font-size:13px;letter-spacing:.14em;color:var(--celadon);
}
.page-products .rec-card h3{
  margin:8px 0 8px;
  font-family:var(--serif);
  font-size:20px;font-weight:700;color:var(--ink);
}
.page-products .rec-card p{
  margin:0;font-size:13.5px;line-height:1.78;color:rgba(36,26,22,.8);
}
.page-products .rec-note{
  margin:20px 0 0;
  padding-left:14px;
  border-left:3px solid var(--gold);
  font-size:14px;line-height:1.85;color:rgba(36,26,22,.84);
}
.page-products .rec-note a{
  color:var(--cinnabar);
  text-decoration:none;
  border-bottom:1px solid rgba(179,53,44,.45);
}
.page-products .rec-note a:hover{border-bottom-color:var(--cinnabar);}

/* ---------- 版本条带 ---------- */
.page-products .q-track{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(158px,1fr);
  gap:10px;
  align-items:start;
  margin-top:26px;
  padding:4px 2px 14px;
  overflow-x:auto;
  scrollbar-width:thin;
}
.page-products .q-item{
  background:var(--paper);
  border:1px solid var(--line);
  border-top:3px solid var(--gold);
  padding:12px 14px;
  min-width:0;
  transition:background var(--ease),border-color var(--ease);
}
.page-products .q-item[open]{background:#FFFAF0;}
.page-products .q-item summary{
  display:grid;gap:4px;
  cursor:pointer;list-style:none;
}
.page-products .q-item summary::-webkit-details-marker{display:none;}
.page-products .q-stage{
  font-family:var(--mono);
  font-size:11px;letter-spacing:.14em;
  color:var(--muted);
}
.page-products .q-ver{
  font-family:var(--serif);
  font-size:22px;font-weight:700;color:var(--ink);
  line-height:1.1;
}
.page-products .q-item p{
  margin:10px 0 0;
  font-size:12.5px;line-height:1.7;color:var(--muted);
}
.page-products .q-item--now{
  background:var(--gold-hi);
  border-color:var(--gold-hi);
  border-top-color:var(--cinnabar);
}
.page-products .q-item--now .q-stage{color:rgba(20,16,14,.7);}
.page-products .q-item--now .q-ver{color:var(--night);}
.page-products .q-item--now p{color:rgba(20,16,14,.78);}
.page-products .q-figure{margin-top:10px;}

/* ---------- 结尾区块 ---------- */
.page-products .pp-block--night{
  background-color:var(--night);
  background-image:
    repeating-linear-gradient(75deg,rgba(200,150,62,.07) 0 1px,transparent 1px 26px);
  color:var(--paper);
}
.page-products .pp-head--night h2{color:var(--paper);}
.page-products .pp-head--night .eyebrow{color:var(--gold-hi);}
.page-products .next-links{
  list-style:none;
  display:grid;
  grid-template-columns:1fr;
  gap:2px;
  margin:26px 0 0;padding:0;
}
.page-products .next-links a{
  display:block;
  padding:16px 18px;
  text-decoration:none;
  border:1px solid rgba(246,239,226,.16);
  transition:background var(--ease),border-color var(--ease);
}
.page-products .next-links a:hover{
  background:rgba(200,150,62,.14);
  border-color:var(--gold-hi);
}
.page-products .next-title{
  display:block;
  font-family:var(--serif);
  font-size:19px;font-weight:700;
  color:var(--gold-hi);
}
.page-products .next-desc{
  display:block;
  margin-top:6px;
  font-size:13.5px;line-height:1.7;
  color:rgba(246,239,226,.72);
}
.page-products .next-back{
  margin:26px 0 0;
  font-size:14px;
}
.page-products .next-back a{
  color:var(--gold-hi);
  text-decoration:none;
  border-bottom:1px solid rgba(224,180,92,.5);
  padding-bottom:2px;
}
.page-products .next-back a:hover{border-bottom-color:var(--gold-hi);}

/* ---------- 响应式 ---------- */
@media (min-width:640px){
  .page-products .rec-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .page-products .next-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .page-products .set-items li{
    grid-template-columns:104px minmax(0,1fr);
    gap:14px;
    align-items:baseline;
  }
  .page-products .set-code{padding-top:2px;}
}

@media (min-width:900px){
  .page-products .tools-hero-inner{
    grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);
    align-items:end;
  }
  .page-products .tpl-split{
    grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);
    gap:clamp(24px,4vw,44px);
    align-items:start;
  }
}

@media (min-width:960px){
  .page-products .tools-split{
    grid-template-columns:280px minmax(0,1fr);
    gap:clamp(32px,4vw,52px);
    align-items:start;
  }
  .page-products .tools-rail{
    position:sticky;
    top:24px;
  }
  .page-products .drawer-hint{margin-left:auto;}
}

@media (min-width:1100px){
  .page-products .next-links{grid-template-columns:repeat(4,minmax(0,1fr));}
}

@media (prefers-reduced-motion:reduce){
  .page-products *,
  .page-products *::before,
  .page-products *::after{
    transition-duration:.001ms !important;
    animation-duration:.001ms !important;
  }
  .page-products .cat-card:hover{transform:none;}
}
