﻿/* Color-only theme. Existing fonts, sizing, spacing, layout, and interactions are unchanged. */
:root {
  --color-white: #FFFFFF;
  --color-heading: #111111;
  --color-text: #4B5563;
  --color-primary: #007F8B;
  --color-hover: #006570;
  --color-ivory: #F7F5F0;
  --color-border: #E2E8E8;
  --color-footer: #104C50;
  --cream: var(--color-white);
  --paper: var(--color-ivory);
  --sage: var(--color-primary);
  --deep: var(--color-footer);
  --ink: var(--color-text);
  --muted: var(--color-text);
  --line: var(--color-border);
  --rose: var(--color-primary);
  --rose-hover: var(--color-hover);
  --sand: var(--color-ivory);
  --heading-color: var(--color-heading);
  --action-color: var(--color-primary);
  --action-hover-color: var(--color-hover);
  --action-text-color: var(--color-white);
  --med-purple: var(--color-primary);
  --med-purple-dark: var(--color-hover);
  --med-ink: var(--color-heading);
  --med-muted: var(--color-text);
  --med-line: var(--color-border);
  --med-soft: var(--color-ivory);
  --med-shadow: 0 18px 50px rgb(16 76 80 / 8%);
}
body, body main, body :is(.med-home,.local-journal,.contact-page,.contact-message,.pain-hero,.schedule-choice-section,.service-pricing,.service-hero) {
  background: var(--color-white); color: var(--color-text);
}
body :is(h1,h2,h3,h4), body main#main :is(h1,h2,h3,h4), body .cta h2 { color: var(--color-heading) !important; }
body main#main :is(p,li,dd,blockquote) { color: var(--color-text); }
body :is(a,.text-link,.source-link,.med-text-link,.service-price-more) { color: var(--color-primary); }
body a:hover { color: var(--color-hover); }
body :is(.eyebrow,.med-eyebrow,.service-kicker,.schedule-choice-kicker,.lj-label) { color: var(--color-primary) !important; }
body :is(a,button,input,textarea,select,summary):focus-visible { outline-color: var(--color-primary) !important; }
::selection { background: var(--color-footer); color: var(--color-white); }
body :is(.pillars,.studio,.values,.eesystem-prep-banner,.lj-perspective,.contact-info-panel,.schedule-choice-card,.soft-section,.contact-location,.pain-treatment,.cta,.faq-list,.photo-frame,.evidence-label) {
  background: var(--color-ivory); color: var(--color-text);
}
body :is(.med-profile-card,.med-trust-grid article,.pain-type-card,.light-tech-grid article,.service-price-card,.contact-options article,.evidence-card,.med-testimonial-card) {
  background: var(--color-white); border-color: var(--color-border);
}
body :is(.pain-type-card>span,.med-trust-grid>article>span,.med-trust-mini-stat,.med-trust-person img,.home-blog-card img) { background: var(--color-ivory); color: var(--color-primary); }
body :is(.heart-warning,.heart-source-note) { background: var(--color-ivory); color: var(--color-text) !important; border-color: var(--color-border); }
body .pain-treatment :is(strong,small) { color: var(--color-text); }
body .pain-type-card p strong { color: var(--color-heading); }
body :is(.button,.home-blog-button,.service-price-cta,.lj-read,.therapist-showcase-link,.space-showcase-link,.clinic-intro-link,.eesystem-prep-copy>a),
body .site-header .header-book {
  background: var(--color-primary) !important; color: var(--color-white) !important; border-color: var(--color-primary) !important;
}
body :is(.button,.home-blog-button,.service-price-cta,.lj-read,.therapist-showcase-link,.space-showcase-link,.clinic-intro-link,.eesystem-prep-copy>a):hover,
body .site-header .header-book:hover { background: var(--color-hover) !important; color: var(--color-white) !important; border-color: var(--color-hover) !important; }
body :is(.button.secondary,.button.outline,.filter) { background: var(--color-white) !important; color: var(--color-primary) !important; border-color: var(--color-primary) !important; }
body :is(.button.secondary,.button.outline,.filter):hover, body .filter[aria-pressed="true"] { background: var(--color-hover) !important; color: var(--color-white) !important; border-color: var(--color-hover) !important; }
body :is(.menu-toggle,.round-button,.team-duo-controls button) { background: var(--color-white) !important; color: var(--color-primary) !important; border-color: var(--color-primary) !important; }
body :is(.menu-toggle,.round-button,.team-duo-controls button):hover { background: var(--color-hover) !important; color: var(--color-white) !important; border-color: var(--color-hover) !important; }
body .site-header, body .site-header:is(.scrolled,.on-hero) { background: var(--color-white) !important; color: var(--color-text) !important; }
body .site-header .desktop-nav { color: var(--color-text) !important; }
body :is(.desktop-nav,.mobile-nav) a[aria-current="page"] { color: var(--color-primary); }
body .mobile-nav { background: var(--color-white) !important; color: var(--color-text); }
body .med-hero-panel { background: var(--color-white) !important; }
body .med-hero-panel:after { background: var(--color-ivory); }
body .med-chip-icon { border-color: var(--color-border); color: var(--color-primary); }
body .med-stars, body .med-rating-row .med-stars { color: var(--color-primary); }
body .med-service-card[class] { --card-ink: var(--color-heading); border-color: var(--color-border); }
body .med-service-card.mint { --card-bg: #E7F4F2; --card-head: #00727C; }
body .med-service-card.sand { --card-bg: #F7F0E5; --card-head: #8A5A24; }
body .med-service-card.cyan { --card-bg: #E5F2F4; --card-head: #256873; }
body .med-service-card.rose { --card-bg: #F7EAE9; --card-head: #9B4D52; }
body .med-service-card.lavender { --card-bg: #EFEDF4; --card-head: #62577E; }
body .med-service-card.pink { --card-bg: #F5EBF0; --card-head: #81526A; }
body main#main .med-service-card p { color: var(--color-text); }
body main#main .med-service-card:hover h3, body main#main .med-service-card:focus-visible h3 { color: var(--color-white) !important; }
body .cta-wrap, body .cta { background: var(--color-ivory); }
body .form-field :is(input,textarea,select) { border-color: var(--color-border); color: var(--color-heading); }
body .form-field label { color: var(--color-text); }
body .form-field :is(input,textarea)::placeholder { color: var(--color-text); }
body .check-label input { accent-color: var(--color-primary); }
body .contact-banner { background: var(--color-footer); }
body .contact-banner:after { background: linear-gradient(90deg, rgb(16 76 80 / 92%), rgb(16 76 80 / 60%)); }
body main#main .contact-banner :is(h1,p), body main#main .image-quote h2 { color: var(--color-white) !important; }
body.services-page .service-hero .text-link { color: var(--color-primary); }
body .service-price-card:is(:hover,:focus-within) { background: var(--color-ivory); border-color: var(--color-primary); }
body.services-page main#main .service-price-card:is(:hover,:focus-within) :is(h3,.service-price-description,.service-price-amount,.service-price-note) { color: var(--color-text); }
body .service-price-more { color: var(--color-primary) !important; }
body .site-footer { background: var(--color-footer); }
body .site-footer :is(p,a,span) { color: var(--color-white); }
body .site-footer a:hover { color: var(--color-white); }
body .site-footer :is(a,button):focus-visible { outline-color: var(--color-white) !important; }
body main#main :is(.lj-feature-copy,.lj-perspective,.contact-location,.schedule-choice-card) :is(.eyebrow,.lj-label,.schedule-choice-kicker),
body .contact-location :is(dt,a), body .faq-list a, body .heart-source-note a, body .pain-type-card>span, body .evidence-label { color: var(--color-hover) !important; }
/* Keep the in-centre option readable on a clean white card. */
body .schedule-choice-card-centre {
  background: var(--color-white);
  color: var(--color-text);
  border: 1px solid var(--color-border);
}
body .schedule-choice-card-centre::before,
body .schedule-choice-card-centre::after { display: none; }
body main#main .schedule-choice-card-centre :is(p,li) { color: var(--color-text); }
body main#main .schedule-choice-card-centre .schedule-choice-kicker { color: var(--color-primary) !important; }

/* A restrained heading scale keeps short titles on one line where space allows. */
body main#main h1 {
  font-size: var(--type-title) !important;
  line-height: 1.08 !important;
  overflow-wrap: normal;
  text-wrap: pretty;
}
body main#main h2, body .cta h2 {
  font-size: var(--type-section) !important;
  line-height: 1.14 !important;
  overflow-wrap: normal;
  text-wrap: pretty;
}
body main#main h3 {
  font-size: var(--type-card) !important;
  line-height: 1.22 !important;
  overflow-wrap: normal;
  text-wrap: pretty;
}
body .med-section-head { max-width: 60rem; }
body main#main :is(.med-trust-content,.pain-hero,.pain-assessment,.pain-type-card,.eesystem-heading,.eesystem-overview-copy,.home-health-copy) :is(h1,h2,h3) {
  max-width: none;
}
body main#main .med-hero h1 {
  font-size: clamp(2.65rem, 4vw, 3.35rem) !important;
  max-width: none !important;
}
body main#main .pain-hero h1 {
  font-size: clamp(2.35rem, 3.1vw, 2.65rem) !important;
}
@media (min-width: 70rem) {
  body .pain-hero-grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(22rem, .65fr);
  }
}

