.page-faq{
  --faq-teal:#0B7A6D;
  --faq-gap:clamp(34px,5vw,72px);
  display:block;
  background:var(--paper);
  color:var(--ink);
}

.page-faq .breadcrumb{
  padding-top:clamp(18px,3vw,30px);
}
.page-faq .bc-sep{
  margin:0 8px;
  color:var(--silver);
}

/* ---------- 首屏框景 ---------- */
.page-faq .faq-head{
  position:relative;
  margin-top:clamp(14px,2.4vw,26px);
  padding:clamp(28px,5vw,60px) clamp(20px,4vw,54px) clamp(24px,4vw,44px);
  border:1px solid var(--line-strong);
  background:
    repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px 48px) 0 0/100% 9px no-repeat,
    radial-gradient(120% 96% at 100% 0%,rgba(242,160,61,.18),transparent 64%),
    linear-gradient(180deg,var(--paper-2),var(--paper));
  overflow:hidden;
}
.page-faq .faq-head::after{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:linear-gradient(180deg,var(--orange),rgba(242,160,61,0));
}
.page-faq .faq-title{
  margin:10px 0 0;
  max-width:18ch;
  color:var(--green);
}
.page-faq .faq-lede{
  margin:16px 0 0;
  max-width:64ch;
  font-size:var(--fs-16);
  line-height:1.8;
  color:var(--muted);
}

.page-faq .faq-jump{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:clamp(20px,3vw,34px);
  padding-top:clamp(16px,2.4vw,24px);
  border-top:1px dashed var(--line);
}
.page-faq .faq-jump-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 14px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  background:rgba(255,255,255,.52);
  color:var(--green);
  font-size:var(--fs-14);
  text-decoration:none;
  transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.page-faq .faq-jump-link:hover,
.page-faq .faq-jump-link:focus-visible{
  background:var(--green);
  border-color:var(--green);
  color:var(--paper);
  transform:translateY(-2px);
}
.page-faq .faq-jump-num{
  font-size:var(--fs-12);
  color:var(--faq-teal);
}
.page-faq .faq-jump-link:hover .faq-jump-num,
.page-faq .faq-jump-link:focus-visible .faq-jump-num{
  color:var(--orange);
}

/* ---------- 目录 + 问答 布局 ---------- */
.page-faq .faq-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(26px,4vw,44px);
  padding-block:var(--faq-gap);
}
.page-faq .faq-groups{
  display:grid;
  gap:var(--faq-gap);
  min-width:0;
}

/* ---------- 粘性分组目录 ---------- */
.page-faq .faq-directory{
  border-top:2px solid var(--green);
  padding-top:14px;
  min-width:0;
}
.page-faq .faq-dir-title{
  margin:0 0 10px;
  font-family:var(--font-mono);
  font-size:var(--fs-12);
  letter-spacing:.16em;
  color:var(--muted);
}
.page-faq .faq-dir-list{
  display:flex;
  gap:6px;
  margin:0;
  padding:0 0 6px;
  list-style:none;
  overflow-x:auto;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;
}
.page-faq .faq-dir-list li{
  flex:0 0 auto;
  scroll-snap-align:start;
}
.page-faq .faq-dir-link{
  display:flex;
  align-items:baseline;
  gap:8px;
  padding:8px 10px;
  border-bottom:2px solid var(--line);
  color:var(--ink);
  font-size:var(--fs-14);
  white-space:nowrap;
  text-decoration:none;
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),background var(--dur) var(--ease);
}
.page-faq .faq-dir-link .numeric{
  font-size:var(--fs-12);
  color:var(--silver);
}
.page-faq .faq-dir-link:hover,
.page-faq .faq-dir-link:focus-visible{
  border-bottom-color:var(--orange);
  background:rgba(242,160,61,.12);
  color:var(--green);
}
.page-faq .faq-dir-link:hover .numeric,
.page-faq .faq-dir-link:focus-visible .numeric{
  color:var(--orange);
}
.page-faq .faq-dir-note{
  margin-top:16px;
  padding-top:14px;
  border-top:1px dashed var(--line);
  font-size:var(--fs-13);
  line-height:1.75;
  color:var(--muted);
}

/* ---------- 分组标题 ---------- */
.page-faq .faq-group{
  scroll-margin-top:calc(var(--head-h) + 20px);
  min-width:0;
}
.page-faq .faq-group-head{
  padding-left:14px;
  border-left:3px solid var(--orange);
  margin-bottom:clamp(12px,2vw,20px);
}
.page-faq .faq-group-head .section-note{
  margin:6px 0 0;
  font-size:var(--fs-14);
  line-height:1.7;
  color:var(--muted);
}

