.shop-shell{max-width:1500px;margin:auto;color:var(--text)}
.shop-hero{display:flex;justify-content:space-between;gap:32px;padding:clamp(24px,5vw,64px);margin-bottom:28px;border:1px solid var(--border);border-radius:22px;background:radial-gradient(ellipse at top right,color-mix(in srgb,var(--shop-accent,var(--accent)),transparent 82%),transparent 70%),var(--panel)}
.shop-hero h1{max-width:750px;font-size:clamp(32px,4.5vw,64px);line-height:1.08;letter-spacing:-.04em;margin:14px 0 18px;color:var(--text)}
.shop-hero p{max-width:650px;color:var(--text-muted)}
.shop-hero-links{display:flex;gap:18px;white-space:nowrap;align-items:flex-start;font-size:.9rem}
.shop-hero-links a,.shop-page-links a,.shop-modal a{color:var(--text);text-underline-offset:4px}
.shop-kicker{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--text-muted);margin:0}
.shop-toolbar{display:flex;gap:20px;justify-content:space-between;align-items:end;margin:20px 0}
.shop-search{flex:1;max-width:600px}.shop-toolbar label,.shop-filter-fields label{font-size:.85rem;font-weight:600}
.shop-toolbar input,.shop-toolbar select,.shop-filter-fields input,.shop-filter-fields select{margin-top:6px}
.shop-layout{display:grid;grid-template-columns:minmax(0,1fr) 355px;gap:26px;align-items:start}
.shop-filter-panel{border:1px solid var(--border);background:var(--panel);padding:16px;border-radius:14px;margin-bottom:16px}
.shop-filter-panel summary{cursor:pointer;font-weight:700}.shop-filter-fields{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px;align-items:end}.shop-filter-fields label{flex:1;min-width:130px}.shop-filter-fields .shop-stock-filter{display:flex;gap:8px;align-items:center;min-height:40px}.shop-filter-fields input[type=number]{max-width:150px}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:18px}
.shop-card{border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--panel);display:flex;flex-direction:column}.shop-card[hidden],[hidden]{display:none!important}
.shop-card-media{position:relative;display:block;width:100%;aspect-ratio:1;border:0;padding:0;background:var(--panel-soft);color:var(--text);cursor:pointer}.shop-card-media img,.shop-card-placeholder{display:block;width:100%;height:100%;object-fit:cover}.shop-card-placeholder{display:grid;place-items:center;font-size:3rem;color:var(--text-muted)}
.shop-status{position:absolute;bottom:12px;left:12px;padding:5px 9px;border-radius:6px;background:var(--panel-soft);color:var(--text);font-size:.75rem;font-weight:700}
.shop-card-body{padding:17px;display:flex;flex-direction:column;flex:1}.shop-card h2{font-size:1.07rem;line-height:1.4;margin:8px 0}.shop-card h2 a{color:var(--text);text-decoration:none}.shop-card h2 a:hover{text-decoration:underline}.shop-card-description{color:var(--text-muted);font-size:.85rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.shop-card-bottom{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-top:auto;flex-wrap:wrap}
.shop-price{font-size:1.2rem;font-weight:800;color:var(--text)}
.shop-add-btn{background:var(--panel-soft);color:var(--text);border:2px solid var(--shop-accent,var(--accent));border-radius:9px;padding:10px 13px;font-weight:750;cursor:pointer;font-size:.85rem}.shop-add-btn:hover{background:color-mix(in srgb,var(--shop-accent,var(--accent)),var(--panel-soft) 85%)}.shop-add-btn:disabled{opacity:.5;cursor:not-allowed}
.shop-basket{position:sticky;top:85px;padding:22px;border:1px solid var(--border);border-radius:18px;background:var(--panel);scroll-margin-top:90px}.shop-basket h2{font-size:1.4rem;color:var(--text)}.shop-muted{color:var(--text-muted);font-size:.85rem}.shop-basket form{display:grid;gap:9px}.shop-basket form>label{font-size:.85rem;font-weight:650}.shop-code-row{display:flex;gap:8px}.shop-basket fieldset{border:0;padding:0;margin:16px 0 4px}.shop-basket legend{font-size:.9rem;font-weight:700;float:none}
.shop-delivery-option{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border);border-radius:10px;padding:10px;margin:8px 0;font-size:.8rem;cursor:pointer}.shop-delivery-option small{display:block;margin-top:4px;color:var(--text-muted)}.shop-delivery-option>span:last-child{margin-left:auto;white-space:nowrap}.shop-delivery-option input{margin-top:4px;accent-color:var(--shop-accent,var(--accent))}
.basket-line{padding:14px 0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:1fr auto;gap:10px;font-size:.9rem}.basket-line strong{display:block}.basket-controls{display:flex;gap:8px;align-items:center;margin-top:8px}.basket-controls button{border:1px solid var(--border);background:var(--panel-soft);color:var(--text);border-radius:6px;min-width:32px;min-height:32px}.basket-controls button:disabled{opacity:.4}.basket-controls .basket-remove{font-size:.75rem;padding:0 8px;color:var(--danger)}
.shop-totals{margin:10px 0}.shop-totals>div{display:flex;justify-content:space-between;margin:7px 0;font-size:.9rem}.shop-totals dt{font-weight:500}.shop-totals dd{margin:0}.shop-totals .shop-total{font-size:1.2rem;border-top:1px solid var(--border);padding-top:12px;margin-top:12px}.shop-total dt,.shop-total dd{font-weight:800}.shop-checkout{width:100%;margin-top:8px;min-height:48px}.shop-checkout-note{margin:5px 0 0;line-height:1.6}.shop-empty{padding:32px;border:1px dashed var(--border);border-radius:12px;background:var(--panel);color:var(--text-muted)}.shop-page-links{display:flex;gap:24px;flex-wrap:wrap;border-top:1px solid var(--border);padding:24px 0;margin-top:40px}
.shop-information{max-width:850px;padding:clamp(24px,4vw,48px);margin:auto;background:var(--panel);border:1px solid var(--border);border-radius:18px;color:var(--text)}.shop-information-body{white-space:pre-wrap;line-height:1.8}
.shop-shell :focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(max-width:1050px){.shop-hero{flex-direction:column}.shop-layout{grid-template-columns:minmax(0,1fr) 320px}.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-card-bottom{align-items:flex-start;flex-direction:column}}
@media(max-width:800px){.shop-layout{grid-template-columns:1fr}.shop-basket{position:static}.shop-hero-links{flex-wrap:wrap}.shop-toolbar{align-items:stretch}.shop-toolbar>*{min-width:0}.shop-toolbar label{max-width:65%}}
@media(max-width:480px){.shop-grid{gap:10px}.shop-card-body{padding:12px}.shop-card h2{font-size:.95rem}.shop-card-description{display:none}.shop-card-bottom{gap:8px}.shop-card-bottom button{width:100%;font-size:.76rem;padding:8px}.shop-toolbar{flex-direction:column}.shop-toolbar label{max-width:100%}}
.shop-product-nav{display:flex;justify-content:space-between;gap:20px;padding:20px 0 30px;font-size:.9rem}.shop-product-nav a{color:var(--text);text-underline-offset:4px}
.shop-product-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:start;margin-bottom:50px}
.shop-product-gallery{min-width:0}.shop-product-main-image{display:block;width:100%;aspect-ratio:1;object-fit:contain;background:var(--panel-soft);border:1px solid var(--border);border-radius:18px}
.shop-product-thumbnails{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.shop-product-thumbnails button{border:2px solid var(--border);border-radius:10px;overflow:hidden;padding:0;background:var(--panel);cursor:pointer;width:80px;height:80px}.shop-product-thumbnails button[aria-pressed=true]{border-color:var(--shop-accent,var(--accent))}.shop-product-thumbnails img{width:100%;height:100%;object-fit:cover}
.shop-product-no-image{aspect-ratio:1;border:1px solid var(--border);border-radius:18px;background:var(--panel);display:flex;gap:18px;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted)}.shop-product-no-image i{font-size:4rem}
.shop-product-information h1{font-size:clamp(28px,3.4vw,48px);line-height:1.15;letter-spacing:-.035em;margin:12px 0 20px;color:var(--text)}.shop-product-price{font-size:1.9rem;font-weight:800;margin:0 0 12px}.shop-product-availability{font-weight:650;color:var(--text-muted)}
.shop-product-purchase{display:grid;grid-template-columns:95px minmax(0,1fr);gap:10px 14px;margin:24px 0 12px;max-width:480px}.shop-product-purchase label{grid-column:1/-1;font-size:.85rem;font-weight:700}.shop-product-purchase .shop-add-btn{font-size:1rem;min-height:48px}.shop-product-purchase input{min-height:48px}
.shop-product-delivery{display:flex;gap:14px;align-items:flex-start;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:18px 0;margin:24px 0;color:var(--text-muted)}.shop-product-delivery p{font-size:.9rem;line-height:1.65;margin:0}.shop-product-delivery i{font-size:1.3rem}
.shop-product-description{white-space:normal}.shop-product-description h2{font-size:1.2rem;font-weight:750;margin:0 0 14px}.shop-product-description>div{white-space:pre-wrap;line-height:1.8;overflow-wrap:anywhere}
@media(max-width:800px){.shop-product-layout{grid-template-columns:1fr;gap:28px}.shop-product-information h1{font-size:2rem}.shop-product-thumbnails button{width:65px;height:65px}.shop-product-nav{padding-bottom:20px}.shop-product-purchase{max-width:none}}
.shop-product-videos{margin-top:30px}.shop-product-videos h2{font-size:1.2rem;margin-bottom:16px}.shop-video-card{margin:0 0 20px;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--panel)}.shop-video-card figcaption{padding:12px 16px;font-size:.9rem;font-weight:650;overflow-wrap:anywhere}.shop-video-card video{display:block;width:100%;aspect-ratio:16/9;background:var(--bg)}.shop-video-embed{aspect-ratio:16/9;background:var(--panel-soft)}.shop-video-embed iframe{width:100%;height:100%;border:0;display:block}.shop-video-load{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;width:100%;height:100%;background:transparent;border:0;color:var(--text);cursor:pointer}.shop-video-load i{font-size:3rem}.shop-video-load small{color:var(--text-muted)}

.shop-video-embed { min-height: 200px; }

.shop-product-option{grid-column:1/-1;min-width:0}.shop-product-option>label{display:block;margin-bottom:8px}.shop-branding{padding:16px;border:1px solid var(--border);border-radius:12px}.shop-branding small{color:var(--text-muted)}.shop-card-bottom a.shop-add-btn{text-align:center;text-decoration:none;display:block}.shop-product-option select{width:100%}
