/* SBS commerce, built on the existing black / blue / red / white site palette. */
.store-collection { padding:48px 6vw 72px; background:#080a0e; }
.store-collection [hidden] { display:none !important; }
.store-collection-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:25px; }
.store-collection-heading h2 { margin:12px 0; font:900 clamp(36px,4.4vw,62px)/.95 var(--display); letter-spacing:-.04em; text-transform:uppercase; }
.store-kicker { font:800 11px/1.4 var(--terminal); text-transform:uppercase; letter-spacing:.12em; color:#a7bbe7; }
.store-collection-heading p,.store-note { color:#b6bdc9; font-size:14px; line-height:1.6; }
.store-cart-button { display:flex; align-items:center; gap:13px; padding:14px 20px; border:1px solid #6176a2; background:#17243e; color:#fff; font:800 12px/1.2 var(--terminal); text-transform:uppercase; white-space:nowrap; }
.store-cart-button span { display:grid; place-items:center; min-width:23px; height:23px; background:#0a101d; border-radius:50%; }
.store-filter-row { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 28px; }
.store-filter { background:transparent; color:#c5cbd5; padding:11px 16px; border:1px solid #333b49; font:800 11px/1.2 var(--terminal); text-transform:uppercase; letter-spacing:.06em; }
.store-filter[aria-pressed="true"] { color:#fff; background:#203356; border-color:#789bdc; }
.store-product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.store-product-card { border:1px solid #293142; background:#10151f; min-width:0; transition:border-color .2s,transform .2s; }
.store-product-card:hover { border-color:#627dab; transform:translateY(-3px); }
.store-product-art { display:block; width:100%; padding:22px; aspect-ratio:1; border:0; background:radial-gradient(circle at 50% 40%,#243047,#0c111b 76%); cursor:pointer; overflow:hidden; }
.store-product-art img { width:100%; height:100%; object-fit:contain; transition:transform .3s; }
.store-product-art:hover img { transform:scale(1.035); }
.store-product-copy { padding:23px; border-top:1px solid #293142; }
.store-product-copy h3 { margin:12px 0; }
.store-product-title { border:0; padding:0; background:none; color:#fff; font:800 22px/1.15 var(--display); text-align:left; cursor:pointer; }
.store-price { color:#f5f7ff; font-weight:700; font-size:18px; margin:0 0 10px; }
.store-fulfillment { color:#b1b9c9; font-size:12px; margin:10px 0; }
.store-text-button,.store-size-guide { border:0; border-bottom:1px solid #6f83ad; padding:8px 0; display:inline-block; background:transparent; color:#d7e5ff; font:800 11px/1.5 var(--terminal); text-transform:uppercase; letter-spacing:.05em; cursor:pointer; }
.store-empty { padding:40px; margin-top:24px; display:grid; grid-template-columns:minmax(0,1fr) 180px; align-items:center; gap:45px; border:1px solid #2e384c; border-top:3px solid #ef203e; background:linear-gradient(120deg,#121b2d,#0b0f17); }
.store-empty h2 { margin:18px 0; font:900 clamp(38px,4vw,58px)/.95 var(--display); letter-spacing:-.04em; text-transform:uppercase; }
.store-empty p { max-width:640px; color:#c2c9d5; line-height:1.6; }
.store-empty img { width:180px; height:180px; object-fit:contain; }
.store-primary-button { display:inline-flex; align-items:center; justify-content:center; padding:17px 22px; margin-top:16px; width:100%; color:#fff; background:#233c67; border:1px solid #819ccd; font:800 12px/1.2 var(--terminal); letter-spacing:.04em; text-transform:uppercase; cursor:pointer; }
.store-primary-button:hover { background:#304e80; }
.store-primary-button:disabled { opacity:.5; cursor:not-allowed; }
.store-collection .viper-store-callout { margin-top:38px; }
.store-note { margin-top:30px; padding-top:20px; border-top:1px solid #293142; max-width:840px; }
.store-dialog-open { overflow:hidden; }
.store-dialog { background:#101622; color:#fff; border:1px solid #536582; padding:0; width:min(1040px,94vw); max-height:90dvh; margin:auto; box-shadow:0 25px 100px #000a; }
.store-dialog::backdrop { background:rgba(0,0,0,.8); backdrop-filter:blur(5px); }
.store-dialog-top { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:17px 24px; border-bottom:1px solid #344056; background:#0b0f17; position:sticky; top:0; z-index:2; }
.store-dialog-close { width:42px; height:42px; background:#1d283a; color:#fff; border:1px solid #536582; font-size:26px; cursor:pointer; }
.store-product-body { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:35px; padding:30px; }
.store-detail-image { width:100%; height:420px; object-fit:contain; background:#192335; padding:20px; }
.store-thumbnails { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.store-thumbnail { width:64px; height:64px; border:1px solid #536582; background:#192335; padding:5px; cursor:pointer; }
.store-thumbnail img { width:100%; height:100%; object-fit:contain; }
.store-product-detail h2 { margin:12px 0 18px; font:900 clamp(28px,3vw,40px)/1.05 var(--display); letter-spacing:-.03em; }
.store-detail-price { font-size:23px; font-weight:800; margin:0 0 18px; }
.store-description { font-size:14px; line-height:1.7; color:#d0d6e0; white-space:pre-line; overflow-wrap:anywhere; max-height:230px; overflow:auto; }
.store-shipping-note { font-size:13px; color:#b9c6db; line-height:1.6; border-left:2px solid #456cae; padding-left:13px; margin:20px 0; }
.store-options { margin-top:22px; }
.store-field { display:block; margin-top:15px; }
.store-field>span { display:block; font:800 11px/1.4 var(--terminal); text-transform:uppercase; margin-bottom:8px; color:#b9c6db; letter-spacing:.08em; }
.store-field select { width:100%; min-height:48px; background:#182238; border:1px solid #667796; padding:10px 12px; color:#fff; font-size:15px; }
.store-field input[type=number] { width:100%; min-height:48px; box-sizing:border-box; background:#182238; border:1px solid #667796; padding:10px 12px; color:#fff; font-size:15px; }
.store-field input[type=number]:disabled { opacity:.55; cursor:not-allowed; }
.store-availability,.store-option-message { color:#bdcae0; font-size:13px; margin-top:14px; }
.store-cart-dialog { width:min(620px,94vw); }
.store-cart-content { padding:24px; }
.store-cart-content h2 { margin:0 0 22px; font:900 34px/1 var(--display); }
.store-cart-line { display:flex; align-items:flex-start; gap:16px; padding:20px 0; border-top:1px solid #354158; }
.store-cart-line>img { width:86px; height:96px; object-fit:contain; background:#192335; padding:8px; }
.store-cart-line-copy { flex:1; min-width:0; }
.store-cart-line-copy h3 { margin:0 0 7px; font-size:16px; line-height:1.25; }
.store-cart-line-copy p,.store-cart-line-copy small { color:#bdc6d7; font-size:12px; display:block; margin:7px 0; }
.store-quantity-controls { display:flex; align-items:center; gap:14px; margin-top:13px; }
.store-quantity-controls button { width:36px; height:36px; background:#20314d; border:1px solid #61779c; color:#fff; cursor:pointer; font-size:20px; }
.store-quantity-controls button:disabled { opacity:.4; cursor:not-allowed; }
.store-remove { border:0; border-bottom:1px solid #74829a; color:#bdc6d7; padding:4px 0; background:none; font-size:11px; cursor:pointer; }
.store-cart-summary { border-top:1px solid #536582; margin-top:20px; padding-top:24px; display:flex; align-items:center; justify-content:space-between; font-size:18px; }
.store-cart-fineprint { color:#b3bed1; font-size:12px; line-height:1.6; margin:16px 0; }
.store-error { color:#ff9faa !important; font-size:13px; line-height:1.6; }
.store-error:empty { display:none; }
.store-dialog button:focus-visible,.store-dialog a:focus-visible,.store-dialog select:focus-visible,.store-collection button:focus-visible,.store-collection a:focus-visible { outline:3px solid #d9e8ff; outline-offset:4px; }
@media(max-width:900px) { .store-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .store-product-body { gap:22px; padding:24px; } .store-detail-image { height:340px; } }
@media(max-width:600px) { .store-collection { padding:35px 5vw 50px; } .store-collection-heading { align-items:flex-start; gap:15px; } .store-collection-heading h2 { font-size:34px; } .store-cart-button { padding:11px; gap:7px; } .store-product-grid { gap:14px; } .store-product-copy { padding:15px; } .store-product-title { font-size:18px; } .store-product-art { padding:12px; } .store-product-copy .store-kicker { font-size:9px; } .store-empty { padding:26px; grid-template-columns:1fr; gap:22px; } .store-empty img { display:none; } .store-product-body { grid-template-columns:1fr; padding:20px; } .store-detail-image { height:300px; } .store-description { max-height:none; } .store-dialog { max-height:94dvh; } .store-cart-content { padding:20px; } .store-cart-line>img { width:64px; height:78px; } }
@media(prefers-reduced-motion:reduce) { .store-product-card,.store-product-art img { transition:none; } }
