.hero {
  --marquee-duration: 30s;
  --marquee--height: auto;
  --bg-hero-url: url("/assets/images/bg-hero-home.webp");
}

.hero .rating {
  --color-star-fill: var(--color-accent-secondary);
}

.hero__box-wrap {
  justify-content: space-between;
}

.hero__available {
  margin-bottom: 12px;
}

.hero__title {
  margin-bottom: 24px;
}

.hero__actions {
  margin-bottom: 30px;
}

.hero-benefits__list {
  --gap: 16px;
}

.hero-benefits__item {
  gap: 10px;
  line-height: 1.1;
}

.hero-benefits__item svg {
  width: 20px;
  height: 20px;
  fill: var(--color-accent-secondary);
  flex-shrink: 0;
}

.hero__license {
  margin-top: auto;
  margin-bottom: 17px;
}

@media (width <= 1439px) {
  .hero-benefits__marquee {
    position: absolute;
    left: 0;
  }
  .hero-benefits__list {
    flex-wrap: nowrap;
  }
}

@media (width >= 1440px) {
  .hero__box-wrap {
    flex-direction: row-reverse;
  }

  .hero__box {
    flex-direction: column;
    flex-grow: 1;
    display: flex;
  }

  .hero-benefits {
    margin-top: auto;
  }

  .hero-benefits__list {
    --items: 2;
    --gap: 40px;
    row-gap: 24px;
    animation: none;
  }

  .hero-benefits__item {
    justify-content: start;
  }

  .hero__license {
    margin-top: auto;
     margin-bottom: 20px;
  }
}

.services {
  padding-top: 60px;
}

.services__title {
  margin-bottom: 50px;
}

.services__subtitle {
  margin-bottom: 24px;
}

.services-item.swiper-slide {
  max-width: 333px;
}

.service__link {
  border: 1px solid var(--color-border);
  border-radius: 8px;
  flex-direction: column;
  min-height: 333px;
  padding: 24px 20px;
  display: flex;
}

.service__link .service__link-text {
  color: var(--color-accent-secondary);
  opacity: 0;
  align-items: center;
  gap: 10px;
  text-decoration: underline;
  display: flex;
}

.service__link .service__link-text span {
  font-style: 0;
  background-color: var(--color-accent-primary-light);
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 22px;
  height: 22px;
  display: flex;
}

.service__link .service__link-text svg {
  fill: currentColor;
  width: 8px;
  height: 8px;
}

.service__link:hover {
  background-color: var(--color-accent-primary);
}

.service__link:hover .service__title {
  color: var(--color-white);
}

.service__link:hover .service__link-text {
  opacity: 1;
}

.service__title {
  margin-bottom: 15px;
  font-size: 22px;
  font-weight: 500;
}

.service__img {
  object-fit: cover;
  border-radius: 50%;
  margin-top: auto;
}

@media (width <= 1439px) {
  .services-swiper-btn-wrap {
    margin-top: 24px;
  }
}

@media (width >= 1440px) {
  .services {
    padding: 40px 0 120px;
  }

  .services-swiper-btn-wrap {
    margin: 0;
    position: absolute;
    top: -100px;
    right: 0;
  }
}

.benefits {
  color: var(--color-white);
  background-color: var(--color-accent-primary);
  padding: 260px 0 110px;
  position: relative;
}

.benefits__title {
  text-align: center;
  max-width: 300px;
  margin: 0 auto;
  position: absolute;
  top: 100px;
  left: 50%;
  transform: translateX(-50%);
}

.benefits-swiper {
  overflow: visible;
}

.benefit {
  border: 1px solid var(--color-white);
  backdrop-filter: blur(4.55px);
  background: #1988ffb3;
  border-radius: 8px;
  flex-direction: column;
  width: 100%;
  height: 400px;
  padding: 24px 20px;
  display: flex;
  overflow: hidden;
}

.benefit__title {
  margin-top: auto;
  margin-bottom: 12px;
  font-size: 26px;
  line-height: 1.1;
}

.benefit__icon {
  background-color: var(--color-accent-secondary);
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 66px;
  height: 66px;
  padding: 19px;
  display: flex;
}

.benefit__icon svg {
  fill: #0d59aa;
  width: 28px;
  height: 28px;
}

.benefits__action-btn {
  margin: 32px auto 0;
}

@media (width <= 1439px) {
  .benefit {
    max-width: 333px;
  }
}

@media (width >= 768px) {
  .benefits__action-btn {
    width: fit-content;
  }
}

@media (width >= 1440px) {
  .benefits {
    padding-top: 266px;
    padding-bottom: 120px;
  }

  .benefits__title {
    max-width: 360px;
    top: 120px;
  }

  .benefit:first-child {
    margin-top: 192px;
  }

  .benefit:nth-child(3) {
    margin-top: 144px;
  }

  .benefit:nth-child(4) {
    margin-top: 282px;
  }
}

.solutions {
  padding: 50px 0 80px;
}

.solutions__box-wrap {
  flex-direction: column;
  gap: 24px;
  margin-bottom: 50px;
  display: flex;
}

