body {
  background-color: #FFF;
  color: #0E1428;
  font-family: "Heebo", sans-serif;
  font-size: 16px;
  padding: 0;
  margin: 0;
  text-rendering: optimizeLegibility;
  text-rendering: geometricPrecision;
  font-smooth: always;
}
@media (min-width: 768px) and (max-width: 1159px) {
  body {
    font-size: 14px;
  }
}
@media (max-width: 767px) {
  body {
    font-size: 12px;
  }
}

#container {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a.schedule, a.schedulerpro {
  display: inline-block;
  background: #d40000;
  color: #FFF;
  font-weight: 700;
  font-size: 1.375em;
  line-height: 1.5;
  padding: 0.35em 2em;
  font-family: "Barlow Semi Condensed", sans-serif;
  cursor: pointer;
}
a.schedule:hover, a.schedulerpro:hover {
  background: #E00000;
}
a.schedule.loading, a.schedulerpro.loading {
  background: #870000;
  cursor: default;
}
a.schedule.loading:hover, a.schedulerpro.loading:hover {
  background: #870000;
}
a.schedule .calendar, a.schedulerpro .calendar {
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><path fill="%23FFFFFF" d="M224 64C206.3 64 192 78.3 192 96L192 128L160 128C124.7 128 96 156.7 96 192L96 240L544 240L544 192C544 156.7 515.3 128 480 128L448 128L448 96C448 78.3 433.7 64 416 64C398.3 64 384 78.3 384 96L384 128L256 128L256 96C256 78.3 241.7 64 224 64zM96 288L96 480C96 515.3 124.7 544 160 544L480 544C515.3 544 544 515.3 544 480L544 288L96 288z"/></svg>');
  background-size: 24px 24px;
  background-repeat: no-repeat;
  display: inline-block;
  width: 24px;
  height: 24px;
  vertical-align: middle;
  margin-top: -3px;
}

