/* Parent wrapper to carousel. Width can be changed as needed. */
.carousel-wrapper {
  overflow: hidden;
  width: 100%;
  margin: auto;
  height: 250px;
}

/* Apply 'border-box' to 'box-sizing' so border and padding is included in the width and height. */
.carousel-wrapper * {
  box-sizing: border-box;
}

/* We'll be using the 'transform' property to move the carousel's items, so setting the 'transform-style' to 'preserve-3d' will make sure our nested elements are rendered properly in the 3D space. */
.carousel {
  -webkit-transform-style: preserve-3d;
  -moz-transform-style: preserve-3d;
  transform-style: preserve-3d;
  display: flex;
  position: relative;
  height: 100%;
  width: 100%;
  margin: auto;
  overflow-x: hidden;
  transform: translateX(0);
  transition: 0.4s cubic-bezier(0.47, 0.13, 0.15, 0.89);
  gap: 1rem;
}

/* By default we're hiding items (except the initial one) until the JS initiates. Elements are absolutely positioned with a width of 100% (as we're styling for mobile first), letting the content's height dictate the height of the carousel. Our magic property here for all our animation needs is 'transition', taking the properties we wish to animate 'transform' and 'opacity', along with the length of time in seconds. */
.carousel__photo {
  height: 100%;
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  top: 0;
  width: 100%;
  margin: auto;
  padding: 1rem 4rem;
  opacity: 1;
  z-index: 900;
}

/* Style navigation buttons to sit in the middle, either side of the carousel. */
.carousel__button--prev,
.carousel__button--next {
  position: absolute;
  top: 50%;
  width: 3rem;
  height: 3rem;
  background-color: #fff;
  transform: translateY(-50%);
  border-radius: 50%;
  cursor: pointer;
  z-index: 1001; /* Sit on top of everything */
  border: 1px solid black;
  display: none;
  justify-content: center;
  align-items: center;
  /*  opacity: 0;  Hide buttons until carousel is initialised 
    transition:opacity 1s;*/
}

.carousel__button--prev:focus {
  outline: none;
}
::-moz-focus-inner {
  border: 0;
}
.carousel__button--next:focus {
  outline: none;
}
::-moz-focus-inner {
  border: 0;
}

.carousel__button--prev {
  left: 0;
}

.carousel__button--next {
  right: 0;
}

/* Use pseudo elements to insert arrows inside of navigation buttons */
.carousel__button_icon {
  color: #000;
  width: 10px;
  height: 16px;
}

.carousel-skeleton-box {
  height: 100%;
  width: 100%;
  margin: auto;
  padding: 1rem 4rem;
  background: #ccc;
  cursor: progress;
  background: linear-gradient(0.25turn, transparent, #e3e3e3, transparent),
    linear-gradient(#eee, #eee),
    radial-gradient(38px circle at 19px 19px, #eee 50%, transparent 51%),
    linear-gradient(#eee, #eee);
  background-position: -315px 0, 0 0, 0px 190px, 50px 195px;
  animation: loading 1.5s infinite;
}

.no-select {
  -webkit-touch-callout: none; /* iOS Safari */
  -webkit-user-select: none; /* Safari */
  -khtml-user-select: none; /* Konqueror HTML */
  -moz-user-select: none; /* Firefox */
  -ms-user-select: none; /* Internet Explorer/Edge */
  user-select: none; /* Non-prefixed version, currently supported by Chrome, Edge, Opera and Firefox */
}

@keyframes loading {
  to {
    background-position: 315px 0, 0 0, 0 190px, 50px 195px;
  }
}

