.slider {
  --slider-height: 420px;
  position: relative;
  height: var(--slider-height);
  background: var(--gradient-slider-bg);
  overflow: hidden;
}

.slider__item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  height: 100%;
  pointer-events: none;
}

.slider__item:not(.is-active-item) {
  display: none;
}

.slider-item__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 12px;
  padding: 0 var(--space-column);
}

.slider-item-content__buttons {
  display: flex;
  gap: 12px;
  padding: 8px 0;
}

.slider__item .button {
  position: relative;
  z-index: 2;
  pointer-events: all;
}

.slider-item__image {
  display: flex;
  justify-content: flex-end;
  overflow-y: hidden;
  aspect-ratio: 700/420;
}

.slider-item__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.slider__ellipsis {
  display: flex;
  gap: 8px;
  padding: 12px 0;
  pointer-events: all;
}

.slider__ellipsis span {
  position: relative;
  display: block;
  width: 12px;
  height: 12px;
  border-radius: 6px;
  background: var(--color-bg-primary);
  cursor: pointer;
  transition: var(--transition-m);
}

.slider__ellipsis span::after {
  content: "";
  position: absolute;
  inset: -4px;
}

.slider__ellipsis span.is-active {
  width: 36px;
  background: var(--color-elem-accent-primary);
  animation: sliderEllipseActivation var(--transition-m);
}

.slider__ellipsis span:not(.is-active):hover,
.slider__ellipsis span:not(.is-active):active {
  background: var(--color-bg-secondary-highlight);
}

.slider__item .heading,
.slider__item .span,
.slider__item .slider-item-content__buttons {
  animation: sliderTextFadeIn var(--transition-l);
}

.slider__item .slider-item__image {
  animation: sliderImageContainerFadeIn 450ms;
}

.slider__item .slider-item__image img {
  animation: sliderImageFadeIn 450ms;
}

@keyframes sliderTextFadeIn {
  0% {
    transform: translateY(-100px);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes sliderImageFadeIn {
  0% {
    transform: scale(50%);
    filter: blur(200px);
    opacity: 0;
  }
  75% {
    transform: scale(100%);
  }
  100% {
    transform: scale(100%);
    filter: blur(0px);
    opacity: 1;
  }
}

@keyframes sliderImageContainerFadeIn {
  0% {
    transform: translateX(400px);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes sliderEllipseActivation {
  0% {
    width: 12px;
    background: var(--color-bg-primary);
  }
  100% {
    width: 36px;
    background: var(--color-elem-accent-primary);
  }
}

.slider__nav-button {
  position: absolute;
  top: 0%;
  height: var(--slider-height);
  width: 50%;
}

.slider__nav-button#sliderButtonLeft {
  left: 0;
  cursor:
    url("../../images/icons/slider-button-left.svg") 16 24,
    pointer;
}
.slider__nav-button#sliderButtonRight {
  cursor:
    url("../../images/icons/slider-button-right.svg") 16 24,
    pointer;
  right: 0;
}

@media screen and (max-width: 1432px) {
  .slider__item {
    grid-template-columns: 1fr var(--space-column-6);
  }

  .slider-item__content {
    padding: 0;
  }
}

@media screen and (min-width: 841px) and (max-width: 1080px) {
  .slider {
    --slider-height: 280px;
  }

  .slider__item {
    grid-template-columns: 1fr 2fr;
  }
}

@media screen and (max-width: 840px) {
  .slider {
    --slider-height: 100%;
  }

  .slider__item {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .slider-item__content {
    padding: var(--gap-blocks) 0;
  }

  .slider-item__image {
    order: -1;
    margin: 0 calc(0px - var(--padding-content-area));
  }

  .slider-item__image img {
    width: 100%;
  }

  @keyframes sliderTextFadeIn {
    0% {
      transform: translateX(100px);
      opacity: 0;
    }
    100% {
      transform: translateX(0);
      opacity: 1;
    }
  }
}

@media screen and (max-width: 400px) {
  .slider-item-content__buttons {
    flex-wrap: wrap-reverse;
  }

  .slider-item-content__buttons .button {
    width: 100%;
  }
}
