div.albums {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
}

div.albums a.album {
  position: relative;
  width: calc(33.3333333% - 10px); /* most will be 1/3 of page width */
  margin: 15px 15px 0 0;
}

div.albums a.album:nth-child(1),
div.albums a.album:nth-child(2) {
  width: calc(50% - 7.5px); /* first 2 will be 1/2 of page width */
}

div.albums a.album:nth-child(2) {
  margin-right: 0;
}

div.albums a.album:nth-child(3n+5) {
  margin-right: 0;
}

div.albums a.album:last-child {
  margin-right: 0;
}

div.albums a.album img {
  display: block;
  width: 100%;
}

div.albums a.album div.desc {
  display: flex;
  flex-flow: column;
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  color: #fff;
  padding: 10px;

  background: -moz-linear-gradient(top,  rgba(0,0,0,0.65) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0) 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,0.65)), color-stop(50%,rgba(0,0,0,0)), color-stop(100%,rgba(0,0,0,0)));
  background: -webkit-linear-gradient(top,  rgba(0,0,0,0.65) 0%,rgba(0,0,0,0) 50%,rgba(0,0,0,0) 100%);
  background: -o-linear-gradient(top,  rgba(0,0,0,0.65) 0%,rgba(0,0,0,0) 50%,rgba(0,0,0,0) 100%);
  background: -ms-linear-gradient(top,  rgba(0,0,0,0.65) 0%,rgba(0,0,0,0) 50%,rgba(0,0,0,0) 100%);
  background: linear-gradient(to bottom,  rgba(0,0,0,0.65) 0%,rgba(0,0,0,0) 50%,rgba(0,0,0,0) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a6000000', endColorstr='#00000000',GradientType=0 );
}

div.albums a.album div.desc span.title {
  display: block;
  font-size: 24px;
  font-weight: 800;
}

div.albums a.album div.desc span.count {
  display: block;
  font-size: 16px;
}

div.photos {
  overflow: hidden;
}

div.photos img {
  float: left;
}