/*
 * New Canaan Chiropractic – site customizations (loaded after template.css)
 * Brand: #20a7c9 (primary) · #13819e (dark) · #0e5d73 (deep) · #bfe7f1 / #e6f6fa (tints)
 */

/* ---------- Text logo (no logo image – practice name instead) ---------- */
.inner-logo {
  max-width: none;
}

.inner-logo a,
.inner-logo a:hover {
  text-decoration: none;
}

.text-logo {
  display: inline-block;
  font-family: "Poppins", sans-serif;
  font-size: 28px;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: 0.3px;
  color: #13819e;
  white-space: nowrap;
}

footer .logo-footer.text-logo {
  color: #fff;
  font-size: 34px;
  max-width: none;
  white-space: normal;
  text-decoration: none;
}

/* ---------- Request Appointment buttons in the brand colours ---------- */
.top-button {
  background: #20a7c9;
  border: 1px solid #20a7c9;
  color: #fff;
}

.top-button:hover,
.about-block .about-text .top-button:hover,
.about-text .top-button:hover,
.about-text .top-button a:hover {
  background: #fff;
  border-color: #20a7c9;
  color: #20a7c9 !important;
}

.rabutton .buttonrs {
  background: #20a7c9;
}

.rabutton .buttonrs:hover,
.buttonrs:focus {
  color: #13819e;
  background: #fff;
}

.inner-pages a.office-btn-red,
a.office-btn-red {
  background: #20a7c9;
  border-color: #20a7c9;
}

.inner-pages a.office-btn-red:hover,
a.office-btn-red:hover {
  background: #fff;
  color: #20a7c9;
}

.inner-pages a.office-btn-primary,
a.office-btn-primary {
  background: #13819e;
  border-color: #13819e;
}

.inner-pages a.office-btn-primary:hover,
a.office-btn-primary:hover {
  background: #fff;
  color: #13819e;
}

.formTableLayout input#Send:hover,
button#submit:hover,
button#Send:hover {
  border-color: #20a7c9;
}

/* ---------- Request Appointment form: Day of Week / Time of Day dropdowns ---------- */
.formTableLayout select.rsform-select-box {
  min-width: 150px;
  padding: 5px;
  font-family: inherit;
  font-size: inherit;
}

/* ---------- Dr. Williams credentials under his photo (homepage + Our Doctor page) ---------- */
/* .doctors is nowrap in template.css; the longer credentials line has to wrap inside the photo width */
.about-block .doctor a {
  white-space: normal;
}

.inner-pages .doctor .doctor-credentials {
  display: block;
  line-height: 1.3;
}

/* ---------- Homepage section spacing (template had 150px + 100px stacked here) ---------- */
.services-block {
  padding: 50px 0 60px;
}

.middle-socials-block {
  padding: 50px 30px 70px;
}

.middle-socials-block h2 {
  margin-top: 0;
}

/* Back Pain / Neck Pain articles: breathing room before the "Our Location" section */
.duo-articles {
  padding-bottom: 90px;
}

.da-btn {
  margin-top: 25px;
}

/* ---------- Homepage tagline banner ("Your Partner in Better Movement...") ---------- */
.subtext-block {
  background: rgb(235 235 235 / 75%);
  color: #2e2e2e;
}

/* ---------- Reviews: "What Our Patients Are Saying" ---------- */
.reviews-block {
  background: #ebebeb;
  padding: 0;
}

.ncc-reviews {
  max-width: 1500px;
  margin: 0 auto;
  padding: 55px 20px 45px;
  box-sizing: border-box;
}

.reviews-block .ncc-reviews h2 {
  font-family: "Poppins", sans-serif;
  font-size: 40px;
  font-weight: 600;
  color: #2e2e2e;
  text-align: center;
  margin: 0 0 40px;
  padding: 0;
}

.ncc-reviews-slider {
  position: relative;
  padding: 0 30px;
}

.ncc-reviews-swiper .swiper-slide {
  height: auto;
  display: flex;
}