header {
  background: #FFF;
  box-shadow: 0 1px 1px 0px rgba(0, 0, 0, 0.2);
  position: relative;
  padding: 2em 1em;
  text-align: center;
}
@media (min-width: 767px) {
  header {
    text-align: left;
    padding: 1.5em;
  }
}
header .logo {
  line-height: 0px;
}
@media (min-width: 767px) {
  header .logo {
    display: inline-block;
    vertical-align: middle;
    width: auto;
    min-height: 50px;
    box-sizing: border-box;
  }
}
header .logo .logo-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (min-width: 767px) {
  header .logo .logo-wrap {
    min-height: 50px;
  }
}
@media (min-width: 768px) and (max-width: 1159px) {
  header .logo .logo-wrap {
    max-width: 300px;
  }
}
header .logo img {
  max-width: 100%;
  max-height: 62px;
  width: auto;
  height: 100%;
}
header .call, header .hours {
  text-align: center;
}
@media (min-width: 767px) {
  header .call, header .hours {
    float: right;
    text-align: left;
    box-sizing: border-box;
    vertical-align: middle;
    padding-left: 2em;
    position: relative;
    margin: 12px 0 12px 3em;
    height: 40px;
  }
}
header .call span.open, header .hours span.open {
  font-weight: 600;
  color: #0b9803;
}
header .call svg, header .hours svg {
  width: 16px;
  height: 16px;
  position: absolute;
  left: 0px;
  top: 50%;
  transform: translateY(-50%);
  display: none;
}
@media (min-width: 767px) {
  header .call svg, header .hours svg {
    display: block;
  }
}
header .call svg path, header .hours svg path {
  fill: #888888;
}
header .call a, header .hours a {
  text-decoration: none;
  color: #000;
  font-weight: 700;
}
header .call a a, header .hours a a {
  font-size: 1em;
}
@media (max-width: 767px) {
  header .call a, header .hours a {
    display: inline-block;
    background: #d40000;
    color: #FFF;
    font-weight: 700;
    font-size: 1.75em;
    line-height: 1.5;
    padding: 0.25em 1.5em 0.35em;
    cursor: pointer;
    margin: 0.5em 0;
    font-family: "Barlow Semi Condensed", sans-serif;
  }
  header .call a:hover, header .hours a:hover {
    background-image: linear-gradient(-180deg, #BE0000 0%, #E00000 100%);
  }
}
header .call p, header .hours p {
  padding: 0.5em 0 0.75em;
  font-weight: 400;
  margin: 0px;
  display: none;
}
@media (min-width: 767px) {
  header .call p, header .hours p {
    font-size: 0.875em;
    padding: 0;
    display: block;
  }
}

section.masthead {
  background-color: #1f1f1f;
  line-height: 0px;
}
section.masthead img {
  width: 100%;
}

section.headline {
  background: #000;
  text-align: center;
  font-family: "Barlow Semi Condensed", sans-serif;
  font-weight: 500;
  color: #FFF;
  padding: 0.5em 1em;
}
@media (min-width: 767px) {
  section.headline {
    padding: 0.25em;
  }
}
section.headline h1 {
  font-size: 1.75em;
  margin: 0.25em 0;
}
section.headline p {
  font-family: "Heebo", sans-serif;
  font-weight: 300;
  margin: 0 0 0.5em;
}

section.about {
  padding: 1.5em 1em;
  text-align: left;
}
section.about .inner {
  max-width: 1050px;
  margin: 0px auto;
}
section.about.secondary {
  padding: 3em 1em;
}
@media (min-width: 767px) {
  section.about {
    padding: 2em 1em;
  }
}
@media (min-width: 767px) {
  section.about .aboutcopy {
    width: 50%;
    float: left;
  }
}
section.about .sidebar {
  text-align: center;
}
@media (min-width: 767px) {
  section.about .sidebar {
    width: 40%;
    float: right;
    padding-top: 1em;
  }
}
@media (min-width: 767px) {
  section.about span.clear {
    display: block;
    height: 1px;
    clear: both;
  }
}
section.about .promo {
  text-align: center;
  padding: 1em;
  margin-bottom: 1em;
  max-width: 400px;
  background: #ffbc00;
  color: #000;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 767px) {
  section.about .promo {
    display: block;
    padding: 0.75em 3em;
  }
}
section.about .promo p {
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  margin: 0px;
  color: #464646;
}
section.about .promo h2 {
  font-family: "Barlow Semi Condensed", sans-serif;
  font-size: 2.25em;
  font-weight: 800;
  margin: 0.15em 0 0.325em;
}
@media (min-width: 767px) {
  section.about .promo h2 {
    font-size: 2em;
  }
}
section.about .promo small {
  font-size: 12px;
  opacity: 0.8;
  line-height: 1.2;
  display: block;
}
@media (min-width: 767px) {
  section.about .promoafter {
    display: block;
    height: 1px;
  }
}
section.about .desktopcall {
  display: none;
}
@media (min-width: 767px) {
  section.about .desktopcall {
    display: block;
    background: #000;
    padding: 1em;
    margin-top: 1em;
    color: #FFF;
  }
}
section.about .desktopcall h2 {
  color: #fff;
  font-family: "Barlow Semi Condensed", sans-serif;
  font-size: 3em;
  margin: 0px;
  font-weight: 700;
}
section.about .desktopcall h2 a {
  text-decoration: none;
  color: #000;
}
section.about .desktopcall p {
  color: #FFF;
}
section.about .desktopcall h3 {
  font-family: "Barlow Semi Condensed", sans-serif;
  font-size: 1.375em;
  margin: 0 0 0.25em;
  font-weight: 700;
}
section.about .desktopcall hr {
  border-top: 1px solid #B10000;
  width: 280px;
  margin: 2em auto 1em;
}
section.about .desktopcall p {
  text-align: center;
  margin: 0.5em 0;
}
section.about .desktopcall p span.open {
  font-weight: 600;
  color: #0b9803;
}
section.about h1 {
  font-size: 2.25em;
  font-family: "Barlow Semi Condensed", sans-serif;
  font-weight: 700;
  margin: 0.25em 0 0.5em;
}
@media (min-width: 767px) {
  section.about h1 {
    font-size: 2.625em;
  }
}
section.about p {
  margin: 1em 0;
  color: #585858;
  text-align: left;
  line-height: 1.25;
}
@media (min-width: 767px) {
  section.about p {
    margin: 1em 0;
    line-height: 1.6;
  }
}
section.about .tiles {
  margin: 2.5em auto 0;
  text-align: justify;
  max-width: 1100px;
  width: 100%;
}
section.about .tiles .tile {
  display: inline-block;
  width: 48%;
  background: #F1F8FF;
  border: 1px solid #1C60AB;
  border-radius: 4px;
  border-top-width: 3px;
  padding: 3.75em 0 1em;
  position: relative;
  vertical-align: middle;
  text-align: center;
  margin-bottom: 0.75em;
}
@media (min-width: 767px) {
  section.about .tiles .tile {
    margin-bottom: 0;
    padding: 3.75em 0 1.5em;
    width: 23%;
  }
}
section.about .tiles .tile svg {
  position: absolute;
  left: 50%;
  top: 12px;
  transform: translate(-50%, 0);
}
@media (min-width: 767px) {
  section.about .tiles .tile svg {
    top: 24px;
  }
}
section.about .tiles .tile.repair svg {
  top: 8px;
}
@media (min-width: 767px) {
  section.about .tiles .tile.repair svg {
    top: 20px;
  }
}
section.about .tiles .tile h4 {
  font-family: "Barlow Semi Condensed", sans-serif;
  margin: 0px;
  font-weight: 400;
  font-size: 1.325em;
}
@media (min-width: 767px) {
  section.about .tiles .tile h4 {
    font-size: 1.625em;
  }
}
@media (min-width: 768px) and (max-width: 1159px) {
  section.about .tiles .tile h4 {
    font-size: 1.5em;
  }
}
section.about .tiles .tile a {
  color: #B10000;
  cursor: pointer;
  text-decoration: underline;
  display: block;
  font-size: 1em;
}
@media (min-width: 767px) {
  section.about .tiles .tile a {
    margin-top: 0.25em;
    font-size: 1.125em;
  }
}
section.about .tiles .spacer {
  width: 50%;
  display: inline-block;
  height: 1px;
  margin-bottom: -6px;
}

.servicetiles {
  padding: 1em;
  background: #000;
  text-align: center;
}
.servicetiles h2 {
  color: #FFF;
  font-weight: 700;
  text-align: center;
  font-family: "Barlow Semi Condensed", sans-serif;
  font-size: 2em;
  margin: 0.5em 0 0.75em;
}
@media (min-width: 767px) {
  .servicetiles h2 {
    font-size: 3em;
  }
}
.servicetiles .inner {
  max-width: 1200px;
  margin: 0px auto;
}
.servicetiles .tile {
  display: inline-block;
  vertical-align: top;
  width: 100%;
  box-sizing: border-box;
  position: relative;
  margin-bottom: 1em;
}
@media (min-width: 767px) {
  .servicetiles .tile {
    width: 48%;
    margin-bottom: 2em;
    line-height: 0;
  }
  .servicetiles .tile:nth-of-type(odd) {
    margin-right: 3%;
  }
}
.servicetiles .tile img {
  width: 100%;
  border-bottom: 4px solid #fe0;
}
.servicetiles .tile h3 {
  font-size: 16px;
  text-align: left;
  width: 100%;
  padding: 0.25em;
  font-size: 16px;
  font-weight: 900;
  font-family: "Barlow Semi Condensed", sans-serif;
  margin: 0;
  color: #FFF;
  line-height: 1.4;
}
@media (min-width: 400px) {
  .servicetiles .tile h3 {
    font-size: 18px;
  }
}
@media (min-width: 767px) {
  .servicetiles .tile h3 {
    font-size: 28px;
  }
}
.servicetiles .tile p {
  font-family: "Heebo", sans-serif;
  color: #4F6D7A;
  font-style: italic;
  font-size: 0.875em;
  margin: 0;
}
.servicetiles .tile.nophoto h3 {
  margin: 0;
}

@media (min-width: 767px) {
  .servicetiles.three.column .tile {
    width: 33.33%;
  }
  .servicetiles.three.column .tile h3 {
    font-size: 14px;
  }
}
@media (min-width: 767px) and (min-width: 400px) {
  .servicetiles.three.column .tile h3 {
    font-size: 16px;
  }
}
@media (min-width: 767px) and (min-width: 767px) {
  .servicetiles.three.column .tile h3 {
    font-size: 24px;
  }
}

.bulletpoints, .services {
  position: relative;
}
.bulletpoints .copy, .services .copy {
  background: #0e2b5c;
  color: #FFF;
  padding: 1.5em 2em;
  box-sizing: border-box;
}
@media (min-width: 767px) {
  .bulletpoints .copy, .services .copy {
    width: 50%;
    margin-left: 50%;
    padding: 4em 2em;
  }
}
.bulletpoints .photo, .services .photo {
  background-size: cover;
  background-position: center center;
  height: 197px;
}
@media (min-width: 767px) {
  .bulletpoints .photo, .services .photo {
    position: absolute;
    height: 100%;
    width: 50%;
    left: 0px;
    top: 0px;
  }
}
.bulletpoints h3, .services h3 {
  font-family: "Barlow Semi Condensed", sans-serif;
  font-size: 2.625em;
  margin: 0px;
  font-weight: 700;
}
@media (min-width: 767px) {
  .bulletpoints h3, .services h3 {
    font-size: 1.625em;
  }
}
.bulletpoints p, .services p {
  max-width: 550px;
  line-height: 1.6;
}
.bulletpoints ul, .services ul {
  list-style-type: none;
  margin: 1.5em 0 1em;
  padding: 0px;
}
.bulletpoints ul li, .services ul li {
  margin: 0.5em 0;
  font-weight: 500;
  font-size: 1.25em;
}
@media (min-width: 767px) {
  .bulletpoints ul li, .services ul li {
    font-size: 1.5em;
  }
}
@media (min-width: 768px) and (max-width: 1159px) {
  .bulletpoints ul li, .services ul li {
    font-size: 1.25em;
  }
}
.bulletpoints ul li:before, .services ul li:before {
  content: url('data:image/svg+xml;utf8,<svg width="17" height="17" xmlns="http://www.w3.org/2000/svg"><path d="M8.5 0A8.52 8.52 0 0 0 0 8.5C0 13.17 3.82 17 8.5 17S17 13.17 17 8.5 13.18 0 8.5 0zM7.29 13L3 8.67l1.2-1.2 3.09 3.1L13.8 4 15 5.21 7.29 13z" fill="%23FFF" fill-rule="evenodd"/></svg>');
  width: 16px;
  height: 16px;
  margin-right: 10px;
  position: relative;
  top: 3px;
}
@media (min-width: 767px) {
  .bulletpoints ul li:before, .services ul li:before {
    top: 1px;
  }
}
@media (min-width: 768px) and (max-width: 1159px) {
  .bulletpoints ul li:before, .services ul li:before {
    top: 3px;
  }
}

.customer-reviews {
  background: #FFF;
  text-align: center;
  padding: 0 1.25em;
}
@media (min-width: 767px) {
  .customer-reviews {
    padding: 0 1em;
  }
}
.customer-reviews .customer-reviews-inner {
  max-width: 995px;
  margin: 0px auto;
}
.customer-reviews h1 {
  margin: 0px;
  padding: 1.25em 0 0.5em;
  font-size: 2.25em;
  font-weight: 700;
  font-family: "Barlow Semi Condensed", sans-serif;
}
@media (min-width: 767px) {
  .customer-reviews h1 {
    font-size: 3em;
    padding: 1em 0 0.5em;
  }
}
.customer-reviews h1 img {
  width: 33px;
  height: 23px;
  vertical-align: middle;
  margin-top: -6px;
}
@media (min-width: 767px) {
  .customer-reviews h1 img {
    margin-top: -12px;
    width: 96px;
    height: 66px;
  }
}
.customer-reviews .reviewlogos {
  width: 95%;
  max-width: 825px;
}
@media (min-width: 767px) {
  .customer-reviews .reviewlogos {
    width: 350px;
    display: block;
    margin: 0.5em auto;
  }
}
.customer-reviews h4 {
  font-size: 1.125em;
  text-transform: uppercase;
  font-family: "Barlow Semi Condensed", sans-serif;
  color: #959595;
  font-weight: 500;
  margin: 0.75em 0;
}
.customer-reviews svg.combined {
  width: 60%;
  max-width: 309px;
}
@media (min-width: 767px) {
  .customer-reviews svg.combined {
    width: 75%;
  }
}
.customer-reviews .combined svg {
  width: 60%;
  max-width: 309px;
}
@media (min-width: 767px) {
  .customer-reviews .combined svg {
    width: 75%;
  }
}
.customer-reviews .reviews {
  padding: 2em 0 0.75em;
}
@media (min-width: 767px) {
  .customer-reviews .reviews {
    padding: 2em 0;
    display: flex;
    justify-content: space-evenly;
    align-items: stretch;
  }
}
.customer-reviews .review {
  width: 100%;
  text-align: left;
  margin-bottom: 1em;
}
@media (min-width: 767px) {
  .customer-reviews .review {
    margin-bottom: 0;
    display: inline-block;
    width: 45%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: stretch;
  }
  .customer-reviews .review:nth-child(1) {
    margin-right: 9%;
  }
}
.customer-reviews .review .quote {
  text-align: left;
  padding: 1em;
  line-height: 1.6;
  font-size: 0.825em;
  color: #000;
  margin-bottom: 1em;
  position: relative;
  font-family: "Heebo", sans-serif;
  background: #ffe498;
}
@media (min-width: 767px) {
  .customer-reviews .review .quote {
    flex-grow: 1;
    font-size: 1em;
  }
}
.customer-reviews .review .cite {
  font-size: 0.875em;
  family: "Heebo", sans-serif;
  color: #000;
}
.customer-reviews .review .score {
  margin: 0.25em 0;
}
.customer-reviews .review .logo img {
  max-width: 40px;
}
@media (min-width: 767px) {
  .customer-reviews .review .logo img {
    max-width: 60px;
  }
}
.customer-reviews a.schedule, .customer-reviews a.schedulerpro {
  margin-bottom: 2em;
}

.project-map {
  text-align: center;
  color: #FFF;
  background: #000;
}
@media (min-width: 767px) {
  .project-map .inner {
    text-align: right;
  }
}
.project-map h1 {
  margin: 0px;
  padding: 1em;
  font-family: "Barlow Semi Condensed", sans-serif;
  font-weight: 700;
  font-size: 2em;
}
@media (min-width: 767px) {
  .project-map h1 {
    padding: 0;
    font-size: 2.5em;
    display: inline-block;
    vertical-align: middle;
    width: 45%;
    margin-right: 2%;
    text-align: right;
    max-width: 650px;
  }
}
@media (min-width: 767px) {
  .project-map .mapcontainer {
    displaY: inline-block;
    vertical-align: middle;
    width: 50%;
  }
}

#customermap, #serviceareamap {
  position: relative;
  height: 300px;
}
@media (min-width: 767px) {
  #customermap, #serviceareamap {
    height: 500px;
  }
}

