/* ==========================================================================
   Medspa_Theme — Before & After Layouts (20)
   Token-driven tones. GROUND RULE enforced. Spacing token is --gap.
   BLUSH RULE: --coral-ink 4.18:1 and --muted 4.11:1 FAIL on blush.
   ========================================================================== */
.msvc-ba{position:relative;
  --b-bg:var(--cream); --b-fg:var(--ink); --b-fg2:var(--body); --b-fg3:var(--muted);
  --b-line:var(--border); --b-accent:var(--coral-ink); --b-card:#fff;
  /* Text painted ON TOP of --b-accent. White is fine on coral but only 2.28:1 on
     nude, so the ink tone flips it. A token safe on one ground is not safe on all. */
  --b-on-accent:#fff;
  background:var(--b-bg);color:var(--b-fg2);padding-block:var(--gap);
  display:block;grid-template-columns:none}
.msvc-ba.t-white{--b-bg:var(--white)}
.msvc-ba.t-cream{--b-bg:var(--cream)}
.msvc-ba.t-sand {--b-bg:var(--sand)}
.msvc-ba.t-blush{--b-bg:var(--blush); --b-accent:var(--coral-dk); --b-fg3:var(--body)}
.msvc-ba.t-ink{--b-bg:var(--ink); --b-fg:#fff; --b-fg2:var(--on-dark-2); --b-fg3:var(--on-dark-2);
  --b-line:var(--border-lt); --b-accent:var(--nude); --b-card:var(--dark); --b-on-accent:var(--ink)}

.msvc-ba .wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--pad);position:relative;z-index:2}
.msvc-ba .msvc-eyebrow{color:var(--b-accent)}
.msvc-ba h2{color:var(--b-fg)}
.msvc-ba h3{color:var(--b-fg);font-size:.95rem;font-weight:700;margin:0 0 6px}
.msvc-ba p{margin:0;color:var(--b-fg2);font-size:.86rem;line-height:1.65}
.msvc-ba .ba-h2{margin-top:12px}
.ba-head{margin-bottom:clamp(26px,3.5vw,44px)}
.ba-head.ctr{text-align:center;max-width:720px;margin-inline:auto}
.msvc-ba .ph{display:grid;place-items:center;background:var(--sand);color:var(--muted);
  border-radius:var(--rl);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}
.msvc-ba img{border-radius:var(--rl);display:block;width:100%}
.ba-f{position:relative;margin:0}
.ba-tag{position:absolute;top:12px;left:12px;z-index:2;
  background:rgba(12,12,13,.82);color:#fff;border-radius:100px;padding:5px 12px;
  font-size:.6rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
.ba-cap{margin-top:10px;font-size:.74rem;line-height:1.5;color:var(--b-fg3)}
/* The disclaimer. Deliberately legible, never a faint afterthought. */
.ba-note{margin-top:22px;text-align:center;font-size:.74rem;color:var(--b-fg3);
  font-style:italic;line-height:1.5}
.ba-all{margin-top:18px;text-align:center}
.ba-all a{font-size:.78rem;font-weight:700;letter-spacing:.04em;color:var(--b-accent);text-decoration:none}
.ba-all a:hover{text-decoration:underline}
.ba-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
/* 2 */
.ba2-a{max-width:660px;margin:0 auto 28px;text-align:center}
.ba2-a p{font-size:1rem;line-height:1.7;color:var(--b-fg2)}
/* 3 */
.ba3-g{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(26px,4vw,56px);align-items:center}
.ba3-t .ba-note,.ba3-t .ba-all{text-align:left}
/* 4 · drag slider */
.ba4-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.ba4-c{margin:0}
.ba4-w{position:relative;overflow:hidden;border-radius:var(--rl);touch-action:none;cursor:ew-resize;
  aspect-ratio:4/3;background:var(--sand)}
.ba4-w img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:0}
.ba4-b{position:absolute;inset:0;width:50%;overflow:hidden}
.ba4-b img{width:auto;height:100%;max-width:none}
.ba4-h{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;
  box-shadow:0 0 0 1px rgba(0,0,0,.2);transform:translateX(-1px);pointer-events:none}
.ba4-h::after{content:'';position:absolute;top:50%;left:50%;width:32px;height:32px;
  border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 2px 10px rgba(0,0,0,.28)}
