/************ MOBILE - 360PX *************/
/*****************************************/
@media only screen and (min-width: 0rem) {
    /*********** WHAT WE PROVIDE SBS *********/
    /*****************************************/
    /* FIRST */
    #RPsbs-361,
    #RPsbsr-361 {
        padding: var(--sectionPadding);
    }
    #RPsbs-361 {
        margin-top: 14rem;
    }
    @keyframes floatAnimation2 {
        0% {
            transform: translateY(0);
        }
        50% {
            transform: translateY(-4px);
        }
        70% {
            transform: translateY(4px);
        }
        100% {
            transform: translateY(0);
        }
    }
    @keyframes InAndOut {
        0% {
            transform: translateY(2.5rem) scale(1);
            opacity: 1;
        }
        30% {
            transform: translateY(1.25rem) scale(0.8);
            opacity: 1;
        }
        60% {
            transform: translateY(0.625rem) scale(0.5);
            opacity: 1;
        }
        100% {
            transform: translateY(0rem) scale(0.5);
            opacity: 0;
        }
    }
    @keyframes InAndOut2 {
        0% {
            transform: translateY(3.125rem) scale(1);
            opacity: 1;
        }
        30% {
            transform: translateY(2.5rem) scale(1);
            opacity: 1;
        }
        60% {
            transform: translateY(1.25rem) scale(0.6);
            opacity: 1;
        }
        100% {
            transform: translateY(0rem) scale(0.4);
            opacity: 0;
        }
    }
    #RPsbs-361 .cs-container,
    #RPsbsr-361 .cs-container {
        width: 100%;
        /* changes to 1280px at desktop */
        max-width: 34.375em;
        margin: auto;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        /* 48px - 56px */
        gap: clamp(3rem, 7vw, 3.5rem);
    }
    #RPsbs-361 .cs-container,
    #RPsbsr-361 .cs-container {
        width: 100%;
        /* changes to 1280px at desktop */
        max-width: 34.375rem;
        margin: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        /* 48px - 64px */
        gap: clamp(3rem, 6vw, 4rem);
    }
    #RPsbs-361 .cs-content,
    #RPsbsr-361 .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;
    }

    #RPsbs-361 .cs-title,
    #RPsbsr-361 .cs-title {
        max-width: 20ch;
    }
    #RPsbs-361 .cs-text,
    #RPsbsr-361 .cs-text {
        margin-bottom: 1rem;
    }
    #RPsbs-361 .cs-text:last-of-type,
    #RPsbsr-361 .cs-text:last-of-type {
        margin-bottom: 2rem;
    }
    #RPsbs-361 .cs-picture,
    #RPsbsr-361 .cs-picture {
        width: 100%;
        height: 25rem;
        border-radius: 1rem;
        /* clips the corners of rhe image */
        overflow: hidden;
        display: block;
        position: relative;
    }
    #RPsbs-361 .cs-picture img,
    #RPsbsr-361 .cs-picture img {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        width: 100%;
        object-fit: cover;
        /* change to "top" if you don't want the top of the image cur off */
        object-position: center;
    }
    #RPsbs-361 .cs-card-group,
    #RPsbsr-361 .cs-card-group {
        width: 100%;
        margin: 0;
        padding: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        /* 16px - 20px */
        gap: clamp(1rem, 2vw, 1.25rem);
    }
    #RPsbs-361 .cs-item,
    #RPsbsr-361 .cs-item {
        list-style: none;
        width: 100%;
        /* 24px - 32px */
        padding: clamp(1.5rem, 4.3vw, 2rem);
        /* prevents padding and border from affecting height and width */
        box-sizing: border-box;
        border-radius: 1rem;
        border: 1px solid #e8e8e8;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
    #RPsbs-361 .cs-icon-wrapper,
    #RPsbsr-361 .cs-icon-wrapper {
        width: 4.0625rem;
        height: 5rem;
        margin-bottom: 1.5rem;
        display: flex;
        justify-content: center;
        align-items: flex-end;
        position: relative;
    }
    #RPsbs-361 .cs-icon-wrapper:before,
    #RPsbsr-361 .cs-icon-wrapper:before {
        /* Small Bubble */
        content: "";
        width: 1.125rem;
        height: 1.125rem;
        border-radius: 50%;
        background: #e5f2ff;
        opacity: 1;
        position: absolute;
        display: block;
        top: 0;
        left: 0.1875rem;
        animation-name: InAndOut;
        animation-duration: 1.6s;
        animation-timing-function: linear;
        animation-iteration-count: infinite;
    }
    #RPsbs-361 .cs-icon-wrapper:after,
    #RPsbsr-361 .cs-icon-wrapper:after {
        /* Small Bubble */
        content: "";
        width: 1.125rem;
        height: 1.125rem;
        border-radius: 50%;
        background: #e5f2ff;
        opacity: 1;
        position: absolute;
        display: block;
        top: 0.6875rem;
        right: 0.3125rem;
        animation-name: InAndOut2;
        animation-duration: 2s;
        animation-delay: 0.3s;
        animation-timing-function: linear;
        animation-iteration-count: infinite;
    }
    #RPsbs-361 .cs-bubble,
    #RPsbsr-361 .cs-bubble {
        position: absolute;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
    }
    #RPsbs-361 .cs-bubble:before,
    #RPsbsr-361 .cs-bubble:before {
        /* Big Bubble */
        content: "";
        width: 2.6875rem;
        height: 2.6875rem;
        border-radius: 50%;
        background: #e5f2ff;
        opacity: 1;
        position: absolute;
        display: block;
        bottom: 0.25rem;
        left: 0rem;
        animation-name: floatAnimation2;
        animation-duration: 6s;
        animation-timing-function: ease-in-out;
        animation-fill-mode: forwards;
        animation-iteration-count: infinite;
    }
    #RPsbs-361 .cs-bubble:after,
    #RPsbsr-361 .cs-bubble:after {
        /* Big Bubble */
        content: "";
        width: 1.9375rem;
        height: 1.9375rem;
        border-radius: 50%;
        background: #e5f2ff;
        opacity: 1;
        position: absolute;
        display: block;
        bottom: -0.25rem;
        right: 0rem;
        animation-name: floatAnimation2;
        animation-duration: 4s;
        animation-timing-function: ease-in-out;
        animation-fill-mode: forwards;
        animation-iteration-count: infinite;
    }
    #RPsbs-361 .cs-icon,
    #RPsbsr-361 .cs-icon {
        width: 3rem;
        height: auto;
        position: relative;
        z-index: 10;
    }
    #RPsbs-361 .cs-h3,
    #RPsbsr-361 .cs-h3 {
        /* 20px - 25px */
        font-size: clamp(1.25rem, 2.5vw, 1.5625rem);
        line-height: 1.2em;
        font-weight: 700;
        text-align: center;
        margin: 0;
        margin-bottom: 0.75rem;
        color: var(--primaryAccent);
    }
    #RPsbs-361 .cs-item-text,
    #RPsbsr-361 .cs-item-text {
        /* 14px - 16px */
        font-size: clamp(0.875rem, 1.6vw, 1rem);
        line-height: 1.5em;
        text-align: center;
        margin: 0;
        color: var(--bodyTextColor);
    }
    /* SECOND */
    #RPsbsr-361 {
        background-color: #f7f7f7;
    }
    #RPsbsr-361 .cs-item {
        background-color: rgba(0, 0, 0, 0.02);
    }
    #services-367 {
        padding: var(--sectionPadding);
    }
    /*********** SERVICES CARD GROUP *********/
    /*****************************************/
    @keyframes floatAnimation2 {
        0% {
            transform: translateY(0);
        }
        50% {
            transform: translateY(-4px);
        }
        70% {
            transform: translateY(4px);
        }
        100% {
            transform: translateY(0);
        }
    }
    @keyframes InAndOut {
        0% {
            transform: translateY(3.75rem) scale(1);
            opacity: 1;
        }
        30% {
            transform: translateY(1.875rem) scale(0.8);
            opacity: 1;
        }
        60% {
            transform: translateY(0.625rem) scale(0.5);
            opacity: 0.2;
        }
        100% {
            transform: translateY(0rem) scale(0.2);
            opacity: 0;
        }
    }
    @keyframes InAndOut2 {
        0% {
            transform: translateY(4.375rem) scale(1);
            opacity: 1;
        }
        30% {
            transform: translateY(2.5rem) scale(0.8);
            opacity: 1;
        }
        60% {
            transform: translateY(1.25rem) scale(0.6);
            opacity: 1;
        }
        100% {
            transform: translateY(0rem) scale(0.4);
            opacity: 0;
        }
    }
    #services-367 .cs-container {
        width: 100%;
        /* changes to 1440px at desktop */
        max-width: 59rem;
        margin: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        /* 48px - 64px */
        gap: clamp(3rem, 6vw, 4rem);
    }
    #services-367 .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-367 .cs-card-group {
        width: 100%;
        margin: 0;
        padding: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-wrap: wrap;
        flex-direction: column;
        /* 16px - 20px */
        gap: clamp(1rem, 2vw, 1.25rem);
    }
    #services-367 .cs-item {
        list-style: none;
        width: 100%;
        max-width: 31.25rem;
        /* 20px - 40px top & bottom */
        /* 16px - 32px left & right */
        padding: clamp(1.25rem, 3.5vw, 2.5rem) clamp(1rem, 2.5vw, 2rem);
        border-radius: 1rem;
        border: 1px solid #e8e8e8;
        box-sizing: border-box;
        transition: background-color 0.3s;
    }
    #services-367 .cs-item:hover {
        background-color: var(--primary);
    }
    #services-367 .cs-item:hover .cs-icon-wrapper:before,
    #services-367 .cs-item:hover .cs-bubble:before,
    #services-367 .cs-item:hover .cs-icon-wrapper:after,
    #services-367 .cs-item:hover .cs-bubble:after {
        background-color: #449ffc;
    }
    #services-367 .cs-item:hover .cs-icon {
        /* makes it white on hover */
        filter: grayscale(1) brightness(1000%);
    }
    #services-367 .cs-item:hover .cs-h3 {
        color: #fff;
    }
    #services-367 .cs-item:hover .cs-item-text {
        color: #fff;
    }
    #services-367 .cs-link {
        text-decoration: none;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
    }
    #services-367 .cs-icon-wrapper {
        width: 6.125rem;
        height: 7.5rem;
        margin-bottom: 1.5rem;
        display: flex;
        justify-content: center;
        align-items: flex-end;
        position: relative;
    }
    #services-367 .cs-icon-wrapper:before {
        /* Small Bubble */
        content: "";
        width: 1.6875rem;
        height: 1.6875rem;
        border-radius: 50%;
        background: #e5f2ff;
        opacity: 1;
        position: absolute;
        display: block;
        top: 0;
        left: 0.1875rem;
        animation-name: InAndOut;
        animation-duration: 1.6s;
        animation-timing-function: linear;
        animation-iteration-count: infinite;
        transition: background-color 0.3s;
    }
    #services-367 .cs-icon-wrapper:after {
        /* Small Bubble */
        content: "";
        width: 1.6875rem;
        height: 1.6875rem;
        border-radius: 50%;
        background: #e5f2ff;
        opacity: 1;
        position: absolute;
        display: block;
        top: 0.6875rem;
        right: 0.3125rem;
        animation-name: InAndOut2;
        animation-duration: 2s;
        animation-delay: 0.3s;
        animation-timing-function: linear;
        animation-iteration-count: infinite;
        transition: background-color 0.3s;
    }
    #services-367 .cs-bubble {
        position: absolute;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
    }
    #services-367 .cs-bubble:before {
        /* Big Bubble */
        content: "";
        width: 3.9375rem;
        height: 3.9375rem;
        border-radius: 50%;
        background: #e5f2ff;
        opacity: 1;
        position: absolute;
        display: block;
        bottom: 0.25rem;
        left: 0rem;
        animation-name: floatAnimation2;
        animation-duration: 12s;
        animation-timing-function: ease-in-out;
        animation-fill-mode: forwards;
        animation-iteration-count: infinite;
        transition: background-color 0.3s;
    }
    #services-367 .cs-bubble:after {
        /* Big Bubble */
        content: "";
        width: 3.125rem;
        height: 3.125rem;
        border-radius: 50%;
        background: #e5f2ff;
        opacity: 1;
        position: absolute;
        display: block;
        bottom: -0.25rem;
        right: 0rem;
        animation-name: floatAnimation2;
        animation-duration: 10s;
        animation-timing-function: ease-in-out;
        animation-fill-mode: forwards;
        animation-iteration-count: infinite;
        transition: background-color 0.3s;
    }
    #services-367 .cs-icon {
        width: 4.5rem;
        height: auto;
        position: relative;
        z-index: 10;
    }
    #services-367 .cs-h3 {
        font-size: 1.25rem;
        font-weight: 900;
        text-align: center;
        line-height: 1.2em;
        margin: 0;
        margin-bottom: 0.75rem;
        color: var(--headerColor);
        transition: color 0.3s;
    }
    #services-367 .cs-item-text {
        /* 14px - 16px */
        font-size: clamp(0.875rem, 1.5vw, 1rem);
        text-align: center;
        line-height: 1.5em;
        margin: 0;
        color: var(--bodyTextColor);
        transition: color 0.3s;
    }
    #services-367 .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(--primaryAccent);
        border-radius: 0.25rem;
        display: inline-block;
        position: relative;
        z-index: 1;
        /* prevents padding from adding to the width */
        box-sizing: border-box;
    }
    #services-367 .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;
    }
    #services-367 .cs-button-solid:hover:before {
        width: 100%;
    }    

}