#customermap .gmap, #serviceareamap .gmap {
  width: 100%;
  height: 300px;
  position: absolute;
  left: 0px;
  top: 0px;
  z-index: 1;
}
@media (min-width: 767px) {
  #customermap .gmap, #serviceareamap .gmap {
    height: 500px;
  }
}

.contact-form {
  background: #000;
  text-align: center;
  background-size: cover;
  color: #FFF;
}
.contact-form .contact-overlay {
  background: rgba(0, 0, 0, 0.7);
}
.contact-form .contact-inner {
  padding: 2em;
  max-width: 1000px;
  margin: 0px auto;
}
@media (min-width: 767px) {
  .contact-form .contact-inner {
    padding: 6em 0;
  }
}
@media (min-width: 767px) {
  .contact-form .call-section {
    display: inline-block;
    vertical-align: middle;
    width: 50%;
    box-sizing: border-box;
    border-right: 1px solid #FFF;
    padding: 3em 0;
  }
}
@media (min-width: 767px) {
  .contact-form form {
    display: inline-block;
    vertical-align: middle;
    width: 45%;
    margin-left: 4%;
  }
}
.contact-form h1 {
  padding: 0 0 0.5em;
  font-weight: 700;
  font-size: 1.75em;
  margin: 0px auto;
  font-family: "Barlow Semi Condensed", sans-serif;
}
@media (min-width: 767px) {
  .contact-form h1 {
    font-size: 2.25em;
  }
}
@media (min-width: 992px) {
  .contact-form h1 {
    font-size: 3em;
  }
}
.contact-form .desktop-call {
  display: none;
  font-size: 2.25em;
  font-weight: 800;
}
.contact-form .desktop-call svg {
  vertical-align: middle;
  margin-left: -16px;
}
.contact-form .desktop-call a[href^=tel] {
  color: #FFF;
  text-decoration: none;
}
.contact-form .mobile-call {
  display: none;
}
@media (max-width: 767px) {
  .contact-form .mobile-call {
    display: inline-block;
    background: #d40000;
    color: #FFF;
    font-weight: 700;
    font-size: 1.75em;
    line-height: 1.5;
    padding: 0.25em 1.5em 0.35em;
    cursor: pointer;
    margin: 0.5em 0;
    font-family: "Barlow Semi Condensed", sans-serif;
    text-decoration: none;
  }
  .contact-form .mobile-call:hover {
    background-image: linear-gradient(-180deg, #BE0000 0%, #E00000 100%);
  }
}
.contact-form .mobile-call svg {
  vertical-align: middle;
}
.contact-form h4 {
  font-size: 1em;
  text-transform: uppercase;
  font-family: "Barlow Semi Condensed", sans-serif;
  font-weight: 400;
  margin: 0.75em 0 0;
}
@media (min-width: 767px) {
  .contact-form h4 {
    font-size: 1.125em;
    margin: 0.75em 0;
  }
}
.contact-form form {
  padding: 2em 1em;
}
@media (min-width: 767px) {
  .contact-form form {
    background: #000;
    padding: 2em 1em;
    box-sizing: border-box;
  }
}
.contact-form form .form-inner {
  position: relative;
}
.contact-form form h3 {
  font-size: 1.25em;
  color: #FFF;
  font-family: "Barlow Semi Condensed", sans-serif;
}
@media (min-width: 767px) {
  .contact-form form h3 {
    font-size: 1.25em;
    margin: 0 0 1em;
  }
}
.contact-form form input {
  display: block;
  margin: 0.5em auto;
  width: 100%;
  height: 52px;
  padding: 0.25em 0.75em;
  box-sizing: border-box;
  border: 1px solid #979797;
  font-family: "Heebo", sans-serif;
  font-size: 1em;
  color: #000;
  outline: none;
  border-radius: 0;
}
.contact-form form input:placeholder {
  color: #979797;
}
.contact-form form input.error {
  background-color: #ffe8e8;
  border: 1px solid #ce6363;
}
.contact-form form label.error {
  font-size: 0.825em;
  margin: -0.325em 0 0.825em 0;
  display: block;
  color: #7b0404;
}
.contact-form form select {
  display: block;
  margin: 0.5em auto;
  width: 100%;
  height: 52px;
  padding: 0.25em 0.75em;
  box-sizing: border-box;
  border: 1px solid #979797;
  font-family: "Heebo", sans-serif;
  font-size: 1em;
  color: #000;
  outline: none;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: url('data:image/svg+xml;utf8,<svg width="12" height="8" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h11.281l-5.64 7.64z" fill="%23D8D8D8" fill-rule="evenodd"/></svg>') 96% no-repeat #FFF;
}
.contact-form form select:placeholder {
  color: #979797;
}
.contact-form form select:disabled {
  color: #979797;
}
.contact-form form textarea {
  display: block;
  margin: 0.5em auto;
  width: 100%;
  height: 108px;
  padding: 0.25em 0.75em;
  box-sizing: border-box;
  border: 1px solid #979797;
  font-family: "Heebo", sans-serif;
  font-size: 1em;
  color: #000;
  border-radius: 0;
  outline: none;
}
.contact-form form textarea:placeholder {
  color: #979797;
}
.contact-form form textarea.error {
  background-color: #ffe8e8;
  border: 1px solid #ce6363;
}
.contact-form form button {
  display: block;
  margin: 0.5em auto;
  width: 100%;
  height: 52px;
  padding: 0.25em 0.75em;
  box-sizing: border-box;
  border: 0px none;
  outline: none;
  font-family: "Heebo", sans-serif;
  font-size: 1em;
  color: #FFF;
  background: #FF0000;
  border-radius: 0;
}
.contact-form form .success {
  display: none;
  background: #000;
  position: absolute;
  height: 100%;
  color: #FFF;
  text-align: center;
  top: 0px;
  left: 0px;
  width: 100%;
  box-sizing: border-box;
  padding: 9em 1em 0;
}
.contact-form form .success p {
  font-weight: 600;
  color: #000;
}
@media (min-width: 767px) {
  .contact-form form .success {
    padding: 6em 1em 0;
    left: 50%;
    width: 100%;
    transform: translateX(-50%);
  }
}
.contact-form h3.schedulermessage {
  font-size: 1.5em;
}
.contact-form p.schedulermessage {
  color: #444;
  font-size: 1.125em;
  padding: 0 1.25em;
  margin-bottom: 1.5em;
}
.contact-form a.schedulerpro {
  box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.24), 0 24px 40px 0 rgba(0, 0, 0, 0.08);
  font-weight: 600;
  font-size: 1.5em;
}
@media (min-width: 767px) {
  .contact-form a.schedulerpro {
    font-size: 1.75em;
  }
  .contact-form a.schedulerpro i {
    background-size: 32px 32px;
    width: 32px;
    height: 32px;
  }
}
@media (min-width: 767px) {
  .contact-form .mobile-call {
    display: none;
  }
  .contact-form .desktop-call {
    display: block;
  }
}

