/* Shared shopping UI: stable cards, navigation, discovery, and review checkout. */
:root { --shop-border: #303030; --shop-muted: #b4b4b4; }
.product-grid,.listing-grid,.related-products .product-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; align-items:stretch; }
.product-card,.listing-grid .product-card { display:flex; flex-direction:column; min-width:0; height:100%; border-radius:8px; background:#121212; }
.product-card:hover { transform:none; border-color:#666; box-shadow:none; }
.product-card .product-image { width:100%; aspect-ratio:1; flex:none; min-height:0; position:relative; }
.product-card .product-image-link { position:absolute; inset:0; width:100%; height:100%; }
.product-card .product-image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.product-card .product-info { display:flex; flex-direction:column; flex:1; padding:20px; gap:10px; }
.card-category,.dropdown-eyebrow,.shop-eyebrow { font-size:10px; font-weight:600; letter-spacing:1.8px; text-transform:uppercase; color:var(--shop-muted); }
.product-card .product-name { font-size:15px; line-height:1.45; min-height:44px; margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.product-card .product-price { font-size:15px; font-weight:600; color:#f2f2f2; margin:0 0 6px; }
.product-card .quick-shop { margin-top:auto; padding:11px 12px; width:100%; min-height:44px; font-size:11px; border-color:#555; position:relative; z-index:3; }
.product-card .product-badge { pointer-events:none; font-size:9px; padding:5px 9px; }
.gallery-main { width:100%; aspect-ratio:1; position:relative; min-height:0; }
.gallery-main > img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.gallery-main .gallery-zoom { z-index:2; }
.product-card .product-name a::after { z-index:1; }
.header .nav-left { gap:clamp(8px,1vw,20px); }
.header .nav-right,.header .nav-info { gap:clamp(8px,1vw,20px); }
.header .nav-link { font-size:12px; letter-spacing:.2px; white-space:nowrap; }
.nav-item { display:flex; align-items:center; position:relative; }
.nav-dropdown-toggle { width:24px; min-height:44px; border:0; background:none; color:#bbb; cursor:pointer; font-size:16px; }
.nav-item.open > .nav-dropdown-toggle { color:white; }
.nav-item.open > .nav-dropdown-toggle { transform:rotate(180deg); }
.nav-dropdown { position:absolute; top:calc(100% - 1px); left:0; width:252px; padding:22px; border:1px solid #363636; border-top:2px solid var(--red); background:#111; box-shadow:0 16px 40px #0009; z-index:1100; }
.nav-dropdown a { display:flex; align-items:center; min-height:44px; padding:8px 0; font-size:14px; color:#ddd; }
.nav-dropdown a:hover,.nav-dropdown a:focus-visible { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.nav-dropdown .dropdown-eyebrow { margin-bottom:12px; }
.snipcart-items-count { font-size:10px; min-width:16px; text-align:center; }
.collection-controls { display:flex; flex-wrap:wrap; align-items:end; gap:16px; margin-bottom:20px; padding-bottom:24px; border-bottom:1px solid var(--shop-border); }
.collection-controls label { display:grid; gap:6px; color:var(--shop-muted); font-size:12px; flex:1 1 160px; }
.collection-controls input,.collection-controls select,.shop-field input,.shop-field select { width:100%; min-height:46px; padding:11px 12px; background:#181818; border:1px solid #555; border-radius:4px; color:white; font:inherit; }
.collection-controls .filter-search { flex:2 1 250px; }
.collection-controls button { min-height:46px; padding:10px 16px; }
.collection-summary { display:flex; justify-content:space-between; align-items:center; margin:16px 0 24px; color:var(--shop-muted); font-size:13px; }
.collection-empty { text-align:center; padding:64px 20px; border:1px solid #333; border-radius:8px; }
.collection-empty p { margin:12px 0 24px; color:var(--shop-muted); }
.shop-dialog { color:#fff; background:#111; border:1px solid #444; border-radius:12px; padding:0; width:min(940px,calc(100% - 32px)); max-height:calc(100dvh - 40px); overflow:auto; }
.shop-dialog::backdrop { background:#000b; backdrop-filter:blur(4px); }
.dialog-top { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 24px; border-bottom:1px solid var(--shop-border); }
.dialog-top h2 { font-size:20px; }
.dialog-close { flex:none; width:44px; height:44px; border:1px solid #555; color:white; background:none; border-radius:50%; font-size:24px; cursor:pointer; }
.quick-layout { display:grid; grid-template-columns:1fr 1fr; }
.quick-image { aspect-ratio:1; width:100%; height:100%; object-fit:cover; background:#222; }
.quick-details { padding:32px; display:flex; flex-direction:column; gap:20px; }
.quick-details h3 { font-size:25px; line-height:1.25; }
.quick-price { font-size:23px; font-weight:600; }
.shop-field { display:grid; gap:8px; font-size:13px; }
.shop-field label { color:var(--shop-muted); }
.quick-details .btn { width:100%; }
.shop-help,.shop-notice { font-size:12px; color:var(--shop-muted); line-height:1.7; }
.shop-notice { padding:12px 0; }
.shop-status { font-size:13px; color:#ffc5c5; min-height:20px; }
.text-link { text-decoration:underline; text-underline-offset:4px; font-size:13px; }
.search-content { padding:24px; }
.search-input { width:100%; background:#181818; border:1px solid #666; border-radius:4px; padding:16px; color:white; font-size:18px; }
.search-results { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:20px; }
.search-result { display:grid; grid-template-columns:72px 1fr; align-items:center; gap:14px; padding:12px; background:#1b1b1b; border:1px solid #333; border-radius:6px; }
.search-result img { width:72px; height:72px; object-fit:cover; border-radius:4px; }
.search-result strong { display:block; font-size:13px; line-height:1.5; }
.search-result span { color:#bbb; font-size:12px; }
.shop-cart { position:fixed; inset:0 0 0 auto; margin:0; width:min(520px,100%); height:100dvh; max-height:100dvh; border-radius:0; border-width:0 0 0 1px; display:none; }
.shop-cart[open] { display:flex; flex-direction:column; }
.cart-lines { overflow:auto; flex:1; padding:0 24px; }
.cart-line { display:grid; grid-template-columns:86px minmax(0,1fr); gap:16px; padding:24px 0; border-bottom:1px solid var(--shop-border); }
.cart-line img { width:86px; height:108px; object-fit:cover; border-radius:4px; }
.cart-line-details { display:flex; flex-direction:column; gap:7px; min-width:0; }
.cart-line-name { font-size:14px; font-weight:600; line-height:1.4; }
.cart-line-variant { font-size:12px; color:var(--shop-muted); }
.cart-line-bottom { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-top:5px; }
.cart-quantity { display:flex; align-items:center; border:1px solid #555; border-radius:4px; }
.cart-quantity button { width:36px; height:36px; border:0; background:none; color:white; cursor:pointer; font-size:18px; }
.cart-quantity span { min-width:28px; text-align:center; font-size:13px; }
.cart-remove { align-self:start; border:0; padding:3px 0; background:none; color:#bbb; text-decoration:underline; cursor:pointer; font-size:11px; }
.cart-bottom { padding:24px; border-top:1px solid #444; background:#151515; }
.cart-subtotal { display:flex; align-items:center; justify-content:space-between; font-size:20px; font-weight:600; }
.cart-bottom .btn { margin-top:16px; width:100%; }
.shop-cart .dialog-close,.shop-cart .cart-quantity button,.shop-cart .cart-remove { margin-top:0; }
#snipcart { --color-default:#f5f5f5; --color-alt:#bbb; --bgColor-default:#111; --bgColor-alt:#1b1b1b; --borderColor-default:#444; --color-link:#e5b1b1; --bgColor-buttonPrimary:var(--red); --color-buttonPrimary:white; font-family:var(--font); }
.cart-empty { text-align:center; margin:auto; padding:56px 24px; }
.cart-empty p { margin:16px 0 28px; color:var(--shop-muted); }
.checkout-layout { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); }
.checkout-form,.checkout-review { padding:28px; }
.checkout-review { background:#1a1a1a; border-left:1px solid #333; }
.checkout-form { display:grid; gap:18px; }
.checkout-form fieldset { border:0; display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.checkout-form legend { padding-bottom:16px; font-size:16px; font-weight:600; }
.checkout-form .full-field { grid-column:1/-1; }
.checkout-review h3 { margin-bottom:20px; }
.checkout-summary-line { display:flex; justify-content:space-between; gap:18px; padding:12px 0; font-size:13px; border-bottom:1px solid #363636; }
.checkout-summary-line span:first-child { flex:1; }
.checkout-totals { display:grid; gap:12px; margin-top:24px; font-size:13px; }
.checkout-totals p { display:flex; justify-content:space-between; gap:12px; }
.checkout-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.checkout-success { padding:56px 28px; text-align:center; }
.checkout-success h3 { font-size:28px; margin-bottom:16px; }
.checkout-success p { max-width:540px; margin:0 auto 24px; color:var(--shop-muted); }
.review-banner { font-size:12px; background:#29251b; }
@media(min-width:1920px) { .product-grid,.listing-grid { grid-template-columns:repeat(5,minmax(0,1fr)); } }
@media(max-width:1200px) {
  .header .header-inner { grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); height:76px; }
  .header .nav-left,.header .nav-info { display:none; }
  .header .nav-right { grid-column:3; gap:4px; }
  .header .logo-img { width:60px; height:60px; }
  .header .mobile-menu-btn { display:flex; grid-column:1; grid-row:1; justify-self:start; }
  .mobile-nav:not([hidden]) { display:block; position:absolute; top:100%; left:0; right:0; background:#111; padding:16px 24px; max-height:calc(100dvh - 90px); overflow:auto; }
  .mobile-nav > a,.mobile-nav > .nav-item { border-bottom:1px solid #303030; }
  .mobile-nav > a { display:flex; min-height:44px; padding:10px 0; }
  .mobile-nav .nav-item { display:grid; grid-template-columns:1fr 44px; }
  .mobile-nav .nav-item > a { min-height:48px; padding:8px 0; }
  .mobile-nav .nav-dropdown-toggle { width:44px; }
  .mobile-nav .nav-dropdown { position:static; grid-column:1/-1; width:100%; border:0; border-top:1px solid #333; box-shadow:none; padding:8px 16px 16px; }
  .mobile-nav .dropdown-eyebrow { display:none; }
  .mobile-open .mobile-menu-btn svg { display:none; }
  .mobile-open .mobile-menu-btn::after { content:'\00d7'; font-size:30px; }
}
@media(max-width:1000px) { .product-grid,.listing-grid,.related-products .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; } }
@media(max-width:700px) {
  .quick-layout,.checkout-layout { grid-template-columns:1fr; }
  .quick-image { max-height:240px; aspect-ratio:4/3; object-position:center 35%; }
  .quick-details { padding:22px; gap:16px; }
  .checkout-review { border:0; border-top:1px solid #333; }
  .search-results { grid-template-columns:1fr; }
  .search-content,.checkout-form,.checkout-review { padding:20px; }
  .dialog-top { padding:14px 20px; }
}
@media(max-width:600px) {
  .product-grid,.listing-grid,.related-products .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .product-card .product-info { padding:12px; gap:8px; }
  .product-card .product-name { font-size:12px; min-height:36px; }
  .product-card .product-price { font-size:12px; }
  .product-card .quick-shop { font-size:9px; padding:8px 4px; }
  .card-category { font-size:8px; letter-spacing:1px; }
  .collection-controls { gap:12px; }
  .collection-controls label { flex-basis:calc(50% - 12px); }
  .collection-controls .filter-search { flex-basis:100%; }
  .header .icon-btn { padding:6px; }
  .checkout-form fieldset { grid-template-columns:1fr; }
}
