/* Product pages: selection, details and a mobile order action. */
.product-detail-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-areas:'media heading' 'media purchase'; grid-template-rows:min-content 1fr; gap:20px 54px; padding-block:28px 48px; align-items:start; }
.product-heading { grid-area:heading; padding-top:16px; }
.product-heading h1 { font-size:clamp(45px,4.7vw,66px); line-height:1.05; margin:13px 0 18px; }
.product-headline { font-size:23px; line-height:1.45; color:var(--cream); max-width:540px; }
.product-media { grid-area:media; min-width:0; border:1px solid var(--line); background:#06160e; }
.product-photo-open { display:block; position:relative; cursor:zoom-in; }
.product-photo-open>img { width:100%; height:auto; max-height:650px; object-fit:contain; }
.photo-enlarge { position:absolute; right:12px; bottom:12px; display:flex; align-items:center; gap:7px; padding:9px 12px; background:#07170fed; color:var(--cream); border:1px solid var(--line); font-size:14px; }
.photo-enlarge svg { width:18px; height:18px; }
.product-purchase { grid-area:purchase; border-top:1px solid var(--line); padding-top:23px; }
.product-order-price { font:500 32px/1.2 var(--heading); color:var(--cream); }
.product-stock { font-size:15px; margin-top:7px; }
.product-dimensions { margin-top:14px; font-size:16px; }
.product-purchase>.button { width:100%; margin-top:22px; min-height:54px; }
.purchase-caption { font-size:15px; line-height:1.5; margin-top:12px; }
.purchase-alternatives { margin-top:23px; border-top:1px solid var(--line); }
.purchase-alternatives summary { cursor:pointer; color:var(--gold-bright); padding:15px 0; font-size:17px; }
.alternate-links { display:flex; flex-wrap:wrap; gap:10px; padding:0 0 10px; }
.alternate-link { min-height:44px; display:inline-flex; align-items:center; padding:9px 12px; border:1px solid var(--line); color:var(--gold-bright); font-size:15px; }
.purchase-alternatives>p { font-size:14px; line-height:1.55; margin:0 0 12px; }
.product-information { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(240px,.8fr); gap:60px; padding-block:40px 48px; border-top:1px solid var(--line); }
.product-information-main>h2 { font-size:43px; margin:12px 0 21px; }
.product-intro { font-size:19px; line-height:1.7; margin-bottom:26px; }
.product-accordions details { border-top:1px solid var(--line); }
.product-accordions details:last-child { border-bottom:1px solid var(--line); }
.product-accordions summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 0; min-height:58px; cursor:pointer; list-style:none; font-size:19px; color:var(--cream); }
.product-accordions summary::-webkit-details-marker { display:none; }
.product-accordions summary:after { content:'+'; flex:none; color:var(--gold); font:26px/1 Georgia,serif; }
.product-accordions details[open]>summary:after { content:'−'; }
.product-info-content { font-size:18px; line-height:1.7; padding:0 0 22px; }
.product-info-content p+p { margin-top:16px; }
.product-info-content h3 { font-size:26px; margin:18px 0 12px; }
.product-info-content h3:first-child { margin-top:0; }
.product-info-content ol { color:var(--muted); padding-left:23px; margin:0 0 18px; }
.product-info-content li { margin-bottom:12px; }
.product-info-content .text-link { margin-top:18px; }
.product-specs { margin:22px 0 0; }
.product-specs>div { padding:15px 0; border-top:1px solid var(--line); }
.product-specs dt { color:var(--gold); font-size:16px; }
.product-specs dd { margin:6px 0 0; color:var(--muted); font-size:17px; line-height:1.6; }
.product-help { align-self:start; padding:25px; background:#07170fa8; border:1px solid var(--line); }
.product-help h2 { font-size:33px; margin:13px 0 20px; }
.product-help p { font-size:17px; line-height:1.6; margin-bottom:16px; }
.product-help .aside-link { font-size:16px; min-height:44px; }
.product-related { padding-block:25px 65px; }
.product-related .section-heading { align-items:center; }
.product-related h2 { font-size:41px; }
.product-related .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); max-width:960px; }
.product-order-bar { display:none; }
.product-photo-dialog,.product-order-dialog { color:var(--cream); background:#0a1e15; border:1px solid var(--gold); box-shadow:0 24px 80px #0009; padding:28px; margin:auto; max-height:90vh; max-height:90dvh; overscroll-behavior:contain; }
.product-photo-dialog::backdrop,.product-order-dialog::backdrop { background:#010a07cc; backdrop-filter:blur(5px); }
.product-photo-dialog { width:min(900px,94vw); padding:16px; }
.product-photo-dialog>img { display:block; width:100%; height:auto; max-height:calc(90vh - 85px); max-height:calc(90dvh - 85px); object-fit:contain; }
.product-photo-dialog>p { text-align:center; font-size:18px; margin-top:12px; color:var(--cream); }
.dialog-dismiss { position:absolute; top:12px; right:12px; display:grid; place-items:center; width:44px; height:44px; background:#07170ff0; color:var(--cream); border:1px solid var(--line); border-radius:50%; z-index:1; }
.product-order-dialog { width:min(520px,calc(100% - 32px)); }
.product-order-dialog>.dialog-dismiss { position:sticky; top:0; float:right; margin:-8px -8px 0 12px; }
.product-order-dialog>.eyebrow { font-size:11px; letter-spacing:.1em; }
.product-order-dialog>h2 { font-size:36px; margin:10px 0 22px; }
.order-selected-product { display:flex; align-items:center; gap:16px; padding:13px; border:1px solid var(--line); background:#07170f; margin-bottom:21px; }
.order-selected-product>img { width:54px; height:68px; object-fit:cover; flex:none; }
.order-selected-product strong { display:block; font:500 27px/1.1 var(--heading); }
.order-selected-product span { display:block; font-size:14px; color:var(--muted); margin-top:7px; }
#product-order-form label { display:block; font-size:15px; color:var(--cream); margin-bottom:7px; }
#product-order-form textarea,#product-order-form input { font:16px/1.45 var(--body); display:block; width:100%; min-width:0; padding:10px 12px; color:var(--cream); background:#05130c; border:1px solid #7c805b; border-radius:0; }
#product-order-form textarea { min-height:108px; resize:vertical; }
#product-order-form input { height:46px; color-scheme:dark; }
.order-extra-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:17px; }
.order-extra-fields>div { min-width:0; }
.order-optional { font-size:13px; margin-top:8px; }
.order-dialog-actions { display:grid; gap:10px; margin-top:20px; }
.order-dialog-actions .button { width:100%; min-height:48px; font-size:17px; }
.order-explanation { margin-top:12px; font-size:14px; line-height:1.55; }
#order-status { margin-top:10px; min-height:0; }
#order-status:empty { display:none; }
.order-direct-contact { border-top:1px solid var(--line); margin-top:20px; padding-top:10px; }
.order-direct-contact a { display:block; padding:9px 0; font-size:15px; overflow-wrap:anywhere; }
@media(max-width:1100px) {
 .product-detail-hero { column-gap:32px; }
 .product-heading h1 { font-size:51px; }
 .product-information { gap:32px; }
}
@media(max-width:900px) {
 .product-view { --order-bar-height:88px; padding-bottom:var(--order-bar-height); }
 html:has(.product-view) { scroll-padding-bottom:calc(var(--order-bar-height,88px) + 20px); }
 .product-detail-hero,.product-information,.product-related { width:calc(100% - 32px); }
 .product-detail-hero { grid-template-columns:minmax(0,1fr); grid-template-areas:'heading' 'media' 'purchase'; gap:18px; padding-block:17px 30px; }
 .product-heading { padding-top:0; }
 .product-heading .eyebrow { font-size:10px; letter-spacing:.13em; }
 .product-heading h1 { font-size:40px; margin:9px 0 10px; }
 .product-headline { font-size:19px; line-height:1.4; }
 .product-photo-open>img { height:clamp(245px,34svh,310px); max-height:none; object-fit:contain; }
 .photo-enlarge { right:9px; bottom:9px; font-size:12px; padding:7px 9px; }
 .product-purchase { padding-top:0; border:0; }
 .product-order-price { font-size:28px; }
 .product-stock { font-size:14px; }
 .product-purchase>.button { margin-top:17px; min-height:49px; }
 .purchase-caption { font-size:14px; margin-top:10px; }
 .purchase-alternatives { margin-top:17px; }
 .purchase-alternatives summary { font-size:16px; }
 .product-information { grid-template-columns:minmax(0,1fr); gap:27px; padding-block:29px; }
 .product-information-main>h2 { font-size:35px; margin:9px 0 16px; }
 .product-intro { font-size:18px; line-height:1.65; margin-bottom:19px; }
 .product-accordions summary { font-size:17px; padding:17px 0; }
 .product-info-content { font-size:17px; }
 .product-help { padding:21px; }
 .product-help h2 { font-size:30px; margin:10px 0 13px; }
 .product-related { padding-block:18px 40px; }
 .product-related .section-heading { display:flex; flex-wrap:wrap; gap:15px; margin-bottom:20px; }
 .product-related h2 { font-size:34px; }
 .product-related .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .product-order-bar { display:block; position:fixed; left:0; right:0; bottom:0; z-index:35; padding:10px 16px calc(10px + env(safe-area-inset-bottom)); background:#07170ff5; border-top:1px solid var(--gold); backdrop-filter:blur(12px); }
 .order-bar-inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); align-items:center; gap:12px; max-width:660px; margin:auto; }
 .order-bar-caption { min-width:0; }
 .order-bar-caption strong { display:block; font:500 22px/1.05 var(--heading); }
 .order-bar-caption span { display:block; margin-top:5px; font-size:12px; line-height:1.3; color:var(--muted); }
 .order-bar-inner>.button { width:100%; min-height:49px; padding:10px 12px; font-size:16px; text-align:center; }
}
@media(max-width:600px) {
 .product-order-dialog { width:100%; max-width:none; margin:auto 0 0; max-height:94vh; max-height:94dvh; border-radius:16px 16px 0 0; padding:22px 18px calc(20px + env(safe-area-inset-bottom)); }
 .product-order-dialog>h2 { font-size:33px; margin-bottom:18px; }
 .order-extra-fields { gap:10px; }
 .product-photo-dialog { padding:10px; }
}
@media(max-width:359px) {
 .product-heading h1 { font-size:36px; }
 .product-headline { font-size:18px; }
 .order-bar-inner { gap:8px; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); }
 .order-bar-caption strong { font-size:20px; }
 .order-bar-inner>.button { font-size:15px; padding-inline:8px; }
 .order-extra-fields { grid-template-columns:1fr; }
}
@media print { .product-order-bar,.product-purchase,.product-help,dialog { display:none!important; } .product-view { padding-bottom:0; } .product-detail-hero,.product-information { display:block; } }

.product-detail-hero,.product-information,.product-related { padding-inline:0; }
@media(max-width:900px) { .product-detail-hero { grid-template-rows:auto; } .product-order-bar.inline-order-visible { opacity:0; visibility:hidden; pointer-events:none; transform:translateY(110%); } }
