/*-- -------------------------- -->
<---            Hero            -->
<--- -------------------------- -*/
/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  #hero {
    /* 200px - 244px top */
    /* 60px - 100px  bottom */
    padding: clamp(12.5rem, 16.82vw, 15.25rem) 1rem 1.5rem;
    background-color: #1D1C1C;
    /* clips the svg wave from overflowing */
    overflow: hidden;
    position: relative;
    z-index: 1;
  }
  #hero .cs-container {
    width: 100%;
    max-width: 80rem;
    margin: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 3rem;
  }
  #hero .cs-content {
    text-align: center;
    max-width: 39.375rem;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    position: relative;
    z-index: 2;
  }
  #hero .cs-topper {
    font-size: 1rem;
    line-height: 1.2em;
    text-transform: uppercase;
    text-align: inherit;
    letter-spacing: 0.4em;
    font-weight: 700;
    color: var(--primary);
    margin-bottom: 0.25rem;
    display: block;
  }
  #hero .cs-title {
    /* 39px - 84px */
    font-size: clamp(3.25rem, 6.3vw, 5.25rem);
    font-weight: 900;
    line-height: 1.2em;
    text-align: inherit;
    /* 23 characters including spaces wide */
    max-width: 23ch;
    margin: 0 0 1rem 0;
    color: var(--bodyTextColorWhite);
    position: relative;
    text-transform: uppercase;
  }
  #hero .cs-text {
    /* 16px - 20px */
    font-size: clamp(1.125rem, 1.5vw, 1.25rem);
    line-height: 1.5em;
    text-align: inherit;
    width: 100%;
    max-width: 33.1875rem;
    margin: 0 0 2rem 0;
    color: var(--bodyTextColorWhite);
    opacity: 0.8;
  }
  #hero .cs-button-solid {
    font-size: var(--bodyFontSize);
    /* 46px - 56px */
    line-height: clamp(2.875em, 5.5vw, 3.5em);
    text-decoration: none;
    font-weight: 700;
    text-align: center;
    margin: 0;
    color: var(--bodyTextColor);
    min-width: 5rem;
    padding: 0 1rem;
    background-color: var(--primary);
    display: inline-block;
    position: relative;
    z-index: 1;
    /* prevents padding from adding to the width */
    box-sizing: border-box;
    border-radius: 1rem;
    transition: all 0.4s;
  }
  #hero .cs-button-solid:hover {
    background-color: var(--secondary);
  }
  #hero .cs-video-group {
    width: 100%;
    height: 100vw;
    min-height: 21.25rem;
    display: flex;
    flex-direction: column;
    row-gap: 1rem;
    position: relative;
    z-index: 1;
  }
  #hero .cs-video-group:before {
    /* light grey section background. We attach it as a pseudo to the video group so it can be responsive and anchored in position to always be in the same position behind the cs-box */
    content: '';
    width: 300vw;
    height: 500%;
    background: #000;
    opacity: 0.3;
    position: absolute;
    display: block;
    bottom: 3.375rem;
    left: 50%;
    z-index: -1;
    transform: translateX(-50%);
  }
  #hero .cs-box {
    width: 100%;
    height: auto;
    margin: 0;
    /* 24px - 32px */
    padding: clamp(1.5rem, 4vw, 2rem);
    background-color: var(--secondary);
    display: flex;
    align-items: flex-start;
    /* 16px - 24px */
    gap: clamp(1rem, 2vw, 1.5rem);
    border-radius: 0.25rem;
    align-items: center;
    justify-content: center;
  }
  #hero .cs-header {
    /* 20px - 25px */
    font-size: clamp(1.25rem, 2.5vw, 1.5625rem);
    line-height: 1.2em;
    font-weight: bold;
    margin: 0;
    padding: 0;
    color: var(--headerColor);
  }
  #hero .cs-box-icon {
    /* 40px - 48px */
    width: clamp(2.5rem, 4vw, 3rem);
  }
  #hero .cs-video-wrapper {
    width: 100%;
    /* changes to 90% at tablet, then back to 100% at desktop */
    height: 100%;
    display: block;
    position: relative;
  }
  #hero .cs-video-wrapper:hover .cs-play {
    transform: translate(-50%, -50%) scale(1.2);
  }
  #hero .cs-video-wrapper video,
  #hero .cs-video-wrapper .cs-picture {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    /* makes image act as a background image */
    object-fit: cover;
  }
  #hero .cs-video-wrapper video img,
  #hero .cs-video-wrapper .cs-picture img {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    /* makes image act as a background image */
    object-fit: cover;
    border-radius: 0.25rem;
  }
  #hero .cs-play {
    /* 80px - 120px */
    width: clamp(5rem, 14vw, 7.5rem);
    height: clamp(5rem, 14vw, 7.5rem);
    display: flex;
    pointer-events: none;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(8px);
    border: none;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: transform 0.3s, opacity 0.3s;
  }
  #hero .cs-play.cs-hide {
    transform: translate(-50%, -50%) scale(0) !important;
    opacity: 0;
  }
  #hero .cs-icon {
    width: 1.25rem;
    height: auto;
  }
  #hero .cs-graphic {
    z-index: 10;
    position: absolute;
    bottom: -1px;
    left: 0;
    display: flex;
    align-items: flex-end;
    height: auto;
    width: 100%;
    pointer-events: none;
  }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
  #hero .cs-container {
    flex-direction: row;
    align-items: stretch;
    justify-content: space-between;
  }
  #hero .cs-content {
    text-align: left;
    width: 47%;
    /* 168px - 300pxm this maintains consistent space between the cs content and the cs-box so no matter how much content you add here, there will always be X amount of padding between the bottom of the cs-content and the bottom of the cs-video-group */
    padding-bottom: clamp(10.5rem, 30vw, 18.75rem);
    flex: none;
    align-items: flex-start;
    align-self: flex-start;
  }
  #hero .cs-title {
    max-width: 10ch;
  }
  #hero .cs-video-group {
    width: 50%;
    max-width: 39.375rem;
    height: auto;
    /* 530px - 880px */
    min-height: clamp(33.125rem, 67vw, 45rem);
  }
  #hero .cs-video-group:before {
    bottom: 6.25rem;
  }
  #hero .cs-video-wrapper {
    /* changes back to 100% at desktop */
    height: 90%;
  }
  #hero .cs-video-wrapper .cs-picture {
    height: 65%;
  }
  #hero .cs-box {
    width: 80%;
    max-width: 19.1875rem;
    flex-direction: column;
    position: absolute;
    /* chnages to 48px at desktop */
    bottom: 0;
    /* -112px to 200px */
    left: calc(clamp(7.25rem, 17vw, 12.5rem)*-1);
  }
}
/* Desktop - 1024px */
@media only screen and (min-width: 64rem) {
  #hero {
    padding-bottom: 0;
  }
  #hero .cs-video-wrapper {
    height: 100%;
  }
  #hero .cs-box {
    bottom: 8rem;
    flex-direction: row;
    height: 24%;
  }
  #hero .cs-video-group:before {
    bottom: 0;
  }
}
/* Dark Mode */
@media only screen and (min-width: 0rem) {
  body.dark-mode #hero {
    background-color: rgba(0, 0, 0, 0.6);
  }
  body.dark-mode #hero .cs-video-group:before {
    background-color: rgba(0, 0, 0, 0.8);
  }
}
/*-- -------------------------- -->
<---          Services          -->
<--- -------------------------- -*/
/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  #services {
    padding: var(--sectionPadding);
    background-color: #1D1C1C;
    position: relative;
  }
  #services .cs-background-graphic {
    height: 60%;
  }
  #services .cs-background-graphic:before {
    content: '';
    width: 100%;
    height: 20%;
    position: absolute;
    display: block;
    bottom: 0;
    left: 0;
    z-index: 10;
  }
  #services .cs-background-graphic img {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    filter: brightness(1000%);
    opacity: 0.07;
    object-fit: cover;
  }
  #services .cs-container {
    width: 100%;
    max-width: 80rem;
    margin: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(3rem, 6vw, 4rem);
  }
  #services .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 .cs-title {
    color: var(--bodyTextColorWhite);
    text-transform: uppercase;
  }
  #services .cs-text {
    color: var(--bodyTextColorWhite);
    opacity: 0.8;
    max-width: 43.1875rem;
  }
  #services .cs-button-solid {
    font-size: clamp(1.125rem, 1.5vw, 1.25rem);
    /* 46px - 56px */
    line-height: clamp(2.875em, 5.5vw, 3.5em);
    text-decoration: none;
    font-weight: 700;
    text-align: center;
    margin: 0;
    color: var(--bodyTextColor);
    min-width: 5rem;
    padding: 0 1rem;
    background-color: var(--primary);
    display: inline-block;
    position: relative;
    z-index: 1;
    /* prevents padding from adding to the width */
    box-sizing: border-box;
    border-radius: 1rem;
    transition: all 0.4s;
  }
  #services .cs-button-solid:hover {
    background-color: var(--secondary);
  }
  #services .cs-card-group {
    width: 100%;
    margin: 0;
    padding: 0;
    display: grid;
    align-items: stretch;
    grid-template-columns: repeat(12, 1fr);
    /* 16px - 20px */
    gap: clamp(1rem, 2vw, 1.25rem);
  }
  #services .cs-item {
    text-align: center;
    list-style: none;
    width: 100%;
    /* 240px - 320px */
    height: clamp(15rem, 40vw, 20rem);
    margin: 0;
    /* prevents padding and border from affecting height and width */
    box-sizing: border-box;
    padding: 0;
    background-color: #000;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    grid-column: span 12;
    grid-row: span 1;
    position: relative;
    z-index: 1;
    overflow: hidden;
  }
  #services .cs-item:hover .cs-background:before {
    opacity: 0.8;
  }
  #services .cs-item:hover .cs-background img {
    transform: scale(1.2);
  }
  #services .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 width of the link */
    /* 16px - 32px */
    padding: clamp(1rem, 3vw, 2rem);
    /* prevents padding from affecting height and width */
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
  }
  #services .cs-number {
    font-size: 5.25rem;
    font-weight: 900;
    color: rgba(0, 0, 0, 0);
    opacity: 100%;
    position: absolute;
    /* 16px - 32px */
    right: clamp(1rem, 3vw, 2rem);
    bottom: clamp(1rem, 3vw, 2rem);
    transition: opacity 0.3s, top 0.3s;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: var(--secondary);
  }
  #services .cs-h3 {
    /* 25px - 31px */
    font-size: clamp(1.5625rem, 2.5vw, 1.9375rem);
    font-weight: 700;
    line-height: 1.2em;
    text-align: inherit;
    margin: 0;
    color: var(--secondary);
  }
  #services .cs-background {
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
  }
  #services .cs-background:before {
    /* background color overlay */
    content: "";
    width: 100%;
    height: 100%;
    background-color: #000;
    opacity: 0.4;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    transition: background-color 0.3s, opacity 0.3s;
  }
  #services .cs-background img {
    width: 100%;
    height: 100%;
    /* Makes img tag act as a background image */
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    transition: transform 0.6s;
  }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
  #services {
    /* 32px - 48px */
    padding-top: clamp(2rem, 4vw, 3rem);
  }
  #services .cs-content {
    text-align: left;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
  }
  #services .cs-title {
    max-width: 18ch;
  }
  #services .cs-item {
    grid-column: span 4;
  }
}
/* Dark Mode */
@media only screen and (min-width: 0rem) {
  body.dark-mode #services {
    background-color: rgba(0, 0, 0, 0.6);
  }
}
/*-- -------------------------- -->
<---       Side By Side         -->
<--- -------------------------- -*/
/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  #about {
    padding: var(--sectionPadding);
    padding-top: 15vw;
    padding-bottom: 15vw;
    background-color: #222;
    /* clips anything overflowing */
    overflow: hidden;
    position: relative;
    z-index: 1;
  }
  #about .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);
  }
  #about .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;
    position: relative;
    z-index: 3;
  }
  #about .cs-title {
    text-transform: uppercase;
    max-width: 18ch;
  }
  #about .cs-title,
  #about .cs-text {
    color: var(--bodyTextColorWhite);
  }
  #about .cs-text {
    margin-bottom: 1rem;
    opacity: 0.8;
  }
  #about .cs-text:last-of-type {
    margin-bottom: 2rem;
  }
  #about .cs-ul {
    width: 100%;
    max-width: 39.375rem;
    margin: 0 0 2rem;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    row-gap: 1rem;
    column-gap: 0.75rem;
  }
  #about .cs-li {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    grid-column: span 4;
    /* 16px - 20px */
    gap: clamp(1rem, 2.5vw, 1.25rem);
  }
  #about .cs-li-picture {
    /* 60px - 80px */
    width: 3rem;
    height: 3rem;
    margin: 0;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    /* prevents flexbox from squishing it */
    flex: none;
    position: relative;
    z-index: 1;
  }
  #about .cs-li-picture:before {
    /* background color */
    content: '';
    width: 100%;
    height: 100%;
    background: #1D1C1C;
    position: absolute;
    display: block;
    top: 0;
    left: 0;
    z-index: -1;
  }
  #about .cs-li-icon {
    width: 1.5rem;
    height: auto;
    display: block;
  }
  #about .cs-h3 {
    /* 13px - 16px */
    font-size: clamp(0.8125rem, 2vw, 1rem);
    line-height: 1.2em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    text-align: left;
    margin: 0 0 0.75rem 0;
    color: var(--bodyTextColorWhite);
    opacity: 0.8;
  }
  #about .cs-li-text {
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.2em;
    text-align: left;
    margin: 0;
    color: var(--bodyTextColorWhite);
  }
  #about .cs-button-solid {
    font-size: clamp(1.125rem, 1.5vw, 1.25rem);
    /* 46px - 56px */
    line-height: clamp(2.875em, 5.5vw, 3.5em);
    text-decoration: none;
    font-weight: 700;
    text-align: center;
    margin: 0;
    color: var(--bodyTextColor);
    min-width: 5rem;
    padding: 0 1rem;
    background-color: var(--primary);
    display: inline-block;
    position: relative;
    z-index: 1;
    /* prevents padding from adding to the width */
    box-sizing: border-box;
    border-radius: 1rem;
    transition: all 0.4s;
  }
  #about .cs-button-solid:hover {
    background-color: var(--secondary);
  }
  #about .cs-image-group {
    /* scales the whole section down and ties the font size to the vw and stops at 75% of the vale of 1em, changes at desktop */
    font-size: min(2vw, .70rem);
    /* everything inside this box is in ems so we can scale it all down proportionally with a font size */
    width: 47.1875em;
    height: 28em;
    position: relative;
    z-index: 1;
  }
  #about .cs-picture {
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    object-fit: cover;
  }
  #about .cs-picture img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  #about .cs-mask {
    width: 101%;
    height: 101%;
    object-fit: cover;
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 1;
    transform: translate(-50%, -50%);
  }
  #about .cs-graphic {
    z-index: 10;
    position: absolute;
    bottom: -1px;
    left: 0;
    display: flex;
    align-items: flex-end;
    height: auto;
    width: 100%;
    pointer-events: none;
  }
  #about .cs-graphic2 {
    top: -1px;
    bottom: auto;
    transform: scaleY(-1) scaleX(-1);
  }
  #about .cs-dark {
    display: none;
  }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
  #about .cs-container {
    max-width: 80rem;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
  #about .cs-image-group {
    /* set to inherit at Large Desktop */
    font-size: min(1vw, 1rem);
    flex: none;
  }
  #about .cs-image-group:before {
    display: block;
  }
  #about .cs-content {
    width: 51%;
  }
}
/* Desktop - 1300px */
@media only screen and (min-width: 81.25rem) {
  #about .cs-image-group {
    font-size: inherit;
    width: 42.1875em;
  }
  #about .cs-li {
    flex-direction: row;
  }
}
/* Large Desktop - 2000px */
@media only screen and (min-width: 125rem) {
  #about {
    /* pushes down when the screen size gets too big and the graphic starts getting too tall and creeps up on the content above it */
    padding-bottom: 9vw;
  }
}
/* Dark Mode */
@media only screen and (min-width: 0rem) {
  body.dark-mode #about {
    background-color: rgba(0, 0, 0, 0.6);
  }
  body.dark-mode #about .cs-light {
    display: none;
  }
  body.dark-mode #about .cs-dark {
    display: block;
  }
}
/*-- -------------------------- -->
<---          Gallery           -->
<--- -------------------------- -*/
/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  #facility {
    padding: var(--sectionPadding);
    background-color: #1D1C1C;
  }
  #facility .cs-container {
    width: 100%;
    max-width: 80rem;
    margin: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    /* 48px - 64px */
    gap: clamp(3rem, 6vw, 4rem);
  }
  #facility .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;
  }
  #facility .cs-title {
    margin: 0;
    color: var(--bodyTextColorWhite);
  }
  #facility .cs-image-group {
    width: 100%;
    /* changes to 1280px at large desktop */
    max-width: 49rem;
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-template-rows: repeat(20, minmax(9vw, 1fr));
    /* 16px - 20px */
    gap: clamp(1rem, 2vw, 1.25rem);
  }
  #facility .cs-picture {
    width: 100%;
    height: 100%;
    display: block;
    position: relative;
    border-radius: 0.25rem;
    border: 2px solid var(--primary);
  }
  #facility .cs-picture img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
  }
  #facility .cs-picture1 {
    grid-column: 1 / span 6;
    grid-row: span 4;
  }
  #facility .cs-picture2 {
    grid-column: 7 / span 6;
    grid-row: span 5;
  }
  #facility .cs-picture3 {
    grid-column: 1 / span 6;
    grid-row: 5 / span 6;
  }
  #facility .cs-picture4 {
    grid-column: 7 / span 6;
    grid-row: 6 / span 5;
  }
  #facility .cs-picture5 {
    grid-column: 1 / span 6;
    grid-row: 11 / span 4;
  }
  #facility .cs-picture6 {
    grid-column: 7 / span 6;
    grid-row: 11 / span 5;
  }
  #facility .cs-picture7 {
    grid-column: 1 / span 6;
    grid-row: 15 / span 6;
  }
  #facility .cs-picture8 {
    grid-column: 7 / span 6;
    grid-row: 16 / span 5;
  }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
  #facility .cs-image-group {
    grid-template-rows: repeat(20, minmax(6rem, 1fr));
  }
}
/* Large Desktop 1300px */
@media only screen and (min-width: 81.25rem) {
  #facility .cs-image-group {
    max-width: 80rem;
    height: 49.0625rem;
    grid-template-rows: repeat(12, 1fr);
  }
  #facility .cs-picture1 {
    grid-column: 1 / span 3;
    grid-row: 1 / span 7;
  }
  #facility .cs-picture2 {
    grid-column: 4 / span 3;
    grid-row: 1 / span 10;
  }
  #facility .cs-picture3 {
    grid-column: 7 / span 3;
    grid-row: 1 / span 5;
  }
  #facility .cs-picture4 {
    grid-column: 10 / span 3;
    grid-row: 1 / span 7;
  }
  #facility .cs-picture5 {
    grid-column: 1 / span 3;
    grid-row: 8 / span 13;
  }
  #facility .cs-picture6 {
    grid-column: 4 / span 3;
    grid-row: 11 / span 10;
  }
  #facility .cs-picture7 {
    grid-column: 7 / span 3;
    grid-row: 6 / span 15;
  }
  #facility .cs-picture8 {
    grid-column: 10 / span 3;
    grid-row: 8 / span 13;
  }
}
/* Dark Mode */
@media only screen and (min-width: 0rem) {
  body.dark-mode #facility .cs-title {
    color: var(--bodyTextColorWhite);
  }
}
/*-- -------------------------- -->
<---           Quote            -->
<--- -------------------------- -*/
/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  #quote {
    padding: var(--sectionPadding);
    padding-top: 15vw;
    padding-bottom: 15vw;
    background-color: var(--secondary);
    position: relative;
  }
  #quote .cs-container {
    width: 100%;
    max-width: 80rem;
    margin: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    /* 48px - 64px */
    gap: clamp(3rem, 6vw, 4rem);
  }
  #quote .cs-topper {
    color: var(--headerColor);
  }
  #quote .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;
    /* 16px - 20px */
    gap: clamp(1rem, 2vw, 1.25rem);
  }
  #quote .cs-topper {
    /* 16px - 20px */
    font-size: clamp(1rem, 2vw, 1.25rem);
    line-height: 1.2em;
    text-transform: uppercase;
    text-align: inherit;
    letter-spacing: 0.4em;
    font-weight: 700;
    color: var(--headerColor);
    margin-bottom: 0.25rem;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 1.5rem;
  }
  #quote .cs-topper:before {
    /* yellow line */
    content: "";
    width: 3.125rem;
    height: 2px;
    background: var(--headerColor);
    opacity: 1;
    display: block;
  }
  #quote .cs-quote {
    /* 31px - 49px */
    font-size: clamp(1.9375rem, 5.1vw, 3.0625rem);
    line-height: 1.2em;
    font-weight: 900;
    margin: 0;
    color: var(--headerColor);
  }
  #quote .cs-name {
    /* 16px - 20px */
    font-size: clamp(1rem, 1.7vw, 1.25rem);
    line-height: 1.2em;
    font-weight: 700;
    text-transform: uppercase;
    margin: 0;
    color: var(--headerColor);
    display: block;
    letter-spacing: 0.01em;
  }
  #quote .cs-button-solid {
    font-size: clamp(1.125rem, 1.5vw, 1.25rem);
    /* 46px - 56px */
    line-height: clamp(2.875em, 5.5vw, 3.5em);
    text-decoration: none;
    font-weight: 700;
    text-align: center;
    margin: 0;
    color: var(--secondary);
    min-width: 5rem;
    padding: 0 1rem;
    background-color: var(--headerColor);
    display: inline-block;
    position: relative;
    z-index: 1;
    /* prevents padding from adding to the width */
    box-sizing: border-box;
    border: 2px solid var(--headerColor);
    border-radius: 1rem;
    transition: all 0.4s;
  }
  #quote .cs-button-solid:hover {
    color: var(--primary);
  }
  #quote .cs-graphic {
    z-index: 10;
    position: absolute;
    bottom: -1px;
    left: 0;
    display: flex;
    align-items: flex-end;
    height: auto;
    width: 100%;
    pointer-events: none;
  }
  #quote .cs-graphic2 {
    top: -1px;
    bottom: auto;
    transform: scaleY(-1) scaleX(-1);
  }
}
/* Dark Mode */
@media only screen and (min-width: 0rem) {
  body.dark-mode #quote {
    background-color: var(--medium);
  }
  body.dark-mode #quote .cs-quote,
  body.dark-mode #quote .cs-topper {
    color: var(--bodyTextColorWhite);
  }
}
/*-- -------------------------- -->
<---       Meet The Team        -->
<--- -------------------------- -*/
/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  #team {
    padding: var(--sectionPadding);
    background-color: #1D1C1C;
    position: relative;
    z-index: 1;
    overflow: hidden;
  }
  #team .cs-container {
    width: 100%;
    max-width: 80rem;
    margin: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    /* 48px - 64px */
    gap: clamp(3rem, 6vw, 4rem);
  }
  #team .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;
    gap: 1.5rem;
  }
  #team .cs-title {
    max-width: 20ch;
    margin: 0;
    color: var(--bodyTextColorWhite);
  }
  #team .cs-text {
    color: var(--bodyTextColorWhite);
    opacity: 0.8;
  }
  #team .cs-button-solid {
    font-size: clamp(1.125rem, 1.5vw, 1.25rem);
    /* 46px - 56px */
    line-height: clamp(2.875em, 5.5vw, 3.5em);
    text-decoration: none;
    font-weight: 700;
    text-align: center;
    margin: 0;
    color: var(--bodyTextColor);
    min-width: 5rem;
    padding: 0 1rem;
    background-color: var(--primary);
    display: inline-block;
    position: relative;
    z-index: 1;
    /* prevents padding from adding to the width */
    box-sizing: border-box;
    border-radius: 1rem;
    transition: all 0.4s;
  }
  #team .cs-button-solid:hover {
    background-color: var(--secondary);
  }
  #team .cs-card-group {
    width: 100%;
    margin: 0;
    padding: 0;
    display: grid;
    flex-direction: column;
    grid-template-columns: repeat(12, 1fr);
    gap: 1.5rem;
    position: relative;
  }
  #team .cs-item {
    list-style: none;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    grid-column: span 12;
    /* 16px - 20px */
    gap: clamp(1rem, 2vw, 1.25rem);
    position: relative;
  }
  #team .cs-item:hover .cs-picture img {
    opacity: 0.4;
    transform: scale(1.2);
  }
  #team .cs-item:hover .cs-link {
    opacity: 1;
    transform: translateY(0);
  }
  #team .cs-item:hover .cs-link:hover {
    /* we need to add the hover styles for the cs-link inside the cs-item hover for specifcity. There's a transform none on the cs-link when we hover over the cs-item, so for the transform to work when we hover over the cs-link, we add it while the hover is active on the cs-item. This allows it to be more specific and override the transform 0 it adds to the cs-link */
    transform: scale(1.15);
    transition: transform 0.3s;
    transition-delay: 0;
  }
  #team .cs-item:hover .cs-job {
    color: var(--primary);
  }
  #team .cs-image-group {
    width: 100%;
    height: auto;
    margin: 0;
    position: relative;
    z-index: 1;
    aspect-ratio: 0.91691395;
    flex: 1 0 0;
  }
  #team .cs-picture {
    width: 100%;
    height: 100%;
    background-color: #000;
    /* removed at tablet */
    aspect-ratio: 328/260;
    /* clips the img corners */
    /* clips img tag from overflowing it on hover */
    display: block;
    position: relative;
    overflow: hidden;
    border-radius: 0.25rem;
  }
  #team .cs-picture img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* makes sure the top of the image is at the top of the parent, heads won't get cut off this way */
    object-position: top;
    position: absolute;
    top: 0;
    left: 0;
    transition: transform 0.7s, opacity 0.3s;
  }
  #team .cs-social {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5rem;
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 1;
  }
  #team .cs-link {
    width: 2.5rem;
    height: 2.5rem;
    padding: 0.5rem;
    background-color: #F7F7F7;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    transform: translateY(-1rem);
    transition: transform 0.6s, opacity 0.6s;
  }
  #team .cs-link:nth-of-type(2) {
    transition-delay: 0.08s;
  }
  #team .cs-link:nth-of-type(3) {
    transition-delay: 0.16s;
  }
  #team .cs-icon {
    width: 1.25rem;
    height: auto;
    display: block;
  }
  #team .cs-info {
    width: 100%;
    /* prevents padding and border from affecting height and width */
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    transition: background-color 0.3s;
  }
  #team .cs-name {
    font-size: 1.25rem;
    text-transform: uppercase;
    font-weight: 700;
    line-height: 1.2em;
    margin: 0;
    color: var(--bodyTextColorWhite);
    display: block;
    transition: color 0.3s;
  }
  #team .cs-job {
    font-size: 1rem;
    line-height: 1.2em;
    margin: 0;
    color: var(--bodyTextColorWhite);
    opacity: 0.8;
    display: block;
    transition: color 0.3s;
  }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
  #team .cs-content {
    text-align: left;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
  }
  #team .cs-card-group {
    /* 16px - 20px */
    column-gap: clamp(1rem, 2vw, 1.25rem);
    row-gap: 2.5rem;
  }
  #team .cs-item {
    grid-column: span 6;
  }
  #team .cs-picture {
    /* 400px - 440px */
    height: clamp(25rem, 50vw, 27.5rem);
    aspect-ratio: initial;
  }
}
/* Large Desktop - 1300px */
@media only screen and (min-width: 64rem) {
  #team .cs-item {
    grid-column: span 3;
  }
}
/* Dark Mode */
@media only screen and (min-width: 0rem) {
  body.dark-mode #team {
    background-color: rgba(0, 0, 0, 0.6);
  }
}
/*-- -------------------------- -->
<---            CTA             -->
<--- -------------------------- -*/
/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  #cta-403 {
    padding: var(--sectionPadding);
    padding-top: 15vw;
    padding-bottom: 15vw;
    position: relative;
  }
  #cta-403 .cs-background {
    width: 100%;
    height: 100%;
    background-blend-mode: multiply;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
  }
  #cta-403 .cs-background:before {
    /* background color overlay */
    content: "";
    position: absolute;
    display: block;
    height: 100%;
    width: 100%;
    background: var(--secondary);
    opacity: 0.8;
    top: 0;
    left: 0;
    z-index: 1;
  }
  #cta-403 .cs-background img {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    /* Makes img tag act as a background image */
    object-fit: cover;
    /* positions the image inside the parent */
    object-position: 0% 30%;
  }
  #cta-403 .cs-container {
    width: 100%;
    max-width: 80rem;
    margin: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    /* 48px - 64px */
    gap: clamp(3rem, 6vw, 4rem);
  }
  #cta-403 .cs-content {
    /* set text align to left if content needs to be left aligned */
    text-align: center;
    width: 100%;
    max-width: 32.3125rem;
    display: flex;
    flex-direction: column;
    /* centers content horizontally, set to flex-start to left align */
    align-items: center;
  }
  #cta-403 .cs-title,
  #cta-403 .cs-text {
    color: var(--headerColor);
  }
  #cta-403 .cs-text {
    margin-bottom: 1rem;
  }
  #cta-403 .cs-text:last-of-type {
    margin-bottom: 2rem;
  }
  #cta-403 .cs-topper {
    color: var(--headerColor);
    letter-spacing: 0.2em;
  }
  #cta-403 .cs-button-solid {
    font-size: clamp(1.125rem, 1.5vw, 1.25rem);
    /* 46px - 56px */
    line-height: clamp(2.875em, 5.5vw, 3.5em);
    text-decoration: none;
    font-weight: 700;
    text-align: center;
    margin: 0;
    color: var(--secondary);
    min-width: 5rem;
    padding: 0 1rem;
    background-color: var(--headerColor);
    display: inline-block;
    position: relative;
    z-index: 1;
    /* prevents padding from adding to the width */
    box-sizing: border-box;
    border: 2px solid var(--headerColor);
    border-radius: 1rem;
    transition: all 0.4s;
  }
  #cta-403 .cs-button-solid:hover {
    color: var(--primary);
  }
  #cta-403 .cs-graphic {
    z-index: 10;
    position: absolute;
    bottom: -1px;
    left: 0;
    display: flex;
    align-items: flex-end;
    height: auto;
    width: 100%;
    pointer-events: none;
  }
  #cta-403 .cs-graphic2 {
    top: -1px;
    bottom: auto;
    transform: scaleY(-1) scaleX(-1);
  }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
  #cta-403 .cs-background {
    /* clips the black slant so it doesnt overflow */
    overflow: hidden;
  }
  #cta-403 .cs-background:before {
    width: 40%;
    opacity: 1;
  }
  #cta-403 .cs-background:after {
    /* black slant */
    content: "";
    width: 31.25rem;
    height: 93.75rem;
    margin-right: -3.125rem;
    background: -moz-linear-gradient(left, var(--secondary) 0%, var(--secondary) 57%, rgba(26, 26, 26, 0) 100%);
    background: -webkit-linear-gradient(left, var(--secondary) 0%, var(--secondary) 57%, rgba(26, 26, 26, 0) 100%);
    background: linear-gradient(to right, var(--secondary) 0%, var(--secondary) 57%, rgba(26, 26, 26, 0) 100%);
    opacity: 1;
    position: absolute;
    display: block;
    top: 50%;
    right: 50%;
    transform: rotate(10deg) translateY(-50%);
  }
  #cta-403 .cs-background img {
    width: 60%;
    object-position: right;
    left: auto;
    right: 0;
  }
  #cta-403 .cs-container {
    flex-direction: row;
    justify-content: space-between;
  }
  #cta-403 .cs-content {
    text-align: left;
    align-items: flex-start;
    width: 45%;
  }
  #cta-403 .cs-text,
  #cta-403 .cs-title {
    margin-left: 0;
  }
}
