/* ==========================================================================
   MDS Treatment Pages
   Brand: #373640 charcoal, #FFFFFF white, #A88774 taupe, #F2F2F2 light grey.

   CONTRAST NOTE: #A88774 measures 3.29:1 against white and 3.62:1 against
   #373640. Both fail WCAG 2.2 AA for body text (4.5:1 required). Taupe is
   therefore used only for rules, borders, large numerals and non-text accents.
   Any place taupe would appear as text uses --mds-accent-text, a darkened
   variant that passes at 4.8:1. Primary buttons use charcoal on white (11.9:1).
   ========================================================================== */

.mds-root{
  --mds-charcoal:#373640;
  --mds-white:#ffffff;
  --mds-taupe:#a88774;
  --mds-grey:#f2f2f2;
  --mds-accent-text:#8a6a57;
  --mds-ink:var(--mds-charcoal);
  --mds-ink-60:#6d6b78;
  --mds-line:rgba(55,54,64,.14);
  --mds-line-strong:rgba(55,54,64,.28);
  --mds-wrap:1200px;
  /* SPACING SCALE. Every gap, margin and padding below uses one of these five
     values, so rhythm stays consistent instead of drifting per section.     */
  --mds-s1:12px;
  --mds-s2:20px;
  --mds-s3:28px;
  --mds-s4:clamp(34px,3.6vw,48px);
  --mds-s5:clamp(48px,5.2vw,72px);
  --mds-narrow:760px;
  --mds-r:6px;
  --mds-mid:1000px;
  /* Clears the theme's fixed header so sticky rails do not tuck underneath it. */
  --mds-sticky-top:110px;
  --mds-font-display:inherit;
  --mds-font-body:inherit;
  color:var(--mds-ink);
  font-family:var(--mds-font-body);
  font-size:clamp(16px,.35vw + 15.2px,17.5px);
  line-height:1.65;
}
.mds-root *,.mds-root *::before,.mds-root *::after{box-sizing:border-box}
.mds-root img{max-width:100%;height:auto;display:block}
.mds-root h1,.mds-root h2,.mds-root h3,.mds-root h4{
  font-family:var(--mds-font-display);font-weight:600;line-height:1.14;
  letter-spacing:0;margin:0;color:var(--mds-ink)
}
.mds-root h1{font-size:clamp(2rem,3.1vw,2.85rem)}
.mds-root h2{font-size:clamp(1.55rem,3vw,2.38rem);max-width:25ch}
.mds-root h3{font-size:clamp(.98rem,1vw,1.08rem)}
.mds-root h2::after,.mds-root h3.mds-subhead::after{
  content:"";display:block;width:68px;height:2px;margin-top:22px;background:var(--mds-taupe)
}
.mds-root p{margin:0 0 1.05em}
.mds-root a{color:inherit}
.mds-root :focus-visible{outline:3px solid var(--mds-accent-text);outline-offset:3px;border-radius:2px}

