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

/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  .cs-graphic-two {
    height: 400px;
    width: auto;
    margin-top: -40px;
    margin-bottom: -2px;
    background-image: url('/assets/svgs/waves.svg');
    background-size: cover;
    background-color: var(--backgroundColor);
  }
  #services-1121 {
    padding: var(--sectionPadding);
    background-color: var(--secondary);
    position: relative;
    z-index: 1;
    margin-top: -1px;
  }
  #services-1121 .cs-container {
    width: 100%;
    max-width: 80rem;
    margin: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    /* 48px - 64px */
    gap: clamp(3rem, 6vw, 4rem);
  }
  #services-1121 .cs-card-group {
    width: 100%;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    /* changes to a clamp on tablet */
    gap: 2.5rem;
  }
  #services-1121 .cs-item {
    text-align: center;
    list-style: none;
    width: 100%;
    max-width: 25.8125rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    /* 16px - 24px */
    gap: clamp(1rem, 3vw, 1.5rem);
  }
  #services-1121 .cs-image-group {
    /* 80px - 100px */
    width: clamp(5rem, 8vw, 6.25rem);
    height: clamp(5rem, 8vw, 6.25rem);
    display: flex;
    justify-content: center;
    align-items: center;
    /* prevents flexbox from squishing it */
    flex: none;
    position: relative;
    z-index: 1;
  }
  #services-1121 .cs-icon {
    /* 36px - 48px */
    width: clamp(4rem, 4.5vw, 5rem);
    height: auto;
  }
  #services-1121 .cs-graphic {
    width: 125%;
    height: auto;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: -1;
  }
  #services-1121 .cs-h2 {
    /* 20px - 25px */
    font-size: clamp(1.25rem, 2.5vw, 1.5625rem);
    line-height: 1.2em;
    font-weight: 700;
    text-align: inherit;
    margin: 0 0 0.75rem;
    color: #332418;
  }
  #services-1121 .cs-item-text {
    font-size: 1rem;
    line-height: 1.5em;
    text-align: inherit;
    margin: 0;
    color: var(--bodyTextColor);
  }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
  #services-1121 .cs-card-group {
    flex-direction: row;
    justify-content: space-between;
    align-items: stretch;
    /* 16px - 20px */
    gap: clamp(1rem, 2.5vw, 1.25rem);
  }
}
/* Small Desktop - 1024px */
@media only screen and (min-width: 64rem) {
  
  #services-1121 .cs-item {
    align-items: center;
    justify-content: space-between;
  }
}
/*-- -------------------------- -->
<---       Side By Side         -->
<--- -------------------------- -*/

/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  #sbs-1591 {
    background-color: var(--backgroundColor);
    padding: var(--sectionPadding);
    padding-top: 0%;
  }
  #sbs-1591 .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);
  }
  #sbs-1591 .cs-content {
    /* set text align to left if content needs to be left aligned */
    text-align: left;
    width: 100%;
    max-width: 36.625rem;
    display: flex;
    flex-direction: column;
    /* centers content horizontally, set to flex-start to left align */
    align-items: flex-start;
  }
  #sbs-1591 .cs-text {
    margin-bottom: 1rem;
  }
  #sbs-1591 .cs-text:last-of-type {
    margin-bottom: 2rem;
  }
  #sbs-1591 .cs-image-group {
    /* scales the whole group based on the view width size and stop when that vales equals .745em, resets at desktop */
    font-size: min(1.959vw, .745em);
    width: 39.375em;
    /* we set a minimum height so it never gets smaller than this value */
    min-height: 39.25em;
    display: block;
    position: relative;
    z-index: 1;
  }
  #sbs-1591 .cs-picture {
    position: absolute;
  }
  #sbs-1591 .cs-picture img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    border-radius: 5rem;
    border-width: 1rem;
    border-color: var(--secondary);
    border-style: solid;
  }
  #sbs-1591 .cs-picture1 {
    /* the percentage heights allow them to be responsive to the height of the parent cs-image-group. On desktop, when the felxbox is set to aling-items: stretch, the cs-image group will stretch to fill the height of the parent container. So when you add more content to the cs-content group and make it taller, the cs-image group will get taller with it and every image will stretch with the parent, making this entire group responsive to the changing amounts of content next to it */
    width: 25.8125em;
    height: 79.617834%;
    top: 0;
    left: 0;
    z-index: -1;
  }
  #sbs-1591 .cs-picture2 {
    width: 25.8125em;
    height: 44.585987%;
    bottom: 0;
    right: 0;
    z-index: 10;
  }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
  #sbs-1591 .cs-container {
    max-width: 80rem;
    flex-direction: row;
    justify-content: space-between;
    align-items: stretch;
  }
  #sbs-1591 .cs-content {
    /* this padding sets a minimum gap between the top and bottom of the content div and the top and bottom of the cs-image-group */
    padding: 3.75rem 0;
    /* while the cs-image-group will stretch to fill the height of the parent, this property will ensure that the cs-content group aligns itse;f in the center of the parent div instead of stretching */
    align-self: center;
  }
  #sbs-1591 .cs-image-group {
    font-size: min(1.2vw, 1em);
    flex: none;
  }
}
/* Dark Mode */
@media only screen and (min-width: 0rem) {
  body.dark-mode #sbs-1591 .cs-title,
  body.dark-mode #sbs-1591 .cs-text {
    color: var(--bodyTextColorWhite);
  }
  body.dark-mode #sbs-1591 {
    background: var(--dark);
  }
  body.dark-mode .cs-graphic-two {
    background-color: var(--dark);
  }

}
 /*-- -------------------------- -->
<---          Reviews           -->
<--- -------------------------- -*/

