.clear-fix {
  clear: both;
}

.masonry-container {
  width: 80vw;
  position: relative;
  margin: 0 auto;
  margin-top: 50px;
}

.panel {
   position: relative;
    display: inline-block;
    width: calc((48vw - 48px) / 3);
    height: calc((53vw - 3px) / 3);
    margin-left: 20px;
    margin-bottom: 20px;
    cursor: pointer;
    box-shadow: 0px 8px 32px 0px rgba(0, 0, 0, 0.3);
    transition: all 0.2s ease-out;
    border-radius: 15px;
}

.panel:hover {
  box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.55);
  transition: all 0.2s ease-out;
}

.panel:nth-child(11n+1) {
  margin-left: 0;
}

.panel:nth-child(11n+4) {
        margin-left: 0;
    width: calc(((51vw - 52px) / 3) * 2);
    height: calc((52vw - -8px) / 3);
}

.panel:nth-child(11n+6) {
  margin-left: 0;
  float: left;
  width: calc((80vw - 60px)/3);
  height: calc(((80vw - 20px)/3)*2 - 8px);
}

.panel:nth-child(11n+6) > .panel-wrapper > .panel-img {
  transform: translateX(-25%);
}

.panel:nth-child(11n+7) {
  margin-left: 27px;
  width: calc(((80vw - 20px)/3)*2);
}

.panel:nth-child(11n+8) {
  margin-left: 27px;
}

.panel:nth-child(11n+9) {
  float: none;
}

.panel:nth-child(11n+10) {
  margin-left: 0;
  width: calc((80vw - 30px)/2);
}

.panel:nth-child(11n+11) {
  width: calc((80vw - 30px)/2);
}


.panel-wrapper {
  position: relative;
  display: inline-block;
  width: 100%;
  height: 100%;
  overflow: hidden !important;
  border-radius: 15px;
}

.panel-overlay {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 2;
  opacity: 0;
  transition: all 0.3s ease-out;
}

.panel-overlay:hover {
  opacity: 1;
  transition: all 0.3s ease-out;
}

.panel-text {
  position: absolute;
  width: 80%;
  height: 60px;
  margin: 0 auto;
  left: 25px;
  bottom: 0;
  z-index: 10;
}

.panel-title {
  font-size: 1em;
  font-weight: 300;
  letter-spacing: 0;
  color: #fff;
}

.panel-tags {
  padding-top: 2px;
}

.tag-icon-img {
  display: inline-block;
  width: 10px;
  height: auto;
  transform: translateY(2px);
}

.tags-list {
  font-size: 0.55em;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #fff;
}

.panel-gradient {
  position: absolute;
  width: 100%;
  height: 65%;
  bottom: 0;
  opacity: 0.65;
  z-index: 5;
  border-radius: 15px;
}

.panel-vingette {
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 5;
  opacity: 0.5;
  border-radius: 15px;
}

.panel-img {
  position: absolute;
    top: 0;
    left: 0;
    display: block;
    margin: 0 auto;
    min-width: 100%;
    height: 100%;
    border-radius: 15px;
}