/*
 * @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 { display:flex; flex-direction:column; 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; flex:1 0 auto; color:inherit; text-decoration:none; }
.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-card-cta { display:flex; align-items:center; justify-content:center; min-height:50px; margin:0 14px 14px; padding:12px 18px; border-radius:9px; background:#ff6a00; color:#111!important; font-weight:900; letter-spacing:.035em; text-align:center; text-transform:uppercase; text-decoration:none; box-shadow:0 5px 14px rgba(255,106,0,.2); transition:background .15s ease,transform .15s ease; }
.product-card-cta:hover { background:#ff8533; transform:translateY(-1px); }
.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; }
.detail-purchase { position:sticky; top:96px; padding:22px; border:1px solid rgba(255,106,0,.38); border-radius:14px; background:linear-gradient(145deg,#1b140f,#121212); box-shadow:0 18px 44px #0007; }
.detail-purchase .detail-price { margin:0 0 16px; font-size:32px; }
.detail-purchase .detail-selectors { margin:0 0 16px; }
.detail-purchase .detail-selectors label { font-size:14px; }
.detail-purchase .btn-buy { width:100%; min-height:58px; justify-content:center; border-radius:10px; background:#ff6a00; font-size:17px; box-shadow:0 7px 18px rgba(255,106,0,.22); }
.detail-purchase .btn-buy:hover { background:#ff8533; }
.detail-purchase .btn-buy:disabled { opacity:.5; cursor:not-allowed; transform:none; }
.cart-feedback { min-height:24px; margin-top:12px; color:#ffd0a8; font-weight:700; }
.cart-feedback a { color:#fff; text-decoration:underline; text-underline-offset:3px; }
.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 { margin-top:12px; color:#ffb88a; 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-purchase { position:static; padding:18px; }
 .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; }

.cart-page { max-width:1320px; min-height:70vh; margin:0 auto; padding:42px 5vw 72px; }
.cart-page [hidden] { display:none!important; }
.cart-page-heading { margin-bottom:26px; }
.cart-page-heading h1,.cart-order-status h1 { margin:7px 0; font-size:clamp(34px,4vw,50px); line-height:1.05; }
.cart-page-heading p:last-child { color:var(--muted); }
.cart-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(340px,.9fr); gap:22px; align-items:start; }
.cart-items-card,.cart-checkout-card,.cart-order-status { min-width:0; padding:24px; border:1px solid #303030; border-radius:16px; background:linear-gradient(150deg,#171717,#101010); box-shadow:0 18px 46px #0006; }
.cart-card-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-bottom:14px; border-bottom:1px solid #303030; }
.cart-card-heading h2,.cart-checkout-card h2 { font-size:22px; }
.cart-card-heading a,.cart-help a { color:#ff9a55; font-weight:750; text-underline-offset:3px; }
.cart-items { display:grid; }
.cart-item { display:grid; grid-template-columns:112px minmax(0,1fr) auto; gap:18px; align-items:center; padding:20px 0; border-bottom:1px solid #303030; }
.cart-item:last-child { border-bottom:0; }
.cart-item-image,.cart-item-placeholder { width:112px; height:112px; border-radius:10px; background:#f2f2f2; }
.cart-item-image { object-fit:contain; padding:5px; }
.cart-item-placeholder { display:grid; place-items:center; padding:12px; color:#555; font-size:12px; text-align:center; }
.cart-item-name { margin:0 0 6px; font-size:17px; line-height:1.35; }
.cart-item-variant { margin:0 0 8px; color:#bbb; font-size:14px; }
.cart-item-unit { color:#ddd; font-size:14px; }
.cart-item-price { margin-top:8px; font-weight:850; }
.cart-item-controls { display:flex; align-items:center; gap:8px; }
.cart-quantity-control { display:flex; align-items:center; gap:0; border:1px solid #555; border-radius:9px; overflow:hidden; }
.cart-quantity-control button { display:grid; place-items:center; width:38px; height:40px; border:0; background:#202020; color:#fff; font-size:22px; line-height:1; cursor:pointer; }
.cart-quantity-control button:hover:not(:disabled) { background:#3a2417; }
.cart-quantity-control button:disabled { color:#666; cursor:not-allowed; }
.cart-quantity { min-width:36px; text-align:center; font-weight:800; }
.cart-remove { display:block; margin-top:8px; padding:0; border:0; background:none; color:#ff9a55; font:inherit; font-size:13px; font-weight:750; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.cart-checkout-card { position:sticky; top:96px; }
.cart-totals { display:grid; gap:12px; margin:18px 0 12px; }
.cart-totals>div { display:flex; justify-content:space-between; gap:12px; color:#ddd; }
.cart-totals strong { text-align:right; }
.cart-totals .cart-total { margin-top:5px; padding-top:14px; border-top:1px solid #3a3a3a; color:#fff; font-size:20px; font-weight:900; }
.cart-total-note { margin:0 0 20px; color:#aaa; font-size:13px; line-height:1.5; }
.cart-address-form { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding-top:18px; border-top:1px solid #333; }
.cart-address-form h3 { grid-column:1/-1; font-size:18px; }
.cart-address-form label { display:grid; gap:6px; min-width:0; color:#ddd; font-size:13px; font-weight:700; }
.cart-address-form label span { color:#999; font-weight:400; }
.cart-address-form input,.cart-address-form select { width:100%; min-width:0; min-height:44px; padding:9px 11px; border:1px solid #4a4a4a; border-radius:7px; background:#101010; color:#fff; font:inherit; }
.cart-address-form input:focus,.cart-address-form select:focus { outline:2px solid #ff7b1f; outline-offset:1px; }
.cart-address-form .cart-address-wide { grid-column:1/-1; }
.cart-checkout-message { min-height:24px; margin:16px 0; color:#ffd0a8; font-size:14px; line-height:1.5; white-space:pre-line; }
.cart-checkout-card .btn-paypal { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:54px; padding:12px 20px; border:0; border-radius:999px; background:#ffc439; color:#111820; font:700 17px Arial,Helvetica,sans-serif; cursor:pointer; box-shadow:0 3px 8px #0005; }
.cart-checkout-card .btn-paypal:hover { background:#f2ba36; }
.cart-checkout-card .btn-paypal img { width:31px; height:31px; object-fit:contain; }
.cart-empty { max-width:620px; margin:44px auto; padding:52px 24px; border:1px solid #303030; border-radius:18px; background:#141414; text-align:center; }
.cart-empty-icon { margin-bottom:12px; font-size:42px; }
.cart-empty h2 { margin-bottom:8px; font-size:28px; }
.cart-empty p { margin-bottom:22px; color:#bbb; }
.cart-shop-button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 22px; border:0; border-radius:9px; background:#ff6a00; color:#111!important; font:inherit; font-weight:900; text-decoration:none; cursor:pointer; }
.cart-shop-button:hover { background:#ff8533; }
.cart-order-status { max-width:800px; margin:0 auto 24px; }
.cart-order-status .btn-paypal { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:52px; margin:8px 8px 8px 0; padding:12px 24px; border:0; border-radius:999px; background:#ffc439; color:#111820; font:700 17px Arial,Helvetica,sans-serif; cursor:pointer; }
.cart-order-status .btn-paypal img { width:30px; height:30px; object-fit:contain; }
.cart-order-status .btn-remove,.cart-order-status .btn-buy { margin:8px 8px 8px 0; }
.order-summary-lines { margin:20px 0; padding:18px; border-radius:10px; background:#0b0b0b; color:#ddd; line-height:1.7; }
.cart-tracking a { color:#ff9a55; }
.cart-order-history { max-width:800px; margin:22px auto; color:#ccc; }
.cart-order-history summary { cursor:pointer; font-weight:750; }
.cart-order-history button { margin:8px 8px 0 0; }
.cart-help { margin-top:24px; color:#aaa; text-align:center; font-size:14px; }
@media(max-width:900px) { .cart-layout { grid-template-columns:1fr; } .cart-checkout-card { position:static; } }
@media(max-width:560px) { .cart-page { padding:28px 14px 52px; } .cart-items-card,.cart-checkout-card,.cart-order-status { padding:17px; } .cart-item { grid-template-columns:76px minmax(0,1fr); gap:12px; align-items:start; } .cart-item-image,.cart-item-placeholder { width:76px; height:82px; } .cart-item-controls { grid-column:2; } .cart-card-heading { align-items:flex-start; flex-direction:column; gap:6px; } .cart-address-form { gap:10px; } }
