.photo-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 28px;
}

.photo-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: var(--paper);
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 3px 12px rgba(23, 33, 27, .05);
  transition: transform .18s, box-shadow .18s;
}

.photo-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow);
}

.photo-card img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: #e5e8e2;
}

.photo-card > span {
  display: block;
  padding: 12px 14px 14px;
}

.photo-card strong,
.photo-card small {
  display: block;
}

.photo-card strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.photo-card small {
  color: var(--muted);
  margin-top: 2px;
}

@media (max-width: 760px) {
  .photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 440px) {
  .photo-grid { grid-template-columns: 1fr; }
}
