.main-banner {
  margin-top: 4.75rem;
  padding: 0.25rem;
}

.main-banner-wrapper {
  position: relative;
  overflow: hidden;
  border-radius: 1rem;
}

.main-banner-slide,
.main-banner-slide iframe {
  height: 40rem;
}

.main-banner-content {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  padding-top: 6.6875rem;
  padding-bottom: 5.1875rem;
  transform: translate(-50%, -50%);
}

.main-banner-title {
  font-size: 2rem;
  line-height: 120%;
  font-weight: 700;
  color: #ffffff;
}

.main-banner-description {
  color: #ffffff;
  font-size: 1rem;
  line-height: 150%;
}

.main-banner-image-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.main-banner-image-wrapper:not(.main-banner-iframe-wrapper)::before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(180deg, #000000 0%, #000000 27.65%, rgba(0, 0, 0, 0) 100%);
  opacity: 0.3;
}

.main-banner-image,
video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.main-banner-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  padding: 1rem;
  font-size: 1.375rem;
  line-height: 120%;
  color: #ffffff;
  border: 2px solid #ffffff;
  border-radius: 0.625rem;
  transition: all 0.8s ease;
}

.main-banner-link:hover {
  border-color: var(--color-blue-5);
  color: var(--color-blue-5);
}

.main-banner-link svg {
  width: 1.5rem;
  height: 1.5rem;
}

.main-slider-button {
  position: absolute;
  bottom: 1.5rem;
  z-index: 10;
}

.main-slider-button.prev {
  left: 0.75rem;
}

.main-slider-button.next {
  right: 0.75rem;
}

.main-banner-wrapper .swiper-pagination {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  z-index: 10;
  display: flex;
  gap: 0.5rem;
  transform: translateX(-50%);
}

.main-banner-wrapper .swiper-pagination-bullet {
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background-color: #ffffff;
  opacity: 0.5;
  transition: all 0.8s ease;
  cursor: pointer;
  transform: scale(0.5);
}

.main-banner-wrapper .swiper-pagination-bullet-active {
  opacity: 1;
  transform: scale(1);
}

.video-button {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  z-index: 10;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  background-color: #ffffff;
  border: none;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: -2px 5px 15px 0 #09095c0a;
  outline: 2px solid rgba(255, 255, 255, 0.5);
  outline-offset: 0.25rem;
  cursor: pointer;
}

.video-button svg {
  color: var(--color-blue);
}

@media screen and (min-width: 768px) {
  .main-banner {
    margin-top: 3rem;
  }

  .main-banner-slide,
  .main-banner-slide iframe {
    height: 58.125rem;
  }

  .main-banner-content {
    padding-top: 12.75rem;
    gap: 2rem;
    width: 71%;
  }

  .main-banner-title {
    font-size: 3rem;
  }

  .main-banner-description {
    font-size: 1.5rem;
    font-weight: 500;
  }

  .main-banner-link {
    width: fit-content;
  }

  .main-slider-button {
    bottom: 50%;
    transform: translateY(50%);
  }

  .main-slider-button.prev {
    left: 1rem;
  }

  .main-slider-button.next {
    right: 1rem;
  }

  .main-banner-wrapper .swiper-pagination {
    bottom: 2.625rem;
  }

  .main-banner-wrapper .swiper-pagination-bullet {
    width: 1.25rem;
    height: 1.25rem;
    transform: scale(0.6);
  }

  .main-banner-wrapper .swiper-pagination-bullet-active {
    transform: scale(1);
  }

  .video-button {
    width: 1.3125rem;
    height: 1.5625rem;
    outline-width: 0.25rem;
    outline-offset: 0.5rem;
  }

  .video-button svg {
    width: 1.3125rem;
    height: 1.5625rem;
  }
}

@media screen and (min-width: 1280px) {
  .main-banner {
    margin-top: 3.1875rem;
  }

  .main-banner-content {
    padding-top: 17.125rem;
    width: 79%;
  }

  .main-slider-button.prev {
    left: 2rem;
  }

  .main-slider-button.next {
    right: 2rem;
  }
}

@media screen and (min-width: 1920px) {
  .main-banner-title {
    font-size: 4rem;
  }

  .main-banner-content {
    width: 100%;
    max-width: 82.5625rem;
    padding-top: 13.375rem;
  }

  .main-banner-description {
    max-width: 58.875rem;
    font-size: 2rem;
  }

  .main-slider-button.prev {
    left: 4.5rem;
  }

  .main-slider-button.next {
    right: 4.5rem;
  }
}
