/* Product cards, grids, category tiles */
.product-card { border-radius: 12px; overflow: hidden; transition: box-shadow .15s ease, transform .15s ease; }
.product-card:hover { transform: translateY(-2px); box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.08) !important; }
.product-card-img { background: #f6f7f9; }
.product-card-img img { width: 100%; height: 100%; }
.product-card-title { font-size: .95rem; font-weight: 500; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em; }
.category-tile img { width: 100%; height: 100%; }
.category-tile:hover .small { color: var(--store-primary); }

.bg-store-secondary { background: var(--store-secondary) !important; color: #fff; }
.product-badges { position: absolute; top: 8px; left: 8px; display: flex; flex-direction: column; gap: 4px; width: auto; height: auto; }
.product-badges .badge { font-weight: 600; }
.color-dot { display: inline-block; width: 12px; height: 12px; border-radius: 50%; border: 1px solid #ccc; vertical-align: -1px; margin-right: 4px; }
.search-suggest { position: absolute; top: 100%; left: 0; right: 0; z-index: 1060; max-height: 360px; overflow: auto; }
.product-scroller { scroll-snap-type: x mandatory; }
.product-scroller > * { scroll-snap-align: start; }
.option-card { border: 1px solid #e5e7eb; border-radius: 10px; padding: 12px; cursor: pointer; }
.option-card:has(input:checked) { border-color: var(--store-primary); background: color-mix(in srgb, var(--store-primary) 5%, #fff); }
.step-no { display: inline-flex; width: 24px; height: 24px; border-radius: 50%; background: var(--store-primary); color: #fff; font-size: .8rem; align-items: center; justify-content: center; margin-right: 6px; }
.success-icon, .failed-icon { width: 72px; height: 72px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 2.2rem; color: #fff; }
.success-icon { background: #16a34a; } .failed-icon { background: #dc2626; }
.filter-panel .form-check { margin-bottom: .25rem; }
@media (min-width: 992px) { .offcanvas-lg .offcanvas-header { display: none; } }

/* Wishlist heart */
.product-card { position: relative; }
.card-wishlist { position: absolute; top: 8px; right: 8px; z-index: 2; width: 34px; height: 34px; padding: 0; box-shadow: 0 1px 4px rgba(0,0,0,.12); }
.wishlist-btn { width: 40px; height: 40px; padding: 0; flex-shrink: 0; }
.card-wishlist.wishlist-btn { width: 34px; height: 34px; }
.wishlist-btn.saved, .wishlist-btn:hover { color: #dc3545; }

/* Account pages */
.auth-page { max-width: 480px; }
.account-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--store-primary); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 600; flex-shrink: 0; }
.account-nav .list-group-item.active { background: color-mix(in srgb, var(--store-primary) 10%, #fff); color: var(--store-primary); border-color: rgba(0,0,0,.125); font-weight: 600; }
.min-w-0 { min-width: 0; }

/* Star rating input */
.star-input { display: inline-flex; flex-direction: row-reverse; gap: 2px; }
.star-input input { position: absolute; opacity: 0; pointer-events: none; }
.star-input label { font-size: 1.8rem; line-height: 1; color: #d1d5db; cursor: pointer; }
.star-input label:hover, .star-input label:hover ~ label, .star-input input:checked ~ label { color: #f59e0b; }
.star-input input:focus-visible + label { outline: 2px solid var(--store-primary); border-radius: 4px; }
.border-dashed { border-style: dashed !important; }
