:root{--ink:#252b27;--muted:#657069;--green:#667e62;--green-dark:#4f694f;--green-soft:#e9eee6;--cream:#f7f5ef;--line:#e3e2dc;--white:#fffefb;--shadow:0 18px 50px rgba(45,59,49,.07);--serif:'Lora',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);color:var(--ink);font:400 16px/1.65 var(--sans)}button,input{font:inherit}button{color:inherit}.primary-action{border:0;border-radius:13px;background:var(--green);color:#fff;text-decoration:none;font-weight:600;cursor:pointer}.booking-hero{min-height:205px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.9fr);background:linear-gradient(105deg,#f7f4ef 0,#f8f7f3 62%,#eceae1 62%);overflow:hidden}.booking-hero>div:first-child{width:min(100% - 64px,1100px);margin-left:max(32px,calc((100vw - 1100px)/2));padding:2rem 0}.crumb{display:flex;align-items:center;gap:.65rem;color:var(--muted);font-size:.76rem}.crumb a{color:inherit;text-decoration:none}.booking-hero h1{margin:1.4rem 0 .55rem;font:400 clamp(2.25rem,4vw,3.4rem)/1.08 var(--serif);letter-spacing:-.035em}.booking-hero p:last-child{margin:0;color:var(--muted)}.wizard-shell{width:min(calc(100% - 64px),1100px);margin:0 auto;padding:1rem 0 4.5rem}.booking-progress{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;margin:0 0 2.8rem;padding:0}.booking-progress li{position:relative;display:grid;justify-items:center;gap:.45rem;color:#747a76;font-size:.78rem}.booking-progress li:not(:last-child):after{content:'';position:absolute;top:17px;left:calc(50% + 24px);right:calc(-50% + 24px);height:1px;background:#d7d9d5}.booking-progress span{position:relative;z-index:1;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#f1f2f0}.booking-progress .active{color:var(--ink)}.booking-progress .active span{background:var(--green);color:white}.booking-progress b{font-weight:500}.step-heading{display:flex;align-items:flex-start;gap:.65rem;margin-bottom:1rem}.step-heading>span{display:none}.step-heading h2{margin:0;font:500 1.35rem var(--serif)}.step-heading p{margin:.2rem 0 0;color:var(--muted);font-size:.78rem}.step-heading.compact h2{font-size:1.25rem}.service-step{margin-bottom:2rem}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.service-card{position:relative;min-height:175px;display:flex;flex-direction:column;align-items:flex-start;padding:1.35rem;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s}.service-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.service-card.selected{border:1.5px solid var(--green);background:linear-gradient(140deg,#fff,#f4f7f1);box-shadow:0 10px 30px rgba(79,111,84,.08)}.service-icon{color:var(--green);font-size:2.1rem;line-height:1;margin-bottom:1rem}.service-check{display:none;position:absolute;right:1rem;top:1rem;width:24px;height:24px;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-size:.75rem}.selected .service-check{display:grid}.service-card strong{font:500 1.08rem var(--serif)}.service-card small{min-height:2.7em;margin:.35rem 0;color:var(--muted);font-size:.75rem}.service-card b{margin-top:auto;color:#526b55;font-size:.78rem}.booking-grid{display:grid;grid-template-columns:1.05fr .87fr .92fr;gap:1.2rem;align-items:start}.panel-card{border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 8px 28px rgba(45,59,49,.025)}.calendar-card,.time-card{min-height:320px;padding:1.1rem}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.calendar-nav button{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#fff;cursor:pointer;font-size:1.4rem;line-height:1}.calendar-nav button .png-icon{width:24px;height:24px;display:block;margin:0;flex:none}.calendar-nav button:hover{background:var(--green-soft)}.calendar-nav button:disabled{opacity:.25;cursor:not-allowed}.calendar-nav strong{font-size:.85rem;text-transform:capitalize}.weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:.22rem;text-align:center}.weekdays{margin-bottom:.35rem;font-size:.65rem;color:var(--muted)}.calendar-days button,.calendar-days span{aspect-ratio:1;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;font-size:.72rem}.calendar-days button{cursor:pointer}.calendar-days button.available{background:var(--green-soft)}.calendar-days button:hover,.calendar-days button.selected{background:var(--green);color:white}.calendar-days button.today{box-shadow:inset 0 0 0 1px var(--green)}.calendar-days button:disabled{color:#c0c2bf;cursor:default}.calendar-legend{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--line);font-size:.61rem;color:var(--muted)}.calendar-legend span{display:flex;align-items:center;gap:.3rem}.calendar-legend i{width:14px;height:14px;border-radius:50%;background:#eceeeb}.calendar-legend .available{background:var(--green-soft)}.calendar-legend .selected{background:var(--green)}.time-card>strong{display:block;margin:.1rem 0 1rem;font-size:.78rem;text-transform:capitalize}.time-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.55rem}.time-grid button{min-height:37px;border:1px solid #dfe1dd;border-radius:8px;background:#fff;font-size:.75rem;cursor:pointer}.time-grid button:hover,.time-grid button.selected{background:var(--green);border-color:var(--green);color:#fff}.time-empty{color:var(--muted);font-size:.75rem}.summary-card{position:sticky;top:1rem;padding:1.1rem;background:linear-gradient(145deg,#fbfcf9,#f2f5ef)}.summary-card dl{margin:0}.summary-card dl>div{position:relative;display:grid;grid-template-columns:38px 1fr;column-gap:.75rem;padding:0 0 1rem}.summary-card dl>div:not(:last-child){border-bottom:1px solid var(--line);margin-bottom:1rem}.summary-card dt{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#e9efe5;color:transparent}.summary-card dt:before{content:'';width:20px;height:20px;flex-shrink:0;background:url(/static/icons/heart-1badbd8cfc49.png) center/contain no-repeat}.summary-card dl>div:nth-child(2) dt:before{background-image:url(/static/icons/calendar-b24d46a3dae4.png)}.summary-card dl>div:nth-child(3) dt:before{background-image:url(/static/icons/brand-flower-50c03114eac1.png)}.summary-card dd{display:grid;align-content:center;margin:0}.summary-card dd strong{font-size:.78rem}.summary-card dd span{color:var(--muted);font-size:.7rem}.primary-action{display:inline-flex;align-items:center;justify-content:space-between;min-height:45px;padding:.75rem 1rem}.summary-card>.primary-action{width:100%;margin-top:.2rem}.primary-action:disabled{opacity:.45;cursor:not-allowed}.privacy-note{margin:.8rem 0 0;color:var(--muted);font-size:.65rem}.details-step{margin-top:2.5rem}.details-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:2rem;padding:1.5rem}.details-step form,.waitlist-card form{display:grid;gap:1rem}.details-step label,.waitlist-card label{display:grid;gap:.35rem;font-size:.74rem;font-weight:600}.details-step input,.waitlist-card input{width:100%;min-height:44px;padding:.7rem .8rem;border:1px solid #d8dbd6;border-radius:8px;background:#fff}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.consent{display:flex!important;align-items:flex-start;gap:.55rem!important;color:var(--muted);font-weight:400!important}.consent input{width:auto;min-height:0;margin-top:.22rem}.form-actions{display:flex;justify-content:space-between;gap:1rem}.secondary-action{min-height:43px;padding:.65rem 1rem;border:1px solid var(--green);border-radius:10px;background:#fff;color:var(--green-dark);font-weight:600;cursor:pointer}.final-recap{padding:1.3rem;border-radius:10px;background:var(--green-soft);font-size:.82rem}.final-recap strong{display:block;font:500 1.15rem var(--serif);margin-bottom:.5rem}.form-message{min-height:1.3rem;margin:0;color:var(--green-dark);font-size:.78rem}.confirmation-step{max-width:680px;margin:3rem auto;padding:3.5rem 2rem;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fff,#f1f5ef);text-align:center}.confirmation-icon{width:64px;height:64px;display:grid;place-items:center;margin:auto;border-radius:50%;background:var(--green);color:#fff;font-size:1.8rem}.confirmation-step h2{font:500 2rem var(--serif)}.confirmation-step .primary-action{margin-top:1rem}.eyebrow{color:var(--green);font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.waitlist-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:1rem;margin-top:3rem;padding:1.2rem 1.5rem;border-radius:12px;background:linear-gradient(90deg,#f4f6f1,#fafbf9)}.waitlist-card>div{display:flex;align-items:center;gap:1rem}.waitlist-card h2{margin:0;font:500 1rem var(--serif)}.waitlist-card p{margin:.15rem 0 0;color:var(--muted);font-size:.72rem}.waitlist-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#e8eee3;color:var(--green);font-size:1.3rem}.waitlist-card form{grid-column:1/-1;max-width:700px;padding-top:1rem}.booking-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:2.5rem}.booking-benefits>div{display:flex;align-items:center;gap:.8rem}.booking-benefits b{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--cream);color:var(--green)}.booking-benefits span{display:grid}.booking-benefits strong{font-size:.73rem}.booking-benefits small{color:var(--muted);font-size:.65rem}[hidden]{display:none!important}:focus-visible{outline:3px solid rgba(102,133,103,.36);outline-offset:3px}@media(max-width:900px){.booking-hero{grid-template-columns:1fr}.booking-hero>div:first-child{width:min(calc(100% - 36px),1100px);margin:auto}.wizard-shell{width:min(calc(100% - 36px),1100px)}.booking-grid{grid-template-columns:1fr 1fr}.summary-panel{grid-column:1/-1}.summary-card{position:static}.service-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:620px){.booking-hero{min-height:190px;background:var(--cream)}.booking-hero>div:first-child{padding:1.3rem 0}.booking-hero h1{margin-top:1.15rem}.wizard-shell{padding-top:1.3rem}.booking-progress{margin-bottom:2rem}.booking-progress b{font-size:.62rem}.booking-progress li:not(:last-child):after{left:calc(50% + 20px);right:calc(-50% + 20px)}.booking-progress span{width:31px;height:31px}.service-grid{display:flex;overflow:auto;scroll-snap-type:x mandatory;padding:2px 2px 12px}.service-card{min-width:78%;min-height:160px;scroll-snap-align:start}.booking-grid{grid-template-columns:1fr}.summary-panel{grid-column:auto}.calendar-card,.time-card{min-height:0}.details-layout{grid-template-columns:1fr}.field-grid{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}.waitlist-card{grid-template-columns:1fr}.waitlist-card>.secondary-action{width:100%}.booking-benefits{grid-template-columns:1fr;gap:1rem}.calendar-legend{gap:.55rem}}.subpage-hero{padding:clamp(4rem,8vw,7rem) 5%;background:linear-gradient(100deg,#f7f5ef,#fff)}.subpage-hero>div{width:min(1180px,100%);margin:auto}.subpage-hero a{color:var(--green-dark);text-decoration:none}.subpage-hero .eyebrow{margin:2.3rem 0 .5rem}.subpage-hero h1{margin:0;font:400 clamp(2.8rem,5vw,5.2rem)/1.05 var(--serif);letter-spacing:-.045em}.subpage-hero p:last-child{max-width:680px;color:var(--muted);font-size:1.05rem}.price-list{padding-block:clamp(3rem,6vw,6rem)}.price-list article{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.35fr);gap:2rem;padding:2rem 0;border-bottom:1px solid var(--line)}.price-list article>div:first-child{display:grid;grid-template-columns:50px 1fr;column-gap:1rem}.price-list article>div:first-child>span{grid-row:1/3;color:var(--green);font-size:.75rem;font-weight:600}.price-list h2{margin:0;font:500 clamp(1.5rem,2.5vw,2.2rem) var(--serif)}.price-list p{grid-column:2;margin:.55rem 0 0;color:var(--muted)}.price-list article>div:last-child{display:grid;justify-items:end;align-content:center;gap:.4rem}.price-list strong{font:500 1.4rem var(--serif)}.price-list small{color:var(--muted)}.price-list a{margin-top:.35rem;color:var(--green-dark);font-weight:600;text-decoration:none}.masonry-gallery{columns:3 280px;column-gap:1rem;padding-block:clamp(3rem,6vw,6rem)}.masonry-gallery figure{break-inside:avoid;margin:0 0 1rem;overflow:hidden;border-radius:16px;background:var(--cream)}.masonry-gallery img{width:100%;display:block;min-height:230px;object-fit:cover}.masonry-gallery figure:nth-child(3n+2) img{min-height:340px}.masonry-gallery figcaption{padding:1rem 1.15rem;color:var(--muted)}.gallery-empty{column-span:all;padding:4rem;border:1px dashed var(--line);border-radius:16px;text-align:center}.gallery-empty h2{font:500 2rem var(--serif)}@media(max-width:680px){.price-list article{grid-template-columns:1fr;gap:1rem}.price-list article>div:last-child{justify-items:start}.masonry-gallery{columns:1}.subpage-hero{padding-inline:20px}}
.noscript-booking{max-width:760px;margin:1rem auto;padding:1rem 1.2rem;border:1px solid #d5dfd2;border-radius:12px;background:var(--green-soft);color:var(--green-dark);text-align:center}.noscript-booking a{font-weight:600}.manage-booking{width:min(660px,100%);text-align:left}.manage-booking h1{font:500 clamp(2rem,5vw,3.2rem)/1.15 var(--serif)}.manage-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin:1.5rem 0}.manage-facts p{display:grid;gap:.25rem;margin:0;padding:1rem;border-radius:12px;background:var(--cream)}.manage-facts span{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.reschedule-box,.cancel-box{margin:1.5rem 0;padding:1.2rem;border:1px solid var(--line);border-radius:14px}.reschedule-box summary,.cancel-box summary{cursor:pointer;font-weight:600}.cancel-box p{color:var(--muted)}.reschedule-box select{width:100%;min-height:48px;margin:.8rem 0;padding:.6rem;border:1px solid var(--line);border-radius:10px;background:#fff}.reschedule-box .primary-action{width:100%;min-height:46px;border:0}.danger-action{width:100%;min-height:46px;border:1px solid #d9b7b1;border-radius:11px;background:#fff6f4;color:#914c41;font:600 .83rem var(--sans);cursor:pointer}.back-home{display:inline-flex;margin-top:1.2rem;color:var(--green-dark)}.cancelled-state{display:grid;gap:1rem;margin:1.5rem 0}.confirmation-step [data-management-link]{display:inline-flex;justify-content:center;margin-right:.6rem}.confirmation-step [data-management-link][hidden]{display:none}@media(max-width:640px){.manage-facts{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* Text and colour jointly distinguish premium windows. */
.premium-start{background:#fff1d6!important;border:2px solid #9a6519!important;color:#573600!important;border-radius:8px;padding:6px}.premium-start strong{display:block}
/* Only the selected public VIP time: override the shared premium treatment. */
[data-booking-times] button.premium-start.selected{background:#573600!important;color:#fff!important;border-color:#573600!important;box-shadow:0 0 0 3px #fff,0 0 0 5px #573600;font-weight:700}
[data-booking-times] button:focus-visible{outline:3px solid #252b27;outline-offset:4px}
[data-booking-summary] .vip-selection-warning{background:#fff1d6;border-left:4px solid #9a6519;color:#573600;padding:.8rem;border-radius:6px;font-weight:600}
[data-booking-summary] .vip-selection-warning[hidden]{display:none}
