/* ===== 页面作用域：服务项目与下载 ===== */
.page-products{
  --pp-y:clamp(46px,7vw,92px);
  --pp-pad:clamp(16px,2.6vw,30px);
  --pp-gap:clamp(14px,2.2vw,24px);
  --pp-r:14px;
  --pp-dot:var(--cat-clean);
  background:var(--paper-cold);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.8;
  padding-bottom:clamp(48px,7vw,96px);
  overflow-x:clip;
}
.page-products *{box-sizing:border-box}
.page-products p{margin:0}
.page-products h1,
.page-products h2,
.page-products h3{margin:0;line-height:1.2;font-weight:900;letter-spacing:-.02em}
.page-products ul,
.page-products ol{margin:0;padding:0;list-style:none}
.page-products img{max-width:100%;height:auto}

/* --- 面包屑 --- */
.page-products .crumbs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.08em;
  color:var(--mist);
  margin-bottom:clamp(18px,3vw,30px);
}
.page-products .crumbs a{
  color:var(--ink-soft);
  text-decoration:none;
  border-bottom:1px solid var(--line);
  padding-bottom:1px;
}
.page-products .crumbs a:hover{color:var(--cat-clean);border-color:var(--cat-clean)}

/* --- 首屏 --- */
.page-products .pp-hero{
  position:relative;
  background:linear-gradient(168deg,#e9f1f7 0%,#d8e7f1 58%,var(--paper-cold) 100%);
  border-bottom:1px solid var(--line-paper);
  padding:clamp(20px,3.4vw,34px) 0 clamp(34px,5.4vw,68px);
}
.page-products .pp-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(var(--line-paper) 1px,transparent 1px),
    linear-gradient(90deg,var(--line-paper) 1px,transparent 1px);
  background-size:64px 64px;
  opacity:.45;
  pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 74%);
  mask-image:linear-gradient(180deg,#000,transparent 74%);
}
.page-products .pp-hero .wrap{position:relative;z-index:1}

.page-products .pp-hero__grid{display:grid;gap:clamp(20px,3.4vw,40px)}

.page-products .pp-kicker{
  display:inline-block;
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.16em;
  color:var(--cat-repair);
  background:rgba(250,246,239,.75);
  border:1px solid var(--line-strong);
  border-radius:var(--radius-pill);
  padding:3px 11px;
  margin-bottom:14px;
}

.page-products .pp-hero h1{
  font-size:clamp(28px,5.4vw,54px);
  line-height:1.1;
  letter-spacing:-.035em;
  max-width:17em;
}
.page-products .pp-hero h1::after{
  content:"";
  display:block;
  width:74px;
  height:8px;
  margin-top:20px;
  border-radius:2px;
  background:var(--cat-clean);
}
.page-products .pp-hero__lede{
  margin-top:20px;
  font-size:clamp(15px,1.6vw,17px);
  line-height:1.85;
  color:var(--ink-soft);
  max-width:46em;
}

.page-products .pp-jump{
  background:var(--paper-warm);
  border:1px solid var(--line);
  border-radius:var(--pp-r);
  box-shadow:var(--shadow-panel);
  padding:10px 12px;
}
.page-products .pp-jump li + li{border-top:1px dashed var(--line)}
.page-products .pp-jump a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:9px 4px;
  font-size:14px;
  color:var(--ink);
  text-decoration:none;
}
.page-products .pp-jump a::after{
  content:"→";
  font-family:var(--font-mono);
  font-size:12px;
  color:var(--mist);
  transition:transform .2s ease,color .2s ease;
}
.page-products .pp-jump a:hover{color:var(--cat-clean)}
.page-products .pp-jump a:hover::after{color:var(--cat-clean);transform:translateX(3px)}

.page-products .pp-facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  margin-top:clamp(24px,4vw,44px);
  background:var(--line);
  border:1px solid var(--line);
  border-radius:var(--pp-r);
  overflow:hidden;
}
.page-products .pp-facts li{background:var(--paper-warm);padding:14px 16px}
.page-products .pp-facts__num{
  display:block;
  font-family:var(--font-mono);
  font-weight:600;
  font-size:clamp(19px,2.6vw,27px);
  line-height:1.2;
  letter-spacing:-.01em;
  color:var(--ink);
}
.page-products .pp-facts__label{
  display:block;
  margin-top:4px;
  font-size:12.5px;
  color:var(--mist);
}

