/*-- -------------------------- -->
<---          Landing           -->
<--- -------------------------- -*/
/* Mobile */
@media only screen and (min-width: 0em) {
  #hero {
    font-size: inherit;
    padding-bottom: 16.875em;
    padding-top: 9.375em;
    position: relative;
    z-index: 1;
  }
  #hero:before {
    content: '';
    position: absolute;
    display: block;
    height: 100%;
    width: 100%;
    background: #000;
    opacity: .65;
    top: 0;
    left: 0;
    z-index: -10;
  }
  #hero picture {
    position: absolute;
    top: 0;
    left: 0;
    height: 115%;
    width: 100%;
    z-index: -11;
  }
  #hero picture img {
    position: absolute;
    top: -11em;
    left: 0;
    height: 100%;
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover;
  }
  #hero .hero-content {
    width: 96%;
    max-width: 71.5em;
    margin: auto;
    position: relative;
    z-index: 10;
    text-align: center;
  }
  #hero .hero-content {
    padding: 0;
  }
  #hero .heroText {
    width: 100%;
    margin: auto;
    max-width: 56.875em;
  }
  #hero h1 {
    font-weight: bold;
    font-size: min(12vw, 4em);
    /*color: #000000;*/
    text-align: center;
    line-height: 1.203125;
    margin: auto;
    width: 100%;
    max-width: 14.125em;
    margin-top: 4rem;
    margin-bottom: 0.2375em;
    position: relative;
  }
  #hero h1:before {
    content: '';
    position: absolute;
    display: none;
    height: 0.0625em;
    width: 9.515625em;
    background: var(--primary);
    opacity: 1;
    bottom: -0.25em;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
  }
  #hero p {
    line-height: 1.55em;
    margin: auto;
    margin-top: 2.7em;
    margin-bottom: 1.72222222em;
    /*color: #ffffff;*/
    width: 100%;
    text-align: center;
    max-width: 16em;
    opacity: 1;
  }
  .heroSubtext {
    color: #ffffff;
    /*font-family: 'Helvetica Neue', sans-serif;:*/
    font-weight: 400;
    font-size: min(1.3rem);
  }
  #hero .button-solid {
    margin: auto;
    display: inline-block;
    width: auto;
  }
  #intro {
    font-size: inherit;
    padding-bottom: 2.875em;
    padding-top: 1.375em;
    position: relative;
    z-index: 1;
  }
  #intro:before {
    content: '';
    position: absolute;
    display: block;
    height: 100%;
    width: 100%;
    background: rgba(11, 11, 11, 0);
    opacity: .65;
    top: 0;
    left: 0;
    z-index: -10;
  }
  #intro .intro-content {
    width: 96%;
    max-width: 71.5em;
    margin: auto;
    position: relative;
    z-index: 10;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  #intro .introText {
    color: #0b0b0b;
    width: 100%;
    margin: auto;
    max-width: 56.875em;
    text-align: center;
  }
  .blackTitle {
    color: #000000
  }
  #intro .introImage {
    width: 100%;
    max-width: 300px;
    margin-top: 2em;
    text-align: center;
  }
  #intro .introImage img {
    border-radius: 20px;
    box-shadow: 0px 20px 40px rgba(0, 0, 0, 0.5);
    max-width: 100%;
    height: auto;
  }
  #intro h1 {
    font-weight: bold;
    font-size: min(12vw, 4em);
    text-align: center;
    line-height: 1.203125;
    margin: auto;
    width: 100%;
    max-width: 14.125em;
    margin-top: 4rem;
    margin-bottom: 0.2375em;
    position: relative;
  }
  #intro h1:before {
    content: '';
    position: absolute;
    display: none;
    height: 0.0625em;
    width: 9.515625em;
    background: var(--primary);
    opacity: 1;
    bottom: -0.25em;
    left: 50%;
    transform: translateX(-50%);
  }
  #intro p {
    line-height: 1.55em;
    margin: auto;
    margin-top: 1.7em;
    margin-bottom: 1.72222222em;
    width: 100%;
    text-align: center;
    max-width: 34.27777778em;
    opacity: 1;
  }
}

/* Tablet */
@media only screen and (min-width: 48em) {
  #hero {
    padding: 12.5em 0 18.75em 0;
    z-index: 1;
    overflow: hidden;
  }

  #hero .hero-content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    position: relative;
  }

  #intro {
    padding: 12.5em 0 18.75em 0;
    z-index: 1;
    overflow: hidden;
  }
  #intro .intro-content {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    position: relative;
    text-align: left;
  }
  #intro .introText {
    flex: 1;
    padding-right: 2em;
  }
  #intro .introImage {
    flex: 1;
    text-align: right;
    padding-left: 4em;
    max-width: none; /* Remove max-width constraint on larger screens */
  }
  #intro .introImage img {
    border-radius: 20px;
    box-shadow: 0px 20px 40px rgba(0, 0, 0, 0.5);
    max-width: 33rem;
    height: auto;
  }
}

