:root{
  --plum:#2B1F2C; --mauve:#5E3F5B; --mauve-2:#9C7A97; --mauve-wash:#EEE4EC; --line:#EFE7EC; --field:#CDBBC9;
  --straw:#F4ECD2; --gold:#C9AE62; --white:#FFFFFF; --ground:#FCFAF6;
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Figtree',system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--ground);color:var(--plum);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--mauve)}a:hover{color:var(--plum)}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.skip{position:absolute;left:-999px;top:8px;background:var(--plum);color:#fff;padding:12px 18px;border-radius:999px;z-index:50}
.skip:focus{left:16px}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.narrow{max-width:860px}
.eyebrow{margin:0 0 12px;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--mauve);font-weight:600}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.08;margin:0 0 20px}
h2{font-size:clamp(34px,4.4vw,54px)}
h3{font-size:30px;font-weight:600}
p{margin:0 0 16px}
.lead{font-size:18px;line-height:1.7;max-width:640px}
section{padding:96px 0}
.band-white{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.band-straw{background:var(--straw)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 28px;border-radius:999px;font:600 16px var(--sans);text-decoration:none;border:1px solid var(--mauve);cursor:pointer;transition:background .2s,color .2s}
.btn-solid{background:var(--mauve);color:#fff}.btn-solid:hover{background:var(--plum);border-color:var(--plum);color:#fff}
.btn-line{background:transparent;color:var(--mauve)}.btn-line:hover{background:var(--mauve-wash);color:var(--plum)}
.btn-dark{background:var(--plum);border-color:var(--plum);color:#fff}.btn-dark:hover{background:var(--mauve);color:#fff}
.btn-sm{min-height:44px;padding:0 20px;font-size:14px}
.btn[disabled]{background:#E3D6DF;border-color:#E3D6DF;color:#6B5A68;cursor:not-allowed}

/* header */
.site-head{padding:18px 0}
.site-head .wrap{display:flex;flex-wrap:wrap;gap:12px 32px;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--plum)}
.brand span{font-family:var(--serif);font-size:26px;font-weight:600}
.brand em{font-weight:400;color:var(--mauve)}
.nav{display:flex;flex-wrap:wrap;gap:4px 26px;align-items:center;font-size:15px;font-weight:500}
.nav a{text-decoration:none;padding:10px 0}
.nav a.btn{padding:0 22px;color:#fff}

/* breath */
.breath-sec{padding:16px 0 88px;text-align:center}
.breath-sec .wrap{display:flex;flex-direction:column;align-items:center;gap:26px}
.breath{position:relative;width:min(520px,86vw);aspect-ratio:1/1;--dur:10s}
.breath.slow{--dur:14s}
.breath.paused *{animation-play-state:paused !important}
.breath .ring{position:absolute;border-radius:50%}
.r1{inset:0;border:1px solid #D9C8D5}
.r2{inset:7%;border:1px dashed var(--gold);opacity:.7}
.r3{inset:4%;border:2px solid var(--mauve-2);animation:ripple var(--dur) ease-in-out infinite}
.r4{inset:12%;background:var(--mauve-wash);border:1.5px solid var(--mauve-2);animation:breathe var(--dur) ease-in-out infinite}
.r5{inset:34%;background:var(--straw);animation:breathe var(--dur) ease-in-out infinite}
.cue{position:absolute;inset:0;display:grid;place-items:center;margin:0;font-family:var(--serif);font-style:italic;font-size:clamp(34px,6vw,56px)}
.cue-in{animation:cueIn var(--dur) ease-in-out infinite}
.cue-out{color:var(--mauve);opacity:0;animation:cueOut var(--dur) ease-in-out infinite}
@keyframes breathe{0%{transform:scale(.6)}42%,50%{transform:scale(1)}92%,100%{transform:scale(.6)}}
@keyframes ripple{0%{transform:scale(.72);opacity:0}42%,50%{transform:scale(1.06);opacity:.55}92%,100%{transform:scale(.72);opacity:0}}
@keyframes cueIn{0%{opacity:0}6%,40%{opacity:1}46%,100%{opacity:0}}
@keyframes cueOut{0%,49%{opacity:0}55%,88%{opacity:1}94%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.breath *{animation:none !important}.cue-out{opacity:0}.cue-in{opacity:1}.r4,.r5{transform:scale(.85)}}
.pace{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.pill{min-height:44px;padding:0 20px;border-radius:999px;border:1px solid var(--field);background:#fff;color:var(--plum);font:500 14px var(--sans);cursor:pointer}
.pill[aria-pressed="true"]{background:var(--mauve);border-color:var(--mauve);color:#fff;font-weight:600}
.breath-line{margin:6px 0 0;max-width:620px;font-family:var(--serif);font-size:clamp(24px,3vw,32px);line-height:1.3}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* about */
.split{display:flex;flex-wrap:wrap;gap:56px;align-items:flex-start}
.split>.side{flex:1 1 340px;min-width:0}
.split>.main{flex:999 1 480px;min-width:0}
.portrait{aspect-ratio:4/5;border-radius:220px 220px 16px 16px;background:var(--mauve-wash);border:1px solid #D9C8D5;display:grid;place-items:center;text-align:center;padding:24px;color:var(--mauve);font-size:14px;overflow:hidden}
.portrait img{width:100%;height:100%;object-fit:cover}
.timeline{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px}
.timeline li{padding:20px;border-radius:16px;background:var(--ground);border:1px solid var(--line)}
.timeline b{display:block;font-family:var(--serif);font-weight:500;font-size:34px;color:var(--mauve);line-height:1.2}
.timeline span{font-size:15px;line-height:1.5}

/* offers */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:32px;display:flex;flex-direction:column;gap:12px}
.card p{font-size:16px}
.card .grow{flex-grow:1}
.card .meta{font-size:14px;color:var(--mauve);margin:0}
.card a.go{align-self:flex-start;font-weight:600;text-decoration:none;padding:12px 0}
.card.dark{background:var(--mauve);color:#fff;border-color:var(--mauve)}
.card.dark .meta{color:var(--straw)}
.card.dark a.go{color:#fff}
.upcoming{margin-top:56px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px 32px}
.upcoming-head{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;align-items:baseline}
.upcoming h3{font-size:28px;margin:0}
.upcoming ul{list-style:none;margin:12px 0 0;padding:0}
.upcoming li{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;padding:16px 0;border-top:1px solid var(--line)}
.upcoming .when{flex:0 0 150px;font-weight:600}
.upcoming .what{flex:1 1 220px;min-width:0}
.upcoming .left{font-size:14px;color:var(--mauve)}

/* training */
.quote{flex:1 1 320px;min-width:0;margin:0;background:#fff;border-radius:24px;padding:32px}
.quote blockquote{margin:0;font-family:var(--serif);font-size:26px;line-height:1.35;font-style:italic}
.quote figcaption{margin-top:16px;font-size:14px;color:var(--mauve)}

/* book */
.spine{width:220px;height:300px;margin:0 auto;border-radius:6px 14px 14px 6px;background:var(--mauve-2);box-shadow:inset 14px 0 0 var(--mauve);display:flex;flex-direction:column;justify-content:space-between;padding:28px 22px 24px 36px;color:#fff}
.spine b{font-family:var(--serif);font-weight:500;font-size:28px;line-height:1.1}
.spine span{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--straw)}

/* faq */
details{border-top:1px solid var(--line);padding:4px 0}
details:last-of-type{border-bottom:1px solid var(--line)}
summary{display:flex;gap:16px;justify-content:space-between;align-items:center;min-height:56px;font-size:19px;font-weight:600;cursor:pointer;list-style:none}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:26px;color:var(--mauve);transition:transform .2s;flex:0 0 auto}
details[open] summary::after{transform:rotate(45deg)}
details p{max-width:700px}

/* forms */
.panel{background:#fff;border:1px solid var(--line);border-radius:24px;padding:32px}
.form{display:flex;flex-direction:column;gap:18px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-weight:600;font-size:15px}
.field .hint{font-size:13px;color:var(--mauve)}
input,select,textarea{font:16px var(--sans);color:var(--plum);background:var(--ground);border:1px solid var(--field);border-radius:12px}
input:not([type=checkbox]),select{min-height:48px;padding:0 14px}
textarea{padding:12px 14px;resize:vertical}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5}
.check input{width:22px;height:22px;margin:2px 0 0;accent-color:var(--mauve);flex:0 0 auto}
.err{color:#9B2C2C;font-size:14px;margin:0}
.done{text-align:center;padding:40px 0}
.done b{display:block;font-family:var(--serif);font-weight:500;font-size:34px}

/* footer */
.site-foot{background:var(--plum);color:var(--straw)}
.site-foot a{color:var(--straw)}.site-foot a:hover{color:#fff}
.foot-top{display:flex;flex-wrap:wrap;gap:32px;justify-content:space-between;padding:56px 0 40px}
.foot-top>div{flex:1 1 280px}
.foot-brand{font-family:var(--serif);font-size:28px;color:#fff;margin:0 0 8px}
.foot-nav{flex:1 1 280px;display:flex;flex-wrap:wrap;gap:4px 28px;align-content:flex-start;font-size:15px}
.foot-nav a,.foot-nav button{padding:10px 0}
.linkish{background:none;border:0;color:var(--straw);font:inherit;text-decoration:underline;cursor:pointer;padding:0}
.foot-base{border-top:1px solid #4A3A4B;padding:18px 0 28px;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;font-size:13px;color:#E2D6C3}

/* cookies */
.cookie{position:fixed;left:16px;right:16px;bottom:16px;max-width:400px;background:#fff;border:1px solid #D9C8D5;border-radius:20px;padding:20px 22px;box-shadow:0 12px 40px rgba(43,31,44,.14);z-index:40;font-size:14px;line-height:1.55}
.cookie[hidden]{display:none}
.cookie .row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}

/* legal pages */
.legal{padding:40px 0 96px}
.legal h1{font-size:clamp(38px,5vw,58px)}
.legal h2{font-size:30px;margin-top:40px}
.legal li{margin-bottom:8px}

/* booking */
.steps{list-style:none;margin:0 0 36px;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.steps li{padding:10px 18px;border-radius:999px;font-size:14px;font-weight:600;background:#fff;color:#6B5A68;border:1px solid #E3D6DF}
.steps li.done{background:var(--mauve-wash);color:var(--mauve);border-color:var(--mauve-wash)}
.steps li[aria-current="step"]{background:var(--mauve);color:#fff;border-color:var(--mauve)}
.types{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.type{text-align:left;background:#fff;border:1px solid #E3D6DF;border-radius:22px;padding:26px;cursor:pointer;display:flex;flex-direction:column;gap:8px;font:inherit;color:inherit;min-height:160px}
.type:hover{border-color:var(--mauve)}
.type b{font-family:var(--serif);font-size:28px;font-weight:600}
.type small{margin-top:auto;font-size:14px;color:var(--mauve);font-weight:600}
.days{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.day{background:#fff;border:1px solid #E3D6DF;border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:10px}
.day p{margin:0;font-weight:600}
.slot{width:100%;min-height:52px;border-radius:12px;border:1px solid var(--field);background:var(--ground);color:var(--plum);font:600 15px var(--sans);cursor:pointer;padding:6px}
.slot small{display:block;font-size:12px;font-weight:400}
.slot[aria-pressed="true"]{background:var(--mauve);border-color:var(--mauve);color:#fff}
.summary{flex:1 1 280px;background:var(--straw);border-radius:24px;padding:28px}
.dev-note{background:var(--straw);border-radius:14px;padding:12px 16px;font-size:14px;margin:0 0 28px}

/* 404 */
.nf{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px;padding:60px 24px}
.nf h1{font-size:clamp(38px,5vw,60px);margin:0}
@keyframes drift{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.drift{animation:drift 6s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.drift{animation:none}}

@media (max-width:640px){
  section{padding:64px 0}
  .card,.panel,.upcoming{padding:24px}
  .nav{gap:2px 18px}
}

/* booking: same arch language as the homepage */
.type{border-radius:999px 999px 24px 24px;padding:110px 28px 28px;min-height:320px;position:relative;transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s,border-color .3s}
.type::before{content:"";position:absolute;left:50%;top:30px;width:64px;height:64px;margin-left:-32px;border-radius:50%;border:1.5px solid var(--mauve-2);box-shadow:inset 0 0 0 14px var(--ground),inset 0 0 0 40px var(--gold)}
.type:hover{transform:translateY(-6px);box-shadow:0 24px 48px rgba(43,31,44,.1)}
.type[data-type="workshop"]{background:var(--mauve-wash)}
.type[data-type="therapy"]{background:var(--mauve);color:#fff;border-color:var(--mauve)}
.type[data-type="therapy"] small{color:var(--straw)}
.type[data-type="therapy"]::before{border-color:var(--straw);box-shadow:inset 0 0 0 14px var(--mauve),inset 0 0 0 40px var(--gold)}
.day{border-radius:28px}
@media (min-width:1000px){.days{grid-template-columns:repeat(7,minmax(0,1fr))}.slot{font-size:14px}}
