/* =============================================================================
   photowall.css — Mur de photos animé (voir assets/js/photowall.js)
   ============================================================================= */

.photowall-grid {
  display: grid;
  grid-template-columns: repeat(var(--photowall-cols, 4), 1fr);
  grid-template-rows: repeat(var(--photowall-rows, 3), 1fr);
  gap: 3px;
  width: 100%;
  height: 100%;
  min-height: 320px;
  border-radius: 8px;
  overflow: hidden;
}

.photowall-cell {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  border: none;
  padding: 0;
  margin: 0;
  cursor: zoom-in;
  overflow: hidden;
  background: #1b2735;
}

.photowall-cell img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 1;
  transition: opacity 0.65s ease;
}

.photowall-cell img.photowall-incoming {
  opacity: 0;
}
.photowall-cell img.photowall-incoming.photowall-visible {
  opacity: 1;
}
.photowall-cell img.photowall-outgoing {
  opacity: 0;
}

.photowall-cell::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0);
  transition: background 0.15s ease;
  pointer-events: none;
}
.photowall-cell:hover::after {
  background: rgba(0, 0, 0, 0.18);
}
.photowall-cell:hover img {
  transform: scale(1.04);
}
.photowall-cell img {
  transition: opacity 0.65s ease, transform 0.3s ease;
}

.photowall-empty,
.photowall-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 320px;
  width: 100%;
  height: 100%;
  color: rgba(255, 255, 255, 0.5);
  font-size: 13px;
  background: #1b2735;
  border-radius: 8px;
}

@media (max-width: 700px) {
  .photowall-grid { min-height: 240px; }
  .photowall-empty, .photowall-loading { min-height: 240px; }
}
