/* Product material presentation only. Shared styles and backgrounds remain untouched. */
.product-photo { width:100%; height:auto; aspect-ratio:auto; object-fit:contain; background:#fff; border-radius:14px; }
.product-library { scroll-margin-top:100px; }
.product-library [hidden], .product-video[hidden] { display:none !important; }
.product-library h2 { overflow-wrap:anywhere; }
.product-style-cards { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; margin:0 0 32px; }
.product-style-card { display:flex; flex-direction:column; gap:12px; padding:10px; border:1px solid var(--border); border-radius:10px; background:var(--bg-card); font-size:15px; line-height:1.45; }
.product-style-card img { width:100%; height:auto; aspect-ratio:auto; object-fit:contain; border-radius:6px; }
.product-style-card[aria-current="true"] { border-color:var(--accent-brown); box-shadow:0 0 0 1px var(--accent-brown); }
.product-style-card:focus-visible, .product-gallery a:focus-visible, .product-style-panel summary:focus-visible { outline:3px solid var(--accent-brown); outline-offset:3px; }
.product-style-panel { border-top:1px solid var(--border); scroll-margin-top:100px; }
.product-style-panel > summary { cursor:pointer; padding:18px 0; font-size:20px; font-weight:500; }
.product-style-panel[open] { padding-bottom:24px; }
.product-gallery-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); align-items:start; gap:36px; }
.product-gallery-layout > * { min-width:0; }
.product-gallery figure { margin:0; }
.product-gallery-stage { display:block; background:#fff; border:1px solid var(--border); border-radius:10px; overflow:hidden; }
.product-gallery-stage img { width:100%; height:auto; aspect-ratio:auto; object-fit:contain; }
.product-gallery figcaption { margin-top:10px; font-size:14px; color:var(--text-secondary); line-height:1.6; }
.product-gallery-nav { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0; }
.product-gallery-nav a { display:inline-flex; align-items:center; min-height:44px; padding:9px 12px; border:1px solid var(--border); border-radius:4px; font-size:14px; line-height:1.4; background:var(--bg-card); }
.product-gallery-nav a[aria-current="true"] { background:var(--btn-primary); color:var(--btn-text); border-color:var(--btn-primary); }
.product-gallery-note { font-size:15px !important; }
.product-spec-list { margin:0 0 20px; }
.product-spec-list div { padding:10px 0; border-bottom:1px solid var(--border); }
.product-spec-list dt { font-size:14px; color:var(--text-secondary); }
.product-spec-list dd { margin:3px 0 0; font-size:17px; }
.product-shared { margin-top:36px; padding-top:32px; border-top:1px solid var(--border); }
.product-shared h3 { margin-bottom:12px; }
.product-overview-new { padding-top:140px; }
.product-dialog { width:calc(100% - 24px); max-width:1320px; max-height:92dvh; padding:16px; border:1px solid var(--border); border-radius:10px; background:var(--bg-card); color:var(--text-primary); }
.product-dialog::backdrop { background:rgba(25,18,12,.8); }
.product-dialog-bar { display:flex; gap:12px; flex-wrap:wrap; justify-content:space-between; align-items:center; margin-bottom:12px; }
.product-dialog-bar button,.product-dialog-bar a { font:inherit; font-size:15px; padding:10px 14px; border:1px solid var(--border); background:var(--bg-primary); color:var(--text-primary); border-radius:4px; cursor:pointer; }
.product-dialog-scroll { overflow:auto; max-height:72dvh; }
.product-dialog-scroll img { width:100%; height:auto; margin:auto; }
.product-dialog-scroll.is-zoomed img { width:var(--image-width); max-width:none; }
.product-dialog-title { font-size:15px; margin-bottom:10px; }
@media(max-width:900px) { .product-style-cards { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:720px) {
 .product-library { padding:56px 0; }
 .product-gallery-layout { grid-template-columns:minmax(0,1fr); gap:20px; }
 .product-style-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .product-gallery-nav { margin-top:0; }
 .product-library h2 { font-size:2rem !important; }
 .product-overview-new { padding-top:110px; }
}

/* The full catalog can exceed the reveal observer's visible-area threshold. */
body[data-page="products.html"] section.reveal {
  opacity: 1;
  transform: none;
}

.catalog-carousel { width:100%; min-width:0; }
.catalog-carousel .product-photo { display:block; width:100%; height:auto; aspect-ratio:auto; object-fit:contain; }
.catalog-controls { display:flex; justify-content:center; align-items:center; gap:4px; padding:10px 0; }
.catalog-controls button { width:44px; height:44px; padding:0; border:1px solid transparent; border-radius:50%; background:transparent; color:var(--text-secondary); cursor:pointer; font:inherit; }
.catalog-controls button[aria-current] { font-size:12px; opacity:.4; }
.catalog-controls button[aria-current="true"] { opacity:1; color:var(--accent-brown); }
.catalog-controls button:focus-visible { outline:2px solid var(--accent-brown); outline-offset:2px; }

.catalog-style-name { min-height:3em; margin:12px 0 0; text-align:center; font-size:15px; line-height:1.5; overflow-wrap:anywhere; }
.catalog-controls { flex-wrap:wrap; gap:0; }
.catalog-controls button { flex:0 0 36px; width:36px; min-height:44px; }

.product-gallery-stage img,.product-style-card img,.product-photo {display:block;}
