 .shop-container {
     max-width: 1200px;
     margin: auto;
     padding: 24px;
 }

 /* Breadcrumb */
 .breadcrumb {
     font-size: 13px;
     margin-bottom: 24px;
     color: #666;
 }

 .breadcrumb a {
     color: var(--brand-color);
     text-decoration: none;
 }

 .breadcrumb span {
     margin: 0 6px;
 }

 /* Grid */
 .product-grid {
     display: grid;
     grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
     gap: 20px;
 }

 /* Card */
 .product-card {
     background: #fff;
     border-radius: 14px;
     box-shadow: 0 8px 20px rgba(0, 0, 0, .08);
     overflow: hidden;
     display: flex;
     flex-direction: column;
     transition: transform .2s ease, box-shadow .2s ease;
 }

 .product-card:hover {
     transform: translateY(-4px);
     box-shadow: 0 12px 28px rgba(0, 0, 0, .12);
 }

 .product-card img {
     inline-size: 100%;
     aspect-ratio: 1;
     object-fit: cover;
     background: #f5f5f5;
 }

 /* Body */
 .product-body {
     padding: 16px;
     display: flex;
     flex-direction: column;
     gap: 8px;
     flex: 1;
 }

 .product-title {
     font-size: 15px;
     font-weight: 600;
     line-height: 1.7;
 }

 .product-desc {
     font-size: 13px;
     color: #666;
     line-height: 1.6;
 }

 .product-price {
     font-size: 16px;
     font-weight: 700;
     color: #1a7f37;
     margin-top: 6px;
 }

 .product-stock {
     font-size: 13px;
 }

 .in-stock {
     color: #0a7d2c;
 }

 .out-of-stock {
     color: #c62828;
 }

 /* Button */
 .add-to-cart {
     margin-top: auto;
     border: none;
     padding: 10px;
     border-radius: 10px;
     font-size: 14px;
     cursor: pointer;
     transition: .2s;
 }

 .add-to-cart.enabled {
     background: var(--brand-color);
     color: #fff;
 }

 .add-to-cart.enabled:hover {
     opacity: .9;
 }

 .add-to-cart.disabled {
     background: #e0e0e0;
     color: #777;
     cursor: not-allowed;
 }

 .buy-product {
     color: inherit;

 }

 .buy-product:hover {
     text-decoration: none;
     color: inherit;
 }


 .product-price {
     margin-top: 10px;
 }

 .price-old {
     color: #999;
     text-decoration: line-through;
     font-size: 13px;
 }

 .price-new {
     color: var(--brand-color);
     font-weight: bold;
     font-size: 16px;
 }

 .price-normal {
     font-weight: bold;
     font-size: 15px;
 }