/* One compact, flow-based component. Actions always follow name and price. */
.np-product { min-width:0; display:flex; flex-direction:column; overflow:hidden; border:1px solid #dce6ee; border-radius:18px; background:#fff; box-shadow:0 3px 14px #0e355c08; transition:box-shadow .18s,border-color .18s; }
.np-product:hover { border-color:#b7cee2; box-shadow:0 7px 22px #0e355c12; }
.np-product .np-product__media { position:relative; display:block; height:190px; margin:0; background:#f4f8ff; overflow:hidden; }
.np-product .np-product__media img { display:block; width:100%; height:100%; padding:8px; object-fit:contain; object-position:center; mix-blend-mode:normal; }
.np-product .np-product__weight { position:absolute; top:12px; left:12px; background:#fff; color:#0c3c75; border-radius:7px; padding:5px 9px; font:800 12px/1.2 "Be Vietnam Pro",sans-serif; box-shadow:0 2px 7px #1536500b; }
.np-product .np-product__body { display:flex; flex:1; flex-direction:column; gap:10px; padding:15px; text-align:left; }
.np-product .np-product__brand { display:flex; align-items:center; gap:5px; color:#0d4583; font:800 10px/1.4 "Be Vietnam Pro",sans-serif; }
.np-product__brand svg { flex:none; width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.9; }
.np-product h3.np-product__name { display:block; min-height:57px; max-height:none; margin:0; overflow:visible; font:700 14px/1.4 "Be Vietnam Pro",sans-serif; text-align:left; color:#172c3d; }
.np-product .np-product__name a { color:inherit; text-decoration:none; }
.np-product .np-product__name a:hover { color:#c83c00; }
.np-product .np-product__price { margin-top:auto; color:#db3e00; font:800 22px/1.25 "Be Vietnam Pro",sans-serif; letter-spacing:-.6px; white-space:nowrap; }
.np-product .np-product__unavailable { color:#8a4029; font-size:12px; }
.np-product .np-product__actions { display:grid; grid-template-columns:minmax(0,1fr) 44px; gap:10px; }
.np-product .np-product__actions button { position:static; display:flex; align-items:center; justify-content:center; min-width:0; height:44px; margin:0; padding:0 9px; opacity:1; border-radius:11px; cursor:pointer; transform:none; font:700 13px/1 "Be Vietnam Pro",sans-serif; }
.np-product .np-product__buy { border:1px solid #ff5100; background:#ff5100; color:#fff; }
.np-product .np-product__buy:hover { background:#e44700; }
.np-product .np-product__add { border:1px solid #f8d7c7; color:#cc480c; background:#fff6f0; }
.np-product .np-product__add:hover { background:#ffebdf; }
.np-product .np-product__add svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; }
.np-product .np-product__actions button:focus-visible { outline:3px solid #1563b1; outline-offset:3px; }
.np-product .np-product__actions button:disabled { opacity:.5; cursor:not-allowed; }
.storefront-v24 .featured-product-grid,.storefront-v24 .commerce-product-grid,.storefront-v24 .commerce-product-grid:not(:empty) { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
.shop-body #detailRecommendations { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
@media(max-width:1100px) { .storefront-v24 .featured-product-grid,.storefront-v24 .commerce-product-grid,.storefront-v24 .commerce-product-grid:not(:empty) { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:850px) { .storefront-v24 .featured-product-grid,.storefront-v24 .commerce-product-grid,.storefront-v24 .commerce-product-grid:not(:empty),.shop-body #detailRecommendations { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:620px) {
 .storefront-v24 .featured-product-grid,.storefront-v24 .commerce-product-grid,.storefront-v24 .commerce-product-grid:not(:empty),.shop-body #detailRecommendations { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .np-product { border-radius:14px; }
 .np-product .np-product__media { height:auto; aspect-ratio:1; }
 .np-product .np-product__body { padding:10px; gap:8px; }
 .np-product .np-product__brand { font-size:8px; gap:3px; }
 .np-product__brand svg { width:12px; height:12px; }
 .np-product h3.np-product__name { font-size:12px; min-height:51px; }
 .np-product .np-product__price { font-size:19px; }
 .np-product .np-product__actions { grid-template-columns:minmax(0,1fr) 40px; gap:6px; }
 .np-product .np-product__actions button { height:42px; padding:0 4px; font-size:12px; border-radius:9px; }
}
