.memory-wall{
  max-width: 1400px;
  margin: 10px auto;
  padding: 20px;

  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  grid-auto-rows: 220px;
  gap: 16px;

  grid-auto-flow: dense; 
}

/* tailles */
.memory-item.size1{
  grid-row: span 1;
  grid-column: span 1;
}

.memory-item.size2{
  grid-row: span 2;
  grid-column: span 1;
}

.memory-item.size3{
  grid-row: span 2;
  grid-column: span 2;
}

/* carte photo */
.memory-item{
  position: relative;
  overflow: hidden;
  border-radius: 14px;
  opacity: 0;
  transform: translateY(30px);
  transition: 0.8s ease;
}

.memory-item.visible{
  opacity: 1;
  transform: translateY(0);
}

.memory-item img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.6s ease;
}

/* overlay poétique */
.memory-overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.35);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 18px;
  color: white;
  opacity: 0;
  transition: 0.4s ease;
}

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

.memory-item:hover .memory-overlay{
  opacity: 1;
}

.memory-overlay h4{
  margin: 0;
  font-family: 'Playfair Display', serif;
  font-size: 18px;
}

.memory-overlay p{
  margin: 6px 0 0;
  font-family: 'Raleway', sans-serif;
  font-size: 13px;
  opacity: 0.9;
}

/* mobile */
@media(max-width: 768px){
  .memory-wall{
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 180px;
    gap: 12px;
    padding: 15px;
  }

  .memory-item.size3{
    grid-column: span 2;
  }

  .memory-overlay h4{
    font-size: 14px;
  }

  .memory-overlay p{
    font-size: 11px;
  }
}

@media(max-width: 480px){
  .memory-wall{
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 150px;
    gap: 8px;
    padding: 10px;
  }

  .memory-item.size3{
    grid-column: span 2;
    grid-row: span 1;
  }

  .memory-overlay h4{
    font-size: 12px;
  }

  .memory-overlay p{
    font-size: 10px;
  }
}