/* ---------- 问答条目 ---------- */
.page-faq .faq-list{
  border-bottom:1px solid var(--line);
}
.page-faq .qa{
  position:relative;
  border-top:1px solid var(--line);
  padding-left:clamp(10px,2vw,18px);
}
.page-faq .qa::before{
  content:"";
  position:absolute;
  left:0;
  top:8px;
  bottom:8px;
  width:3px;
  background:var(--orange);
  opacity:0;
  transform:scaleY(.35);
  transform-origin:top center;
  transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.page-faq .qa[open]::before{
  opacity:1;
  transform:scaleY(1);
}
.page-faq .qa summary{
  display:flex;
  align-items:flex-start;
  gap:clamp(10px,1.6vw,16px);
  padding:clamp(14px,2.2vw,20px) 4px;
  list-style:none;
  cursor:pointer;
  transition:color var(--dur) var(--ease);
}
.page-faq .qa summary::-webkit-details-marker{
  display:none;
}
.page-faq .qa summary:hover,
.page-faq .qa summary:focus-visible{
  color:var(--green);
}
.page-faq .qa-num{
  flex:0 0 auto;
  padding-top:5px;
  font-size:var(--fs-13);
  letter-spacing:.04em;
  color:var(--silver);
  transition:color var(--dur) var(--ease);
}
.page-faq .qa[open] .qa-num{
  color:var(--orange);
}
.page-faq .qa-q{
  flex:1 1 auto;
  font-size:var(--fs-16);
  font-weight:600;
  line-height:1.65;
}
.page-faq .qa-mark{
  flex:0 0 auto;
  width:9px;
  height:9px;
  margin-top:8px;
  border-right:2px solid var(--silver);
  border-bottom:2px solid var(--silver);
  transform:rotate(45deg);
  transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease);
}
.page-faq .qa[open] .qa-mark{
  transform:rotate(-135deg);
  border-color:var(--orange);
}
.page-faq .qa-a{
  padding:0 8px clamp(16px,2.4vw,24px) clamp(28px,4vw,46px);
  max-width:78ch;
}
.page-faq .qa-a p{
  margin:0;
  font-size:var(--fs-16);
  line-height:1.78;
  color:var(--muted);
}
.page-faq .qa-a p + p{
  margin-top:10px;
}

.page-faq .qa-steps{
  counter-reset:qa-step;
  display:grid;
  gap:8px;
  margin:12px 0 0;
  padding:0;
  list-style:none;
}
.page-faq .qa-steps li{
  position:relative;
  padding-left:34px;
  font-size:var(--fs-14);
  line-height:1.7;
  color:var(--muted);
}
.page-faq .qa-steps li::before{
  counter-increment:qa-step;
  content:counter(qa-step,decimal-leading-zero);
  position:absolute;
  left:0;
  top:2px;
  font-family:var(--font-mono);
  font-size:var(--fs-12);
  color:var(--faq-teal);
  border-bottom:1px solid rgba(11,122,109,.45);
}

/* ---------- 配图 ---------- */
.page-faq .faq-figure{
  margin:0 0 clamp(16px,2.4vw,24px);
}
.page-faq .faq-figure img{
  display:block;
  width:100%;
  height:auto;
  object-fit:cover;
}

/* ---------- 折线示意图 ---------- */
.page-faq .faq-diagram{
  margin:clamp(16px,2.6vw,26px) 0;
  padding:clamp(14px,2vw,22px);
  border:1px solid var(--line);
  background:linear-gradient(180deg,var(--night),#1B2830);
}
.page-faq .faq-diagram svg{
  display:block;
  width:100%;
  height:auto;
}
.page-faq .dg-axis{
  stroke:rgba(154,163,168,.5);
  stroke-width:1;
}
.page-faq .dg-grid{
  stroke:rgba(154,163,168,.22);
  stroke-width:1;
  stroke-dasharray:3 6;
}
.page-faq .dg-line{
  fill:none;
  stroke:var(--cyan);
  stroke-width:2.5;
  stroke-linejoin:round;
}
.page-faq .dg-pt{
  cursor:pointer;
}
.page-faq .dg-pt circle{
  fill:var(--night);
  stroke:var(--cyan);
  stroke-width:2;
  transition:fill var(--dur) var(--ease),stroke var(--dur) var(--ease),r var(--dur) var(--ease);
}
.page-faq .dg-pt text{
  font-family:var(--font-mono);
  font-size:12px;
  fill:var(--cyan-soft);
  opacity:0;
  transition:opacity var(--dur) var(--ease);
}
.page-faq .dg-pt:hover circle,
.page-faq .dg-pt:focus-within circle{
  r:7px;
  fill:var(--orange);
  stroke:var(--orange);
}
.page-faq .dg-pt:hover text,
.page-faq .dg-pt:focus-within text{
  opacity:1;
  fill:var(--orange);
}
.page-faq .faq-diagram-cap{
  margin:12px 0 0;
  font-size:var(--fs-13);
  line-height:1.7;
  letter-spacing:.02em;
  color:var(--silver);
}

/* ---------- 桌面：左侧粘性目录 ---------- */
@media (min-width:900px){
  .page-faq .faq-layout{
    grid-template-columns:minmax(198px,236px) minmax(0,1fr);
    gap:clamp(32px,4.4vw,72px);
    align-items:start;
  }
  .page-faq .faq-directory{
    position:sticky;
    top:calc(var(--head-h) + 22px);
  }
  .page-faq .faq-dir-list{
    display:grid;
    gap:0;
    overflow:visible;
  }
  .page-faq .faq-dir-link{
    padding:10px 4px 10px 12px;
    border-bottom:none;
    border-left:2px solid var(--line);
    white-space:normal;
  }
  .page-faq .faq-dir-link:hover,
  .page-faq .faq-dir-link:focus-visible{
    border-left-color:var(--orange);
    border-bottom-color:transparent;
  }
  .page-faq .qa-a{
    padding-right:24px;
  }
}

@media (min-width:1180px){
  .page-faq .faq-layout{
    grid-template-columns:236px minmax(0,1fr) 56px;
  }
  .page-faq .faq-head{
    padding-right:clamp(60px,8vw,120px);
  }
}

@media (prefers-reduced-motion:reduce){
  .page-faq .faq-jump-link,
  .page-faq .qa::before,
  .page-faq .qa-mark,
  .page-faq .dg-pt circle,
  .page-faq .dg-pt text{
    transition:none;
  }
}
