/*
* Design Sizes:
*   Mobile: 375x2615
*   Tablet: 768 × 1760
*   Desktop: 1440 × 1845
*/

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

:root {
    /* Colors */
    --col-medium-purple: hsla(234, 25%, 52%, 1);
    --col-dark-purple: hsla(234, 53%, 16%, 1);
    --col-light-purple: hsla(233, 10%, 56%, 1);

    --col-hot-pink: hsla(341, 92%, 62%, 1);
    --col-light-pink: hsla(341, 100%, 83%, 1);

    --col-white: hsla(0, 0%, 100%, 1);

    --col-orange-to-pink: linear-gradient(180deg, #ff6f48 0.04%, #f02aa6 100%);
    --col-purple-to-pink: linear-gradient(180deg, #4851ff 0%, #f02aa6 99.92%);

    --col-orange-to-pink-hover: linear-gradient(
            0deg,
            rgba(255, 255, 255, 0.5),
            rgba(255, 255, 255, 0.5)
        ),
        linear-gradient(180deg, #ff6f48 0%, #f02aa6 100%);
    --col-purple-to-pink-hover: linear-gradient(
            0deg,
            rgba(255, 255, 255, 0.5),
            rgba(255, 255, 255, 0.5)
        ),
        linear-gradient(180deg, #4851ff -54.32%, #f02aa6 100%);

    --col-white-to-off-white: linear-gradient(180deg, #ffffff 0%, #f0f1ff 100%);

    /* Typography */
    --fs-heading-xl: 3.5rem;
    --lh-heading-xl: 4.4375rem;
    --fw-headings: 800;

    --fs-heading-l: 2.5rem;
    --lh-heading-l: 3.1875rem;

    --fs-heading-m: 1.5rem;
    --lh-heading-m: 2rem;

    --fs-heading-s: 1.25rem;
    --lh-heading-s: 1.5625rem;

    --fs-body-m: 1.125rem;
    --lh-body-m: 1.75rem;
    --fw-body-m: 500;

    --fs-body-s: 1rem;
    --lh-body-s: 1.625rem; /* design system says 28px / 1.75rem, but in the elements themselves its 26px / 1.625rem */
    --fw-body-s: 500;
    /* Sizing */

    --border-radius: 1.75rem;

    /* Other */
}

img {
    width: 100%;
    height: 100%;
}

body {
    min-height: 100vh;
    font-family: "Plus Jakarta Sans", sans-serif;

    display: flex;
    flex-direction: column;

    background: var(--col-white-to-off-white);
}

.banner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 1rem 0 1rem;
}

.logo {
    width: 5.5625rem;
    vertical-align: center;
}

.btn {
    font-size: var(--fs-body-s);
    line-height: var(--lh-body-s);
    font-weight: 700;

    padding: 0.625rem 1.5rem;
    border-radius: var(--border-radius);
    text-decoration: none;
}

.banner__getting-started {
    background-color: var(--col-dark-purple);
    color: var(--col-white);
}

.banner__getting-started:where(:focus, :hover) {
    background-color: var(--col-medium-purple);
}

.intro {
    margin-top: 2.375rem;
    margin-inline: 1rem;
    overflow: hidden;
}
.intro__header {
    font-size: var(--fs-heading-l);
    line-height: var(--lh-heading-l);
    font-weight: var(--fw-headings);

    color: var(--col-dark-purple);
}

.intro__body,
.card__body {
    font-size: var(--fs-body-s);
    line-height: var(--lh-body-s);
    font-weight: var(--fw-body-s);

    color: var(--col-light-purple);
}
.intro__body {
    margin-top: 1.625rem;
}
.intro__getting-started {
    display: inline-block;
    margin-top: 1.5rem;

    padding: 0.9375rem 2.3438rem;

    background: var(--col-orange-to-pink);
    color: var(--col-white);
    align-self: center;
}

.intro__getting-started:where(:focus, :hover) {
    background: var(--col-orange-to-pink-hover);
}

.intro__image {
    display: block;
    margin-top: 1.875rem;
    /* width: 100%; */
    z-index: -1;
}

.intro__image img {
    display: block;
    margin-left: -13%;
    width: 125%;
}

main {
    margin-inline: auto;
}

.cards {
    display: flex;
    flex-direction: column;

    margin-top: -1.125rem;
    margin-inline: 1rem;
    gap: 2.375rem;

    justify-content: center;

    max-width: 70rem;
}
.card {
    border-radius: 0.625rem;
    background: white;

    padding-inline: 1.75rem;

    max-width: 21.875rem;
}
.cards__header {
    font-size: var(--fs-heading-m);
    line-height: var(--lh-heading-m);
    font-weight: var(--fw-headings);

    color: var(--col-white);
    background: var(--col-orange-to-pink);
    padding: 1.5rem 1.875rem 2rem 1.6875rem;
}
.card__image {
    position: relative;
    width: 3.5rem;
    height: 3.5rem;
    top: -1.4375rem;
}
.card__header {
    margin-top: 0rem;

    font-size: var(--fs-heading-s);
    line-height: var(--lh-heading-s);
    font-weight: var(--fw-headings);

    color: var(--col-dark-purple);
}
.card__body {
    margin-top: 1rem;
}
.card__getting-started {
    display: inline-block;
    font-size: 1.125rem;
    padding: unset;
    margin-top: 1.5rem;
    margin-bottom: 2rem;

    color: var(--col-hot-pink);
}

.card__getting-started:where(:focus, :hover) {
    color: var(--col-light-pink);
}

.footer {
    margin-top: 5.25rem;
    background: var(--col-dark-purple);

    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 2.25rem 1rem;
}

.footer__getting-started {
    background: var(--col-purple-to-pink);
    color: var(--col-white);
}

.footer__getting-started:where(:focus, :hover) {
    background: var(--col-purple-to-pink-hover);
}

@media screen and (min-width: 48rem) {
    header {
        position: relative;
        overflow: hidden;
    }
    .banner {
        padding: 1.5rem 2.4688rem 0 2.4688rem;
    }
    .intro {
        margin-top: 6.1875rem;
        margin-left: 2.4688rem;
        overflow: unset;
        display: flex;
        flex-direction: row;
        flex: 1 0 50%;
        /* width: 51%; */
        padding-bottom: 13.125rem;
        position: relative;
    }

    .intro > div {
        flex-basis: 56%;
    }

    .intro__image {
        display: block;
        position: absolute;
        top: -18.1875rem; /*-38vw;*/
        right: -25.25rem; /*-52.5vw;*/
    }

    .intro__image img {
        display: block;
        /* margin-right: 113%; */
        width: 43.4375rem;
    }

    .cards {
        margin-top: unset;
        margin-inline: 2.4688rem;

        flex-direction: row;
        flex-wrap: wrap;
        gap: 0.6875rem;
        row-gap: 3.3125rem;
    }

    .cards > * {
        flex-basis: 49%;
    }

    .card {
        padding-inline: 2rem 1.3125rem;
    }

    .cards__header {
        padding: 3.5rem 1.3125rem 8.6875rem 2rem;
    }

    .footer {
        margin-top: 5.5rem;
        padding: 2.25rem 2.4688rem;
    }
}

@media screen and (min-width: 90rem) {
    /* 1440px */
    :root {
        --fs-heading-m: 2rem;
        --lh-heading-m: 2.5rem;

        --fs-heading-s: 1.5rem;
        --lh-heading-s: 1.875rem;
    }

    .btn {
        font-size: var(--fs-body-m);
        line-height: var(--lh-body-m);

        padding: 0.875rem 1.9688rem;
    }

    .banner {
        padding: 1.5rem 10.3125rem 0 10.3125rem;
    }

    .intro {
        margin-top: 10.875rem;
        margin-left: 10.3125rem;
        padding-bottom: 15.625rem;
    }

    .intro > div {
        flex-basis: 38%;
    }

    .intro__header {
        font-size: var(--fs-heading-xl);
        line-height: var(--lh-heading-xl);
    }

    .intro__body {
        font-size: var(--fs-body-m);
        line-height: var(--lh-body-m);
    }

    .intro__getting-started {
        padding: 1.1875rem 1.9375rem 1rem 2rem;
        margin-top: 2.625rem;
    }

    .intro__image {
        top: -26.9375rem; /*-38vw;*/
        right: -30.375rem; /*-52.5vw;*/
    }

    .intro__image img {
        width: 65.375rem;
    }

    .cards {
        margin-inline: 10.3125rem;
        gap: 1.875rem;
        row-gap: 5rem;
    }

    .cards__header {
        padding: 4rem 2rem 8.625rem 2rem;
    }

    .card {
        display: flex;
        flex-direction: column;
        padding-inline: 2rem;
    }

    .card__header {
        margin-top: 0.5rem;
    }

    .card__body {
        margin-top: 1.5rem;
        margin-bottom: 1.5rem;
        font-size: var(--fs-body-m);
        line-height: var(--lh-body-m);
    }

    .card__getting-started {
        padding: unset;
        /* margin-top: ; */
        margin-top: auto;
        margin-bottom: 2.5rem;
    }

    .logo {
        width: 7.125rem;
    }

    .footer {
        margin-top: 8.75rem;
        padding: 2rem 10.3125rem;
    }
}
