@font-face {
  font-family: 'chaloops-medium';
  src: url('https://legobelgium.s3.eu-west-1.amazonaws.com/loyalty/fonts/ChaloopsMedium.woff2') format('woff2'), url('https://legobelgium.s3.eu-west-1.amazonaws.com/loyalty/fonts/ChaloopsMedium.woff') format('woff');
}

@font-face {
  font-family: 'chaloops-bold';
  src: url('https://legobelgium.s3.eu-west-1.amazonaws.com/loyalty/fonts/ChaloopsBold.woff2') format('woff2'), url('https://legobelgium.s3.eu-west-1.amazonaws.com/loyalty/fonts/ChaloopsBold.woff') format('woff');
}

@font-face {
  font-family: 'effra';
  src: url('https://legobelgium.s3.eu-west-1.amazonaws.com/loyalty/fonts/EffraRegular.woff2') format('woff2'), url('https://legobelgium.s3.eu-west-1.amazonaws.com/loyalty/fonts/EffraRegular.woff') format('woff');
  font-weight: 400;
}

@font-face {
  font-family: 'effra';
  src: url('https://legobelgium.s3.eu-west-1.amazonaws.com/loyalty/fonts/EffraBold.woff2') format('woff2'), url('https://legobelgium.s3.eu-west-1.amazonaws.com/loyalty/fonts/EffraBold.woff') format('woff');
  font-weight: 700;
}

@font-face {
  font-family: 'typewell';
  src: url('https://legobelgium.s3.eu-west-1.amazonaws.com/loyalty/fonts/TypewellRegular.woff2') format('woff2'), url('https://legobelgium.s3.eu-west-1.amazonaws.com/loyalty/fonts/TypewellRegular.woff') format('woff');
  font-weight: 400;
}

@font-face {
  font-family: 'typewell';
  src: url('https://legobelgium.s3.eu-west-1.amazonaws.com/loyalty/fonts/TypewellBold.woff2') format('woff2'), url('https://legobelgium.s3.eu-west-1.amazonaws.com/loyalty/fonts/TypewellBold.woff') format('woff');
  font-weight: 700;
}