/************ TABLET - 768PX *************/
/*****************************************/
@media only screen and (min-width: 48rem) {
    /*********** WHAT WE PROVIDE SBS *********/
    /*****************************************/
    #RPsbs-361 .cs-item,
    #RPsbsr-361 .cs-item {
        flex-direction: row;
        justify-content: flex-start;
    }
    #RPsbs-361 .cs-icon-wrapper,
    #RPsbsr-361 .cs-icon-wrapper {
        margin-right: 1.5rem;
    }
    #RPsbs-361 .cs-h3,
    #RPsbsr-361 .cs-h3,
    #RPsbs-361 .cs-item-text,
    #RPsbsr-361 .cs-item-text {
        text-align: left;
    }
    /*********** SERVICES CARD GROUP *********/
    /*****************************************/
    #services-367 .cs-card-group {
        flex-direction: row;
        justify-content: center;
    }
    #services-367 .cs-item {
        width: 48%;
    }
    
}

/******** SMALL DESKTOP - 1024PX *********/
/*****************************************/
@media only screen and (min-width: 64rem) {
    /*********** WHAT WE PROVIDE SBS *********/
    /*****************************************/
    #RPsbs-361 .cs-container,
    #RPsbsr-361 .cs-container {
        max-width: 80rem;
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
    }
    #RPsbs-361 .cs-content,
    #RPsbsr-361 .cs-content {
        max-width: 32.625rem;
    }
    #RPsbs-361 .cs-picture,
    #RPsbsr-361 .cs-picture {
        height: 17.5rem;
    }
    #RPsbs-361 .cs-card-group,
    #RPsbsr-361 .cs-card-group {
        width: 50%;
        max-width: 39.375rem;
        /* prevents flexbox from squishing it */
        flex: none;
    }
    /* SECOND */
    #RPsbsr-361 .cs-content {
        /* sends it to the right */
        order: 1;
    }


}