/* Mobile - 360px */
@media only screen and (min-width: 0rem) {
  #reviews-62 {
      background-image: url('/assets/svgs/blob-scene-haikei.svg');
      padding: var(--sectionPadding);
      background-size: cover;
  }
  #reviews-62 .cs-item-text,#reviews-62 .cs-topper,#reviews-62 .cs-title,#reviews-62 .cs-text {
    color: var(--bodyTextColorWhite);
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
  }
  #reviews-62 .cs-container {
      width: 100%;
      max-width: 80rem;
      margin: auto;
      display: flex;
      flex-direction: column;
      align-items: center;
      /* 48px - 64px */
      gap: clamp(3rem, 6vw, 4rem);
  }
  #reviews-62 .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;
  }

  #reviews-62 .cs-card-group {
      width: 100%;
      margin: 0;
      padding: 0;
      display: flex;
      justify-content: center;
      align-items: center;
      flex-direction: column;
      gap: 1.25rem;
  }
  #reviews-62 .cs-item {
      list-style: none;
      width: 100%;
      max-width: 25.8125rem;
      margin: 0;
      padding: 0;
  }
  #reviews-62 .cs-img {
      width: 4.25rem;
      height: 4.25rem;
      margin: 0 auto 1rem;
      border-radius: 50%;
      display: block;
  }
  #reviews-62 .cs-name {
      font-size: 1.25rem;
      line-height: 1.2em;
      text-align: center;
      font-weight: 700;
      margin: 0;
      color: var(--bodyTextColorWhite);
      display: block;
      text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
  }
  #reviews-62 .cs-desc {
      font-size: 1rem;
      line-height: 1.5em;
      text-align: center;
      margin: 0 0 1rem;
      color: #7d799c;
      display: block;
  }
  #reviews-62 .cs-item-text {
      /* 14px - 16px */
      font-size: clamp(0.875rem, 2vw, 1rem);
      text-align: center;
      line-height: 1.5em;
      margin: auto;
      color: var(--bodyTextColorWhite);
      text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
  }
  #reviews-62 .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(--secondary);
      border-radius: 0.25rem;
      display: inline-block;
      position: relative;
      z-index: 1;
      /* prevents padding from adding to the width */
      box-sizing: border-box;
  }
  #reviews-62 .cs-button-solid:before {
      content: "";
      position: absolute;
      height: 100%;
      width: 0%;
      opacity: 1;
      top: 0;
      left: 0;
      z-index: -1;
      border-radius: 0.25rem;
      transition: width 0.3s;
  }
  #reviews-62 .cs-button-solid:hover:before {
      width: 100%;
  }
}
/* Tablet - 768px */
@media only screen and (min-width: 48rem) {
  #reviews-62 .cs-card-group {
      flex-direction: row;
      justify-content: center;
      align-items: stretch;
      flex-wrap: wrap;
      row-gap: 2.5rem;
  }
  #reviews-62 .cs-item {
      /* we do this so it's stackable. You can add new 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 reviews, they don't stay centered.  They align with their grid lines. If you want 4 reviews in a row, lower the width under 23% to get the desired sizes fit 4 in a row and then stack when you add more*/
      width: clamp(31.5%, 30vw, 32.3%);
  }
}
/* Dark Mode */
@media only screen and (min-width: 0rem) {
  body.dark-mode #reviews-62 .cs-title,
  body.dark-mode #reviews-62 .cs-text,
  body.dark-mode #reviews-62 .cs-name,
  body.dark-mode #reviews-62 .cs-desc,
  body.dark-mode #reviews-62 .cs-item-text {
      color: var(--bodyTextColorWhite);
  }
  body.dark-mode #reviews-62 .cs-item-text,
}

                              

/*-- -------------------------- -->
<---            FAQ            -->
<--- -------------------------- -*/

