body{
  width:100%;
  margin:auto;
  font-family: "Helvetica", Sans-serif;
}

.gallery{
  width:100%;
  display:flex;
  flex-flow: row wrap;
}

.gallery__item{
  box-sizing:border-box;
  width:100%;
  padding:1rem;
  margin:1rem;
  box-shadow: 1px 2px 40px 2px rgba(160, 160, 160, .5);
}
.gallery__image-caption{
  margin-top:1rem;
  font-size:0.95rem;
}
.gallery__image{
  width:100%;
  display:block;
}

@media only screen and (min-width: 33.75em){
  .gallery__item{
    flex-basis: calc(50% - 2rem);
  }
}

@media only screen and (min-width: 48em){
  .gallery__item{
    flex-basis: calc((100% / 3) - 2rem);
  }
}

@media only screen and (min-width: 60em){
  .gallery__item{
    flex-basis: calc((100% / 4) - 2rem);
  }
}