/* Reset CSS */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  display: inline-block;
}
/* Main CSS */
.grid-wrapper > div {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  display: inline-block;
  cursor: pointer;
  overflow: hidden;
}
.grid-wrapper > div > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 5px;
}
.grid-wrapper {
  display: grid;
  grid-gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  grid-auto-rows: 320px;
  grid-auto-flow: dense;
  margin-top: 100px;
}
.grid-wrapper .wide {
  grid-column: span 2;
}
.grid-wrapper .tall {
  grid-row: span 2;
}
.grid-wrapper .big {
  grid-column: span 2;
  grid-row: span 2;
}
.grid-wrapper div::before {
  font-family: 'lg';
  content: "\e311"; /* Unicode for a magnifying glass */
  font-size: 32px;
  color: white;
  /*    background: rgba(0, 0, 0, 0.6);
    padding: 10px;*/
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}
.grid-wrapper div:hover::before {
  opacity: 1;
  width: 50px;
  height: 50px;
  z-index: 999;
  align-items: center;
  display: flex;
}
.grid-wrapper div img {
  display: block;
  width: 100%;
  transition: transform 0.3s ease-in-out;
}
.grid-wrapper div:hover img {
  transform: scale(1.05);
}
@media screen and (max-width: 767px) {
  .grid-wrapper {
    grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
    grid-auto-rows: 290px;
  }
  .grid-wrapper .tall {
    grid-row: inherit;
  }
}