
/* RUST KING v0.4: interaction, layout and brand polish. Conservative CSS overrides. */
.product-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.product { min-height: 233px; padding: 12px; cursor: pointer; }
.product:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.product.wide { min-height: 233px; }
.product.tall { min-height: 478px; }
.product .asset img { height: 120px; max-width: 92%; }
.product.wide .asset img { height: 155px; max-width: 85%; }
.product .card-action { opacity: .9; transform: none; min-height: 33px; font-size: 11px; padding: 7px 9px; }
.product .card-action:hover { opacity: 1; }
.product .product-name { font-weight: 680; }
.asset.has-image .asset-fallback { display: none; }
.asset.image-broken .asset-fallback, .asset.no-image .asset-fallback { display: grid; }
.asset-fallback { font-size: unset; background: none; color: rgba(214,172,115,.45); }
.asset-fallback .crown-small { width: 52px; height: 40px; }
.crown-small svg { width: 17px; height: 17px; display: block; }
.crown-small { font-size: 0; flex: 0 0 auto; vertical-align: middle; }
.product.wide .product-bottom { max-width: 83%; }
.modal-open { overflow: hidden; }
.modal-backdrop { padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom)); }
.modal { overscroll-behavior: contain; max-height: min(90dvh, 800px); }
.modal-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; position: sticky; top: -25px; padding: 8px 0 12px; background: #1b1b1d; z-index: 4; }
.modal-title-area { flex: 1; min-width: 0; }
.modal-title-area h2 { margin: 8px 0 0; font-size: clamp(19px, 3vw, 24px); }
.modal-dismiss { flex: 0 0 40px; font-size: 26px; line-height: 1; }
.modal-product-art { height: 195px; display: grid; place-items: center; margin: 0 auto 12px; }
.modal-product-art .asset { width: 100%; height: 100%; display: grid; place-items: center; }
.modal-product-art .asset img { display: block; max-height: 190px; max-width: 96%; object-fit: contain; }
.modal-product-price { display: flex; gap: 9px; align-items: center; font-size: 20px; color: var(--gold); margin: 14px 0; }
.modal-product-price s { font-size: 13px; color: var(--muted); }
.modal-actions { flex-wrap: wrap; }
.browser-check { margin: 20px 0; display: grid; justify-items: center; gap: 11px; }
.browser-check .small { color: var(--soft); }
/* Reserve the larger formats for featured kits without making every item equal-sized. */
@media(max-width: 1240px) {
 .product-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
}
@media(max-width: 900px) {
 .product-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media(max-width: 620px) {
 .product-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 9px; }
 .product, .product.wide { min-height: 210px; padding: 10px; }
 .product.tall { grid-row: span 1; min-height: 210px; }
 .product.wide { grid-column: span 2; }
 .product .asset img { height: 105px; }
 .product.wide .asset img { height: 145px; }
 .product .card-action { min-height: 35px; padding: 6px; font-size: 10.5px; }
 .product.wide .product-bottom { max-width: 100%; }
 .product .price-row { flex-wrap: wrap; gap: 4px; }
 .product .count { font-size: 10px; }
 .modal { width: 100%; padding: 18px; max-height: 93dvh; }
 .modal-top { top: -18px; }
 .modal-actions .btn { flex: 1; }
 .modal-product-art { height: 160px; }
 .modal-product-art .asset img { max-height: 156px; }
}

/* Privacy: preference is stored locally, with analytics disabled by default. */
.cookie-banner { position: fixed; z-index: 85; left: 50%; bottom: 20px; transform: translateX(-50%); width: min(860px,calc(100% - 28px)); padding: 18px 20px; display: flex; align-items: center; gap: 22px; justify-content: space-between; border: 1px solid rgba(214,172,115,.25); background: #222024; color: #f0ece7; border-radius: 16px; box-shadow: 0 14px 70px rgba(0,0,0,.62); }
.cookie-banner p { color: #bab4ad; margin: 5px 0 8px; max-width: 540px; font-size: 12px; }
.cookie-banner a { color: #d6ac73; font-size: 12px; text-decoration: underline; }
.cookie-buttons { display: flex; gap: 8px; flex-shrink: 0; }
.cookie-buttons .btn { min-width: 130px; }
@media(max-width:650px){.cookie-banner{align-items:stretch;flex-direction:column;gap:12px;padding:15px;bottom:12px}.cookie-buttons{display:grid;grid-template-columns:1fr 1fr}.cookie-buttons .btn{min-width:0;white-space:normal;padding:9px}}