/****** IN-BETWEEN DESKTOP - 1200PX ******/
/*****************************************/
@media only screen and (min-width: 75rem) {
    /*********** SERVICES CARD GROUP *********/
    /*****************************************/
    #services-367 .cs-container {
        max-width: 90rem;
    }
    #services-367 .cs-item {
        /* we do this so it's stackable. You can add any number of reviews you want and they will stack and center in the middle. We dont use grid because if you have an odd number of cards, they don't stay centered, they align with their grid lines. This way its more FLEX-ible*/
        width: clamp(23.47%, 23vw, 23.955%);
    }   
}

/************** DARK MODE ****************/
/*****************************************/
@media only screen and (min-width: 0rem) {
    /*********** WHAT WE PROVIDE SBS *********/
    /*****************************************/
    /* FIRST */
    body.dark-mode #RPsbs-361 .cs-topper,
    body.dark-mode #RPsbsr-361 .cs-topper {
        color: var(--primaryLight);
    }
    body.dark-mode #RPsbs-361 .cs-title,
    body.dark-mode #RPsbsr-361 .cs-title,
    body.dark-mode #RPsbs-361 .cs-text,
    body.dark-mode #RPsbsr-361 .cs-text {
        color: var(--bodyTextColorWhite);
    }
    body.dark-mode #RPsbs-361 .cs-icon-wrapper:before,
    body.dark-mode #RPsbsr-361 .cs-icon-wrapper:before,
    body.dark-mode #RPsbs-361 .cs-bubble:before,
    body.dark-mode #RPsbsr-361 .cs-bubble:before,
    body.dark-mode #RPsbs-361 .cs-icon-wrapper:after,
    body.dark-mode #RPsbsr-361 .cs-icon-wrapper:after,
    body.dark-mode #RPsbs-361 .cs-bubble:after,
    body.dark-mode #RPsbsr-361 .cs-bubble:after {
        background-color: var(--accent);
    }
    body.dark-mode #RPsbs-361 .cs-icon,
    body.dark-mode #RPsbsr-361 .cs-icon {
        /* turns the icon white */
        filter: grayscale(1) brightness(1000%);
    }
    body.dark-mode #RPsbs-361 .cs-h3,
    body.dark-mode #RPsbsr-361 .cs-h3 {
        color: var(--primaryAccent);
    }
    body.dark-mode #RPsbs-361 .cs-item-text,
    body.dark-mode #RPsbsr-361 .cs-item-text {
        color: var(--bodyTextColorWhite);
        opacity: 0.8;
    }
    /* SECOND */
    body.dark-mode #RPsbsr-361 {
        background-color: var(--dark);
    }
    /*********** SERVICES CARD GROUP *********/
    /*****************************************/
    body.dark-mode #services-367 .cs-topper {
        color: var(--primaryLight);
    }
    body.dark-mode #services-367 .cs-title,
    body.dark-mode #services-367 .cs-text,
    body.dark-mode #services-367 .cs-h3,
    body.dark-mode #services-367 .cs-item-text {
        color: var(--bodyTextColorWhite);
    }
    body.dark-mode #services-367 .cs-icon-wrapper:before,
    body.dark-mode #services-367 .cs-bubble:before,
    body.dark-mode #services-367 .cs-icon-wrapper:after,
    body.dark-mode #services-367 .cs-bubble:after {
        background-color: var(--accent);
    }
    body.dark-mode #services-367 .cs-item:hover {
        background-color: var(--accent);
    }
    body.dark-mode #services-367 .cs-icon {
        /* turns the icon white */
        filter: grayscale(1) brightness(1000%);
    }

}