:root {
  /* Add these styles to your global stylesheet, which is used across all site pages. You only need to do this once. All elements in the library derive their variables and base styles from this central sheet, simplifying site-wide edits. For instance, if you want to modify how your h2's appear across the site, you just update it once in the global styles, and the changes apply everywhere. */
  --primary: #df0606;
  --primaryLight: #df0606;
  --secondary: #df0606;
  --secondaryLight: #df0606;
  --headerColor: #1a1a1a;
  --bodyTextColor: #4e4b66;
  --bodyTextColorWhite: #fafbfc;
  /* 13px - 16px */
  --topperFontSize: clamp(0.8125rem, 1.6vw, 1rem);
  /* 31px - 49px */
  --headerFontSize: clamp(1.9375rem, 3.9vw, 3.0625rem);
  --bodyFontSize: 1.2rem;
  /* 60px - 100px top and bottom */
  --sectionPadding: clamp(3.75rem, 7.82vw, 6.25rem) 1rem;

  --fontStyle: "Afacad Flux", sans-serif;
}
/*-- -------------------------- -->
<---       Side By Side         -->
<--- -------------------------- -*/

/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
    #sbs-683 {
        padding: var(--sectionPadding);
        /* clips the zigzag graphic so it doesn't cause overflow issues */
        overflow: hidden;
    }
    #sbs-683 .cs-container {
        width: 100%;
        max-width: 80rem;
        margin: auto;
        margin-top: 4.5rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        /* 48px - 64px */
        gap: clamp(3rem, 6vw, 4rem);
    }
    #sbs-683 .cs-content {
        /* set text align to left if content needs to be left aligned */
        text-align: left;
        width: 100%;
        max-width: 33.875rem;
        display: flex;
        flex-direction: column;
        /* centers content horizontally, set to flex-start to left align */
        align-items: flex-start;
    }

    #sbs-683 .cs-text {
        margin-bottom: 1rem;
    }
    #sbs-683 .cs-text:last-of-type {
        margin-bottom: 2rem;
    }
    #sbs-683 .cs-button-solid {
        font-size: 1rem;
        /* 46px - 56px */
        line-height: clamp(2.875rem, 5.5vw, 3.5rem);
        text-decoration: none;
        font-weight: 700;
        text-align: center;
        margin: 0;
        color: #fff;
        min-width: 9.375rem;
        padding: 0 1.5rem;
        background-color: var(--primary);
        border-radius: 0.25rem;
        display: inline-block;
        position: relative;
        z-index: 1;
        /* prevents padding from adding to the width */
        box-sizing: border-box;
    }
    #sbs-683 .cs-button-solid:before {
        content: "";
        position: absolute;
        height: 100%;
        width: 0%;
        background: #000;
        opacity: 1;
        top: 0;
        left: 0;
        z-index: -1;
        border-radius: 0.25rem;
        transition: width 0.3s;
    }
    #sbs-683 .cs-button-solid:hover:before {
        width: 100%;
    }
    #sbs-683 .cs-image-group {
        /* everything inside the image group is in ems so the font size will scale them down.  Font size minimum is tied to view width size, and grows until it reaches 75% of the value on em */
        font-size: min(2.3vw, 0.75em);
        width: 39.5em;
        height: 51.25em;
        position: relative;
        z-index: 1;
    }
    #sbs-683 .cs-picture {
        width: 19.125em;
        height: 22.5em;
        overflow: hidden;
        display: block;
        position: absolute;
    }
    #sbs-683 .cs-picture img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        position: absolute;
        top: 0;
        left: 0;
    }
    #sbs-683 .cs-picture1 {
        top: 5em;
        left: 0;
    }
    #sbs-683 .cs-picture2 {
        top: 0;
        right: 0;
    }
    #sbs-683 .cs-picture3 {
        bottom: 0;
        left: 0;
    }
    #sbs-683 .cs-picture4 {
        bottom: 5em;
        right: 0;
    }
    #sbs-683 .cs-graphic {
        display: none;
    }
}
/* Small Desktop - 1024px */
@media only screen and (min-width: 64rem) {
    #sbs-683 .cs-container {
        flex-direction: row;
        justify-content: space-between;
        margin-top: 2.5rem;
    }
    #sbs-683 .cs-image-group {
        font-size: min(1.2vw, 1em);
        flex: none;
    }
    #sbs-683 .cs-graphic {
        width: 61.4375em;
        height: auto;
        display: block;
        position: absolute;
        bottom: 10.3125em;
        right: -2em;
        z-index: -1;
    }
}



/*-- -------------------------- -->
<---        Single service Pages        -->
<--- -------------------------- -*/

