/* Product page: illustrated workflow and progressively disclosed engineering detail. */
.product-visual-workflow,
.product-review,
.product-visual-guides,
.product-visual-faq,
.product-fit { scroll-margin-top: calc(var(--header-height) + 24px); }
.product-visual-workflow .product-contract-intro { margin-bottom: 18px; align-items: start; }
.product-visual-workflow .product-contract-intro h2 { max-width: 700px; }
.product-scope-line { margin: 0 0 42px; max-width: 850px; color: #586471; font-size: 14px; }
.product-story { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); gap: clamp(28px,5vw,72px); align-items: center; }
.product-story + .product-story { margin-top: 64px; padding-top: 64px; border-top: 1px solid var(--line); }
.product-story-figure { margin: 0; min-width: 0; background: #17252d; }
.product-story-figure img { width: 100%; height: auto; object-fit: contain; }
.product-story-figure figcaption { padding: 12px 16px; color: #c8d0d6; font-size: 12px; line-height: 1.5; }
.product-story-recording img { aspect-ratio: 6 / 5; max-height: 450px; object-fit: contain; background: #c6ccd4; }
.product-story-copy { min-width: 0; }
.product-story-copy h3,
.product-story-copy h2 { margin: 12px 0 20px; font-size: clamp(28px,3.2vw,42px); line-height: 1.1; letter-spacing: -.035em; }
.product-story-copy > p:not(.section-index) { margin: 0 0 20px; font-size: 16px; line-height: 1.7; }
.product-story-copy > .product-story-note { color: #586471; font-size: 14px; }
.product-story-copy .text-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; max-width: 100%; }
.product-story-reverse { grid-template-columns: minmax(0,1fr) minmax(0,1.3fr); }
.product-story-reverse .product-story-figure { grid-column: 2; grid-row: 1; }
.product-story-reverse .product-story-copy { grid-column: 1; grid-row: 1; }
.product-review .product-story-copy > p:not(.section-index) { color: #c8d0d6; }
.product-review .product-story-copy > .product-story-note { color: #aab6bf; }
.product-technical-details { margin-top: 20px; border-top: 1px solid var(--line); scroll-margin-top: calc(var(--header-height) + 24px); }
.product-technical-details > summary { position: relative; padding: 20px 36px 20px 0; cursor: pointer; font-weight: 650; font-size: 17px; list-style: none; }
.product-technical-details > summary::-webkit-details-marker { display: none; }
.product-technical-details > summary::after { content: '+'; position: absolute; right: 3px; top: 17px; font: 400 26px/1 var(--mono); }
.product-technical-details[open] > summary::after { content: '−'; }
.product-technical-details > summary:hover { color: var(--signal-dark); }
.product-technical-details > summary:focus-visible,
.product-guide:focus-visible,
.product-story-copy a:focus-visible { outline: 3px solid #007b99; outline-offset: 5px; }
.product-visual-workflow > .mst-shell > .product-technical-details { margin-top: 48px; }
.product-detail-body { padding: 8px 0 28px; }
.product-detail-body h2 { font-size: clamp(25px,3vw,34px); }
.product-detail-body .section-index { display: none; }
.product-detail-body .product-contract-steps { margin-top: 28px; }
.product-detail-body .product-contract-steps li { min-height: 0; padding: 22px; }
.product-detail-body .product-contract-steps h3 { margin-top: 28px; }
.product-detail-body .scope-note { margin: 0; }
.product-detail-body .page-lead { font-size: 16px; }
.product-detail-body .product-principles,
.product-detail-body .ir-flow,
.product-detail-body .evidence-contract,
.product-detail-body .boundary-table { margin-top: 28px; }
.product-technical-library { margin-top: 36px; }
.product-review .product-technical-details,
.product-visual-faq .product-technical-details { border-color: var(--line-dark); }
.product-review .product-technical-details > summary:hover,
.product-visual-faq .product-technical-details > summary:hover { color: #58cdea; }
.product-review .product-technical-details > summary:focus-visible,
.product-visual-faq .product-technical-details > summary:focus-visible,
.product-review .product-story-copy a:focus-visible { outline-color: #58cdea; }
.product-guide-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.product-guide { min-width: 0; border-bottom: 1px solid var(--line); }
.product-guide figure { margin: 0; }
.product-guide img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.product-guide figcaption { color: #586471; font-size: 11px; margin-top: 8px; }
.product-guide > div { padding: 16px 0 24px; }
.product-guide h3 { margin: 0 0 10px; font-size: 25px; line-height: 1.15; }
.product-guide p { margin: 0 0 18px; color: #586471; font-size: 15px; }
.product-guide .text-link { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.product-guide:hover h3 { color: var(--signal-dark); }
.product-visual-faq .buyer-faq { display: block; margin-top: 30px; }
.product-visual-faq .buyer-faq > article { padding: 0; border: 0; background: none; }
.product-visual-faq .product-technical-details { margin-top: 0; }
.product-visual-faq summary h3 { display: inline; margin: 0; color: inherit; font-size: 18px; line-height: 1.45; }
.product-visual-faq details > p { max-width: 900px; padding: 0 24px 20px 0; }
.product-fit .product-story { margin-bottom: 32px; }
@media (max-width: 980px) {
 .product-story, .product-story-reverse { grid-template-columns: 1fr; gap: 24px; }
 .product-story-figure, .product-story-reverse .product-story-figure, .product-story-reverse .product-story-copy { grid-column: auto; grid-row: auto; }
 .product-story-copy { max-width: 760px; }
 .product-story-figure img { max-height: 520px; object-fit: contain; }
 .product-guide-grid { gap: 18px; }
 .product-guide h3 { font-size: 22px; }
}
@media (max-width: 640px) {
 .product-scope-line { margin-bottom: 30px; }
 .product-story + .product-story { margin-top: 36px; padding-top: 36px; }
 .product-story-copy h2, .product-story-copy h3 { font-size: 30px; margin-bottom: 16px; }
 .product-story-copy > p:not(.section-index) { font-size: 15px; line-height: 1.65; }
 .product-story-figure figcaption { padding: 10px 12px; font-size: 11px; }
 .product-guide-grid { grid-template-columns: 1fr; gap: 30px; }
 .product-guide h3 { font-size: 25px; }
 .product-guide > div { padding-top: 13px; }
 .product-technical-details > summary { font-size: 16px; }
 .product-visual-faq summary h3 { font-size: 17px; }
 .product-detail-body .page-grid-2 { gap: 20px; }
}
