.banner {
  position: relative;

  .banner__media {
    .banner__image {
      display: block;
      width: 100%;
      height: auto;
      object-fit: cover;

      @media (width >= 1024px) {
        aspect-ratio: 1366 / 557;
      }
    }
  }

  .banner__content {
    position: absolute;
    left: var(--container-margin);
    right: var(--container-margin);
    width: 80%;
    top: 60px;
    justify-content: flex-end;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-small);

    @media (width >= 768px) {
      left: var(--spacing-big);
      gap: var(--spacing-xxsmall);
    }

    @media (width >= 1024px) {
      top: 80px;
      left: var(--container-margin);
      gap: var(--spacing-small);
      justify-content: center;
    }

    .banner__title {
      h1,
      h2,
      h3,
      h4,
      h5,
      h6 {
        color: var(--tertiary-color);
        font-size: var(--fs-xxlarge);
        font-weight: var(--fw-400);
        line-height: var(--lh-xxlarge);
        letter-spacing: 0.96px;

        @media (width >= 768px) {
          font-size: var(--fs-xlarge);
          font-weight: var(--fw-600);
          line-height: var(--lh-xlarge);
          letter-spacing: 0.72px;
        }

        @media (width >= 1024px) {
          font-size: 4.8rem;
          letter-spacing: 1.44px;
          font-weight: var(--fw-400);
          line-height: var(--lh-xxxlarge);
        }
      }
    }

    .banner__subtitle {
      color: var(--tertiary-light-grey);
      font-feature-settings: var(--font-settings);
      font-weight: var(--fw-300);
      font-size: var(--fs-small);
      line-height: 1.7rem;

      @media (width >= 768px) {
        font-size: var(--fs-small);
        font-weight: var(--fw-400);
        line-height: var(--lh-small);
      }

      @media (width >= 1024px) {
        line-height: var(--lh-medium);
        font-size: var(--fs-medium);
        font-weight: var(--fw-300);
      }
    }
  }

  .banner__cta {
    bottom: var(--sizing-3xl);
    left: var(--container-margin);
    right: var(--container-margin);
    position: relative;
    display: inline-block;

    @media (width >= 768px) {
      left: var(--spacing-big);
      bottom: 31px;
    }

    @media (width >= 1024px) {
      position: absolute;
      left: var(--container-margin);
      bottom: 54px;
    }

    .banner__ctalink {
      color: var(--tertiary-color);
      font-feature-settings: var(--font-settings);
      font-weight: var(--fw-600);
      font-size: var(--fs-xsmall);
      line-height: var(--lh-large);
      text-decoration: underline;
      text-decoration-skip-ink: none;
      font-style: italic;
      display: inline-block;
      white-space: normal;
      word-break: break-word;

      @media (width >= 768px) {
        font-size: 1.1rem;
        font-weight: var(--fw-300);
        line-height: var(--lh-xsmall);
      }

      @media (width >= 1024px) {
        font-size: var(--fs-xsmall);
        line-height: var(--lh-large);
      }
    }

    /* Popup container */
    .termsConditionPopup {
      display: none;
      position: absolute;
      bottom: 100%;
      left: 115px;
      transform: translateX(-50%) translateY(-16px);
      background: var(--subtext-grey);
      color: var(--tertiary-color);
      width: 231px;
      min-height: 215px;
      padding: var(--spacing-xsmall) var(--spacing-12);
      box-shadow: 0 2px 7px 0 var(--ui-divider-low);
      z-index: 9;

      ::after {
        content: '';
        background-image: url('/genuine-accessories/icons/tandcpopup_arrow.svg');
        background-repeat: no-repeat;
        background-position: center;
        display: block;
        bottom: -17px;
        position: absolute;
        width: 20px;
        height: 20px;
        left: 18px;
      }

      .termsConditionPopup__list {
        padding-inline: 15px 0;

        ul {
          list-style-type: disc;

          li {
            color: var(--tertiary-white);
            margin-top: 0;
            font-family: var(--nexa-font);
            font-size: var(--fs-xxsmall);
            font-style: normal;
            font-weight: var(--fw-300);
            line-height: var(--lh-17);
          }
        }
      }
    }

    .termsConditionPopup.showTermsPopup {
      display: block;
    }
  }

  &.bottom-alignment {
    .banner__content {
      @media (width >= 1024px) {
        top: 50%;
        bottom: 10%;
      }
    }
  }

  &.center-alignment {
    .banner__content {
      @media (width >= 1024px) {
        top: 50%;
        transform: translateY(-50%);
      }
    }
  }

  &.small-size-banner {
    &::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, #000 18.16%, rgba(0 0 0 / 0%) 108.66%);
      z-index: 1;
      pointer-events: none;

      @media (width >= 768px) {
        background: linear-gradient(90deg, #000 50%, rgba(0 0 0 / 0%) 83.78%);
      }
    }

    .banner__media {
      .banner__image {
        aspect-ratio: 2 / 1;

        @media (width >= 768px) {
          aspect-ratio: 3.9 / 1;
        }
      }
    }

    .banner__content {
      z-index: 2;
      width: 100%;
      left: 0;
      right: 0;
      top: 50%;
      transform: translateY(-50%);
      padding: 0 var(--container-margin);
      gap: var(--spacing-xxsmall);

      @media (width >= 768px) {
        gap: var(--spacing-9);
      }

      @media (width >= 1024px) {
        gap: var(--spacing-small);
      }

      .banner__title {
        h1,
        h2,
        h3,
        h4,
        h5,
        h6 {
          color: var(--tertiary-color);
          text-align: center;
          font-feature-settings: var(--font-settings);
          font-size: var(--fs-xlarge);
          font-style: normal;
          font-weight: var(--fw-400);
          line-height: var(--lh-27);

          @media (width >= 768px) {
            text-align: left;
            font-size: var(--fs-xslarge);
          }

          @media (width >= 1024px) {
            font-size: var(--fs-xxxlarge);
            line-height: var(--lh-xxxlarge);
          }
        }
      }

      .banner__subtitle {
        color: var(--tertiary-color);
        text-align: center;
        font-feature-settings: var(--font-settings);
        font-size: var(--fs-xsmall);
        font-style: normal;
        font-weight: var(--fw-300);
        line-height: var(--lh-xsmall);

        @media (width >= 768px) {
          text-align: left;
          font-size: var(--fs-13);
          line-height: var(--lh-16);
        }

        @media (width >= 1024px) {
          font-size: var(--fs-xlarge);
          line-height: var(--lh-29);
        }
      }
    }
  }
}
