.timeline-slider {
  display: block;
  padding: var(--PT) 0px var(--PB);

  .timeline-slider__header {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    margin-bottom: 5rem;
    text-align: center;

    .timeline-slider__heading {
      font-size: var(--heading, 1.4rem);
      font-weight: 300;
      line-height: 1.7;
    }

    .timeline-slider__subheading {
      font-size: var(--subheading, 1.8rem);
      font-weight: 300;
      line-height: 1.25;
    }

    .timeline-slider__content {
      font-size: var(--content, 1.8rem);
      font-weight: 300;
      line-height: 1.4;
    }
  }

  .timeline-slider__top {
    align-items: center;
    display: flex;
    font-size: 1.6rem;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 5rem;

    button {
      --size: 5.5rem;

      align-items: center;
      background: #f9f9f9;
      border: none;
      border-radius: 50%;
      cursor: pointer;
      display: flex;
      height: var(--size);
      justify-content: center;
      width: var(--size);

      svg {
        width: 30.25%;
      }

      &.swiper-button-disabled {
        opacity: 0;
        pointer-events: none;
        visibility: none;
      }
    }

    .timeline-slider__thumb-slide {
      width: 12rem;

      .timeline-slider__swiper-title {
        --size: 1.7rem;

        position: relative;
        text-align: center;

        &::before {
          background-color: #d6d2c4;
          bottom: calc(var(--size) / 2);
          content: '';
          left: 50%;
          height: 0.1rem;
          position: absolute;
          translate: -50%;
          width: 100%;
        }

        span {
          align-items: center;
          display: flex;
          flex-direction: column;
          gap: 1.5rem;
          position: relative;
          z-index: 2;

          &::after {
            background-color: #141B4D;
            border-radius: 50%;
            content: '';
            height: var(--size);
            outline: 0.8rem solid var(--background);
            width: var(--size);
          }
        }
      }

      &:first-child .timeline-slider__swiper-title::before,
      &:last-child .timeline-slider__swiper-title::before {
        width: 50%;
      }

      &:first-child .timeline-slider__swiper-title::before {
        translate: 0;
      }

      &:last-child .timeline-slider__swiper-title::before {
        translate: -100%;
      }

      &.swiper-slide-thumb-active .timeline-slider__swiper-title span::after,
      &:hover .timeline-slider__swiper-title span::after {
        background-color: #d0debb;
      }
    }
  }

  .timeline-slider__slide-inner {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;

    &>div {
      width: calc(50% - 2.5rem);
    }

    .timeline-slider__slide-image img {
      border-radius: 1rem;
      height: auto;
    }

    .timeline-slider__slide-context {
      display: flex;
      flex-direction: column;
      font-size: 1.6rem;
      gap: 2rem;
      line-height: 1.7;
      max-width: 48rem;

      .timeline-slider__slide-heading {
        font-size: 1.8rem;
        line-height: 1.25;
      }

      .timeline-slider__slide-subheading {
        font-size: 1.8rem;
        line-height: 1.4;
      }

      p {
        margin-bottom: 0.5rem;

        b,
        strong {
          font-size: 1.4rem;
        }

        &:empty {
          display: block;
          height: 3rem;
        }
      }
    }
  }

  @media screen and (width < 768px) {
    .timeline-slider__header {
      margin-bottom: 4rem;
    }

    .timeline-slider__top {
      font-size: 3.4rem;
      margin-bottom: 2.5rem;

      button {
        --size: 3.3rem;
      }

      .timeline-slider__thumb-slide .timeline-slider__swiper-title:before,
      .timeline-slider__thumb-slide .timeline-slider__swiper-title span:after {
        display: none;
      }
    }

    .timeline-slider__slide-inner {
      flex-direction: column;
      gap: 2rem;

      &>div {
        width: 100%;
      }

      .timeline-slider__slide-context {
        font-size: 1.4rem;

        .timeline-slider__slide-heading {
          display: none;
        }

        .timeline-slider__slide-subheading {
          font-size: 2.2rem;
        }

        p:empty {
          height: 2rem;
        }
      }
    }
  }
}