/*-- -------------------------- -->
<---       Side By Side         -->
<--- -------------------------- -*/
/* Mobile - 360px */
@media only screen and (min-width: 0em) {
  #sbs {
    padding: var(--sectionPadding);
  }
  #sbs .cs-container {
    width: 100%;
    max-width: 80rem;
    margin: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    row-gap: 2.5rem;
  }
  #sbs .cs-left {
    /* scaling the font size with the view width */
    font-size: min(2.31vw, .7em);
    /* using ems so we can use font size to scale the whole section */
    width: 39.4375em;
    height: 39.75em;
    position: relative;
  }
  #sbs .cs-picture {
    border-radius: 1.5em;
    /* clips img tag corners */
    overflow: hidden;
    position: absolute;
    display: block;
  }
  #sbs .cs-picture img {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    /* makes image act like a background image */
    object-fit: cover;
  }
  #sbs .cs-picture1 {
    width: 32.625em;
    height: 36.3125em;
    left: 0;
    top: 0;
  }
  #sbs .cs-picture2 {
    width: 25.875em;
    height: 25em;
    background-color: #fff;
    box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 40px;
    /* 6px - 12px */
    border: clamp(0.375em, 1.5vw, 0.75em) solid #ffffff;
    right: 0;
    bottom: 0;
  }
  #sbs .cs-right {
    margin: auto;
    max-width: 33.875rem;
  }
  #sbs .cs-topper {
    font-size: var(--topperFontSize);
    line-height: 1.2em;
    text-transform: uppercase;
    text-align: left;
    letter-spacing: .1em;
    font-weight: 700;
    color: var(--primary);
    margin-bottom: 0.25rem;
    display: block;
  }
  #sbs .cs-title {
    font-size: var(--headerFontSize);
    font-weight: 900;
    line-height: 1.2em;
    text-align: left;
    max-width: 50rem;
    margin: 0 auto 1rem;
    color: var(--headerColor);
    position: relative;
  }
  #sbs .cs-text {
    font-size: var(--bodyFontSize);
    line-height: 1.5em;
    text-align: left;
    width: 100%;
    max-width: 46.875rem;
    margin: 0 auto;
    margin-bottom: 1rem;
    color: var(--bodyTextColor);
  }
  #sbs .cs-text:last-of-type {
    margin-bottom: 2rem;
  }
  #sbs .cs-flex-group {
    /* 16px - 32px */
    padding: clamp(1rem, 3vw, 2rem);
    background-color: #F7F7F7;
    border-radius: 1rem;
    position: relative;
  }
  #sbs .cs-flex-p {
    /* 14px - 16px */
    font-size: clamp(0.875rem, 1.5vw, 1rem);
    line-height: 1.5em;
    margin: 0 0 1rem;
    color: #767676;
  }
  #sbs .cs-name {
    font-size: 1rem;
    line-height: 1.2em;
    text-transform: uppercase;
    font-weight: bold;
    margin: 0 0 0.25rem;
    color: var(--headerColor);
    display: block;
  }
  #sbs .cs-job {
    font-size: 0.875rem;
    line-height: 1.5em;
    color: #767676;
    display: block;
  }
  #sbs .cs-quote-icon {
    /* 60px - 136px */
    width: clamp(3.75rem, 10vw, 8.5rem);
    height: auto;
    position: absolute;
    bottom: 0rem;
    /* 16px - 32px */
    right: clamp(1rem, 4vw, 2rem);
  }
  #sbs .button-solid {
    margin-top: 2rem;
  }
}
/* Desktop - 1024px */
@media only screen and (min-width: 64em) {
  #sbs .cs-container {
    flex-flow: row;
    justify-content: space-between;
    gap: 3.25rem;
  }
  #sbs .cs-left {
    font-size: min(1.2vw, 1em);
    flex: none;
  }
  #sbs .cs-right {
    margin: 0;
  }
}

/*-- -------------------------- -->
<---    Final Call To Action    -->
<--- -------------------------- -*/
/* Mobile */
@media only screen and (min-width: 0em) {
  #cta {
    position: relative;
    padding: 3.125rem 0;
  }
  #cta:before {
    content: '';
    position: absolute;
    display: block;
    height: 100%;
    width: 100%;
    background: #000;
    opacity: .7;
    top: 0;
    left: 0;
    z-index: -1;
  }
  #cta .container {
    text-align: center;
  }
  #cta picture {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    z-index: -2;
  }
  #cta picture img {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    object-fit: cover;
  }
  #cta .title {
    font-weight: 900;
    font-size: min(9vw, 3rem);
    line-height: 1.20833333;
    color: #fff;
    position: relative;
    margin-bottom: 2.25rem;
    text-align: center;
  }
  #cta p {
    color: #fff;
    text-align: center;
    opacity: 1;
    margin: auto;
    margin-bottom: 2.25rem;
    width: 96%;
    max-width: 37.375rem;
  }
}
/* Small Desktop */
@media only screen and (min-width: 64em) {
  #cta {
    padding: 10.5rem 0;
  }
}
/* Large Desktop */
@media only screen and (min-width: 1300px) {
  #cta {
    position: relative;
    margin-top: 6.25rem;
  }
  #cta:before {
    display: none;
  }
  #cta:after {
    content: '';
    position: absolute;
    display: block;
    height: 69.25rem;
    width: 125rem;
    background: url("/assets/svgs/cta-squares.svg");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 1;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: -3;
  }
  #cta .container {
    width: 90.0625%;
    margin: auto;
  }
  #cta picture {
    width: 90.0625%;
    left: 50%;
    transform: translateX(-50%);
  }
  #cta picture:before {
    content: '';
    position: absolute;
    display: block;
    height: 100%;
    width: 100%;
    background: #000;
    opacity: .7;
    top: 0;
    left: 0;
    z-index: 1;
  }
}



