/* Therapy Villa therapist pages and the home page strip.
   Measured from the hand-built pages (Oct 2026): Marcellus headings, Sora text, the site's own colours
   (Elementor's global colours, with the same values as fallbacks), content 1300px wide.
   Breakpoints follow Elementor's: tablet up to 1024px, phone up to 767px. */
.tvts-page, .tvts-strip, .tvts-tcard, .tvts-grid {
  --tvts-ink: var(--e-global-color-primary, #262626);
  --tvts-text: var(--e-global-color-text, #838383);
  --tvts-soft: var(--e-global-color-secondary, #F2F2F2);
  --tvts-accent: var(--e-global-color-accent, #9B9A84);
  --tvts-head: var(--e-global-typography-primary-font-family, "Marcellus"), "Marcellus", Georgia, serif;
  /* Inter for reading on therapist pages (owner, 2026-10-16); the rest of the site keeps Sora. */
  --tvts-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-family: var(--tvts-body);
  color: var(--tvts-text);
}
.tvts-strip, .tvts-tcard, .tvts-grid, .tvts-page--banner { --tvts-body: var(--e-global-typography-text-font-family, "Sora"), "Sora", system-ui, -apple-system, "Segoe UI", sans-serif; }
.tvts-page *, .tvts-strip *, .tvts-tcard *, .tvts-grid * { box-sizing: border-box; }
.tvts-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Hero: the site's page-header photo under the header, darkened from the top and the left. */
.tvts-hero { position: relative; margin-top: -116px; padding: 160px 10px 60px; background: #262626 var(--tvts-hero-image) center / cover no-repeat; }
.tvts-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(38,38,38,0) 75.27%, rgba(38,38,38,.8) 100%), linear-gradient(270deg, rgba(38,38,38,0) 45.18%, #262626 105.08%); }
.tvts-hero-inner { position: relative; max-width: 1300px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; }
.tvts-page .tvts-hero-title { margin: 0 !important; font-family: var(--tvts-head) !important; font-weight: 400 !important; font-size: 70px !important; line-height: 1.1 !important; color: #fff !important; text-transform: none !important; letter-spacing: normal !important; }
.tvts-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 16px; color: #fff; }
.tvts-crumbs li { display: flex; align-items: center; gap: 10px; }
.tvts-crumbs li + li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.tvts-crumbs a { color: #fff; text-decoration: none; }
.tvts-crumbs a:hover, .tvts-crumbs a:focus-visible { text-decoration: underline; }

/* Two columns: the photo card (433px) beside the bio. */
.tvts-wrap { max-width: 1300px; margin: 0 auto; padding: 100px 10px 110px; }
.tvts-layout { display: grid; grid-template-columns: minmax(0, 433px) minmax(0, 1fr); gap: 50px; align-items: start; }

/* The card scrolls with the page; its "Talk to" button rides along in the sidebar column: pinned to the
   bottom of the screen until the card has passed, then just under the header, so it's always in reach. */
.tvts-side { align-self: stretch; display: flex; flex-direction: column; gap: 14px; padding: 10px; }
.tvts-card { padding: 0; }
.tvts-card-photo img { display: block; width: 100%; height: auto; aspect-ratio: 413 / 403; object-fit: cover; object-position: top center; }
.tvts-photo-blank { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; background: var(--tvts-soft); font-family: var(--tvts-head); font-size: 96px; color: var(--tvts-accent); }
.tvts-facts { margin: 0; padding: 20px 30px; background: var(--tvts-soft); }
.tvts-fact { display: grid; grid-template-columns: 141px minmax(0, 1fr); gap: 10px; padding: 21px 0; border-bottom: 1px solid #e3e3e3; align-items: baseline; }
.tvts-fact:last-child { border-bottom: 0; }
.tvts-page .tvts-fact dt { margin: 0; font-family: var(--tvts-head); font-size: 20px; line-height: 1.28; color: var(--tvts-ink); }
.tvts-fact dd { margin: 0; font-size: 16px; line-height: 1.6; color: var(--tvts-text); overflow-wrap: anywhere; }
.tvts-status { display: inline-flex; align-items: center; gap: 6px; }
.tvts-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.tvts-status--open { color: #2E7D5B; }
.tvts-status--limited { color: #9A6212; }
.tvts-status--wait { color: #6E716A; }
.tvts-card-cta, .tvts-dock { display: flex; align-items: center; justify-content: center; gap: 10px; background: var(--tvts-accent); color: #fff !important; font-size: 16px; font-weight: 500; text-decoration: none !important; transition: filter .2s, transform .2s; }
.tvts-card-cta { position: sticky; top: 130px; bottom: 24px; z-index: 2; min-height: 75px; padding: 12px 30px; border-radius: 20px; box-shadow: 0 10px 30px rgba(38,38,38,.18); }
.tvts-card-cta:hover, .tvts-card-cta:focus-visible, .tvts-dock:hover, .tvts-dock:focus-visible { filter: brightness(.92); }
.tvts-arrow { flex: none; width: 20px; height: 20px; transition: transform .2s; }
.tvts-card-cta:hover .tvts-arrow, .tvts-dock:hover .tvts-arrow { transform: translateX(3px); }
/* Tablet and phone: the same button docked at the bottom of the screen, up to the contact form. */
.tvts-dock { display: none; }

/* The bio column. */
.tvts-main { display: flex; flex-direction: column; gap: 70px; min-width: 0; }
.tvts-page .tvts-h2 { margin: 0 0 20px !important; font-family: var(--tvts-head) !important; font-weight: 400 !important; font-size: 30px !important; line-height: 1.2 !important; color: var(--tvts-ink) !important; text-transform: none !important; letter-spacing: normal !important; }
.tvts-page .tvts-section p { margin: 0 0 25.6px; font-family: var(--tvts-body); font-size: 16px; line-height: 1.6; color: var(--tvts-text); }
.tvts-section p:last-child { margin-bottom: 0; }
/* Small headings inside the bio (owner, 2026-10-16). */
.tvts-page .tvts-h3 { margin: 30px 0 10px !important; font-family: var(--tvts-head) !important; font-weight: 400 !important; font-size: 24px !important; line-height: 1.2 !important; color: var(--tvts-ink) !important; text-transform: none !important; letter-spacing: normal !important; }
.tvts-quote { margin: 0 0 25.6px; padding: 2px 0 2px 22px; border-left: 3px solid var(--tvts-accent); }
.tvts-page .tvts-quote p { margin: 0; font-family: var(--tvts-head); font-size: 22px; line-height: 1.45; color: var(--tvts-ink); }

.tvts-focus { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; }
.tvts-focus li { display: flex; align-items: center; gap: 10px; }
.tvts-focus-icon { flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 6px; background: var(--tvts-accent); color: #fff; }
.tvts-focus-icon svg { width: 22px; height: 22px; }
.tvts-page .tvts-focus-label { font-family: var(--tvts-head); font-size: 20px; color: var(--tvts-ink); }

.tvts-checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px 20px; }
.tvts-checklist--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tvts-checklist li { display: flex; gap: 14px; align-items: flex-start; font-size: 16px; line-height: 1.6; color: var(--tvts-ink); }
/* Areas of expertise: the top five as a checklist, the rest as tags behind "N more areas". */
.tvts-more { margin-top: 22px; }
.tvts-more summary { display: inline-flex; align-items: center; gap: 10px; padding: 10px 18px 10px 14px; border: 1px solid var(--tvts-accent); border-radius: 999px; list-style: none; cursor: pointer; font-size: 15px; font-weight: 500; color: var(--tvts-ink); transition: background .2s; }
.tvts-more summary::-webkit-details-marker { display: none; }
.tvts-more summary:hover { background: var(--tvts-soft); }
.tvts-more summary:focus-visible { outline: 2px solid var(--tvts-ink); outline-offset: 3px; }
.tvts-more-icon { position: relative; width: 14px; height: 14px; }
.tvts-more-icon::before, .tvts-more-icon::after { content: ""; position: absolute; left: 0; top: 6px; width: 14px; height: 2px; border-radius: 1px; background: var(--tvts-accent); transition: transform .2s; }
.tvts-more-icon::after { transform: rotate(90deg); }
.tvts-more[open] .tvts-more-icon::after { transform: rotate(0deg); }
.tvts-chips { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.tvts-chips li { padding: 7px 14px; border-radius: 999px; background: var(--tvts-soft); font-size: 14px; line-height: 1.4; color: var(--tvts-ink); }
.tvts-check { flex: none; width: 20px; height: 20px; margin-top: 3px; color: var(--tvts-accent); }

.tvts-back { margin: -20px 0 0; }
.tvts-btn { display: inline-flex; align-items: center; justify-content: center; padding: 16px 20px; border-radius: 10px; background: var(--tvts-accent); color: #fff !important; font-size: 16px; font-weight: 500; line-height: 1.2; text-decoration: none !important; transition: filter .2s; }
.tvts-btn:hover, .tvts-btn:focus-visible { filter: brightness(.92); }

/* Contact box, like the hand-built pages' form. */
.tvts-contact { padding: 40px; border-radius: 20px; background: var(--tvts-soft); }
.tvts-page .tvts-contact .tvts-h2 { font-size: 30px !important; margin-bottom: 24px !important; }
.tvts-contact input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), .tvts-contact textarea, .tvts-contact select { width: 100%; padding: 14px 16px; border: 0; border-radius: 6px; background: #fff; font: 15px/1.4 var(--tvts-body); color: var(--tvts-ink); }
.tvts-contact textarea { min-height: 120px; }
.tvts-contact input[type="submit"], .tvts-contact button[type="submit"] { padding: 14px 22px; border: 0; border-radius: 10px; background: var(--tvts-accent); color: #fff; font: 500 16px var(--tvts-body); cursor: pointer; }

a.tvts-btn:focus-visible, .tvts-card-cta:focus-visible, .tvts-dock:focus-visible, .tvts-crumbs a:focus-visible { outline: 2px solid var(--tvts-ink); outline-offset: 3px; }

/* Tablet: one column, the card first and full width (as the hand-built pages do). */
@media (max-width: 1024px) {
  .tvts-hero { padding: 150px 20px 50px; }
  .tvts-page .tvts-hero-title { font-size: 52px !important; }
  .tvts-wrap { padding: 60px 20px 80px; }
  .tvts-layout { grid-template-columns: minmax(0, 1fr); gap: 50px; }
  .tvts-side { padding: 0; }
  .tvts-card-cta { display: none; }
  /* Above the site's own Call / Contact / Book bar, which is fixed to the bottom on tablets and phones. */
  .tvts-dock { display: flex; position: sticky; bottom: calc(var(--tvts-sitebar, 91px) + 14px); z-index: 5; justify-content: flex-start; justify-self: center; width: min(100%, 420px); min-height: 56px; margin-top: -26px; padding: 6px 22px 6px 6px; border-radius: 999px; box-shadow: 0 10px 30px rgba(38,38,38,.22); }
  .tvts-dock span { flex: 1; }
  .tvts-dock-photo { flex: none; width: 44px; height: 44px; border-radius: 50%; object-fit: cover; object-position: top center; border: 2px solid rgba(255,255,255,.7); }
  .tvts-card-photo { display: flex; justify-content: center; }
  .tvts-card-photo img { width: min(100%, 433px); }
  .tvts-fact { grid-template-columns: minmax(120px, 38%) minmax(0, 1fr); }
  .tvts-main { gap: 56px; }
}
/* Phone. */
@media (max-width: 767px) {
  .tvts-hero { margin-top: -110px; padding: 130px 16px 40px; }
  .tvts-page .tvts-hero-title { font-size: 40px !important; }
  .tvts-crumbs ol { font-size: 14px; }
  .tvts-wrap { padding: 40px 16px 64px; }
  .tvts-facts { padding: 10px 20px; }
  .tvts-fact { grid-template-columns: 112px minmax(0, 1fr); padding: 14px 0; }
  .tvts-fact dt { font-size: 17px; }
  .tvts-fact dd { font-size: 15px; }
  .tvts-main { gap: 44px; }
  .tvts-page .tvts-h2 { font-size: 26px !important; margin-bottom: 12px !important; }
  .tvts-focus, .tvts-checklist--two { grid-template-columns: minmax(0, 1fr); }
  .tvts-checklist { gap: 10px; }
  .tvts-contact { padding: 24px 18px; }
  .tvts-page { --tvts-sitebar: 61px; }
  .tvts-dock { min-height: 52px; }
  .tvts-dock-photo { width: 40px !important; height: 40px !important; }
  .tvts-page .tvts-contact .tvts-h2 { font-size: 26px !important; }
}

/* Home page strip ("Meet Our Team", owner 2026-10-16): no cards, round photos and names on the section's own
   background, like the site's other open layouts. Four across on a computer, three on a tablet, two on a phone. */
.tvts-strip { position: relative; display: flex; align-items: center; gap: 8px; }
.tvts-strip-track { list-style: none; margin: 0; padding: 6px 2px; flex: 1; min-width: 0; display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 3 * 32px) / 4); gap: 32px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.tvts-strip-track::-webkit-scrollbar { display: none; }
.tvts-slide { scroll-snap-align: start; margin: 0 !important; }
.tvts-slide-link { display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; text-decoration: none !important; color: var(--tvts-ink) !important; }
.tvts-slide-photo { position: relative; display: block; width: 100%; max-width: 240px; aspect-ratio: 1; overflow: hidden; border-radius: 50%; background: #fff; box-shadow: 0 6px 22px rgba(38,38,38,.08); transition: transform .25s, box-shadow .25s; }
.tvts-slide-photo img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; border-radius: 50%; }
.tvts-slide-photo .tvts-photo-blank { position: absolute; inset: 0; aspect-ratio: auto; border-radius: 50%; font-size: 56px; }
.tvts-strip .tvts-slide-name { font-family: var(--tvts-head); font-weight: 400; font-size: 20px; line-height: 1.3; color: var(--tvts-ink); }
.tvts-slide-link:hover .tvts-slide-photo { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(38,38,38,.14); }
.tvts-slide-link:hover .tvts-slide-name { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--tvts-accent); }
.tvts-slide-link:focus-visible { outline: 2px solid var(--tvts-ink); outline-offset: 4px; border-radius: 12px; }
.tvts-strip .tvts-strip-nav { flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; min-height: 0; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; color: var(--tvts-ink) !important; cursor: pointer; }
.tvts-strip .tvts-strip-nav svg { width: 26px; height: 26px; stroke: currentColor; }
.tvts-strip .tvts-strip-nav:hover, .tvts-strip .tvts-strip-nav:focus-visible { color: var(--tvts-accent) !important; }
.tvts-strip-nav:focus-visible, .tvts-strip-track:focus-visible { outline: 2px solid var(--tvts-ink); outline-offset: 2px; }
@media (max-width: 1024px) { .tvts-strip-track { grid-auto-columns: calc((100% - 2 * 24px) / 3); gap: 24px; } }
@media (max-width: 767px) {
  /* Phones: the arrows float over the edges so two photos get the full width. */
  .tvts-strip { display: block; }
  .tvts-strip-track { grid-auto-columns: calc((100% - 16px) / 2); gap: 16px; }
  .tvts-strip .tvts-strip-nav { position: absolute; top: calc(50% - 34px); z-index: 2; width: 34px; height: 34px; border-radius: 50% !important; background: rgba(255,255,255,.92) !important; box-shadow: 0 2px 8px rgba(38,38,38,.15) !important; }
  .tvts-strip .tvts-strip-nav svg { width: 18px; height: 18px; }
  .tvts-strip-prev { left: -6px; }
  .tvts-strip-next { right: -6px; }
  .tvts-strip .tvts-slide-name { font-size: 17px; }
  .tvts-slide-link { gap: 10px; }
}
@media (prefers-reduced-motion: reduce) { .tvts-strip-track { scroll-behavior: auto; } .tvts-slide-photo { transition: none; } .tvts-slide-link:hover .tvts-slide-photo { transform: none; } .tvts-card-cta, .tvts-dock, .tvts-btn, .tvts-arrow, .tvts-more-icon::before, .tvts-more-icon::after { transition: none; } }

/* ---- Team page: the banner and the cards (inside the filter plugin's results) ---- */
.tvts-page--banner { margin-bottom: 0; }
/* Filters (owner, 2026-10-16): one collapsed "Filter" bar above the cards at every size (the team page's own
   toggle, which it shows only on phones); open, the filters sit in columns across the page. */
.custom-team-filter .apf-layout { display: flex !important; flex-direction: column !important; gap: 20px !important; }
.custom-team-filter .apf-main { width: 100% !important; max-width: none !important; flex: none !important; }
.custom-team-filter .custom-mobile-filter-toggle { display: flex !important; align-items: center; justify-content: space-between; width: 100%; min-height: 56px; margin: 0 0 4px; padding: 0 20px; border: 1px solid #dcdcdc; border-radius: 12px; background: #fff; box-shadow: none; color: var(--e-global-color-primary, #262626); font: 600 16px/1.2 var(--e-global-typography-text-font-family, "Sora"), sans-serif; text-transform: none; letter-spacing: normal; cursor: pointer; }
.custom-team-filter .custom-mobile-filter-toggle:hover { border-color: var(--e-global-color-accent, #9B9A84); background: #fff; color: var(--e-global-color-primary, #262626); }
.custom-team-filter .custom-mobile-filter-toggle:focus-visible { outline: 2px solid var(--e-global-color-primary, #262626); outline-offset: 2px; }
.custom-team-filter .custom-mobile-filter-arrow { width: 10px; height: 10px; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(45deg) translateY(-3px); transition: transform .2s; background: none !important; }
.custom-team-filter.mobile-filter-open .custom-mobile-filter-arrow { transform: rotate(-135deg) translateY(-2px); }
.custom-team-filter:not(.mobile-filter-open) .apf-sidebar { display: none !important; }
.custom-team-filter.mobile-filter-open .apf-sidebar { display: block !important; width: 100% !important; max-width: none !important; flex: none !important; position: static !important; margin: 0 !important; padding: 20px !important; border: 1px solid #e6e6e6 !important; border-radius: 12px; background: #fafaf8 !important; }
.custom-team-filter .custom-filter-heading { display: none !important; }
.custom-team-filter.mobile-filter-open .apf-search-wrap { margin-bottom: 16px; }
.custom-team-filter.mobile-filter-open .apf-filters { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 12px 16px; align-items: start; }
.custom-team-filter.mobile-filter-open .apf-filter-group { margin: 0 !important; }
.custom-team-filter.mobile-filter-open .apf-reset-btn { margin-top: 16px; }

.apf-posts:has(.tvts-tcard) { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 28px !important; }
@media (max-width: 899px) { .apf-posts:has(.tvts-tcard) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px !important; } }
@media (max-width: 559px) { .apf-posts:has(.tvts-tcard) { grid-template-columns: minmax(0, 1fr) !important; } }
.apf-posts-wrap:has(.tvts-tcard) + .apf-load-more-wrap { display: none !important; }
.tvts-tcard { position: relative; display: flex; flex-direction: column; min-width: 0; margin: 0 !important; overflow: hidden; border: 1px solid #ececec; border-radius: 16px; background: #fff; box-shadow: 0 4px 18px rgba(38,38,38,.07); font-family: var(--tvts-body); color: var(--tvts-text); transition: box-shadow .2s, transform .2s; }
.tvts-tcard:hover { box-shadow: 0 10px 28px rgba(38,38,38,.12); transform: translateY(-2px); }
.tvts-tcard-photo { position: relative; display: block; flex: none; min-height: 0; aspect-ratio: 1; overflow: hidden; background: var(--tvts-soft); }
.tvts-tcard-photo img { position: absolute; inset: 0; display: block; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; object-position: center; }
.tvts-tcard-photo .tvts-photo-blank { height: 100%; aspect-ratio: auto; font-size: 64px; }
.tvts-tcard-badge { position: absolute; top: 10px; right: 10px; padding: 3px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 600; line-height: 1.4; letter-spacing: .01em; }
/* The clinic's status colours (DESIGN.md: status-good, status-waiting, status-closed), as in the app. */
.tvts-tcard-badge--open { background: #E4F3EA; color: #2E7D5B; box-shadow: inset 0 0 0 1px #B3DCC5; }
.tvts-tcard-badge--limited { background: #FDF3DA; color: #9A6212; box-shadow: inset 0 0 0 1px #EBD59B; }
.tvts-tcard-badge--wait { background: #F3F2EF; color: #6E716A; box-shadow: inset 0 0 0 1px #E2E0DA; }
.tvts-tcard-body { display: flex; flex: 1; flex-direction: column; gap: 6px; padding: 18px 20px 20px; }
.tvts-tcard .tvts-tcard-name { margin: 0 !important; font-family: var(--tvts-head) !important; font-weight: 400 !important; font-size: 22px !important; line-height: 1.2 !important; text-transform: none !important; letter-spacing: normal !important; }
.tvts-tcard-name a { color: var(--tvts-ink) !important; text-decoration: none !important; }
.tvts-tcard-name a:hover { text-decoration: underline !important; }
.tvts-tcard .tvts-tcard-cred { margin: -2px 0 0 !important; font-size: 13px !important; line-height: 1.4 !important; color: var(--tvts-text) !important; }
.tvts-tcard .tvts-tcard-title { margin: 0 !important; font-size: 14px !important; font-weight: 500; line-height: 1.4 !important; color: var(--tvts-ink) !important; }
.tvts-tcard-tags { list-style: none; margin: 8px 0 2px !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 6px; }
.tvts-tcard-tags li { margin: 0 !important; padding: 4px 10px; border-radius: 999px; background: var(--tvts-soft); font-size: 12.5px; line-height: 1.4; color: var(--tvts-ink); }
.tvts-tcard-meta { display: grid; gap: 6px; margin: 8px 0 4px !important; padding: 12px 0 0 !important; border-top: 1px solid #efefef; }
.tvts-tcard-meta > div { display: flex; gap: 8px; align-items: flex-start; }
.tvts-tcard-meta dt { flex: none; margin: 0; padding-top: 2px; color: var(--tvts-accent); }
.tvts-tcard-meta dt svg { display: block; width: 16px; height: 16px; }
.tvts-tcard-meta dd { margin: 0; font-size: 13.5px; line-height: 1.45; color: var(--tvts-text); }
.tvts-tcard-actions { display: grid; gap: 8px; margin-top: auto; padding-top: 12px; }
.tvts-tcard .tvts-btn, .tvts-grid .tvts-btn { display: flex; align-items: center; justify-content: center; padding: 12px 16px; border: 1px solid var(--tvts-accent); border-radius: 10px; background: var(--tvts-accent); color: #fff !important; font-size: 15px; font-weight: 500; line-height: 1.2; text-decoration: none !important; transition: filter .2s; }
.tvts-tcard .tvts-btn--ghost { background: transparent; color: var(--tvts-ink) !important; }
.tvts-tcard .tvts-btn:hover, .tvts-grid .tvts-btn:hover { filter: brightness(.94); }
.tvts-tcard a:focus-visible, .tvts-grid a:focus-visible { outline: 2px solid var(--tvts-ink); outline-offset: 2px; }

/* ---- About Us: the live therapist list, three across beside the page's own sidebar ---- */
.tvts-grid-widget, .elementor-widget-shortcode:has(> .elementor-widget-container .tvts-grid) { width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; }
.tvts-grid { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.tvts-gcard { display: flex; flex-direction: column; gap: 6px; height: 100%; margin: 0 !important; padding: 0 0 20px; overflow: hidden; border-radius: 20px; background: var(--tvts-soft); }
.tvts-gcard-photo { position: relative; display: block; aspect-ratio: 1; margin-bottom: 10px; overflow: hidden; }
.tvts-gcard-photo img { position: absolute; inset: 0; display: block; width: 100% !important; height: 100% !important; object-fit: cover; object-position: top center; }
.tvts-gcard-photo .tvts-photo-blank { height: 100%; aspect-ratio: auto; font-size: 56px; }
.tvts-grid .tvts-gcard-name { margin: 0 18px !important; font-family: var(--tvts-head) !important; font-weight: 400 !important; font-size: 18px !important; line-height: 1.25 !important; text-transform: none !important; }
.tvts-gcard-name a { color: var(--tvts-ink) !important; text-decoration: none !important; }
.tvts-grid .tvts-gcard-title { margin: 0 18px 12px !important; font-size: 13px !important; line-height: 1.4 !important; color: var(--tvts-text) !important; }
.tvts-grid .tvts-gcard-more { align-self: flex-start; margin: auto 18px 0; padding: 10px 16px; font-size: 14px; }
@media (max-width: 1024px) { .tvts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 479px) { .tvts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .tvts-gcard { padding: 18px 10px 16px; } .tvts-gcard-photo { width: 92px; } .tvts-grid .tvts-gcard-name { font-size: 16px !important; } .tvts-grid .tvts-gcard-title { font-size: 12px !important; } .tvts-grid .tvts-gcard-more { padding: 8px 12px; font-size: 13px; } }
@media (max-width: 767px) { .tvts-page .tvts-h3 { font-size: 21px !important; margin-top: 26px !important; } .tvts-page--banner { margin-bottom: 36px; } }
@media (prefers-reduced-motion: reduce) { .tvts-tcard { transition: none; } .tvts-tcard:hover { transform: none; } }
/* About Us: the other team members' cards after the list, the same three across. */
.tvts-grid-widget ~ .team-member-item { flex: 0 0 calc((100% - 40px) / 3) !important; width: calc((100% - 40px) / 3) !important; max-width: calc((100% - 40px) / 3) !important; }
@media (max-width: 1024px) { .tvts-grid-widget ~ .team-member-item { flex-basis: calc((100% - 20px) / 2) !important; width: calc((100% - 20px) / 2) !important; max-width: calc((100% - 20px) / 2) !important; } }
@media (max-width: 479px) { .tvts-grid-widget ~ .team-member-item { flex-basis: calc((100% - 12px) / 2) !important; width: calc((100% - 12px) / 2) !important; max-width: calc((100% - 12px) / 2) !important; padding: 18px 10px 16px !important; } .tvts-grid-widget ~ .team-member-item .elementor-widget-image img { width: 92px !important; height: 92px !important; } }

/* Compact cards (owner, 2026-10-16): a round photo like the home strip, centred name and title, the details in
   two lines and the buttons side by side, so each card is about half as tall with more air around it. */
.tvts-tcard { align-items: center; padding: 26px 22px 22px; text-align: center; }
.tvts-tcard:hover { transform: none; }
.tvts-tcard-photo { width: 120px; flex: none; aspect-ratio: 1; border-radius: 50%; background: #fff; box-shadow: 0 4px 16px rgba(38,38,38,.10); transition: transform .25s; }
.tvts-tcard-photo img { border-radius: 50%; }
.tvts-tcard:hover .tvts-tcard-photo { transform: translateY(-2px); }
.tvts-tcard-photo .tvts-photo-blank { font-size: 44px; border-radius: 50%; }
.tvts-tcard-body { width: 100%; align-items: center; gap: 4px; padding: 14px 0 0; }
.tvts-tcard .tvts-tcard-name { font-size: 21px !important; }
.tvts-tcard .tvts-tcard-cred { margin: 0 !important; }
.tvts-tcard .tvts-tcard-title { margin: 2px 0 0 !important; font-size: 13.5px !important; }
.tvts-tcard-tags { justify-content: center; margin: 10px 0 0 !important; gap: 5px; }
.tvts-tcard-tags li { padding: 3px 9px; font-size: 12px; }
.tvts-tcard-meta { width: 100%; gap: 4px; margin: 12px 0 0 !important; padding: 12px 0 0 !important; }
.tvts-tcard-meta > div { justify-content: center; gap: 6px; }
.tvts-tcard-meta dt svg { width: 14px; height: 14px; }
.tvts-tcard-meta dd { font-size: 13px; line-height: 1.45; }
.tvts-tcard-actions { width: 100%; grid-template-columns: 1fr 1fr; gap: 8px; padding-top: 16px; }
.tvts-tcard .tvts-btn { padding: 10px 8px; font-size: 13.5px; border-radius: 8px; }
.tvts-tcard-badge { top: 12px; right: 12px; }
@media (max-width: 1024px) { .tvts-tcard-photo { width: 108px; } }
@media (max-width: 767px) { .tvts-tcard { padding: 22px 18px 18px; } .tvts-tcard-photo { width: 104px; } .tvts-tcard-actions { grid-template-columns: 1.45fr 1fr; } .tvts-tcard .tvts-btn { white-space: nowrap; } }
@media (prefers-reduced-motion: reduce) { .tvts-tcard-photo { transition: none; } .tvts-tcard:hover .tvts-tcard-photo { transform: none; } }
/* About Us, compact (owner, 2026-10-16): the same round photo and centred text as the team page cards. */
.tvts-gcard { align-items: center; gap: 4px; padding: 24px 16px 20px; text-align: center; }
.tvts-gcard-photo { width: 112px; flex: none; margin: 0 0 12px; border-radius: 50%; background: #fff; box-shadow: 0 4px 16px rgba(38,38,38,.10); }
.tvts-gcard-photo img, .tvts-gcard-photo .tvts-photo-blank { border-radius: 50%; }
.tvts-gcard-photo .tvts-photo-blank { font-size: 40px; }
.tvts-grid .tvts-gcard-name, .tvts-grid .tvts-gcard-title { margin-left: 0 !important; margin-right: 0 !important; }
.tvts-grid .tvts-gcard-more { align-self: center; margin: auto 0 0; }
/* The page's own cards for other team members, shown the same way beside the list. */
.tvts-grid-widget ~ .team-member-item { align-items: center !important; justify-content: flex-start !important; padding: 24px 16px 20px !important; text-align: center !important; }
.tvts-grid-widget ~ .team-member-item .elementor-widget-image { width: auto !important; }
.tvts-grid-widget ~ .team-member-item .elementor-widget-image img { width: 112px !important; height: 112px !important; max-width: none; object-fit: cover; object-position: top center; border-radius: 50% !important; background: #fff; box-shadow: 0 4px 16px rgba(38,38,38,.10); }
.tvts-grid-widget ~ .team-member-item .e-con, .tvts-grid-widget ~ .team-member-item .e-con-inner { align-items: center !important; text-align: center !important; padding: 0 !important; }
.tvts-grid-widget ~ .team-member-item .elementor-widget, .tvts-grid-widget ~ .team-member-item .elementor-heading-title { width: 100% !important; text-align: center !important; }
.tvts-grid-widget ~ .team-member-item .elementor-button-wrapper { display: flex; justify-content: center; }
.tvts-grid-widget ~ .team-member-item .elementor-widget-image { width: auto !important; margin-bottom: 8px; }
.tvts-grid-widget ~ .team-member-item, .tvts-grid-widget ~ .team-member-item .e-con { --align-items: center !important; --text-align: center; }
.tvts-grid-widget ~ .team-member-item * { text-align: center !important; }
.tvts-grid-widget ~ .team-member-item .elementor-widget-heading .elementor-heading-title { font-size: 18px !important; line-height: 1.25 !important; }
.tvts-grid-widget ~ .team-member-item .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title { font-family: var(--e-global-typography-text-font-family, "Sora"), sans-serif !important; font-size: 13px !important; line-height: 1.4 !important; color: var(--e-global-color-text, #838383) !important; }
.tvts-grid-widget ~ .team-member-item .elementor-button { padding: 10px 16px !important; font-size: 14px !important; }
@media (max-width: 479px) { .tvts-grid-widget ~ .team-member-item .elementor-widget-heading .elementor-heading-title { font-size: 16px !important; } .tvts-grid-widget ~ .team-member-item .elementor-widget-heading + .elementor-widget-heading .elementor-heading-title { font-size: 12px !important; } .tvts-grid-widget ~ .team-member-item .elementor-button { padding: 8px 12px !important; font-size: 13px !important; } }

/* Team page filter (owner, 2026-10-16): one line saying what it's for and a centred button, like the
   reference site; the panel opens full width under it. */
.tvts-filter-intro { max-width: 640px; margin: 0 auto 18px !important; text-align: center; font-family: var(--e-global-typography-text-font-family, "Sora"), sans-serif; font-size: 16px; line-height: 1.6; color: var(--e-global-color-text, #838383); }
.custom-team-filter .custom-mobile-filter-toggle { width: fit-content; min-height: 50px; margin: 0 auto 8px !important; padding: 0 26px; gap: 12px; justify-content: center; border: 0; border-radius: 10px; background: #E9E8E1; color: var(--e-global-color-primary, #262626); font-size: 15px; font-weight: 500; }
.custom-team-filter .custom-mobile-filter-toggle:hover { border: 0; background: #DFDED5; }
.custom-team-filter .custom-mobile-filter-toggle::before { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4h18l-7 8.5V19l-4 2v-8.5z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 4h18l-7 8.5V19l-4 2v-8.5z'/%3E%3C/svg%3E") center / contain no-repeat; }
.custom-team-filter .custom-mobile-filter-arrow { width: 7px; height: 7px; margin-left: 2px; border-width: 0 1.5px 1.5px 0; }
.custom-team-filter.mobile-filter-open .custom-mobile-filter-toggle { background: #DFDED5; }
.custom-team-filter.mobile-filter-open .apf-sidebar { margin-top: 10px !important; }

/* Circles a little larger (owner, 2026-10-16). */
.tvts-tcard-photo { width: 136px; }
.tvts-gcard-photo { width: 128px; }
.tvts-grid-widget ~ .team-member-item .elementor-widget-image img { width: 128px !important; height: 128px !important; }
@media (max-width: 1024px) { .tvts-tcard-photo { width: 124px; } }
@media (max-width: 767px) { .tvts-tcard-photo { width: 120px; } }
@media (max-width: 479px) { .tvts-gcard-photo { width: 112px; } .tvts-grid-widget ~ .team-member-item .elementor-widget-image img { width: 112px !important; height: 112px !important; } }

/* A speciality the visitor filtered for: first on the card, in a deeper sage tint with a tick. */
.tvts-tcard-tags li.tvts-tag--hit { display: inline-flex; align-items: center; gap: 4px; background: #DFDED5; color: var(--tvts-ink); font-weight: 600; box-shadow: inset 0 0 0 1px #C9C8BB; }
.tvts-tag--hit svg { width: 11px; height: 11px; flex: none; color: #6E6D5A; }

/* A detail the visitor filtered or searched for, in the card's two detail lines. */
.tvts-tcard-meta mark.tvts-hit { padding: 0 3px; border-radius: 3px; background: #E9E8E1; color: var(--tvts-ink); font-weight: 600; }

/* Our Team circles about 8% larger again (owner, 2026-10-19). */
.tvts-tcard-photo { width: 147px; }
@media (max-width: 1024px) { .tvts-tcard-photo { width: 134px; } }
@media (max-width: 767px) { .tvts-tcard-photo { width: 130px; } }

/* A therapist's own page (owner, 2026-10-19): the photo was the whole first screen on a phone. A round photo
   like the rest of the site, smaller, centred in its column; the facts card keeps its full width. */
.tvts-card-photo { display: flex; justify-content: center; padding: 8px 0 26px; }
.tvts-card-photo img, .tvts-card-photo .tvts-photo-blank { width: 300px !important; max-width: 100%; height: auto; aspect-ratio: 1 !important; border-radius: 50%; object-fit: cover; object-position: top center; box-shadow: 0 6px 22px rgba(38,38,38,.10); }
@media (max-width: 1024px) { .tvts-card-photo img, .tvts-card-photo .tvts-photo-blank { width: 260px !important; } }
@media (max-width: 767px) { .tvts-card-photo { padding: 0 0 22px; } .tvts-card-photo img, .tvts-card-photo .tvts-photo-blank { width: 220px !important; } }
