/* ============================================================================
   Morpheus8 V3 — preview-only styles, scoped under body.single-treatment.

   V3 is the V1 page plus the four things Jarek kept from V2: the navy breaker,
   the practitioner layout, the pricing block and a readable FAQ. The theme
   stylesheets load unmodified, so nothing here reaches V1 or staging.

   Tokens come from the theme:
     navy #1A3A52 · ink #284657 · muted #526879 · pale blue #EDF6F8
     ivory #FAF8F4 · bronze #9B7D4F · rule #D7DFE1
   ========================================================================= */

body.single-treatment {
  --v3-navy: var(--brand-primary, #1a3a52);
  --v3-ink: var(--brand-ink, #284657);
  --v3-muted: var(--brand-clay, #526879);
  --v3-blue: var(--brand-beige, #edf6f8);
  --v3-ivory: var(--brand-cream, #faf8f4);
  --v3-bronze: var(--brand-accent, #9b7d4f);
  --v3-rule: var(--rpa-rule, #d7dfe1);
  --v3-serif: var(--rpa-serif, "Cormorant Garamond", Georgia, serif);
  --v3-sans: "Alegreya Sans", system-ui, sans-serif;
}



/* ------------------------------------------------------------ scaffolding */
body.single-treatment .v3-sec { padding: 76px 0; }
body.single-treatment .v3-sec--plain { background: #fff; }
body.single-treatment .v3-sec--tint { background: var(--v3-blue); }
body.single-treatment .v3-sec .container,
body.single-treatment .v3-break .container { max-width: 1320px; }

body.single-treatment .v3-sec .overline {
  font-family: var(--v3-sans);
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--v3-muted);
  margin-bottom: 10px;
}
body.single-treatment .v3-sec > .container > .heading {
  font-family: var(--v3-serif);
  font-size: 46px;
  line-height: 1.1;
  color: var(--v3-navy);
  margin: 0 0 18px;
  text-wrap: balance;
}
body.single-treatment .v3-lede {
  font-family: var(--v3-sans);
  font-size: 18px;
  line-height: 1.6;
  color: var(--v3-ink);
  max-width: 64ch;
  margin: 0 0 38px;
}

/* ------------------------------------------- 1. the navy page-breaker band */
body.single-treatment .v3-break {
  background: var(--v3-navy);
  padding: 54px 0;
  margin: 0;
}
body.single-treatment .v3-break__line {
  font-family: var(--v3-serif);
  font-size: 34px;
  line-height: 1.22;
  color: #fff;
  margin: 0;
  max-width: 24ch;
  text-wrap: balance;
}
body.single-treatment .v3-break__sub {
  font-family: var(--v3-sans);
  font-size: 17px;
  line-height: 1.55;
  color: rgba(255, 255, 255, .8);
  margin: 14px 0 0;
  max-width: 60ch;
}

/* ------------------------------------------------------- 2. practitioner */
body.single-treatment .v3-prac {
  display: grid;
  grid-template-columns: 340px minmax(0, 1fr);
  gap: 56px;
  align-items: start;
}
body.single-treatment .v3-prac__portrait { margin: 0; }
body.single-treatment .v3-prac__portrait img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0;
  background: var(--v3-blue);
  border-bottom: 3px solid var(--v3-bronze);
}
body.single-treatment .v3-prac__portrait figcaption {
  font-family: var(--v3-sans);
  margin-top: 16px;
  line-height: 1.3;
}
body.single-treatment .v3-prac__portrait figcaption strong {
  display: block;
  font-family: var(--v3-serif);
  font-size: 29px;
  font-weight: 500;
  color: var(--v3-navy);
}
body.single-treatment .v3-prac__portrait figcaption span {
  font-size: 13px;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  color: var(--v3-muted);
}
body.single-treatment .v3-prac__body { font-family: var(--v3-sans); }
body.single-treatment .v3-prac__body > p {
  font-size: 18px;
  line-height: 1.65;
  color: var(--v3-ink);
  max-width: 66ch;
  margin: 0 0 22px;
}
body.single-treatment .v3-prac__subhead {
  font-family: var(--v3-sans);
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--v3-navy);
  margin: 30px 0 18px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--v3-navy);
}
body.single-treatment .v3-prac__points { margin: 0 0 26px; }
body.single-treatment .v3-prac__points dt {
  font-family: var(--v3-serif);
  font-size: 23px;
  color: var(--v3-navy);
  margin-top: 20px;
}
body.single-treatment .v3-prac__points dt:first-child { margin-top: 0; }
body.single-treatment .v3-prac__points dd {
  margin: 5px 0 0;
  font-size: 17px;
  line-height: 1.6;
  color: var(--v3-ink);
  max-width: 64ch;
}
body.single-treatment .v3-prac__credentials {
  font-size: 16px;
  line-height: 1.55;
  color: var(--v3-muted);
  border-left: 3px solid var(--v3-bronze);
  padding-left: 18px;
  margin: 0 0 22px;
}
body.single-treatment .v3-prac__link a {
  font-size: 16px;
  color: var(--v3-navy);
  text-decoration: none;
  border-bottom: 1px solid var(--v3-bronze);
  padding-bottom: 3px;
}

/* --------------------------------------- 3. compare / combine switcher */
body.single-treatment .v3-cmp__switch {
  display: inline-flex;
  border: 1px solid var(--v3-navy);
  margin-bottom: 30px;
  background: #fff;
}
body.single-treatment .v3-cmp__switch button {
  font-family: var(--v3-sans);
  font-size: 16px;
  letter-spacing: .3px;
  padding: 13px 26px;
  min-height: 48px;
  border: 0;
  background: transparent;
  color: var(--v3-navy);
  cursor: pointer;
}
body.single-treatment .v3-cmp__switch button + button { border-left: 1px solid var(--v3-navy); }
body.single-treatment .v3-cmp__switch button[aria-selected="true"] { background: var(--v3-navy); color: #fff; }

body.single-treatment .v3-cmp__panel[hidden] { display: none; }
body.single-treatment .v3-cmp__scroll { overflow-x: auto; }
body.single-treatment .v3-cmp__table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
  font-family: var(--v3-sans);
  background: #fff;
}
body.single-treatment .v3-cmp__table th,
body.single-treatment .v3-cmp__table td {
  text-align: left;
  padding: 15px 18px;
  font-size: 16px;
  line-height: 1.45;
  vertical-align: top;
  border-bottom: 1px solid var(--v3-rule);
}
body.single-treatment .v3-cmp__corner { background: #fff; border-bottom: 0; }
body.single-treatment .v3-cmp__table thead th {
  background: var(--v3-navy);
  color: #fff;
  border-bottom: 0;
}
body.single-treatment .v3-cmp__table thead th.is-self { background: #122a3c; }
body.single-treatment .v3-cmp__name {
  display: block;
  font-family: var(--v3-serif);
  font-size: 21px;
  line-height: 1.2;
}
body.single-treatment .v3-cmp__sub {
  display: block;
  font-size: 13px;
  line-height: 1.35;
  color: rgba(255, 255, 255, .72);
  margin-top: 3px;
}
body.single-treatment .v3-cmp__table tbody th {
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--v3-muted);
  width: 150px;
  background: var(--v3-ivory);
}
body.single-treatment .v3-cmp__table tbody td { color: var(--v3-ink); }
body.single-treatment .v3-cmp__table tfoot td { border-bottom: 0; padding-top: 20px; }
body.single-treatment .v3-cmp__link {
  display: inline-block;
  font-size: 15px;
  color: var(--v3-navy);
  text-decoration: none;
  border-bottom: 1px solid var(--v3-bronze);
  padding-bottom: 2px;
}
body.single-treatment .v3-cmp__note {
  font-family: var(--v3-sans);
  font-size: 15px;
  line-height: 1.6;
  color: var(--v3-muted);
  margin: 26px 0 0;
  max-width: 70ch;
  border-left: 3px solid var(--v3-bronze);
  padding-left: 18px;
}

/* ------------------------------------------------------------ 4. pricing */
body.single-treatment .v3-pricing__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  gap: 52px;
  align-items: start;
}
body.single-treatment .v3-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--v3-sans);
  margin: 0 0 32px;
}
body.single-treatment .v3-table caption {
  text-align: left;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--v3-bronze);
  padding-bottom: 12px;
}
body.single-treatment .v3-table th,
body.single-treatment .v3-table td {
  text-align: left;
  padding: 15px 18px;
  font-size: 17px;
  border-bottom: 1px solid var(--v3-rule);
}
body.single-treatment .v3-table thead th {
  background: var(--v3-navy);
  color: #fff;
  font-size: 13px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  font-weight: 500;
  border-bottom: 0;
}
body.single-treatment .v3-table tbody th { font-weight: 400; color: var(--v3-ink); }
body.single-treatment .v3-table td {
  text-align: right;
  color: var(--v3-navy);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
body.single-treatment .v3-table tbody tr:nth-child(odd) th,
body.single-treatment .v3-table tbody tr:nth-child(odd) td { background: var(--v3-ivory); }
body.single-treatment .v3-table--addon thead th { background: var(--v3-muted); }
body.single-treatment .v3-pricing__note {
  font-family: var(--v3-sans);
  font-size: 15px;
  line-height: 1.55;
  color: var(--v3-muted);
  margin: 0;
}
body.single-treatment .v3-pricing__course {
  background: var(--v3-blue);
  padding: 34px 36px;
  border-top: 3px solid var(--v3-navy);
  font-family: var(--v3-sans);
}
body.single-treatment .v3-pricing__course h3 {
  font-family: var(--v3-serif);
  font-size: 29px;
  color: var(--v3-navy);
  margin: 0 0 16px;
}
body.single-treatment .v3-pricing__course p {
  font-size: 17px;
  line-height: 1.6;
  color: var(--v3-ink);
  margin: 0 0 16px;
}
body.single-treatment .v3-pricing__cta { margin: 24px 0 12px; }
body.single-treatment .v3-pricing__cta a {
  display: inline-block;
  background: var(--v3-navy);
  color: #fff;
  font-size: 16px;
  letter-spacing: .8px;
  padding: 15px 30px;
  text-decoration: none;
  min-height: 48px;
}
body.single-treatment .v3-pricing__cta a:hover { background: var(--rpa-hover, #2c4a60); }
body.single-treatment .v3-pricing__small { font-size: 15px; color: var(--v3-muted); margin: 0; }

/* ----------------------------------------------------------------- 5. FAQ
   One category at a time, chosen from a tab row. Three columns were cramped the
   moment a question wrapped. A single column at a 58ch measure reads calmly and
   the answer no longer has to squeeze into a third of the width. */
body.single-treatment .v3-faq { background: #fff; }
body.single-treatment .v3-faq__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  border-bottom: 2px solid var(--v3-rule);
  margin-bottom: 8px;
}
body.single-treatment .v3-faq__tabs button {
  font-family: var(--v3-sans);
  font-size: 16px;
  letter-spacing: .3px;
  color: var(--v3-muted);
  background: transparent;
  border: 0;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  padding: 16px 26px 14px 0;
  margin-right: 34px;
  min-height: 48px;
  cursor: pointer;
  display: inline-flex;
  align-items: baseline;
  gap: 9px;
}
body.single-treatment .v3-faq__tabs button:hover { color: var(--v3-navy); }
body.single-treatment .v3-faq__tabs button[aria-selected="true"] {
  color: var(--v3-navy);
  font-weight: 700;
  border-bottom-color: var(--v3-navy);
}
body.single-treatment .v3-faq__count {
  font-size: 12px;
  letter-spacing: 1px;
  color: var(--v3-bronze);
  font-weight: 400;
}
body.single-treatment .v3-faq__panel[hidden] { display: none; }
body.single-treatment .v3-faq__panel { max-width: 880px; }
body.single-treatment .v3-faq__item { border-bottom: 1px solid var(--v3-rule); }
body.single-treatment .v3-faq__item > summary {
  font-family: var(--v3-serif);
  font-size: 23px;
  line-height: 1.3;
  color: var(--v3-navy);
  cursor: pointer;
  padding: 21px 42px 21px 0;
  position: relative;
  list-style: none;
  min-height: 48px;
}
body.single-treatment .v3-faq__item > summary::-webkit-details-marker { display: none; }
body.single-treatment .v3-faq__item > summary::after {
  content: "+";
  position: absolute;
  right: 4px;
  top: 20px;
  font-family: var(--v3-sans);
  font-size: 24px;
  line-height: 1;
  color: var(--v3-bronze);
}
body.single-treatment .v3-faq__item[open] > summary { padding-bottom: 8px; }
body.single-treatment .v3-faq__item[open] > summary::after { content: "\2212"; }
body.single-treatment .v3-faq__item:hover > summary { color: #0f2838; }
body.single-treatment .v3-faq__answer { padding: 0 0 24px; }
body.single-treatment .v3-faq__answer p {
  font-family: var(--v3-sans);
  font-size: 17px;
  line-height: 1.7;
  color: var(--v3-ink);
  margin: 0 0 12px;
  max-width: 58ch;
}
body.single-treatment .v3-faq__answer p:last-child { margin-bottom: 0; }
body.single-treatment .v3-faq__answer a { color: var(--v3-navy); }

/* --------------------------------- team: equal cards, mirroring --stacked
   The theme's own block renders a grid of cards, each with a media block, name,
   role and short summary. V3 follows that shape so this is the same component
   pattern the rest of the site uses, not a one-off. */
body.single-treatment .v3-team__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px;
  max-width: 1180px;
}
body.single-treatment .v3-team__card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-top: 3px solid var(--v3-navy);
  padding: 0 0 4px;
}
body.single-treatment .v3-team__media {
  background: var(--v3-blue);
  aspect-ratio: 4 / 5;
  overflow: hidden;
  display: grid;
  place-items: center;
  margin-bottom: 20px;
}
body.single-treatment .v3-team__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  border-radius: 0;
}
/* Grace and SK are 250px circular crops with transparent corners, so they are
   centred at their native size rather than stretched to fill the frame */
body.single-treatment .v3-team__card:not(:first-child) .v3-team__media img {
  width: auto;
  height: auto;
  max-width: 250px;
  max-height: 100%;
  object-fit: contain;
}
body.single-treatment .v3-team__name {
  font-family: var(--v3-serif);
  font-size: 27px;
  line-height: 1.15;
  color: var(--v3-navy);
  margin: 0 0 4px;
}
body.single-treatment .v3-team__role {
  font-family: var(--v3-sans);
  font-size: 12px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--v3-bronze);
  margin: 0 0 14px;
}
body.single-treatment .v3-team__bio {
  font-family: var(--v3-sans);
  font-size: 16px;
  line-height: 1.6;
  color: var(--v3-ink);
  margin: 0 0 18px;
}
body.single-treatment .v3-team__link {
  margin-top: auto;
  align-self: flex-start;
  font-family: var(--v3-sans);
  font-size: 15px;
  color: var(--v3-navy);
  text-decoration: none;
  border-bottom: 1px solid var(--v3-bronze);
  padding-bottom: 2px;
}



/* ------------------------------------------- related reading, article slider */
body.single-treatment .v3-read__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 30px;
}
body.single-treatment .v3-read__head .heading { margin-bottom: 0; }
body.single-treatment .v3-read__nav { display: flex; gap: 10px; flex: 0 0 auto; }
body.single-treatment .v3-read__arrow {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 1px solid var(--v3-navy);
  background: #fff;
  color: var(--v3-navy);
  cursor: pointer;
}
body.single-treatment .v3-read__arrow:hover:not(:disabled) { background: var(--v3-navy); color: #fff; }
body.single-treatment .v3-read__arrow:disabled { opacity: .3; cursor: default; }
body.single-treatment .v3-read__track {
  list-style: none;
  margin: 0;
  padding: 0 0 6px;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(300px, 1fr);
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
}
body.single-treatment .v3-read__slide { scroll-snap-align: start; }
body.single-treatment .v3-read__slide article {
  background: #fff;
  border-top: 3px solid var(--v3-navy);
  padding: 24px 26px 26px;
  height: 100%;
  display: flex;
  flex-direction: column;
  font-family: var(--v3-sans);
}
body.single-treatment .v3-read__kicker {
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--v3-bronze);
  margin: 0 0 12px;
}
body.single-treatment .v3-read__title {
  font-family: var(--v3-serif);
  font-size: 24px;
  line-height: 1.24;
  margin: 0 0 12px;
}
body.single-treatment .v3-read__title a { color: var(--v3-navy); text-decoration: none; }
body.single-treatment .v3-read__title a:hover { text-decoration: underline; text-underline-offset: 3px; }
body.single-treatment .v3-read__excerpt {
  font-size: 15px;
  line-height: 1.6;
  color: var(--v3-muted);
  margin: 0 0 18px;
}
body.single-treatment .v3-read__more {
  margin: auto 0 0;
  font-size: 13px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--v3-navy);
}
body.single-treatment .v3-read__rail { margin-top: 42px; padding-top: 28px; border-top: 1px solid #c8d8de; }
body.single-treatment .v3-read__rail h3 {
  font-family: var(--v3-sans);
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--v3-navy);
  margin: 0 0 16px;
}
body.single-treatment .v3-read__rail ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
}
body.single-treatment .v3-read__rail a {
  display: inline-block;
  font-family: var(--v3-sans);
  font-size: 15px;
  color: var(--v3-navy);
  text-decoration: none;
  background: #fff;
  border: 1px solid #c8d8de;
  padding: 9px 16px;
  min-height: 40px;
  line-height: 22px;
}
body.single-treatment .v3-read__rail a:hover { border-color: var(--v3-navy); }