/* Mobile */
@media only screen and (min-width: 0rem) {
  #faq {
    padding: var(--sectionPadding);
    background-color: var(--backgroundColor);
  }

  #faq .cs-container {
    width: 100%;
    max-width: 50rem;
    margin: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  #faq .cs-content {
    text-align: center;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 2.5rem;
  }

  .cs-faq-group {
    width: 100%;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }

  .cs-faq-item {
    list-style: none;
    background: #fff;
    border-radius: 0.75rem;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.06);
    overflow: hidden;
  }

  .cs-faq-button {
    width: 100%;
    padding: 1.25rem 1.5rem;
    border: none;
    background: transparent;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    text-align: left;
  }

  .cs-faq-question {
    font-size: 1rem;
    font-weight: 700;
    color: var(--headerColor);
    line-height: 1.4em;
  }

  .cs-faq-icon {
    width: 1.5rem;
    height: 1.5rem;
    flex: none;
    position: relative;
  }

  .cs-faq-icon::before,
  .cs-faq-icon::after {
    content: '';
    position: absolute;
    background-color: var(--primary);
    border-radius: 2px;
    transition: transform 0.3s ease;
  }

  .cs-faq-icon::before {
    width: 100%;
    height: 3px;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
  }

  .cs-faq-icon::after {
    width: 3px;
    height: 100%;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
  }

  .cs-faq-button[aria-expanded="true"] .cs-faq-icon::after {
    transform: translateX(-50%) rotate(90deg);
    opacity: 0;
  }

  .cs-faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.3s ease;
    padding: 0 1.5rem;
  }

  .cs-faq-answer p {
    font-size: 0.9375rem;
    line-height: 1.6em;
    color: var(--bodyTextColor);
    margin: 0 0 0.75rem;
  }

  .cs-faq-answer p:last-child {
    margin-bottom: 0;
  }

  .cs-faq-item.active .cs-faq-answer {
    max-height: 25rem;
    padding: 0 1.5rem 1.25rem;
  }
}

/* Dark Mode */
@media only screen and (min-width: 0rem) {
  body.dark-mode #faq {
    background-color: var(--dark);
  }

  body.dark-mode .cs-faq-item {
    background: var(--medium);
  }

  body.dark-mode .cs-faq-question {
    color: #fff;
  }

  body.dark-mode .cs-faq-answer p {
    color: #ccc;
  }

  body.dark-mode .cs-faq-icon::before,
  body.dark-mode .cs-faq-icon::after {
    background-color: var(--accent);
  }
}

/*-- -------------------------- -->
<---         Visit Us          -->
<--- -------------------------- -*/

/* Mobile */
@media only screen and (min-width: 0rem) {
  #visit-us {
    padding: var(--sectionPadding);
    background-color: var(--secondary);
  }

  #visit-us .cs-container {
    width: 100%;
    max-width: 80rem;
    margin: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  #visit-us .cs-content {
    text-align: center;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 2.5rem;
  }

  #visit-us .cs-topper {
    color: var(--bodyTextColorWhite);
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
  }

  #visit-us .cs-title {
    color: var(--bodyTextColorWhite);
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
  }

  .visit-wrapper {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 2rem;
  }

  .visit-map {
    width: 100%;
    height: 18.75rem;
    border-radius: 0.75rem;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  }

  .visit-map-label {
    margin: 0;
    padding: 0.625rem 1rem;
    font-size: 0.875rem;
    font-weight: 700;
    color: #fff;
    background: var(--primary);
    text-align: center;
  }

  .visit-map iframe {
    width: 100%;
    height: calc(100% - 2.375rem);
  }

  .visit-info {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }

  .visit-info-block {
    background: #fff;
    border-radius: 0.75rem;
    padding: 1.5rem;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.06);
  }

  .visit-info-block h3 {
    margin: 0 0 0.5rem;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--headerColor);
  }

  .visit-info-block a {
    color: var(--bodyTextColor);
    text-decoration: none;
    line-height: 1.5em;
    transition: color 0.3s ease;
  }

  .visit-info-block a:hover {
    color: var(--primary);
  }

  .visit-hours {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
  }

  .visit-hours li {
    display: flex;
    justify-content: space-between;
    font-size: 0.9375rem;
    color: var(--bodyTextColor);
    padding: 0.25rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  }

  .visit-hours li:last-child {
    border-bottom: none;
  }

  .visit-hours li span:first-child {
    font-weight: 600;
  }
}

/* Tablet */
@media only screen and (min-width: 48rem) {
  .visit-map {
    height: 25rem;
  }

  .visit-wrapper {
    flex-direction: row;
    align-items: stretch;
  }

  .visit-map {
    flex: 1;
    height: auto;
    min-height: 25rem;
  }

  .visit-info {
    flex: 0 0 18.75rem;
  }
}

/* Desktop */
@media only screen and (min-width: 64rem) {
  .visit-info {
    flex: 0 0 22rem;
  }
}

/* Dark Mode */
@media only screen and (min-width: 0rem) {
  body.dark-mode #visit-us {
    background-color: var(--medium);
  }

  body.dark-mode .visit-info-block {
    background: var(--dark);
  }

  body.dark-mode .visit-info-block h3 {
    color: #fff;
  }

  body.dark-mode .visit-info-block a {
    color: #ccc;
  }

  body.dark-mode .visit-info-block a:hover {
    color: var(--accent);
  }

  body.dark-mode .visit-hours li {
    color: #ccc;
    border-bottom-color: rgba(255, 255, 255, 0.08);
  }
}

/*# sourceMappingURL=local.css.map */