.ncc-review {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.ncc-review-card {
  position: relative;
  flex: 1 1 auto;
  min-height: 250px;
  background: #f5f5f7;
  border-radius: 28px;
  padding: 30px 28px;
  box-sizing: border-box;
}

/* speech-bubble tail */
.ncc-review-card::after {
  content: "";
  position: absolute;
  left: 34px;
  bottom: -12px;
  width: 0;
  height: 0;
  border-top: 13px solid #f5f5f7;
  border-right: 16px solid transparent;
}

.ncc-review-stars {
  display: flex;
  gap: 2px;
  margin-bottom: 12px;
}

.ncc-review-stars svg {
  width: 22px;
  height: 22px;
  fill: #fbbc04;
}

.ncc-review-card p {
  margin: 0;
  font-family: "Poppins", sans-serif;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.5;
  color: #333;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 6;
  line-clamp: 6;
  overflow: hidden;
}

.ncc-review-more {
  display: inline-block;
  font-family: "Poppins", sans-serif;
  font-size: 17px;
  line-height: 1.5;
  color: #1a73e8;
}

.ncc-review-more:hover {
  color: #13819e;
  text-decoration: underline;
}

.ncc-review-author {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 24px 0 0 2px;
  font-family: "Poppins", sans-serif;
  font-size: 17px;
  font-weight: 600;
  color: #1f1f1f;
}

.ncc-review-author img {
  width: 32px;
  height: 32px;
  border-radius: 50%;
}

.ncc-review-author .fa-circle-check {
  color: #1a73e8;
  font-size: 16px;
}

.ncc-reviews-nav {
  position: absolute;
  top: calc(50% - 25px);
  transform: translateY(-50%);
  z-index: 5;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #6d6d6d;
  color: #fff;
  font-size: 15px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgb(0 0 0 / 25%);
  transition: background 0.3s;
}

.ncc-reviews-nav:hover {
  background: #20a7c9;
}

.ncc-reviews-prev {
  left: 0;
}

.ncc-reviews-next {
  right: 0;
}

.ncc-reviews-nav.swiper-button-disabled {
  opacity: 0.35;
  cursor: default;
}

.ncc-reviews-summary {
  text-align: center;
  margin: 30px 0 0;
  font-family: "Poppins", sans-serif;
  font-size: 16px;
}

.ncc-reviews-summary a {
  color: #2e2e2e;
  font-weight: 500;
}

.ncc-reviews-summary a:hover {
  color: #13819e;
}

.ncc-reviews-summary .fa-google {
  color: #20a7c9;
  margin-right: 4px;
}

/* ---------- Homepage office section (Chiro 1 layout) ---------- */
.locations-block {
  background: #e6f6fa url(../images/williams-office-background.jpg) no-repeat center;
  background-size: cover;
  padding: 70px 15px;
}

.locations-block .content {
  display: block;
  padding: 0;
}

.location-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 30px;
  background: rgb(255 255 255 / 88%);
  max-width: 1150px;
  margin: 0 auto;
  padding: 25px 25px 25px 40px;
  border-radius: 14px;
  box-sizing: border-box;
  box-shadow: 0 10px 30px rgb(0 0 0 / 18%);
}

.location-wrap-left {
  flex: 1 1 auto;
}

.our-location-title {
  color: #20a7c9;
  font-family: "Poppins", sans-serif;
  font-size: 42px;
  font-weight: 500;
  margin: 10px 0 20px;
}

.location-info {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 15px;
  margin-bottom: 15px;
}

