.text-center {
  text-align: center; }

.text-right {
  text-align: right; }

.text-left {
  text-align: left; }

.flex-wrapper-vertical {
  height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center; }

*,
*::after,
*::before {
  margin: 0;
  padding: 0;
  box-sizing: inherit; }

html {
  font-size: 62.5%; }

body {
  box-sizing: border-box; }

body {
  font-family: 'Roboto', sans-serif;
  font-weight: 400;
  line-height: 1.6;
  color: #fff; }

.heading-primary {
  color: #fff;
  font-weight: 900;
  font-size: 4.5rem;
  font-style: italic;
  line-height: 1.15;
  color: #016491;
  text-align: center; }

.heading-text {
  font-size: 1.6rem;
  color: #016491;
  text-align: center;
  font-weight: 700;
  margin-top: 1rem;
  font-family: Georgia, 'Times New Roman', Times, serif; }

.heading-secondary {
  width: 50%;
  font-size: 3rem;
  color: #016491;
  line-height: 1.1; }

.heading-tertiary {
  font-size: 2.5rem;
  font-weight: 700; }

.heading-about {
  font-size: 4rem;
  font-weight: 900;
  color: #016491; }

@media (max-width: 600px) {
  .heading-primary {
    font-size: 3 rem; }
  .heading-text {
    font-size: 1.4rem; }
  .heading-secondary {
    width: 100%;
    text-align: center;
    font-size: 2.6rem; } }

@media (max-width: 1000px) {
  .heading-primary {
    font-size: 3.3rem; }
  .heading-text {
    font-size: 1.4rem; } }

.heading-button {
  text-transform: uppercase;
  text-decoration: none;
  margin-top: 2rem;
  padding: 1.2rem 3rem;
  border-radius: 1.5rem;
  transition: all .3s ease;
  font-size: 1.6rem;
  font-weight: 900;
  background-color: #fff; }
  .heading-button:link, .heading-button:visited {
    box-shadow: 0 0.2rem 1rem rgba(0, 0, 0, 0.2);
    color: #ffaa45; }
  .heading-button:hover {
    box-shadow: 0 0.4rem 2rem rgba(0, 0, 0, 0.2);
    transform: translateY(-0.3rem); }
  .heading-button:active {
    box-shadow: 0 0.3rem 1rem rgba(0, 0, 0, 0.2);
    transform: translateY(-0.1rem); }

.header {
  height: 90vh;
  background-color: #ffaa45;
  position: relative;
  clip-path: polygon(0 0, 100% 0, 100% 80vh, 0 90vh); }

.header-container {
  background-color: #ffcb8d;
  border-radius: 2rem;
  height: 65vh;
  width: 80vw;
  max-width: 114rem;
  position: absolute;
  top: 10vh;
  left: 50%;
  transform: translate(-50%, 0);
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.3); }

.col-50--graphic {
  flex: 50%; }

.col-50--content {
  flex: 50%;
  height: 100%;
  padding: 0 6rem 0 8rem; }

@media (max-width: 600px) {
  .header {
    clip-path: none;
    height: 100vh; }
  .header-container {
    top: 0;
    width: 100%;
    height: 100%;
    border-radius: 0;
    flex-direction: column-reverse; }
  .col-50--graphic {
    flex: 100%;
    text-align: center;
    padding-top: 1rem; }
  .col-50--content {
    flex: 100%;
    padding: 1rem; }
  .header-image {
    max-height: 40vh; } }

@media (max-width: 1000px) {
  .col-50--graphic {
    padding-top: 1rem; }
  .col-50--content {
    padding: 2rem; } }

.header-image {
  max-width: 100%; }

@keyframes moveInFromLeft {
  0% {
    transform: translateX(-30rem); }
  100% {
    transform: translateX(0rem); } }

.section-feature {
  background-color: #eee;
  margin-top: -10vh;
  padding-bottom: 10vh;
  clip-path: polygon(0 10vh, 100% 0, 100% 100%, 0 100%);
  position: relative; }
  .section-feature__heading {
    width: 80vw;
    max-width: 114rem;
    padding: 10rem 0 2rem 0;
    margin: auto;
    display: flex;
    flex-direction: row-reverse; }

.feature-box {
  width: 80vw;
  max-width: 114rem;
  margin: auto;
  display: flex;
  align-items: center;
  background-color: #016491;
  border-radius: 2rem;
  padding: 3rem 6rem;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.3); }
  .feature-box__details {
    flex: 50%;
    font-size: 2rem;
    font-weight: 400;
    padding-right: 1rem;
    line-height: 1.3; }
  .feature-box__list {
    list-style-type: circle;
    text-align: left;
    margin-top: 2rem; }
  .feature-box__list > li:not(:last-child) {
    margin-bottom: 3rem; }
  .feature-box__graphic {
    flex: 50%;
    padding-left: 1rem; }
  .feature-box__photo {
    width: 100%;
    border-style: solid;
    border-width: 1rem;
    border-radius: .8rem; }

.section-about {
  width: 80vw;
  max-width: 114rem;
  margin: 5rem auto 5rem;
  padding: 0 0 0 0;
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  background-color: #ffcb8d;
  border-radius: 2rem;
  box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.3); }
  .section-about__title {
    flex: 25%;
    align-self: center;
    line-height: 1.1;
    padding: 0 2rem 0 10rem;
    text-align: right; }
  .section-about__graphic {
    flex: 25%;
    text-align: right;
    padding: 0 3rem 0 3rem;
    margin-bottom: -1rem; }
  .section-about__details {
    flex: 50%;
    padding: 0 10rem 2rem 2rem;
    font-family: Georgia, 'Times New Roman', Times, serif;
    font-size: 1.6rem;
    font-weight: 700;
    color: #016491; }
  .section-about__photo {
    height: 100%;
    padding: 2rem 0 0 0;
    overflow: visible;
    z-index: 100; }
  .section-about__text {
    margin-top: 2rem; }

.section-contact {
  background-color: #ffaa45;
  padding: 3rem 0 3rem 0; }
  .section-contact__wrapper {
    width: 80vw;
    max-width: 114rem;
    margin: 0 auto;
    display: flex;
    align-items: center; }
  .section-contact__content {
    width: 60%; }
  .section-contact__graphic {
    width: 40%; }
  .section-contact__image {
    width: 100%; }
  .section-contact__header {
    font-size: 4rem;
    color: #fff;
    font-weight: 900;
    line-height: 1.3; }
  .section-contact__contact {
    text-transform: uppercase;
    text-decoration: none;
    margin-top: 2rem;
    padding: 1.6rem 4rem;
    border-radius: 2rem;
    transition: all .3s ease;
    font-size: 4rem;
    font-weight: 900;
    background-color: #016491;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.2); }
  .section-contact__rate--hourly {
    margin-top: 2rem;
    font-size: 3rem;
    font-weight: 900; }
  .section-contact__rate--payment {
    margin-top: 2rem;
    font-size: 2rem;
    font-weight: 700; }

@media (max-width: 800px) {
  .section-feature {
    background-color: #fff;
    clip-path: none;
    margin-top: 0;
    padding-bottom: 1rem; }
    .section-feature__heading {
      padding: 2rem 0 2rem 0; }
  .feature-box {
    width: 94vw;
    margin: auto;
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    background-color: #016491;
    border-radius: 2rem;
    padding: 3rem 3rem 3rem 5rem; }
    .feature-box__details {
      flex: 100%;
      font-size: 2rem;
      font-weight: 400;
      padding-top: 1rem;
      line-height: 1.3; }
    .feature-box__list {
      list-style-type: circle;
      text-align: left;
      margin-top: 2rem; }
    .feature-box__list > li:not(:last-child) {
      margin-bottom: 3rem; }
    .feature-box__graphic {
      flex: 100%;
      padding-left: 1rem; }
    .feature-box__photo {
      width: 100%;
      border-style: solid;
      border-width: .4rem;
      border-radius: .8rem; }
  .section-about {
    width: 95vw;
    margin: 0 auto 2rem;
    padding: 0 0 0 0;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    background-color: #ffcb8d;
    border-radius: 2rem;
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.3); }
    .section-about__title {
      flex: 100%;
      line-height: 1.1;
      padding: 1rem;
      text-align: center; }
    .section-about__graphic {
      flex: 100%;
      text-align: right;
      padding: 0;
      margin-bottom: 0rem; }
    .section-about__details {
      flex: 100%;
      padding: 2rem;
      font-family: Georgia, 'Times New Roman', Times, serif;
      font-size: 1.6rem;
      font-weight: 700;
      color: #016491; }
    .section-about__photo {
      height: 100%;
      padding: 2rem 0 0 0;
      overflow: visible;
      z-index: 100; }
    .section-about__text {
      margin-top: 0; }
  .section-contact {
    background-color: #ffaa45;
    padding: 3rem 0 3rem 0; }
    .section-contact__wrapper {
      width: 80vw;
      max-width: 114rem;
      margin: 0 auto;
      display: flex;
      flex-direction: column;
      align-items: center; }
    .section-contact__content {
      width: 94%; }
    .section-contact__graphic {
      width: 40%; }
    .section-contact__image {
      width: 100%; }
    .section-contact__header {
      font-size: 4rem;
      color: #fff;
      font-weight: 900;
      line-height: 1.3; }
    .section-contact__contact {
      text-transform: uppercase;
      text-decoration: none;
      margin-top: 2rem;
      padding: 1.6rem 4rem;
      border-radius: 2rem;
      transition: all .3s ease;
      font-size: 3rem;
      font-weight: 900;
      background-color: #016491;
      box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.2); }
    .section-contact__rate--hourly {
      margin-top: 1rem;
      font-size: 3rem;
      font-weight: 900; }
    .section-contact__rate--payment {
      margin-top: 0;
      font-size: 1.5rem;
      font-weight: 700; } }
