/* STYLES FOR ABOVE THE FOLD */
/*-- -------------------------- -->
<---           Hero             -->
<--- -------------------------- -*/
/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  #hero {
    z-index: 1;
    position: relative;
    /* prevents overflow from the lines extending past the screen width */
    overflow: hidden;
    /* changes on tablet */
    padding: 0 1rem;
    padding-bottom: 6.25rem;
    font-family: "Roboto", "Arial", sans-serif;
    /* Centers button */
    text-align: center;
  }
  #hero .cs-picture {
    z-index: -2;
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    height: 100%;
    /* Background Image */
    width: 100%;
  }
  #hero .cs-picture img {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    /* Makes image act like a background-image */
    object-fit: cover;
  }
  #hero .cs-picture:before {
    z-index: 1;
    position: absolute;
    top: 0;
    left: 0;
    /* Black Color Overlay */
    content: "";
    opacity: 0.7;
    display: block;
    background: #000;
    height: 100%;
    width: 100%;
    /* prevents the cursor from interacting with it */
    pointer-events: none;
  }
  #hero .cs-container {
    position: relative;
    margin: auto;
    max-width: 80em;
    width: 100%;
    /* we put the padding top and bottom on the container instead of #Hero so the pseudo element lines go to the top and bottom of the section */
    /* 144px - 280px - leaving extra space for the navigation */
    /* changes on tablet */
    padding: clamp(9em, 25.95vw, 17.5em) 0;
  }
  #hero .cs-container:before {
    position: absolute;
    top: 0;
    left: 0;
    /* Left Line */
    content: "";
    opacity: 1;
    display: block;
    background: -moz-linear-gradient(top, rgba(250, 251, 252, 0.5) 0%, rgba(250, 251, 252, 0) 100%); /* FF3.6-15 */
    background: -webkit-linear-gradient(top, rgba(250, 251, 252, 0.5) 0%, rgba(250, 251, 252, 0) 100%); /* Chrome10-25,Safari5.1-6 */
    height: 100%;
    width: 1px;
  }
  #hero .cs-flex-group {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    margin: auto;
    /* 60px - 220px */
    margin-bottom: clamp(3.75em, 15.5vw, 13.75em);
    /* 464px - 562px */
    max-width: clamp(29em, 60vw, 35.125em);
    width: 80vw;
    box-sizing: border-box;
  }
  #hero .cs-topper {
    margin-bottom: 1rem;
    color: var(--primary);
    text-align: center;
  }
  #hero .cs-title {
    width: 100%;
    color: var(--bodyTextColorWhite);
    text-align: center;
  }
  #hero .cs-text {
    /* 32px - 40px */
    margin: 0 auto clamp(2rem, 4vw, 2.5rem) 0;
    /* 40px - 48px */
    margin-bottom: clamp(2.5rem, 4vw, 3rem);
    color: var(--bodyTextColorWhite);
    text-align: center;
  }
  #hero .cs-button-solid {
    margin-bottom: 1rem;
    height: initial;
    line-height: clamp(2.875em, 5.5vw, 3.5em);
  }
  #hero .cs-button-transparent {
    z-index: 1;
    position: relative;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border: 1px solid var(--bodyTextColorWhite);
    margin: 0 0.5rem;
    background-color: transparent;
    /* 46px - 56px */
    height: clamp(2.875em, 5.5vw, 3.5em);
    width: 11.25rem;
    box-sizing: border-box;
    padding: 0;
    text-decoration: none;
    font-size: 1rem;
    /* 46px - 56px */
    line-height: clamp(2.875em, 5.5vw, 3.5em);
    font-weight: 700;
    color: #fff;
  }
  #hero .cs-button-transparent .cs-img {
    display: block;
    margin-right: 0.75rem;
  }
  #hero .cs-button-transparent:before {
    z-index: -1;
    position: absolute;
    /* so it sits on top of the border */
    top: -1px;
    bottom: -1px;
    left: -1px;
    right: -1px;
    content: "";
    opacity: 1;
    /* this is what creates the grow affect on hover */
    transform: scaleX(0);
    display: block;
    background: #000;
    transition: transform 0.3s;
    transform-origin: left;
  }
  #hero .cs-button-transparent:hover:before {
    transform: scaleX(1);
  }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
  #hero {
    /* 32px - 40px */
    padding: 0 clamp(2em, 5vw, 2.5em);
  }
  #hero .cs-container {
    padding: clamp(7em, 27.95vw, 17.5em) 0 clamp(9em, 30.95vw, 23.5em) 0;
  }
  #hero .cs-container:after {
    position: absolute;
    top: 0;
    right: 0;
    /* Right Line */
    content: "";
    opacity: 1;
    display: block;
    background: -moz-linear-gradient(top, rgba(250, 251, 252, 0) 0%, rgba(250, 251, 252, 0.5) 100%); /* FF3.6-15 */
    background: -webkit-linear-gradient(top, rgba(250, 251, 252, 0) 0%, rgba(250, 251, 252, 0.5) 100%); /* Chrome10-25,Safari5.1-6 */
    height: 100%;
    width: 1px;
  }
  #hero .cs-button-solid {
    margin-right: 1.25rem;
    margin-bottom: 0;
  }
}
/* Desktop Parallax Effect - 1300px */
@media only screen and (min-width: 81.25em) {
  #hero {
    background: url("/assets/images/landing.jpg");
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    /* creates parallax effect on background image */
    background-attachment: fixed;
  }
}
/* Dark Mode */
@media only screen and (min-width: 0rem) {
  body.dark-mode #hero .cs-background:before {
    opacity: 0.8;
  }
}/*-- -------------------------- -->
<---          Services          -->
<--- -------------------------- -*/

