/* css reset */

/* Box sizing rules, margin and padding */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* Prevent font size inflation */
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

/* Remove default margin in favour of better control in authored CSS */
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin-block-end: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role="list"],
ol[role="list"] {
  list-style: none;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  line-height: 1.5;
}

/* Set shorter line heights on headings and interactive elements */
h1,
h2,
h3,
h4,
button,
input,
label {
  line-height: 1.1;
}

/* Balance text wrapping on headings */
h1,
h2,
h3,
h4 {
  text-wrap: balance;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font-family: inherit;
  font-size: inherit;
}

/* Make sure textareas without a rows attribute are not tiny */
textarea:not([rows]) {
  min-height: 10em;
}

/* Anything that has been anchored to should have extra scroll margin */
:target {
  scroll-margin-block: 5ex;
}

/* css reset end */

body {
  font-family: Poppins, sans-serif;
  background-color: #fafafa;
}

.container {
  padding: 3.5rem 1.875rem;
  margin: 0 auto;
}

.intro {
  margin-bottom: 3.75rem;
  text-align: center;
}

.title {
  font-size: 1.5rem;
  font-weight: 100;
  line-height: 1.4;
  letter-spacing: 0.25px;
  color: #4d4f62;
}

.tagline {
  margin-bottom: 1rem;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.25px;
  color: #4d4f62;
}

.text {
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.1px;
  color: #4d4f62;
}

.card {
  padding: 2rem;
  box-shadow: 0px 15px 30px -11px rgba(131, 166, 210, 0.5);
  border-top: 0.25rem solid black;
  border-radius: 0.5rem;
}

.card:not(:last-child) {
  margin-bottom: 2rem;
}

.card-title {
  margin-bottom: 0.375rem;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0px;
  color: #4d4f62;
}

.card-text {
  margin-bottom: 2rem;
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.09px;
  color: #6a7178;
}

.card-img {
  margin-left: auto;
  margin-bottom: 1rem;
}

#feature-1 {
  border-color: #44d3d2;
}

#feature-2 {
  border-color: #ea5454;
}

#feature-3 {
  border-color: #fcae4a;
}

#feature-4 {
  border-color: #549ef2;
}

@media (min-width: 700px) {
  .container {
    padding: 5rem 3.375rem;
  }

  .title,
  .tagline {
    font-size: 2.25rem;
  }

  .intro {
    margin: 0 3.75rem 4.625rem 3.75rem;
  }

  .card-container {
    display: grid;
    gap: 2rem;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: 1fr 1fr 1fr;
    grid-template-areas:
      ". feature1 feature1 ."
      "feature2 feature2 feature3 feature3"
      ". feature4 feature4 .";
  }

  .card:not(:last-child) {
    margin-bottom: 0;
  }

  .card {
    max-width: 350px;
  }

  #feature-1 {
    grid-area: feature1;
    justify-self: center;
  }

  #feature-2 {
    grid-area: feature2;
    justify-self: end;
  }
  #feature-3 {
    grid-area: feature3;
    justify-self: start;
  }

  #feature-4 {
    grid-area: feature4;
    justify-self: center;
  }
}

@media (min-width: 1200px) {
  .container {
    max-width: 1114px;
    margin: 0 auto;
    padding: 6.375rem 0;
  }

  .intro {
    max-width: 540px;
    margin: 0 auto;
    margin-bottom: 4.625rem;
  }

  .card-container {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(4, 1fr);
    grid-template-areas:
      ". feature2 ."
      "feature1 feature2 feature4"
      "feature1 feature3 feature4"
      ". feature3 .";
    align-items: start;
  }

  #feature-1 {
    grid-area: feature1;
  }

  #feature-2 {
    grid-area: feature2;
  }

  #feature-3 {
    grid-area: feature3;
  }

  #feature-4 {
    grid-area: feature4;
  }
}
