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

/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
    #h-services-143 {
        /* 40px - 100px */
        padding: 0 1em clamp(2.5rem, 7.9vw, 6.25rem) 1rem;
        position: relative;
        /* give a higher z index than the hero so it can sit on top */
        z-index: 10;
    }
    #h-services-143 .cs-card-group {
        width: 100%;
        max-width: 29.0625rem;
        margin: 0 auto 0;
        /* negative margin pulls it up on top of the hero section */
        /* -46px to -76px - we're calculating whatever clamp is and multiplying by -1
            to make the value negative since clamp doesn't work with negative values */
        margin-top: calc(clamp(5rem, 13vw, 4.75rem) * -1);
        /* 40px - 60px top and bottom, 16px - 44px left & right */
        padding: clamp(2.5rem, 4.7vw, 3.75rem) clamp(1rem, 5.3vw, 2.75rem);
        box-shadow: 0px 20px 40px 0px rgba(0, 0, 0, 0.05);
        border-radius: 0.3125rem;
        border-top: 8px solid var(--primary);
        background-color: #fff;
        /* prevents padding and border from affecting height and width */
        box-sizing: border-box;
    }
    #h-services-143 .cs-item {
        list-style: none;
        margin: 0 auto 2rem;
        width: 100%;
        max-width: 22.5rem;
    }
    #h-services-143 .cs-item:last-of-type {
        margin-bottom: 0;
    }
    #h-services-143 .cs-icon {
        /* 68px - 88px */
        width: clamp(4.25rem, 8.8vw, 5.5rem);
        /* 68px - 88px */
        height: clamp(4.25rem, 8.8vw, 5.5rem);
        margin: auto;
        /* 20px - 24px */
        margin-bottom: clamp(1.25rem, 5vw, 1.5rem);
        background: var(--primary);
        border-radius: 50%;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    #h-services-143 .cs-icon img {
        /* 44px - 52px */
        width: clamp(2.75rem, 5.8vw, 3.25rem);
        height: auto;
    }
    #h-services-143 .cs-title {
        font-size: 1.25rem;
        line-height: 1.2em;
        text-transform: uppercase;
        text-align: center;
        margin: 0 auto 0.5rem;
        color: var(--headerColor);
    }
    #h-services-143 .cs-text {
        font-size: 1rem;
        text-align: center;
        line-height: 1.5em;
        max-width: 22.5rem;
        margin: 0 auto;
        color: var(--bodyTextColor);
    }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
    #h-services-143 .cs-card-group {
        max-width: 49rem;
        /* -76px to -320px - we're calculating whatever clamp is and multiplying by -1
               to make the value negative since clamp doesn't work with negative values */
        margin-top: calc(clamp(4.75rem, 20vw, 20rem) * -1);
        display: flex;
        justify-content: space-between;
        align-items: center;
        flex-wrap: wrap;
        column-gap: 2.5rem;
    }
    #h-services-143 .cs-item {
        width: 45%;
        max-width: 19.625rem;
    }
    #h-services-143 .cs-item:last-of-type {
        margin-bottom: 2rem;
    }
}
/* Desktop - 1300px */
@media only screen and (min-width: 81.25rem) {
    #h-services-143 .cs-card-group {
        max-width: 80rem;
        flex-wrap: nowrap;
    }
    #h-services-143 .cs-item {
        margin: 0;
    }
    #h-services-143 .cs-item:last-of-type {
        margin-bottom: 0;
    }
}

 /*-- -------------------------- -->
<---        Why Choose          -->
<--- -------------------------- -*/