footer {
  padding: 1.5em 1.5em 1.5em;
  text-align: center;
  color: #FFF;
  background: #232728;
}
@media (min-width: 767px) {
  footer {
    padding: 1.5em 1em 1.5em;
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    align-items: center;
  }
}
footer .copyright {
  color: #c5c5c5;
}
@media (min-width: 767px) {
  footer .copyright {
    text-align: left;
  }
  footer .copyright span {
    display: block;
  }
}
footer .poweredby {
  color: #FFF;
  font-size: 0.75em;
  margin-top: 1em;
}
footer .poweredby img {
  width: 48px;
  height: 32px;
  vertical-align: middle;
  margin-left: 1em;
}
@media (min-width: 767px) {
  footer .poweredby {
    margin-top: 0px;
  }
  footer .poweredby span {
    display: inline-block;
    vertical-align: middle;
    width: 100px;
    text-align: right;
  }
  footer .poweredby img {
    width: 98px;
    height: 67px;
    margin-left: 1.5em;
  }
}

.zoomnotification {
  background: rgba(0, 0, 0, 0.8);
  border-radius: 10px;
  padding: 1.5em;
  font-size: 14px;
  color: #FFF;
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 99;
  font-family: Arial, Helvetica, sans-serif;
  width: 180px;
  text-align: center;
  margin-left: -90px;
  margin-top: -29px;
  display: none;
  box-sizing: border-box;
}

