


/*-- -------------------------- -->
<---            CTA             -->
<--- -------------------------- -*/

/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
    #cta-1185 {
        width: 100%;
        max-width: 80rem;
        margin: var(--sectionPadding);
        margin-left: auto;
        margin-right: auto;
        margin-top: 0;
        /* 16px - 60px */
        padding: 3.75rem clamp(1rem, 7vw, 3.75rem);
        /* prevents padding and border from affecting height and width */
        box-sizing: border-box;
        border: 1px solid #484848;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        position: relative;
        z-index: 1;
    }
    #cta-1185 .cs-content {
        /* set text align to left if content needs to be left aligned */
        text-align: center;
        width: 100%;
        /* changes to 100% at tablet */
        max-width: 25rem;
        display: flex;
        flex-direction: column;
        /* centers content horizontally, set to flex-start to left align */
        align-items: center;
        gap: 1.5rem;
    }
    #cta-1185 .cs-title {
        width: 100%;
        font-size: 1.9375rem;
        margin: 0;
        color: var(--bodyTextColorWhite);
    }
    #cta-1185 .cs-form {
        width: 100%;
        max-width: 45.3125rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 1rem;
        /* prevents flexbox from squishing it */
        flex: none;
    }
    #cta-1185 .cs-input {
        font-size: 1rem;
        width: 100%;
        height: clamp(2.875rem, 5.5vw, 3.5rem);
        margin: 0;
        padding: 0;
        padding-left: 1.25rem;
        border: none;
        /* prevents padding from adding to width and height */
        box-sizing: border-box;
        display: block;
    }
    #cta-1185 .cs-input::placeholder {
        color: #767676;
    }
    #cta-1185 .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);
        display: inline-block;
        position: relative;
        z-index: 1;
        /* prevents padding from adding to the width */
        box-sizing: border-box;
    }
    #cta-1185 .cs-button-solid:before {
        content: "";
        position: absolute;
        height: 100%;
        width: 0%;
        background: #000;
        opacity: 1;
        top: 0;
        left: 0;
        z-index: -1;
        transition: width 0.3s;
    }
    #cta-1185 .cs-button-solid:hover:before {
        width: 100%;
    }
    #cta-1185 .cs-submit {
        width: 100%;
        border: none;
        transition: color 0.3s;
    }
    #cta-1185 .cs-submit:before {
        background-color: #fff;
    }
    #cta-1185 .cs-submit:hover {
        cursor: pointer;
        color: var(--primary);
    }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
    #cta-1185 .cs-container {
        padding-left: 3.75rem;
        padding-right: 3.75rem;
    }
    #cta-1185 .cs-content {
        max-width: 100%;
    }
    #cta-1185 .cs-form {
        flex-direction: row;
    }
    #cta-1185 .cs-input {
        width: 100%;
        max-width: 32.8125rem;
    }
    #cta-1185 .cs-submit {
        width: auto;
        min-width: 11.875rem;
        /* prevents flexbox from squishing it */
        flex: none;
    }
}
/* Desktop - 1300px */
@media only screen and (min-width: 81.25rem) {
    #cta-1185 .cs-content {
        flex-direction: row;
    }
    #cta-1185 .cs-form {
        width: 60%;
    }
}

/*-- -------------------------- -->
<---          Banner            -->
<--- -------------------------- -*/