.location-info-left i {
  color: #13819e;
  font-size: 22px;
  padding: 10px;
  background: #bfe7f1;
  border-radius: 50%;
  width: 26px;
  height: 26px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.location-info-right h3,
.location-info-right .location-info-label {
  margin: 0 0 2px;
  font-family: "Poppins", sans-serif;
  font-size: 19px;
  font-weight: 600;
  color: #2e2e2e;
}

.location-info-right p {
  margin: 0;
  font-weight: 400;
}

.location-info-right a {
  color: #000;
}

.location-info-right a:hover {
  color: #13819e;
}

.location-hours {
  list-style: none;
  margin: 2px 0 0;
  padding: 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.55;
}

.location-hours span {
  display: inline-block;
  min-width: 108px;
  font-weight: 500;
}

.locations-lower-links {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 15px;
  border-top: 1px solid #9ccfdc;
  margin-top: 10px;
}

.locations-lower-links p {
  color: #000;
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-size: 22px;
}

.socials-lower {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
}

.social-lower a {
  color: #13819e;
  font-size: 22px;
  padding: 10px;
  background: #bfe7f1;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 20px;
  width: 20px;
  transition: 0.3s;
}

.social-lower a:hover {
  background: #20a7c9;
  color: #fff;
}

.location-wrap-right {
  flex: 0 0 auto;
  width: 550px;
  height: 460px;
}

.location-wrap-right iframe {
  display: block;
  border-radius: 10px;
}

/* ---------- Services page ---------- */
.services-table {
  width: 100%;
}

.services-table td {
  padding-right: 20px;
}

.services-table td.services-photo {
  width: 38%;
  padding-right: 0;
  vertical-align: top;
}

.services-table td.services-photo img {
  display: block;
  width: 100%;
  border-radius: 10px;
  box-shadow: 0 6px 18px rgb(14 93 115 / 20%);
}

/* ---------- Service detail pages (FM, NET, Nutrition, FSM) ---------- */
.inner-pages img.ncc-service-img {
  width: 40%;
  max-width: 420px !important;
  border-radius: 8px;
}

.ncc-service h2,
.ncc-service h3 {
  color: #13819e;
  font-family: "Poppins", sans-serif;
  font-size: 26px;
  font-weight: 600;
  margin: 28px 0 10px;
}

.ncc-service > h2:first-child,
.ncc-service > h3:first-child {
  margin-top: 0;
}

/* SEO subheadings made from the bold labels on Services and New Patients */
.com-content-article__body h2.ncc-subheading {
  color: #13819e;
  font-family: "Poppins", sans-serif;
  font-size: 24px;
  font-weight: 600;
  margin: 28px 0 10px;
}

.com-content-article__body h3.ncc-subheading {
  color: #2e2e2e;
  font-family: "Poppins", sans-serif;
  font-size: 20px;
  font-weight: 600;
  margin: 20px 0 10px;
}

.ncc-service ul {
  overflow: hidden;
}

.ncc-service li {
  margin-bottom: 4px;
}

.ncc-service-video {
  clear: both;
  max-width: 800px;
  margin: 10px 0 20px;
}

.ncc-service-video iframe {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: 8px;
}

/* ---------- New Patients ---------- */
.np-btn,
.np-btn:hover {
  border-color: #20a7c9;
}

.np-btn.np-btn-wide {
  display: inline-block;
  max-width: none;
  font-size: 20px;
  padding: 12px 26px;
  margin: 5px 0 10px;
}

.np-btn.np-btn-wide:hover {
  color: #20a7c9 !important;
}

/* body text is Poppins Light, so <strong> alone only reaches Regular */
.inner-pages .np-bold strong {
  font-weight: 600;
}

/* ---------- Office page: Get In Touch (hours and contact side by side) ---------- */
.office-info-grid {
  gap: 40px;
}

/* New Patients: section titles (Patient Forms, Payment and Insurance Information, Accepted Insurances:) */
.page-new-patients .inner-pages strong {
  font-weight: 600;
}

/* Office: and Fax: lines share the blue used for the office phone link */
.contact-block .coloredtext.semi::before {
  content: "Office: ";
}

.contact-block .coloredtext,
.ncc-fax {
  color: #20a7c9;
}

.ncc-fax {
  font-weight: 600;
}

.ncc-hours {
  display: grid;
  grid-template-columns: max-content max-content;
  column-gap: 18px;
  row-gap: 8px;
  margin: 6px 0 0;
}

.ncc-hours dt,
.ncc-hours dd {
  margin: 0;
  line-height: 1.5;
}

.ncc-directions {
  margin-top: 14px;
}

.inner-pages a.ncc-directions-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* ---------- Office page picture reel (text first, then photos - Dr. Ferrin layout) ---------- */
.ncc-reel {
  position: relative;
  margin: 30px 0 10px;
}

.ncc-reel-track {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: 4px 4px 14px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: #20a7c9 #e6f6fa;
}

.ncc-reel-track::-webkit-scrollbar { height: 8px; }
.ncc-reel-track::-webkit-scrollbar-track { background: #e6f6fa; border-radius: 4px; }
.ncc-reel-track::-webkit-scrollbar-thumb { background: #20a7c9; border-radius: 4px; }

/* all photos fit - centre them and drop the arrows */
.ncc-reel.is-static .ncc-reel-track { justify-content: center; }
.ncc-reel.is-static .ncc-reel-nav { display: none; }

.ncc-reel-item {
  flex: 0 0 calc((100% - 32px) / 3);
  scroll-snap-align: start;
  margin: 0;
}

.ncc-reel-item img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgb(14 93 115 / 18%);
}

.ncc-reel-nav {
  position: absolute;
  top: calc(50% - 7px);
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: #13819e;
  color: #fff;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgb(0 0 0 / 25%);
  transition: background 0.3s, transform 0.3s;
  z-index: 2;
}

.ncc-reel-nav:hover { background: #20a7c9; transform: translateY(-50%) scale(1.08); }
.ncc-reel-nav:focus-visible { outline: 3px solid #bfe7f1; outline-offset: 2px; }
.ncc-reel-prev { left: -14px; }
.ncc-reel-next { right: -14px; }

/* ---------- Chiropractic Video Library ---------- */
.ncc-vl {
  margin: 10px 0 30px;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 14px rgb(14 93 115 / 20%);
}

.ncc-vl-head {
  background: #20a7c9;
  color: #fff;
  font-size: 20px;
  font-weight: 600;
  padding: 14px 20px;
  margin: 0;
}

.ncc-vl-body {
  display: flex;
  align-items: stretch;
  background: #0e5d73;
}

.ncc-vl-list {
  list-style: none;
  margin: 0;
  padding: 0;
  flex: 0 0 300px;
  max-height: 566px;
  overflow-y: auto;
  background: #0e5d73;
}

.ncc-vl-item {
  display: block;
  width: 100%;
  text-align: left;
  background: none;
  border: 0;
  border-bottom: 1px solid rgb(255 255 255 / 12%);
  color: #e6f6fa;
  font-size: 15px;
  line-height: 1.35;
  padding: 12px 18px;
  cursor: pointer;
  transition: background 0.25s, color 0.25s;
  font-family: inherit;
}

.ncc-vl-item:hover {
  background: #13819e;
  color: #fff;
}

.ncc-vl-item.is-active {
  background: #bfe7f1;
  color: #0e5d73;
  font-weight: 600;
}

.ncc-vl-item:focus-visible {
  outline: 3px solid #bfe7f1;
  outline-offset: -3px;
}

.ncc-vl-player {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
  min-width: 0;
}

.ncc-vl-player video {
  width: 100%;
  height: 100%;
  max-height: 566px;
  display: block;
  background: #000;
}

/* ---------- Responsive ---------- */
@media only screen and (max-width: 1450px) {
  .text-logo {
    font-size: 24px;
  }
}

@media only screen and (max-width: 1300px) {
  .text-logo {
    font-size: 21px;
  }
}

@media only screen and (max-width: 1190px) {
  .text-logo {
    font-size: 26px;
  }
}

@media only screen and (max-width: 1150px) {
  .location-wrap {
    flex-direction: column;
    max-width: 620px;
    padding: 20px;
  }

  .location-wrap-right {
    width: 100%;
    height: 380px;
  }
}

@media only screen and (max-width: 1100px) {
  .services-block {
    padding: 50px 0;
  }

  .middle-socials-block {
    padding: 30px 15px;
  }

  .duo-articles {
    padding-bottom: 50px;
  }

  .reviews-block {
    background: #ebebeb;
    padding: 0;
  }

  .locations-block {
    display: block;
    margin-top: 0;
    padding: 50px 15px;
  }

  .about-text .top-button {
    background: #13819e;
    border-color: #fff;
  }

  /* about block turns #20a7c9 here - inline text links (services, phone) need white to stay readable */
  .about-block .about-text a:not(.top-button) {
    color: #fff;
    text-decoration: underline;
  }
}

@media only screen and (max-width: 1000px) {
  .ncc-reel-item {
    flex-basis: calc((100% - 16px) / 2);
  }
}

@media only screen and (max-width: 930px) {
  .services-table td.services-photo {
    width: auto;
    padding-top: 15px;
  }

  .services-table td.services-photo img {
    max-width: 480px;
  }
}

@media only screen and (max-width: 860px) {
  .ncc-vl-body {
    flex-direction: column;
  }

  .ncc-vl-list {
    flex-basis: auto;
    max-height: 260px;
    order: 2;
  }

  .ncc-vl-player {
    order: 1;
  }

  .ncc-vl-player video {
    max-height: 300px;
  }
}

@media only screen and (max-width: 767px) {
  .reviews-block .ncc-reviews h2 {
    font-size: 28px;
    margin-bottom: 25px;
  }

  .our-location-title {
    font-size: 30px;
  }

  .com-content-article__body h2.ncc-subheading {
    font-size: 21px;
  }

  .com-content-article__body h3.ncc-subheading {
    font-size: 18px;
  }

  .ncc-reel-item {
    flex-basis: 100%;
  }

  .ncc-reel-nav {
    width: 38px;
    height: 38px;
    font-size: 17px;
  }

  .ncc-reel-prev {
    left: -6px;
  }

  .ncc-reel-next {
    right: -6px;
  }

  .locations-lower-links p {
    font-size: 19px;
  }

  footer .logo-footer.text-logo {
    font-size: 26px;
    padding: 30px 0 15px;
  }
}

@media only screen and (max-width: 730px) {
  .inner-pages img.ncc-service-img {
    width: 100%;
    max-width: 100% !important;
  }
}

@media only screen and (max-width: 650px) {
  .locations-lower-links {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }

  .location-wrap-right {
    height: 320px;
  }
}

@media only screen and (max-width: 580px) {
  .text-logo {
    font-size: 21px;
    white-space: normal;
    text-align: center;
  }
}