.geolocate {
  background: #FFF;
  color: #0E1428;
  padding: 1px 6px;
  border: 1px solid #717B87;
  position: absolute;
  left: 50%;
  bottom: 1em;
  z-index: 99;
  cursor: pointer;
  font-family: Arial, Roboto, Helvetica, sans-serif;
  padding: 0.5em 0;
  font-size: 14px;
  width: 180px;
  text-align: center;
  margin-left: -90px;
}

#legend {
  text-align: left;
  color: #0E1428;
}

#legend h3 {
  margin-top: 0;
}

#legend img {
  vertical-align: middle;
}

a.desktoponly, span.desktoponly {
  display: none;
}
@media (min-width: 767px) {
  a.desktoponly, span.desktoponly {
    display: inline;
  }
}

@media (min-width: 767px) {
  a.mobileonly, span.mobileonly {
    display: none;
  }
}

span.mobilebreak {
  display: block;
}
@media (min-width: 767px) {
  span.mobilebreak {
    display: inline;
  }
}

body.bluegrey section.headline {
  background: #0e2b5c;
}
body.bluegrey section.about .promo {
  background: #0e2b5c;
  color: #FFF;
}
body.bluegrey section.about .promo p {
  color: #d4d4d4;
}
body.bluegrey section.about .desktopcall {
  background: #EEE;
  color: #000;
}
body.bluegrey section.about .desktopcall h2 {
  color: #000;
}
body.bluegrey section.about .desktopcall p {
  color: #000;
}
body.bluegrey .servicetiles {
  background: #0e2b5c;
}
body.bluegrey .tile h3 {
  font-weight: 600;
}
body.bluegrey .tile img {
  border-bottom: 4px solid #0e2b5c;
}
body.bluegrey .customer-reviews .review .quote {
  background: #EEE;
}
body.bluegrey .project-map {
  background: #0e2b5c;
}
body.bluegrey .contact-form form {
  background: #FFF;
}
body.bluegrey .contact-form form h3 {
  color: #000;
}
body.bluegrey .contact-form form .success {
  background: #fff;
  color: #000;
}
body.bluegrey footer {
  background: #131313;
}
body.bluegrey .contact-form .contact-overlay {
  background: rgba(9, 19, 49, 0.7);
}

