.flexbin {
  display: flex;
  overflow: hidden;
  flex-wrap: wrap;
  margin: -2.5px;
}

.flexbin:after {
  content: '';
  flex-grow: 999999999;
  min-width: 40vw;
  height: 0;
}

.flexbin > * {
  position: relative;
  display: block;
  height: 40vw;
  margin: 2.5px;
  flex-grow: 1;
}

.flexbin > * > img {
  height: 40vw;
  object-fit: cover;
  max-width: 100%;
  min-width: 100%;
  vertical-align: bottom;
}

.flexbin.flexbin-margin {
  margin: 2.5px;
}

@media (max-width: 1180px) {
  .flexbin {
    display: flex;
    overflow: hidden;
    flex-wrap: wrap;
    margin: -2.5px;
  }

  .flexbin:after {
    content: '';
    flex-grow: 999999999;
    min-width: 56vw;
    height: 0;
  }

  .flexbin>* {
    position: relative;
    display: block;
    height: 56vw;
    margin: 2.5px;
    flex-grow: 1;
  }

  .flexbin>*>img {
    height: 56vw;
    object-fit: cover;
    max-width: 100%;
    min-width: 100%;
    vertical-align: bottom;
  }

  .flexbin.flexbin-margin {
    margin: 2.5px;
  }
}

@media (max-width: 768px) {

  .flexbin:after {
    min-width: 65vw;
  }

  .flexbin > * {
    height: 65vw;
  }

  .flexbin > * > img {
    height: 65vw;
  }
  
}

@media (max-width: 680px){

  .flexbin:after {
    min-width: 40vw;
  }

  .flexbin > * {
    height: 40vw;
  }

  .flexbin > * > img {
    height: 40vw;
  }


}


@media (max-width: 600px) {


  .flexbin:after {
    min-width: 65vw;
  }

  .flexbin > * {
    height: 65vw;
  }

  .flexbin > * > img {
    height: 65vw;
  }
}

@media (max-width: 360px) {

  .flexbin {
    margin: -5px;
  }

  
}