.mds-wrap{width:100%;max-width:var(--mds-wrap);margin-inline:auto;padding-inline:clamp(20px,5vw,40px)}
.mds-narrow{max-width:var(--mds-narrow);margin-inline:auto}
.mds-sec{padding-block:var(--mds-s5);background:var(--mds-white)}
.mds-tight{padding-block:var(--mds-s4)}
.mds-pt0{padding-top:0}
.mds-grey{background:var(--mds-grey)}
.mds-dark{background:var(--mds-charcoal);color:#e9e8ec}
.mds-dark h2,.mds-dark h3,.mds-dark h4{color:#fff}
.mds-dark a{color:#e0cfc4}
.mds-eyebrow{font:500 clamp(1.04rem,1.5vw,1.34rem)/1.1 var(--mds-font-body);letter-spacing:.22em;text-transform:uppercase;color:var(--mds-accent-text);margin:0 0 22px}
.mds-dark .mds-eyebrow{color:var(--mds-taupe)}
.mds-lede{font-size:clamp(1.02rem,.8vw + .88rem,1.18rem);line-height:1.58;color:var(--mds-ink-60);max-width:64ch;margin-top:10px}
.mds-note{font-size:.9rem;color:var(--mds-ink-60)}
.mds-dark .mds-note{color:#b6b4c0}

/* editorial flag, admin only */
.mds-flag{display:inline-block;width:14px;height:14px;border-radius:50%;background:#d69420;vertical-align:middle;margin-left:5px;position:relative;cursor:help}
.mds-flag::after{content:attr(data-flag);position:absolute;left:0;bottom:calc(100% + 8px);background:#2a1c05;color:#ffe6ad;font:500 12px/1.45 var(--mds-font-body);padding:9px 11px;border-radius:6px;width:min(320px,70vw);opacity:0;pointer-events:none;transition:opacity .15s;z-index:80}
.mds-flag:hover::after,.mds-flag:focus::after{opacity:1}
.mds-root .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

/* buttons
   The theme sets its own link colours with high specificity, which was
   overriding the button text. These rules are deliberately specific and use
   !important on colour only, so button labels can never disappear again.     */
.mds-root .mds-btn,
.mds-root a.mds-btn,
.mds-root a.mds-btn:link,
.mds-root a.mds-btn:visited,
.mds-root button.mds-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:52px;padding:0 26px;border-radius:var(--mds-r);
  font:600 1rem/1 var(--mds-font-body);text-decoration:none;
  border:1.5px solid transparent;cursor:pointer;
  transition:background .16s,color .16s,border-color .16s;
}
.mds-root .mds-btn-primary,
.mds-root a.mds-btn-primary,
.mds-root a.mds-btn-primary:link,
.mds-root a.mds-btn-primary:visited,
.mds-root a.mds-btn-primary:hover,
.mds-root a.mds-btn-primary:focus,
.mds-root a.mds-btn-primary:active,
.mds-root button.mds-btn-primary{
  background:var(--mds-charcoal);
  color:#fff !important;
  border-color:var(--mds-charcoal);
}
.mds-root .mds-btn-primary:hover,
.mds-root a.mds-btn-primary:hover{background:#26252d;border-color:#26252d}

.mds-root .mds-btn-ghost,
.mds-root a.mds-btn-ghost,
.mds-root a.mds-btn-ghost:link,
.mds-root a.mds-btn-ghost:visited,
.mds-root button.mds-btn-ghost{
  background:transparent;
  color:var(--mds-charcoal) !important;
  border-color:var(--mds-line-strong);
}
.mds-root .mds-btn-ghost:hover,
.mds-root a.mds-btn-ghost:hover{border-color:var(--mds-taupe);background:rgba(168,135,116,.12)}

.mds-root .mds-btn-on-dark,
.mds-root a.mds-btn-on-dark,
.mds-root a.mds-btn-on-dark:link,
.mds-root a.mds-btn-on-dark:visited{
  background:transparent;color:#fff !important;border-color:rgba(255,255,255,.45);
}
.mds-root .mds-btn-on-dark:hover,
.mds-root a.mds-btn-on-dark:hover{background:rgba(255,255,255,.12)}

/* on dark bands the primary button inverts */
.mds-root .mds-dark .mds-btn-primary,
.mds-root .mds-dark a.mds-btn-primary,
.mds-root .mds-dark a.mds-btn-primary:link,
.mds-root .mds-dark a.mds-btn-primary:visited{
  background:#fff;color:var(--mds-charcoal) !important;border-color:#fff;
}
.mds-root .mds-dark .mds-btn-primary:hover,
.mds-root .mds-dark a.mds-btn-primary:hover{background:var(--mds-grey);border-color:var(--mds-grey)}

.mds-root .mds-sticky a.mds-call,
.mds-root .mds-sticky a.mds-book,
.mds-sticky a.mds-call,
.mds-sticky a.mds-book{color:#fff !important}

.mds-btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}

/* image slots */
.mds-slot{background:var(--mds-grey);border:1px dashed var(--mds-line-strong);border-radius:var(--mds-r);display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;color:var(--mds-ink-60);font-size:.84rem;line-height:1.55;width:100%}
.mds-slot b{display:block;font:700 .72rem/1 var(--mds-font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--mds-accent-text);margin-bottom:9px}
.mds-dark .mds-slot{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.28);color:#c8c6d0}
.mds-dark .mds-slot b{color:var(--mds-taupe)}
.mds-framed{position:relative}
.mds-framed::after{content:"";position:absolute;inset:auto -14px -14px auto;width:56%;height:38%;border-right:2px solid var(--mds-taupe);border-bottom:2px solid var(--mds-taupe);pointer-events:none}

/* breadcrumbs */
.mds-crumbs{font-size:.82rem;color:var(--mds-ink-60);padding-block:18px 0}
.mds-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}
.mds-crumbs li::after{content:"/";margin-left:6px;color:var(--mds-line-strong)}
.mds-crumbs li:last-child::after{content:""}

/* hero */
.mds-hero{padding-block:clamp(26px,3.5vw,50px) var(--mds-s5)}
.mds-hero-grid{display:grid;gap:clamp(28px,4vw,54px);align-items:center}
@media(min-width:900px){.mds-hero-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)}}
.mds-hero h1{margin-bottom:var(--mds-s2);max-width:16ch}
.mds-outcome{font-family:var(--mds-font-display);font-size:clamp(1.15rem,1.2vw + .92rem,1.48rem);line-height:1.45;color:var(--mds-accent-text);margin:0 0 var(--mds-s2);max-width:44ch}
.mds-support{max-width:48ch;color:var(--mds-ink-60);margin-bottom:var(--mds-s3)}
.mds-pricetag{display:inline-flex;align-items:baseline;gap:10px;background:var(--mds-white);border:1px solid var(--mds-line-strong);padding:12px 18px;font-size:.92rem;margin:0 0 var(--mds-s3);border-left:3px solid var(--mds-taupe)}
.mds-pricetag b{font-family:var(--mds-font-display);font-size:1.28rem;font-weight:500}
.mds-hero-media img,.mds-hero-media .mds-slot{aspect-ratio:1/1;object-fit:cover;border-radius:var(--mds-r)}

/* band */
.mds-band img,.mds-band .mds-slot{width:100%;aspect-ratio:21/9;object-fit:cover;min-height:220px}
@media(max-width:700px){.mds-band img,.mds-band .mds-slot{aspect-ratio:4/3}}

/* balance */
.mds-balance{display:grid;border:1px solid var(--mds-line-strong);border-radius:var(--mds-r);overflow:hidden;margin-top:var(--mds-s3)}
@media(min-width:860px){.mds-balance{grid-template-columns:1fr 1fr}}
.mds-balance>div{padding:clamp(26px,3vw,38px)}
.mds-pos{background:var(--mds-white)}
.mds-neg{background:var(--mds-grey);border-top:1px solid var(--mds-line-strong)}
@media(min-width:860px){.mds-neg{border-top:0;border-left:1px solid var(--mds-line-strong)}}
.mds-balance h3{font-size:.95rem;margin-bottom:18px}
.mds-balance ul{list-style:none;margin:0;padding:0;font-size:.96rem}
.mds-balance li{padding:13px 0 13px 30px;border-top:1px solid var(--mds-line);position:relative;line-height:1.55}
.mds-balance li:first-child{border-top:0;padding-top:0}
.mds-balance li::before{position:absolute;left:0;top:13px;font-weight:700;font-size:.92rem;color:var(--mds-accent-text)}
.mds-balance li:first-child::before{top:0}
.mds-pos li::before{content:"+"}
.mds-neg li::before{content:"!"}

/* table */
.mds-compare h2{max-width:none}
.mds-tablewrap{margin-top:var(--mds-s3);border:1px solid var(--mds-line-strong);border-radius:var(--mds-r);overflow-x:auto;-webkit-overflow-scrolling:touch}
.mds-tablewrap table{border-collapse:collapse;width:100%;min-width:660px;font-size:.93rem;background:var(--mds-white)}
.mds-tablewrap caption{text-align:left;font-size:.88rem;color:var(--mds-ink-60);padding:12px 18px 0}
.mds-tablewrap caption.mds-caption-below{caption-side:bottom}
.mds-tablewrap th,.mds-tablewrap td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--mds-line);vertical-align:top;line-height:1.5}
.mds-tablewrap thead th{background:var(--mds-charcoal);color:#fff;font:700 .82rem/1.35 var(--mds-font-body);letter-spacing:.03em}
.mds-tablewrap tbody th{font-weight:700;width:20%;background:var(--mds-grey)}
.mds-tablewrap tr:last-child th,.mds-tablewrap tr:last-child td{border-bottom:0}
.mds-scrollhint{font-size:.82rem;color:var(--mds-ink-60);margin-top:10px}
@media(min-width:900px){.mds-scrollhint{display:none}}
@media(max-width:760px){
  .mds-tablewrap{border:0;background:transparent;overflow:visible}
  .mds-tablewrap table{display:block;min-width:0;background:transparent}
  .mds-tablewrap caption{display:block;padding:0 0 var(--mds-s2)}
  .mds-tablewrap thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .mds-tablewrap tbody,.mds-tablewrap tr,.mds-tablewrap th,.mds-tablewrap td{display:block;width:100%}
  .mds-tablewrap tr{margin:0 0 var(--mds-s2);border:1px solid var(--mds-line-strong);border-radius:var(--mds-r);overflow:hidden;background:var(--mds-white)}
  .mds-tablewrap tbody th{width:100%;padding:14px 16px;background:var(--mds-charcoal);color:#fff;border-bottom:0}
  .mds-tablewrap td{padding:14px 16px;border-bottom:1px solid var(--mds-line)}
  .mds-tablewrap td:last-child{border-bottom:0}
  .mds-tablewrap td::before{content:attr(data-label);display:block;margin:0 0 5px;font:700 .72rem/1.2 var(--mds-font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--mds-accent-text)}
  .mds-scrollhint{display:none}
}

/* section heads ---------------------------------------------------------- */
.mds-sec-head{margin-inline:auto;margin-bottom:var(--mds-s3);text-align:center}
.mds-sec-head h2{margin:0 auto;max-width:none}
.mds-sec-head .mds-lede{max-width:64ch;margin:var(--mds-s2) auto 0}
.mds-sec-head h2::after{margin-top:22px;margin-inline:auto}
.mds-convert h2::after,.mds-centre h2::after{margin-inline:auto}

/* THREE-ACROSS ROW ------------------------------------------------------
   Used by problems, suitability, comfort, practice photos and reviews.     */
.mds-trio{display:grid;gap:var(--mds-s2);align-items:stretch}
@media(min-width:700px){.mds-trio{grid-template-columns:repeat(2,1fr)}}
/* auto-fit so a section with four cards lays out as four, not three plus one */
@media(min-width:1000px){.mds-trio{grid-template-columns:repeat(auto-fit,minmax(255px,1fr))}}
.mds-trio-item{background:var(--mds-white);border:1px solid var(--mds-line);border-radius:var(--mds-r);
  padding:clamp(24px,2.4vw,32px);display:flex;flex-direction:column}
.mds-trio-item h3{font-family:var(--mds-font-body);font-weight:700;font-size:.9rem;line-height:1.4;letter-spacing:0;margin:0 0 var(--mds-s1)}
.mds-trio-item p{color:var(--mds-ink-60);font-size:.96rem;margin:0 0 var(--mds-s1)}
.mds-trio-item p:last-child{margin-bottom:0}
.mds-trio-item ul{margin:0;padding-left:18px;color:var(--mds-ink-60);font-size:.96rem}
.mds-trio-item li{margin-bottom:9px;line-height:1.55}
.mds-trio-item li:last-child{margin-bottom:0}
.mds-trio-n{display:block;font:700 .72rem/1 var(--mds-font-body);letter-spacing:.17em;color:var(--mds-accent-text);margin-bottom:var(--mds-s1)}
.mds-outcome-tag{font-size:.88rem!important;font-weight:600;color:var(--mds-ink)!important;
  padding-left:var(--mds-s1);border-left:2px solid var(--mds-taupe);margin-top:auto!important;margin-bottom:0!important}
.mds-trio-lists .mds-trio-item ul{padding-left:18px}
.mds-trio-lists .mds-trio-item p,.mds-trio-lists .mds-trio-item li{font-size:.95rem}
.mds-dark .mds-trio-item{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.16)}
.mds-dark .mds-trio-item p,.mds-dark .mds-trio-item ul{color:#c9c7d2}
.mds-dark .mds-trio-item h3{color:#fff}
.mds-trio-photos{margin-bottom:var(--mds-s3)}
.mds-trio-photos img,.mds-trio-photos .mds-slot{aspect-ratio:1/1;object-fit:cover;width:100%;border-radius:var(--mds-r)}
.mds-closing{margin-top:var(--mds-s4);padding-top:var(--mds-s3);border-top:1px solid rgba(255,255,255,.18);
  font-family:var(--mds-font-display);font-size:1.15rem;line-height:1.5;max-width:60ch}

/* fee list and plan rows ------------------------------------------------- */
.mds-feelist{list-style:none;margin:0;padding:0;border-top:2px solid var(--mds-taupe)}
.mds-feelist li{display:flex;justify-content:space-between;gap:var(--mds-s2);align-items:baseline;
  padding:14px 0;border-bottom:1px solid var(--mds-line)}
.mds-feelist li:last-child{border-bottom:0}
.mds-feelist b{font-size:1.05rem;font-weight:600;white-space:nowrap}
.mds-plan-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--mds-s2);margin-bottom:6px}
.mds-plan h4{margin:0;font:700 .9rem/1.3 var(--mds-font-body)}
.mds-plan p{margin:0;font-size:.91rem;color:var(--mds-ink-60)}
.mds-cost{font-size:1.18rem;font-weight:600;white-space:nowrap}
.mds-cost small{font:400 .74rem var(--mds-font-body);color:var(--mds-ink-60)}
.mds-disclaimer{margin-top:var(--mds-s2);padding:clamp(24px,2.4vw,32px);background:var(--mds-white);
  border:1px solid var(--mds-line);border-left:3px solid var(--mds-taupe);border-radius:0 var(--mds-r) var(--mds-r) 0;font-size:.95rem}
.mds-disclaimer p:last-child{margin-bottom:0}

/* clinician -------------------------------------------------------------- */
.mds-clinician{display:grid;gap:var(--mds-s4);align-items:center}
@media(min-width:860px){.mds-clinician{grid-template-columns:minmax(0,.4fr) minmax(0,.6fr)}}
.mds-clinician img,.mds-clinician .mds-slot{aspect-ratio:1/1;object-fit:cover;object-position:50% 20%;width:100%;border-radius:var(--mds-r)}
.mds-credentials{list-style:none;margin:var(--mds-s3) 0;padding:0;font-size:.93rem}
.mds-credentials li{padding:12px 0;border-top:1px solid var(--mds-line);display:flex;gap:var(--mds-s2);flex-wrap:wrap}
.mds-credentials li:last-child{border-bottom:1px solid var(--mds-line)}
.mds-credentials li span:first-child{flex:0 0 130px;font-weight:700}
.mds-clinquote{margin:var(--mds-s4) 0 0;padding:clamp(24px,2.4vw,32px);background:var(--mds-grey);
  border-left:3px solid var(--mds-taupe);border-radius:0 var(--mds-r) var(--mds-r) 0;font-size:1.1rem;line-height:1.6}
.mds-clinquote p:last-child{margin-bottom:0}
.mds-cite{font-size:.87rem!important;color:var(--mds-ink-60);margin-top:var(--mds-s2)!important}
.mds-root .mds-narrow-note{margin-top:var(--mds-s2);max-width:70ch}

/* SHARED CARD SYSTEM -----------------------------------------------------
   One definition reused by the answer blocks, risk panels, journey steps and
   FAQ items, so no section invents its own container treatment.            */
.mds-card{background:var(--mds-white);border:1px solid var(--mds-line);border-radius:var(--mds-r);padding:clamp(24px,2.4vw,32px)}
.mds-card-flat{background:var(--mds-grey);border-color:transparent}
.mds-card-label{display:block;font:700 .68rem/1 var(--mds-font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--mds-accent-text);margin-bottom:var(--mds-s1)}
.mds-card-label-dark{color:var(--mds-charcoal)}
.mds-card h3{margin:0 0 var(--mds-s1)}
.mds-card p{color:var(--mds-ink-60);font-size:.97rem;margin-bottom:var(--mds-s1)}
.mds-card p:last-child{margin-bottom:0}
.mds-mid{max-width:var(--mds-mid)}
.mds-centre{margin-inline:auto;text-align:center}
.mds-stack{display:grid;gap:var(--mds-s2)}

/* direct answer ---------------------------------------------------------- */
.mds-def-grid{display:grid;gap:var(--mds-s4);align-items:start}
@media(min-width:960px){.mds-def-grid{grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr)}}
.mds-def-h2{margin-bottom:var(--mds-s3)}
.mds-answer{font-size:clamp(1.14rem,1.1vw + .9rem,1.3rem);line-height:1.5;margin:0 0 var(--mds-s3);padding:var(--mds-s3);background:var(--mds-white);border-left:3px solid var(--mds-taupe);border-radius:0 var(--mds-r) var(--mds-r) 0}
.mds-keyfacts{border:1px solid var(--mds-line-strong);border-radius:var(--mds-r);padding:clamp(24px,2.4vw,32px);background:var(--mds-white);align-self:start}
/* position:sticky breaks if any ancestor clips overflow or has a transform.
   Ours are explicitly kept clear; if a theme container still breaks it, the
   script disables the sticky and logs the offending element for admins.      */
.mds-root,.mds-root .mds-sec,.mds-root .mds-wrap,.mds-def-grid{overflow:visible}
@media(min-width:960px){.mds-keyfacts{position:sticky;top:var(--mds-sticky-top)}}
.mds-keyfacts[data-mds-sticky-disabled]{position:static!important}
.mds-keyfacts h3{font-family:var(--mds-font-body);font-weight:700;font-size:.9rem;letter-spacing:0;margin:0 0 var(--mds-s2)}
.mds-keyfacts img,.mds-keyfacts .mds-slot{margin-top:var(--mds-s3);aspect-ratio:1/1;object-fit:cover;border-radius:var(--mds-r)}

/* journey ---------------------------------------------------------------- */
.mds-steps{display:grid;gap:var(--mds-s2)}
.mds-step{display:grid;gap:var(--mds-s1) var(--mds-s3);background:var(--mds-white);border:1px solid var(--mds-line);border-radius:var(--mds-r);padding:var(--mds-s3);transition:border-color .18s}
@media(min-width:640px){.mds-step{grid-template-columns:56px 1fr}}
.mds-step:hover{border-color:var(--mds-taupe)}
.mds-step-n{width:44px;height:44px;border-radius:50%;background:var(--mds-grey);color:var(--mds-accent-text);display:flex;align-items:center;justify-content:center;font:700 .92rem/1 var(--mds-font-body)}
.mds-step h3{font-family:var(--mds-font-body);font-weight:700;font-size:.9rem;letter-spacing:0;margin:0 0 6px}
.mds-step p{margin:0;color:var(--mds-ink-60);font-size:.97rem}

/* USP strip: full width under the hero, centred, no icons -------------- */
.mds-usps{background:var(--mds-grey);padding-block:var(--mds-s4)}
.mds-usp-grid{display:grid;gap:var(--mds-s2)}
@media(min-width:640px){.mds-usp-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.mds-usp-grid{grid-template-columns:repeat(4,1fr)}}
.mds-usp{background:var(--mds-white);border:1px solid var(--mds-line);border-radius:var(--mds-r);
  padding:clamp(24px,2.4vw,32px);display:flex;align-items:center;justify-content:center;text-align:center;min-height:118px}
.mds-usp p{margin:0;font-size:1rem;font-weight:500;line-height:1.5;max-width:22ch}

.mds-root .mds-usp-note{margin:var(--mds-s2) 0 0;font-size:.87rem;color:var(--mds-ink-60);text-align:center}

/* Practice gallery: native scroll-snap, no carousel library ---------------
   The track breaks out of the content width to the full viewport, so images
   run edge to edge while the heading stays aligned with the rest of the page. */
.mds-gallery-sec{background:var(--mds-white);overflow:hidden}
.mds-gallery-head{display:flex;align-items:center;justify-content:space-between;gap:var(--mds-s3);margin-bottom:var(--mds-s3)}
.mds-gallery-head h2{margin:0}
.mds-gallery-nav{display:flex;gap:10px;flex:none}
.mds-gnav{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--mds-line-strong);background:var(--mds-white);
  color:var(--mds-charcoal);display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:border-color .18s,background .18s}
