.box {
  position: relative;
  width: 100%;
  font-size: 18px;
}

.image {
  opacity: 1;
  display: block;
  width: 100%;
  height: 300px;
  transition: .5s ease;
  backface-visibility: hidden;
  border-radius: 4px;
}

.middle {
  transition: .5s ease;
  opacity: 0;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  text-align: center;
}

.box:hover .image {
  opacity: 0.3;
}

.box:hover .middle {
  opacity: 1;
}

.text {
  background-color: #04AA6D;
  color: white;
  
  padding: 16px 32px;
}