/* =============================
   Современные стильные фото
   ============================= */

.photo-section {
  padding-top: 20px;
  padding-bottom: 60px;
}

.photo-section h4 {
    padding-top: 80px;
    padding-bottom: 5px;
}


.photo-grid {
  display: grid;
  gap: 28px;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  align-items: start; /* ключевой момент: карточки не тянутся по высоте соседних */
}

/* Фото-карточка */
.photo-item {
  position: relative;
  overflow: hidden;
  border-radius: 14px;
  background: #f7f7f7;
  display: inline-block; /* чтобы блок обтекал изображение, не растягиваясь */
  transition: transform .35s ease, box-shadow .35s ease;
  cursor: zoom-in;
}

/* Фото */
.photo-item img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform .45s ease;
}

/* Hover эффект — Apple style */
.photo-item:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(0,0,0,0.12);
}

.photo-item:hover img {
  transform: scale(1.08);
}

/* Тонкий градиент сверху — лёгкий premium-эффект */
.photo-item::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,0.04),
    rgba(0,0,0,0)
  );
  pointer-events: none;
}



.photo-figure {
    padding-bottom: 30px;
}

.photo-section figure {
    margin-top: 10px;    
    margin-bottom: 30px;
}


.photo-section figure figcaption, .description-foto {
  font-family: "Lora", Georgia, serif;
  font-size: 16px;
  color: #555;
  font-style: italic;
  margin-top: 10px;
  line-height: 1.55;
  letter-spacing: 0.02em;
}



.photo-section figure figcaption p, .description-foto {
  font-size: 16px;
  line-height: 1.55;
  margin-bottom: 8px;
}


.photo-section figure figcaption p:last-child {
  margin-bottom: 0;
}