/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  #services-1354 {
      padding: var(--sectionPadding);
      position: relative;
      z-index: 10;
  }
  #services-1354 .cs-container {
      width: 100%;
      max-width: 80rem;
      margin: auto;
      display: flex;
      justify-content: center;
      align-items: center;
      flex-direction: column;
      gap: clamp(3rem, 6vw, 4rem);
  }
  #services-1354 .cs-content {
      /* set text align to left if content needs to be left aligned */
      text-align: center;
      width: 100%;
      display: flex;
      flex-direction: column;
      /* centers content horizontally, set to flex-start to left align */
      align-items: center;
  }

  #services-1354 .cs-topper {
      color: #767676;
  }
  #services-1354 .cs-title {
      max-width: 25ch;
      margin: 0;
  }
  #services-1354 .cs-card-group {
      margin: 0;
      padding: 0;
      width: 100%;
      display: grid;
      grid-template-columns: repeat(12, 1fr);
      /* 16px - 20px */
      gap: clamp(1rem, 2vw, 1.25rem);
  }
  #services-1354 .cs-item {
      text-align: center;
      list-style: none;
      width: 100%;
      height: 19.0625rem;
      margin: 0;
      padding: 0;
      background-color: #000;
      border-radius: 1.5rem;
      /* clips background image corners */
      overflow: hidden;
      box-shadow: 0px 12px 80px 0px rgba(26, 26, 26, 0.08);
      /* prevents padding and border from affecting height and width */
      box-sizing: border-box;
      grid-column: span 12;
      grid-row: span 1;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      justify-content: flex-end;
      position: relative;
      z-index: 1;
  }
  #services-1354 .cs-item:hover .cs-background:before {
      background-color: var(--primary);
      opacity: 0.84;
  }
  #services-1354 .cs-item:hover .cs-background img {
      transform: scale(1.2);
  }
  #services-1354 .cs-link {
      text-decoration: none;
      width: 100%;
      height: 100%;
      /* padding goes on the link, not the cs-item as is normal. We do this because we want the whole card to be hoverable. So we add the padding to the link tag to create the space inside the card. By adding the space inside the cs-link tag we can make the whole card hoverable since the padding is now contributing to the height and widht of the link */
      padding: 1.5rem;
      /* prevents padding from affecting height and width */
      box-sizing: border-box;
      display: flex;
      justify-content: center;
      align-items: center;
  }
  #services-1354 .cs-h3 {
      font-size: 1.5625rem;
      line-height: 1.2em;
      font-weight: bold;
      text-align: inherit;
      margin: 0;
      color: var(--bodyTextColorWhite);
      transition: color 0.3s;
  }
  #services-1354 .cs-span {
      /* forces the h3 to alwasy be two lines */
      display: block;
  }
  #services-1354 .cs-background {
      width: 100%;
      height: 100%;
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      z-index: -1;
  }
  #services-1354 .cs-background:before {
      /* background color overlay */
      content: "";
      position: absolute;
      display: block;
      height: 100%;
      width: 100%;
      background-color: #000;
      opacity: 0.4;
      top: 0;
      left: 0;
      z-index: 1;
      transition:
          background-color 0.3s,
          opacity 0.3s;
  }
  #services-1354 .cs-background img {
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
      width: 100%;
      /* Makes img tag act as a background image */
      object-fit: cover;
      transition: transform 0.6s;
  }
}
/* Tablet - 600px */
@media only screen and (min-width: 37.5rem) {
  #services-1354 .cs-item {
      grid-column: span 6;
  }
}
/* Desktop - 1024px */
@media only screen and (min-width: 64rem) {
  #services-1354 .cs-content {
      text-align: left;
      align-items: flex-start;
  }
  #services-1354 .cs-item {
      grid-column: span 3;
  }
}
/*-- -------------------------- -->
<---         Services           -->
<--- -------------------------- -*/