.ba4-lb{position:absolute;bottom:12px;z-index:3;background:rgba(12,12,13,.82);color:#fff;
  border-radius:100px;padding:4px 11px;font-size:.58rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.ba4-lb--b{left:12px}
.ba4-lb--a{right:12px}
.ba4-r{width:100%;margin-top:12px;accent-color:var(--b-accent)}
.ba4-r:focus-visible{outline:2px solid var(--b-accent);outline-offset:3px}
/* 5 · toggle */
.ba5-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.ba5-c{margin:0}
.ba5-w{position:relative;border-radius:var(--rl);overflow:hidden;aspect-ratio:4/3;background:var(--sand)}
.ba5-w img{width:100%;height:100%;object-fit:cover;border-radius:0}
.ba5-sw{display:inline-flex;gap:3px;margin-top:12px;padding:3px;border-radius:100px;
  background:var(--b-card);border:1px solid var(--b-line)}
.ba5-sw button{--b-fg3:var(--b-fg3);
  border:0;background:none;border-radius:100px;padding:7px 16px;font:inherit;font-size:.74rem;
  font-weight:700;color:var(--b-fg3);cursor:pointer}
.ba5-sw button.is-on{background:var(--b-accent);color:var(--b-on-accent)}
.ba5-sw button:focus-visible{outline:2px solid var(--b-accent);outline-offset:2px}
/* 6 · day-by-day */
.ba6-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
.ba6-i .l{margin-top:12px;font-size:.68rem;font-weight:700;letter-spacing:.11em;
  text-transform:uppercase;color:var(--b-accent)}
.ba6-i p{margin-top:6px;font-size:.79rem}
/* 7 · case cards */
.ba7-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.ba7-c{--b-fg:var(--ink); --b-fg2:var(--body); --b-fg3:var(--muted); --b-accent:var(--coral-ink);
  background:#fff;border:1px solid var(--border);border-radius:var(--rl);overflow:hidden}
.ba7-c .b{padding:18px}
.ba7-c .t{font-size:.68rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  color:var(--b-accent);margin-bottom:8px}
.ba7-p{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.ba7-p img{border-radius:0;aspect-ratio:1/1;object-fit:cover}
/* 8 · split */
.ba8-g{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(26px,4vw,56px);align-items:center}
.ba8-p{margin-top:16px}
.ba8-t .ba-note,.ba8-t .ba-all{text-align:left}
/* 9 · carousel */
.ba9-r{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:16px;
  overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px}
.ba9-i{scroll-snap-align:start}
.ba9-r:focus-visible{outline:2px solid var(--b-accent);outline-offset:4px}
/* 10 · chips */
.ba10-ch{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:24px}
.ba10-ch .chip{--b-fg:var(--ink);
  background:#fff;border:1px solid var(--border);border-radius:100px;padding:6px 14px;
  font-size:.72rem;font-weight:700;color:var(--b-fg)}
.ba10-g{display:grid;grid-template-columns:1fr 1fr;gap:16px}
/* 11 · gallery + FAQ */
.ba11-g{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,4vw,52px);align-items:start}
.ba11-i{display:grid;gap:12px}
.ba11-f{border-top:1px solid var(--b-line)}
.ba11-q{border-bottom:1px solid var(--b-line)}
.ba11-q summary{cursor:pointer;padding:15px 0;list-style:none;font-size:.88rem;font-weight:700;color:var(--b-fg);
  position:relative;padding-right:24px}
.ba11-q summary::-webkit-details-marker{display:none}
.ba11-q summary::after{content:'+';position:absolute;right:0;top:15px;color:var(--b-accent)}
.ba11-q[open] summary::after{content:'–'}
.ba11-q p{padding-bottom:15px}
.ba11-f .ba-note{text-align:left}
/* 12 · text only */
.ba12-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(22px,3vw,40px)}
.ba12-i{padding-top:16px;border-top:2px solid var(--b-accent)}
/* 13 · editorial */
.ba13-w{max-width:860px;margin-inline:auto}
.ba13-c{column-count:2;column-gap:42px;margin-top:22px}
.ba13-c p::first-letter{float:left;font-family:var(--fd);font-size:3.2em;
  line-height:.82;padding:5px 9px 0 0;color:var(--b-accent)}
/* 14 · notched */
.ba14-fr{--b-fg:var(--ink); --b-fg2:var(--body); --b-fg3:var(--muted); --b-accent:var(--coral-ink);
  background:#fff;border:1px solid var(--ink);padding:clamp(26px,4vw,52px);
  clip-path:polygon(0 0,calc(100% - 40px) 0,100% 40px,100% 100%,40px 100%,0 calc(100% - 40px))}
/* 15 · dark gallery — owns its ground */
.msvc-ba.ba-15{--b-bg:var(--ink); --b-fg:#fff; --b-fg2:var(--on-dark-2); --b-fg3:var(--on-dark-2);
  --b-line:var(--border-lt); --b-accent:var(--nude)}
/* 16 · masonry */
.ba16-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;align-items:start}
.ba16-i{margin-top:calc(var(--i,0) * 30px)}
/* 17 · stats */
.ba17-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:26px}
.ba17-s{--b-fg:var(--ink); --b-fg3:var(--muted); --b-accent:var(--coral-ink);
  background:#fff;border:1px solid var(--border);border-radius:var(--rl);padding:22px;text-align:center}
.ba17-s .v{font-family:var(--fd);font-size:2rem;color:var(--b-accent);line-height:1}
.ba17-s .l{margin-top:8px;font-size:.76rem;color:var(--b-fg3);line-height:1.45}
.ba17-src{margin-top:16px;text-align:center;font-size:.68rem;color:var(--b-fg3)}
/* 18 · concern by concern */
.ba18-t{border-top:1px solid var(--b-line)}
.ba18-h{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;padding-block:12px;
  border-bottom:1px solid var(--b-line)}
.ba18-h span{font-size:.64rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--b-fg3)}
.ba18-r{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;padding-block:18px;
  border-bottom:1px solid var(--b-line);align-items:start}
