/* C30 focus shell. Existing typography and catalog prices are inherited. */
html:has([data-c30-focus]),body.c16-booking-active{overflow:hidden!important;overscroll-behavior:none;height:100%}
body.c16-booking-active>*,body.c16-booking-active header,body.c16-booking-active footer,body.c16-booking-active .mobile-nav,body.c16-booking-active .lux-mobile-contact,body.c16-booking-active .lux-public-sound,body.c16-booking-active .op-bar{visibility:hidden!important}
body.c16-booking-active [data-mobile-flow],body.c16-booking-active [data-mobile-flow] *{visibility:visible!important}
body.c16-booking-active [hidden]{display:none!important}
body.c16-booking-active [data-mobile-flow]{position:fixed;inset:0;z-index:200000;max-width:none;margin:0;padding:0!important;background:#121110;display:flex;align-items:stretch;justify-content:center;isolation:isolate}
[data-c30-focus]{width:100%;max-width:560px;height:100dvh;display:grid;grid-template-rows:auto auto auto auto auto minmax(0,1fr) auto;background:#121110;color:#f3eee4;overflow:hidden;box-sizing:border-box;animation:c30-open 180ms ease-out}
[data-c30-focus]>*{min-width:0}
[data-c30-focus]>.c16-top{grid-row:1;margin:0;padding:calc(8px + env(safe-area-inset-top,0px)) 16px 8px;display:grid;grid-template-columns:44px minmax(0,1fr) 48px;gap:10px;align-items:center;position:relative;top:auto;border:0}
.c30-top strong{text-align:center;font-size:16px}.c30-top [data-c30-count]{font-size:13px;white-space:nowrap;text-align:end;direction:ltr;color:#b9af9f}
.c30-top .c16-back{width:44px;height:44px;min-height:44px;font-size:20px;background:transparent;color:#f3eee4;border:0;cursor:pointer}
[data-c30-focus]>.c30-progress{grid-row:2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:0;padding:0 20px 8px;list-style:none}
.c30-progress li{height:14px;padding:0;border:0!important;background:transparent!important;position:relative}
.c30-progress li::before,.c30-progress li::after{display:none!important}
.c30-progress button{display:block;width:100%;height:14px;padding:5px 0;border:0;background:transparent;cursor:pointer}
.c30-progress button::before{content:'';display:block;height:3px;background:#39342c;border-radius:3px}
.c30-progress .is-complete button::before{background:#d9b26a}.c30-progress button span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
[data-c30-focus]>.c16-booking-item{grid-row:3;display:flex;margin:0 20px;padding:12px 0;border-bottom:1px solid #2e2a24;gap:12px;min-height:74px}
[data-c30-focus]>.c16-booking-item img{width:48px;height:48px;border-radius:10px;object-fit:cover}
[data-c30-focus]>.c16-booking-item strong{font-size:15px;line-height:1.5}
[data-c30-focus]>.c16-booking-item small{font-size:11px;line-height:1.6}
[data-c30-focus]>.c16-error{margin:0 20px;grid-row:4;font-size:13px}
[data-c30-focus]>[data-c16-error]{grid-row:5}
[data-c30-focus]>.c30-viewport{grid-row:6;position:relative;min-height:0;overflow:hidden}
[data-c30-focus] .c16-step{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scroll-behavior:auto!important;margin:0;padding:20px 20px 28px!important;border:0;min-width:0;min-height:0;box-sizing:border-box;transition:transform 220ms ease-out;background:#121110;will-change:transform}
[data-c30-focus] .c16-step legend{float:none;width:100%;padding:0;margin:0 0 16px;line-height:1.4}
[data-c30-focus] .c16-step legend small{display:none}
[data-c30-focus] .c16-step h1{font-size:27px;line-height:1.45;margin:0 0 14px}
[data-c30-focus] .c16-step h2{font-size:20px;line-height:1.5;margin:14px 0 10px}
[data-c30-focus] .c16-step [inert]{pointer-events:none}
[data-c30-focus]>.c16-action{grid-row:7;position:relative;inset:auto!important;z-index:4;width:auto;max-width:none;margin:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:minmax(82px,1fr) auto minmax(106px,1.3fr);gap:10px;align-items:center;background:#191714;border-top:1px solid #3b3429;box-shadow:none;transform:none!important}
[data-c30-focus]>.c16-action>div{max-width:none;display:grid;gap:3px}
[data-c30-focus]>.c16-action small{font-size:11px;color:#b9af9f}
[data-c30-focus]>.c16-action b{font-size:17px;font-weight:600;color:#e1bd78;white-space:normal;line-height:1.4}
[data-c30-focus] .c16-gold,[data-c30-focus] .c30-back{border-radius:12px;padding:12px 14px;min-height:48px;font-size:14px;line-height:1.4;cursor:pointer;font-family:inherit;white-space:normal}
[data-c30-focus] .c16-gold{background:#d9b26a;color:#18130c;border:1px solid #d9b26a}
[data-c30-focus] .c30-back{background:transparent;border:1px solid #615748;color:#ede4d3}
[data-c30-focus] button:disabled{opacity:.4;cursor:default}
[data-c30-focus] button:focus-visible,[data-c30-focus] input:focus-visible{outline:2px solid #efd5a1;outline-offset:3px}
.c30-options{border:0;margin:0;padding:0;min-width:0}.c30-options legend{font-size:18px!important;margin:18px 0 10px!important}
.c30-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 20px}
.c30-mode{display:flex;gap:8px;border:1px solid #514739;border-radius:16px;padding:14px 12px;align-items:start;cursor:pointer;min-width:0;background:#1c1a17}
.c30-mode:has(input:checked){border-color:#dfbd7b;background:#282219;box-shadow:inset 0 0 0 1px #dfbd7b}
.c30-mode input{accent-color:#d9b26a;flex:none;margin-top:6px}.c30-mode span{display:grid;gap:7px}.c30-mode strong{font-size:21px;line-height:1.5;color:#f3eee4}.c30-mode small{font-size:12px;line-height:1.8;color:#c9bfaf}
.c30-materials{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}
.c30-preset ul{padding-inline-start:20px;margin:0;line-height:2}.c30-preset li{font-size:15px}
.c30-payments{display:grid!important;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}
[data-c30-focus] .c30-payments .c16-payment{display:flex;flex-direction:column;align-items:start;margin:0;min-height:145px;padding:14px 12px;gap:10px;border:1px solid #615748;min-width:0;box-sizing:border-box}
.c30-payments .c16-payment span{display:grid;gap:8px;min-width:0}
.c30-payments .c16-payment strong{font-size:14px;line-height:1.7}.c30-payments b{font-size:20px;color:#e5c489;font-weight:600;line-height:1.5}
[data-c30-focus] .c30-payments .c30-online{border:2px solid #d9b26a;background:#2a2318}
.c30-saved{font-size:11px;background:#d9b26a;color:#19140c;border-radius:6px;padding:4px 6px;line-height:1.5}
.c16-summary dl>div{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:10px 0;border-bottom:1px solid #393126}
.c16-summary dt{grid-column:1;font-size:12px;color:#b9af9f}.c16-summary dd{grid-column:1;margin:0;font-size:14px;overflow-wrap:anywhere}
.c30-edit{grid-column:2;grid-row:1/3;align-self:center;background:transparent;border:0;color:#dfbd7b;font-size:12px;padding:10px 0;min-height:44px;cursor:pointer}
[data-c30-focus] .c30-exit{margin:auto;width:calc(100% - 40px);max-width:370px;padding:24px;border:1px solid #8c7650;border-radius:20px;background:#201c16;color:#f3eee4;box-sizing:border-box;box-shadow:0 20px 70px #0008;text-align:center}
.c30-exit::backdrop{background:#000b}.c30-exit h2{font-size:25px;margin:0 0 24px}.c30-exit button{display:block;width:100%;margin-top:12px}
@keyframes c30-open{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}
@media(min-width:768px){body.c16-booking-active [data-mobile-flow]{padding:24px!important;align-items:center;background:#000a;backdrop-filter:blur(3px)}[data-c30-focus]{height:min(900px,calc(100dvh - 48px));border:1px solid #514739;border-radius:22px;box-shadow:0 24px 100px #0009}}
@media(prefers-reduced-motion:reduce){[data-c30-focus],[data-c30-focus] *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Therapist profile entry opens at the centre, then enters the same focus flow. */
body:has(.cs-c27 .cs-dialog[open]){overflow:hidden!important}
body:has(.cs-c27 .cs-dialog[open]) .mobile-nav,body:has(.cs-c27 .cs-dialog[open]) .lux-public-sound,body:has(.cs-c27 .cs-dialog[open]) .lux-mobile-contact{display:none!important}
.cs-c27 .cs-dialog{inset:0;max-width:none;width:100%;height:100dvh;max-height:100dvh;border-radius:0;margin:0;padding-top:calc(22px + env(safe-area-inset-top,0px));animation:c30-open 180ms ease-out;box-shadow:none}
@media(min-width:768px){.cs-c27 .cs-dialog{inset:0;width:560px;height:auto;max-height:calc(100dvh - 48px);border-radius:22px;margin:auto;box-shadow:0 20px 90px #0009}}
@media(prefers-reduced-motion:reduce){.cs-c27 .cs-dialog{animation:none!important;transition:none!important}}
[data-c30-focus] .c30-saved{color:#19140c!important}
[data-held-focus] .c16-all-list>summary{display:none}
[data-c30-focus]>.c16-action{height:calc(92px + env(safe-area-inset-bottom,0px));box-sizing:border-box}
[data-c30-focus]>.c16-action button{height:64px;min-height:64px;padding:8px;font-size:12px;line-height:1.3}

/* C30c: tighter step headings; footer total label keeps one line so the bar never shifts. */
.c16-step>legend{margin-bottom:8px}.c16-step>legend h1{margin-bottom:4px}.c30-modes{margin-top:0}.c30-preset{margin-top:0}
[data-c16-total-label]{display:block;min-height:1.4em;white-space:nowrap}
.c30-goals{border:0;padding:0;margin:0 0 14px}.c30-goals legend{font-weight:600;margin-bottom:8px}.c30-goal-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
/* The step-1 massage type replaces the picker's own goal buttons inside the booking flow. */
.c16-step .op-goals,.c16-step .op-sub{display:none}
/* C33: submit in progress. */
.c16 .is-busy{opacity:.75;cursor:progress;position:relative}.c16 .is-busy::after{content:"";display:inline-block;width:14px;height:14px;margin-inline-start:8px;vertical-align:-2px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:c33spin .8s linear infinite}@keyframes c33spin{to{transform:rotate(360deg)}}