.solutions__title {
  margin-bottom: 16px;
}

.solutions__list {
  --gap: 10px;
}

@media (width >= 768px) {
  .solutions__list {
    --items: 2;
  }
}

@media (width >= 1440px) {
  .solutions__box-wrap {
    flex-direction: row;
    gap: 10px;
  }

  .solutions__box {
    width: 100%;
  }

  .solutions__list {
    --items: 4;
  }

  .solutions__item:nth-child(7n + 5) {
    margin-right: calc(
      (100% - var(--gap, 16px) * (var(--items, 1) - 1)) / var(--items, 1) +
        var(--gap, 16px)
    );
  }
}

.projects__box-wrap {
  flex-direction: column;
  gap: 50px;
  display: flex;
}

.projects__title {
  margin-bottom: 16px;
}

.projects__section-subtitle {
  margin-bottom: 24px;
}

.projects-swiper {
  width: 100%;
  max-width: 240px;
  height: 340px;
}

.projects-swiper-btn-wrap {
  z-index: 1;
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
}

.projects-swiper-btn {
  background-color: var(--color-accent-primary);
}

.project.swiper-slide {
  border-radius: 16px;
  overflow: hidden;
}

.project__img {
  object-fit: cover;
  border-radius: 16px;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

@media (width >= 375px) {
  .projects-swiper {
    max-width: 288px;
    height: 360px;
  }
}

@media (width >= 425px) {
  .projects-swiper {
    max-width: 305px;
    height: 370px;
  }
}

@media (width >= 1440px) {
  .projects__box-wrap {
    grid-template-rows: auto 54px;
    grid-template-columns: 1fr 1fr;
    justify-content: center;
    display: grid;
  }

  .projects__box {
    grid-column: 1 / 2;
  }

  .projects__box--swiper {
    grid-area: 1 / 2 / 3 / 3;
    width: 100%;
    padding: 0 80px;
  }

  .projects__text {
    max-width: 500px;
  }

  .projects-swiper {
    max-width: 552px;
    height: 670px;
  }
}

.reviews {
  padding: 30px 0 80px;
}

.reviews__title {
  margin-bottom: 50px;
}

.reviews__subtitle {
  margin-bottom: 24px;
}

.reviews-swiper {
  overflow: visible;
}

.review.swiper-slide {
  flex-direction: column;
  gap: 4px;
  width: 100%;
  max-width: 320px;
  min-height: 383px;
  display: flex;
}

.review.swiper-slide .rating {
  --color-star-empty: #c4e0ff;
  --color-star-fill: var(--color-accent-primary);
  gap: 0;
}

.review--main.swiper-slide {
  color: var(--color-black);
  background-color: var(--color-accent-secondary);
  border-radius: 16px;
  padding: 20px 16px;
}

.review--main.swiper-slide .rating {
  --color-star-fill: var(--color-black);
  align-items: baseline;
  display: flex;
}

.review--main.swiper-slide .rating__text {
  font-size: 70px;
  font-weight: 500;
}

.review--main.swiper-slide .reviews-rating-box {
  align-items: center;
  gap: 4px;
  margin-top: auto;
  display: flex;
}
.review--main.swiper-slide .rating-service__link {
  background-color: #fff;
  align-items: center;
}
.review--main.swiper-slide .rating-service__link .rating {
  --color-star-fill: var(--color-accent-secondary);
}
.review--main.swiper-slide .rating-service__img-wrap {
  width: 32px;
  height: 32px;
  background-color: #fcf1c464;
}
.review--main.swiper-slide .rating-service__text {
  font-size: 10px;
  font-weight: 500;
}

.review--main.swiper-slide .review__text {
  font-size: 14px;
}

.review__box {
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: 20px 16px;
}

.review-text {
  flex-grow: 1;
}

.review:nth-child(odd) .review-text {
  order: -1;
}

@media (width <= 1439px) {
  .reviews-swiper-btn-wrap {
    margin-top: 24px;
  }
}

@media (width >= 1440px) {
  .reviews {
    padding: 60px 0 120px;
  }

  .review.swiper-slide {
    --items: 4;
    --gap: 9px;
    width: calc((100% - var(--gap) * (var(--items, 1) - 1)) / var(--items, 1));
    max-width: initial;
  }

  .reviews-swiper-btn-wrap {
    margin: 0;
    position: absolute;
    top: -100px;
    right: 0;
  }
}

.faq {
  background-color: var(--color-accent-primary);
  padding: 80px 0;
}

.faq__title {
  text-align: center;
  margin-bottom: 24px;
}

.faq__list {
  flex-direction: column;
  gap: 8px;
  width: 100%;
  max-width: 1018px;
  margin: 0 auto;
  display: flex;
}

.faq__item {
  --p: 20px;
  color: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  position: relative;
}

.faq__item.active {
  color: var(--color-black);
  background-color: var(--color-white);
}

.faq__btn {
  width: 100%;
  padding: var(--p);
  text-align: start;
  letter-spacing: -0.02em;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  font-size: 26px;
  line-height: 1.1;
  display: flex;
}

[data-accordion-box].active .faq__btn {
  color: var(--color-accent-primary);
  padding-bottom: 10px;
}

.faq__icon {
  background-color: var(--color-accent-primary-light);
  pointer-events: none;
}

.faq__icon svg {
  fill: var(--color-white);
}

[data-accordion-box].active .faq__icon {
  background-color: var(--color-accent-primary);
  transform: rotate(90deg);
}

.faq__desc {
  margin: var(--p);
  margin-top: 0;
}

@media (width >= 1440px) {
  .faq {
    padding: 120px 0;
  }

  .faq__title {
    margin-bottom: 36px;
  }
}

.process {
  --gw-1: 1784px;
  --gh-1: 1189px;
  --gleft: 398.5px;
  --ah: 190px;
  --bg-p-x: -275px, center;
  color: var(--color-white);
  background-color: #f8f9ff;
  padding: 80px 0;
  position: relative;
  overflow: hidden;
}

.process:before {
  content: "";
  top: 0;
  left: calc(50% + var(--gleft));
  width: var(--gw-1);
  height: var(--gh-1);
  background-image: linear-gradient(281deg, #000 22.76%, #0000 92.1%),
    url("/assets/images/bg-procces.webp");
  background-position-y: top;
  background-repeat: no-repeat;
  background-position-x: var(--bg-p-x);
  background-size: cover;
  position: absolute;
  transform: translateX(-50%);
}

.process:after {
  content: "";
  top: calc(var(--gh-1) - var(--ah));
  width: 100%;
  height: var(--ah);
  background: linear-gradient(0deg, #f8f9ff 0%, #0000 100%);
  position: absolute;
  left: 0;
}

.process__container {
  z-index: 1;
  flex-direction: column;
  gap: 100px;
  display: flex;
  position: relative;
}

.process__title {
  margin-bottom: 44px;
}

.process__wrapper {
  position: relative;
}

#indicator {
  left: calc((16px + var(--r)) * -1);
  z-index: 1;
  background-color: var(--color-accent-primary);
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  transition: transform .3s;
  display: flex;
  position: absolute;
  top: -20px;
}

.process__list {
  counter-reset: item;
  --r: 40px;
  flex-direction: column;
  gap: 50px;
  padding-left: 56px;
  display: flex;
  position: relative;
}

.process__list:before {
  content: "";
  left: calc((var(--r)  - 2px) / 2);
  height: var(--pw-height, calc(100% - 100px));
  background: linear-gradient(to top, #000 13.2%, #0b437e 30.56%, #f5f7f3 100%);
  width: 2px;
  display: flex;
  position: absolute;
}

.process-step__title {
  color: #d3d5e4;
  letter-spacing: -0.56px;
  margin-bottom: 16px;
  font-size: 28px;
  font-weight: 500;
  line-height: 110%;
}

.active .process-step__title {
  color: var(--color-accent-secondary);
}

.process-step__text {
  opacity: 0.5;
}

.active .process-step__text {
  opacity: 1;
}

.process-cta {
  --p: 20px;
  height: 400px;
  padding: var(--p);
  border-radius: 16px;
  flex-direction: column;
  display: flex;
  position: relative;
}

.process-cta--offer {
  color: var(--color-black);
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
}

.process-cta--discount {
  background-color: var(--color-accent-primary);
}

.process-cta__msg {
  font-size: 32px;
  font-weight: 500;
  line-height: 1.1;
}

.process-cta__msg--2 {
  flex-direction: column;
  gap: 8px;
  display: flex;
}

.process-cta__msg .process-cta__discount {
  color: #0d59aa;
  background-color: var(--color-accent-secondary);
  width: 88px;
  height: 88px;
  padding: 0;
}

.process-cta__img {
  aspect-ratio: 1;
  border-radius: 50%;
  width: 145px;
  height: auto;
  margin: auto;
}

.process-cta__btn {
  margin-top: auto;
}

.icon-decor-circle {
  position: absolute;
  bottom: 0;
  right: 0;
}

@media (width >= 768px) {
  .process__cta-wrap {
    flex-direction: row;
  }

  .process {
    --gleft: 288px;
  }
}

@media (width >= 1200px) {
  .process {
    --gleft: 115px;
  }
}

@media (width >= 1440px) {
  .process {
    --gleft: 115px;
    --ah: 250px;
    --bg-p-x: center;
    padding: 120px 0 20px;
  }

  .process__container {
    gap: 180px;
  }

  .process__box {
    width: calc(50% + 20px);
    margin-left: auto;
  }

  .process-step__text {
    max-width: 372px;
  }

  .process-cta {
    --p: 30px;
  }

  .process-cta__img {
    bottom: var(--p);
    right: var(--p);
    width: 209px;
    position: absolute;
  }

  .process-cta__msg {
    font-size: 45px;
  }

  .process-cta__msg--2 {
    flex-direction: row;
    align-items: center;
    gap: 16px;
  }

  .process-cta__msg .process-cta__discount {
    width: 110px;
    height: 110px;
  }
}

@media (width >= 1600px) {
  .process {
    --gleft: 0px;
  }

  .process:before {
    width: 100%;
  }
}