/* --- 章节通用 --- */
.page-products .pp-sec{padding-top:var(--pp-y)}
.page-products .pp-sec__head{max-width:58em;margin-bottom:clamp(22px,3.4vw,38px)}
.page-products .pp-sec__head h2{
  font-size:clamp(23px,3.6vw,38px);
  letter-spacing:-.03em;
  margin-bottom:12px;
}
.page-products .pp-sec__lede{
  font-size:15.5px;
  color:var(--ink-soft);
  max-width:46em;
}
.page-products .pp-note{
  margin-top:20px;
  padding:12px 16px;
  border-left:3px solid var(--cat-clean);
  border-radius:0 8px 8px 0;
  background:rgba(30,127,184,.07);
  font-size:13.8px;
  color:var(--ink-soft);
}

/* --- 01 计价构成 --- */
.page-products .pp-calc{display:grid;gap:var(--pp-gap)}
.page-products .pp-calc__card{
  background:var(--paper-warm);
  border:1px solid var(--line);
  border-top:4px solid var(--cat-clean);
  border-radius:var(--pp-r);
  padding:var(--pp-pad);
  box-shadow:var(--shadow-panel);
}
.page-products .pp-calc__card--mat{border-top-color:var(--cat-pipe)}
.page-products .pp-calc__card h3{font-size:18px;margin-bottom:12px}
.page-products .pp-calc__card li{
  position:relative;
  padding-left:18px;
  margin-top:9px;
  font-size:14.6px;
  color:var(--ink-soft);
}
.page-products .pp-calc__card li::before{
  content:"";
  position:absolute;
  left:0;
  top:.74em;
  width:7px;
  height:7px;
  border-radius:2px;
  background:var(--cat-clean);
}
.page-products .pp-calc__card--mat li::before{background:var(--cat-pipe)}

/* --- 02 四类项目 --- */
.page-products .pp-cats{display:grid;gap:clamp(18px,3vw,30px)}
.page-products .pp-cat{
  display:grid;
  gap:clamp(14px,2.2vw,26px);
  background:var(--paper-warm);
  border:1px solid var(--line);
  border-left:5px solid var(--pp-dot);
  border-radius:var(--pp-r);
  padding:var(--pp-pad);
  box-shadow:var(--shadow-panel);
}
.page-products .pp-cat--clean{--pp-dot:var(--cat-clean)}
.page-products .pp-cat--pipe{--pp-dot:var(--cat-pipe)}
.page-products .pp-cat--repair{--pp-dot:var(--cat-repair)}
.page-products .pp-cat--house{--pp-dot:var(--cat-house)}

.page-products .pp-cat__media{
  position:relative;
  aspect-ratio:4 / 3;
  border-radius:calc(var(--pp-r) - 3px);
  overflow:hidden;
  background:#cddcea;
}
.page-products .pp-cat__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(.94) contrast(1.02);
}
.page-products .pp-cat__media::after{
  content:"";
  position:absolute;
  inset:0;
  border:1px solid var(--line);
  border-radius:inherit;
  pointer-events:none;
}

.page-products .pp-cat h3{
  font-size:clamp(18px,2.3vw,22px);
  margin:12px 0 8px;
}
.page-products .pp-cat__desc{font-size:15px;color:var(--ink-soft)}
.page-products .pp-cat__meter{
  display:inline-block;
  margin-top:14px;
  padding:4px 12px;
  font-family:var(--font-mono);
  font-size:12.5px;
  color:var(--ink);
  background:var(--paper-cold);
  border:1px dashed var(--line-strong);
  border-radius:var(--radius-pill);
}

.page-products .tag{
  display:inline-block;
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.1em;
  padding:3px 9px;
  border:1px solid currentColor;
  border-radius:2px;
}
.page-products .tag--clean{color:var(--cat-clean);background:rgba(30,127,184,.09)}
.page-products .tag--pipe{color:var(--cat-pipe);background:rgba(222,138,22,.1)}
.page-products .tag--repair{color:var(--cat-repair);background:rgba(53,111,128,.1)}
.page-products .tag--house{color:var(--cat-house);background:rgba(90,122,68,.1)}

.page-products .fold{
  margin-top:16px;
  padding-top:12px;
  border-top:1px solid var(--line);
}
.page-products .fold summary{
  display:flex;
  align-items:center;
  gap:8px;
  padding:4px 0;
  cursor:pointer;
  list-style:none;
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:.05em;
  color:var(--ink-soft);
}
.page-products .fold summary::-webkit-details-marker{display:none}
.page-products .fold summary::before{
  content:"＋";
  font-size:14px;
  line-height:1;
  color:var(--pp-dot);
}
.page-products .fold[open] summary::before{content:"－"}
.page-products .fold[open] summary{color:var(--pp-dot)}
.page-products .fold__body{padding:10px 0 2px}
.page-products .pp-list li{
  position:relative;
  padding-left:16px;
  margin-top:7px;
  font-size:14.4px;
  color:var(--ink-soft);
}
.page-products .pp-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.74em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--pp-dot);
}

