/*
 * Legacy product markup → PSP layout fallbacks
 * For migrated pages that keep topic-* / flat cat-blocks until full HTML pass.
 */

/* Beat v2-pages .page-block padding stacking on PSP sections */
.v2-page.page-shell.page-type-product[data-page] > .v2-section.page-block.psp-sec {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Single horizontal rail — matches hero / breadcrumb (--psp-gutter includes max-width centering) */
.v2-page.page-shell.page-type-product[data-page] > :is(
  #product-overview,
  #product-types,
  #applications,
  #materials-finishes,
  #manufacturing-capabilities,
  #why-zhuocheng,
  #quality-inspection,
  #typical-features,
  #faq
) {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: var(--psp-gutter) !important;
  padding-right: var(--psp-gutter) !important;
}

.v2-page.page-shell.page-type-product[data-page] > #faq.home-faq:has(.home-faq-list),
.v2-page.page-shell.page-type-product[data-page] > #faq.home-faq {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-top: clamp(56px, 6vw, 88px) !important;
  padding-bottom: clamp(56px, 6vw, 88px) !important;
  padding-left: var(--psp-gutter) !important;
  padding-right: var(--psp-gutter) !important;
  background: #fff !important;
  border-top: 1px solid var(--psp-line) !important;
}

.v2-page.page-shell.page-type-product[data-page] #faq.home-faq .home-faq-head {
  max-width: none !important;
  margin: 0 0 clamp(20px, 2.5vw, 28px) !important;
  text-align: left !important;
}

.v2-page.page-shell.page-type-product[data-page] #faq.home-faq .home-faq-list {
  max-width: none !important;
  margin: 0 !important;
}

.v2-page.page-shell.page-type-product[data-page] #why-zhuocheng.psp-sec-why .psp-why-item > p {
  margin: 0 !important;
  color: rgba(255, 255, 255, 0.82) !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  text-align: center !important;
}


/* ----- Section heads (flat h2) ----- */
.v2-page.page-shell.page-type-product[data-page] #product-types.psp-sec-parts > h2:first-child,
.v2-page.page-shell.page-type-product[data-page] #applications.psp-sec-apps > h2:first-child,
.v2-page.page-shell.page-type-product[data-page] #materials-finishes.psp-materials > h2:first-child,
.v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps > h2:first-child,
.v2-page.page-shell.page-type-product[data-page] #quality-inspection.psp-sec-quality > h2:first-child,
.v2-page.page-shell.page-type-product[data-page] #typical-features.psp-sec-features > h2:first-child,
.v2-page.page-shell.page-type-product[data-page] #why-zhuocheng.psp-sec-why > h2:first-child {
  margin: 0 0 clamp(20px, 2.5vw, 28px) !important;
  max-width: none !important;
  color: var(--psp-ink) !important;
  font-size: clamp(28px, 3.2vw, 42px) !important;
  font-weight: 750 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.12 !important;
}

.v2-page.page-shell.page-type-product[data-page] #why-zhuocheng.psp-sec-why > h2:first-child {
  color: #fff !important;
  text-align: center !important;
}

/* ----- Product types / applications text-only cat-blocks ----- */
.v2-page.page-shell.page-type-product[data-page] #product-types.psp-sec-parts .cat-blocks,
.v2-page.page-shell.page-type-product[data-page] #applications.psp-sec-apps .cat-blocks {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(16px, 2vw, 24px) !important;
  width: 100% !important;
  margin: 0 !important;
}

.v2-page.page-shell.page-type-product[data-page] #applications.psp-sec-apps .cat-blocks {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

.v2-page.page-shell.page-type-product[data-page] #product-types.psp-sec-parts .cat-blocks > .cat-block:not(:has(.psp-part-thumb)),
.v2-page.page-shell.page-type-product[data-page] #applications.psp-sec-apps .cat-blocks > .cat-block {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: clamp(16px, 2vw, 22px) !important;
  border: 1px solid var(--psp-line) !important;
  border-radius: 4px !important;
  background: #fff !important;
  box-shadow: none !important;
}

.v2-page.page-shell.page-type-product[data-page] #applications.psp-sec-apps > .cat-blocks > .cat-block {
  background: var(--psp-cold) !important;
  border-color: transparent !important;
}