body.alternatelight, body.alternatedark {
  font-family: "Open Sans", sans-serif;
}
body.alternatelight a.schedule, body.alternatelight a.schedulerpro, body.alternatedark a.schedule, body.alternatedark a.schedulerpro {
  font-family: "Encode Sans Condensed", sans-serif;
}
@media (max-width: 767px) {
  body.alternatelight header .call a, body.alternatelight header .hours a, body.alternatedark header .call a, body.alternatedark header .hours a {
    font-family: "Encode Sans Condensed", sans-serif;
  }
}
body.alternatelight section.headline, body.alternatedark section.headline {
  font-family: "Encode Sans Condensed", sans-serif;
}
body.alternatelight section.headline p, body.alternatedark section.headline p {
  font-family: "Open Sans", sans-serif;
}
body.alternatelight section.about h1, body.alternatedark section.about h1 {
  font-family: "Encode Sans Condensed", sans-serif;
}
body.alternatelight section.about .promo h2, body.alternatedark section.about .promo h2 {
  font-family: "Encode Sans Condensed", sans-serif;
}
body.alternatelight section.about .desktopcall h2, body.alternatelight section.about .desktopcall h3, body.alternatedark section.about .desktopcall h2, body.alternatedark section.about .desktopcall h3 {
  font-family: "Encode Sans Condensed", sans-serif;
}
body.alternatelight .tiles h4, body.alternatedark .tiles h4 {
  font-family: "Encode Sans Condensed", sans-serif;
}
body.alternatelight .servicetiles h2, body.alternatelight .servicetiles h3, body.alternatedark .servicetiles h2, body.alternatedark .servicetiles h3 {
  font-family: "Encode Sans Condensed", sans-serif;
}
body.alternatelight .servicetiles p, body.alternatedark .servicetiles p {
  font-family: "Open Sans", sans-serif;
}
body.alternatelight .bulletpoints h3, body.alternatelight .services h3, body.alternatedark .bulletpoints h3, body.alternatedark .services h3 {
  font-family: "Encode Sans Condensed", sans-serif;
}
body.alternatelight .customer-reviews h1, body.alternatedark .customer-reviews h1 {
  font-family: "Encode Sans Condensed", sans-serif;
}
body.alternatelight .customer-reviews h4, body.alternatedark .customer-reviews h4 {
  font-family: "Encode Sans Condensed", sans-serif;
}
body.alternatelight .customer-reviews .quote, body.alternatedark .customer-reviews .quote {
  font-family: "Open Sans", sans-serif;
}
body.alternatelight .project-map h1, body.alternatedark .project-map h1 {
  font-family: "Encode Sans Condensed", sans-serif;
}
body.alternatelight .contact-form h1, body.alternatedark .contact-form h1 {
  font-family: "Encode Sans Condensed", sans-serif;
}
@media (max-width: 767px) {
  body.alternatelight .contact-form .mobile-call, body.alternatedark .contact-form .mobile-call {
    font-family: "Encode Sans Condensed", sans-serif;
  }
}
body.alternatelight .contact-form h4, body.alternatedark .contact-form h4 {
  font-family: "Encode Sans Condensed", sans-serif;
}
body.alternatelight .contact-form form h3, body.alternatedark .contact-form form h3 {
  font-family: "Encode Sans Condensed", sans-serif;
}
body.alternatelight .contact-form form input, body.alternatelight .contact-form form select, body.alternatelight .contact-form form textarea, body.alternatelight .contact-form form button, body.alternatedark .contact-form form input, body.alternatedark .contact-form form select, body.alternatedark .contact-form form textarea, body.alternatedark .contact-form form button {
  font-family: "Open Sans", sans-serif;
}