/* --- 03 加急费率 --- */
.page-products .pp-sec--rush{
  --rush-1:#F0C229;
  --rush-2:#EE9B33;
  --rush-3:#E4695A;
  margin-top:var(--pp-y);
  padding:clamp(36px,5.4vw,72px) 0;
  background:var(--ink);
  color:var(--paper-warm);
}
.page-products .pp-sec--rush .pp-kicker{
  color:var(--warn-1);
  border-color:rgba(240,194,41,.5);
  background:rgba(240,194,41,.1);
}
.page-products .pp-sec--rush .pp-sec__lede{color:#a7bdcd}
.page-products .pp-sec--rush .pp-note--dark{
  margin-top:22px;
  border-left-color:rgba(250,246,239,.3);
  background:rgba(250,246,239,.06);
  color:#b9cbd9;
}
.page-products .pp-rush{display:grid;gap:var(--pp-gap)}
.page-products .pp-rush__card{
  position:relative;
  padding:var(--pp-pad);
  padding-top:calc(var(--pp-pad) + 8px);
  border:1px solid rgba(250,246,239,.16);
  border-radius:var(--pp-r);
  background:linear-gradient(180deg,rgba(250,246,239,.07),rgba(250,246,239,.02));
}
.page-products .pp-rush__card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:5px;
  border-radius:var(--pp-r) var(--pp-r) 0 0;
  background:var(--rush-1);
}
.page-products .pp-rush__card--2::before{background:var(--rush-2)}
.page-products .pp-rush__card--3::before{background:var(--rush-3)}
.page-products .pp-rush__card .tag{
  background:transparent;
  border:1px solid currentColor;
  color:var(--rush-1);
  letter-spacing:.14em;
}
.page-products .pp-rush__card--2 .tag{color:var(--rush-2)}
.page-products .pp-rush__card--3 .tag{color:var(--rush-3)}

.page-products .pp-rush__time{
  margin-top:16px;
  font-family:var(--font-mono);
  font-weight:600;
  font-size:clamp(40px,7vw,62px);
  line-height:1;
  letter-spacing:-.04em;
  color:var(--paper-warm);
}
.page-products .pp-rush__time small{
  margin-left:6px;
  font-size:.28em;
  font-weight:400;
  letter-spacing:.08em;
  color:rgba(250,246,239,.62);
}
.page-products .pp-rush__rate{
  margin-top:12px;
  font-family:var(--font-mono);
  font-size:16px;
  color:var(--rush-1);
}
.page-products .pp-rush__card--2 .pp-rush__rate{color:var(--rush-2)}
.page-products .pp-rush__card--3 .pp-rush__rate{color:var(--rush-3)}
.page-products .pp-rush__when{
  margin-top:14px;
  padding-top:14px;
  border-top:1px dashed rgba(250,246,239,.2);
  font-size:14px;
  color:#b9cbd9;
}

/* --- 04 iOS 客户端 --- */
.page-products .pp-app{display:grid;gap:clamp(22px,3.4vw,44px)}
.page-products .pp-app__body h2{
  font-size:clamp(23px,3.6vw,38px);
  letter-spacing:-.03em;
  margin-bottom:12px;
}
.page-products .pp-steps{counter-reset:ppstep;margin-top:22px}
.page-products .pp-steps li{
  counter-increment:ppstep;
  position:relative;
  padding-left:46px;
  margin-top:16px;
  font-size:15px;
  color:var(--ink-soft);
}
.page-products .pp-steps li::before{
  content:counter(ppstep,decimal-leading-zero);
  position:absolute;
  left:0;
  top:.12em;
  padding:3px 6px;
  font-family:var(--font-mono);
  font-size:12.5px;
  line-height:1.2;
  color:var(--cat-clean);
  background:var(--paper-warm);
  border:1px solid var(--line-strong);
  border-radius:6px;
}
.page-products .pp-app__shot{
  margin:0;
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  background:#cddcea;
  box-shadow:var(--shadow-float);
}
.page-products .pp-app__shot img{
  display:block;
  width:100%;
  height:auto;
  object-fit:cover;
}