/* Small Desktop */
@media only screen and (min-width: 1300px) {
  #hero {
    padding-top: 17.0625em;
    padding-bottom: 19.1875em;
    background: url("../images/wave.svg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
  }
  #hero p {
    line-height: 1.55em;
    margin: auto;
    margin-top: 2.7em;
    margin-bottom: 1.72222222em;
    /*color: #ffffff;*/
    width: 100%;
    text-align: center;
    max-width: 19em;
    opacity: 1;
  }
  #intro {
    padding-top: 17.0625em;
    padding-bottom: 19.1875em;
    /*background: url("../images/wave.svg");*/
    /*background-size: cover;*/
    /*background-position: center;*/
    /*background-repeat: no-repeat;*/
    /*background-attachment: fixed;*/
  }
}

/* Desktop */
@media only screen and (min-width: 64em) {
  #hero {
    padding-top: 17.0625em;
    padding-bottom: 19.1875em;
    background: url("../images/wave.svg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
  }
  #hero picture img {
    position: absolute;
    top: -7em;
    left: 0;
    height: 100%;
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover;
  }
  #intro {
    padding-top: 1.0625em;
    padding-bottom: 10.1875em;
    /*background: url("../images/wave.svg");*/
    /*background-size: cover;*/
    /*background-position: center;*/
    /*background-repeat: no-repeat;*/
    /*background-attachment: fixed;*/
  }
}

/*-- -------------------------- -->
<---          Services          -->
<--- -------------------------- -*/
/* Mobile */
@media only screen and (min-width: 0em) {
  .services {
    border-radius: 2em;
    margin: auto;
    margin-top: 5em;
    position: relative;
    z-index: 100;
    background: rgba(255, 255, 255, 0.1); /* Semi-transparent white background */
    backdrop-filter: blur(10px); /* Frosted glass effect */
    -webkit-backdrop-filter: blur(10px); /* Frosted glass effect for Safari */
    width: 90%;
    max-width: 82.5em;
    padding: 3.125em 1.25em;
    box-shadow: 0px 20px 40px rgba(0, 0, 0, 0.1);
    margin-bottom: 3.125em;
  }

  .services .card {
    display: block;
    width: 100%;
    max-width: 22.3125em;
    margin: auto;
    margin-bottom: 3.125em;
  }

  .services .card:last-of-type {
    margin-bottom: 0;
  }

  .services .card picture {
    /*background: var(--primary);*/
    width: 5.5em;
    height: 5.5em;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: auto;
    margin-bottom: 1.4375em;
    /*border-radius: 50%;*/
  }

  .services .card picture img {
    width: 5.5em;
    height: 5.5em;
  }

  .services .card h2 {
    text-align: center;
    font-size: 2em;
    line-height: 1.35em;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 0.65em;
  }

  .services .card p {
    text-align: center;
    line-height: 1.33333333em;
    width: 100%;
    opacity: 0.7;
  }
}

/* Inbetween */
@media only screen and (min-width: 768px) {
  .services {
    font-size: min(1.8vw, 1em);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    width: 98%;
  }

  .services .card {
    margin: 0;
    max-width: 20.3125em;
  }
}

/* Large Desktop */
@media only screen and (min-width: 1300px) {
  .services {
    padding: 3.125em 5em;
  }

  .services .card {
    max-width: 22.3125em;
  }
}

/* Dark mode */
@media only screen and (min-width: 0em) {
  body.dark-mode .services {
    background: rgba(26, 26, 26, 0.7); /* Semi-transparent dark background for dark mode */
    backdrop-filter: blur(10px); /* Frosted glass effect */
    -webkit-backdrop-filter: blur(10px); /* Frosted glass effect for Safari */
  }

  body.dark-mode .services h2 {
    color: #fff;
    font-weight: bold;
  }
}

:root {
  /* Add these styles to your global stylesheet, which is used across all site pages. You only need to do this once. All elements in the library derive their variables and base styles from this central sheet, simplifying site-wide edits. For instance, if you want to modify how your h2's appear across the site, you just update it once in the global styles, and the changes apply everywhere. */
  --primary: #c0c0c0;
  --primaryLight: #ffba43;
  --secondary: #ffba43;
  --secondaryLight: #ffba43;
  --headerColor: #1a1a1a;
  --bodyTextColor: #393842;
  --bodyTextColorWhite: #fafbfc;
  /* 13px - 16px */
  --topperFontSize: clamp(0.8125rem, 1.6vw, 1rem);
  /* 31px - 49px */
  --headerFontSize: clamp(1.9375rem, 3.9vw, 3.0625rem);
  --bodyFontSize: 1rem;
  /* 60px - 100px top and bottom */
  --sectionPadding: clamp(3.75rem, 7.82vw, 6.25rem) 1rem;
}

