main .section .featured-posts {
  display: flex;
  flex-direction: column;
  grid-gap: 20px;
}

main .section .featured-posts > .post {
  position: relative;
  overflow: hidden;
}

main .section .featured-posts img {
  width: 100%;
  height: 100%;
  min-height: 270px;
  max-height: 100%;
  object-fit: cover;
  vertical-align: middle;
}

main .section .featured-posts p {
  margin: 0;
}

main .section .featured-posts a {
  display: block;
}

main .section .featured-posts h3,
main .section .featured-posts .button-container {
  position: absolute;
  color: var(--color-white);
  text-align: center;
  left: 0;
  right: 0;
  font-size: 18px;
  max-width: 85%;
  margin: 0 auto;
  bottom: 37px;
}

main .section .featured-posts h3 a,
main .section .featured-posts .button-container a {
  color: inherit;
  display: inline;
}

main .section .featured-posts .post .button-container,
main .section .featured-posts .post-1 {
  height: auto;
}

main .section .featured-posts .post-1 img {
  min-height: 256px;
  max-height: 100%;
}

main .section .featured-posts .post picture {
  display: block;
  position: relative;
  object-fit: cover;
}

main .section .featured-posts .post picture::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: var(--gradient-overlay);
}

@media only screen and (min-width: 768px) {
  main .section .featured-posts {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-template-rows: repeat(2, 50%);
    grid-gap: 20px;
    max-height: 540px;
  }

  main .section .featured-posts .post-1 h3,
  main .section .featured-posts .post-1 .button-container {
    font-size: var(--font-size-body-xl);
  }

  main .section .featured-posts .post-1 {
    grid-area: 1 / 1 / 3 / 3;
  }

  main .section .featured-posts .post-2 {
    grid-area: 1 / 3 / 2 / 5;
  }

  main .section .featured-posts .post-3 {
    grid-area: 2 / 3 / 3 / 4;
  }

  main .section .featured-posts .post-4 {
    grid-area: 2 / 4 / 3 / 5;
  }

  main .section .featured-posts img,
  main .section .featured-posts .post-1 img,
  main .section .featured-posts .post > div,
  main .section .featured-posts .post picture,
  main .section .featured-posts .post a {
    height: 100%;
  }
}

main .section .featured-posts .post .zoom-effect-wrapper > a {
  transition: all 0.4s;
}

main .section .featured-posts .post:hover .zoom-effect-wrapper > a {
  transform: scale(1.15);
}

@media only screen and (max-width: 767px) {
  main .section .featured-posts img {
    aspect-ratio: 1 / 1;
  }
}
