/* ===================================================
   ROSE EVENTS — Portfolio Grid + Filters
   =================================================== */
.portfolio-section { padding: 6rem 0; background: var(--secondary); }
.portfolio-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; margin-bottom: 3rem; }
.filter-btn { padding: 0.5rem 1.5rem; font-family: var(--font-sans); font-size: 0.8125rem; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; border: 1px solid rgba(155,44,79,0.2); border-radius: 9999px; background: transparent; color: var(--gray-600); cursor: pointer; transition: all 300ms; }
.filter-btn:hover, .filter-btn.active { background: var(--accent); color: var(--white); border-color: var(--accent); }
.portfolio-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
@media (min-width: 768px) { .portfolio-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .portfolio-grid { grid-template-columns: repeat(4, 1fr); gap: 1.25rem; } }
.portfolio-item { position: relative; border-radius: 12px; overflow: hidden; cursor: pointer; aspect-ratio: 4/5; }
.portfolio-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s; }
.portfolio-item:hover img { transform: scale(1.08); }
.portfolio-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(17,17,17,0.7), transparent); opacity: 0; transition: opacity 400ms; display: flex; flex-direction: column; justify-content: flex-end; padding: 1.5rem; }
.portfolio-item:hover .portfolio-overlay { opacity: 1; }
.portfolio-overlay h4 { font-family: var(--font-serif); font-size: 1.25rem; color: var(--white); margin-bottom: 0.25rem; }
.portfolio-overlay span { font-size: 0.75rem; color: rgba(255,255,255,0.7); letter-spacing: 1px; text-transform: uppercase; }
/* Featured large items */
.portfolio-item.featured { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
@media (max-width: 767px) { .portfolio-item.featured { grid-column: span 1; grid-row: span 1; } }
/* Hidden items during filter */
.portfolio-item.hidden { display: none; }
.portfolio-item.show { animation: fadeInUp 0.5s ease-out forwards; }

/* View all button */
.portfolio-view-all { text-align: center; margin-top: 3rem; }