/* ------------------------------------------- related, image column removed */
body.single-treatment .v3-related .block-content-image-video__copy ul { columns: 2; gap: 48px; }
body.single-treatment .v3-related .v3-related-col { max-width: none; }

body.single-treatment .v3-sec :focus-visible,
body.single-treatment .v3-cmp__switch button:focus-visible {
  outline: 2px solid var(--v3-navy);
  outline-offset: 3px;
}
body.single-treatment [id] { scroll-margin-top: 120px; }

/* ---------------------------------------------------------------- tablet */
@media (max-width: 1100px) {
  body.single-treatment .v3-team__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }

  body.single-treatment .v3-pricing__grid { grid-template-columns: 1fr; gap: 38px; }
  body.single-treatment .v3-prac { grid-template-columns: 260px minmax(0, 1fr); gap: 38px; }
}

/* ---------------------------------------------------------------- mobile */
@media (max-width: 760px) {
  body.single-treatment .v3-sec { padding: 44px 0; }
  body.single-treatment .v3-sec > .container > .heading { font-size: 33px; }
  body.single-treatment .v3-lede { font-size: 17px; margin-bottom: 26px; }

  body.single-treatment .v3-break { padding: 36px 0; }
  body.single-treatment .v3-break__line { font-size: 26px; }
  body.single-treatment .v3-break__sub { font-size: 16px; }

  body.single-treatment .v3-prac { grid-template-columns: 1fr; gap: 24px; }
  body.single-treatment .v3-prac__portrait { max-width: 280px; }
  body.single-treatment .v3-prac__points dt { font-size: 21px; }

  body.single-treatment .v3-cmp__switch { display: flex; width: 100%; }
  body.single-treatment .v3-cmp__switch button { flex: 1; padding: 13px 10px; font-size: 15px; }
  body.single-treatment .v3-cmp__table { min-width: 620px; }
  body.single-treatment .v3-cmp__table tbody th { width: 110px; font-size: 11px; }

  body.single-treatment .v3-pricing__course { padding: 26px 22px; }
  body.single-treatment .v3-table th, body.single-treatment .v3-table td { padding: 13px 14px; font-size: 16px; }

  /* the FAQ keeps its larger type on mobile; the tabs scroll instead of wrapping */
  body.single-treatment .v3-faq__tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
  }
  body.single-treatment .v3-faq__tabs::-webkit-scrollbar { display: none; }
  body.single-treatment .v3-faq__tabs button { white-space: nowrap; margin-right: 24px; font-size: 15px; }
  body.single-treatment .v3-faq__item > summary { font-size: 20px; padding-right: 36px; }
  body.single-treatment .v3-faq__answer p { font-size: 17px; }

  body.single-treatment .v3-team__grid { grid-template-columns: 1fr; gap: 30px; max-width: 420px; }
  body.single-treatment .v3-team__media { aspect-ratio: 3 / 2; }
  body.single-treatment .v3-team__name { font-size: 24px; }


  body.single-treatment .v3-read__head { flex-direction: column; align-items: flex-start; gap: 16px; }
  body.single-treatment .v3-read__track { grid-auto-columns: minmax(250px, 82%); gap: 16px; }
  body.single-treatment .v3-read__title { font-size: 21px; }

  body.single-treatment .v3-related .block-content-image-video__copy ul { columns: 1; }
}

