.product__top {
  height: 50vw;
  max-height: 600px;
  position: relative;
  overflow: hidden;

  &::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    bottom: 0;
    left: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(var(--c-neutral-darkest), 0) 0%, rgba(var(--c-neutral-darkest), 0.2) 80%, rgba(var(--c-neutral-darkest), 0.4) 100%);
    pointer-events: none;
  }
}

.product__header {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  left: 0;
  z-index: 2;

  & h2 {
    max-width: 400px;
    color: rgb(var(--c-neutral-lightest))
  }
}

.product__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  -webkit-backface-visibility: hidden;
}

.product__item {
  background: rgb(var(--c-neutral-lighter));
  padding: calc(var(--p) - 30px) 4%;
  height: 100%;
  transition: all ease 0.3s;
  border-top: 4px solid rgb(var(--c-neutral-lighter));

  &.-withlink {
    display: grid;
    grid-template-rows: 1fr auto;
    grid-gap: 1.5rem;
  }

  & .font__button {
    justify-self: start;
  }
}

.product__slider {
  z-index: 1;
  margin-top: -60px;

  & .swiper-slide {
    height: auto;
    box-sizing: border-box;
    padding-top: 60px;
    transition: padding ease 0.3s;
  }

  & .swiper-pagination.swiper-pagination-bullets {
    position: relative;
    top: auto;
    bottom: auto;
  }
}

@media (hover: hover) {
  .product__slider {
    & .swiper-slide:hover {
      padding-top: 0;

      & .product__item {
        padding: var(--p) 4%;
        margin-top: 0;
        border-top: 4px solid rgb(var(--c-primary));
      }
    }
  }
}

.product__shortcut {
  margin-top: 1.5rem;
  display: grid;
  grid-gap: 0.2rem;
}

.shortcut {
  display: grid;
  grid-template-columns: 30px 1fr;
  grid-gap: 1rem;
}

.shortcut__icon {
  justify-self: center;
}

.product__shortcut a,
.shortcut__link {
  color: rgb(var(--c-neutral-darker));
}

/* =============================================================================
   Media Queries
   ========================================================================== */

@media (min-width: 400px) {
  .swiper.product__slider .swiper-slide .product__item {
    padding-left:  3rem;
    padding-right:  3rem;
  }
}