/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
    #content-page-852 {
        padding: var(--sectionPadding);
        background-color: #fff;
        /* clips the wave background from causing overflow issues when it goes off screen */
        overflow: hidden;
        position: relative;
        z-index: 1;
    }
    #content-page-852 .cs-container {
        width: 100%;
        max-width: 80rem;
        margin: auto;
        margin-top: 5rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        /* 48px - 64px */
        gap: clamp(3rem, 6vw, 4rem);
        position: relative;
    }
    #content-page-852 .cs-content {
        /* set text align to left if content needs to be left aligned */
        text-align: left;
        width: 100%;
        max-width: 46.125rem;
        display: flex;
        flex-direction: column;
        /* centers content horizontally, set to flex-start to left align */
        align-items: flex-start;
    }
    #content-page-852 .cs-title {
        font-size: var(--headerFontSize);
        font-weight: 900;
        line-height: 1.2em;
        text-align: inherit;
        width: 100%;
        max-width: 100%;
        margin: 0 0 1rem 0;
        color: var(--headerColor);
        position: relative;
    }
    #content-page-852 h2,
    #content-page-852 h3,
    #content-page-852 h4,
    #content-page-852 h5,
    #content-page-852 h6 {
        font-weight: 700;
        text-align: inherit;
        margin: 0 0 1rem 0;
        color: var(--headerColor);
    }
    #content-page-852 h2 {
        font-size: 2rem;
        margin-top: 2rem;
    }
    #content-page-852 h3 {
        font-size: 1.5rem;
        color: var(--primary);
    }
    #content-page-852 h4,
    #content-page-852 h5,
    #content-page-852 h6 {
        font-size: 1.25rem;
    }
    #content-page-852 .cs-button-solid {
        margin-bottom: 2rem;
    }
    #content-page-852 .cs-no-margin {
        margin: 0;
    }
    #content-page-852 .cs-color {
        color: var(--primary);
    }
    #content-page-852 p {
        font-size: var(--bodyFontSize);
        line-height: 1.5em;
        text-align: inherit;
        width: 100%;
        margin: 0 0 1rem 0;
        color: var(--bodyTextColor);
    }
    #content-page-852 p:last-of-type {
        margin-bottom: 2rem;
    }
    #content-page-852 p a {
        font-size: inherit;
        line-height: inherit;
        text-decoration: underline;
        color: var(--primary);
    }
    #content-page-852 ol,
    #content-page-852 ul {
        padding-left: 1.5rem;
        margin: 0 0 2rem 0;
        color: var(--bodyTextColor);
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }
    #content-page-852 ul li {
        list-style: none;
        color: inherit;
        position: relative;
    }
    #content-page-852 ul li:before {
        /* custom list bullet */
        content: "";
        width: 3px;
        height: 3px;
        background: currentColor;
        opacity: 1;
        border-radius: 50%;
        position: absolute;
        display: block;
        top: 0.625rem;
        left: -0.75rem;
    }
    #content-page-852 img {
        width: 100%;
        height: auto;
        display: block;
    }
    #content-page-852 .cs-image-group {
        width: 50%;
        max-width: 27.0625rem;
        display: none;
        flex-direction: column;
        gap: 1.25rem;
        position: relative;
    }
    #content-page-852 .cs-image-group:after {
        /* colored box */
        content: "";
        width: 100%;
        /* 177px - 258px */
        height: clamp(11.0625rem, 19vw, 16.125rem);
        background: var(--primary);
        border-radius: 6.25rem 0 6.25rem;
        opacity: 0.15;
        display: block;
    }
    #content-page-852 .cs-picture {
        width: 100%;
        /* 300px - 520px */
        height: clamp(18.75rem, 40vw, 32.5rem);
        box-shadow: 0px 3.3478px 50.2169px rgba(0, 0, 0, 0.16);
        /* 125px - 200px */
        border-radius: 0 clamp(7.8125rem, 15vw, 12.5rem) 0
            clamp(7.8125rem, 15vw, 12.5rem);
        /* prevents border from affecting height and width */
        box-sizing: border-box;
        /* clips img tag corners */
        overflow: hidden;
        display: block;
        position: relative;
    }
    #content-page-852 .cs-picture img {
        width: 100%;
        height: 100%;
        /* makes it act like a background image */
        object-fit: cover;
    }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
    #content-page-852 .cs-container {
        flex-direction: row;
        align-items: flex-start;
        justify-content: space-between;
    }
    #content-page-852 .cs-content {
        flex: none;
        width: 60%;
        /* sens it to the right in the 2nd position */
        order: 2;
    }
    #content-page-852 .cs-image-group {
        display: flex;
    }
}

