.homepage--text {
  &.top-left {
    top: 25px;

    &.stacked {
      left: 0;
    }
  }

  &.top-center {
    top: 25px;

    &.stacked {
      left: 50%;
      transform: translateX(-50%);
    }
  }

  &.top-right {
    top: 25px;

    &.stacked {
      right: 0;
    }
  }

  &.left {
    bottom: 15px;

    &.stacked {
      left: 0;
      top: 50%;
      transform: translateY(-50%);
    }
  }

  &.center {
    top: 50%;
    &.stacked {
      left: 50%;
      transform: translate(-50%, -50%);
    }

    &:not(.stacked) {
      transform: translateY(-50%);
    }
  }

  &.right {
    bottom: 15px;

    &.stacked {
      right: 0;
      top: 50%;
      transform: translateY(-50%);
    }
  }

  &.bottom-left {
    bottom: 15px;

    &.stacked {
      left: 0;
    }
  }

  &.bottom-center {
    bottom: 15px;

    &.stacked {
      left: 50%;
      transform: translateX(-50%);
    }
  }

  &.bottom-right {
    bottom: 15px;

    &.stacked {
      right: 0;
    }
  }

  &.stacked {
    width: fit-content;
    gap: 12px;
  }

  &.position-above {
    z-index: 12;
  }

  &.banner--full-height {
    &.bottom-right,
    &.bottom-center,
    &.bottom-left,
    &.right,
    &.left {
      bottom: 25px;
    }
  }
}

@media screen and (min-width: 990px) {
  .homepage--title.heading--large {
    font-size: 48px;
  }

  .block--wrapper:has(.tile-link):hover {
    .link-with-icon,
    .h0-link {
      color: #d8d8d8;
    }
  }

  .banner-main-homepage-blocks:has(.homepage-blocks--custom-ratio) {
    position: relative;

    &::before {
      content: '';
      display: block;
      padding-top: var(--custom-ratio-desktop);
    }

    .homepage-blocks--custom-ratio {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;

      &.homepage-blocks--multiple {
        display: flex;

        .block--wrapper {
          width: calc(100% / var(--size));
        }
      }

      &:not(.homepage-blocks--multiple) {
        .block--wrapper {
          position: absolute;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
        }
      }
    }
  }
}

@media screen and (max-width: 989px) {
  .homepage-blocks.limit-height-mobile {
    .block--wrapper {
      height: 100%;
      aspect-ratio: 4 / 5;
    }

    &.banner--hero {
      .block--wrapper {
        height: 100%;
        aspect-ratio: 2 / 3;
      }
    }
  }

  .banner-main-homepage-blocks:has(.homepage-blocks--custom-ratio) .block--wrapper {
    &::before {
      content: '';
      display: block;
      padding-top: var(--custom-ratio-mobile);
    }
  }
}
