:root {
  --color-black: #333;
  --color-red: #db372b;
  --color-white: #fefefe;
  --font-family-body: 'Helvetica Neue', Helvetica, Calibri, Verdana;
  --font-size-body: 16px;
  --font-size-heading: 26px;
  --font-size-subheading: 20px;
  --font-weight-normal: 400;
  --line-height-body: 1.4;
  --line-height-title: 1.3;
  --transition-duration-short: .3s;
}

html,
body {
  height: 100%;
}

body {
  background: var(--color-white);
  display: flex;
  flex-direction: column;
  font-family: var(--font-family-body);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  margin: 0;
}

main {
  display: block;
  flex: 1 0 0;
}

footer {
  flex: 0 0 0;
}

h1 {
  font-size: var(--font-size-heading);
  font-weight: var(--font-weight-normal);
  line-height: var(--line-height-title);
  margin: 0 0 30px;
  padding: 0 20px;
}

h2 {
  font-size: var(--font-size-subheading);
  font-weight: var(--font-weight-normal);
  line-height: var(--line-height-title);
  margin: 0 0 20px;
  padding: 0 20px;
}

p {
  margin: 0 0 20px;
  padding: 0 30px;
}

a {
  color: var(--color-red);
  text-decoration: none;
  transition-duration: var(--transition-duration-short);
  transition-property: color;
}

a:hover {
  color: var(--color-black);
}

.home-wrapper {
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: center;
  margin: 0 auto;
  max-width: 500px;
}

.home-intro {
  margin: 20px 50px;
  position: relative;
}

.home-intro h1 {
  padding: 0 5px;
}

.home-intro p {
  padding: 0 5px;
}

.home-intro p:last-child {
  margin: 0 0 15px;
}

@media only screen and (max-width: 812px) {
  h1,
  h2 {
    padding: 0;
  }

  .home-wrapper {
    justify-content: initial;
  }

  .home-intro {
    margin: 20px 20px 50px;
  }
}
