:root {
  --figure-padding: 40px;
}

.figure {
  padding: var(--figure-padding) 0;
}

.figure + .figure {
  padding-top: 0;
}

.figure figure {
  margin: 0;
  text-align: center;
}

.figure-list figure {
  margin: 16px 0;
}

.figure figure img {
  max-width: 100%;
  max-height: 600px;
}

.figure.full-height img {
  max-height: unset;
}

.figure-list {
  display: flex;
  flex-direction: column;
}

.figure-list figure {
  box-sizing: border-box;
  display: inline-block;
}

.figure-list figure img {
  width: 100%;
  min-width: unset;
}

@media (min-width: 600px) {
  .figure-list {
    flex-direction: row;
    margin-right: 32px;
    margin-left: 32px;
  }

  .figure-list-2 figure {
    margin: 0;
    width: calc(100% / 2 - 16px);
  }

  .figure-list-3 figure {
    margin: 0;
    width: calc(100% / 3 - 22px);
  }

  .figure-list-3 figure:nth-of-type(2) {
    margin-right: 32px;
    margin-left: 32px;
  }

  .figure-list-2 figure:last-of-type {
    margin-left: 32px;
  }

  html[dir='rtl'] .figure-list-2 figure:last-of-type {
    margin-left: auto;
    margin-right: 32px;
  }
}

@media (min-width: 700px) {
  .figure figure {
    margin: 0 auto;
    max-width: 800px;
  }

  .figure.figure-list + .figure:not(.figure-list) {
    padding-top: var(--figure-padding);
  }

  .figure-list {
    padding: 0;
    margin: 0 auto;
    max-width: 800px;
  }
}
