.as-carousel {
  $fakeScroll: #{&}-fake-scroll;

  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: end;
  -webkit-overflow-scrolling: touch;
  position: relative;

  &::-webkit-scrollbar {
    display: none;
  }

  &:not(.horizontal) {
    scroll-snap-type: y mandatory;
    overflow-x: hidden;
    overflow-y: scroll;

    #{$fakeScroll} {
      flex-direction: column;
    }
  }

  &.horizontal {
    scroll-snap-type: x mandatory;
    overflow-x: scroll;
    overflow-y: hidden;
  }

  &-fake-scroll {
    width: 100%;
    height: 100%;
    flex-shrink: 0;
    display: flex;

    &-section {
      width: 100%;
      height: 100%;
      flex-shrink: 0;
      display: flex;
      scroll-snap-align: start;
      scroll-snap-stop: always;
    }
  }

  &-main {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
    overflow: hidden;
    position: fixed;
    z-index: -1;
    top: 0;

    &-top {
      width: 100%;
      font-size: 9em;
      display: flex;
      justify-content: center;
      align-items: center;
      transition: background-color 500ms;
    }

    &-bottom {
      width: 100%;
      flex-shrink: 0;
      display: flex;

      &-section {
        $bottomScroll: #{&}-scroll;

        width: 100%;
        height: 100%;
        align-items: center;
        background-color: var(--as-surface-level-0);
        border-top: 2px solid var(--as-surface-level-4);
        display: flex;
        flex-direction: column;
        flex-shrink: 0;
        overflow: hidden;
        padding: $spacing-20 $spacing-20 0 $spacing-20;
        text-align: justify;

        &:not(:first-child) {
          padding-bottom: 70px;
        }

        &-scroll {
          overflow: hidden;
          max-width: 1200px;
        }
      }
    }
  }
}

.as-home-page {
  &-carousel {
    gap: $spacing-8;
    display: flex;
    flex-direction: column;

    &-heading {
      text-align: center;
    }
  }

  &-button-group {
    display: flex;
    width: 100%;
    justify-content: center;
    gap: $spacing-12;
    margin-bottom: $spacing-12;
    position: fixed;
    bottom: 0;
  }
}
