.page--bonus {
  padding-bottom: 100px;
}
.bonus--wrap {
  display: flex;
  --gap: 20px;
  --columns: 3;
  flex-wrap: wrap;
  gap: 20px;
}
.bonus--img {
  top: 0;
  height: 100%;
  max-height: 100%;
  z-index: 1;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  transition: .4s;
  border-radius: 10px;
  position: absolute;
  left: 0;
  width: 100%;
  transition: transform .3s;
}
.bonus--box {
  position: relative;
  cursor: pointer;
  padding-top: 0;
  height: 300px;
  width: 100%;
}
.bonus--box:hover .bonus--img {
  transform: scale(1.1);
}
.bonus--item {
  position: relative;
  display: inline-block;
  display: flex;
  width: calc((100% / var(--columns)) - var(--gap) + (var(--gap) / var(--columns)));
  border-radius: 10px;
  flex-direction: column;
  margin-bottom: 20px;
}
.bonus--title {
  width: 100%;
  bottom: 0;
  z-index: 2;
  background-color: rgba(0, 0, 0, .3);
  padding: 24px;
  position: absolute;
  left: 0;
  text-align: center;
  color: #fff;
  font-size: 21px;
  border-radius: 0 0 10px 10px;
}
@media (max-width: 1024px) {
  .bonus--wrap {
      --columns: 3;
  }
  .bonus--item {
    width: calc((100% / var(--columns)) - var(--gap) + (var(--gap) / var(--columns)));
  }
}
@media (max-width: 768px) {
  .bonus--wrap {
      --columns: 2;
  }
  .bonus--item {
    width: calc((100% / var(--columns)) - var(--gap) + (var(--gap) / var(--columns)));
  }
  .bonus--title {
    font-size: 18px;
  }
}
@media (max-width: 480px) {
  .bonus--wrap {
      --columns: 1;
  }
  .bonus--item {
    width: 100%;
  }
  .bonus--title {
    font-size: 16px;
  }
}