:root {
    /* ─── Colors ─────────────────────────────────── */

    /* Primary */
    --color-purple-50:  hsl(260, 100%, 95%);
    --color-purple-300: hsl(264, 82%, 80%);
    --color-purple-500: hsl(263, 55%, 52%);

    /* Neutral */
    --color-white:     hsl(0, 0%, 100%);
    --color-grey-100:  hsl(214, 17%, 92%);
    --color-grey-200:  hsl(0, 0%, 81%);
    --color-grey-400:  hsl(224, 10%, 45%);
    --color-grey-500:  hsl(217, 19%, 35%);
    --color-dark-blue: hsl(219, 29%, 14%);
    --color-black:     hsl(0, 0%, 7%);

    /* ─── Typography ─────────────────────────────── */
    --font-body: 'Barlow Semi Condensed', sans-serif;

    /* Font weights */
    --font-weight-medium:   500;
    --font-weight-semibold: 600;

    /* ─── Spacing ─────────────────────────────────── */
    --space-50:  0.25rem;  /*  4px */
    --space-100: 0.5rem;   /*  8px */
    --space-200: 1rem;     /* 16px */
    --space-300: 1.5rem;   /* 24px */
    --space-400: 2rem;     /* 32px */
    --space-500: 2.5rem;   /* 40px */

    /* ─── Border radius ──────────────────────────── */
    --radius-sm:   8px;
    --radius-md:   12px;
    --radius-lg:   24px;
    --radius-full: 50%;

    /* ─── Layout breakpoints ─────────────────────── */
    --bp-mobile:  375px;
    --bp-desktop: 1440px;
}

/* ─── Text Presets ───────────────────────────────── */

/* text-preset-1 — Barlow Semi Condensed Semibold, 20px, 120% line-height, 0px ls */
.text-preset-1 {
    font-family: var(--font-body);
    font-size: 1.25rem;
    font-weight: var(--font-weight-semibold);
    line-height: 1.2;
    letter-spacing: 0;
}

/* text-preset-2 — Barlow Semi Condensed Medium, 13px, 110% line-height, 0px ls */
.text-preset-2 {
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: var(--font-weight-medium);
    line-height: 1.1;
    letter-spacing: 0;
}

/* text-preset-3 — Barlow Semi Condensed Medium, 13px, 140% line-height, 0px ls */
.text-preset-3 {
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: var(--font-weight-medium);
    line-height: 1.4;
    letter-spacing: 0;
}

/* text-preset-4 — Barlow Semi Condensed Medium, 11px, 110% line-height, 0px ls */
.text-preset-4 {
    font-family: var(--font-body);
    font-size: 0.6875rem;
    font-weight: var(--font-weight-medium);
    line-height: 1.1;
    letter-spacing: 0;
}

html {
    font-size: 100%;
    box-sizing: border-box;
}

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

body {
    background-color: #F6F5F6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 100vh;
    padding-top: 73px;
}

.testimonials {
    margin: 0 35px;
    display: grid;
    gap: var(--space-400);
}

.testimonial-card {
    box-shadow: 40px 40px 50px rgba(72, 85, 106, 0.247378);
    border-radius: var(--space-100);
    padding: var(--space-400);
    display: flex;
    flex-direction: column;
    gap: var(--space-200);
}

.testimonial-card-purple {
    background-color: var(--color-purple-500);
}

.testimonial-card-grey {
    background-color: var(--color-grey-500);
}

.testimonial-card-dark-blue {
    background-color: var(--color-dark-blue);
}

.testimonial-card-white {
    background-color: var(--color-white);
}

.testimonial-card__author-info {
    display: flex;
    flex-direction: row;
}

.testimonial-card__author-avatar {
    width: 28px;
    height: 28px;
    border-radius: var(--radius-full);
}

.circle-purple {
    border: 2px solid var(--color-purple-300);
}

.testimonial-card__author-details {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-left: 17px;
    gap: 2px;
}

.testimonial-card__highlight {
}

.testimonial-card__review {
}

.text-white {
    color: var(--color-white);
}

.text-grey-500 {
    color: var(--color-grey-500);
}

.text-grey-400 {
    color: var(--color-grey-400);
}

.text-grey-200 {
    color: var(--color-grey-200);
}

.text-grey-100 {
    color: var(--color-grey-100);
}

.text-purple-50 {
    color: var(--color-purple-50);
}

.attribution {
    text-align: center;
    margin: var(--space-400) 0;
    color: var(--color-grey-500);
}

.attribution a {
    color: var(--color-dark-blue);
}

.attribution a:focus-visible {
    outline: 2px solid var(--color-dark-blue);
}

/* breakpoints tablet */
@media (min-width: 768px) {
    .testimonials {
        margin: 0 60px;
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
            "card1 card1"
            "card2 card3"
            "card4 card4"
            "card5 card5";
    }

    .testimonial-card:nth-child(1) { grid-area: card1; }
    .testimonial-card:nth-child(2) { grid-area: card2; }
    .testimonial-card:nth-child(3) { grid-area: card3; }
    .testimonial-card:nth-child(4) { grid-area: card4; }
    .testimonial-card:nth-child(5) { grid-area: card5; }

    .testimonial-card-purple {
        background-image: url("images/bg-pattern-quotation.svg");
        background-repeat: no-repeat;
        background-position: top right 165px;
    }
}

/* breakpoints desktop */
@media (min-width: 1440px) {
    .testimonials {
        max-width: 1114px;
        margin: auto;
        grid-template-columns: repeat(4, 1fr);
    }

    .testimonial-card:nth-child(1) { grid-column: 1 / 3; grid-row: 1; }
    .testimonial-card:nth-child(2) { grid-column: 3;     grid-row: 1; }
    .testimonial-card:nth-child(3) { grid-column: 1;     grid-row: 2; }
    .testimonial-card:nth-child(4) { grid-column: 2 / 4; grid-row: 2; }
    .testimonial-card:nth-child(5) { grid-column: 4;     grid-row: 1 / 3; }

    .testimonial-card-purple {
        background-position: top right 60px;
    }
}