/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  #stats-1312 {
      padding: var(--sectionPadding);
      background-color: #f7f7f7;
  }
  #stats-1312 .cs-container {
      width: 100%;
      /* changes to 1920px at desktop */
      max-width: 25rem;
      margin: auto;
      display: flex;
      flex-direction: column;
      align-items: center;
      /* 48px - 64px */
      gap: clamp(3rem, 6vw, 4rem);
  }
  #stats-1312 .cs-content {
      width: 100%;
      display: flex;
      flex-direction: column;
      /* centers content horizontally, set to flex-start to left align */
      align-items: center;
      /* set text align to left if content needs to be left aligned */
      text-align: center;
  }
  #stats-1312 .cs-quote {
      /* 31px - 49px */
      font-size: clamp(1.9375rem, 5.1vw, 3.0625rem);
      line-height: 1.2em;
      font-weight: bold;
      margin: 0;
      margin-bottom: 1.5rem;
      color: #1a1a1a;
      text-align: inherit;
  }
  #stats-1312 .cs-name {
      /* 20px - 25px */
      font-size: clamp(1.25rem, 3.25vw, 1.5625rem);
      line-height: 1.2em;
      font-weight: 700;
      margin: 0;
      margin-bottom: 0.5rem;
      color: var(--primary);
      display: block;
      text-align: inherit;
  }
  #stats-1312 .cs-job {
      font-size: 1rem;
      line-height: 1.5em;
      margin: 0;
      color: var(--bodyTextColor);
      text-align: inherit;
  }
  #stats-1312 .cs-card-group {
      width: 100%;
      margin: 0;
      padding: 0;
      display: flex;
      flex-direction: column;
      position: relative;
      row-gap: 4rem;
      /* horizontal line */
  }
  #stats-1312 .cs-card-group::after {
      content: "";
      width: 100%;
      height: 1px;
      background-color: #e8e8e8;
      position: absolute;
      top: 50%;
  }
  #stats-1312 .cs-flex-group {
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      position: relative;
      /* vertical line */
  }
  #stats-1312 .cs-flex-group::before {
      content: "";
      width: 1px;
      height: 100%;
      background-color: #e8e8e8;
      position: absolute;
      right: 50%;
  }
  #stats-1312 .cs-item {
      /* as the child .cs-number is absolutely positioned, it won't contribute to the size of the box */
      /* we can set the height equal to the font-size which works around this */
      /* 100px - 120px */
      height: clamp(6.25rem, 11vw, 10rem);
      display: flex;
      justify-content: center;
      align-items: center;
      position: relative;
  }
  #stats-1312 .cs-number {
      /* 100px - 120px */
      font-size: clamp(6.25rem, 11vw, 10rem);
      line-height: 1.2em;
      font-weight: 900;
      margin: 0;
      color: #e8e8e8;
      display: block;
  }
  #stats-1312 .cs-stat {
      /*20px - 25pxx */
      font-size: clamp(1.25rem, 1.8vw, 1.5625rem);
      line-height: 1.5em;
      font-weight: bold;
      margin: 1rem 0 0 0;
      color: var(--headerColor);
      display: block;
      position: absolute;
      z-index: 2;
  }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
  #stats-1312 .cs-container {
      max-width: 120rem;
  }
  #stats-1312 .cs-card-group {
      flex-direction: row;
      /* turn horizontal line into vertical*/
  }
  #stats-1312 .cs-card-group::after {
      width: 1px;
      height: 100%;
      top: initial;
      right: 50%;
  }
  #stats-1312 .cs-flex-group {
      justify-content: space-around;
      flex: 1;
  }
}
/* Desktop - 1024px */
@media only screen and (min-width: 64rem) {
  #stats-1312 .cs-content {
      max-width: 53.125rem;
  }
}

                              
                              
/*# sourceMappingURL=critical.css.map */