.mds-gnav:hover{border-color:var(--mds-taupe);background:rgba(168,135,116,.1)}
.mds-gnav[disabled]{opacity:.35;cursor:default}
.mds-gnav[disabled]:hover{border-color:var(--mds-line-strong);background:var(--mds-white)}
/* Flexbox rather than grid: auto-column minimums of 0 let the track squeeze
   every image into a single row instead of overflowing. flex:0 0 <width>
   cannot shrink, which forces the horizontal scroll.
   Scoped under .mds-root so theme list and image rules cannot override.     */
.mds-root .mds-gallery{list-style:none;margin:0;padding:0 0 8px;display:flex;gap:var(--mds-s2);
  overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin;
  margin-inline:calc(50% - 50vw);padding-inline:clamp(20px,4vw,44px);
  scroll-padding-inline-start:clamp(20px,4vw,44px)}
.mds-root .mds-gallery li{flex:0 0 78vw;max-width:460px;list-style:none;margin:0;padding:0}
@media(min-width:700px){.mds-root .mds-gallery li{flex-basis:44vw}}
@media(min-width:1100px){.mds-root .mds-gallery li{flex-basis:30vw}}
@media(min-width:1600px){.mds-root .mds-gallery li{flex-basis:22vw}}
.mds-root .mds-gallery img,.mds-root .mds-gallery .mds-slot{
  width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:var(--mds-r);display:block;max-width:none}
