/*
 * @file        storefront.css
 * @description Storefront and product-description presentation
 * @project     Lost Limb Riders (lostlimbriders.org)
 * @author      C. Hirschauer
 * @copyright   Copyright (c) 2026 C. Hirschauer. All rights reserved.
 * @license     Proprietary. No unauthorized reproduction or distribution.
 */
:root { --orange:#ff6a00; --black:#080808; --panel:#141414; --line:#303030; --muted:#b9b9b9; --white:#fff; }
body { background:#080808; color:#fff; font-family:Inter,Arial,Helvetica,sans-serif; }
.shop-hero { padding:38px 5vw 26px; text-align:left; }
.shop-hero::before { background:radial-gradient(ellipse at 4% 0%,rgba(255,106,0,.19),transparent 43rem); }
.shop-hero-badge { margin-bottom:12px; }
.shop-hero h1 { font-size:clamp(36px,5vw,62px); line-height:1; margin-bottom:12px; }
.shop-hero-sub { margin:0; max-width:720px; font-size:16px; }
.shop-hero-stats { display:none; }
.products-section { padding:18px 0 58px; }
.products-section .wrap { max-width:1440px; padding:0 5vw; }
.section-header { display:none; }
.store-tools { display:grid; grid-template-columns:minmax(220px,1fr) auto auto; gap:12px; align-items:center; padding:18px 0; }
.store-tools input,.store-tools select { width:100%; min-height:48px; padding:0 14px; color:#fff; background:#151515; border:1px solid #414141; border-radius:8px; font:inherit; }
.store-tools input:focus,.store-tools select:focus,.product-card a:focus-visible,.store-tools button:focus-visible { outline:3px solid #ff8a33; outline-offset:2px; }
.store-categories { display:flex; gap:8px; overflow:auto; padding:4px 0 14px; scrollbar-width:thin; }
.store-categories button { border:1px solid #444; border-radius:999px; background:#141414; color:#eee; min-height:42px; padding:0 16px; white-space:nowrap; cursor:pointer; }
.store-categories button[aria-pressed="true"] { border-color:#ff6a00; background:#3c1c08; color:#fff; }
.product-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.product-card { border-radius:12px; background:#121212; border-color:#2e2e2e; transition:transform .18s ease,border-color .18s ease; }
.product-card:hover { transform:translateY(-3px); border-color:#777; box-shadow:0 18px 42px #0009; }
.product-card-link { display:block; height:100%; }
.product-image { aspect-ratio:1/1; margin:0; background:#f1f1f1; animation:none; }
.product-image img { object-fit:contain!important; padding:10px; }
.product-body { padding:14px 16px 17px; }
.product-category { color:#ff8b3c; text-transform:uppercase; font-size:11px; letter-spacing:.1em; font-weight:800; }
.product-name { margin:7px 0 9px; font-size:16px; line-height:1.35; font-weight:700; }
.product-desc { display:none; }
.product-price { font-size:18px; font-weight:800; }
.product-availability { display:block; margin-top:10px; color:#c6c6c6; font-size:13px; }
.product-tag { top:12px; left:12px; }
.shop-notice { margin:10px 0 18px; }
.empty-shop { padding:50px 20px; text-align:center; border:1px dashed #444; border-radius:12px; color:#ddd; }
.empty-shop h3 { margin-bottom:8px; }
.shop-results { color:var(--muted); font-size:14px; }
.store-error { border:1px solid #8d352a; background:#2a1412; color:#ffe4de; padding:18px; border-radius:10px; }
.store-no-results { grid-column:1/-1; padding:44px 20px; color:#ddd; text-align:center; border:1px dashed #444; border-radius:12px; }
.gallery-thumbnails { display:flex; gap:9px; overflow:auto; padding:12px 2px; }
.gallery-thumbnails { min-width:0; max-width:100%; }
.gallery-thumbnails button { border:1px solid #555; padding:2px; width:70px; height:70px; flex:0 0 auto; border-radius:6px; background:#111; cursor:pointer; }
.gallery-thumbnails button[aria-pressed="true"] { border:2px solid var(--orange); }
.gallery-thumbnails img { width:100%; height:100%; object-fit:contain; }
.product-detail { max-width:1320px; margin:0 auto; padding:28px 5vw 70px; }
.visually-hidden { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.breadcrumbs { color:#bbb; font-size:14px; margin-bottom:24px; }
.breadcrumbs a { color:#ff9a55; text-decoration:underline; text-underline-offset:3px; }
.detail-layout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr); gap:clamp(28px,5vw,72px); align-items:start; }
.detail-gallery,.detail-info { min-width:0; }
.gallery-main { position:relative; background:#f2f2f2; border-radius:12px; overflow:hidden; aspect-ratio:1/1; display:grid; place-items:center; }
.gallery-main img { width:100%; height:100%; object-fit:contain; cursor:zoom-in; }
.detail-title { font-size:clamp(28px,4vw,44px); line-height:1.12; margin:0 0 14px; }
.detail-price { font-size:26px; font-weight:800; margin:18px 0 6px; }
.product-description { color:#ddd; line-height:1.7; overflow-wrap:anywhere; }
.product-description > :first-child { margin-top:0; }
.product-description > :last-child { margin-bottom:0; }
.product-description p { margin:0 0 1em; min-height:1em; }
.product-description ul,.product-description ol { padding-left:1.6em; margin:0 0 1.1em; }
.product-description li { padding-left:.2em; margin:.3em 0; }
.product-description strong,.product-description b { color:#fff; font-weight:750; }
.product-description em,.product-description i { font-style:italic; }
.product-description h1 { font-size:1.65em; }
.product-description h2 { font-size:1.45em; }
.product-description h3 { font-size:1.28em; }
.product-description h4 { font-size:1.16em; }
.product-description h1,.product-description h2,.product-description h3,.product-description h4,.product-description h5,.product-description h6 { margin:1.2em 0 .5em; line-height:1.3; }
.product-description a { color:#ff9a55; text-decoration:underline; text-underline-offset:3px; }
.product-description table { display:block; max-width:100%; overflow-x:auto; border-collapse:collapse; }
.product-description th,.product-description td { padding:8px; border:1px solid #555; text-align:left; }
.product-description pre { max-width:100%; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; padding:12px; background:#111; border-radius:6px; }
.detail-selectors { display:grid; gap:14px; margin:22px 0; }
.detail-selectors label { display:grid; gap:7px; color:#eee; font-weight:700; }
.detail-selectors select,.detail-quantity { min-height:48px; padding:0 12px; color:#fff; background:#151515; border:1px solid #555; border-radius:7px; font:inherit; }
.detail-availability { padding:14px; border:1px solid #444; border-radius:8px; background:#141414; color:#ddd; line-height:1.5; }
.detail-related { margin-top:54px; }
.detail-related h2 { margin-bottom:18px; }
.detail-related-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.detail-related-card { border:1px solid #333; border-radius:9px; overflow:hidden; background:#141414; }
.detail-related-card img { aspect-ratio:1/1; width:100%; object-fit:contain; background:#eee; }
.detail-related-card span { display:block; padding:10px; line-height:1.35; }
.image-lightbox { border:0; padding:0; max-width:min(94vw,1200px); max-height:94vh; background:#101010; color:#fff; border-radius:10px; }
.image-lightbox::backdrop { background:#000e; }
.image-lightbox img { max-height:88vh; max-width:92vw; object-fit:contain; }
.image-lightbox button { position:absolute; top:10px; right:10px; width:44px; height:44px; border-radius:50%; border:1px solid #aaa; background:#111; color:#fff; font-size:24px; cursor:pointer; }
@media(max-width:980px) { .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .detail-related-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:680px) {
 .shop-hero { padding:27px 20px 18px; }
 .products-section .wrap { padding:0 16px; }
 .store-tools { grid-template-columns:1fr 1fr; gap:9px; }
 .store-tools label:first-child { grid-column:1/-1; }
 .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .product-body { padding:10px; }
 .product-name { font-size:14px; }
 .product-price { font-size:16px; }
 .detail-layout { grid-template-columns:1fr; gap:20px; }
 .product-detail { padding:20px 16px 52px; }
 .detail-related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .gallery-thumbnails button { width:62px; height:62px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; } }

.order-fine-print { margin-top:24px; padding:22px; border:1px solid var(--line); border-radius:12px; background:var(--card); color:#ccc; font-size:14px; line-height:1.65; }
.order-fine-print h2 { margin:0 0 12px; color:var(--white); font-size:20px; }
.order-fine-print p { margin:10px 0; }
.order-fine-print details { border-top:1px solid var(--line); padding:12px 0; }
.order-fine-print summary { cursor:pointer; font-weight:700; color:var(--white); }
.order-fine-print a { color:#ff9a55; text-decoration:underline; text-underline-offset:3px; }
