:root {
  --red: hsl(0, 78%, 62%);
  --cyan: hsl(180, 62%, 55%);
  --orange: hsl(34, 97%, 64%);
  --blue: hsl(212, 86%, 64%);

  --neutral-dark-blue: hsl(234, 12%, 34%);
  --neutral-grayish-blue: hsl(229, 6%, 66%);
  --neutral-light-gray: hsl(0, 0%, 98%);
}

/* * 1. Use a more-intuitive box-sizing model. */
*,
*/ *::before,
*::after {
  box-sizing: border-box;
}
/*
  2. Remove default margin
*/
* {
  margin: 0;
}
/*
  3. Allow percentage-based heights in the application
*/
html,
body {
  height: 100%;
}
/*
  Typographic tweaks!
  4. Add accessible line-height
  5. Improve text rendering
*/
body {
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
/*
  6. Improve media defaults
*/
img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}
/*
  7. Remove built-in form typography styles
*/
input,
button,
textarea,
select {
  font: inherit;
}
/*
  8. Avoid text overflows
*/
p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}

h1,
h2,
h3 {
  line-height: 1;
}

body {
  font-size: 15px;
  font-family: 'Poppins', serif;
  background-color: var(--neutral-light-gray);
}

.main__container {
  padding: 5rem 1rem;

  .main__container-title {
    display: flex;
    flex-direction: column;
    text-align: center;

    color: var(--neutral-grayish-blue);
    text-align: center;
    font-size: 1.5rem;
    line-height: 2rem;
    font-weight: 400;
    margin-bottom: 1rem;

    span {
      font-weight: 600;
      color: var(--neutral-dark-blue);
    }
  }

  .main__container-description {
    font-size: 1rem;
    max-width: 500px;
    margin: 0 auto;
    text-align: center;
    color: var(--neutral-grayish-blue);
  }
}

.main__container-cards {
  display: grid;
  gap: 2.375rem;
  align-items: center;
  justify-content: center;

  margin-top: 4rem;

  .container__card-grid {
    display: flex;
    flex-direction: column;
    gap: 2rem;
  }

  .container__card {
    display: grid;
    gap: 0.8rem;
    max-width: 300px;

    padding: 1.5rem;
    border-radius: 0.8rem;
    box-shadow: 0px 4px 8px 0px var(--neutral-dark-blue);

    h2 {
      color: var(--neutral-dark-blue);
    }

    p {
      color: var(--neutral-grayish-blue);
      margin-bottom: 1rem;
    }

    img {
      align-self: flex-end;
      justify-self: flex-end;
    }
  }
}

.border-orange {
  border-top: 5px solid var(--orange);
}

.border-cyan {
  border-top: 5px solid var(--cyan);
}

.border-red {
  border-top: 5px solid var(--red);
}

.border-blue {
  border-top: 5px solid var(--blue);
}

@media (min-width: 1024px) {
  .main__container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

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