.features {
  background-color: var(--surface-2);
  margin-top: 2rem;
  padding-block: 6rem;

  .features__header {
    text-align: center;
  }

  .features__cta {
    text-align: center;
    width: 100%;
    display: block;

    button {
      background-color: var(--brand);
      color: var(--on-brand);
      font-weight: 700;
    }
  }

  p {
    color: var(--text-muted);
  }

  h2 {
    text-align: center;

    .color {
      font-weight: 800;
    }
  }

  .cards {
    display: grid;
    gap: 1.5rem;
    margin-block: 4rem;

    .card {
      --bg-color: var(--surface);
      --color: var(--text);
      --accent-color: var(--brand);
      --accent-color-bg: rgba(76, 73, 201, 0.1);
      --subtle-color: var(--text-muted);

      h3 {
        font-weight: 800;
        color: var(--color);
      }

      &.card.blue {
        --bg-color: var(--brand);
        --color: #F4F1FF;
        --accent-color-bg: #F4F1FF19;
        --subtle-color: #F4F1FFCC;
        --accent-color: #F4F1FF;
      }

      &.card.purple {
        --bg-color: #E2D7FF;
        --color: var(--text);
        --accent-color-bg: #FFFFFF80;
        --subtle-color: var(--text-muted);
        --accent-color: var(--text);
      }

      &.card.magenta {
        --bg-color: #973773;
        --color: #FFEFF4;
        --accent-color-bg: #FFFFFF80;
        --subtle-color: #FFEFF480;
        --accent-color: var(--text);
      }

      border-radius: 2rem;
      background-color: var(--bg-color);
      padding: 2rem;
      display: grid;
      gap: 1rem;

      &:first-child {
        justify-content: center;
        justify-items: center;
        text-align: center;
      }

      align-items: center;
      color: var(--color);

      .card__icon {
        background-color: var(--accent-color-bg);
        color: var(--accent-color);
        border-radius: 1rem;
        width: 4rem;
        height: 4rem;
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: 20px;
      }

      .card__description {
        margin-block: 0;
        font-size: 14px;
        color: var(--subtle-color);
        line-height: 1.5;
      }

      .card__content {
        width: 100%;
        margin-top: 1rem;
      }

      .sum {
        display: grid;
        gap: .5rem;
        background-color: var(--surface-3);
        border-radius: 1.5rem;
        padding: 1rem;

        .sum__item {
          display: flex;
          justify-content: space-between;
          align-items: center;
          padding-block: .5rem;
          border-bottom: 1px solid var(--border);
          font-size: 12px;
        }

        .sum__total {
          display: flex;
          justify-content: space-between;
          align-items: center;
          padding-block: .5rem;
          font-weight: 600;
          color: var(--brand);
        }
      }

      &.card:last-child .card__description {
        font-size: 16px;
      }

      .agility {
        text-transform: uppercase;
        font-size: 12px;
        font-weight: 600;
        color: var(--subtle-color);
        border-top: 1px solid var(--subtle-color);
        padding-top: 1rem;
        letter-spacing: 1px;
      }
    }
  }

  @media screen and (min-width: 1024px) {
    &.features {
      h2 {
        margin-bottom: 1rem;
      }

      .cards {
        display: grid;
        grid-template-columns: repeat(2, 1fr);

        .card:not(:first-child) {
          grid-template-columns: auto 1fr;
          gap: 1rem 2rem;
          
          .card__icon {
            grid-column: 1;
            grid-row: 1;
          }

          .card__title {
            grid-column: 2;
            grid-row: 1;
          }

          .card__description {
            grid-column: span 2;
            grid-row: 2;
          }
        }

        .card:first-child {
          grid-column: 1;
          grid-row: span 2;
          display: grid;
          column-gap: 4rem;
          align-content: baseline;
        }

        > * {
          grid-column: span 2;
        }

        .card:last-child {
          grid-column: 2 / span 2;

          .card__description {
            font-size: 20px;
          }
        }

        .card .card__description {
          font-size: 16px;
        }
      }
    }
  }
}

@media (prefers-color-scheme: dark) {
  .features .cards .card.card.purple {
    --bg-color: #2a2550;
    --accent-color-bg: rgba(76, 73, 201, 0.12);
    --accent-color: var(--brand);
  }
}