:root{--ink:#0B0818;--violet:#6A29D2;--violet-lt:#B69AF0;--violet-deep:#3D1A73;--paper:#FFFFFF;--lav:#F4F0FD;--lav-2:#EFE9FC;--line:#E2D9F7;--text:#0E0B1E;--body:#4A4560;--on-dark-3:#9C93BE;--gutter:clamp(20px,4.5vw,72px);font-family:'Outfit','Segoe UI',system-ui,sans-serif;color:#fff;background:var(--ink);font-synthesis:none}
html{scroll-behavior:auto}html.lenis{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-height:100svh;display:grid;place-items:center;padding:clamp(24px,6vw,72px);-webkit-font-smoothing:antialiased}body.booking-open{display:block;padding:0;background:var(--lav)}
/* Same preloader layout, approved mark and visual tokens as assets/site.css. */
#pre{position:fixed;inset:0;z-index:100;background:var(--ink);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:28px;overflow:hidden}
#pre .mark{opacity:0;transform:translateY(20px) scale(.96)}
#pre .bar{width:min(46vw,240px);height:1px;background:rgba(255,255,255,.14);position:relative;overflow:hidden}
#pre .bar i{position:absolute;inset:0;background:var(--violet-lt);transform-origin:left;transform:scaleX(0)}
#pre .cnt{color:var(--on-dark-3);font-family:'Plus Jakarta Sans','Segoe UI',system-ui,sans-serif;font-size:12px;letter-spacing:.08em;font-variant-numeric:tabular-nums}
/* Keep the final loader curtain distinct from the booking canvas. A violet
   curtain over a violet page visually erased the handoff and made content
   appear to flash into place. */
#pre .curtain{position:absolute;inset:0;background:var(--ink);transform:translateY(100%)}
.lock{display:inline-flex;align-items:baseline;gap:.045em;font-weight:600;letter-spacing:-.025em;line-height:1;color:#fff;white-space:nowrap}
.lock .dlock{height:.83em;width:auto;display:inline-block;vertical-align:baseline;overflow:visible;transform:translateY(.02em)}
.lock span{display:inline-block}.dm{overflow:visible}
.dm .s{fill:none;stroke:#6A29D2;stroke-width:80;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
.dm .bowl{stroke-linecap:butt}.dm .stem{stroke-dasharray:1 2;stroke-dashoffset:-1.001}
#pre .dm{height:min(30vh,220px);width:auto}#pre .dm .s{stroke:#8B5CF6}
#pre .loading-label{position:absolute;left:var(--gutter);bottom:10vh;bottom:10svh;max-width:calc(100% - 2 * var(--gutter));margin:0;color:#fff;font-family:'Kalam','Segoe Print','Bradley Hand',cursive;font-size:clamp(21px,1.8vw,27px);line-height:1.25;overflow-wrap:anywhere}
#pre{display:none}
#pre.static .s{stroke-dashoffset:0}#pre.static .mark{opacity:1;transform:none}
.booking-calendar{min-height:100svh;display:flex;flex-direction:column;background:var(--violet);color:#fff;overflow:hidden}
.booking-stage{position:relative;isolation:isolate;width:min(1240px,calc(100% - 2 * var(--gutter)));margin:0 auto;padding:calc(96px + clamp(8px,1.4vw,18px)) 0 clamp(40px,5vw,68px)}.booking-nav-hero{position:relative;isolation:isolate}
/* This canvas is violet rather than the main site's ink hero. Keep the full
   wordmark legible first, then return to the normal purple D and CTA once the
   shared header reaches its light state. */
#nav .dlock path{fill:#fff;transition:fill .18s ease}#nav.nav-logo-onlight .dlock path{fill:url(#dg)}#nav .cta{background:#fff;color:var(--violet);transition:background-color .3s ease,color .3s ease}#nav.nav-logo-onlight .cta{background:var(--violet);color:#fff}
.booking-hero-d{position:absolute;z-index:-1;right:clamp(-130px,-7vw,-42px);top:-76px;width:min(56vw,620px);height:auto;opacity:.19;pointer-events:none;transform:rotate(8deg)}.booking-hero-d .s{fill:none;stroke:#fff;stroke-width:80;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}.booking-hero-d .bowl{stroke-linecap:butt}.booking-hero-d .stem{stroke-dasharray:1 2;stroke-dashoffset:-1.001}
.booking-stage-layout{display:grid;grid-template-columns:minmax(200px,.42fr) minmax(0,1fr);gap:clamp(28px,5vw,78px);align-items:start;padding-bottom:clamp(28px,3.6vw,48px)}
.booking-process{position:relative;padding-top:10px}.booking-process-rail{position:absolute;left:35px;top:46px;bottom:36px;width:8px;pointer-events:none}.booking-process-rail svg{display:block;width:100%;height:100%;overflow:visible}.booking-process-rail line{stroke-width:3;vector-effect:non-scaling-stroke}.booking-process-rail line.booking-process-rail-base{stroke:rgba(255,255,255,.3);stroke-width:2px}.booking-process-rail line.booking-process-rail-progress{stroke:#fff;stroke-width:7px;filter:drop-shadow(0 0 5px rgba(255,255,255,.32));transform:scaleY(0);transform-origin:50% 0;transform-box:fill-box}.booking-process-rail-horizontal{display:none}.booking-process ol{position:relative;display:grid;gap:26px;margin:0;padding:0;list-style:none}.booking-process li{position:relative;z-index:1;display:grid;grid-template-columns:72px 1fr;gap:15px;align-items:center}.booking-process-number{display:grid;place-items:center;width:72px;height:72px;border:2px solid rgba(255,255,255,.32);border-radius:50%;background:var(--violet);color:rgba(255,255,255,.58);font-size:25px;font-weight:700;letter-spacing:-.05em}.booking-process li.is-active .booking-process-number{border-color:#fff;color:var(--violet);background:#fff;box-shadow:0 10px 24px rgba(11,8,24,.18)}.booking-process-copy{display:grid;gap:3px}.booking-process-copy strong{text-transform:uppercase;font-size:14px;letter-spacing:.045em;line-height:1.1}.booking-process-copy small{color:rgba(255,255,255,.74);font-size:14px;line-height:1.35}
.booking-stage-intro{max-width:800px}.booking-kicker{margin:0 0 12px;color:#fff;font-family:'Kalam','Segoe Print','Bradley Hand',cursive;font-size:clamp(20px,1.7vw,26px);line-height:1.2}.booking-stage-intro h1{max-width:780px;margin:0;color:#fff;font-size:clamp(42px,5vw,72px);line-height:.99;letter-spacing:-.055em;will-change:transform}.booking-stage-intro h1 .booking-word{display:inline-block;overflow:hidden;vertical-align:top}.booking-stage-intro h1 .booking-word>span{display:inline-block;will-change:transform}.booking-stage-intro>div>p{max-width:650px;margin:18px 0 0;color:rgba(255,255,255,.82);font-size:clamp(17px,1.35vw,20px);line-height:1.45}.booking-process-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,3vw,34px);margin-top:28px;max-width:760px}.booking-process-notes>div{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start}.booking-process-notes b{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:26px;line-height:1}.booking-process-notes p{display:grid;gap:4px;margin:0;color:#fff;font-size:16px;line-height:1.35}.booking-process-notes strong{font-size:17px}.booking-process-notes span{color:rgba(255,255,255,.78)}
.booking-frame-card{position:relative;width:min(1152px,100%);margin-inline:auto;overflow:hidden;border:1px solid rgba(255,255,255,.6);border-radius:26px;background:var(--paper);box-shadow:0 32px 72px -36px rgba(11,8,24,.66)}
.booking-stage-intro h1 .booking-word{padding:.08em 0 .16em;margin:-.08em 0 -.16em}
#booking-frame-host{position:relative;min-height:720px;background:var(--paper)}.booking-calendar iframe{position:relative;z-index:0;display:block;width:100%;height:720px;min-height:720px;border:0;background:var(--paper)}.booking-frame-loading{position:absolute;z-index:1;inset:0;display:grid;place-content:center;justify-items:center;gap:18px;background:radial-gradient(circle at 50% 42%,var(--lav) 0,var(--paper) 56%);color:var(--violet);font-size:17px;font-weight:600;transition:opacity .35s ease,visibility .35s ease;pointer-events:none}.booking-frame-loading i{display:block;width:46px;height:2px;overflow:hidden;background:var(--line);border-radius:99px}.booking-frame-loading i::after{content:"";display:block;width:45%;height:100%;background:var(--violet);border-radius:inherit;animation:booking-loading 1.15s ease-in-out infinite}#booking-frame-host:not(.is-loading) .booking-frame-loading{opacity:0;visibility:hidden}@keyframes booking-loading{0%,100%{transform:translateX(-25%)}50%{transform:translateX(135%)}}
.booking-handoff{width:min(100%,620px);padding:clamp(12px,3vw,32px) 0}.booking-logo{display:inline-block;text-decoration:none;margin-bottom:48px}
.booking-label{color:var(--violet-lt);font-family:'Kalam','Segoe Print','Bradley Hand',cursive;font-size:1.4rem;margin:0 0 12px}h1{font-size:clamp(2rem,6vw,3.5rem);line-height:1.08;letter-spacing:-.045em;margin:0 0 24px;overflow-wrap:anywhere}
p{font-size:1.15rem;line-height:1.55;color:#D9D3EE;margin:0 0 24px}.booking-button{display:inline-block;background:var(--violet);color:#fff;padding:16px 28px;border-radius:40px;font-size:1.05rem;font-weight:600;text-decoration:none;transition:background .2s;margin:6px 0 28px;max-width:100%}
.booking-button:hover{background:#5420A9}#booking-help{font-size:1rem;max-width:510px}.booking-team{color:var(--violet-lt);text-underline-offset:5px}a:focus-visible{outline:3px solid var(--violet-lt);outline-offset:6px}
@media(max-height:560px){#pre{gap:16px}#pre .dm{height:24svh}#pre .loading-label{position:static;text-align:center;margin:0 20px}}
@media(min-width:761px) and (max-width:1020px){#booking-frame-host,.booking-calendar iframe{height:939px;min-height:939px}}
@media(max-width:760px){.booking-stage{padding-top:86px;padding-left:0}.booking-hero-d{top:20px;right:-168px;width:620px;opacity:.14;transform:rotate(12deg)}.booking-stage-layout{grid-template-columns:1fr;gap:26px;padding-bottom:28px}.booking-process{padding:0}.booking-process-rail{left:15%;right:15%;top:27px;bottom:auto;width:auto;height:4px}.booking-process-rail-vertical{display:none}.booking-process-rail-horizontal{display:block}.booking-process-rail line.booking-process-rail-progress.booking-process-rail-horizontal{transform:scaleX(0);transform-origin:0 50%}.booking-process ol{grid-template-columns:repeat(3,1fr);gap:8px}.booking-process li{grid-template-columns:1fr;gap:8px;text-align:center}.booking-process-number{justify-self:center;width:58px;height:58px;font-size:21px}.booking-process-copy{gap:2px}.booking-process-copy strong{font-size:11px}.booking-process-copy small{font-size:11px;line-height:1.25}.booking-stage-intro{text-align:center}.booking-kicker{margin-bottom:10px;font-size:22px}.booking-stage-intro h1{font-size:clamp(40px,11vw,56px)}.booking-stage-intro>div>p{margin:14px auto 0;font-size:17px}.booking-process-notes{grid-template-columns:1fr;gap:14px;margin:24px auto 0;max-width:460px;text-align:left}.booking-process-notes>div{grid-template-columns:38px 1fr;gap:10px}.booking-process-notes b{width:38px;height:38px}.booking-process-notes p{font-size:15px}.booking-frame-card{border-radius:20px}#booking-frame-host,.booking-calendar iframe{min-height:720px;height:720px}}
@media(max-width:420px){.booking-stage{width:min(100% - 40px,1240px)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.booking-hero-d .s{stroke-dashoffset:0!important}.booking-process-rail-progress{transform:scaleY(.48)!important}.booking-process-number{transform:none!important}}
@media(max-width:760px) and (prefers-reduced-motion:reduce){.booking-process-rail-progress{transform:scaleX(.48)!important}}

/* The same branded booking canvas stays in place while the CRM calendar loads. */
.booking-frame-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 28px;border-bottom:1px solid var(--line);color:var(--text);font-size:18px;font-weight:600}
.booking-frame-heading a{color:var(--violet);font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
@media(max-width:760px){.booking-frame-heading{display:grid;gap:6px;padding:18px 20px;font-size:16px}.booking-frame-heading a{font-size:13px}}