/* Dark testimonial band with readable, elevated content cards. */
body .med-testimonials {
  max-width: none;
  background: var(--color-footer);
  color: var(--color-white);
}
body main#main .med-testimonials .med-section-head h2 {
  color: var(--color-white) !important;
}
body main#main .med-testimonials .med-eyebrow {
  color: #7AD5DC !important;
}
body .med-testimonials .med-testimonial-card {
  background: #173F43;
  border-color: #35686C;
  box-shadow: 0 18px 42px rgb(0 0 0 / 18%);
  transition: transform .24s ease, background-color .24s ease, border-color .24s ease, box-shadow .24s ease;
}
body .med-testimonials .med-testimonial-card:is(:hover,:focus-within,:active) {
  transform: translateY(-.4rem);
  background: #1D4B4F;
  border-color: #7AD5DC;
  box-shadow: 0 24px 48px rgb(0 0 0 / 28%);
}
body main#main .med-testimonials .med-testimonial-card blockquote,
body main#main .med-testimonials .med-testimonial-card strong {
  color: var(--color-white) !important;
}
body main#main .med-testimonials .med-testimonial-card span {
  color: #C3D7D8 !important;
}
body .med-testimonials .med-stars { color: #7AD5DC; }
body .med-testimonials .med-person img { border: 2px solid #7AD5DC; }

/* Consistent outer gutters for every homepage section between the hero and FAQ. */
body main#main.med-home {
  --home-section-gutter: clamp(.75rem, 2vw, 2rem);
  --home-section-padding: clamp(1rem, 3vw, 3.5rem);
}
body main#main.med-home > :is(.home-experience-banner,.med-services,.med-trust,.med-team,.med-testimonials,.home-blog-section) {
  width: calc(100% - (2 * var(--home-section-gutter)));
  max-width: 107.5rem !important;
  margin-inline: auto;
  padding-inline: var(--home-section-padding);
}
/* Dark bands run edge-to-edge; their padding keeps the content on the site grid. */
body main#main.med-home > :is(.home-experience-banner,.med-testimonials) {
  width: 100%;
  max-width: none !important;
  margin-inline: 0;
}
body main#main.med-home > .home-blog-section .home-blog-layout {
  max-width: none;
}