body.alternatedark header {
  background: #003F84;
  color: #FFF;
}
body.alternatedark header svg path {
  fill: #DCDCDC;
}
body.alternatedark header .call a {
  color: #FFF;
  font-size: 1.625em;
}
body.alternatedark header .hours {
  display: none;
}
body.alternatedark header .hours span.open {
  color: #70b36d;
}
body.alternatedark header .call p {
  display: none;
}
body.alternatedark section.headline {
  background: #003F84;
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  flex-wrap: wrap;
}
@media (min-width: 767px) {
  body.alternatedark section.headline {
    flex-wrap: nowrap;
  }
}
body.alternatedark section.headline .phone, body.alternatedark section.headline .text, body.alternatedark section.headline .promo {
  width: 45%;
}
@media (min-width: 767px) {
  body.alternatedark section.headline .phone, body.alternatedark section.headline .text, body.alternatedark section.headline .promo {
    width: 30%;
  }
}
@media (min-width: 992px) {
  body.alternatedark section.headline .phone, body.alternatedark section.headline .text, body.alternatedark section.headline .promo {
    width: 25%;
  }
}
body.alternatedark section.headline .phone a {
  color: #FFF;
  text-decoration: none;
}
body.alternatedark section.headline .phone p, body.alternatedark section.headline .text p {
  font-family: "Encode Sans Condensed", sans-serif;
}
body.alternatedark section.headline .promo {
  margin: 1.5em 0;
  padding: 0.25em;
  box-sizing: border-box;
  background: linear-gradient(180deg, #F02828 0%, #C70000 100%);
}
@media (max-width: 767px) {
  body.alternatedark section.headline .promo {
    order: 1;
  }
}
body.alternatedark section.headline .promo h2 {
  line-height: 1.2;
  margin: 0;
}
body.alternatedark section.headline .promo h2 strong {
  font-size: 3em;
  display: block;
}
body.alternatedark section.headline .promo p, body.alternatedark section.headline .promo small {
  margin: 0px;
  font-family: "Open Sans", sans-serif;
  font-size: 0.825em;
}
body.alternatedark section.about .inner {
  max-width: 770px;
}
body.alternatedark section.about .aboutcopy p {
  line-height: 1.4;
  font-size: 1em;
}
@media (min-width: 767px) {
  body.alternatedark section.about .aboutcopy {
    width: 100%;
    float: none;
  }
}
@media (min-width: 767px) {
  body.alternatedark .project-map h1 {
    width: 100%;
    max-width: 100%;
    margin: 0;
    display: block;
    text-align: center;
    padding: 0.5em 0;
  }
}
@media (min-width: 767px) {
  body.alternatedark .project-map .mapcontainer {
    display: block;
    width: 100%;
  }
}
body.alternatedark section.bulletpoints {
  padding: 1em 0;
  border-bottom: 1px solid #AAA;
}
body.alternatedark section.bulletpoints .copy {
  background: #FFF !important;
  color: #000;
  text-align: center;
}
@media (min-width: 767px) {
  body.alternatedark section.bulletpoints .copy {
    text-align: left;
  }
}
body.alternatedark section.bulletpoints .photo {
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}
body.alternatedark section.bulletpoints li:before {
  content: url('data:image/svg+xml;utf8,<svg width="17" height="17" xmlns="http://www.w3.org/2000/svg"><path d="M8.5 0A8.52 8.52 0 0 0 0 8.5C0 13.17 3.82 17 8.5 17S17 13.17 17 8.5 13.18 0 8.5 0zM7.29 13L3 8.67l1.2-1.2 3.09 3.1L13.8 4 15 5.21 7.29 13z" fill="%23000" fill-rule="evenodd"/></svg>');
}
body.alternatedark footer {
  background: #000;
  padding: 1em;
}
body.alternatedark footer .copyright span {
  display: none;
}
body.alternatedark section.customer-reviews .meta {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
}
body.alternatedark .contact-form .call-section {
  display: flex;
  flex-direction: column-reverse;
}
@media (min-width: 767px) {
  body.alternatedark .contact-form .call-section {
    display: block;
    width: 100%;
    border-right: 0px none;
  }
}
body.alternatedark .contact-form .call-section h1 {
  font-size: 1.5em;
  color: #000;
}
body.alternatedark .contact-form .call-section .desktop-call {
  font-size: 3em;
  color: #000;
}
body.alternatedark .contact-form .call-section .desktop-call svg path {
  fill: #000;
}
body.alternatedark .contact-form .contact-overlay {
  background: rgba(219, 234, 255, 0.8);
}
body.alternatedark .contact-form form {
  display: block;
  margin: 0 auto;
  background: #FFF;
  color: #000;
  padding: 2em;
}
body.alternatedark .contact-form form h3 {
  color: #000;
}
@media (min-width: 767px) {
  body.alternatedark .contact-form form {
    margin-left: auto;
    width: 65%;
  }
}
body.alternatedark .contact-form form input, body.alternatedark .contact-form form select, body.alternatedark .contact-form form textarea {
  background: #fffff9;
  height: 60px;
}
body.alternatedark .contact-form form input::placeholder, body.alternatedark .contact-form form select::placeholder, body.alternatedark .contact-form form textarea::placeholder {
  color: #444;
}
body.alternatedark .contact-form form button {
  background-color: #d40000;
  font-family: "Encode Sans Condensed", sans-serif;
  font-weight: 600;
  font-size: 1.75em;
}
@supports (color: color(display-p3 0 0 0/1)) {
  body.alternatedark .contact-form form button {
    background-color: #d40000;
  }
}

#hgbar {
  background: #f4f3f6;
  padding: 8px 12px;
  text-align: center;
  color: #5a5d62;
  font-size: 12px;
  box-shadow: 0px 1px 1px 0px #cbc2c2;
  position: relative;
  z-index: 10;
  font-family: Heebo, sans-serif;
  margin: 0px;
  font-weight: 400;
}
@media (max-width: 767px) {
  #hgbar {
    font-size: 10px;
  }
}
#hgbar img {
  height: 39px;
  vertical-align: middle;
  margin-right: 1em;
  opacity: 0.5;
}
@media (max-width: 767px) {
  #hgbar img {
    height: 21px;
  }
}

@supports (color: color(display-p3 0 0 0/1)) {
  body .contact-form form button {
    background-color: color(display-p3 1 0 0/1);
  }

  a.schedule:hover, a.schedulerpro:hover {
    background: color(display-p3 1 0 0/1);
  }

  .contact-form .mobile-call:hover {
    background: color(display-p3 1 0 0/1);
  }

  @media (max-width: 767px) {
    body header .call a:hover {
      background-image: color(display-p3 1 0 0/1);
    }
  }
}