body {
  width: calc(100% - 6rem);
  margin-left: 3rem;
  margin-right: 3rem;
  margin-top: 3rem;
  margin-bottom: 8rem;
  font-size: 18px;
  font-feature-settings: "onum";
}

main {
  width: 100%;
  display: grid;
  grid-template-columns: auto 40rem 25vw;
  grid-template-rows: 25vw auto;
  row-gap: 2rem;
}

a {
  text-decoration: none;
  color: black;
}

a:hover {
  color: #700;
}

a:hover img.service-icon {
  filter: brightness(0.3) sepia(1) hue-rotate(-70deg) saturate(2);
}

h1 {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  font-family: source-serif-pro, serif;
  font-weight: 900;
  font-style: normal;
  font-size: 7rem;
  margin: 0;
  line-height: 0.9em;
  margin-bottom: -0.1em;
  margin-right: 2rem;
}

img#theo {
  grid-column: 3;
  grid-row: 1;
  width: 100%;
  height: 100%;
}

#presentation {
  grid-column: 2;
  grid-row: 2;
}

#presentation h2,
#presentation p {
  font-family: source-sans-pro, sans-serif;
  font-weight: 300;
  font-style: normal;
  font-size: 1rem;
  width: 75%;
}

#presentation :first-child {
  margin-top: 0;
}

#presentation .endorsement {
  font-family: source-serif-pro, serif;
  font-weight: 300;
  font-style: italic;
  font-size: 0.9rem;
  width: 50%;
  margin-top: 2rem;
  margin-left: 0;
}

#presentation .endorsement .endorser {
  display: block;
  text-align: right;
  margin-top: 0.5rem;
}

aside {
  grid-column: 3;
  grid-row: 2;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

aside p.contact-info {
  margin-top: 0;
  margin-bottom: 0.25rem;
  text-align: right;
  font-family: source-serif-pro, serif;
  font-weight: 300;
  font-style: italic;
}

aside img.service-icon {
  width: 3rem;
  height: 3rem;
}

img.service-icon {
  filter: brightness(0);
}

aside #services {
  margin-top: 1rem;
}

aside #services a {
  display: block;
}

@media all and (max-width: 1000px) and (min-width: 700px) {
  main {
    grid-template-columns: 4rem auto 20vw;
    grid-template-rows: 20vw auto;
  }

  h1 {
    font-size: 5.2rem;
  }
}

@media all and (max-width: 699px) {
  body {
    width: calc(100% - 2rem);
    margin-left: 1rem;
    margin-right: 1rem;
    margin-top: 1rem;
    margin-bottom: 8rem;
  }

  main {
    grid-template-columns: 4rem auto 8rem;
    grid-template-rows: 8rem auto;
  }

  h1 {
    font-size: 4.5rem;
  }
}