.v2-page.page-shell.page-type-product[data-page] #product-types.psp-sec-parts .cat-blocks > .cat-block:not(:has(.psp-part-thumb)) h3,
.v2-page.page-shell.page-type-product[data-page] #applications.psp-sec-apps .cat-blocks > .cat-block h3 {
  margin: 0 !important;
  align-self: start !important;
  width: 100% !important;
  text-align: left !important;
  color: var(--psp-ink) !important;
  font-size: 16px !important;
  font-weight: 750 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.3 !important;
}

.v2-page.page-shell.page-type-product[data-page] #product-types.psp-sec-parts .cat-blocks > .cat-block:not(:has(.psp-part-thumb)) p,
.v2-page.page-shell.page-type-product[data-page] #applications.psp-sec-apps .cat-blocks > .cat-block p {
  margin: 0 !important;
  max-width: none !important;
  align-self: start !important;
  width: 100% !important;
  text-align: left !important;
  color: var(--psp-muted) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
}

.v2-page.page-shell.page-type-product[data-page] > #why-zhuocheng {
  padding-left: var(--psp-gutter) !important;
  padding-right: var(--psp-gutter) !important;
}

.v2-page.page-shell.page-type-product[data-page] #materials-finishes.psp-materials .psp-mat-legacy {
  width: 100%;
  padding-bottom: clamp(56px, 6vw, 88px);
}

.v2-page.page-shell.page-type-product[data-page] #materials-finishes.psp-materials > .topic-split,
.v2-page.page-shell.page-type-product[data-page] #materials-finishes.psp-materials .psp-mat-legacy .topic-split {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(24px, 3vw, 40px) !important;
  width: 100% !important;
  margin: 0 !important;
}

.v2-page.page-shell.page-type-product[data-page] #materials-finishes.psp-materials > .topic-spec-dl {
  margin-top: clamp(20px, 2.5vw, 28px) !important;
}

.v2-page.page-shell.page-type-product[data-page] #materials-finishes.psp-materials .topic-split h3 {
  margin: 0 0 14px !important;
  color: var(--psp-ink) !important;
  font-size: 18px !important;
  font-weight: 750 !important;
}

/* ----- Manufacturing capability topic-spec-dl ----- */
.v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps > .topic-spec-dl,
.v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps .psp-caps-dl {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid var(--psp-line) !important;
  border-radius: 4px !important;
  background: #fff !important;
  overflow: hidden;
}

.v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps > .topic-spec-dl > div,
.v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps .psp-caps-dl > .psp-caps-cell {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) !important;
  gap: 12px !important;
  margin: 0 !important;
  padding: 16px 18px !important;
  border-bottom: 1px solid var(--psp-line) !important;
  border-right: 1px solid var(--psp-line) !important;
}

.v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps > .topic-spec-dl > div:nth-child(2n),
.v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps .psp-caps-dl > .psp-caps-cell:nth-child(2n) {
  border-right: 0 !important;
}

.v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps > .topic-spec-dl > div:nth-last-child(-n + 2),
.v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps .psp-caps-dl > .psp-caps-cell:nth-last-child(-n + 2) {
  border-bottom: 0 !important;
}

.v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps > .topic-spec-dl dt,
.v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps .psp-caps-dl dt {
  margin: 0 !important;
  color: var(--psp-muted) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}

.v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps > .topic-spec-dl dd,
.v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps .psp-caps-dl dd {
  margin: 0 !important;
  color: var(--psp-ink) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
}

.v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps > .v2-note {
  margin: 16px 0 0 !important;
  max-width: 72ch !important;
  color: #8a96a3 !important;
  font-size: 12.5px !important;
}

.v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps .psp-caps-body:not(:has(.psp-caps-media)) {
  grid-template-columns: 1fr !important;
}

/* ----- Why (legacy cat-blocks) ----- */
.v2-page.page-shell.page-type-product[data-page] #why-zhuocheng.psp-sec-why > .cat-blocks {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: clamp(28px, 3vw, 40px) 0 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18) !important;
}

.v2-page.page-shell.page-type-product[data-page] #why-zhuocheng.psp-sec-why > .cat-blocks > .cat-block,
.v2-page.page-shell.page-type-product[data-page] #why-zhuocheng.psp-sec-why > .psp-why-grid > .psp-why-item {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 !important;
  padding: 8px clamp(12px, 1.5vw, 24px) 16px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  text-align: center !important;
  color: #fff !important;
}

