/* Shared product pages. Typography and colors come from the approved global tokens. */
.product-page { overflow-x: clip; }
.product-detail-page {
    gap: 0;
    padding: clamp(16px, 2.5vw, 40px);
}
.product-detail-page .product-hero {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    gap: clamp(32px, 5vw, 80px);
    padding-bottom: clamp(48px, 6vw, 96px);
    align-items: start;
}
.product-detail-page .product-gallery { min-width: 0; min-height: 0; }
.product-gallery-mono { --photo-backdrop: var(--photo-mono); }
.product-gallery-stereo { --photo-backdrop: var(--photo-stereo); }
.product-gallery-node { --photo-backdrop: var(--photo-node); }
.product-detail-page .gallery-viewport,
.product-detail-page .gallery-thumbnail { background: var(--photo-backdrop); }
.product-detail-page .gallery-slide img,
.product-detail-page .gallery-thumbnail img {
    position: absolute;
    inset: 0;
    margin: auto;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
}
@media (max-width: 560px) {
    .product-detail-page .gallery-thumbnail { background: transparent; }
}
.product-gallery-mono .gallery-thumbnails {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    width: 100%;
    max-width: 824px;
    align-self: center;
}
.product-gallery-mono .gallery-thumbnail { width: 100%; height: auto; }
@media (max-width: 560px) {
    .product-gallery-mono .gallery-thumbnails { width: calc(100% - 16px); max-width: 352px; }
    .product-gallery-mono .gallery-thumbnail { height: 44px; }
}
.product-detail-page .product-summary { min-width: 0; padding: 0; }
.product-summary .product-title { margin: 0; }
.product-pricing {
    margin: 12px 0 0;
    font-size: var(--text-card);
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: var(--tracking-heading);
}
.product-description {
    margin: clamp(28px, 3vw, 44px) 0 0;
    font-size: var(--text-lead);
    line-height: var(--line-body);
    max-width: 52ch;
}
.product-summary hr {
    margin: 36px 0;
    border: 0;
    border-top: 1px solid var(--light-line);
}
.product-detail-list + .product-detail-list { margin-top: 32px; }
.product-detail-list h2 {
    margin: 0 0 16px;
    font: 500 var(--text-card)/1.3 var(--font-sans);
    letter-spacing: var(--tracking-heading);
}
.product-detail-list ul {
    margin: 0;
    padding-left: 1.2em;
    font-size: var(--text-body);
    line-height: var(--line-body);
}
.product-detail-list li { padding-left: 4px; }
.product-detail-list li + li { margin-top: 10px; }
.product-detail-list li::marker { color: var(--brand-coral); }
.product-detail-page .product-technical-specs { padding-inline: 0; }
.technical-spec-note { margin: 0; font-size: var(--text-body); line-height: var(--line-body); }
.product-detail-page .gallery-nav { color: var(--brand-burgundy); mix-blend-mode: normal; }

/* Use the page scroll; the gallery releases at the end of the product introduction. */
@media (min-width: 1001px) and (min-height: 720px) {
    .product-detail-page .product-gallery { position: sticky; top: calc(var(--header-h) + 40px); }
}
@media (max-width: 1000px) {
    .product-detail-page .product-hero { grid-template-columns: 1fr; gap: 32px; }
    .product-detail-page .product-gallery { position: relative; top: auto; }
    .product-detail-page .product-summary { max-width: none; }
    .product-description { max-width: 65ch; }
}
@media (max-width: 560px) {
    .product-detail-page { padding: 16px 20px; }
    .product-detail-page .product-hero { gap: 28px; padding-bottom: 48px; }
    .product-description { font-size: var(--text-body); margin-top: 24px; }
    .product-summary hr { margin-block: 28px; }
}