body.single-treatment { overflow-x: hidden; }

/* hero facts card: pricing as a quiet text link, not a competing button */
body.single-treatment .v3-hero-pricelink { margin: 14px 0 0; }
body.single-treatment .v3-hero-pricelink a {
  font-family: var(--v3-sans);
  font-size: 15px;
  letter-spacing: .3px;
  color: var(--v3-navy);
  text-decoration: none;
  border-bottom: 1px solid var(--v3-bronze);
  padding-bottom: 2px;
}
body.single-treatment .v3-hero-pricelink a::after { content: " \2192"; }
body.single-treatment .v3-hero-pricelink a:hover { color: var(--rpa-hover, #2c4a60); }

/* on-page jump links: a thin band under the hero, not sticky */
body.single-treatment .v3-jump { background: #fff; border-bottom: 1px solid var(--v3-rule); }
body.single-treatment .v3-jump ul {
  list-style: none;
  margin: 0 auto;
  padding: 0 32px;
  max-width: 1320px;
  display: flex;
  gap: 0 34px;
}
body.single-treatment .v3-jump a {
  display: block;
  padding: 16px 0 13px;
  font-family: var(--v3-sans);
  font-size: 13px;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  color: var(--v3-muted);
  text-decoration: none !important;   /* the theme underlines every content link */
  border-bottom: 2px solid transparent;
}
body.single-treatment .v3-jump a:hover,
body.single-treatment .v3-jump a:focus-visible,
body.single-treatment .v3-jump a[aria-current="true"] { color: var(--v3-navy); border-bottom-color: var(--v3-bronze); }
@media (max-width: 760px) {
  body.single-treatment .v3-jump ul {
    padding: 0 16px;
    gap: 0 16px;
    justify-content: space-between;
    overflow-x: auto;
    scrollbar-width: none;
  }
  body.single-treatment .v3-jump ul::-webkit-scrollbar { display: none; }
  body.single-treatment .v3-jump a { font-size: 12px; letter-spacing: .5px; white-space: nowrap; padding: 14px 0 11px; }
}

/* hero "Ask us a question": a small menu of the clinic's own contact options */
body.single-treatment .bht-hero-ctas { position: relative; }
body.single-treatment .v3-ask { position: relative; display: inline-block; }
body.single-treatment .v3-ask__btn { cursor: pointer; font: inherit; }
body.single-treatment .v3-ask__menu {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  z-index: 40;
  width: 330px;
  max-width: calc(100vw - 40px);
  background: #fff;
  border-top: 3px solid var(--v3-bronze);
  box-shadow: 0 12px 32px rgba(16, 33, 47, .22);
  padding: 18px 20px 16px;
  text-align: left;
}
body.single-treatment .v3-ask__menu[hidden] { display: none; }
body.single-treatment .v3-ask__title {
  font-family: var(--v3-sans);
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--v3-muted);
  margin: 0 0 8px;
}
body.single-treatment .v3-ask__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  min-height: 48px;
  border-bottom: 1px solid var(--v3-rule);
  font-family: var(--v3-sans);
  font-size: 15px;
  line-height: 1.35;
  color: var(--v3-ink);
  text-decoration: none !important;
  word-break: break-word;
}
body.single-treatment .v3-ask__item strong { display: block; font-size: 16px; color: var(--v3-navy); }
body.single-treatment .v3-ask__item:hover strong,
body.single-treatment .v3-ask__item:focus-visible strong { text-decoration: underline; text-underline-offset: 3px; }
body.single-treatment .v3-ask__ico {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  background: var(--v3-blue);
  color: var(--v3-navy);
}
body.single-treatment .v3-ask__note {
  font-family: var(--v3-sans);
  font-size: 13px;
  color: var(--v3-muted);
  margin: 12px 0 0;
}
@media (max-width: 760px) {
  body.single-treatment .v3-ask { display: block; }
  body.single-treatment .v3-ask__menu { left: 50%; transform: translateX(-50%); width: min(330px, calc(100vw - 40px)); }
}

/* "Ask us a question" is the second hero action, so it takes the theme's text-link
   treatment. The wrapper stops the theme's :nth-child(2) rule reaching it and lets
   :first-child (the white box) match instead, so the treatment is restated here. */
body.single-treatment .block-hero-treatment .bht-hero-ctas .v3-ask .bht-btn.v3-ask__btn {
  background: none !important;
  border: 0 !important;
  color: #fff !important;
  padding: 0 !important;
  min-height: 2.75rem;
  box-shadow: none !important;
}
body.single-treatment .block-hero-treatment .bht-hero-ctas .v3-ask .bht-btn.v3-ask__btn:hover {
  text-decoration: underline !important;
  text-underline-offset: 5px;
}
/* let the menu spill out of the hero; the background keeps its own clipping layer */
body.single-treatment .block-hero-treatment { overflow: visible; z-index: 3; }


/* ===================== staging additions (real blocks) ===================== */

/* hero facts card: the one remaining card button reads as a quiet text link */
body.single-treatment .block-hero-treatment .bht-card-ctas { margin-top: 14px; display: block; }
body.single-treatment .block-hero-treatment .bht-card-ctas .bht-btn {
  display: inline-flex !important;
  width: auto !important;
  min-height: 0 !important;
  background: none !important;
  border: 0 !important;
  border-bottom: 1px solid var(--v3-bronze) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 0 2px !important;
  gap: 6px;
  font-family: var(--v3-sans);
  font-size: 15px !important;
  letter-spacing: .3px;
  color: var(--v3-navy) !important;
  justify-content: flex-start;
}
body.single-treatment .block-hero-treatment .bht-card-ctas .bht-btn svg { width: 14px; height: 14px; }

/* FAQ: the real accordion block, rebuilt as tabs by rpa-v3.js. The block keeps
   its markup server-side, so Google still gets the FAQ structured data. */
body.single-treatment .v3-faq-tabs .block-content-accordion-inner > [class*="col-"] { flex: 0 0 100%; max-width: 100%; }
body.single-treatment .v3-faq-tabs.v3-faq-ready .block-content-accordion__image-col > .block-accordion-faq__item { display: none; }
body.single-treatment .v3-faq-tabs .block-content-accordion__pre-heading {
  font-family: var(--v3-sans); font-size: 11px; letter-spacing: 2px; text-transform: uppercase;
  color: var(--v3-muted); margin-bottom: 10px;
}
body.single-treatment .v3-faq-tabs .block-content-accordion__heading .heading {
  font-family: var(--v3-serif); font-size: 46px; line-height: 1.1; color: var(--v3-navy); margin: 0 0 18px;
}
body.single-treatment .v3-faq__item > summary .faq-q { display: inline !important; }
@media (max-width: 760px) {
  body.single-treatment .v3-faq-tabs .block-content-accordion__heading .heading { font-size: 33px; }
}


/* related reading: the theme blog slider block, with the treatment links rail
   underneath as a continuation of the same tinted band */
body.single-treatment .v3-read--rail-only {
  background: var(--brand-cream, #faf8f4) !important;   /* same ground as the blog slider above */
  padding-top: 0 !important;
}
body.single-treatment .v3-read--rail-only .v3-read__rail { margin-top: 0; border-top-color: var(--v3-rule); }

/* ------------------------------------------- generic pages (v4, 2 Oct)
   The course box sits in the theme pricing block's text column, built from the
   page's own Quick facts. On a tinted section it turns white so it still reads
   as a box; the same applies to the Morpheus8 pricing section. */
body.single-treatment .block-content-table .v3-pricing__course { margin-top: 8px; }
body.single-treatment .block-content-table.bg--tertiary .v3-pricing__course,
body.single-treatment .v3-sec--tint .v3-pricing__course { background: #fff; }
body.single-treatment .v3-pricing__course .v3-course__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 18px;
  margin: 0;
  padding: 11px 0;
  border-bottom: 1px solid var(--v3-rule);
}
body.single-treatment .v3-pricing__course .v3-course__row + p:not(.v3-course__row) { margin-top: 18px; }
body.single-treatment .v3-course__lab {
  font-size: 12px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--v3-muted);
  flex: 0 0 auto;
}
body.single-treatment .v3-course__val { text-align: right; color: var(--v3-navy); font-size: 17px; }
body.single-treatment .block-content-table .v3-pricing__cta a { color: #fff; }

/* navy breaker with a consultation button (generic pages) */
body.single-treatment .v3-break__cta { margin: 26px 0 0; }
body.single-treatment .v3-break__btn {
  display: inline-block;
  min-height: 48px;
  padding: 14px 30px;
  border: 1px solid #fff;
  color: #fff;
  font-family: var(--v3-sans);
  font-size: 16px;
  letter-spacing: .8px;
  text-decoration: none;
  transition: background-color .2s, color .2s;
}
body.single-treatment .v3-break__btn:hover,
body.single-treatment .v3-break__btn:focus-visible { background: #fff; color: var(--v3-navy); }

/* "Meet the team" pages (v6, 2 Oct): the theme turns three or more practitioners
   into a sideways rail. On a page that exists to show the whole team, wrap it
   into rows of two instead, and hide the rail arrows. */
body .block-meet-the-team.v3-team-page .mt-grid {
  flex-wrap: wrap;
  overflow: visible;
  scroll-snap-type: none;
  row-gap: 48px;
}
body .block-meet-the-team.v3-team-page .mt-rail-controls { display: none; }

/* Visible grounds (v7, 2 Oct): the theme's bg--tertiary is the brand "cream", which
   is #FAF8F4 / #FAF8F5 and reads as white, so the alternation could not be seen.
   On V3 treatment pages the tinted band uses the brand's washed tint instead:
   pale blue in London, lilac in Berkhamsted (body.rpa-clinic--berkhamsted tokens). */
body.single-treatment .bg--tertiary { background-color: var(--brand-beige, #edf6f8) !important; }

/* Pricing page v2 (v8, 3 Oct): the price list laid out like Cannelle's, one panel per
   treatment with the description and links beside the table, and a treatment menu at
   the top. Scoped to .rpa-prices--v2, which only the two Pricing pages carry. Every
   colour is a theme token, so Berkhamsted repaints to plum on its own. */
body .rpa-prices--v2 .block-basic-content__wrapper > div { max-width: none; }

/* menu */
body .rpa-pmenu { padding: 8px 0 34px; margin: 0 0 10px; border-bottom: 1px solid var(--rpa-rule); }
body .rpa-pmenu__eb { font-family: var(--rpa-sans); font-size: 12px; letter-spacing: 1.8px; text-transform: uppercase; color: var(--rpa-muted); margin: 0 0 10px; }
body .rpa-prices--v2 h2.rpa-pmenu__h { font-size: clamp(1.75rem, 1.35rem + 1.3vw, 2.375rem); margin: 0; padding: 0; border: 0; }
body .rpa-pmenu__p { font-family: var(--rpa-sans); font-size: 1.0625rem; line-height: 1.55; color: var(--rpa-muted); max-width: 62ch; margin: 10px 0 0; }
body .rpa-pmenu__cols { display: grid; grid-template-columns: 1fr; gap: 26px 40px; margin-top: 28px; }
body .rpa-pmenu__cat { font-family: var(--rpa-sans); font-size: 12px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; margin: 0 0 10px; }
body #content .rpa-pmenu__cat a { color: var(--rpa-navy); text-decoration: none; }
body .rpa-pmenu__list { list-style: none; margin: 0; padding: 0; }
body .rpa-pmenu__list li { margin: 0; padding: 5px 0; font-family: var(--rpa-sans); font-size: 1rem; line-height: 1.4; }
body #content .rpa-pmenu__list a { color: var(--rpa-ink); text-decoration: none; }
body #content .rpa-pmenu__list a:hover, body #content .rpa-pmenu__cat a:hover { color: var(--rpa-hover); text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 480px) and (max-width: 767px) {
  body .rpa-pmenu__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 768px) {
  body .rpa-pmenu__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body .rpa-pmenu__col + .rpa-pmenu__col { border-left: 1px solid var(--rpa-rule); padding-left: 40px; }
}

/* category rule */
body .rpa-prices--v2 h2.rpa-prices__cat { scroll-margin-top: 110px; margin: 0 0 8px; padding: 1.4em 0 .45em; border-bottom: 2px solid var(--rpa-navy); }

/* one treatment: description beside the table, alternate panels tinted */
body .rpa-price { display: grid; grid-template-columns: 1fr; gap: 22px 56px; padding: 34px 0; border-bottom: 1px solid var(--rpa-rule); scroll-margin-top: 90px; }
body .rpa-price:nth-of-type(even) { background: var(--rpa-blue); padding-left: 28px; padding-right: 28px; margin: 0 -28px; border-bottom-color: transparent; }
body .rpa-prices--v2 .rpa-price h3 { font-family: var(--rpa-serif) !important; font-size: clamp(1.5rem, 1.25rem + .8vw, 1.875rem); font-weight: 500 !important; line-height: 1.15; letter-spacing: -.005em; color: var(--rpa-navy); margin: 0 0 12px; }
body #content .rpa-price h3 a { color: var(--rpa-navy); text-decoration: none; }
body #content .rpa-price h3 a:hover { color: var(--rpa-hover); }
body .rpa-price__about p { font-family: var(--rpa-sans); font-size: 1.0625rem; line-height: 1.6; color: var(--rpa-ink); margin: 0; max-width: 46ch; }
body #content .rpa-price__learn { font-weight: 600; color: var(--rpa-navy); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; white-space: nowrap; }
body .rpa-price__cta { margin-top: 20px !important; }
body #content a.rpa-price__btn { display: inline-block; min-height: 46px; padding: 12px 26px; background: var(--rpa-navy); color: #fff; border: 1px solid var(--rpa-navy); font-family: var(--rpa-sans); font-size: 15px; letter-spacing: .8px; text-decoration: none; transition: background-color var(--rpa-motion), color var(--rpa-motion); }
body #content a.rpa-price__btn:hover, body #content a.rpa-price__btn:focus-visible { background: #fff; color: var(--rpa-navy); }
body .rpa-price__tbl { min-width: 0; }
body .rpa-price .rpa-prices__table { margin: 0; }
body .rpa-price:nth-of-type(even) .rpa-prices__table tbody tr:nth-child(even) th,
body .rpa-price:nth-of-type(even) .rpa-prices__table tbody tr:nth-child(even) td { background: var(--rpa-ivory); }
@media (min-width: 992px) {
  body .rpa-price { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; padding: 44px 0; }
  body .rpa-price:nth-of-type(even) { padding-left: 36px; padding-right: 36px; margin: 0 -36px; }
}
@media (max-width: 575px) {
  body .rpa-price:nth-of-type(even) { padding-left: 16px; padding-right: 16px; margin: 0 -16px; }
}