.ba18-r .k{font-size:.9rem;font-weight:700;color:var(--b-fg)}
/* 19 · honest expectations */
.ba19-g{display:grid;gap:14px}
.ba19-r{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ba19-r .a,.ba19-r .b{border-radius:var(--rl);padding:20px}
.ba19-r .a{--b-fg3:var(--b-fg3); background:var(--b-card);border:1px solid var(--b-line)}
.ba19-r .b{--b-fg:var(--ink); --b-fg2:var(--body); --b-fg3:var(--muted);
  background:#fff;border:1px solid var(--coral-btn)}
.ba19-r .lb{display:block;margin-bottom:7px;font-size:.62rem;font-weight:700;letter-spacing:.11em;
  text-transform:uppercase;color:var(--b-fg3)}
.ba19-r .b .lb{color:var(--coral-ink)}
/* 20 · full-bleed showcase — owns its ground */
.msvc-ba.ba-20{--b-fg:#fff; --b-fg2:rgba(255,255,255,.9); --b-fg3:rgba(255,255,255,.8);
  --b-accent:var(--nude); background:var(--ink);overflow:hidden}
.ba20-bg{position:absolute;inset:0;z-index:0}
.ba20-bg img{width:100%;height:100%;object-fit:cover;border-radius:0}
.ba20-bg::after{content:'';position:absolute;inset:0;background:rgba(12,12,13,.62)}
.ba20-w{position:relative;z-index:2;max-width:680px;margin-inline:auto;text-align:center}

@media(max-width:900px){
  .ba3-g,.ba8-g,.ba11-g,.ba19-r{grid-template-columns:1fr}
  .ba10-g{grid-template-columns:1fr}
  .ba13-c{column-count:1}
  .ba16-i{margin-top:0}
  .ba18-h{display:none}
  .ba18-r{grid-template-columns:1fr;gap:6px}
}

/* 2.53.18 — Automatic Case Study source.
   Dynamic results remain readable from one through six items instead of
   stretching a single composite across the complete Service content width. */
.ba-case-link{display:block;color:inherit;text-decoration:none;overflow:hidden;border-radius:var(--rl)}
.ba-case-link img{transition:transform .35s ease,filter .35s ease}
.ba-case-link:hover img,.ba-case-link:focus-visible img{transform:scale(1.018);filter:contrast(1.02)}
.ba-case-link:focus-visible{outline:2px solid var(--b-accent);outline-offset:4px}
.msvc-ba.ba-count-1 .ba-grid,.msvc-ba.ba-count-1 .ba7-g{grid-template-columns:minmax(0,760px);justify-content:center}
.msvc-ba.ba-count-2 .ba-grid,.msvc-ba.ba-count-2 .ba7-g{grid-template-columns:repeat(2,minmax(0,1fr));max-width:980px;margin-inline:auto}
.msvc-ba.ba-count-4 .ba-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1050px;margin-inline:auto}
.msvc-ba.is-gallery-source .ba-cap{font-weight:600}
@media(max-width:720px){
  .msvc-ba.ba-count-2 .ba-grid,.msvc-ba.ba-count-2 .ba7-g,
  .msvc-ba.ba-count-4 .ba-grid{grid-template-columns:1fr;max-width:none}
}

/* 2.53.19 — Automatic gallery fallback when an existing Builder document has no usable manual photographs. */
