/* Basic reset */
.pf-wrapper { max-width:1200px; margin:0 auto; padding:30px 15px; font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial; }
.pf-filters { display:flex; gap:10px; margin-bottom:20px; flex-wrap:wrap; }
.pf-filter-btn { border:1px solid #ddd; background:#fff; padding:8px 14px; cursor:pointer; border-radius:6px; transition:all .15s ease; }
.pf-filter-btn:hover { transform:translateY(-2px); }
.pf-filter-btn.active { background:#111; color:#fff; border-color:#111; }

.pf-grid { display:grid; gap:18px; }
.pf-columns-2 .pf-grid { grid-template-columns: repeat(2, 1fr); }
.pf-columns-3 .pf-grid { grid-template-columns: repeat(3, 1fr); }
.pf-columns-4 .pf-grid { grid-template-columns: repeat(4, 1fr); }

/* Responsive */
@media (max-width: 900px) {
    .pf-columns-4 .pf-grid { grid-template-columns: repeat(3,1fr); }
    .pf-columns-3 .pf-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 600px) {
    .pf-columns-2 .pf-grid, .pf-columns-3 .pf-grid, .pf-columns-4 .pf-grid { grid-template-columns: 1fr; }
}

/* Item card */
.pf-item {
    background:#fff;
    border-radius:8px;
    overflow:hidden;
    box-shadow: 0 6px 22px rgba(16,24,40,0.06);
    transition: transform .22s cubic-bezier(.2,.9,.2,1), box-shadow .22s;
}
.pf-item:hover { transform: translateY(-6px); box-shadow: 0 18px 50px rgba(16,24,40,0.12); }

.pf-item-link { color:inherit; text-decoration:none; display:block; height:100%; }
.pf-thumbnail img { width:100%; height:240px; object-fit:cover; display:block; }
.pf-item-info { padding:12px 14px; }
.pf-title { margin:0 0 6px; font-size:1.05rem; }
.pf-excerpt { margin:0; color:#555; font-size:.95rem; }

/* Hidden state for filtered items */
.pf-item.is-hidden { display:none !important; }

/* fallback image placeholder */
.pf-no-thumb { height:240px; display:flex; align-items:center; justify-content:center; color:#888; background:#f4f4f4; }