/* Dark visual bridge between the homepage hero and service content. */
body .home-experience-banner {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(18rem,.38fr) minmax(0,1.62fr);
  align-items: center;
  gap: clamp(1.5rem,2vw,2.5rem);
  overflow: hidden;
  margin-top: clamp(1.5rem,2vw,2rem);
  padding-block: clamp(2.25rem,4vw,4rem);
  border-radius: 0;
  background: var(--color-footer);
  color: var(--color-white);
}
body .home-experience-banner:before {
  content: '';
  position: absolute;
  z-index: -1;
  width: 18rem;
  aspect-ratio: 1;
  left: -8rem;
  bottom: -11rem;
  border: 1px solid rgb(122 213 220 / 25%);
  border-radius: 50%;
}
body .home-experience-banner-copy {
  min-width: 0;
  max-width: 35rem;
}
body .home-experience-banner-copy > span {
  display: block;
  margin-bottom: .75rem;
  color: #7AD5DC;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
body main#main .home-experience-banner-copy h2 {
  max-width: 12ch;
  color: var(--color-white) !important;
  font-size: clamp(2rem,3.5vw,3.5rem) !important;
  font-weight: 850;
  line-height: 1.05 !important;
  letter-spacing: -.025em;
}
body main#main .home-experience-banner-copy > p {
  max-width: 34rem;
  margin-top: 1rem;
  color: var(--color-white) !important;
  font-size: .98rem;
  line-height: 1.7;
  opacity: .82;
}
body .home-experience-points {
  display: grid;
  gap: .5rem;
  margin-top: 1.25rem;
  padding: 0;
  list-style: none;
}
body .home-experience-banner-copy > h2 + .home-experience-points {
  gap: .65rem;
  margin-top: 1.5rem;
}
body .home-experience-points li {
  position: relative;
  padding-left: 1.35rem;
  color: #EAF4F4 !important;
  font-size: .88rem;
  font-weight: 700;
  line-height: 1.45;
}
body .home-experience-points li:before {
  content: '';
  position: absolute;
  left: 0;
  top: .4rem;
  width: .55rem;
  height: .55rem;
  border-radius: 50%;
  background: #7AD5DC;
  box-shadow: 0 0 0 .2rem rgb(122 213 220 / 13%);
}
body .home-experience-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .8rem 1.2rem;
  margin-top: 1.5rem;
}
body .home-experience-actions .button {
  min-height: 2.75rem;
  padding: .75rem 1.15rem;
  border-color: #7AD5DC !important;
  background: #7AD5DC !important;
  color: #071F27 !important;
  box-shadow: none;
}
body .home-experience-actions .button:hover {
  border-color: var(--color-white) !important;
  background: var(--color-white) !important;
  color: #071F27 !important;
}
body .home-experience-link {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  gap: .4rem;
  color: var(--color-white) !important;
  font-size: .88rem;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: .28em;
}
body .home-experience-link:hover {
  color: #7AD5DC !important;
}
body .home-experience-banner-gallery {
  display: grid;
  grid-template-columns: minmax(0,1.35fr) minmax(0,.8fr);
  grid-template-rows: repeat(2,minmax(8rem,10rem));
  gap: .75rem;
  min-width: 0;
}
body .home-experience-banner-gallery figure {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgb(255 255 255 / 16%);
  border-radius: .85rem;
  background: #173F43;
}
body .home-experience-banner-gallery .home-experience-banner-main { grid-row: 1 / 3; }
body .home-experience-banner-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}
body .home-experience-banner-gallery figure:hover img { transform: scale(1.025); }

