/* ============================================================
   ФОТОГАЛЕРЕЯ (/about/photo/) — мозаика или сетка
   ============================================================ */

.rv-photo-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-4);
}

.rv-photo-card {
  position: relative;
  margin: 0;
  padding: 0.5rem;
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  background: var(--color-paper-white);
  cursor: zoom-in;
  transition: transform var(--transition-ui), box-shadow var(--transition-ui);
}

.rv-photo-card:hover { transform: translateY(-4px) rotate(-0.4deg); box-shadow: var(--shadow-paper); }

.rv-photo-card:nth-child(3n) { transform: rotate(0.5deg); }

.rv-photo-card__img-wrap { overflow: hidden; border-radius: var(--radius-sm); background: var(--color-blue); }

.rv-photo-card__img-wrap img {
  display: block;
  width: 100%;
  height: 13rem;
  object-fit: cover;
  transition: transform var(--transition-ui);
}

.rv-photo-card:hover .rv-photo-card__img-wrap img { transform: scale(1.03); }

/* мозаика: первое фото крупное */
.rv-photo-grid--mosaic .rv-photo-card--feature {
  grid-column: span 2;
  grid-row: span 2;
  transform: rotate(-0.5deg);
}

.rv-photo-grid--mosaic .rv-photo-card--feature .rv-photo-card__img-wrap img { height: 100%; min-height: 26rem; }

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

@media (max-width: 640px) {
  .rv-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }

  .rv-photo-grid--mosaic .rv-photo-card--feature { grid-column: span 2; grid-row: auto; }

  .rv-photo-grid--mosaic .rv-photo-card--feature .rv-photo-card__img-wrap img { min-height: 15rem; height: 15rem; }

  .rv-photo-card__img-wrap img { height: 10rem; }
}
