/* ===== PROJECTS PAGE ===== */
/* Project grid, filters, masonry layout, and project item styles */

/* ===== PROJECT FILTERS ===== */
.project-filters {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  margin-bottom: var(--masonry-gap);
}

.project-filters button {
  color: var(--text-color);
  border: none;
  cursor: pointer;
  background: none;
}

.has-hover .project-filters button:hover {
  font-weight: bold;
}

.project-filters button.active {
  color: var(--accent-color);
}

/* ===== PROJECT GRID & MASONRY ===== */
.projects-grid {
  gap: var(--masonry-gap);
}

.projects-grid .masonry-column {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--masonry-gap);
  margin-bottom: var(--bottom-gap);
}

/* ===== PROJECT ITEMS ===== */
.project-item {
  width: 100%;
  margin-bottom: 0;
}

.project-item figure {
  margin: 0;
  width: 100%;
  display: block;
}

.project-item img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  transition: opacity var(--transition-time) ease;
}

/* ===== PROJECT HOVER EFFECTS ===== */
.has-hover .project-wrapper:hover .project-caption {
  opacity: 1;
}

.has-hover .project-wrapper:hover img {
  opacity: 0.3;
}

.project-caption {
  user-select: none;
  opacity: 0;
  position: absolute;
  font-style: normal;
  font-weight: 100;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  z-index: 10;
  transition: all var(--transition-time) ease;
}

.project-caption h1,
.project-caption h2,
.project-caption h3 {
  color: var(--text-color);
}

/* ===== NO IMAGE PLACEHOLDER ===== */
.no-image {
  width: 100%;
  min-height: 200px;
  background-color: #f0f0f0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #666;
}