body {
  margin: 0;
  padding: 0;
}

*, *:before, *:after {
  /* prevents padding from affecting height and width */
  box-sizing: border-box;
}

.cs-topper {
  font-size: var(--topperFontSize);
  line-height: 1.2em;
  text-transform: uppercase;
  text-align: inherit;
  letter-spacing: .1em;
  font-weight: 700;
  color: var(--primary);
  margin-bottom: 0.25rem;
  display: block;
}

.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;
}

.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 Us       -->
<--- -------------------------- -*/

/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  #why-choose-1662 {
    padding: var(--sectionPadding);
    background-color: #f7f7f7;
    position: relative;
    overflow: hidden;
    z-index: 1;
  }
  #why-choose-1662 .cs-container {
    width: 100%;
    max-width: 80rem;
    margin: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    /* 40px - 64px */
    gap: clamp(2.5rem, 3.9vw, 4rem);
  }
  #why-choose-1662 .cs-content {
    text-align: left;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  #why-choose-1662 .cs-title {
    margin: 0;
    max-width: 23ch;
  }
  #why-choose-1662 .cs-wrapper {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    /* 16px - 32px */
    gap: clamp(1rem, 3.2vw, 2rem);
  }
  #why-choose-1662 .cs-card-group {
    width: 100%;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-direction: column;
    /* 16px - 32px */
    gap: clamp(1rem, 2vw, 2rem);
  }
  #why-choose-1662 .cs-item {
    list-style: none;
    /* prevents padding from affecting height and width */
    box-sizing: border-box;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 1rem;
  }
  #why-choose-1662 .cs-item-wrapper {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }
  #why-choose-1662 .cs-item-number {
    font-size: 1.25rem;
    line-height: 1.2em;
    font-weight: 700;
    margin: 0;
    color: var(--primary);
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 0.5rem;
  }
  #why-choose-1662 .cs-h3 {
    font-size: 1.25rem;
    line-height: 1.2em;
    font-weight: 700;
    margin: 0;
    color: var(--headerColor);
  }
  #why-choose-1662 .cs-item-text {
    font-size: 1rem;
    line-height: 1.5em;
    margin: 0;
    color: var(--bodyTextColor);
  }
  #why-choose-1662 .cs-floater {
    /* 246px - 582px */
    width: clamp(15.375rem, 50vw, 36.375rem);
    height: auto;
    position: absolute;
    right: -4rem;
    top: -0.5rem;
    z-index: -1;
  }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
  #why-choose-1662 .cs-wrapper {
    flex-direction: row;
    align-items: flex-start;
  }
}
/* Dark Mode */
@media only screen and (min-width: 0rem) {
  body.dark-mode #why-choose-1662 {
    background-color: rgba(0, 0, 0, 0.2);
  }
  body.dark-mode #why-choose-1662 .cs-title,
  body.dark-mode #why-choose-1662 .cs-h3,
  body.dark-mode #why-choose-1662 .cs-item-text {
    color: var(--bodyTextColorWhite);
  }
  body.dark-mode #why-choose-1662 .cs-item-text {
    opacity: 0.8;
  }
  body.dark-mode #why-choose-1662 .cs-floater {
    opacity: 0.1;
  }
}
/*-- -------------------------- -->
<---          Services          -->
<--- -------------------------- -*/