/* Refined site footer: original content and links are unchanged. */
body .site-footer {
  position: relative;
  overflow: hidden;
  padding: clamp(3.5rem,6vw,6rem) 0 2rem;
  border-top: .35rem solid #7AD5DC;
  background:
    radial-gradient(circle at 82% 8%,rgb(122 213 220 / 14%),transparent 25rem),
    linear-gradient(140deg,#061C24 0%,#0A3036 52%,#0D4247 100%);
}
body .site-footer .container { position: relative; }
body .site-footer .footer-top {
  grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr);
  gap: clamp(2rem,5vw,5rem);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
body .site-footer .footer-title {
  margin-bottom: 1.25rem;
  color: #7AD5DC !important;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .16em;
}
body .site-footer .footer-links { gap: .15rem 2rem; }
body .site-footer .footer-links a {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  width: fit-content;
  color: #F5FAFA;
  transition: color .2s ease,transform .2s ease;
}
body .site-footer .footer-links a:hover {
  color: #7AD5DC;
  text-decoration: none;
  transform: translateX(.2rem);
}
body .site-footer .footer-news {
  padding-left: clamp(1.5rem,3vw,3rem);
  border-left: 1px solid rgb(122 213 220 / 20%);
}
body .site-footer .footer-news p { color: #C7DADB; }
body .site-footer .footer-news .text-link {
  color: #7AD5DC;
  border-color: #7AD5DC;
}
body .site-footer .footer-brand { margin: clamp(3rem,5vw,4.5rem) 0 1.5rem; }
body .site-footer .footer-brand:before,
body .site-footer .footer-brand:after { background: rgb(122 213 220 / 25%); }
body .site-footer .footer-note { color: #F5FAFA; }
body .site-footer .wellness-note { color: #B8CDCF; }
body .site-footer .footer-bottom {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgb(122 213 220 / 18%);
  color: #B8CDCF;
}

@media (max-width: 47.99rem) {
  body main#main h1 { font-size: clamp(2.15rem, 10vw, 3rem) !important; }
  body main#main h2, body .cta h2 { font-size: clamp(1.7rem, 7vw, 2.35rem) !important; }
  body main#main h3 { font-size: clamp(1.15rem, 5vw, 1.45rem) !important; }
  body main#main .med-hero h1 { font-size: clamp(2.15rem, 9vw, 2.7rem) !important; }
  body main#main .pain-hero h1 { font-size: clamp(2rem, 8.5vw, 2.5rem) !important; }
  body .home-experience-banner { grid-template-columns: 1fr; }
  body main#main .home-experience-banner-copy h2,
  body main#main .home-experience-banner-copy > p { max-width: none; }
  body .home-experience-banner-gallery {
    grid-template-columns: repeat(2,minmax(0,1fr));
    grid-template-rows: minmax(11rem,45vw) minmax(7rem,30vw);
  }
  body .home-experience-banner-gallery .home-experience-banner-main {
    grid-column: 1 / -1;
    grid-row: auto;
  }
  body .site-footer .footer-top { grid-template-columns: 1fr; }
  body .site-footer .footer-links {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: .15rem 1rem;
  }
  body .site-footer .footer-links a {
    width: 100%;
    min-height: 2.75rem;
    overflow-wrap: anywhere;
  }
  body .site-footer .footer-news {
    padding: 1.75rem 0 0;
    border-top: 1px solid rgb(122 213 220 / 20%);
    border-left: 0;
  }
}

@media (max-width: 22rem) {
  body .site-footer .footer-links { grid-template-columns: 1fr; }
}

/* Dark site-wide navigation: logo left, links centered, booking action right. */
body .site-header,
body .site-header:is(.on-hero,.scrolled),
body.menu-open .site-header {
  height: 80px !important;
  background: var(--color-footer) !important;
  color: var(--color-white) !important;
  box-shadow: 0 8px 24px rgb(7 31 39 / 18%) !important;
}
body .site-header .header-inner { max-width: 1680px !important; }
body .site-header .brand-logo {
  height: 46px !important;
  width: auto;
  filter: brightness(0) invert(1);
}
body .site-header .desktop-nav,
body .site-header .desktop-nav a { color: var(--color-white) !important; }
body .site-header .desktop-nav a:after { background: #7AD5DC !important; }
body .site-header .desktop-nav a:is(:hover,:focus-visible),
body .site-header .desktop-nav a[aria-current="page"] { color: #7AD5DC !important; }
body .site-header .header-book,
body .site-header:is(.on-hero,.scrolled) .header-book {
  min-height: 46px;
  padding: .75rem 1.25rem !important;
  border: 1px solid var(--color-white) !important;
  background: var(--color-white) !important;
  color: var(--color-footer) !important;
  box-shadow: none !important;
  font-size: .8rem !important;
}
body .site-header .header-book:is(:hover,:focus-visible) {
  border-color: #A8E5E9 !important;
  background: #A8E5E9 !important;
  color: #06272C !important;
}
body .site-header .menu-toggle,
body .site-header .menu-toggle:hover {
  border-color: rgb(255 255 255 / 70%) !important;
  background: transparent !important;
  color: var(--color-white) !important;
}
body .site-header .menu-toggle span { background: currentColor !important; }

@media (min-width: 70rem) {
  html { scroll-padding-top: 96px; }
  body .site-header,
  body .site-header:is(.on-hero,.scrolled),
  body.menu-open .site-header { height: 96px !important; }
  body .site-header .header-inner {
    display: grid !important;
    grid-template-columns: minmax(12rem,1fr) auto minmax(12rem,1fr) !important;
    gap: clamp(1.5rem,3vw,4rem) !important;
  }
  body .site-header .brand {
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-self: start !important;
  }
  body .site-header .brand-logo { height: 58px !important; }
  body .site-header .desktop-nav {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: center !important;
    gap: clamp(1.75rem,2.5vw,2.5rem) !important;
    font-size: 1rem !important;
  }
  body .site-header .desktop-nav a { min-height: 52px !important; }
  body .site-header .header-book,
  body .site-header:is(.on-hero,.scrolled) .header-book {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    margin: 0 !important;
    min-height: 50px;
    padding: .8rem 1.6rem !important;
    font-size: .92rem !important;
  }
  body main#main.med-home > .med-hero { padding-top: 96px !important; }
}

@media (max-width: 69.99rem) {
  html { scroll-padding-top: 80px; }
  body .site-header .header-inner {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto auto !important;
  }
  body .mobile-nav:not([hidden]) {
    top: 80px;
    background: var(--color-footer) !important;
    color: var(--color-white) !important;
  }
  body .mobile-nav:not([hidden]) > a { color: var(--color-white) !important; }
  body .mobile-nav:not([hidden]) > a:is(:hover,:focus-visible),
  body .mobile-nav:not([hidden]) > a[aria-current="page"] { color: #7AD5DC !important; }
  body .mobile-nav:not([hidden]) > .button {
    border-color: var(--color-white) !important;
    background: var(--color-white) !important;
    color: var(--color-footer) !important;
  }
}

/* Reference-style footer: preserve the site's original dark teal background. */
body .site-footer.footer-reference {
  padding: 0;
  background: var(--color-footer);
  color: #fff;
}
body .footer-reference .container { max-width: 1680px; }
body .footer-reference-grid {
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(14rem,.7fr) minmax(18rem,1fr);
  align-items: center;
  gap: clamp(3rem,7vw,8rem);
  min-height: 35rem;
  padding-block: clamp(4rem,7vw,7rem) clamp(3rem,5vw,5rem);
}
body .footer-reference-callout h2 {
  margin: 0;
  color: #fff !important;
  font-family: var(--sans);
  font-size: clamp(3.25rem,5.4vw,5.75rem);
  font-weight: 300;
  letter-spacing: -.035em;
  line-height: .98;
}
body .footer-reference-callout h2 span { display: block; }
body .footer-reference-book {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: min(100%,23rem);
  min-height: 4.5rem;
  margin-top: 2.25rem;
  padding: 1rem 2rem;
  border-radius: 999px;
  background: #7ad5dc;
  color: #06272c !important;
  font-size: clamp(1rem,1.35vw,1.25rem);
  font-weight: 700;
  text-align: center;
  transition: background-color .2s ease,transform .2s ease;
}
body .footer-reference-book span { color: inherit !important; }
body .footer-reference-book:hover,
body .footer-reference-book:focus-visible {
  background: #a8e5e9;
  color: #06272c !important;
  transform: translateY(-2px);
}
body .footer-reference-nav {
  display: grid;
  justify-items: start;
  gap: 1.65rem;
}
body .footer-reference-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  color: #fff;
  font-size: clamp(1.05rem,1.5vw,1.45rem);
  font-weight: 400;
}
body .footer-reference-nav a:hover { color: #fff; }
body .footer-reference-brand { min-width: 0; text-align: center; }
body .footer-reference-brand > a { display: inline-flex; justify-content: center; width: 100%; }
body .footer-reference-brand img {
  width: min(100%,24rem);
  height: auto;
  filter: brightness(0) invert(1);
}
body .footer-reference-brand address {
  display: grid;
  justify-items: stretch;
  gap: .55rem;
  width: max-content;
  max-width: 100%;
  margin: 1.75rem auto 0;
  color: #b8cdcf;
  font-size: clamp(.9rem,1.15vw,1.05rem);
  font-style: normal;
  line-height: 1.45;
}
body .footer-reference-brand address span,
body .footer-reference-brand address a { color: #b8cdcf; }
body .footer-reference-brand address a:hover { color: #fff; }
body .footer-reference-brand .footer-reference-contact-row {
  display: grid;
  grid-template-columns: 1.4rem minmax(0,auto);
  align-items: center;
  justify-content: start;
  gap: .7rem;
  width: 100%;
  min-height: 2.25rem;
  color: #b8cdcf;
  text-decoration: none;
}
body .footer-reference-brand .footer-reference-contact-icon {
  display: grid;
  place-items: center;
  width: 1.4rem;
  height: 1.4rem;
  color: #7ad5dc;
}
body .footer-reference-brand .footer-reference-contact-icon svg { width: 1.15rem; height: 1.15rem; }
body .footer-reference-brand .footer-reference-contact-row > :last-child { min-width: 0; overflow-wrap: anywhere; }
body .footer-reference-brand .footer-reference-facebook {
  border: 0;
  background: transparent;
  text-decoration: none;
}
body .footer-reference-brand .footer-reference-facebook:hover { color: #fff; }
body .footer-reference-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 1.5rem 0 2.5rem;
  border-top: 1px solid rgb(255 255 255 / 18%);
  color: #b8cdcf;
  font-size: .85rem;
}
body .footer-reference-bottom p { color: #b8cdcf !important; }
body .footer-reference-bottom > div { display: flex; align-items: center; justify-content: flex-end; gap: 1.5rem; }
body .footer-reference-bottom :is(span,a) { color: #b8cdcf; }
body .footer-reference-bottom a { display: inline-flex; align-items: center; min-height: 2.75rem; }
body .footer-reference-bottom a:hover { color: #fff; }

/* Every footer text link uses the same bright hover/focus treatment. */
body .footer-reference :is(.footer-reference-nav a,.footer-reference-contact-row,.footer-reference-bottom a):is(:hover,:focus-visible,:active),
body .footer-reference :is(.footer-reference-nav a,.footer-reference-contact-row,.footer-reference-bottom a):is(:hover,:focus-visible,:active) span {
  color: #fff !important;
}

@media (max-width: 69.99rem) {
  body .footer-reference-grid {
    grid-template-columns: minmax(0,1fr) minmax(12rem,.65fr);
    gap: 3rem;
    min-height: 0;
  }
  body .footer-reference-brand { grid-column: 1 / -1; padding-top: 3rem; border-top: 1px solid rgb(255 255 255 / 18%); }
  body .footer-reference-brand img { width: min(100%,21rem); }
}
@media (max-width: 47.99rem) {
  body .footer-reference-grid { grid-template-columns: 1fr; gap: 3.5rem; padding-block: 4rem 3rem; }
  body .footer-reference-callout h2 { font-size: clamp(3.2rem,16vw,4.5rem); }
  body .footer-reference-book { width: 100%; min-width: 0; min-height: 3.75rem; }
  body .footer-reference-nav { gap: .65rem; }
  body .footer-reference-nav a { width: 100%; border-bottom: 1px solid rgb(255 255 255 / 14%); }
  body .footer-reference-brand { grid-column: auto; padding-top: 3rem; }
  body .footer-reference-brand img { width: min(100%,18rem); }
  body .footer-reference-bottom { align-items: flex-start; flex-direction: column; gap: .75rem; padding-bottom: 2rem; }
  body .footer-reference-bottom > div { justify-content: flex-start; flex-wrap: wrap; gap: 0 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  body .home-experience-banner-gallery img,
  body .site-footer .footer-links a,
  body .med-testimonials .med-testimonial-card { transition: none; }
}

/* Site-wide responsive consistency pass. */
:root {
  --ui-radius: .75rem;
  --ui-radius-large: 1rem;
  --ui-control-height: 2.75rem;
  --ui-mobile-gutter: clamp(1.125rem, 5vw, 1.5rem);
  --ui-mobile-section: clamp(3.5rem, 12vw, 4.75rem);
}

html, body { max-width: 100%; }
body { overflow-x: clip; }
body main#main :is(h1,h2,h3) { text-wrap: balance; }
body main#main :is(p,li,blockquote) { text-wrap: pretty; }
body main#main .home-blog-card h3 { color: #fff !important; }
body main#main .home-blog-card .home-blog-overlay > p { color: rgb(255 255 255 / 86%) !important; }

body :is(.button,.home-blog-button,.service-price-cta,.filter,.round-button,.team-arrow,.visitor-arrow) {
  min-height: var(--ui-control-height);
}
body .button.outline { min-height: var(--ui-control-height); }
body :is(.button,.home-blog-button,.service-price-cta,.filter) { border-radius: .5rem; }
body :is(.med-service-card,.med-testimonial-card,.med-profile-card,.service-price-card,.pain-type-card,.evidence-card,.contact-options article,.lj-feature-layout) {
  border-radius: var(--ui-radius);
}
body :is(.form-field input,.form-field select,.form-field textarea,.appointment-field input,.appointment-field select,.appointment-field textarea) {
  max-width: 100%;
}
body .site-header .brand { min-height: var(--ui-control-height); align-items: center; }
body .site-footer .footer-bottom a {
  display: inline-flex;
  align-items: center;
  min-height: var(--ui-control-height);
}

@media (min-width: 48rem) and (max-width: 69.99rem) {
  body .container { padding-inline: clamp(1.5rem, 4vw, 3rem); }
  body main#main .section { padding-block: clamp(4.5rem, 9vw, 6.5rem); }
  body .home-blog-card img { height: clamp(28rem, 58vw, 34rem); }
}

@media (max-width: 47.99rem) {
  body .container { padding-inline: var(--ui-mobile-gutter); }
  body main#main { overflow: clip; }
  body main#main .section { padding-block: var(--ui-mobile-section); }
  body main#main .page-heading {
    padding-top: calc(76px + 3rem);
    padding-bottom: 3.5rem;
  }
  body main#main .about-hero { padding-top: calc(76px + 3rem); }
  body main#main :is(.page-heading,.article-head,.schedule-choice-heading,.pain-section-head,.med-section-head) > p {
    max-width: 36rem;
    line-height: 1.65;
  }

  body main#main :is(.actions,.med-actions) {
    display: grid;
    grid-template-columns: minmax(0,1fr);
    width: 100%;
    gap: .75rem;
  }
  body main#main :is(.actions,.med-actions) > :is(.button,.text-link) {
    justify-content: center;
    width: 100%;
    min-height: var(--ui-control-height);
    text-align: center;
  }
  body main#main :is(.source-link,.lj-read,.service-price-more) {
    display: inline-flex;
    align-items: center;
    min-height: var(--ui-control-height);
  }
  body main#main :is(input,select,textarea) { font-size: 1rem; }
  body main#main summary { min-height: var(--ui-control-height); }

  body .motion-reveal.is-pending,
  body .reveal.is-pending {
    opacity: 1 !important;
    transform: none !important;
  }

  body .home-blog-section { padding-block: var(--ui-mobile-section); }
  body .home-blog-header { margin-bottom: 2rem; }
  body .home-blog-grid { gap: 1.5rem; }
  body .home-blog-card { border-radius: var(--ui-radius); }
  body .home-blog-card img {
    height: auto;
    min-height: 22rem;
    aspect-ratio: 4 / 5;
  }
  body .home-blog-overlay { padding: 1.25rem; }
  body main#main .home-blog-card h3 {
    max-width: 16ch;
    font-size: clamp(1.55rem, 7vw, 2rem) !important;
    line-height: 1.08 !important;
  }
  body .home-blog-overlay > p { margin-top: .65rem; }
  body .home-blog-expand { margin-top: .8rem; }
  body .home-blog-content { gap: 1rem; padding: 1.15rem; }
  body .home-blog-content a { min-height: var(--ui-control-height); }

  body .journal-card img,
  body .local-journal .lj-story-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
  body .article-cover { width: 100%; aspect-ratio: 4 / 3; min-height: 0; object-fit: cover; }
  body .article-body { max-width: 42rem; }
  body .article-body blockquote { margin-inline: 0; padding-left: 1.25rem; }

  body .site-footer { padding-top: 3.5rem; }
  body .site-footer .footer-top { gap: 2.25rem; }
  body .site-footer .footer-brand { margin-top: 2.75rem; }
  body .site-footer .footer-bottom { gap: .5rem; }
  body .site-footer .footer-bottom a { width: fit-content; }
}

@media (max-width: 23rem) {
  body .site-header .header-inner { gap: .5rem !important; }
  body .site-header .brand-logo { width: 6rem; height: auto !important; }
  body .site-header .header-book {
    max-width: 7.4rem !important;
    padding-inline: .7rem !important;
    font-size: .68rem !important;
  }
  body .home-blog-card img { min-height: 20rem; }
}

/* Professional site-wide footer. */
body .site-footer {
  padding: 0 0 2rem;
  background:
    radial-gradient(circle at 88% 8%, rgb(122 213 220 / 13%), transparent 26rem),
    linear-gradient(140deg, #061c24 0%, #09363c 58%, #104c50 100%);
  color: #f5fafa;
}
body .site-footer .container { max-width: 1440px; }
body .site-footer .footer-intro { display: none !important; }
body .site-footer .footer-intro {
  display: grid;
  grid-template-columns: auto minmax(16rem,.9fr) minmax(20rem,1.1fr);
  align-items: center;
  gap: clamp(1.5rem,4vw,4rem);
  padding-block: clamp(3.5rem,6vw,5.5rem);
  border-bottom: 1px solid rgb(122 213 220 / 22%);
}
body .site-footer .footer-intro-mark {
  display: grid;
  place-items: center;
  width: 4rem;
  height: 4rem;
  border: 1px solid rgb(122 213 220 / 55%);
  border-radius: 50%;
  color: #7ad5dc;
}
body .site-footer .footer-intro-mark svg { width: 2.2rem; height: 2.2rem; }
body .site-footer .footer-kicker {
  margin: 0 0 .65rem;
  color: #7ad5dc !important;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .15em;
  line-height: 1.5;
  text-transform: uppercase;
}
body .site-footer .footer-intro h2 {
  max-width: 15ch;
  margin: 0;
  color: #fff !important;
  font-family: var(--sans);
  font-size: clamp(1.8rem,3vw,3.1rem);
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.08;
}
body .site-footer .footer-intro > p {
  max-width: 40rem;
  color: #c7dadb !important;
  font-size: clamp(.95rem,1.25vw,1.08rem);
  line-height: 1.8;
}
body .site-footer .footer-columns {
  display: grid;
  grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr) minmax(18rem,1fr);
  gap: 0;
  padding-block: clamp(3rem,5vw,4.5rem);
  border-bottom: 1px solid rgb(122 213 220 / 22%);
}
body .site-footer .footer-column {
  min-width: 0;
  padding-inline: clamp(1.5rem,3.5vw,3.5rem);
}
body .site-footer .footer-column:first-child { padding-left: 0; }
body .site-footer .footer-column + .footer-column { border-left: 1px solid rgb(122 213 220 / 20%); }
body .site-footer .footer-title {
  margin: 0 0 1rem;
  color: #7ad5dc !important;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .16em;
  line-height: 1.5;
  text-transform: uppercase;
}
body .site-footer .footer-column-copy {
  max-width: 30rem;
  margin: 0 0 1.5rem;
  color: #c7dadb !important;
  font-size: .9rem;
  line-height: 1.65;
}
body .site-footer .footer-links {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: .2rem 1.25rem;
}
body .site-footer .footer-links a {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 2.75rem;
  color: #fff;
  font-size: .9rem;
  font-weight: 600;
}
body .site-footer .footer-links a:after {
  content: '';
  width: 0;
  height: 1px;
  margin-left: .5rem;
  background: #7ad5dc;
  transition: width .2s ease;
}
body .site-footer .footer-links a:hover { color: #7ad5dc; transform: none; }
body .site-footer .footer-links a:hover:after { width: 1rem; }
body .site-footer .footer-contact-list { display: grid; gap: 1rem; }
body .site-footer .footer-contact-item {
  display: grid;
  grid-template-columns: 2.75rem minmax(0,1fr);
  align-items: center;
  gap: .85rem;
  min-width: 0;
}
body .site-footer .footer-contact-icon {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid rgb(122 213 220 / 35%);
  border-radius: 50%;
  color: #7ad5dc;
}
body .site-footer .footer-contact-icon svg { width: 1.15rem; height: 1.15rem; }
body .site-footer .footer-contact-item strong {
  display: block;
  margin-bottom: .15rem;
  color: #fff;
  font-size: .8rem;
  line-height: 1.3;
}
body .site-footer .footer-contact-item div > span,
body .site-footer .footer-contact-item div > span > a {
  display: inline-flex;
  align-items: center;
  min-height: 1.6rem;
  max-width: 100%;
  color: #c7dadb;
  font-size: .82rem;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
body .site-footer .footer-contact-item div > span > a:hover { color: #7ad5dc; }
body .site-footer .footer-booking {
  position: relative;
  margin-left: clamp(1.5rem,3vw,3rem);
  padding: clamp(1.5rem,2.5vw,2.25rem);
  border: 1px solid rgb(122 213 220 / 28%) !important;
  border-radius: 1rem;
  background: rgb(255 255 255 / 5%);
}
body .site-footer .footer-booking-icon {
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  margin-bottom: 1.5rem;
  border-radius: .75rem;
  background: #7ad5dc;
  color: #06272c;
}
body .site-footer .footer-booking-icon svg { width: 1.4rem; height: 1.4rem; }
body .site-footer .footer-booking h3 {
  margin: 0;
  color: #fff !important;
  font-family: var(--sans);
  font-size: clamp(1.45rem,2vw,2rem);
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: 1.15;
}
body .site-footer .footer-booking > p:not(.footer-title) {
  margin: 1rem 0 1.4rem;
  color: #c7dadb !important;
  font-size: .88rem;
  line-height: 1.65;
}
body .site-footer :is(.footer-primary-action,.footer-secondary-action) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  width: 100%;
  min-height: 3rem;
  padding: .75rem 1rem;
  border-radius: .5rem;
  font-size: .85rem;
  font-weight: 800;
  text-align: center;
}
body .site-footer :is(.footer-primary-action,.footer-secondary-action) svg { width: 1.1rem; height: 1.1rem; flex: 0 0 auto; }
body .site-footer .footer-primary-action { background: #7ad5dc; color: #06272c !important; }
body .site-footer .footer-primary-action:hover { background: #fff; color: #06272c !important; }
body .site-footer .footer-secondary-action {
  margin-top: .7rem;
  border: 1px solid rgb(122 213 220 / 55%);
  background: transparent;
  color: #fff !important;
}
body .site-footer .footer-secondary-action:hover { border-color: #fff; background: rgb(255 255 255 / 8%); }
body .site-footer .footer-brand { margin: clamp(2.75rem,5vw,4rem) 0 1.25rem; }
body .site-footer .footer-brand:before,
body .site-footer .footer-brand:after { background: rgb(122 213 220 / 28%); }
body .site-footer .footer-brand .brand { min-height: 3.5rem; }
body .site-footer .footer-note { color: #fff !important; }
body .site-footer .wellness-note { max-width: 55rem; color: #b8cdcf !important; }
body .site-footer .footer-bottom {
  align-items: center;
  margin-top: 2rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgb(122 213 220 / 18%);
}
body .site-footer .footer-bottom > div { display: flex; align-items: center; gap: 1.5rem; }

@media (max-width: 69.99rem) {
  body .site-footer .footer-intro { grid-template-columns: auto minmax(0,1fr); }
  body .site-footer .footer-intro > p { grid-column: 2; }
  body .site-footer .footer-columns { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3rem 0; }
  body .site-footer .footer-booking { grid-column: 1 / -1; margin: 0; }
}
@media (max-width: 47.99rem) {
  body .site-footer { padding-bottom: 1.25rem; }
  body .site-footer .footer-intro { grid-template-columns: 1fr; gap: 1.25rem; padding-block: 3.5rem; }
  body .site-footer .footer-intro > p { grid-column: auto; }
  body .site-footer .footer-intro h2 { max-width: 14ch; }
  body .site-footer .footer-columns { grid-template-columns: 1fr; gap: 0; padding-block: 1rem 2.75rem; }
  body .site-footer .footer-column { padding: 2rem 0; }
  body .site-footer .footer-column + .footer-column { border-top: 1px solid rgb(122 213 220 / 20%); border-left: 0; }
  body .site-footer .footer-booking { grid-column: auto; margin: 1rem 0 0; padding: 1.5rem; }
  body .site-footer .footer-links { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body .site-footer .footer-bottom { align-items: flex-start; }
  body .site-footer .footer-bottom > div { flex-wrap: wrap; gap: .25rem 1.25rem; }
}
@media (max-width: 22rem) {
  body .site-footer .footer-links { grid-template-columns: 1fr; }
}

/* Compact FAQ spacing and stronger, site-consistent question typography. */
body main#main.med-home > .med-faq {
  padding-top: 1.25rem;
  padding-bottom: clamp(2.75rem,5vw,4rem);
}
body main#main .med-faq .med-section-head { margin-bottom: 1.5rem; }
body main#main .med-faq-list summary {
  min-height: 4.5rem;
  padding: 1.25rem .75rem;
  border-radius: .45rem;
  color: var(--color-heading);
  font-family: var(--sans);
  font-size: clamp(1.05rem,1.15vw,1.2rem);
  font-weight: 800;
  line-height: 1.4;
  transition: color .2s ease,background-color .2s ease,padding-left .2s ease;
}
body main#main .med-faq-list details:is(:hover,:focus-within) summary,
body main#main .med-faq-list details[open] summary {
  padding-left: 1.15rem;
  background: var(--color-ivory);
  color: var(--color-primary);
}
body main#main .med-faq-list p {
  padding: .25rem 1.15rem 1.5rem;
  font-size: 1rem;
}

/* Full-width reference footer with one consistent white-to-aqua interaction. */
body .site-footer.footer-reference > .container {
  width: 100%;
  max-width: none !important;
  padding-inline: clamp(1.5rem,3vw,3.5rem);
}
body .site-footer.footer-reference .footer-reference-brand address,
body .site-footer.footer-reference .footer-reference-contact-row,
body .site-footer.footer-reference .footer-reference-contact-row > :last-child,
body .site-footer.footer-reference .footer-reference-contact-row > :last-child a,
body .site-footer.footer-reference .footer-reference-bottom,
body .site-footer.footer-reference .footer-reference-bottom p,
body .site-footer.footer-reference .footer-reference-bottom :is(span,a) {
  color: #fff !important;
}
body .site-footer.footer-reference :is(.footer-reference-nav a,.footer-reference-contact-row,.footer-reference-bottom a) {
  transition: color .2s ease,transform .2s ease;
}
body .site-footer.footer-reference .footer-reference-nav a:is(:hover,:focus-visible,:active),
body .site-footer.footer-reference .footer-reference-contact-row:is(:hover,:focus-within,:active),
body .site-footer.footer-reference .footer-reference-contact-row:is(:hover,:focus-within,:active) > :last-child,
body .site-footer.footer-reference .footer-reference-contact-row:is(:hover,:focus-within,:active) > :last-child a,
body .site-footer.footer-reference .footer-reference-bottom a:is(:hover,:focus-visible,:active) {
  color: #7AD5DC !important;
}
body .site-footer.footer-reference .footer-reference-nav a:is(:hover,:focus-visible),
body .site-footer.footer-reference .footer-reference-contact-row:is(:hover,:focus-within) {
  transform: translateX(.35rem);
}
body .site-footer.footer-reference .footer-reference-bottom a:is(:hover,:focus-visible) {
  transform: translateY(-.15rem);
  text-decoration: underline;
  text-underline-offset: .3em;
}
body .site-footer.footer-reference .footer-reference-brand > a {
  transition: opacity .2s ease,transform .2s ease;
}
body .site-footer.footer-reference .footer-reference-brand > a:is(:hover,:focus-visible) {
  opacity: .84;
  transform: translateY(-.2rem);
}

@media (max-width: 47.99rem) {
  body main#main.med-home > .med-faq { padding-top: .75rem; }
  body main#main .med-faq-list summary { min-height: 4.25rem; padding-inline: .35rem; }
  body .site-footer.footer-reference > .container { padding-inline: 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  body .site-footer.footer-reference :is(a,.footer-reference-contact-row),
  body main#main .med-faq-list summary { transition: none; }
}

/* Repeating cards stay in a two-up, swipeable row on phones. */
@media (max-width: 47.99rem) {
  body main#main :is(.med-service-grid,.med-trust-grid,.med-journal-grid,.home-blog-grid,.service-pricing-grid,.concerns-grid,.light-tech-grid,.pain-type-grid) {
    display: grid;
    grid-template-columns: none !important;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - .75rem) / 2);
    gap: .75rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
    padding-bottom: .75rem;
  }
  body main#main :is(.med-service-grid,.med-trust-grid,.med-journal-grid,.home-blog-grid,.service-pricing-grid,.concerns-grid,.light-tech-grid,.pain-type-grid) > * {
    min-width: 0;
    scroll-snap-align: start;
  }
  body .home-blog-card img { min-height: 15rem; height: 15rem; }
  body main#main .home-blog-card h3 { font-size: 1.2rem !important; }
  body .home-blog-overlay { padding: .9rem; }
  body .home-blog-content { padding: .9rem; }
  body .service-price-card { padding: 1rem; }
  body main#main .service-price-card h3 { font-size: 1.25rem !important; }
  body .service-price-amount [data-price-value] { font-size: 1.8rem; }
  body .service-price-cta { padding-inline: .5rem; font-size: .8rem; }
}