.v2-page.page-shell.page-type-product[data-page] #why-zhuocheng.psp-sec-why > .cat-blocks > .cat-block h3 {
  margin: 0 !important;
  color: var(--psp-cyan) !important;
  font-size: 14px !important;
  font-weight: 750 !important;
  letter-spacing: 0.06em !important;
}

.v2-page.page-shell.page-type-product[data-page] #why-zhuocheng.psp-sec-why > .cat-blocks > .cat-block p {
  margin: 0 !important;
  max-width: none !important;
  color: rgba(255, 255, 255, 0.82) !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
}

/* ----- Quality (legacy steps) ----- */
.v2-page.page-shell.page-type-product[data-page] #quality-inspection.psp-sec-quality > .topic-quality-steps,
.v2-page.page-shell.page-type-product[data-page] #quality-inspection.psp-sec-quality .psp-qi-flow {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  border: 1px solid var(--psp-line) !important;
  border-radius: 4px !important;
  overflow: hidden;
}

.v2-page.page-shell.page-type-product[data-page] #quality-inspection.psp-sec-quality > .topic-quality-steps > li,
.v2-page.page-shell.page-type-product[data-page] #quality-inspection.psp-sec-quality .psp-qi-flow > li {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 12px !important;
  margin: 0 !important;
  padding: clamp(18px, 2vw, 24px) !important;
  border: 0 !important;
  border-right: 1px solid var(--psp-line) !important;
  border-radius: 0 !important;
  background: #fff !important;
}

.v2-page.page-shell.page-type-product[data-page] #quality-inspection.psp-sec-quality > .topic-quality-steps > li:last-child,
.v2-page.page-shell.page-type-product[data-page] #quality-inspection.psp-sec-quality .psp-qi-flow > li:last-child {
  border-right: 0 !important;
}

.v2-page.page-shell.page-type-product[data-page] #quality-inspection.psp-sec-quality .topic-quality-num {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 40px !important;
  height: 40px !important;
  border-radius: 4px !important;
  background: var(--psp-cold) !important;
  color: var(--psp-blue) !important;
  font-size: 13px !important;
  font-weight: 750 !important;
}

.v2-page.page-shell.page-type-product[data-page] #quality-inspection.psp-sec-quality .topic-quality-steps strong,
.v2-page.page-shell.page-type-product[data-page] #quality-inspection.psp-sec-quality .psp-qi-copy strong {
  display: block !important;
  margin: 0 0 4px !important;
  color: var(--psp-ink) !important;
  font-size: 15px !important;
  font-weight: 750 !important;
}

.v2-page.page-shell.page-type-product[data-page] #quality-inspection.psp-sec-quality .topic-quality-steps span:not(.topic-quality-num),
.v2-page.page-shell.page-type-product[data-page] #quality-inspection.psp-sec-quality .psp-qi-copy span {
  color: var(--psp-muted) !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}

/* ----- Typical features tag cloud ----- */
.v2-page.page-shell.page-type-product[data-page] #typical-features.psp-sec-features > .tag-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.v2-page.page-shell.page-type-product[data-page] #typical-features.psp-sec-features > .tag-row span {
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 8px 14px !important;
  border: 1px solid var(--psp-line) !important;
  border-radius: 4px !important;
  background: #fff !important;
  color: var(--psp-ink) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
}

/* ----- Flat FAQ (direct h2 + details) ----- */
.v2-page.page-shell.page-type-product[data-page] #faq.home-faq:not(:has(.home-faq-list)) {
  display: flex !important;
  flex-direction: column !important;
  gap: clamp(20px, 2.5vw, 28px) !important;
  padding-top: clamp(56px, 6vw, 88px) !important;
  padding-bottom: clamp(56px, 6vw, 88px) !important;
  padding-left: var(--psp-gutter) !important;
  padding-right: var(--psp-gutter) !important;
  background: #fff !important;
  border-top: 1px solid var(--psp-line) !important;
}

.v2-page.page-shell.page-type-product[data-page] #faq.home-faq:not(:has(.home-faq-list)) > h2 {
  margin: 0 !important;
  max-width: none !important;
  text-align: left !important;
  color: var(--psp-ink) !important;
  font-size: clamp(28px, 3vw, 42px) !important;
  font-weight: 750 !important;
  letter-spacing: -0.04em !important;
}

