* {
  box-sizing: border-box;
}

body {
  padding: 20px 0;
}

.container {
    max-width: 1200px;
    margin: auto;
}

.nicebox-row {
  margin: -10px;
  display: flex;
  flex-wrap: wrap; 
   justify-content: center; 
}

.nicebox {
    display: inline-block;
    flex: 0 0 380px;
    padding: 10px;
    text-align: center;
    z-index: auto;
}
.nicebox > a {
  display: block;
}

figure {
  margin: 0;
  width: 100%;
  height: 300px;
  overflow: hidden;
  position: relative;
}
figure img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  will-change: transform;
  -webkit-transform-origin: top;
          transform-origin: top;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
}

figcaption {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  padding: 20px;
  background: #f7e6da;
  color: #372518;
  -webkit-transform-origin: center;
          transform-origin: center;
  -webkit-transform: translateY(50%);
          transform: translateY(50%);
  transition: background 600ms, -webkit-transform 400ms ease;
  transition: transform 400ms ease, background 600ms;
  transition: transform 400ms ease, background 600ms, -webkit-transform 400ms ease;
  will-change: transform;
}
figcaption h3 {
  margin-top: 0;
  text-transform: uppercase;
  color: #3d1e5a;
}
figcaption p {
  margin: 25px 0 0;
  transition: opacity 0.4s ease;
  color: #fff;
  opacity: 0;
}

figure:hover figcaption {
  -webkit-transform: translateY(0px);
          transform: translateY(0px);
  background: rgba(53, 51, 50, 0.9);
}
figure:hover p {
  opacity: 1;
}
figure:hover img {
    -webkit-transform: translateY(-50px);
    transform: translateY(-50px);
    width: auto;
}
