:root {
  --dr-navy: #0f2c47;
  --dr-ink: #153b5c;
  --dr-gold: #c8a46a;
  --dr-cream: #fefcf6;
  --dr-paper: #fbf8f1;
  --dr-body: #4f6579;
  --dr-line: rgba(15, 44, 71, 0.13);
  --dr-gold-line: rgba(200, 164, 106, 0.42);
}

html body {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

html body main :where(h1, h2, h3),
html body .site-location-title {
  text-wrap: balance;
}

html body main :where(p, li),
html body .site-footer :where(p, a) {
  text-wrap: pretty;
}

html body :where(
  .site-intro-title,
  .ts-display,
  .ts-welcome-title,
  .ts-service-title,
  .ts-mike-copy h2,
  .ts-mission-card h2,
  .doctor-profile-copy h2,
  .membership-plan-heading,
  .legal-title,
  .site-location-title
) {
  letter-spacing: 0 !important;
}

html body :where(
  .site-call-link,
  .site-mobile-call-link,
  .site-cta-button,
  .ts-primary-pill,
  .ts-gold-pill,
  .membership-contact-button,
  .site-intro-actions a
) {
  min-height: 48px !important;
  transition: background-color 140ms ease-out, color 140ms ease-out, border-color 140ms ease-out, box-shadow 140ms ease-out, transform 140ms ease-out !important;
}

html body :where(
  .site-call-link,
  .site-mobile-call-link,
  .site-cta-button,
  .ts-primary-pill,
  .ts-gold-pill,
  .membership-contact-button,
  .site-intro-actions a
):active {
  transform: scale(0.96) !important;
}

@media (min-width: 981px) {
  html body.page-home .site-header,
  html body.page-interior .site-header {
    height: 80px !important;
  }

  html body.page-home .site-header.is-scrolled,
  html body.page-interior .site-header.is-scrolled {
    height: 68px !important;
  }

  html body.page-home .site-header > div,
  html body.page-interior .site-header > div {
    height: 100% !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  html body .site-header nav {
    gap: clamp(1.65rem, 2.5vw, 2.5rem) !important;
  }

  html body .site-header .site-brand-link {
    font-size: clamp(1.25rem, 1.55vw, 1.55rem) !important;
    letter-spacing: 0 !important;
  }
}

html body.page-interior main > section:first-child h1 {
  max-width: min(720px, 86vw) !important;
  letter-spacing: 0 !important;
  white-space: normal !important;
}

html body .site-intro-band {
  padding-top: clamp(3.75rem, 6vw, 5.5rem) !important;
  padding-bottom: clamp(4.25rem, 6.8vw, 6rem) !important;
}

html body .site-intro-shell {
  width: min(940px, calc(100% - 48px)) !important;
  max-width: 940px !important;
}

html body .site-intro-title {
  max-width: 900px !important;
  margin-inline: auto !important;
  font-size: clamp(2.35rem, 3.5vw, 3.75rem) !important;
  line-height: 1.07 !important;
}

html body .site-intro-copy {
  max-width: 780px !important;
  margin-inline: auto !important;
  color: var(--dr-body) !important;
  font-size: clamp(1rem, 1.08vw, 1.08rem) !important;
  line-height: 1.68 !important;
}

html body .site-intro-note {
  max-width: 720px !important;
  margin-inline: auto !important;
  line-height: 1.55 !important;
}

html body .doctor-profile-shell {
  gap: clamp(2.5rem, 5.5vw, 5.5rem) !important;
  align-items: center !important;
}

html body .doctor-profile-media,
html body .doctor-profile-image,
html body .doctor-profile-shell figure,
html body .ts-mike-photo {
  border-radius: 0 !important;
  overflow: hidden !important;
}

html body .site-location-map {
  border-radius: 8px !important;
  overflow: hidden !important;
}

html body .doctor-profile-shell img,
html body .ts-mike-photo img,
html body .site-location-map iframe {
  outline: 1px solid rgb(0 0 0 / 0.1) !important;
  outline-offset: -1px !important;
}

html body :where(
  .doctor-profile-copy p,
  .ts-mike-copy p,
  .ts-copy-block > p:not(.ts-eyebrow):not(.ts-strong-note),
  .legal-copy p,
  .legal-intro
) {
  color: var(--dr-body) !important;
  line-height: 1.7 !important;
}

html body.page-home #services .ts-section-heading {
  max-width: 820px !important;
  margin-bottom: clamp(2.75rem, 4vw, 4rem) !important;
}

html body.page-home .ts-services-grid {
  gap: clamp(1rem, 1.8vw, 1.5rem) !important;
}

html body.page-home .ts-service-card {
  display: flex !important;
  min-width: 0 !important;
  flex-direction: column !important;
  border: 1px solid var(--dr-line) !important;
  border-radius: 8px !important;
  background: rgba(255, 255, 255, 0.92) !important;
  box-shadow: 0 12px 30px rgba(15, 44, 71, 0.07) !important;
  transition: transform 160ms ease-out, border-color 160ms ease-out, box-shadow 160ms ease-out !important;
}

html body.page-home .ts-service-card:hover {
  transform: translateY(-3px) !important;
  border-color: var(--dr-gold-line) !important;
  box-shadow: 0 20px 44px rgba(15, 44, 71, 0.11) !important;
}

html body.page-home .ts-service-img-wrap {
  height: clamp(12.75rem, 17vw, 14.75rem) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

html body.page-home .ts-service-img {
  outline: 1px solid rgb(0 0 0 / 0.1) !important;
  outline-offset: -1px !important;
}

html body.page-home .ts-service-body {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  padding: 1.4rem 1.45rem 1.5rem !important;
}

html body.page-home .ts-service-title {
  margin-bottom: 0.65rem !important;
  font-size: clamp(1.38rem, 1.75vw, 1.62rem) !important;
  line-height: 1.12 !important;
}

html body.page-home .ts-service-body p {
  min-height: 0 !important;
  margin-bottom: 0 !important;
  color: var(--dr-body) !important;
  font-size: 0.98rem !important;
  line-height: 1.58 !important;
}

html body.page-home .ts-service-link {
  margin-top: auto !important;
  padding-top: 1rem !important;
  font-size: 0.94rem !important;
}

html body .site-cta-section {
  padding-block: clamp(2.8rem, 4vw, 4.25rem) !important;
}

html body .site-cta-shell {
  width: min(1180px, calc(100% - 48px)) !important;
  max-width: 1180px !important;
  gap: clamp(1.5rem, 4vw, 4rem) !important;
}

html body .site-cta-shell h2 {
  letter-spacing: 0 !important;
  line-height: 1.08 !important;
}

html body .site-location-section {
  padding-block: clamp(4.5rem, 7vw, 7rem) !important;
}

html body .site-location-grid {
  gap: clamp(3rem, 6vw, 6rem) !important;
}

html body .site-location-list {
  gap: 1.25rem !important;
}

html body .site-location-map {
  box-shadow: 0 18px 46px rgba(15, 44, 71, 0.1) !important;
}

html body.page-insurance .insurance-plans-title {
  max-width: 760px !important;
  margin-inline: auto !important;
  font-size: clamp(2rem, 3vw, 2.8rem) !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  white-space: normal !important;
}

html body.page-interior.page-insurance main .insurance-logo-grid {
  display: grid !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: auto !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 1rem !important;
}

html body.page-interior.page-insurance main .insurance-logo-grid .insurance-logo-card,
html body.page-interior.page-insurance main .insurance-logo-grid .insurance-logo-card-large {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 0 !important;
  min-height: 112px !important;
  padding: 1.25rem !important;
  border: 1px solid var(--dr-line) !important;
  border-radius: 8px !important;
  background: rgba(255, 255, 255, 0.9) !important;
  box-shadow: 0 10px 26px rgba(15, 44, 71, 0.06) !important;
}

html body.page-interior.page-insurance main .insurance-logo-grid .insurance-logo-card img,
html body.page-interior.page-insurance main .insurance-logo-grid .insurance-logo-card-large img {
  width: auto !important;
  max-width: 84% !important;
  height: auto !important;
  max-height: 54px !important;
  object-fit: contain !important;
}

html body.page-interior.page-insurance main .insurance-logo-grid :where(.insurance-logo-uhc, .insurance-logo-bcbs) {
  transform: none !important;
}

html body.page-interior.page-membership main > section.site-section > .relative.z-10.membership-plan-shell {
  width: min(1180px, calc(100% - 48px)) !important;
  max-width: 1180px !important;
  padding-inline: 0 !important;
}

html body.page-membership .membership-plan-shell > .info-card {
  padding: clamp(1rem, 2vw, 1.75rem) 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html body.page-membership .membership-price-line {
  margin-bottom: 1.1rem !important;
  font-size: clamp(3.2rem, 5.2vw, 4.6rem) !important;
  line-height: 1 !important;
}

html body.page-membership .membership-plan-heading {
  max-width: 850px !important;
  margin-bottom: 1.4rem !important;
  font-size: clamp(2.65rem, 4.5vw, 4.5rem) !important;
  line-height: 1.03 !important;
}

html body.page-membership .membership-plan-shell .space-y-5 {
  max-width: 940px !important;
  margin-bottom: 2.2rem !important;
}

html body.page-membership .membership-plan-shell .space-y-5 p {
  color: var(--dr-body) !important;
  font-size: 1.03rem !important;
  line-height: 1.66 !important;
}

html body.page-membership .membership-benefit-grid {
  gap: 0 !important;
  margin-bottom: 1.9rem !important;
  border-top: 1px solid var(--dr-gold-line) !important;
  border-bottom: 1px solid var(--dr-gold-line) !important;
}

html body.page-membership .membership-benefit-card {
  padding: 1.75rem 1.6rem !important;
  border: 0 !important;
  border-right: 1px solid var(--dr-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html body.page-membership .membership-benefit-card:last-child {
  border-right: 0 !important;
}

html body.page-membership .membership-benefit-card h3 {
  letter-spacing: 0 !important;
  line-height: 1.12 !important;
}

html body.page-membership .membership-benefit-card p {
  color: var(--dr-body) !important;
  line-height: 1.62 !important;
}

html body.page-membership .membership-contact-button {
  border: 1px solid var(--dr-navy) !important;
  border-radius: 999px !important;
  background: var(--dr-navy) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

html body .legal-card {
  max-width: 900px !important;
}

html body .legal-copy {
  max-width: 72ch !important;
}

html body .site-footer {
  border-top-color: var(--dr-line) !important;
}

html body .footer-shell {
  padding-top: 2.5rem !important;
}

html body .footer-main {
  padding-bottom: 2rem !important;
}

html body .footer-social-link {
  width: 46px !important;
  height: 46px !important;
}

html body .footer-bottom {
  padding-top: 1.25rem !important;
}

@media (max-width: 980px) {
  html body .site-mobile-menu-panel {
    padding: 1rem 1.25rem 1.5rem !important;
    background: var(--dr-cream) !important;
  }

  html body .site-mobile-menu-group + .site-mobile-menu-group {
    margin-top: 0 !important;
  }

  html body .site-mobile-menu-heading {
    min-height: 54px !important;
    padding: 0 0.25rem !important;
    border-bottom: 1px solid var(--dr-line) !important;
    font-size: 1rem !important;
    letter-spacing: 0 !important;
  }

  html body .site-mobile-menu-links {
    justify-items: stretch !important;
    gap: 0 !important;
    padding: 0.35rem 0 0.55rem 0.75rem !important;
    border-bottom: 1px solid var(--dr-line) !important;
  }

  html body .site-mobile-menu-link {
    justify-content: flex-start !important;
    min-height: 44px !important;
    padding: 0.55rem 0.75rem !important;
    border-radius: 6px !important;
    font-size: 0.98rem !important;
    text-align: left !important;
  }

  html body .site-mobile-menu-link:hover,
  html body .site-mobile-menu-link:focus-visible {
    background: rgba(15, 44, 71, 0.06) !important;
  }

  html body .site-mobile-menu-cta {
    margin-top: 1.15rem !important;
  }

  html body .site-mobile-call-link {
    min-height: 50px !important;
    border-radius: 6px !important;
  }

  html body.page-home .ts-services-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  html body.page-interior.page-insurance main .insurance-logo-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 720px) {
  html body .site-intro-band {
    padding-top: 2.8rem !important;
    padding-bottom: 3.6rem !important;
  }

  html body .site-intro-shell {
    width: min(100% - 32px, 620px) !important;
  }

  html body .site-intro-eyebrow {
    margin-bottom: 0.85rem !important;
  }

  html body .site-intro-title {
    font-size: clamp(2rem, 9vw, 2.45rem) !important;
    line-height: 1.08 !important;
  }

  html body .site-intro-copy {
    font-size: 1rem !important;
    line-height: 1.62 !important;
  }

  html body .site-intro-note {
    max-width: calc(100% - 3rem) !important;
    line-height: 1.5 !important;
  }

  html body .doctor-profile-shell,
  html body .ts-mike-shell {
    gap: 1.75rem !important;
  }

  html body.page-home #services .ts-section-heading {
    margin-bottom: 2rem !important;
  }

  html body.page-home .ts-services-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 1.25rem !important;
  }

  html body.page-home .ts-service-card {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    border-radius: 1.15rem !important;
  }

  html body.page-home .ts-service-img-wrap {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 10 !important;
  }

  html body.page-home main #services .ts-service-img-wrap .ts-service-img {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 10 !important;
    object-fit: cover !important;
  }

  html body.page-home .ts-service-body {
    min-width: 0 !important;
    padding: 1.2rem 1.25rem 1.45rem !important;
  }

  html body.page-home .ts-service-title {
    margin-bottom: 0.82rem !important;
    font-size: clamp(1.45rem, 7vw, 1.9rem) !important;
    line-height: 1.08 !important;
  }

  html body.page-home .ts-service-body p {
    display: block !important;
    overflow: visible !important;
    font-size: 1rem !important;
    line-height: 1.68 !important;
    -webkit-line-clamp: unset !important;
  }

  html body.page-home .ts-service-link {
    margin-top: 0.75rem !important;
    padding-top: 0 !important;
    font-size: 1rem !important;
  }

  html body .site-cta-section {
    padding-block: 2.75rem !important;
  }

  html body .site-cta-shell {
    width: min(100% - 32px, 620px) !important;
    align-items: flex-start !important;
    text-align: left !important;
  }

  html body .site-cta-actions,
  html body .site-cta-actions a {
    width: 100% !important;
  }

  html body .site-location-section {
    padding-block: 3.5rem !important;
  }

  html body .site-location-shell {
    width: min(100% - 32px, 620px) !important;
  }

  html body .site-location-grid {
    gap: 2rem !important;
  }

  html body .site-location-map,
  html body .site-location-map iframe {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 4 / 3 !important;
  }

  html body.page-interior.page-insurance main .insurance-logo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.75rem !important;
    margin-bottom: 2.5rem !important;
  }

  html body.page-interior.page-insurance main .insurance-logo-grid .insurance-logo-card,
  html body.page-interior.page-insurance main .insurance-logo-grid .insurance-logo-card-large {
    min-height: 88px !important;
    padding: 0.8rem !important;
    border-radius: 8px !important;
  }

  html body.page-interior.page-insurance main .insurance-logo-grid .insurance-logo-card img,
  html body.page-interior.page-insurance main .insurance-logo-grid .insurance-logo-card-large img {
    max-width: 88% !important;
    max-height: 42px !important;
  }

  html body.page-interior.page-membership main > section.site-section > .relative.z-10.membership-plan-shell {
    width: min(100% - 32px, 620px) !important;
    max-width: 620px !important;
  }

  html body.page-membership .membership-plan-shell > .info-card {
    padding: 0 !important;
  }

  html body.page-membership .membership-price-line {
    font-size: 3.1rem !important;
  }

  html body.page-membership .membership-plan-heading {
    font-size: clamp(2.2rem, 10vw, 2.8rem) !important;
    line-height: 1.06 !important;
  }

  html body.page-membership .membership-plan-shell .space-y-5 {
    margin-bottom: 1.75rem !important;
  }

  html body.page-membership .membership-benefit-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html body.page-membership .membership-benefit-card {
    display: grid !important;
    grid-template-columns: 48px minmax(0, 1fr) !important;
    column-gap: 1rem !important;
    row-gap: 0.35rem !important;
    padding: 1.25rem 0 !important;
    border-right: 0 !important;
    border-bottom: 1px solid var(--dr-line) !important;
  }

  html body.page-membership .membership-benefit-card:last-child {
    border-bottom: 0 !important;
  }

  html body.page-membership .membership-benefit-icon {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    width: 44px !important;
    height: 44px !important;
  }

  html body.page-membership .membership-benefit-card h3,
  html body.page-membership .membership-benefit-card p {
    grid-column: 2 !important;
    margin: 0 !important;
  }

  html body.page-membership .membership-benefit-card h3 {
    font-size: 1.35rem !important;
  }

  html body.page-membership .membership-benefit-rule {
    display: none !important;
  }

  html body .footer-shell {
    width: min(100% - 32px, 620px) !important;
    padding: 2rem 0 1rem !important;
  }

  html body .footer-main {
    gap: 1.7rem !important;
    padding-bottom: 1.5rem !important;
    text-align: left !important;
  }

  html body .footer-brand,
  html body .footer-nav-column,
  html body .footer-contact,
  html body .footer-contact-list,
  html body .footer-contact-row > div,
  html body .footer-legal,
  html body .footer-bottom p {
    text-align: left !important;
  }

  html body .footer-brand p {
    max-width: 34ch !important;
  }

  html body .footer-social {
    justify-content: flex-start !important;
    margin-top: 1.25rem !important;
  }

  html body .footer-links {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: start !important;
    gap: 0.55rem 1rem !important;
    text-align: left !important;
  }

  html body .footer-contact-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
  }

  html body .footer-contact-row {
    grid-template-columns: 1.4rem minmax(0, 1fr) !important;
    gap: 0.7rem !important;
    justify-items: start !important;
    text-align: left !important;
  }

  html body .footer-contact-row:first-child {
    grid-column: 1 / -1 !important;
  }

  html body .footer-contact-row .material-symbols-outlined {
    justify-self: start !important;
  }

  html body .footer-bottom {
    align-items: flex-start !important;
    gap: 0.65rem !important;
    padding-top: 1rem !important;
    padding-bottom: 0.5rem !important;
    text-align: left !important;
  }

  html body .footer-legal {
    justify-content: flex-start !important;
  }
}

@media (max-width: 420px) {
  html body.page-home .hero-copy .eyebrow {
    font-size: clamp(1.75rem, 8vw, 2rem) !important;
  }

  html body.page-home .hero-title {
    font-size: clamp(2.35rem, 11vw, 2.75rem) !important;
    line-height: 0.98 !important;
  }

}

@media (max-width: 480px) {
  html body .footer-contact-list {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  html body .footer-contact-row:first-child {
    grid-column: auto !important;
  }

  html body .footer-contact-row a {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
  }
}

/* Keep the direction-aware mobile header as one visual state on every page. */
@media (max-width: 1180px) {
  html body.page-home .site-header.is-mobile-returned,
  html body.page-interior .site-header.is-mobile-returned {
    background: rgba(255, 255, 255, 0.97) !important;
    border-color: rgba(226, 232, 240, 0.92) !important;
    box-shadow: 0 12px 30px rgba(200, 164, 106, 0.1) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
  }

  html body.page-home .site-header.is-mobile-returned .site-brand-link,
  html body.page-home .site-header.is-mobile-returned > div > a[href="index.html"],
  html body.page-interior .site-header.is-mobile-returned .site-brand-link,
  html body.page-interior .site-header.is-mobile-returned > div > a[href="index.html"] {
    color: #0f2c47 !important;
    -webkit-text-fill-color: #0f2c47 !important;
    text-shadow: none !important;
  }

  html body.page-home .site-header.is-mobile-returned .site-mobile-menu-toggle,
  html body.page-interior .site-header.is-mobile-returned .site-mobile-menu-toggle {
    color: #0f2c47 !important;
  }
}

html {
  overflow-x: clip !important;
}

@media (prefers-reduced-motion: reduce) {
  html body .ts-service-card,
  html body :where(
    .site-call-link,
    .site-mobile-call-link,
    .site-cta-button,
    .ts-primary-pill,
    .ts-gold-pill,
    .membership-contact-button,
    .site-intro-actions a
  ) {
    transition: none !important;
  }
}