/*-- -------------------------- -->
<---          Reviews           -->
<--- -------------------------- -*/
/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
    #reviews-1089 {
        padding: var(--sectionPadding);
        background-color: #f7f7f7;
    }
    #reviews-1089 .cs-container {
        width: 100%;
        /* changes to 1280px at tablet */
        max-width: 34.375rem;
        margin: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        /* 48px - 64px */
        gap: clamp(3rem, 6vw, 4rem);
    }
    #reviews-1089 .cs-content {
        /* set text align to left if content needs to be left aligned */
        text-align: left;
        width: 100%;
        max-width: 39.375rem;
        margin-right: auto;
        display: flex;
        flex-direction: column;
        /* centers content horizontally, set to flex-start to left align */
        align-items: flex-start;
    }

    #reviews-1089 .cs-title {
        max-width: 25ch;
    }
    #reviews-1089 .cs-text {
        margin-bottom: 1rem;
    }
    #reviews-1089 .cs-text:last-of-type {
        margin-bottom: 2rem;
    }
    #reviews-1089 .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: 10.875rem;
        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;
    }
    #reviews-1089 .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;
    }
    #reviews-1089 .cs-button-solid:hover:before {
        width: 100%;
    }
    #reviews-1089 .cs-card-group {
        width: 100%;
        margin: 0;
        padding: 0;
        display: grid;
        grid-template-columns: repeat(12, 1fr);
        align-items: stretch;
        /* 16px - 20px */
        gap: clamp(1rem, 2vw, 1.25rem);
    }
    #reviews-1089 .cs-item {
        list-style: none;
        padding: 0;
        /* 46px - 56px, pushes up by the same amount the cs-image margin-top pulld it up for proper spacing */
        margin: clamp(2.5rem, 5vw, 3.5rem) 0 0;
        background-color: #fff;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        grid-column: span 12;
        position: relative;
    }
    #reviews-1089 .cs-item:hover .cs-flex {
        background-color: var(--primary);
    }
    #reviews-1089 .cs-icon {
        width: 3.25rem;
        height: auto;
        display: block;
        position: absolute;
        /* 24px - 36px, same values as the padding on cs-item-text */
        top: clamp(1.5rem, 3vw, 2.25rem);
        right: clamp(1.5rem, 3vw, 2.25rem);
    }
    #reviews-1089 .cs-image {
        /* 80px - 112px */
        width: clamp(5rem, 10vw, 7rem);
        height: auto;
        /* 40px - 56px, same growth rate as the cs-image */
        /* 24px - 36px marign left, same value as the padding on cs-item-text */
        margin: calc(clamp(2.5rem, 5vw, 3.5rem) * -1) 0 2.25rem
            clamp(1.25rem, 3vw, 2.25rem);
        border-radius: 50%;
        display: block;
    }
    #reviews-1089 .cs-item-text {
        /* 14px - 16px */
        font-size: clamp(0.875rem, 1.5vw, 1rem);
        line-height: 1.5em;
        text-align: left;
        margin: 0;
        /* 24px - 36px */
        padding: 0 clamp(1.5rem, 3vw, 2.25rem) clamp(1.25rem, 3vw, 2.25rem);
        /* prevents padding and border from affecting height and width */
        box-sizing: border-box;
        color: var(--bodyTextColor);
    }
    #reviews-1089 .cs-flex {
        text-align: center;
        padding: 1.5rem;
        /* prevents padding and border from affecting height and width */
        box-sizing: border-box;
        width: 100%;
        /* pushes up against the cs-item-text so if there's a different amount of content from the other cards, it will push down and stretch the card to fill the container vertically. This makes all the cards the same height no matter how much content each one has */
        margin-top: auto;
        background-color: #1a1a1a;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.25rem;
        transition: background-color 0.3s;
    }
    #reviews-1089 .cs-name {
        /* 20px - 25px */
        font-size: clamp(1.25rem, 2.5vw, 1.5625rem);
        text-align: inherit;
        line-height: 1.2em;
        margin: 0;
        font-weight: 700;
        padding: 0;
        color: var(--bodyTextColorWhite);
    }
    #reviews-1089 .cs-desc {
        /* 14px - 16px */
        font-size: clamp(0.875rem, 2.5vw, 1rem);
        line-height: 1.5em;
        text-align: inherit;
        margin: 0;
        padding: 0;
        color: var(--bodyTextColorWhite);
    }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
    #reviews-1089 .cs-container {
        max-width: 80rem;
    }
    #reviews-1089 .cs-item {
        grid-column: span 6;
    }
}
/* Desktop - 1024px */
@media only screen and (min-width: 64rem) {
    #reviews-1089 .cs-container {
        flex-direction: row;
        justify-content: space-between;
    }
    #reviews-1089 .cs-content {
        width: 50%;
        max-width: 25.8125rem;
    }
    #reviews-1089 .cs-card-group {
        max-width: 47.375rem;
    }
}