.mds-root .mds-gallery li{scroll-snap-align:start}
.mds-root .mds-gallery.is-autoscrolling{scroll-snap-type:none;scroll-behavior:auto}
.mds-gallery:focus-visible{outline:3px solid var(--mds-accent-text);outline-offset:4px}
@media(prefers-reduced-motion:reduce){.mds-gallery{scroll-behavior:auto}}

/* Hero image carousel: compact, manually navigated row of squares directly
   under the hero. Arrows (desktop) and swipe/drag (touch + mouse) only — no
   autoplay. Kept fully separate from .mds-gallery so it never inherits the
   auto-scroll. Tight vertical rhythm so it does not crowd the page.          */
.mds-hcar-sec{background:var(--mds-white);padding-block:var(--mds-s3);overflow:hidden}
/* Full-bleed: break out of the boxed content width to the viewport edges (same
   technique as the practice gallery), then inset the images 30px each side.   */
.mds-hcar-wrap{position:relative;margin-inline:calc(50% - 50vw)}
.mds-root .mds-hcar{--hcar-gap:16px;list-style:none;margin:0;padding:0 30px;
  display:flex;gap:var(--hcar-gap);
  overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  scroll-padding-inline:30px;
  -webkit-overflow-scrolling:touch;scrollbar-width:none}
