/* Product-only additions: preserve the approved navy/paper design system. */
.product-media.has-image img { object-fit:contain; padding:clamp(20px,3vw,38px); filter:drop-shadow(0 16px 24px rgba(0,0,0,.22)); }
.collection-drawing--photo { color:#eef2f5; background:radial-gradient(circle at 50% 44%,#203852 0%,#0a1a2b 56%,#07111d 100%); border:1px solid rgba(36,70,140,.2); overflow:hidden; }
.collection-drawing--photo::before { border-color:rgba(238,242,245,.13); }
.collection-drawing--photo img { position:relative; display:block; width:min(88%,550px); height:auto; max-height:300px; object-fit:contain; filter:drop-shadow(0 28px 25px rgba(0,0,0,.4)); }
.collection-drawing--photo .drawing-dimension span { border-color:#c0d2e8; }
.collection-drawing--photo .drawing-footnote { color:#a9bdd1; }
.product-type-navigation { display:flex; flex-wrap:wrap; gap:10px; padding-block:28px; }
.product-type-navigation:empty { display:none; }
.product-type-navigation a { display:inline-flex; align-items:center; min-height:44px; padding:10px 18px; color:var(--ink); border:1px solid var(--border); border-radius:6px; transition:background .18s ease; }
.product-type-navigation a:hover { background:white; }
.product-types-layout { display:block; }
.product-type-group { scroll-margin-top:120px; }
.product-type-group + .product-type-group { padding-top:56px; }
.product-type-group .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.product-type-group .product-card, .product-type-group .product-card.product-card-wide { grid-column:auto; }
.product-type-group .product-media { min-height:350px; }
.product-type-group .product-media.has-image img { padding:24px; }
@media(max-width:900px) { .product-type-group .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .product-type-group .product-grid { grid-template-columns:1fr; } .product-type-group .product-media { min-height:330px; } }
.product-type-head { display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:22px; border-bottom:1px solid rgba(255,255,255,.15); padding-bottom:18px; }
.product-type-head h3 { margin:0; font-family:Georgia,serif; font-size:clamp(1.5rem,4vw,2rem); font-weight:400; }
.product-type-head > span, .product-type-description { color:#acbac6; }
.product-detail-link { display:flex; align-items:center; min-height:52px; margin-top:auto; padding:14px 26px; color:#c7d9f5; border-top:1px solid rgba(255,255,255,.13); font-size:.92rem; }
.product-detail-link:hover { background:rgba(255,255,255,.06); color:white; }
.product-image-link { display:block; color:inherit; }
.product-image-link:focus-visible, .product-detail-link:focus-visible, .gallery-thumbnail:focus-visible { outline:3px solid #8db2ff; outline-offset:-3px; }
.product-detail-hero { padding:130px 0 70px; background:var(--paper); }
.detail-breadcrumb { margin-bottom:40px; line-height:1.8; overflow-wrap:anywhere; }
.detail-layout { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:56px; align-items:start; }
.detail-gallery, .detail-copy { min-width:0; }
.detail-figure { margin:0; background:#e9edf0; border:1px solid var(--border); border-radius:6px; overflow:hidden; }
.detail-figure > img { display:block; width:100%; height:auto; aspect-ratio:16/11; object-fit:contain; padding:20px; }
.detail-figure figcaption { padding:14px 20px; font-size:.92rem; border-top:1px solid var(--border); background:white; }
.detail-copy h1 { margin:16px 0 24px; font-family:Georgia,serif; font-weight:400; font-size:clamp(2.5rem,5vw,4.2rem); line-height:1.08; overflow-wrap:anywhere; }
.detail-summary { font-size:1.1rem; color:#465663; }
.detail-code { margin:24px 0; font-size:.95rem; }
.detail-copy .button { margin-top:14px; }
.detail-note { color:#526170; line-height:1.7; }
.detail-spec-section { background:white; }
.detail-spec-section h2, .detail-description h2 { font-family:Georgia,serif; font-size:clamp(2rem,4vw,3rem); font-weight:400; }
.detail-specifications { margin-top:32px; }
.detail-specifications > div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:24px; padding:20px 0; border-top:1px solid var(--border); }
.detail-specifications dt { font-weight:600; }
.detail-specifications dd { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; color:#465663; }
.detail-description { margin-top:54px; padding-top:36px; border-top:1px solid var(--border); }
.detail-description > p { white-space:pre-wrap; max-width:850px; overflow-wrap:anywhere; }
.gallery-thumbnails { display:grid; grid-template-columns:repeat(auto-fill,minmax(100px,1fr)); gap:12px; margin-top:16px; }
.gallery-thumbnail { display:flex; flex-direction:column; min-height:44px; border:2px solid transparent; border-radius:6px; overflow:hidden; background:#e9edf0; }
.gallery-thumbnail[aria-current=true] { border-color:var(--blue-700); }
.gallery-thumbnail img { width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; }
.gallery-thumbnail span { padding:8px; font-size:.8rem; line-height:1.4; overflow-wrap:anywhere; }
.gallery-controls { display:flex; justify-content:center; align-items:center; gap:24px; margin-top:18px; }
.gallery-controls[hidden] { display:none; }
.gallery-controls button { width:48px; height:48px; border:1px solid var(--border); border-radius:6px; background:white; color:var(--ink); cursor:pointer; font-size:1.3rem; }
.detail-placeholder { min-height:370px; padding:30px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:24px; border:1px solid var(--border); background:#e9edf0; border-radius:6px; text-align:center; }
.placeholder-outline { display:block; width:65%; height:120px; border:2px solid #8a9cad; transform:skew(-15deg); border-radius:10px 35px 10px 10px; }
@media(max-width:840px) { .detail-layout { grid-template-columns:1fr; gap:36px; } .product-detail-hero { padding-top:120px; } }
@media(max-width:600px) { .detail-specifications > div { grid-template-columns:1fr; gap:8px; } .detail-breadcrumb { margin-bottom:24px; } .detail-placeholder { min-height:270px; padding:22px; } .product-type-head { align-items:flex-start; flex-direction:column; gap:8px; } .product-detail-hero { padding-bottom:50px; } }
[data-catalog-more][hidden] { display: none; }
