/* ---------- Gaya tambahan di atas Bootstrap ---------- */
body { background-color: #f5f6f8; }

main { min-height: 70vh; }

.card-product {
    border: 0;
    box-shadow: 0 1px 3px rgba(16, 24, 40, .08);
    transition: transform .15s ease, box-shadow .15s ease;
}
.card-product:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(16, 24, 40, .12);
}
.card-product .product-img {
    width: 100%;
    height: 190px;
    object-fit: cover;
    border-radius: .5rem .5rem 0 0;
    background: #eef1f4;
}
.product-thumb {
    width: 56px;
    height: 56px;
    object-fit: cover;
    border-radius: .4rem;
    background: #eef1f4;
}
.product-thumb-lg {
    width: 100%;
    max-height: 420px;
    object-fit: contain;
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: .5rem;
}
.price {
    color: #0b57d1;
    font-weight: 700;
}
.store-pill {
    font-size: .78rem;
    color: #555;
}
.upload-box { border: 1px dashed #ced4da; border-radius: .5rem; padding: 1rem; background: #fff; }
.upload-box img { max-height: 180px; object-fit: cover; border-radius: .4rem; }

.qty-group {
    flex-wrap: nowrap;
    width: 150px;
    margin-inline: auto;
}
.qty-group .form-control { max-width: 52px; padding-inline: .25rem; text-align: center; }
.qty-group .btn { padding-inline: .5rem; flex: 0 0 auto; }

.nav-pills .nav-link.active { background: #0b57d1; }

.table > :not(caption) > * > * { vertical-align: middle; }

.checkout-summary { position: sticky; top: 88px; }

.badge-soft { background: #eef4ff; color: #0b57d1; }

.stat-card .display-6 { font-size: 1.6rem; }

footer a:hover { text-decoration: underline !important; }

@media (max-width: 575.98px) {
    .card-product .product-img { height: 155px; }
}