.mds-root .mds-hcar::-webkit-scrollbar{display:none}
/* 100% here is the padded content width (viewport minus the two 30px gutters),
   so the gaps come out of it. Mobile shows 2 across, tablet and desktop show 3. */
.mds-root .mds-hcar li{flex:0 0 calc((100% - var(--hcar-gap)) / 2);
  list-style:none;margin:0;padding:0;scroll-snap-align:start}
@media(min-width:700px){.mds-root .mds-hcar li{flex-basis:calc((100% - 2*var(--hcar-gap)) / 3)}}
.mds-root .mds-hcar img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;
  border-radius:var(--mds-r);display:block;max-width:none}
.mds-hcar:focus-visible{outline:3px solid var(--mds-accent-text);outline-offset:4px;border-radius:2px}
.mds-hcar.is-grabbing{scroll-behavior:auto;scroll-snap-type:none;cursor:grabbing}
.mds-hcar-nav{display:none;position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  width:40px;height:40px;border-radius:50%;border:1.5px solid var(--mds-line-strong);
  background:var(--mds-white);color:var(--mds-charcoal);align-items:center;justify-content:center;
  cursor:pointer;box-shadow:0 2px 10px rgba(55,54,64,.14);
  transition:border-color .18s,background .18s,opacity .18s}
.mds-hcar-nav:hover{border-color:var(--mds-taupe);background:rgba(168,135,116,.1)}
.mds-hcar-prev{left:8px}
.mds-hcar-next{right:8px}
.mds-hcar-nav[disabled]{opacity:0;pointer-events:none}
@media(min-width:700px){.mds-hcar-nav{display:flex}}
@media(prefers-reduced-motion:reduce){.mds-hcar{scroll-behavior:auto}}

/* Top-of-page patient reviews (Whitening / Bonding / Teeth Straightening).
   Three treatment-matched Google reviews, high on the page.                 */
.mds-topreviews{background:var(--mds-white)}
.mds-topreviews h2::after{display:none}
.mds-topreviews-head{text-align:center;max-width:640px;margin-inline:auto}
.mds-tr-trust{display:inline-flex;align-items:center;gap:10px;justify-content:center;
  color:var(--mds-ink-60);font-weight:600;margin-top:6px}
.mds-tr-trust .mds-tr-stars{color:#fbbc04;letter-spacing:2px;font-size:18px}
.mds-gmark{width:18px;height:18px;flex:none;vertical-align:middle}
.mds-tr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}
.mds-tr-card{margin:0;background:var(--mds-white);border:1px solid var(--mds-line);
  border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:14px;
  box-shadow:0 2px 14px rgba(55,54,64,.05)}
