.carousel__container {
  margin: 0 auto;
  width: 100%;
}

.carousel {
  padding: 32px 0;
}

.carousel h2,
h2.project__headline,
h2.carousel__headline {
  margin: 16px 0;
  color: #141313;
  text-align: center;
  font-size: calc(14px + (36 - 14)*(100vw - 320px) /(1920 - 320));
}

.carousel img,
.carousel video {
  aspect-ratio: 0.5625;
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  -o-user-drag: none;
  user-drag: none;
  border-radius: 12px;
}

.carousel .dragging a {
  pointer-events: none;
}

.carousel .carousel__wrapper {
  position: relative;
}

/* Header */
.carousel .carousel__header {
  display: grid;
  grid-auto-flow: column;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  padding: 0 10%;
}

/* Content */
.carousel .carousel__content {
  overflow-y: hidden;
  overflow-x: scroll;
  scrollbar-width: none;
  -ms-overflow-style: none;
  display: grid;
  -webkit-overflow-scrolling: touch;
  cursor: grab;
  padding: 0 0 0 10%;
  margin: 0;
  grid-gap: 24px;
  grid-auto-flow: column;
  list-style: none;
}

.carousel .carousel__content::-webkit-scrollbar {
  display: none;
}

/* Item */
.carousel .carousel__item a {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-direction: column;
  position: relative;
  user-select: none;
  margin: 10px 0px;
  border-radius: 12px;
  cursor: pointer;
  width: 360px;
  height: auto;
}

/* Controls */
.carousel .carousel__controls {
  display: grid;
  grid-auto-flow: column;
  grid-gap: 24px;
}

.carousel .carousel__arrow {
  padding: 0;
  background: transparent;
  box-shadow: none;
  border: 0;
}

.carousel .carousel__arrow:before {
  content: "";
  background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNSIgaGVpZ2h0PSI5IiB2aWV3Qm94PSIwIDAgMTUgOSI+Cgk8cGF0aCBmaWxsPSIjMzMzMzMzIiBkPSJNNy44NjcgOC41NzRsLTcuMjItNy4yMi43MDctLjcwOEw3Ljg2NyA3LjE2IDE0LjA1Ljk4bC43MDYuNzA3Ii8+Cjwvc3ZnPgo=);
  background-size: contain;
  filter: brightness(1);
  display: block;
  width: 18px;
  height: 12px;
  cursor: pointer;
}

.carousel .carousel__arrow.arrow-prev:before {
  transform: rotate(90deg);
}

.carousel .carousel__arrow.arrow-next:before {
  transform: rotate(-90deg);
}

.carousel .carousel__arrow.disabled::before {
  filter: brightness(4);
}

.carousel__item .outside-play {
  position: relative;
}

/* Responsive */
@media (max-width: 768px) {
  .carousel .carousel__header {
    padding: 0 5%;
  }

  .carousel .carousel__content {
    padding-left: 5%;
  }
}

/* Desktop arrows behaviour */
@media only screen and (min-width: 1180px) {
  .carousel .carousel__wrapper.has-arrows .carousel__content {
    justify-content: space-between;
  }

  .carousel .carousel__wrapper.has-arrows .carousel__arrows {
    display: flex;
  }
}

/* =========================
   SINGLE ITEM STATE
========================= */

.carousel .carousel__wrapper.is-single .carousel__header {
  grid-auto-flow: row;
  justify-content: center;
  text-align: center;
}

.carousel .carousel__wrapper.is-single .carousel__controls {
  display: none;
}

.carousel .carousel__wrapper.is-single .carousel__content {
  grid-auto-flow: row;
  justify-content: center;
  padding-left: 0;
  overflow-x: hidden;
}

.carousel .carousel__wrapper.is-single .carousel__item {
  display: flex;
  justify-content: center;
}

.carousel .carousel__wrapper.is-single .carousel__item a {
  margin-left: auto;
  margin-right: auto;
}