/* --- 05 工龄段单价 --- */
.page-products .pp-tenure{
  background:var(--paper-warm);
  border:1px solid var(--line);
  border-radius:var(--pp-r);
  padding:var(--pp-pad);
  box-shadow:var(--shadow-panel);
}
.page-products .pp-scale{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  border-radius:10px;
  overflow:hidden;
}
.page-products .pp-scale li{
  background:var(--paper-warm);
  padding:14px 12px;
}
.page-products .pp-scale__bar{
  display:block;
  height:4px;
  margin-bottom:10px;
  border-radius:2px;
  background:var(--cat-house);
  opacity:.35;
}
.page-products .pp-scale li:nth-child(2) .pp-scale__bar{opacity:.52}
.page-products .pp-scale li:nth-child(3) .pp-scale__bar{opacity:.68}
.page-products .pp-scale li:nth-child(4) .pp-scale__bar{opacity:.84}
.page-products .pp-scale li:nth-child(5) .pp-scale__bar{opacity:1}
.page-products .pp-scale__age{
  display:block;
  font-family:var(--font-mono);
  font-weight:600;
  font-size:clamp(13.5px,1.8vw,16px);
  letter-spacing:-.01em;
  color:var(--ink);
}
.page-products .pp-scale__note{
  display:block;
  margin-top:4px;
  font-size:12.5px;
  color:var(--mist);
}
.page-products .pp-path{
  margin-top:20px;
  padding-top:18px;
  border-top:1px dashed var(--line-strong);
  font-size:14.4px;
  color:var(--ink-soft);
}

/* --- 06 报价与结算 --- */
.page-products .pp-settle{display:grid;gap:var(--pp-gap)}
.page-products .pp-settle li{
  background:var(--paper-warm);
  border:1px solid var(--line);
  border-top:4px solid var(--cat-clean);
  border-radius:var(--pp-r);
  padding:var(--pp-pad);
  box-shadow:var(--shadow-panel);
}
.page-products .pp-settle li:nth-child(2){border-top-color:var(--cat-pipe)}
.page-products .pp-settle li:nth-child(3){border-top-color:var(--cat-house)}
.page-products .pp-settle h3{font-size:17px;margin-bottom:10px}
.page-products .pp-settle p{font-size:14.6px;color:var(--ink-soft)}

/* --- 相关页面 --- */
.page-products .pp-next{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:var(--pp-y);
  padding-top:clamp(20px,3vw,34px);
  border-top:1px solid var(--line);
}
.page-products .pp-next a{
  display:inline-flex;
  align-items:center;
  padding:8px 16px;
  font-family:var(--font-mono);
  font-size:13px;
  color:var(--ink);
  text-decoration:none;
  background:var(--paper-warm);
  border:1px solid var(--line-strong);
  border-radius:var(--radius-pill);
  transition:border-color .2s ease,color .2s ease;
}
.page-products .pp-next a:hover{border-color:var(--cat-clean);color:var(--cat-clean)}

/* ===== 响应式 ===== */
@media (min-width:600px){
  .page-products .pp-facts{grid-template-columns:repeat(4,minmax(0,1fr))}
}

@media (min-width:760px){
  .page-products .pp-settle{grid-template-columns:repeat(3,minmax(0,1fr))}
  .page-products .pp-rush{grid-template-columns:repeat(3,minmax(0,1fr))}
  .page-products .pp-scale{grid-template-columns:repeat(5,minmax(0,1fr))}
}

@media (min-width:860px){
  .page-products .pp-calc{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (min-width:900px){
  .page-products .pp-hero__grid{
    grid-template-columns:minmax(0,1.55fr) minmax(230px,.75fr);
    align-items:end;
  }
  .page-products .pp-jump{transform:rotate(-.5deg)}
  .page-products .pp-cat{
    grid-template-columns:minmax(0,320px) minmax(0,1fr);
    align-items:start;
  }
  .page-products .pp-cat:nth-child(even){
    grid-template-columns:minmax(0,1fr) minmax(0,320px);
  }
  .page-products .pp-cat:nth-child(even) .pp-cat__media{order:2}
  .page-products .pp-app{
    grid-template-columns:minmax(0,1fr) minmax(240px,340px);
    align-items:start;
  }
  .page-products .pp-app__shot{transform:rotate(1.2deg)}
}

@media (prefers-reduced-motion:reduce){
  .page-products .pp-jump a::after,
  .page-products .pp-next a{transition:none}
  .page-products .pp-jump,
  .page-products .pp-app__shot{transform:none}
}
