/* Scope product source material to product pages; technical diagrams retain
   their own intrinsic aspect ratio and all specification values remain readable. */
.product-source-details { min-width: 0; }
.product-spec-anchor { display: block; scroll-margin-top: 0; }
#related.product-spec-anchor { scroll-margin-top: 64px; }
.product-source-details [id^="source-section-product-spec-"] {
  display: block;
  padding: clamp(22px,3vw,38px);
  border: 1px solid #d7e7ed;
  border-radius: 12px;
  background: linear-gradient(125deg,#f4fafc,#fff 65%);
}
.product-source-details [id^="source-section-product-spec-"] .source-editorial-copy { width: 100%; max-width: none; }
.product-source-details [id^="source-section-product-spec-"] .source-technical-facts { display: block; margin: 18px 0 0; padding-top: 0; border-top: 0; }
.product-source-details [id^="source-section-product-spec-"] .source-technical-facts > div {
  display: grid;
  grid-template-columns: minmax(130px,.65fr) minmax(0,1.8fr);
  gap: 22px;
  padding-block: 15px;
  border-top: 1px solid #d7e7ed;
}
.product-source-details .source-technical-facts :is(dt,dd) { padding: 0; margin: 0; min-width: 0; overflow-wrap: anywhere; }
.product-source-details .source-technical-facts dt { color: #294e61; font-weight: 600; }
.product-source-details .source-technical-facts :is(dt,dd) > :is(p,h2,h3,h4) { margin: 0; font-size: 16px; line-height: 1.7; }
.product-source-details [id^="source-section-product-spec-"] .source-editorial-copy > :is(h2,h3,h4) { margin: 0 0 22px; }
.product-spec-summary-section { padding-block: 24px 48px; }
.product-spec-summary { border: 1px solid #cfe1e8; border-radius: 10px; background: #fff; }
.product-spec-summary > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 64px; padding: 18px 24px; color: #17384d; font-size: 18px; font-weight: 600; cursor: pointer; list-style: none; }
.product-spec-summary > summary::-webkit-details-marker { display: none; }
.product-spec-summary > summary:focus-visible { outline: 2px solid #0089a8; outline-offset: 4px; border-radius: 8px; }
.product-spec-summary[open] > summary { border-bottom: 1px solid #d7e7ed; }
.product-spec-summary[open] > summary svg { transform: rotate(180deg); }
.product-spec-summary-body { padding: 0 24px 24px; overflow-wrap: anywhere; }
.product-spec-summary-body .spec-table { margin: 12px 0 24px; }
/* Missing official product photography gets a compact identity panel. */
.product-stage:has(> .fallback-image) { aspect-ratio:auto; min-height:160px; border:1px solid #d7e7ed; background:#f4f8fa; }
.product-stage > .fallback-image { padding:24px; min-height:0; }
@media(max-width:600px) {
 .product-source-details [id^="source-section-product-spec-"] .source-technical-facts > div { grid-template-columns: minmax(0,1fr); gap: 7px; padding-block: 16px; }
 .product-spec-summary > summary { padding-inline: 18px; }
 .product-spec-summary-body { padding-inline: 18px; }
}
