/* Grid */
.nw-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 1rem;
}
@media (min-width: 768px) { .nw-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px) { .nw-grid { grid-template-columns: repeat(4, 1fr); } }

/* Card */
.nw-card { border: 1px solid var(--border-color, #eaeaea); border-radius: 1rem; overflow: hidden; background: #fff; display:flex; flex-direction:column; }
.nw-imgwrap { position: relative; display:block; aspect-ratio: 1/1; overflow:hidden; }
.nw-img { width:100%; height:100%; object-fit:cover; transition: transform .25s ease, opacity .25s ease; position:absolute; top:0; left:0; }
.nw-img.base { opacity: 1; transform: scale(1.0); }
.nw-img.hover { opacity: 0; }
.nw-imgwrap:hover .nw-img.base { opacity:.0; transform: scale(1.05); }
.nw-imgwrap:hover .nw-img.hover { opacity: 1; }

.nw-badge { position:absolute; top:.5rem; left:.5rem; background:#111; color:#fff; font-size:.75rem; padding:.25rem .5rem; border-radius:.5rem; }
.nw-body { padding: .75rem .75rem 1rem; display:flex; flex-direction:column; gap:.5rem; }
.nw-title { font-size:.95rem; font-weight:600; color:inherit; text-decoration:none; }
.nw-title:hover { text-decoration:underline; }
.nw-actions { display:flex; gap:.5rem; align-items:center; }
.nw-wish.active { color: #e91e63; }

.nw-filters .form-label { font-weight:600; }
