@font-face {
  font-family: 'Eurostile Extended';
  src: url('Eurostile Extended Regular.ttf') format('truetype');
}

:root {
  --flame: #cf5c36;
  --metallic-gold: #d1ac00;
  --lavender-blush: #f6e8ea;
  --deep-jungle-green: #004643;
  --green-sheen: #77aca2;

  --mint-cream: #e6efe9;
}

body {
  font-family: 'Eurostile Extended', sans-serif;
  font-size: 13px;
  margin: 0;
  background-color: var(--mint-cream);
  color: var(--deep-jungle-green);
}

header {
  padding: 2vw;
  display: flex;
  flex-wrap: nowrap;
  flex: 1 0 67%;
  align-items: center;
}

header nav {
  font-size: calc((1.4 - 1) * 1.2vw + 1rem);
  font-weight: 400;
  line-height: 1.6em;
}

header nav a {
  text-decoration: none;
  color: var(--deep-jungle-green);
}

header nav a:not(:last-child) {
  margin-right: 2.8vw;
}

header nav a:hover {
  color: var(--flame);
}

header .logo {
  text-align: center;
  position: absolute;
  left: 20px;
  max-height: 85px;
  top: 20px;
}

main {
  padding-top: 3.3vmax;
  padding-bottom: 3.3vmax;
}

h1 {
  text-align: center;
  font-size: calc((4.1 - 1) * 1.2vw + 1rem);
  line-height: calc(1.4 * (1 + (1 - 6.1) / 25));
  letter-spacing: -0.02em;
  font-weight: 400;
  font-style: normal;
  margin: 0 auto;
  padding-bottom: 3.3vmax;
}

h2 {
  text-align: center;
  font-size: calc((3.6 - 1) * 1.2vw + 1rem);
  line-height: 1.4em;
  font-weight: 400;
  font-style: normal;
  margin: 0 auto;
}

.banner-wrapper {
  margin: 0 calc(-50vw + 50%);
  height: 30vmax;
  max-height: 500px;
}

.banner-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

section {
  margin: 0 auto;
  max-width: 2000px;
  padding-bottom: 3.3vmax;
}

.services {
  display: grid;
  grid-gap: 60px 60px;
  grid-template-columns: repeat(1, 1fr);
  margin-right: 1em;
}

.services li {
  list-style: none;
}

.services p {
  font-size: calc((var(--body-font-size-value) - 1) * 1.2vw + 1rem);
  line-height: 1.6;
  font-weight: 400;
  font-style: normal;
}

.desktop-header {
  display: none;
}

.mobile-header {
  display: block;
  min-height: 85px;
}

.mobile-header nav a {
  display: none;
}

.mobile-header nav.open {
  margin-top: 120px;
}

.mobile-header nav.open a {
  display: block;
  text-align: center;
  margin: 0 auto;
}

#nav-icon {
  width: 60px;
  height: 45px;
  position: absolute;
  right: 10px;
  top: 25px;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: 0.5s ease-in-out;
  -moz-transition: 0.5s ease-in-out;
  -o-transition: 0.5s ease-in-out;
  transition: 0.5s ease-in-out;
  cursor: pointer;
}

#nav-icon span {
  display: block;
  position: absolute;
  height: 2px;
  width: 100%;
  background: var(--deep-jungle-green);
  border-radius: 2px;
  opacity: 1;
  left: 0;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: 0.25s ease-in-out;
  -moz-transition: 0.25s ease-in-out;
  -o-transition: 0.25s ease-in-out;
  transition: 0.25s ease-in-out;
}

#nav-icon span:nth-child(1) {
  top: 0px;
}

#nav-icon span:nth-child(2),
#nav-icon span:nth-child(3) {
  top: 18px;
}

#nav-icon span:nth-child(4) {
  top: 36px;
}

nav.open #nav-icon span:nth-child(1) {
  top: 18px;
  width: 0%;
  left: 50%;
}

nav.open #nav-icon span:nth-child(2) {
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  transform: rotate(45deg);
}

nav.open #nav-icon span:nth-child(3) {
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

nav.open #nav-icon span:nth-child(4) {
  top: 18px;
  width: 0%;
  right: 0;
}

@media screen and (min-width: 800px) {
  .desktop-header {
    display: block;
  }
  .mobile-header {
    display: none;
  }

  header .logo {
    text-align: center;
    position: absolute;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    max-height: 85px;
    top: 20px;
  }

  .services {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media screen and (min-width: 1456px) {
  h1 {
    font-size: calc(6.1 * 1rem);
  }

  h2 {
    font-size: calc(3.6 * 1rem);
  }
}