/* Flat tonal sections: hierarchy and spacing provide separation, not card frames. */
.product-detail-page { gap: clamp(56px, 7vw, 100px); }
.product-detail-page .product-hero { padding-bottom: 0; }
.product-media-section {
    display: grid; gap: 0; min-width: 0;
    padding-block: clamp(48px, 6vw, 88px);
    background: var(--brand-burgundy);
    color: var(--brand-cream);
    box-shadow: 0 0 0 100vmax var(--brand-burgundy);
    clip-path: inset(0 -100vmax);
}
.product-media-section .product-sync-feature {
    border-radius: 0;
    padding: 0 0 clamp(40px, 5vw, 72px);
}
.product-media-section .product-sync-media,
.product-media-section .product-slam-media { border-radius: 4px; }
.product-media-disclosure {
    border: 0;
    border-top: 1px solid var(--dark-line);
    border-radius: 0;
    background: transparent;
    color: var(--brand-cream);
    overflow: hidden;
}
.product-media-disclosure summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    padding: clamp(26px, 3vw, 40px) 0;
    cursor: pointer;
    list-style: none;
    font: 500 var(--text-card)/1.3 var(--font-sans);
    letter-spacing: var(--tracking-heading);
}
.product-media-disclosure summary::-webkit-details-marker { display: none; }
.product-media-disclosure summary:focus-visible { outline: 2px solid var(--brand-coral); outline-offset: -8px; border-radius: inherit; }
.disclosure-mark { position: relative; flex: 0 0 24px; height: 24px; color: var(--brand-coral); }
.disclosure-mark::before, .disclosure-mark::after { content: ''; position: absolute; background: currentColor; width: 18px; height: 2px; left: 3px; top: 11px; }
.disclosure-mark::after { transform: rotate(90deg); }
.product-media-disclosure[open] .disclosure-mark::after { transform: rotate(0); }
.product-media-disclosure summary:hover .disclosure-mark { color: var(--brand-coral); }
.product-media-section .product-slam-feature { display: block; background: transparent; padding: 0 0 clamp(28px, 4vw, 48px); }
.product-media-section .product-slam-copy { display: none; }
.product-media-section .product-samples { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 0 0 clamp(28px, 4vw, 48px); }
.product-media-section .product-samples img { border-radius: 4px; }
.product-detail-page .product-technical-specs {
    padding: clamp(40px, 5vw, 72px) 0;
    border: 0;
    border-radius: 0;
    background: var(--brand-cream);
    box-shadow: 0 0 0 100vmax var(--brand-cream);
    clip-path: inset(0 -100vmax);
}
.product-detail-page .technical-spec-section:first-child { border-top: 0; padding-top: 0; }
.product-detail-page .technical-spec-section:last-child { padding-bottom: 0; }
@media (max-width: 560px) {
    .product-detail-page { padding: 16px 20px 32px; }
    .product-detail-page .product-hero { padding: 0; }
    .product-detail-page .product-technical-specs { padding: 40px 0; }
    .product-media-disclosure summary { gap: 16px; padding: 24px 0; }
    .product-media-section .product-samples { grid-template-columns: 1fr; padding: 0 0 28px; }
    .product-media-section .product-slam-feature { padding: 0 0 28px; }
}

.product-specs-heading { margin: 0 0 clamp(32px, 4vw, 56px); font: 500 var(--text-section)/1.2 var(--font-sans); letter-spacing: var(--tracking-heading); }
.product-media-section .product-sync-copy { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 64px; }
.product-media-section .product-sync-copy h2 { grid-row: span 2; font-size: var(--text-section); max-width: 22ch; }
.product-media-section .product-sync-copy p { margin: 0; }
.product-media-section .product-sync-copy p:last-child { color: var(--brand-mauve); font-size: var(--text-label); }
@media (max-width: 760px) { .product-media-section .product-sync-copy { grid-template-columns: 1fr; gap: 20px; } }
/* Adjacent content bands meet directly; spacing lives inside each section. */
.product-media-section + .product-technical-specs { margin-top: calc(-1 * clamp(56px, 7vw, 100px)); }

/* Let the final specification band meet the footer without a paper strip. */
.product-detail-page { padding-bottom: 0; }

/* Compact media disclosures belong to the product information column. */
.product-summary-media { margin-top: 36px; border-bottom: 1px solid var(--light-line); }
.product-summary-media .product-media-disclosure { color: var(--brand-burgundy); border-top-color: var(--light-line); }
.product-summary-media summary { padding: 20px 0; font-size: var(--text-lead); }
.product-summary-media .product-slam-feature { display: block; padding: 0 0 20px; background: transparent; border-radius: 0; }
.product-summary-media .product-slam-copy { display: none; }
.product-summary-media .product-slam-media { border-radius: 4px; }
.product-summary-media .product-samples { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding-bottom: 20px; }
.product-summary-media .product-samples img { border-radius: 4px; }
.product-media-section .product-sync-feature { padding-bottom: 0; }