/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  #services-1329 {
    padding: var(--sectionPadding);
    position: relative;
  }
  #services-1329 .cs-container {
    width: 100%;
    max-width: 36.5rem;
    margin: auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: clamp(3rem, 6vw, 4rem);
  }
  #services-1329 .cs-content {
    width: 100%;
    display: flex;
    flex-direction: column;
    /* centers content horizontally, set to flex-start to left align */
    align-items: center;
    /* set text align to left if content needs to be left aligned */
    text-align: center;
    gap: 1rem;
  }

  #services-1329 .cs-title {
    max-width: 20ch;
  }
  #services-1329 .cs-card-group {
    width: 100%;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    /* 16px - 20px */
    gap: clamp(1rem, 2.5vw, 1.25rem);
  }
  #services-1329 .cs-item {
    list-style: none;
    width: 100%;
    /* 300px - 380px */
    height: clamp(18.75rem, 50vw, 23.75rem);
    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;
    position: relative;
    text-align: left;
    box-shadow: 0px 12px 80px 0px rgba(26, 26, 26, 0.08);
    grid-column: span 12;
    z-index: 1;
  }
  #services-1329 .cs-item:hover .cs-picture::after {
    opacity: 1;
  }
  #services-1329 .cs-item:hover .cs-picture img {
    transform: scale(1.2);
  }
  #services-1329 .cs-item:hover .cs-h3 {
    color: var(--primary);
  }
  #services-1329 .cs-item:hover .cs-number {
    opacity: 1;
    top: clamp(1.25rem, 2.3vw, 2rem);
  }
  #services-1329 .cs-item:hover .cs-arrow {
    opacity: 0.12;
    bottom: 50%;
    transform: translateY(50%);
  }
  #services-1329 .cs-link {
    text-decoration: none;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    /* 20px - 32px */
    padding: clamp(1.25rem, 2.3vw, 2rem);
    /* we use flexbox here to grow the link to fit the whole item, making it clickable everywhere, no matter the size */
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    position: relative;
    z-index: 1;
  }
  #services-1329 .cs-link::after {
    /* hover overlay */
    content: "";
    width: 100%;
    height: 100%;
    opacity: 0;
    position: absolute;
    top: 0;
    right: 0;
    z-index: -1;
    /* as we can't animate background gradients, we animate the change of opacity from 0 to 1 */
    transition: opacity 0.3s;
  }
  #services-1329 .cs-number {
    /* 25px - 39px */
    font-size: clamp(1.5625rem, 2.7vw, 2.4375rem);
    font-weight: bold;
    color: var(--bodyTextColorWhite);
    opacity: 0;
    position: absolute;
    top: 0;
    transition:
            opacity 0.3s,
            top 0.3s;
  }
  #services-1329 .cs-h3 {
    /* 20px - 25px */
    font-size: clamp(1.25rem, 1.8vw, 1.5625rem);
    line-height: 1.2em;
    font-weight: bold;
    margin: 0 0 0.25rem 0;
    color: var(--bodyTextColorWhite);
    transition: color 0.3s;
    text-align: inherit;
  }
  #services-1329 .cs-item-text {
    /* 14px - 16px */
    font-size: clamp(0.875rem, 1.5vw, 1rem);
    line-height: 1.5em;
    margin: 0;
    padding: 0;
    color: var(--bodyTextColorWhite);
  }
  #services-1329 .cs-picture {
    width: 100%;
    height: 100%;
    overflow: hidden;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
  }
  #services-1329 .cs-picture:before {
    /* background color overlay */
    content: "";
    width: 100%;
    height: 100%;
    background: -moz-linear-gradient(
            top,
            rgba(26, 26, 26, 0) 0%,
            rgba(0, 0, 0, 0.76) 100%
    );
    /* FF3.6-15 */
    background: -webkit-linear-gradient(
            top,
            rgba(26, 26, 26, 0) 0%,
            rgba(0, 0, 0, 0.76) 100%
    );
    /* Chrome10-25,Safari5.1-6 */
    background: linear-gradient(
            to bottom,
            rgba(26, 26, 26, 0) 0%,
            rgba(0, 0, 0, 0.76) 100%
    );
    opacity: 1;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
  }
  #services-1329 .cs-picture:after {
    /* background color overlay on hover */
    content: "";
    width: 100%;
    height: 100%;
    background: -moz-linear-gradient(
            top,
            rgba(26, 26, 26, 0.4) 0%,
            rgba(0, 0, 0, 0.8) 100%
    );
    /* FF3.6-15 */
    background: -webkit-linear-gradient(
            top,
            rgba(26, 26, 26, 0.4) 0%,
            rgba(0, 0, 0, 0.8) 100%
    );
    /* Chrome10-25,Safari5.1-6 */
    background: linear-gradient(
            to bottom,
            rgba(26, 26, 26, 0.4) 0%,
            rgba(0, 0, 0, 0.8) 100%
    );
    opacity: 0;
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    transition: opacity 0.3s;
  }
  #services-1329 .cs-picture img {
    width: 100%;
    height: 100%;
    /* Makes img tag act as a background image */
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    transition: transform 0.7s;
  }
  #services-1329 .cs-arrow {
    width: 100%;
    height: auto;
    opacity: 0;
    position: absolute;
    left: 0;
    bottom: 0;
    transition:
            bottom 0.3s,
            opacity 0.3s,
            transform 0.3s;
  }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
  #services-1329 {
    padding-bottom: 0;
  }
  #services-1329 .cs-content {
    flex-direction: row;
    justify-content: space-between;
    text-align: left;
    gap: 2.5rem;
  }
  #services-1329 .cs-text {
    width: 50%;
  }
  #services-1329 .cs-title {
    margin: 0;
  }
}
/* Desktop - 900px */
@media only screen and (min-width: 56.25rem) {
  #services-1329 .cs-container {
    max-width: 80rem;
  }
  #services-1329 .cs-item {
    height: 30rem;
    grid-column: span 4;
  }
}