/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
    #banner-712 {
        /* 175px - 200px top */
        padding: clamp(10rem, 10vw, 12rem) 1rem 6.25rem;
        position: relative;
        z-index: 1;
    }
    #banner-712 .cs-container {
        text-align: center;
        width: 100%;
        max-width: 80rem;
        margin: auto;
        display: flex;
        justify-content: center;
        align-items: flex-start;
        flex-direction: column;
        gap: 1rem;
    }
    #banner-712 .cs-int-title {
        /* 39px - 61px */
        font-size: clamp(2.4375rem, 6.4vw, 3.8125rem);
        font-weight: 900;
        line-height: 1.2em;
        text-align: inherit;
        margin: auto;
        color: var(--bodyTextColorWhite);
        position: relative;
    }
    #banner-712 .cs-int-subtitle {
        /* 20px-30px  */
        font-size: clamp(1.25rem, 0.625rem + 2vw, 1.875rem);
        font-weight: 900;
        line-height: 1.2em;
        text-align: inherit;
        margin: auto;
        padding-bottom: 3%;
        color: var(--bodyTextColorWhite);
        position: relative;
    }
    #banner-712 .cs-background {
        width: 100%;
        height: 350px;
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        z-index: -1;
        box-shadow: var(--boxShadow);
    }
    #banner-712 .cs-background:before {
        /* background color overlay */
        content: "";
        position: absolute;
        display: block;
        height: 100%;
        width: 100%;
        background: #000;
        opacity: 0.75;
        top: 0;
        left: 0;
        z-index: 1;
    }
    #banner-712 .cs-background img {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        width: 100%;
        /* Makes img tag act as a background image */
        object-fit: cover;
    }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
    #banner-712 .cs-background:before {
        opacity: 1;
        background: linear-gradient(
            90.01deg,
            rgba(0, 0, 0, 0.9) 16.86%,
            rgba(0, 0, 0, 0) 100%
        );
    }
}

#cs-description {
  columns: auto;
}                    
#cs-description .cs-subtitle {
  padding-left: 3%;
  padding-top: 0;
  padding-bottom: 3%;
  margin-top: 0;
  font-size: 1.5rem;
  width: 95%;
  max-width: 1000px;
  color: var(--headerColor);
}
body.dark-mode #cs-description .cs-subtitle {
  color: var(--bodyTextColorWhite);
}


/*-- -------------------------- -->
<---          Divider           -->
<--- -------------------------- -*/

@media only screen and (min-width: 48rem) {
.text-divider {
  margin: 4rem 2rem;
  display: flex;
  text-align: center;
  align-items: center;
}
.text-divider span {
  font-size: 0.9375rem;
  white-space: nowrap;
  padding: 0 1rem;
}
.text-divider::before, .text-divider::after {
  content: '';
  display: inline-block;
  height: 1px;
  width: 20px;
  flex-grow: 1;
  background: hsl(240, 4%, 90%);
  vertical-align: middle;
}
.cs-icon-divider {
  width: clamp(3.75rem, -1.25rem + 16vw, 8.75rem);
}
body.dark-mode .cs-icon-divider {
  filter: invert(1);
}
}

/*-- -------------------------- -->
<---          Services          -->
<--- -------------------------- -*/

/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
    #services-1354 {
        padding-bottom: 0;
        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: 95%;
        display: block;
        /* 16px - 20px */
        gap: clamp(1rem, 2vw, 1.25rem);
    }
    #services-1354 .cs-item {
        text-align: center;
        list-style: none;
        width: 100%;
        height: 19.0625rem;
        margin-bottom: 3%;
        padding: 0;
        background-color: #000;
        border-radius: 1.5rem;
        /* clips background image corners */
        overflow: hidden;
        box-shadow: var(--boxShadow);
        /* 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-card-group {
      display: flex;
    }
}
/* 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;
    }
}
/* Dark Mode */
@media only screen and (min-width: 0rem) {
    body.dark-mode #services-1354 .cs-topper {
        color: var(--primary);
    }
    body.dark-mode #services-1354 .cs-title {
        color: var(--bodyTextColorWhite);
    }
}

                                

/*-- -------------------------- -->
<---          Footer            -->
<--- -------------------------- -*/