/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
    #why-choose-289 {
        text-align: center;
        padding: var(--sectionPadding);
    }
    #why-choose-289 .cs-container {
        width: 100%;
        /* changes to 1280px on tablet */
        max-width: 34.375rem;
        margin: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        /* 48px - 64px */
        gap: clamp(3rem, 6vw, 4rem);
    }
    #why-choose-289 .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;
    }
    #why-choose-289 .cs-topper {
        font-size: var(--topperFontSize);
        line-height: 1.2em;
        text-transform: uppercase;
        text-align: inherit;
        letter-spacing: 0.1em;
        font-weight: 700;
        color: var(--primary);
        margin-bottom: 0.25rem;
        display: block;
    }
    #why-choose-289 .cs-title {
        font-size: var(--headerFontSize);
        font-weight: 900;
        line-height: 1.2em;
        text-align: inherit;
        max-width: 43.75rem;
        margin: 0 0 1rem 0;
        color: var(--headerColor);
        position: relative;
    }
    #why-choose-289 .cs-text {
        font-size: var(--bodyFontSize);
        line-height: 1.5em;
        text-align: inherit;
        width: 100%;
        max-width: 40.625rem;
        margin: 0;
        color: var(--bodyTextColor);
    }
    #why-choose-289 .cs-text {
        max-width: 32.625rem;
    }
    #why-choose-289 .cs-card-group {
        width: 100%;
        margin: 0;
        padding: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        gap: 1rem;
    }
    #why-choose-289 .cs-item {
        list-style: none;
        text-align: left;
        width: 100%;
        padding: 2rem;
        background-color: #f7f7f7;
        border-radius: 1rem;
        /* prevents padding from adding to height and width */
        box-sizing: border-box;
        transition: background-color 0.3s;
    }
    #why-choose-289 .cs-item:hover {
        background-color: var(--primary);
        cursor: pointer;
    }
    #why-choose-289 .cs-item:hover .cs-icon {
        filter: grayscale(1) brightness(200%);
    }
    #why-choose-289 .cs-item:hover .cs-h3 {
        color: var(--bodyTextColorWhite);
    }
    #why-choose-289 .cs-item:hover .cs-item-text {
        color: var(--bodyTextColorWhite);
    }
    #why-choose-289 .cs-icon {
        width: auto;
        height: 3rem;
        margin-bottom: 1.5rem;
        display: block;
        transition: filter 0.3s;
    }
    #why-choose-289 .cs-h3 {
        /* 20px - 25px */
        font-size: clamp(1.25rem, 2.5vw, 1.5625rem);
        line-height: 1.2em;
        margin: 0;
        margin-bottom: 1rem;
        color: var(--headerColor);
        transition: color 0.3s;
    }
    #why-choose-289 .cs-item-text {
        font-size: 1rem;
        line-height: 1.5em;
        margin: 0;
        color: var(--bodyTextColor);
        transition: color 0.3s;
    }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
    #why-choose-289 .cs-container {
        max-width: 80rem;
    }
    #why-choose-289 .cs-content {
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-end;
        gap: 4rem;
    }
    #why-choose-289 .cs-flex {
        width: 50%;
    }
    #why-choose-289 .cs-title {
        margin: 0;
    }
    #why-choose-289 .cs-card-group {
        justify-content: space-between;
        /* makes sure every box "stretches" to be the same height as the tallest box */
        align-items: stretch;
        flex-direction: row;
        /* 16px - 20px */
        gap: clamp(1rem, 1.5vw, 1.25rem);
    }
    #why-choose-289 .cs-item {
        width: auto;
        /* 16px - 32px */
        padding: 2rem clamp(1rem, 2.1vw, 2rem);
    }
}

 /*-- -------------------------- -->
<---           Logos            -->
<--- -------------------------- -*/

/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
    #logos-572 {
        /* 60px - 130px */
        padding: clamp(3.75rem, 8vw, 8.125rem) 1rem;
        background-color: var(--secondary);
    }
    #logos-572 .cs-container {
        width: 100%;
        max-width: 80rem;
        margin: auto;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        /* 48px - 64px */
        gap: clamp(3rem, 6vw, 4rem);
    }
    #logos-572 .cs-logo {
        width: auto;
        max-width: 90%;
        height: auto;
        margin: 0;
        display: block;
    }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
    #logos-572 .cs-container {
        justify-content: space-between;
    }
    #logos-572 .cs-logo {
        width: 20%;
        /* the max width becomes whatever the actual width of the image is */
        max-width: max-content;
        height: auto;
        display: block;
    }
}

/*-- -------------------------- -->
<---          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);
        margin-top:12rem;
    }
    #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;
    }
}