.npw-grid {
    display: grid;
    gap: 20px;
}
.npw-grid.npw-cols-1 { grid-template-columns: 1fr; }
.npw-grid.npw-cols-2 { grid-template-columns: repeat(2, 1fr); }
.npw-grid.npw-cols-3 { grid-template-columns: repeat(3, 1fr); }
.npw-grid.npw-cols-4 { grid-template-columns: repeat(4, 1fr); }

.npw-item { overflow: hidden; }
.npw-link { display: block; text-decoration: none; color: inherit; }

.npw-image-wrap {
    overflow: hidden;
}
.npw-image-wrap img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.4s ease, opacity 0.3s ease;
}
.npw-item:hover .npw-image-wrap img {
    transform: scale(1.05);
}
.npw-image-wrap.npw-fixed-ratio {
    position: relative;
    overflow: hidden;
    height: 0;
}
.npw-image-wrap.npw-fixed-ratio img {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    object-fit: cover;
}
.npw-title {
    margin: 10px 0 0;
    font-size: 1.1em;
}
.npw-excerpt {
    margin: 6px 0 0;
    font-size: 0.9em;
    opacity: 0.75;
}
@media (max-width: 768px) {
    .npw-grid.npw-cols-3,
    .npw-grid.npw-cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .npw-grid.npw-cols-2,
    .npw-grid.npw-cols-3,
    .npw-grid.npw-cols-4 { grid-template-columns: 1fr; }
}

/* ── MASONRY ── */
.npw-masonry {
    display: block;
    column-gap: 20px;
}
.npw-masonry.npw-cols-1 { column-count: 1; }
.npw-masonry.npw-cols-2 { column-count: 2; }
.npw-masonry.npw-cols-3 { column-count: 3; }
.npw-masonry.npw-cols-4 { column-count: 4; }

.npw-masonry .npw-item {
    break-inside: avoid;
    margin-bottom: 20px;
}

@media (max-width: 768px) {
    .npw-masonry.npw-cols-3,
    .npw-masonry.npw-cols-4 { column-count: 2; }
}
@media (max-width: 480px) {
    .npw-masonry.npw-cols-2,
    .npw-masonry.npw-cols-3,
    .npw-masonry.npw-cols-4 { column-count: 1; }
}