/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
    #cs-footer-1185 {
        padding-bottom: 5%;
        padding-right: 5%;
        padding-left: 5%;
        position: relative;
        /* Navigation Links */
    }
    #cs-footer-1185 .cs-container {
        width: 100%;
        /* reset on desktop */
        max-width: 43.75rem;
        margin: auto;
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 2.5rem;
    }
    #cs-footer-1185 .cs-logo-group {
        /* takes up all the space, lets the other ul's wrap below it */
        width: 100%;
        position: relative;
    }
    #cs-footer-1185 .cs-logo {
        width: 12.3125rem;
        height: auto;
        display: block;
        margin-bottom: 1.5rem;
        filter: invert(1);
    }
    #cs-footer-1185 .cs-logo-img {
        width: 100%;
        height: auto;
    }
    #cs-footer-1185 .cs-logo-img.dark {
        display: none;
    }
    #cs-footer-1185 .cs-text {
        /* 14px - 16px */
        font-size: clamp(0.875rem, 2.5vw, 1rem);
        line-height: 1.5em;
        margin: 0;
        width: 78%;
        /* changes to 305px at desktop */
        max-width: 26.25rem;
        color: var(--bodyTextColorWhite);
    }
    #cs-footer-1185 .cs-nav {
        width: 100%;
        padding: 0;
        padding-top: 3%;
        margin: 0;
        display: flex;
        justify-content: center;
        align-items: flex-start;
        flex-direction: column;
        gap: 0.75rem;
    }
    #cs-footer-1185 .cs-nav-li {
        list-style: none;
        display: flex;
        justify-content: flex-start;
        align-items: flex-start;
    }
    #cs-footer-1185 .cs-header {
        font-size: 1rem;
        line-height: 1.2em;
        text-transform: uppercase;
        font-weight: 700;
        margin-bottom: 0.75rem;
        color: var(--bodyTextColorWhite);
        position: relative;
        display: block;
    }
    #cs-footer-1185 .cs-nav-link {
        font-size: 1rem;
        text-decoration: none;
        line-height: 1.5em;
        color: var(--bodyTextColorWhite);
        position: relative;
        display: inline-block;
        transition: color 0.3s;
    }
    #cs-footer-1185 .cs-nav-link:before {
        /* underline */
        content: "";
        width: 0%;
        height: 0.125rem;
        background: currentColor;
        opacity: 1;
        position: absolute;
        display: block;
        bottom: -0.125rem;
        left: 0;
        transition: width 0.3s;
    }
    #cs-footer-1185 .cs-nav-link:hover {
        color: var(--secondary);
    }
    #cs-footer-1185 .cs-nav-link:hover:before {
        width: 100%;
    }
    #cs-footer-1185 .cs-icon {
        width: 1.5rem;
        height: auto;
        margin-right: 0.75rem;
    }
    #cs-footer-1185 .cs-bottom {
        max-width: 80rem;
        margin: auto;
        margin-top: 2rem;
        padding-top: 1.5rem;
        border-top: 1px solid #484848;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    #cs-footer-1185 .cs-copyright,
    #cs-footer-1185 .cs-copyright-link {
        font-size: 1rem;
        line-height: 1.5em;
        color: var(--bodyTextColorWhite);
    }
    #cs-footer-1185 .cs-copyright-link {
        text-decoration: none;
        transition: color 0.3s;
    }
    #cs-footer-1185 .cs-copyright-link:hover {
        color: var(--secondary);
    }
    #cs-footer-1185 .cs-background {
        width: 100%;
        height: 100%;
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        z-index: -1;
    }
    #cs-footer-1185 .cs-background:before {
        /* background color overlay */
        content: "";
        position: absolute;
        display: block;
        height: 100%;
        width: 100%;
        background-color: #000;
        /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
        opacity: 0.97;
        top: 0;
        left: 0;
        z-index: 1;
    }
    #cs-footer-1185 .cs-background img {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        width: 100%;
        /* Makes img tag act as a background image */
        object-fit: cover;
    }
}
#footertopper {
  display: flex;
}
#footertopper .treeline img {
  width: auto;
  height: auto;
  display: flex;
  pointer-events: none;
}

/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
    #cs-footer-1185 .cs-container {
        row-gap: 0;
        flex-direction: row;
        justify-content: space-between;
        row-gap: 2.5rem;
    }
    #cs-footer-1185 .cs-nav {
        width: auto;
    }
}
/* Small Desktop - 1024px */
@media only screen and (min-width: 64rem) {
    #cs-footer-1185 .cs-container {
        max-width: 80rem;
        flex-wrap: nowrap;
        /* align everything to the right */
        justify-content: flex-end;
        column-gap: 5.25rem;
    }
    #cs-footer-1185 .cs-logo-group {
        width: auto;
        display: block;
        /* pushes away from everything to the right */
        margin-right: auto;
    }
    #cs-footer-1185 .cs-text {
        width: 100%;
        height: fit-content;
    }
}
/* Large Desktop - 1800px */
@media only screen and (min-width: 112.5rem) {
    #cs-footer-1185 {
        padding-top: 12vw;
    }
}