/************************************************************************

     ██████╗ █████╗ ██████╗  ██████╗ ██╗   ██╗███████╗███████╗██╗     
    ██╔════╝██╔══██╗██╔══██╗██╔═══██╗██║   ██║██╔════╝██╔════╝██║     
    ██║     ███████║██████╔╝██║   ██║██║   ██║███████╗█████╗  ██║     
    ██║     ██╔══██║██╔══██╗██║   ██║██║   ██║╚════██║██╔══╝  ██║     
    ╚██████╗██║  ██║██║  ██║╚██████╔╝╚██████╔╝███████║███████╗███████╗
     ╚═════╝╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝  ╚═════╝ ╚══════╝╚══════╝╚══════╝
                                                                      
 ************************************************************************/


/* =========================================================
   GLOBAL / BACKEND
========================================================= */

/* Make links non-clickable in backend */
.is-root-container .carousel a {
  pointer-events: none;
}


/* =========================================================
   CAROUSEL BASE
========================================================= */

.nvm-carousel__slide {
  position: relative;
  display: block;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
}


/* =========================================================
   HERO GRADIENT OVERLAY
========================================================= */

.nvm-carousel__slide::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    0deg,
    rgba(0, 0, 0, 0.55) 0%,
    rgba(0, 0, 0, 0.2) 55%,
    rgba(0, 0, 0, 0) 100%
  );
  opacity: 0;
  transition: opacity 0.4s ease;
  z-index: 1;
  pointer-events: none;
}


/* =========================================================
   CTA BUTTON
========================================================= */

.nvm-carousel__cta {
  position: absolute;
  left: 50%;
  bottom: 2rem;
  transform: translateX(-50%) translateY(10px);
  opacity: 0;
  transition: opacity 0.4s ease, transform 0.4s ease;
  z-index: 2;
}

html:not(.tablet) .nvm-carousel__cta {
  font-size: 12px !important;
  line-height: 24px;
  height: 26px;
  bottom: 20px;
}


/* =========================================================
   CAROUSEL LAYOUT (LAPTOP)
========================================================= */

/* Equal height columns */
.laptop .nvm-carousel-wrapper .row {
  display: flex;
  align-items: stretch;
}

/* Right column stretches */
.nvm-carousel-wrapper .nvm-carousel-thumbs-wrapper {
  display: flex;
}

/* Nav carousel fills height */
.laptop .nvm-carousel--nav {
  flex: 1;
}


/* =========================================================
   SLICK OVERRIDES (NAV)
========================================================= */

/* Fill full height */
.laptop .nvm-carousel--nav .slick-list,
.laptop .nvm-carousel--nav .slick-track {
  height: 100% !important;
}

/* Vertical distribution */
.laptop .nvm-carousel--nav .slick-track {
  display: flex !important;
  flex-direction: column;
  justify-content: space-between;
}

/* Remove slick pseudo elements */
.nvm-carousel-wrapper .slick-track::before,
.nvm-carousel-wrapper .slick-track::after {
  display: none !important;
}


/* =========================================================
   THUMBNAILS
========================================================= */

.laptop .nvm-carousel__thumb {
  flex: 0 0 auto;
  margin: 0 !important;
  padding: 0;
}

.laptop .nvm-carousel__thumb img {
  display: block;
  width: 100%;
  height: auto;
  cursor: pointer;
}


/* Active state */
.small .nvm-carousel--nav .slick-current img {
  border: 4px solid var(--nvm-color-dark-yellow);
}

.tablet .nvm-carousel--nav .slick-current img {
  border: 8px solid var(--nvm-color-dark-yellow);
}


/* =========================================================
   INTERACTIONS (LAPTOP)
========================================================= */

html.laptop .nvm-carousel__slide:hover::before,
html.laptop .nvm-carousel__slide:focus-visible::before {
  opacity: 1;
}

html.laptop .nvm-carousel__slide:hover .nvm-carousel__cta,
html.laptop .nvm-carousel__slide:focus-visible .nvm-carousel__cta {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}


/* =========================================================
   NON-LAPTOP (TABLET / MOBILE)
========================================================= */

html:not(.laptop) .nvm-carousel__slide::before {
  opacity: 1;
}

html:not(.laptop) .nvm-carousel__cta {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* Disable transitions on touch */
html:not(.laptop) .nvm-carousel__slide::before,
html:not(.laptop) .nvm-carousel__cta {
  transition: none;
}


/* =========================================================
   NAV CAROUSEL (NON-LAPTOP)
========================================================= */

html:not(.laptop) .nvm-carousel--nav {
  width: 100%;
}

html:not(.laptop) .nvm-carousel--nav .slick-list,
html:not(.laptop) .nvm-carousel--nav .slick-track {
  width: 100% !important;
}

html:not(.laptop) .nvm-carousel--nav .slick-track {
  display: flex !important;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  transform: none !important;
}

html:not(.laptop) .nvm-carousel--nav .slick-slide {
  width: 32.333336% !important;
  flex: 0 0 auto;
}


/* =========================================================
   SPACING
========================================================= */

html:not(.laptop) .nvm-carousel-thumbs-wrapper {
  margin-top: 10px;
}

html:not(.tablet) .nvm-carousel-thumbs-wrapper {
  margin-top: 5px;
}