.intertoys-lego-landing-U3Fq02 {
  --purple-300: #a776b2;
  --purple-400: #4f2a87;
  --yellow-300: #ffdd00;
  --yellow-400: #fed02e;
  --dark-blue-400: #241f52;

  *,
  *::before,
  *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }

  container-type: inline-size;

  max-width: 1200px;
  width: 100%;
  margin-inline: auto;

  overflow-x: clip;
  background-color: var(--purple-400);

  font-family: 'effra',
  sans-serif;
  color: white;

  p,
  span,
  li,
  a {
    margin-block: 0;

    color: inherit;
    font-family: 'typewell', sans-serif;
    text-decoration: none;
    text-transform: none;
    line-height: normal;
  }

  sup {
    font-size: 0.5em;
    vertical-align: super;
  }

  strong {
    font-family: inherit;
    font-weight: 700;
  }

  h1,
  h2,
  h3,
  h4 {
    margin-block: 0;

    color: white;
    font-family: 'typewell', sans-serif;
    font-weight: 700;
    text-decoration: none;
    text-align: center;
    letter-spacing: 0.05em;
    line-height: 1;
  }

  .header {
    position: relative;

    display: flex;

    z-index: 1;

    .logo {
      position: absolute;
      top: 14px;
      left: 14px;

      display: block;
      width: 10.4%;
      max-width: 80px;
      height: auto;
    }

    .header-content {
      display: flex;
      width: 65%;
      padding-top: 10cqw;
      padding-right: 12px;
      padding-bottom: 10cqw;

      justify-content: flex-end;

      h1 {
        width: 14ch;

        font-family: 'chaloops-medium', sans-serif;
        font-feature-settings: 'ss01';
        font-size: 6.5cqw;
        text-align: center;
        text-wrap: balance;

        .highlight {
          font-family: 'chaloops-bold', sans-serif;
          font-size: 8cqw;
        }

        sup {
          vertical-align: super;
        }
      }

      .header-spaarpas {
        display: none;
      }
    }

    .header-image-container {
      position: relative;

      width: 35%;

      img {
        position: absolute;
        right: 0%;
        bottom: 0;

        width: 100%;
        height: auto;
      }
    }
  }

  .heading-description {
    width: 32ch;

    font-size: 16px;
    font-size: clamp(12px, 4.2cqw, 16px);
    text-wrap: balance;
    text-align: center;
  }

  .how-it-works {
    --ribbon-margin-left: 15%;

    position: relative;

    width: 100%;
    padding-top: 10%;
    padding-bottom: 40px;

    z-index: 0;

    .lego-ribbon {
      position: absolute;
      top: -6%;
      left: 0;

      width: 100%;
      height: 106%;

      background-image: url('https://legobelgium.s3.eu-west-1.amazonaws.com/loyalty/images/lego-ribbon.webp');
      background-size: auto 100%;
      background-position: 5% 0;
      background-repeat: no-repeat;

      pointer-events: none;

      z-index: 999;
    }

    .heading-description-container {
      display: flex;
      margin-bottom: 16px;
      margin-left: var(--ribbon-margin-left);

      justify-content: center;
    }

    .image-wrapper {
      position: relative;

      width: 100%;

      border-radius: 10px;

      aspect-ratio: 375/119;
      overflow: clip;

      z-index: 0;

      img {
        position: absolute;

        width: 100%;
        height: 100%;

        inset: 0;

        object-fit: cover;
      }
    }

    .info {
      display: flex;
      margin-top: 36px;
      margin-left: var(--ribbon-margin-left);

      flex-direction: column;
      align-items: center;

      h2 {
        margin-bottom: 16px;

        color: var(--yellow-300);
        font-family: 'chaloops-bold', sans-serif;
        font-feature-settings: 'ss01';
        font-size: clamp(16px, 5.7cqw, 24px);
        text-align: center;
      }

      p {
        width: 32ch;

        font-family: 'effra', sans-serif;
        font-size: clamp(12px, 4.2cqw, 16px);
        text-align: center;
      }

      .cta {
        margin-block: 16px;
        padding: 12px 24px;

        background-color: var(--yellow-400);
        border-radius: 999px;
        filter: drop-shadow(0 4px 0px rgba(36, 31, 82, 1));

        color: var(--dark-blue-400);
        font-family: 'chaloops-bold', sans-serif;
        font-feature-settings: 'ss01';
        font-size: clamp(12px, 4.2cqw, 16px);
        text-align: center;
        text-decoration: none;

        transition: transform 0.05s ease-out, opacity 0.05s ease-out;

        &:active,
        &:hover {
          filter: drop-shadow(0 1px 0px rgba(36, 31, 82, 1));

          transform: translateY(2px);

          opacity: 0.8;
        }
      }

      .faq-link {
        color: white;
        font-family: 'effra', sans-serif;
        font-size: clamp(12px, 4.2cqw, 16px);
        text-align: center;
        text-decoration: underline;
        text-underline-offset: 3px;

        transition: color 0.1s ease-out;

        &:hover {
          color: rgba(255, 255, 255, 0.5);
        }
      }
    }
  }

  .get-card {
    position: relative;

    display: flex;

    background-color: var(--yellow-400);

    justify-content: space-between;

    .image-container {
      position: relative;

      width: 53%;

      background-image: url('https://legobelgium.s3.eu-west-1.amazonaws.com/loyalty/images/circle-background.svg');
      background-size: 100% auto;
      background-position: center;
      background-repeat: no-repeat;

      z-index: 2;

      img {
        position: absolute;

        top: 50%;
        left: 50%;

        height: 125%;

        translate: -50% -50%;

        &.mobile-spaarpas {
          display: block;
        }

        &.desktop-spaarpas {
          display: none;
        }
      }
    }

    .text-container {
      display: flex;
      width: 47%;
      padding-top: 1lh;
      padding-bottom: 2lh;

      justify-content: center;

      font-size: clamp(14px, 4.8cqw, 18px);

      h2 {
        max-width: 14ch;

        color: var(--purple-400);
        font-family: 'chaloops-bold', sans-serif;
        font-feature-settings: 'ss01';
        font-size: clamp(14px, 4.8cqw, 18px);
        text-align: center;

        .highlight {
          color: var(--purple-300);
        }
      }
    }

    &::after {
      content: '';

      position: absolute;
      right: 0;
      bottom: -1px;
      left: 50%;

      display: block;
      height: 20%;

      background-image: url('https://legobelgium.s3.eu-west-1.amazonaws.com/loyalty/images/section-lego-transition.svg');
      background-size: auto 100%;
      background-position: left;
      background-repeat: no-repeat;

      z-index: 0;
    }
  }

  .save-more {
    margin-block: 24px;

    h2 {
      margin-bottom: 16px;

      color: var(--yellow-400);
      font-family: 'chaloops-bold', sans-serif;
      font-feature-settings: 'ss01';
      font-size: clamp(16px, 5.7cqw, 24px);
      text-align: center;
    }

    p {
      max-width: 36ch;
      margin-inline: auto;

      font-family: 'effra', sans-serif;
      font-size: clamp(12px, 4.2cqw, 16px);
      text-align: center;
    }
  }

  .choose-set {
    padding-bottom: 24px;

    h2 {
      margin-bottom: 32px;

      font-family: 'typewell', sans-serif;
      font-weight: 700;
      font-size: clamp(16px, 5.7cqw, 24px);
      text-align: center;
    }

    .accordion {
      --accordion-content-height: 0px;

      display: flex;
      width: 100%;
      padding-inline: 16px;

      flex-direction: column;
      align-items: center;

      .accordion-heading {
        position: relative;

        width: 100%;
        max-width: 450px;
        margin-inline: auto;
        padding-block: 8px;

        background-color: white;
        border: none;
        border-radius: 8px;

        color: var(--purple-300);
        font-family: 'typewell', sans-serif;
        font-weight: 700;
        font-size: clamp(12px, 4.2cqw, 16px);

        cursor: pointer;

        transition: background-color 0.1s ease-out, color 0.1s ease-out;

        span {
          display: block;

          color: inherit;
          font-family: 'typewell', sans-serif;
          font-size: clamp(10px, 3.7cqw, 14px);
        }

        .accordion-icon {
          position: absolute;
          top: 50%;
          right: 10px;

          display: grid;
          width: 24px;
          padding: 4px;

          background-color: var(--purple-300);
          border-radius: 50%;

          place-items: center;
          aspect-ratio: 1/1;
          translate: 0 -50%;

          transition: background-color 0.3s ease-out;

          svg {
            width: 10px;

            fill: white;

            rotate: 45deg;

            transition: rotate 0.3s ease-out, fill 0.3s ease-out;
          }
        }

        &.open {
          background-color: var(--purple-300);

          color: white;

          .accordion-icon {
            background-color: white;

            svg {
              fill: var(--purple-300);

              rotate: 0deg;
            }
          }
        }
      }

      .accordion-content {
        position: relative;

        width: 100%;
        height: var(--accordion-content-height);

        overflow: clip;

        transition: height 0.3s ease-out;

        .product-grid {
          position: relative;

          display: flex;
          padding: 16px 0;

          justify-content: center;
          align-items: flex-end;
          flex-wrap: wrap;
          gap: 16px 12px;

          .product-item {
            position: relative;

            display: flex;
            width: calc(33% - 16px);
            height: max-content;
            padding-inline: 8px;
            padding-bottom: 16px;

            flex-direction: column;
            align-items: center;
            justify-content: flex-end;

            cursor: pointer;

            transition: opacity 0.1s ease-out;

            z-index: 10;

            img {
              position: relative;

              display: block;
              width: 100%;
              aspect-ratio: 1/1;
              object-fit: contain;
              object-position: bottom left;

              transition: scale 0.3s ease-out;

              z-index: 2;
            }

            span {
              position: absolute;
              right: 8px;
              bottom: 4px;

              color: white;
              font-family: 'typewell', sans-serif;
              font-size: clamp(10px, 3.7cqw, 14px);

              z-index: 2;
            }

            &::after {
              content: '';

              position: absolute;
              right: 0;
              bottom: 0;
              left: 0;

              display: block;
              height: 50%;

              background-color: var(--purple-300);

              z-index: 1;
            }

            &:nth-of-type(3n + 2):not(:last-child):not(:nth-last-child(2))::before {
              content: '';

              position: absolute;
              bottom: 8px;
              left: 50%;

              width: calc(100% + 32px);
              height: 1px;

              background-color: var(--purple-300);

              translate: -50%;

              z-index: 0;
            }

            &:hover span {
              text-decoration: underline;
              text-underline-offset: 2px;
            }

            &:hover img {
              scale: 0.9;
            }
          }
        }

        &::before {
          content: '';

          position: absolute;
          top: 0;
          bottom: 32px;
          left: 50%;

          width: 75%;
          min-width: 100px;
          max-width: 400px;

          border: 1px solid var(--purple-300);
          border-top: 0;

          translate: -50%;
        }
      }

      +.accordion {
        margin-top: 16px;
      }

      &:first-child .product-item:nth-child(6) img {
        width: 85%;
      }

      &:first-child .product-item:nth-last-child(2) img {
        width: 70%;
      }

      &:nth-child(2) .product-item:nth-child(2) img {
        width: 75%;
      }

      &:nth-child(4) .product-item:last-child img {
        width: 110%;
      }

      &:last-child .product-grid .product-item img {
        aspect-ratio: auto;
        padding-top: 10%;
        width: 110%;
      }
    }
  }

  .start-now {
    margin-top: 24px;

    h2 {
      margin-bottom: 8px;

      color: var(--yellow-400);
      font-family: 'chaloops-bold', sans-serif;
      font-feature-settings: 'ss01';
      font-size: clamp(16px, 5.7cqw, 24px);
      text-align: center;
    }

    p {
      font-family: 'typewell', sans-serif;
      font-size: clamp(12px, 4.2cqw, 16px);
      text-align: center;

      a {
        color: white;
        text-decoration: underline;
        text-underline-offset: 3px;

        transition: opacity 0.3s ease-out;

        &:hover {
          opacity: 0.8;
        }
      }
    }

    .button-container {
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
      gap: 16px;
      margin-top: 32px;

      a {
        display: block;
        width: fit-content;
        padding: 12px 24px;

        background-color: var(--yellow-400);
        border-radius: 999px;
        filter: drop-shadow(0 4px 0px rgba(36, 31, 82, 1));

        color: var(--dark-blue-400);
        font-family: 'chaloops-bold', sans-serif;
        font-feature-settings: 'ss01';
        font-size: clamp(12px, 4.2cqw, 16px);
        text-align: center;
        text-decoration: none;

        transition: transform 0.05s ease-out, opacity 0.05s ease-out;

        &:active,
        &:hover {
          filter: drop-shadow(0 1px 0px rgba(36, 31, 82, 1));

          transform: translateY(2px);

          opacity: 0.8;
        }
      }
    }
  }

  .faq {
    position: relative;

    margin-top: 100px;
    padding-bottom: 40px;
    padding-inline: 12px;

    background-color: var(--dark-blue-400);

    .faq-heading {
      position: relative;

      width: 50%;
      max-width: 506px;

      translate: 0 -25%;

      z-index: 1;
    }

    &::after {
      content: '';

      position: absolute;
      top: 0;
      left: 0;

      width: 100%;
      height: 40px;

      background-image: url('https://legobelgium.s3.eu-west-1.amazonaws.com/loyalty/images/section-faq-transition.svg');
      background-size: auto 100%;
      background-position: left;
      background-repeat: no-repeat;

      translate: 0 calc(-100% + 1px);
    }

    .faq-container {
      --answer-height: 0px;

      max-width: 768px;
      margin-inline: auto;

      border-radius: 8px;
      background-color: var(--purple-300);
      filter: drop-shadow(0 3px 0px var(--purple-400));

      .faq-question {
        position: relative;

        display: flex;
        width: 100%;
        padding: 12px;
        padding-right: 100px;

        background-color: transparent;
        border: none;

        color: white;
        font-family: 'typewell', sans-serif;
        font-weight: 700;
        font-size: clamp(14px, 4.8cqw, 18px);
        text-align: left;

        cursor: pointer;

        justify-content: flex-start;

        transition: color 0.3s ease-out;

        .faq-icon {
          position: absolute;
          top: 50%;
          right: 10px;

          display: grid;
          width: 24px;
          padding: 4px;

          background-color: var(--dark-blue-400);
          border-radius: 50%;

          place-items: center;
          aspect-ratio: 1/1;

          translate: 0 -50%;

          transition: background-color 0.3s ease-out;

          svg {
            width: 10px;

            fill: white;

            rotate: 45deg;

            transition: rotate 0.3s ease-out, fill 0.3s ease-out;
          }
        }

        &.open .faq-icon {
          background-color: white;

          svg {
            rotate: 0deg;

            fill: var(--dark-blue-400);
          }
        }

        &:hover {
          .faq-icon {
            background-color: white;

            svg {
              fill: var(--dark-blue-400);
            }
          }
        }
      }

      .faq-answer {
        display: block;
        height: var(--answer-height);
        padding-inline: 12px;

        overflow: clip;

        transition: height 0.3s ease-out;

        p {
          max-width: 80ch;
          padding-bottom: 16px;

          color: var(--dark-blue-400);

          span {
            display: block;
            margin-top: 0.5lh;
          }

          a {
            color: var(--dark-blue-400);
            text-decoration: underline;
          }
        }
      }

      &+.faq-container {
        margin-top: 16px;
      }
    }

    .legal {
      margin-top: 40px;

      font-family: 'typewell', sans-serif;
      font-size: clamp(12px, 4.2cqw, 16px);
      text-align: center;

      span {
        display: block;
      }

      a {
        color: white;
        text-decoration: underline;
        text-underline-offset: 3px;

        transition: color 0.3s ease-out;

        &:hover {
          color: rgba(255, 255, 255, 0.5);
        }
      }
    }

    .copyright {
      display: block;
      margin-top: 40px;

      font-size: clamp(10px, 3.7cqw, 12px);
      text-align: center;
      text-wrap: balance;

      span {
        display: block;
      }
    }
  }

  /* ********** UTILS ********** */

  .highlight {
    color: var(--yellow-300);
    font-weight: bold;
    font-family: inherit;
  }

  .mobile {
    @media (min-width: 768px) {
      display: none;
    }
  }

  .desktop {
    display: none;

    @media (min-width: 768px) {
      display: block;
    }
  }

  /* ********** MEDIA QUERIES ********** */
  /* ********** TABLET ********** */
  @media (min-width: 768px) {
    .header {
      justify-content: space-between;

      .header-content {
        display: flex;
        width: 50%;
        padding-block: 5cqw;
        padding-left: 10%;

        flex-direction: column;
        align-items: center;
        justify-content: center;

        h1 {
          margin-bottom: 16px;

          font-size: 6cqw;

          .highlight {
            font-size: 7cqw;
          }
        }

        .header-spaarpas {
          display: block;
          width: 60%;

          object-fit: contain;
        }
      }
    }

    .how-it-works {
      --ribbon-margin-left: 0;

      display: flex;
      padding-top: 2%;
      padding-bottom: 0;

      z-index: 1;

      .lego-ribbon {
        top: -13%;

        height: 113%;

        background-size: 100% auto;
      }

      .heading-description-container {
        display: none;
      }

      .image-wrapper {
        width: 55%;

        border-radius: 0 38px 38px 0;

        img {
          object-position: right;
        }
      }

      .info {
        width: 45%;
        margin-top: 0;
        padding-block: 36px;
      }
    }

    .get-card {
      .image-container {
        background-size: 70% auto;

        img {
          width: 100%;
          height: auto;

          &.mobile-spaarpas {
            display: none;
          }

          &.desktop-spaarpas {
            display: block;
          }
        }
      }

      .text-container {
        padding-top: 2lh;
        padding-bottom: 4lh;

        font-size: 24px;

        h2 {
          font-size: 24px;
        }
      }
    }

    .choose-set {
      padding-inline: 24px;

      h2 {
        font-size: 4cqw;
      }

      .accordion {
        position: relative;

        max-width: 1100px;
        margin-inline: auto;
        padding-top: 1lh;

        font-size: clamp(24px, 4cqw, 38px);

        .accordion-heading {
          position: absolute;
          top: 0;
          left: 48px;

          width: max-content;
          max-width: none;
          padding-inline: 12px;

          background-color: var(--purple-400);
          border-radius: 0;

          color: white;
          font-size: 3cqw;
          text-transform: uppercase;
          white-space: nowrap;

          cursor: default;

          z-index: 1;

          .accordion-icon {
            display: none;
          }

          span {
            display: inline;

            font-size: clamp(18px, 2.7cqw, 26px);
            text-transform: none;
          }
        }

        .accordion-content {
          height: auto;

          cursor: default;

          overflow: visible;

          .product-grid {
            .product-item {
              width: calc(20% - 12px);

              &::before {
                display: none;
              }
            }
          }

          &::before {
            display: none;
          }
        }

        &::after {
          content: '';

          position: absolute;
          inset: 3cqw;

          border: 2px solid var(--purple-300);
        }

        &:nth-child(3) .product-item:last-of-type {
          translate: 0 10%;
        }

        &:nth-child(3) .product-item:nth-last-of-type(2) {
          position: absolute;
          top: 0;
          right: 0;

          translate: 0 -60%;

          z-index: 10;
        }

        &:nth-child(5) .accordion-content .product-grid {
          gap: 20px;

          .product-item {
            width: calc(25% - 20px);
          }
        }
      }
    }

    .faq {
      margin-top: 15cqw;
      padding-inline: 10cqw;

      &::after {
        height: 10cqw;
      }
    }
  }

  @media (min-width: 950px) {
    .header {
      .header-content {
        width: 55%;
      }

      .header-image-container {
        width: 45%;
      }
    }

    .how-it-works {
      .lego-ribbon {
        top: -15%;

        height: 115%;
      }

      .image-wrapper {
        width: 55%;
      }

      .info {
        width: 45%;
        padding-block: 5cqw;

        h2 {
          font-size: 4cqw;
        }

        p {
          font-size: 1.6cqw;
        }

        .cta {
          font-size: 1.6cqw;
        }
      }
    }

    .get-card {
      .text-container {
        font-size: 24px;

        h2 {
          font-size: 4cqw;
        }
      }
    }

    .save-more {
      margin-block: 4cqw;

      h2 {
        font-size: 4cqw;
      }

      p {
        max-width: 48ch;

        font-size: 2cqw;
      }
    }

    .choose-set {
      padding-inline: 10cqw;
    }

    .faq {
      .faq-container {
        .faq-question {
          font-size: 1.6cqw;

          &:hover {
            color: rgba(255, 255, 255, 0.4);
          }
        }

        .faq-answer {
          font-size: 1.3cqw;
        }
      }
    }
  }
}