/* Real material collection: retain the established Demo visual language. */
.product-photo { position:relative; background:#fff; }
.product-photo img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; padding:.65rem; }
.product-photo > span { position:absolute; top:1rem; left:1rem; background:var(--forest); color:white; padding:.35rem .6rem; font-size:.8rem; border-radius:.2rem; }
.v2-product-card:last-child:nth-child(odd) { grid-column:1/-1; }
.v2-product-card:last-child:nth-child(odd) .product-card-link { display:grid; grid-template-columns:1fr 1fr; align-items:center; }
.hero-media > img { object-fit:contain; background:#e6e0d1; }
.media-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.media-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.media-card { min-width:0; border:1px solid var(--line); background:var(--surface); border-radius:var(--radius); overflow:hidden; scroll-margin-top:7rem; }
.media-image-link { display:block; position:relative; background:white; }
.media-image-link img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; padding:.7rem; }
.media-card--production .media-image-link img { padding:0; object-fit:cover; }
/* Homepage application samples: square frame, the whole photo stays visible (no cropping). */
.applications-section .media-image-link img { aspect-ratio:1; padding:0; object-fit:contain; }
/* Off-white image wells only on home + products listing. */
.page-home .media-image-link,
.page-products .product-photo { background:var(--surface); }
.media-copy { padding:1.2rem; }
.media-copy .eyebrow { font-size:.62rem; margin-bottom:.7rem; }
.media-copy h3 { margin:0 0 .7rem; font:600 1.1rem/1.4 var(--font-sans); overflow-wrap:anywhere; }
.media-copy > p:not(.eyebrow) { color:var(--muted); font-size:.85rem; line-height:1.65; margin:0 0 1rem; }
.media-copy .text-link { font-size:.8rem; }
.media-card video { display:block; width:100%; aspect-ratio:16/10; background:#0b2019; object-fit:contain; }
.collection-filters { display:flex; flex-wrap:wrap; gap:.65rem; padding:1.3rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.collection-filters a { display:flex; align-items:center; gap:.7rem; color:var(--ink); padding:.65rem .8rem; border:1px solid var(--line); text-decoration:none; border-radius:.3rem; font-size:.82rem; min-height:44px; }
.collection-filters a span { opacity:.7; font-size:.75rem; }
.collection-filters a[aria-current], .collection-pagination a[aria-current] { background:var(--forest); color:white; border-color:var(--forest); }
.collection-status { display:flex; align-items:baseline; justify-content:space-between; gap:2rem; margin:2rem 0; }
.collection-status h2 { font-size:2rem; }
.collection-status p { color:var(--muted); font-size:.85rem; }
.collection-pagination { display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; margin-top:2.5rem; }
.collection-pagination a { display:grid; place-items:center; min-width:44px; min-height:44px; padding:.5rem; color:var(--ink); border:1px solid var(--line); border-radius:.25rem; text-decoration:none; }
.collection-note { max-width:56rem; margin:2rem auto 0; text-align:center; color:var(--muted); font-size:.8rem; }
.section-link { margin-top:2rem; }
.applications-section, .documents-section { background:var(--paper-deep); }
.production-section { background:#e8ece5; }
.document-note { padding:1.2rem 1.5rem; border-left:3px solid var(--accent); background:var(--surface); color:var(--ink); line-height:1.7; margin-bottom:2rem; }
.media-card--documents .media-image-link img, .media-card--reviews .media-image-link img { aspect-ratio:4/3; padding:.7rem; }
.feedback-feature { background:var(--forest); color:var(--cream); }
.feedback-feature blockquote { font:italic clamp(1.8rem,3vw,2.7rem)/1.35 var(--font-display); margin:1rem 0 2rem; }
.feedback-feature p, .feedback-feature .section-heading p { color:#d8e0d9; }
.feedback-feature .eyebrow { color:var(--accent-soft); }
.feedback-feature .text-link { color:var(--cream); }
.selected-reference { display:grid; gap:.45rem; padding:1rem; background:var(--cream); border-left:3px solid var(--accent); }
.selected-reference span, .selected-reference small { font-size:.75rem; color:var(--muted); }
.selected-reference strong { font-size:.95rem; }
.library-dialog { width:min(94vw,78rem); max-height:94vh; padding:1rem 1.25rem; border:0; border-radius:.65rem; background:var(--paper); color:var(--ink); }
.library-dialog::backdrop { background:rgba(5,18,13,.88); }
.library-dialog-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; font-size:.75rem; }
.library-dialog-toolbar button { min-height:44px; padding:.7rem 1rem; border:0; border-radius:.3rem; background:var(--forest); color:white; cursor:pointer; }
.library-dialog-content img { display:block; max-height:68vh; width:100%; object-fit:contain; }
.library-dialog > p { font-size:.9rem; line-height:1.6; }
.library-dialog > a { display:inline-block; padding:.6rem 0; color:var(--ink); }
body.viewer-open { overflow:hidden; }
.patch-demo { background:var(--paper-deep); }
.patch-demo-grid { display:grid; grid-template-columns:.85fr 1.15fr; align-items:center; gap:clamp(2rem,5vw,5rem); }
.patch-demo-copy h2 { font-size:clamp(2.6rem,4.5vw,4.6rem); }
.patch-demo-figure { margin:0; min-width:0; }
.patch-demo-stage { position:relative; isolation:isolate; overflow:hidden; border-radius:var(--radius); background:#e9e5dc; }
.patch-demo-garment { display:block; width:100%; height:auto; }
.patch-demo-plane { position:absolute; inset:0; mix-blend-mode:multiply; pointer-events:none; will-change:transform,opacity; }
.patch-demo-logo { position:absolute; width:var(--patch-width,10%); height:auto; left:calc(61% - var(--patch-width,10%) / 2); top:calc(29% - var(--patch-width,10%) / 2); aspect-ratio:1; object-fit:contain; transform-origin:center; }
.patch-picker { display:flex; gap:.75rem; margin:1.5rem 0; }
.patch-picker[hidden] { display:none; }
.patch-picker button { flex:1; max-width:112px; padding:.5rem; border:2px solid transparent; border-radius:.5rem; background:var(--surface); color:var(--ink); cursor:pointer; font:inherit; font-size:.8rem; }
.patch-picker button[aria-pressed="true"] { border-color:var(--forest); background:white; }
.patch-picker button:hover { border-color:var(--muted); }
.patch-picker img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; mix-blend-mode:multiply; }
.patch-picker span { display:block; margin-top:.4rem; }
.patch-demo-label { position:absolute; bottom:3%; left:0; width:100%; text-align:center; color:var(--forest); font:italic 1.1rem var(--font-display); }
.patch-demo-figure figcaption { margin-top:.8rem; font-size:.8rem; color:var(--muted); }
.patch-demo-copy .patch-demo-status { font-size:.85rem; min-height:2.8em; margin:1rem 0; }
.patch-demo-copy .patch-demo-note { font-size:.72rem; margin-top:1.5rem; max-width:26rem; }
@media(max-width:760px) { .patch-demo-grid { grid-template-columns:1fr; } .patch-demo-copy h2 { font-size:2.8rem; } }
@media(max-width:1000px) { .media-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) {
 .media-grid, .media-grid--two { grid-template-columns:1fr; }
 .v2-product-card:last-child:nth-child(odd) .product-card-link { display:block; }
 .collection-status { display:block; }
 .collection-status h2 { font-size:1.7rem; }
 .collection-filters { gap:.4rem; }
 .collection-filters a { font-size:.75rem; padding:.6rem; }
 .library-dialog { width:94vw; padding:.9rem; }
 .library-dialog-content img { max-height:60vh; }
}
