.masonry {
  columns: 1;
}

@media screen and (min-width : 360px) and (max-width:640px) {
  .masonry {
    columns: 1;
  }
}

@media screen and (min-width : 641px) and (max-width:1366px) {
  .masonry {
    columns: 3;
    column-gap: 8px;
  }
}

@media only screen and (min-width: 1370px) and (max-width: 1605px) {
  .masonry {
    columns: 4;
    column-gap: 16px;
  }
}

.masonry .grid {
  display: inline-block;
  margin-bottom: 16px;
  position: relative;
}
.masonry .grid:before {
  border-radius: 5px;
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.2);
}
.masonry .grid img {
  width: 100%;
  border-radius: 5px;
}
.masonry .grid__title {
  font-size: 28px;
  font-weight: bold;
  margin: 0px 0px 10px 0px;
}
.masonry .grid__author {
  font-size: 14px;
  font-weight: 300;
}
.masonry .grid__link {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.masonry .grid__body {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  padding: 30px 30px;
  color: #fff;
  display: flex;
  flex-direction: column;
}
.masonry .grid__tag {
  background-color: rgba(255, 255, 255, 0.8);
  color: #333;
  border-radius: 5px;
  padding: 5px 15px;
  margin-bottom: 5px;
}

.mt-auto {
  margin-top: auto;
}