#listings { background: var(--bg); }

.filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 32px;
}

.filter-btn {
  background: var(--surface);
  border: 1px solid var(--border-sub);
  color: var(--text-sec);
  font-family: 'Montserrat', sans-serif;
  font-size: .78rem;
  font-weight: 600;
  padding: 7px 16px;
  border-radius: var(--r-pill);
  cursor: pointer;
  transition: all .2s;
}

.filter-btn:hover,
.filter-btn.active {
  background: rgba(99,207,73,.1);
  border-color: var(--accent);
  color: var(--accent);
}

.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
}

.portfolio-card {
  background: var(--surface);
  border: 1px solid var(--border-sub);
  border-radius: var(--r-md);
  overflow: hidden;
  position: relative;
  transition: transform .2s, border-color .2s;
  cursor: default;
}

.portfolio-card:hover {
  transform: translateY(-4px);
  border-color: var(--border-str);
}

.portfolio-img {
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
  display: block;
}

.portfolio-info { padding: 14px 16px; }
.portfolio-info h4 { font-size: .88rem; font-weight: 700; margin-bottom: 4px; }
.portfolio-info p { font-size: .75rem; color: var(--text-sec); }

.portfolio-info .tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.portfolio-info .tag {
  background: rgba(99,207,73,.08);
  color: var(--accent-hover);
  font-size: .68rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: var(--r-pill);
  border: 1px solid rgba(99,207,73,.1);
}

.portfolio-cta {
  text-align: center;
  margin-top: 40px;
}