.mds-tr-card>.mds-tr-stars{color:#fbbc04;letter-spacing:2px;font-size:16px}
.mds-tr-card p{margin:0;color:var(--mds-ink);font-size:15px;line-height:1.55}
.mds-tr-foot{margin-top:auto;display:flex;align-items:center;gap:10px;padding-top:12px;border-top:1px solid var(--mds-line)}
.mds-tr-meta cite{font-style:normal;font-weight:600;font-size:14px;line-height:1.2;display:block;color:var(--mds-ink)}
.mds-tr-src{display:flex;align-items:center;gap:5px;color:var(--mds-ink-60);font-size:12px}
.mds-tr-src .mds-gmark{width:14px;height:14px}
.mds-topreviews .mds-tr-more{text-align:center;margin-top:64px}
.mds-tr-more a{color:var(--mds-accent-text);font-weight:600;text-decoration:none;
  border-bottom:2px solid var(--mds-taupe);padding-bottom:2px}
/* strip any theme decorations (dashes/quote marks) the blockquote or cite inject */
.mds-root .mds-tr-card::before,.mds-root .mds-tr-card::after,
.mds-root .mds-tr-foot::before,.mds-root .mds-tr-foot::after,
.mds-root .mds-tr-meta::before,.mds-root .mds-tr-meta::after,
.mds-root .mds-tr-meta cite::before,.mds-root .mds-tr-meta cite::after{content:none!important;display:none!important}
.mds-root .mds-tr-meta cite{border:0}
@media(max-width:900px){.mds-tr-grid{grid-template-columns:1fr}}

/* Review pull-quote band (Option C): one large quote at a time on charcoal,
   stepped manually with arrows and dots. No autoplay. Serif for the arty look. */
.mds-pqc{background:var(--mds-charcoal);color:#fff;position:relative;overflow:hidden}
.mds-pqc-mark{font-family:Georgia,'Times New Roman',serif;color:var(--mds-taupe);
  font-size:76px;line-height:.5;height:40px;margin-bottom:8px;text-align:center}
.mds-pqc-stage{position:relative;max-width:760px;margin-inline:auto;text-align:center;
  min-height:200px;display:flex;flex-direction:column;justify-content:center}
.mds-pqc-slide{display:none}
.mds-pqc-slide.is-active{display:block;animation:mdsPqcFade .45s ease}
@keyframes mdsPqcFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.mds-pqc-q{quotes:none;font-family:Georgia,'Times New Roman',serif;font-size:clamp(22px,3vw,34px);
  line-height:1.28;margin:0 auto 22px;max-width:34ch;color:#fff}
.mds-pqc-attr{color:rgba(255,255,255,.72);font-size:14px;font-weight:600;
  display:inline-flex;align-items:center;gap:8px;justify-content:center;flex-wrap:wrap}
.mds-pqc-attr .mds-gmark{width:15px;height:15px}
.mds-pqc-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  width:46px;height:46px;border-radius:50%;border:1.5px solid rgba(255,255,255,.4);
  background:transparent;color:#fff;display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .18s,border-color .18s}
.mds-pqc-nav:hover{background:rgba(255,255,255,.12);border-color:#fff}
.mds-pqc-prev{left:max(16px,calc(50% - 560px))}
.mds-pqc-next{right:max(16px,calc(50% - 560px))}
.mds-pqc-dots{display:flex;gap:8px;justify-content:center;margin-top:26px}
.mds-pqc-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.3);
  border:0;padding:0;cursor:pointer;transition:background .18s,transform .18s}
.mds-pqc-dot.is-active{background:var(--mds-taupe);transform:scale(1.25)}
@media(max-width:820px){
  .mds-pqc-nav{width:40px;height:40px}
  .mds-pqc-prev{left:8px}.mds-pqc-next{right:8px}
  .mds-pqc-q{font-size:clamp(20px,5vw,26px)}
  .mds-pqc-stage{min-height:240px;padding-inline:52px}
}
@media(prefers-reduced-motion:reduce){.mds-pqc-slide.is-active{animation:none}}

/* At a glance video: self-hosted 1:1 with image overlay, play button and an
   optional lightbox. Sits in the same square slot the image would occupy.    */
.mds-fact-video{position:relative;width:100%;aspect-ratio:1/1;margin-top:var(--mds-s3);
  border-radius:var(--mds-r);overflow:hidden;background:#000}
.mds-fact-video img,.mds-fact-video video{width:100%;height:100%;object-fit:cover;display:block;margin:0;border-radius:var(--mds-r);aspect-ratio:1/1}
.mds-video-fallback{position:absolute;inset:0;background:linear-gradient(135deg,#4b4a54,#2b2a31)}
[data-mds-video-lightbox]{cursor:pointer}
.mds-video-play{position:absolute;inset:0;margin:auto;width:64px;height:64px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;cursor:pointer;border:0;padding:0;
  --mds-play:#ffffff;color:var(--mds-charcoal);background:var(--mds-play);
  box-shadow:0 4px 18px rgba(0,0,0,.3);transition:transform .18s,opacity .18s}
.mds-video-play svg{margin-left:3px}
.mds-video-play:hover{transform:scale(1.06)}
.mds-video-style-outline .mds-video-play{background:rgba(0,0,0,.32);color:var(--mds-play);border:2px solid var(--mds-play)}
.mds-video-style-minimal .mds-video-play{background:transparent;color:var(--mds-play);box-shadow:none;width:72px;height:72px}
.mds-video-style-minimal .mds-video-play svg{width:54px;height:54px;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))}
.mds-fact-video.is-playing .mds-video-play,.mds-video-play.is-hidden{opacity:0;pointer-events:none}
/* video lightbox */
.mds-vlb{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;
  background:rgba(20,19,24,.88);padding:24px}
.mds-vlb.is-open{display:flex}
.mds-vlb-body{display:flex;align-items:center;justify-content:center}
.mds-vlb video{width:min(92vw,86vh);height:auto;max-height:86vh;background:#000;border-radius:8px;display:block}
.mds-vlb-close{position:absolute;top:18px;right:20px;width:44px;height:44px;border-radius:50%;border:0;
  background:rgba(255,255,255,.16);color:#fff;font-size:26px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center}
.mds-vlb-close:hover{background:rgba(255,255,255,.28)}
@media(prefers-reduced-motion:reduce){.mds-video-play{transition:none}}

/* what we ask of you: three even boxes ---------------------------------- */
.mds-ask{margin-top:var(--mds-s4)}
.mds-ask h3{font-family:var(--mds-font-body);font-weight:700;font-size:.9rem;letter-spacing:0;margin:0 0 var(--mds-s3);color:#fff}
.mds-ask-grid{display:grid;gap:var(--mds-s2)}
@media(min-width:760px){.mds-ask-grid{grid-template-columns:repeat(3,1fr)}}
.mds-ask-box{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.16);border-radius:var(--mds-r);padding:var(--mds-s3)}
.mds-ask-box p{margin:0;font-size:.95rem;color:#c9c7d2;line-height:1.55}

/* fees: equal-height halves, factors full width -------------------------- */
.mds-fees{display:grid;gap:var(--mds-s2);align-items:stretch}
@media(min-width:920px){.mds-fees{grid-template-columns:1fr 1fr}}
.mds-fee-panel{background:var(--mds-white);border:1px solid var(--mds-line-strong);border-radius:var(--mds-r);
  padding:clamp(24px,2.4vw,32px);display:flex;flex-direction:column;height:100%}
.mds-fee-panel h3{font-family:var(--mds-font-body);font-weight:700;font-size:.9rem;letter-spacing:0;margin:0 0 var(--mds-s2)}
.mds-fees-link{margin:auto 0 0;padding-top:var(--mds-s2);font-size:.95rem}
/* Plan tiers get their own surface so they read as a set of options rather
   than rows of text, with the recommended tier lifted out.                  */
.mds-plan{position:relative;padding:var(--mds-s3);margin-bottom:var(--mds-s1);
  border:1px solid var(--mds-line);border-radius:var(--mds-r);background:var(--mds-grey)}
.mds-plan:last-of-type{margin-bottom:0}
.mds-plan-popular{background:var(--mds-charcoal);border-color:var(--mds-charcoal);color:#fff}
.mds-plan-popular h4,.mds-plan-popular .mds-cost{color:#fff}
.mds-plan-popular p,.mds-plan-popular .mds-cost small{color:#cfcdd6}
.mds-plan-badge{position:absolute;top:-11px;left:var(--mds-s3);background:var(--mds-taupe);color:#241a14;
  font:700 .64rem/1 var(--mds-font-body);letter-spacing:.14em;text-transform:uppercase;padding:6px 10px;border-radius:99px}


.mds-plans-note{margin:auto 0 0;padding-top:var(--mds-s2);font-size:.91rem;color:var(--mds-ink-60)}
.mds-factors{margin-top:var(--mds-s2);background:var(--mds-white);border:1px solid var(--mds-line-strong);
  border-radius:var(--mds-r);padding:clamp(24px,2.4vw,32px)}
.mds-factors h3{font-family:var(--mds-font-body);font-weight:700;font-size:.9rem;letter-spacing:0;margin:0 0 var(--mds-s3)}
.mds-factors ul{margin:0;padding:0;list-style:none;display:grid;gap:var(--mds-s2)}
@media(min-width:760px){.mds-factors ul{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1080px){.mds-factors ul{grid-template-columns:repeat(3,1fr)}}
.mds-factors li{display:flex;gap:11px;font-size:.95rem;color:var(--mds-ink-60);line-height:1.55;margin:0}
.mds-factors li::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--mds-taupe);margin-top:8px}

/* comfort feature boxes -------------------------------------------------- */
.mds-feat{background:var(--mds-white);border:1px solid var(--mds-line);border-radius:var(--mds-r);
  padding:clamp(26px,2.5vw,34px);display:flex;flex-direction:column}
.mds-feat-ic{width:44px;height:44px;border-radius:50%;background:rgba(168,135,116,.16);color:var(--mds-accent-text);
  display:flex;align-items:center;justify-content:center;margin-bottom:var(--mds-s2)}
.mds-feat h3{font-family:var(--mds-font-body);font-weight:700;font-size:.9rem;letter-spacing:0;margin:0 0 var(--mds-s2)}
.mds-feat p{color:var(--mds-ink-60);font-size:.96rem;margin:0 0 var(--mds-s1)}
.mds-feat p:last-child{margin-bottom:0}
.mds-feat ul{margin:0;padding-left:18px;color:var(--mds-ink-60);font-size:.96rem}
.mds-feat li{margin-bottom:9px;line-height:1.55}
.mds-feat li:last-child{margin-bottom:0}

/* spacing corrections ---------------------------------------------------- */
/* Journey CTA: centred band across the full column, separated from the steps. */
.mds-jcta{margin-top:var(--mds-s4);padding-top:var(--mds-s4);border-top:1px solid var(--mds-line);
  display:flex;flex-direction:column;align-items:center;text-align:center}
.mds-jcta .mds-btn-row{justify-content:center;margin-top:0}
.mds-jcta .mds-jnote{margin:var(--mds-s5) auto 0;max-width:60ch;text-align:center}

/* risks ------------------------------------------------------------------ */
.mds-risk-top{display:grid;gap:var(--mds-s2);margin-bottom:var(--mds-s2)}
@media(min-width:820px){.mds-risk-top{grid-template-columns:1fr 1fr}}
.mds-risk{background:var(--mds-white);border:1px solid var(--mds-line);border-radius:var(--mds-r);padding:clamp(24px,2.4vw,32px);display:flex;flex-direction:column}
.mds-risk-rare{border-color:var(--mds-line-strong)}
.mds-risk-ico{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:var(--mds-s2)}
.mds-risk-common .mds-risk-ico{background:rgba(168,135,116,.16);color:var(--mds-accent-text)}
.mds-risk-rare .mds-risk-ico{background:rgba(55,54,64,.08);color:var(--mds-charcoal)}
.mds-risk h3{font-family:var(--mds-font-body);font-weight:700;font-size:.9rem;letter-spacing:0;margin:0 0 var(--mds-s1)}
.mds-risk p{color:var(--mds-ink-60);font-size:.97rem;margin:0}
.mds-risk-mid{display:grid;gap:var(--mds-s2)}
@media(min-width:820px){.mds-risk-mid{grid-template-columns:1fr 1fr}}
.mds-alts{margin-top:var(--mds-s2);border:1px solid var(--mds-line-strong);border-radius:var(--mds-r);overflow:hidden;background:var(--mds-white)}
.mds-alts h3{font-family:var(--mds-font-body);font-weight:700;font-size:.9rem;letter-spacing:0;margin:0;padding:var(--mds-s3) clamp(24px,2.4vw,32px);border-bottom:1px solid var(--mds-line);background:var(--mds-grey)}
.mds-alt{display:flex;gap:var(--mds-s2);padding:var(--mds-s3) clamp(24px,2.4vw,32px);border-bottom:1px solid var(--mds-line)}
.mds-alt:last-child{border-bottom:0}
.mds-alt-n{flex:none;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--mds-taupe);color:var(--mds-accent-text);display:flex;align-items:center;justify-content:center;font:700 .78rem/1 var(--mds-font-body)}
.mds-alt p{margin:0;font-size:.97rem;color:var(--mds-ink-60)}
.mds-alt strong{display:block;margin-bottom:3px;color:var(--mds-charcoal);font-weight:700;font-size:1rem}

/* faq -------------------------------------------------------------------- */
.mds-faq{display:grid;gap:var(--mds-s1)}
.mds-faq details{background:var(--mds-white);border:1px solid var(--mds-line);border-radius:var(--mds-r);transition:border-color .18s}
.mds-faq details:hover{border-color:var(--mds-line-strong)}
.mds-faq details[open],.mds-faq details[open]:hover{border-color:var(--mds-taupe)}
.mds-faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--mds-s3);padding:clamp(20px,2vw,26px) clamp(22px,2.2vw,30px);font-weight:600;font-size:1.02rem;line-height:1.45}
.mds-faq summary::-webkit-details-marker{display:none}
.mds-tog{flex:none;width:38px;height:38px;border-radius:50%;border:1.5px solid var(--mds-line-strong);display:flex;align-items:center;justify-content:center;position:relative;transition:background .18s,border-color .18s}
.mds-tog::before,.mds-tog::after{content:"";position:absolute;background:var(--mds-accent-text);transition:transform .22s,opacity .22s,background .18s}
.mds-tog::before{width:13px;height:1.8px}
.mds-tog::after{width:1.8px;height:13px}
.mds-faq details[open] .mds-tog{background:var(--mds-charcoal);border-color:var(--mds-charcoal)}
.mds-faq details[open] .mds-tog::before{background:#fff}
.mds-faq details[open] .mds-tog::after{transform:scaleY(0);opacity:0}
.mds-faq summary:hover .mds-tog{border-color:var(--mds-taupe)}
.mds-faq .mds-a{padding:0 clamp(22px,2.2vw,30px) clamp(22px,2.2vw,28px);color:var(--mds-ink-60);max-width:76ch}
.mds-faq .mds-a p{margin:0;font-size:.98rem}
.mds-root .mds-faq-foot{margin-top:var(--mds-s5);text-align:center;font-size:.95rem;color:var(--mds-ink-60)}

/* local: two equal-height panels under the photo trio.
   align-items:stretch plus height:100% keeps the address panel and the hours
   panel exactly level regardless of how many rows each holds.              */
.mds-local-grid{display:grid;gap:clamp(24px,2.6vw,36px);align-items:stretch}
@media(min-width:860px){.mds-local-grid{grid-template-columns:1fr 1fr}}
.mds-panel{display:flex;flex-direction:column;height:100%;padding:clamp(24px,2.6vw,34px);border:1px solid var(--mds-line-strong);border-radius:var(--mds-r);background:var(--mds-white)}
.mds-grey .mds-panel{background:var(--mds-white)}
.mds-panel h3{font-family:var(--mds-font-body);font-weight:700;font-size:.9rem;letter-spacing:0;margin:0 0 20px}
.mds-nap{font-style:normal;font-size:1rem;line-height:1.75;margin:0 0 20px;padding-bottom:20px;border-bottom:1px solid var(--mds-line);overflow-wrap:anywhere}
.mds-rows{margin:0;display:grid;gap:0}
.mds-rows>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0;border-bottom:1px solid var(--mds-line)}
.mds-rows>div:first-child{padding-top:0}
.mds-rows dt{margin:0;font-weight:600;font-size:.95rem}
.mds-rows dd{margin:0;font-size:.95rem;text-align:right;min-width:0;overflow-wrap:anywhere}
.mds-rows dd a{font-weight:700;overflow-wrap:anywhere}
/* Mobile overflow guards: let grid/flex items shrink below their content so nothing exceeds the viewport. */
.mds-fee-panel,.mds-panel{min-width:0}
.mds-feelist li,.mds-plan-top,.mds-rows>div{min-width:0}
.mds-panel-foot{margin:auto 0 0;padding-top:20px;font-size:.9rem}
.mds-hours{width:100%;border-collapse:collapse;font-size:.95rem}
.mds-hours th{text-align:left;font-weight:500;padding:12px 0;border-bottom:1px solid var(--mds-line)}
.mds-hours td{text-align:right;padding:12px 0;border-bottom:1px solid var(--mds-line)}
.mds-hours tr:first-child th,.mds-hours tr:first-child td{padding-top:0}
.mds-hours tr:last-child th,.mds-hours tr:last-child td{border-bottom:0}
/* Scoped under .mds-root so theme heading rules cannot win on specificity,
   which is what was collapsing the gap above "What patients say".          */
.mds-root h3.mds-subhead{font-family:var(--mds-font-display);font-weight:600;font-size:clamp(1.55rem,3vw,2.38rem);
  line-height:1.14;letter-spacing:0;margin:0;max-width:25ch}
.mds-reviews-head{position:relative;margin-top:var(--mds-s4);justify-content:center;text-align:center}
.mds-reviews-head .mds-subhead{margin:0}
.mds-reviews-head .mds-subhead::after{margin-inline:auto}
.mds-reviews-title .mds-eyebrow{margin-bottom:22px}
.mds-reviews-head .mds-gallery-nav{position:absolute;right:0;bottom:0}
.mds-live-reviews{margin-top:var(--mds-s3)}
.mds-root ul.mds-reviews{align-items:stretch}
.mds-root ul.mds-reviews li{flex:0 0 84vw;max-width:420px}
@media(min-width:700px){.mds-root ul.mds-reviews li{flex-basis:46vw}}
@media(min-width:1100px){.mds-root ul.mds-reviews li{flex-basis:31vw}}
.mds-root ul.mds-reviews .mds-review{height:100%;background:var(--mds-white);border:1px solid var(--mds-line);
  border-top:2px solid var(--mds-taupe);border-radius:var(--mds-r);padding:clamp(22px,2.2vw,28px)}
.mds-review{border-top:2px solid var(--mds-taupe);padding-top:var(--mds-s2);margin:0;display:flex;flex-direction:column}
.mds-review-top{display:flex;align-items:center;gap:12px;margin-bottom:var(--mds-s2)}
.mds-review-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:0 0 44px;
  overflow:hidden;background:var(--mds-grey);border:1px solid var(--mds-line);color:var(--mds-accent-text);
  font:700 .72rem/1 var(--mds-font-body)}
.mds-review-avatar img{width:100%;height:100%;object-fit:cover}
.mds-review p{font-size:.95rem;color:var(--mds-ink-60)}
.mds-review cite{font-style:normal;font-weight:700;font-size:.9rem;margin-top:auto}
.mds-src{display:block;font-size:.8rem;color:var(--mds-ink-60);margin-top:2px;font-weight:400}

/* review panel */
.mds-reviewed{border:1px solid var(--mds-line-strong);border-left:3px solid var(--mds-taupe);padding:22px 24px;font-size:.92rem;display:grid;gap:4px;background:var(--mds-grey)}
.mds-reviewed-off{border-left-color:#d69420;background:#fdf6e7}

/* convert: centred band, no form. The site footer already carries an enquiry
   form, so duplicating one here split the conversion and doubled the fields. */
.mds-convert{text-align:center}
.mds-convert h2{max-width:22ch;margin-inline:auto}
.mds-convert p{max-width:60ch;margin:var(--mds-s2) auto 0;color:#cfcdd6;font-size:1.06rem}
.mds-convert .mds-btn-row{justify-content:center;margin-top:var(--mds-s4)}
.mds-related{display:flex;flex-wrap:wrap;gap:var(--mds-s1);justify-content:center;margin-top:var(--mds-s4);padding-top:var(--mds-s4);border-top:1px solid rgba(255,255,255,.16)}
.mds-related a{font-size:.9rem;font-weight:600;text-decoration:none;border:1px solid rgba(255,255,255,.34);padding:11px 18px;color:#fff !important;border-radius:var(--mds-r)}
.mds-related a:hover{background:rgba(255,255,255,.12)}

/* Persistent call and book bar.
   Shown on every breakpoint. Extra height plus safe-area padding keeps the
   labels clear of the browser's own bottom chrome on mobile.               */
.mds-sticky{position:fixed;left:0;right:0;bottom:0;z-index:120;display:grid;grid-template-columns:1fr 1fr;
  gap:1px;background:rgba(255,255,255,.25);border-top:1px solid rgba(255,255,255,.25);
  transform:translateY(0);transition:transform .22s ease}
.mds-sticky.is-visible{transform:translateY(0)}
.mds-sticky a{display:flex;align-items:center;justify-content:center;min-height:64px;
  font:700 1rem var(--mds-font-body);text-decoration:none;
  padding:14px 12px calc(14px + env(safe-area-inset-bottom))}
.mds-sticky .mds-call{background:var(--mds-charcoal);color:#fff!important}
.mds-sticky .mds-book{background:var(--mds-accent-text);color:#fff!important}
@media(min-width:1024px){
  .mds-sticky{left:auto;right:24px;bottom:24px;width:auto;grid-template-columns:auto auto;gap:10px;
    background:none;border:0;border-radius:999px;box-shadow:0 6px 26px rgba(55,54,64,.22)}
  .mds-sticky a{min-height:56px;padding:0 26px;border-radius:999px;font-size:.96rem}
}
body.mds-has-sticky{padding-bottom:72px}
@media(min-width:1024px){body.mds-has-sticky{padding-bottom:0}}

/* A rail taller than the viewport would hide its own lower half if pinned.
   Releasing sticky on short viewports keeps everything reachable.          */
@media(max-height:800px){.mds-keyfacts{position:static}}

@media(prefers-reduced-motion:reduce){
  .mds-root *,.mds-sticky{animation:none!important;transition:none!important}
}
