main {
  min-height: 330vh;
}
.root {
  position: relative;
  background: var(--blue-bg);
  height: 100%;
}
.hero-img {
  width: 100vw;
  min-height: 20rem;
  height: 50vh;
  background-image: url(../assets/img/coral-res.webp);
  background-repeat: no-repeat;
  background-size: cover;
  display: grid;
  place-items: center;
}
.hero-img h2 {
  font-size: 4vw;
  margin-top: 3rem;
}
.hero-img h2 span {
  text-decoration: underline;
}
.hero-img p {
  width: 50%;
  line-height: 1.3;
  margin-bottom: 2rem;
  text-align: center;
}
#card1 {
  grid-area: card1;
}
#card2 {
  grid-area: card2;
}
#card3 {
  grid-area: card3;
}
#section1 h3 {
  text-align: center;
}
#section1 {
  padding: 4rem;
  display: grid;
  grid-gap: 2rem;
  grid-template-columns: repeat(auto-fill, 1fr);
  grid-template-areas: "card1 card2 card3";
  min-height: 100vh;
  width: 90%;
  transform: translateX(5%);
}
.card {
  color: black;
  background: #f8f8f4;
  border-radius: 10px;
  height: 87%;
  width: 105%;
  min-width: 10rem;
  position: relative;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  top: 0;
  transition: top ease 0.5s;
}
.card:hover {
  height: 89%;
  background: #d7d7d3;
  background: rgb(87, 143, 173);
  top: -25px;
}
.card:hover span {
  background: rgb(87, 143, 173);
  background: #f8f8f4;
}
.card > *:not(.card span) {
  margin-top: 3rem;
  line-height: 1.5;
  text-align: center;
}
.card span {
  padding: 1.5rem 2rem;
  background: #d8d4c9;
  border-radius: 10px;
  position: absolute;
  top: -6%;
  align-self: center;
}
.card h3 {
  height: 1%;
}
.card p {
  margin-bottom: 3rem;
  height: 50%;
}
#card h3 {
  width: 100%;
}
#card3:hover #learn-more {
  color: rgb(255, 255, 255);
}
#learn-more {
  color: rgb(125, 106, 1);
}
#card-header {
  max-height: 5rem;
  font-size: 150%;
  padding: 1rem;
  margin: 2rem 0 0 0;
  text-align: center;
}

#section2 {
  min-height: 120vh;
  width: 100%;
}
.contact-form {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  background-image: url(/assets/img/form-bg2.webp);
  background-size: cover;
}
#form-header {
  width: 60%;
  min-width: 21rem;
  font-size: 1.2rem;
  text-align: center;
}
.contact-form > * {
  padding: 1rem;
  margin: 1rem;
}
.form-container {
  height: 80vh;
  width: 50vw;
  min-width: 21rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: var(--text-color);
  color: black;
}
#contact-us {
  font-size: 210%;
  margin: 0.2rem 0 1rem 0;
  font-weight: bolder;
  align-self: flex-start;
  margin-left: 6.5vw;
}
#form {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 160%;
  height: 70%;
}
.input:not(:last-child) {
  width: 50%;
  height: 30%;
  padding: 0 1rem;
  outline: none;
  border: 1px solid black;
}

@media screen and (max-width: 975px) {
  #section1 {
    place-items: center;
    grid-template-areas:
      "card1"
      "card2"
      "card3";
  }
  .card {
    width: 60%;
  }
  main {
    min-height: 400vh;
  }
}
@media screen and (max-width: 800px) {
  main {
    min-height: 410vh;
  }
}
@media screen and (max-width: 632px) {
  .hero-img h2 {
    font-size: 130%;
    text-align: center;
  }
  main {
    min-height: 430vh;
  }
}
@media screen and (max-width: 570px) {
  .hero-img p {
    width: 70%;
    font-size: 90%;
  }
  #section1 .card {
    width: 120%;
  }
}
@media screen and (max-width: 400px) {
  .hero-img h2 {
    font-size: 150%;
    text-align: center;
  }
  .hero-img p {
    width: 70%;
    font-size: 80%;
  }
  .form-container {
    min-width: 18rem;
  }
}
@media screen and (max-width: 360px) {
  main {
    min-height: 450vh;
  }
  .form-container {
    min-width: 16rem;
  }
  #form-header {
    padding: 1rem 3rem;
    font-size: 1rem;
  }
}
@media screen and (max-width: 330px) {
  main {
    min-height: 460vh;
  }
}
