:root {
  --main-bg: rgb(230, 239, 246);
  --main-h1: rgb(62, 162, 159);
  --main-h2: rgb(190, 224, 39);
  --main-button: rgb(191, 223, 50);
  --main-button-hover: rgb(208, 255, 0);
  --main-p: rgb(145, 158, 178);
  --monthly-subscription-bg: rgb(43, 179, 177);
  --why-us-bg: rgb(74, 190, 189);
  --white: rgb(255, 255, 255);
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Karla", sans-serif;
}

html {
  font-size: 62.5%;
}

body {
  height: 100dvh;
  width: 100dvw;
  background-color: var(--main-bg);
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.container-grid {
  display: grid;
  grid-template-rows: 1fr 1fr 1fr;
  grid-template-columns: auto;
  grid-template-areas: 
  'top-card' 
  'left-card'
  'right-card';
  width: 80%;
  height: 80%;
  box-shadow: 0 0 30px 10px rgba(0, 0, 0, 0.1);
  border-radius: 8px;
}

.container-grid div {
  padding: 1.4rem;
  align-content: center;
}

.box-join {
  grid-area: top-card;
  background-color: var(--white);
  border-radius: 4px 4px 0 0;
  display: grid;
  row-gap: 10%;
}

.box-join h1 {
  color: var(--main-h1);
}

.box-join h2 {
  color: var(--main-h2);
}

.box-join p {
  color: var(--main-p);
}

.box-subscription {
  grid-area: left-card;
  display: grid;
  row-gap: 10%;
  background-color: var(--monthly-subscription-bg);
  color: var(--white);
}

.box-subscription :nth-child(2) {
  display: flex;
  align-items: center;
}

.box-subscription .price {
  font-size: 2.8rem;
  font-weight: 600;
  margin-right: 1rem;
}

.box-subscription .per-month {
  color: rgba(255, 255, 255, 0.7);
  font-size: 1.2rem;
}

.box-subscription button {
  background-color: var(--main-button);
  color: white;
  font-weight: 600;
  padding: 1.2rem 0;
  border: none;
  border-radius: 4px;
  box-shadow: 0 0 30px 5px rgba(92, 92, 92, 0.5);
  transition: 400ms;
}

.box-subscription button:hover {
  background-color: var(--main-button-hover);
}

.box-why-us {
  grid-area: right-card;
  display: flex;
  flex-direction: column;
  row-gap: 10%;
  justify-content: center;
  background-color: var(--why-us-bg);
  color: var(--white);
  border-radius: 0 0 4px 4px;
}

.box-why-us p {
  width: 80%;
}

@media screen and (min-width: 600px) {
  .container-grid {
    grid-template-areas: 
    'top-card top-card'
    'left-card right-card';
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
  }

  .box-subscription {
    border-radius: 0 0 0 4px;
  }

  .box-why-us {
    border-radius: 0 0 4px 0;
  }
}