/* Soma Bloom — interactive pieces. Namespaced sbx-* so they sit inside any page's own design. */
/* .eyebrow mirrors site.css .over — the service pages use it and site.css never defined it. */
.eyebrow{font:300 .78rem/1.75 'Karla','Karla Fallback',sans-serif;letter-spacing:.3em;text-transform:uppercase;color:var(--candle,#b08850);margin:0}
.sbx{margin-top:clamp(28px,4vh,44px);border:1px solid var(--line, rgba(0,0,0,.12));padding:clamp(22px,3vw,34px);position:relative}
.sbx-kicker{font-family:'Karla',sans-serif;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--candle,#b08850);margin:0 0 8px}
.sbx h3{font-family:'Marcellus',serif;font-weight:400;font-size:1.3rem;margin:0}
.sbx-fine{font-size:.9rem;color:var(--dim,#6b6b66);margin-top:12px;line-height:1.55}
.sbx-quiet{font-family:'Karla',sans-serif;font-size:.92rem;color:var(--candle,#b08850);text-decoration:underline;background:none;border:0;padding:8px 0;cursor:pointer}

/* pacer — the bloom */
.sbx-pacer{display:grid;justify-items:center;text-align:center;gap:14px;--sbx-dur:4s;--sbx-open:.18;--sbx-ring:0}
.sbx-stage{position:relative;width:clamp(180px,26vw,240px);aspect-ratio:1}
.sbx-bloom{width:100%;height:100%;display:block;overflow:visible}
.sbx-ring-track{fill:none;stroke:var(--line,rgba(0,0,0,.14));stroke-width:1}
.sbx-ring{fill:none;stroke:var(--candle,#b08850);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:578;stroke-dashoffset:578;transform:rotate(-90deg);transform-origin:50% 50%;opacity:.9}
.sbx-petal{fill:var(--candle,#b08850);fill-opacity:.16;stroke:var(--candle,#b08850);stroke-opacity:.55;stroke-width:.8;transform-origin:100px 100px;transform:rotate(var(--sbx-angle)) scale(var(--sbx-open));transition:transform var(--sbx-dur) cubic-bezier(.4,0,.2,1),fill-opacity var(--sbx-dur) ease}
.sbx-core{fill:var(--candle,#b08850);opacity:.7;transform-origin:50% 50%;transition:transform var(--sbx-dur) cubic-bezier(.4,0,.2,1),opacity var(--sbx-dur) ease}
.sbx-pacer.is-in{--sbx-open:1}
.sbx-pacer.is-in .sbx-ring{transition:stroke-dashoffset var(--sbx-dur) linear;stroke-dashoffset:0}
.sbx-pacer.is-in .sbx-petal{fill-opacity:.32}
.sbx-pacer.is-in .sbx-core{transform:scale(1.6);opacity:1}
.sbx-pacer.is-hold{--sbx-open:1}
.sbx-pacer.is-hold .sbx-ring{transition:none;stroke-dashoffset:0;opacity:.45}
.sbx-pacer.is-hold .sbx-petal{fill-opacity:.32;transition:none}
.sbx-pacer.is-hold .sbx-core{transform:scale(1.6);opacity:1;transition:none}
.sbx-pacer.is-out{--sbx-open:.18}
.sbx-pacer.is-out .sbx-ring{transition:stroke-dashoffset var(--sbx-dur) linear;stroke-dashoffset:578}
.sbx-pacer.is-out .sbx-petal{fill-opacity:.16}
.sbx-pacer.is-out .sbx-core{transform:scale(1);opacity:.7}
.sbx-count{position:absolute;inset:0;display:grid;place-items:center;margin:0;font-family:'Marcellus',serif;font-size:1.6rem;color:var(--dim,#6b6b66);pointer-events:none;transition:opacity .4s}
.sbx-pacer:not(.is-running) .sbx-count{opacity:0}
.sbx-cue{font-family:'Marcellus',serif;font-size:1.15rem;margin:0;min-height:1.6em}
.sbx-rhythm{display:flex;gap:4px;width:min(260px,80%);height:3px}
.sbx-beat{border-radius:2px;background:var(--line,rgba(0,0,0,.14));transition:background .4s}
.sbx-beat.is-now{background:var(--candle,#b08850)}
.sbx-btn{min-height:44px;padding:0 22px;border:1px solid var(--candle,#b08850);background:transparent;color:inherit;font-family:'Karla',sans-serif;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;cursor:pointer}
.sbx-btn:hover{background:color-mix(in oklab, var(--candle,#b08850) 14%, transparent)}
.sbx-pacer.sbx-still .sbx-petal,.sbx-pacer.sbx-still .sbx-core,.sbx-pacer.sbx-still .sbx-ring{transition:none}
.sbx-pacer.sbx-still{--sbx-open:.62}

/* next session */
.sbx-next-card{display:grid;gap:8px}
.sbx-when{font-family:'Marcellus',serif;font-size:1.25rem;margin:0}
.sbx-meta{color:var(--dim,#6b6b66);margin:0}
.sbx-book{justify-self:start;margin-top:6px}

/* finder */
.sbx-q{font-family:'Marcellus',serif;font-size:1.25rem;margin:0 0 14px}
.sbx-options{display:flex;flex-wrap:wrap;gap:10px}
.sbx-opt{min-height:44px;padding:0 18px;border:1px solid var(--line, rgba(0,0,0,.14));background:transparent;color:inherit;font-family:'Karla',sans-serif;font-size:.95rem;cursor:pointer;transition:border-color .2s,background .2s}
.sbx-opt:hover,.sbx-opt:focus-visible{border-color:var(--candle,#b08850);background:color-mix(in oklab, var(--candle,#b08850) 10%, transparent)}
.sbx-result p{margin-top:10px;color:var(--dim,#6b6b66);max-width:56ch}
.sbx-links{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:16px}
.sbx-again{display:block;margin-top:14px}

/* weeks */
.sbx-weeks{display:grid;gap:10px;max-width:38ch}
.sbx-label{font-family:'Karla',sans-serif;font-size:.9rem;color:var(--dim,#6b6b66)}
.sbx-input{min-height:44px;padding:0 12px;border:1px solid var(--line, rgba(0,0,0,.14));background:transparent;color:inherit;font-family:'Karla',sans-serif;font-size:1rem}
.sbx-weeks-out{font-family:'Marcellus',serif;font-size:1.1rem;margin:0;min-height:1.4em}

/* Sanctuary teaser: the app's seated figure, breathing */
.sbx-app{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:clamp(20px,3vw,40px);align-items:center}
.sbx-app-figure{position:relative;width:200px;height:200px;justify-self:center}
.sbx-halo{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle, color-mix(in oklab, var(--candle,#b08850) 40%, transparent) 0%, color-mix(in oklab, var(--candle,#b08850) 14%, transparent) 45%, transparent 72%);animation:sbx-halo 8s ease-in-out infinite}
.sbx-app-figure svg{position:relative;display:block;width:200px;height:200px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
@keyframes sbx-halo{0%,100%{transform:scale(.94);opacity:.55}50%{transform:scale(1.06);opacity:.9}}
@media (prefers-reduced-motion: reduce){.sbx-halo{animation:none}.sbx-disc{transition:none}}
@media (max-width:760px){.sbx-app{grid-template-columns:1fr}}

/* ── Release 9 polish ─────────────────────────────────────────── */
/* cards lift a touch on hover */
.tri .t{transition:transform .35s var(--ease-out-soft,ease),border-color .35s}
.tri .t:hover{transform:translateY(-4px);border-color:var(--candle,#b08850)}
/* live dot beside the next-session kicker */
.sbx-next-card .sbx-kicker::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--seaglass,#3D715E);margin-right:9px;vertical-align:middle;animation:sbx-pulse 2.4s ease-in-out infinite}
@keyframes sbx-pulse{0%,100%{opacity:.5;transform:scale(.9)}50%{opacity:1;transform:scale(1.15)}}
/* hero picture on service pages */
.sbx-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(24px,4vw,56px);align-items:center}
.sbx-hero-img{position:relative;overflow:hidden;border-radius:2px}
.sbx-hero-img img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;display:block}
.sbx-hero .actions{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center}
.sbx-hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,color-mix(in oklab,var(--pine,#1d3a31) 55%,transparent))}
/* credentials + proof strips */
.sbx-strip{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;margin-top:clamp(22px,3vh,32px);padding:16px 0;border-top:1px solid var(--line,rgba(0,0,0,.12));border-bottom:1px solid var(--line,rgba(0,0,0,.12));font-family:'Karla',sans-serif;font-size:.92rem;color:var(--dim,#6b6b66)}
.sbx-strip b{font-weight:500;color:inherit}
.sbx-strip .star{color:var(--candle,#b08850);letter-spacing:.06em}
/* before-class rows */
.sbx-rows{display:grid;gap:0;margin-top:clamp(24px,4vh,40px);border-top:1px solid var(--line,rgba(0,0,0,.12))}
.sbx-row{display:grid;grid-template-columns:96px 1fr;gap:18px;padding:18px 0;border-bottom:1px solid var(--line,rgba(0,0,0,.12))}
.sbx-row .k{font-family:'Marcellus',serif;color:var(--candle,#b08850)}
.sbx-row p{margin:0;color:var(--dim,#6b6b66);max-width:60ch}
/* sticky mobile call to action */
.sbx-sticky{position:fixed;left:0;right:0;bottom:0;z-index:70;display:none;gap:10px;padding:10px clamp(14px,4vw,22px) calc(10px + env(safe-area-inset-bottom));background:color-mix(in oklab,var(--pine,#1d3a31) 92%,transparent);backdrop-filter:blur(10px);border-top:1px solid var(--line,rgba(255,255,255,.14))}
.sbx-sticky .btn{flex:1;text-align:center;padding:12px 10px}
@media (max-width:760px){.sbx-sticky{display:flex}body{padding-bottom:72px}.sbx-hero{grid-template-columns:1fr}.sbx-hero-img img{aspect-ratio:16/10}}
@media (prefers-reduced-motion: reduce){.tri .t{transition:none}.sbx-next-card .sbx-kicker::before{animation:none}}

/* ── Motion control (WCAG 2.2.2) ─────────────────────────────── */
.sbx-motion{position:fixed;right:clamp(12px,3vw,22px);bottom:clamp(12px,3vh,22px);z-index:71;min-height:40px;padding:0 14px;border:1px solid var(--line,rgba(0,0,0,.18));background:color-mix(in oklab,var(--pine,#1d3a31) 88%,transparent);color:var(--linen,#f3efe6);font-family:'Karla',sans-serif;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;backdrop-filter:blur(8px)}
.sbx-motion:hover,.sbx-motion:focus-visible{border-color:var(--candle,#b08850)}
@media (max-width:760px){.sbx-motion{bottom:calc(72px + env(safe-area-inset-bottom) + 10px)}}
html[data-motion="still"] .sbx-halo,html[data-motion="still"] .sbx-next-card .sbx-kicker::before{animation:none}
html[data-motion="still"] .ticker *{animation-play-state:paused}
html[data-motion="still"] .sbx-petal,html[data-motion="still"] .sbx-core,html[data-motion="still"] .sbx-ring{transition:none}

/* the site's own booking bar (#sb-bookbar) takes the bottom edge: no second bar, and the motion button sits above it */
body:has(#sb-bookbar) .sbx-sticky{display:none}
@media (max-width:760px){body:has(#sb-bookbar){padding-bottom:0}}
body:has(#sb-bookbar) .sbx-motion{bottom:calc(66px + env(safe-area-inset-bottom))}