.v2-page.page-shell.page-type-product[data-page] #faq.home-faq:not(:has(.home-faq-list)) > details {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--psp-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.v2-page.page-shell.page-type-product[data-page] #faq.home-faq:not(:has(.home-faq-list)) > details:first-of-type {
  border-top: 1px solid var(--psp-line) !important;
}

.v2-page.page-shell.page-type-product[data-page] #faq.home-faq:not(:has(.home-faq-list)) summary {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  cursor: pointer !important;
  list-style: none !important;
  padding: 18px 0 !important;
  color: var(--psp-ink) !important;
  font-size: 16px !important;
  font-weight: 750 !important;
  letter-spacing: -0.015em !important;
  line-height: 1.35 !important;
}

.v2-page.page-shell.page-type-product[data-page] #faq.home-faq:not(:has(.home-faq-list)) summary::-webkit-details-marker {
  display: none;
}

.v2-page.page-shell.page-type-product[data-page] #faq.home-faq:not(:has(.home-faq-list)) summary::after {
  content: "";
  flex: 0 0 10px;
  width: 10px;
  height: 10px;
  margin-top: -2px;
  border-right: 2px solid var(--psp-blue, #1665d8);
  border-bottom: 2px solid var(--psp-blue, #1665d8);
  transform: rotate(45deg);
  transition: transform 180ms ease;
}

.v2-page.page-shell.page-type-product[data-page] #faq.home-faq:not(:has(.home-faq-list)) details[open] summary {
  color: var(--psp-blue, #1665d8) !important;
}

.v2-page.page-shell.page-type-product[data-page] #faq.home-faq:not(:has(.home-faq-list)) details[open] summary::after {
  margin-top: 4px;
  transform: rotate(225deg);
}

.v2-page.page-shell.page-type-product[data-page] #faq.home-faq:not(:has(.home-faq-list)) details p {
  margin: 0 0 18px !important;
  max-width: 68ch !important;
  color: var(--psp-muted) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
}

@media (max-width: 1120px) {
  .v2-page.page-shell.page-type-product[data-page] #applications.psp-sec-apps > .cat-blocks {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .v2-page.page-shell.page-type-product[data-page] #why-zhuocheng.psp-sec-why > .cat-blocks,
  .v2-page.page-shell.page-type-product[data-page] #why-zhuocheng.psp-sec-why > .psp-why-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .v2-page.page-shell.page-type-product[data-page] #quality-inspection.psp-sec-quality > .topic-quality-steps,
  .v2-page.page-shell.page-type-product[data-page] #quality-inspection.psp-sec-quality .psp-qi-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 900px) {
  .v2-page.page-shell.page-type-product[data-page] #product-types.psp-sec-parts > .cat-blocks,
  .v2-page.page-shell.page-type-product[data-page] #applications.psp-sec-apps > .cat-blocks {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .v2-page.page-shell.page-type-product[data-page] #materials-finishes.psp-materials > .topic-split {
    grid-template-columns: 1fr !important;
  }

  .v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps > .topic-spec-dl,
  .v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps .psp-caps-dl {
    grid-template-columns: 1fr !important;
  }

  .v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps > .topic-spec-dl > div,
  .v2-page.page-shell.page-type-product[data-page] #manufacturing-capabilities.psp-caps .psp-caps-dl > .psp-caps-cell {
    border-right: 0 !important;
  }
}

@media (max-width: 700px) {
  .v2-page.page-shell.page-type-product[data-page] #product-types.psp-sec-parts > .cat-blocks,
  .v2-page.page-shell.page-type-product[data-page] #applications.psp-sec-apps > .cat-blocks,
  .v2-page.page-shell.page-type-product[data-page] #why-zhuocheng.psp-sec-why > .cat-blocks,
  .v2-page.page-shell.page-type-product[data-page] #why-zhuocheng.psp-sec-why > .psp-why-grid,
  .v2-page.page-shell.page-type-product[data-page] #quality-inspection.psp-sec-quality > .topic-quality-steps,
  .v2-page.page-shell.page-type-product[data-page] #quality-inspection.psp-sec-quality .psp-qi-flow {
    grid-template-columns: 1fr !important;
  }
}