/*-- -------------------------- -->
<---          Services          -->
<--- -------------------------- -*/

/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
    #services-1628 {
      padding: var(--sectionPadding);
      background-color: #f7f7f7;
    }
    #services-1628 .cs-container {
      width: 100%;
      /* changes to 1280px at tablet */
      max-width: 34.375em;
      margin: auto;
      display: flex;
      flex-direction: column;
      align-items: center;
      /* 48px - 64px */
      gap: clamp(3rem, 6vw, 4rem);
    }
    #services-1628 .cs-content {
      /* set text align to left if content needs to be left aligned */
      text-align: left;
      width: 100%;
      display: flex;
      flex-direction: column;
      /* centers content horizontally, set to flex-start to left align */
      align-items: flex-start;
    }
    #services-1628 .cs-title {
      max-width: 20ch;
    }
    #services-1628 .cs-text {
      max-width: 40rem;
      position: relative;
      z-index: 1;
    }
    #services-1628 .cs-text:after {
      /* divider line */
      content: "";
      width: 100%;
      height: 1px;
      margin-top: 1.5rem;
      background: var(--primary);
      opacity: 1;
      display: block;
      position: relative;
    }
    #services-1628 .cs-chevron {
      --chevronColor: var(--primary);
      width: 3rem;
      height: auto;
    }
    #services-1628 .cs-card-group {
      width: 100%;
      margin: 0;
      padding: 0;
      display: grid;
      grid-template-columns: repeat(12, 1fr);
      /* 16px - 20px */
      column-gap: clamp(1rem, 2.5vw, 1.25rem);
      /* 28px - 40px */
      row-gap: clamp(1.75rem, 2.5vw, 2.5rem);
    }
    #services-1628 .cs-item {
      list-style: none;
      width: 100%;
      display: flex;
      grid-column: span 12;
      flex-direction: column;
      align-items: flex-start;
    }
    #services-1628 .cs-item:hover .cs-picture img {
      opacity: .5;
      transform: scale(1.2);
    }
    #services-1628 .cs-link {
      text-decoration: none;
      height: 100%;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
    }
    #services-1628 .cs-picture {
      width: 100%;
      height: 15rem;
      margin-bottom: 1.5rem;
      background-color: #000;
      overflow: hidden;
      display: block;
      position: relative;
    }
    #services-1628 .cs-picture img {
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
      width: 100%;
      object-fit: cover;
      transition: transform .6s, opacity .3s;
    }
    #services-1628 .cs-h3 {
      font-size: 1.25rem;
      line-height: 1.2em;
      font-weight: 700;
      text-align: left;
      margin: 0 0 0.75rem 0;
      color: var(--headerColor);
    }
    #services-1628 .cs-item-text {
      font-size: 1rem;
      line-height: 1.5em;
      text-align: left;
      margin: 0 0 1.5rem 0;
      color: var(--bodyTextColor);
    }
    #services-1628 .cs-fake-link {
      font-size: 1rem;
      line-height: 1.2em;
      font-weight: 700;
      margin: 0;
      margin-top: auto;
      color: var(--primary);
      display: inline-flex;
      justify-content: flex-start;
      align-items: center;
      gap: 0.5rem;
    }
    #services-1628 .cs-fake-link:hover .cs-icon {
      transform: translateX(0.5rem);
    }
    #services-1628 .cs-icon {
      width: 1.25rem;
      height: auto;
      display: block;
      transition: transform .3s;
    }
  }
  /* Tablet - 768px */
  @media only screen and (min-width: 48rem) {
    #services-1628 .cs-container {
      max-width: 80rem;
    }
    #services-1628 .cs-content {
      flex-direction: row;
      justify-content: center;
      align-items: center;
    }
    #services-1628 .cs-flex {
      text-align: left;
      width: 40vw;
      max-width: 40rem;
      flex: none;
    }
    #services-1628 .cs-title {
      margin: 0;
    }
    #services-1628 .cs-text {
      padding: 0.75rem 0 0.75rem 1.5rem;
    }
    #services-1628 .cs-text:after {
      width: 1px;
      height: 100%;
      margin: 0 1.5rem 0 0;
      order: -1;
      position: absolute;
      left: 0;
      top: 0;
    }
    #services-1628 .cs-item {
      grid-column: span 6;
    }
    #services-1628 .cs-picture {
      /* 240px - 420px */
      height: clamp(15rem, 33vw, 26.25rem);
    }
  }
  /* Large Desktop - 1300px */
  @media only screen and (min-width: 81.25rem) {
    #services-1628 .cs-item {
      grid-column: span 3;
    }
  }