.booking-page{max-width:1380px;margin:0 auto;padding:56px 28px 96px}.booking-intro{max-width:900px;margin:0 auto 36px;text-align:center}.booking-back-link{display:inline-flex;margin-bottom:28px;font-size:13px;letter-spacing:.04em;color:rgba(80,82,61,.82)}.booking-eyebrow,.booking-step-kicker,.booking-summary-kicker{display:block;margin-bottom:10px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--deep)}.booking-intro h1{margin:0 0 16px;font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(42px,6vw,76px);line-height:1;color:var(--deep)}.booking-intro p{max-width:760px;margin:0 auto;font-size:17px;line-height:1.75;color:rgba(80,82,61,.9)}.booking-shell{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}.booking-main-card,.booking-summary-card{background:rgba(255,255,255,.42);border:1px solid rgba(255,255,255,.62);box-shadow:0 18px 48px rgba(46,49,38,.1);border-radius:28px}.booking-main-card{overflow:hidden}.booking-summary-card{position:sticky;top:116px;padding:28px}.booking-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:0;list-style:none;margin:0;padding:22px 26px;border-bottom:1px solid rgba(80,82,61,.12);background:rgba(255,255,255,.18)}.booking-progress li{position:relative;display:flex;align-items:center;justify-content:center;gap:9px;color:rgba(80,82,61,.52);font-size:12px;letter-spacing:.04em}.booking-progress li:not(:last-child)::after{content:"";position:absolute;right:-1px;top:50%;width:2px;height:2px;border-radius:50%;background:rgba(80,82,61,.28)}.booking-progress span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1px solid rgba(80,82,61,.2);font-size:12px}.booking-progress b{font-weight:500}.booking-progress li.active,.booking-progress li.complete{color:var(--deep)}.booking-progress li.active span{background:var(--deep);color:#fff;border-color:var(--deep)}.booking-progress li.complete span{background:#dfe4d1;border-color:#c9cfba}.booking-step{display:none;padding:34px}.booking-step.active{display:block}.booking-step-heading{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:30px;align-items:end;margin-bottom:28px}.booking-step-heading h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(30px,4vw,44px);font-weight:400;line-height:1.08;color:var(--deep)}.booking-step-heading p{margin:0;font-size:14px;line-height:1.7;color:rgba(80,82,61,.72)}.service-choice-grid{display:grid;gap:12px}.service-choice{width:100%;display:grid;grid-template-columns:48px 1fr 32px;gap:16px;align-items:center;text-align:left;padding:17px 18px;border:1px solid rgba(80,82,61,.14);border-radius:18px;background:rgba(255,255,255,.38);color:var(--deep);cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}.service-choice:hover{transform:translateY(-1px);background:rgba(255,255,255,.58);border-color:rgba(80,82,61,.25)}.service-choice.selected{background:rgba(255,255,255,.72);border-color:rgba(80,82,61,.44);box-shadow:0 10px 26px rgba(46,49,38,.09)}.service-choice-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#eef0e8;font-size:18px}.service-choice strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:21px;font-weight:400}.service-choice small{display:block;margin-top:4px;font-size:12px;color:rgba(80,82,61,.67)}.service-choice-check{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:transparent;color:transparent;border:1px solid rgba(80,82,61,.14)}.service-choice.selected .service-choice-check{background:var(--deep);border-color:var(--deep);color:#fff}.booking-actions{display:flex;justify-content:space-between;gap:16px;margin-top:30px;padding-top:24px;border-top:1px solid rgba(80,82,61,.12)}.booking-actions-end{justify-content:flex-end}.booking-next,.booking-confirm,.booking-back{min-height:48px;padding:0 22px;border-radius:12px;font:inherit;font-size:13px;letter-spacing:.02em;cursor:pointer}.booking-next,.booking-confirm{border:0;background:var(--deep);color:#fff;box-shadow:0 10px 24px rgba(46,49,38,.12)}.booking-next:disabled,.booking-confirm:disabled{cursor:not-allowed;opacity:.35;box-shadow:none}.booking-back{border:1px solid rgba(80,82,61,.2);background:transparent;color:var(--deep)}.schedule-note,.booking-unavailable,.saturday-note{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:16px;background:rgba(255,224,89,.16);border:1px solid rgba(255,224,89,.28);margin-bottom:22px}.schedule-note>span,.booking-unavailable>span,.saturday-note>span{font-size:20px;line-height:1.3}.schedule-note strong,.booking-unavailable strong,.saturday-note strong{display:block;color:var(--deep);font-size:14px}.schedule-note p,.booking-unavailable p,.saturday-note p{margin:3px 0 0;font-size:12px;line-height:1.6;color:rgba(80,82,61,.72)}.date-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px}.date-chip{min-height:82px;padding:11px 8px;border:1px solid rgba(80,82,61,.14);border-radius:15px;background:rgba(255,255,255,.36);color:var(--deep);cursor:pointer;text-align:center}.date-chip span,.date-chip b,.date-chip small{display:block}.date-chip span{font-size:10px;letter-spacing:.12em;text-transform:uppercase;opacity:.7}.date-chip b{margin:5px 0 3px;font-family:Georgia,"Times New Roman",serif;font-size:24px;font-weight:400}.date-chip small{font-size:10px;opacity:.62}.date-chip:hover:not(:disabled),.date-chip.selected{background:rgba(255,255,255,.8);border-color:rgba(80,82,61,.4)}.date-chip.selected{box-shadow:0 8px 20px rgba(46,49,38,.08)}.date-chip:disabled{cursor:not-allowed;opacity:.34}.time-section{margin-top:24px}.time-section-heading{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:14px}.time-section-heading h3{margin:0;font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:26px;color:var(--deep)}#selected-date-label{font-size:12px;color:rgba(80,82,61,.68)}.time-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.time-chip{min-height:46px;border:1px solid rgba(80,82,61,.16);border-radius:12px;background:rgba(255,255,255,.4);color:var(--deep);font:inherit;font-size:13px;cursor:pointer}.time-chip:hover,.time-chip.selected{background:var(--deep);color:#fff;border-color:var(--deep)}.saturday-note{margin:22px 0 0;background:rgba(255,255,255,.32);border-color:rgba(80,82,61,.13)}.booking-details-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.booking-details-form label{font-size:11px;letter-spacing:.12em;color:var(--deep)}.booking-details-form input,.booking-details-form textarea{margin-top:8px;background:rgba(255,255,255,.55);border-radius:13px}.booking-details-form em{font-weight:400;opacity:.55}.booking-form-wide{grid-column:1/-1}.review-card{border:1px solid rgba(80,82,61,.14);border-radius:20px;overflow:hidden;background:rgba(255,255,255,.34)}.review-row{display:grid;grid-template-columns:120px 1fr;gap:18px;padding:16px 18px;border-bottom:1px solid rgba(80,82,61,.1);align-items:center}.review-row>span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;opacity:.64}.review-row strong{font-size:14px;color:var(--deep);font-weight:600}.review-location{display:flex;gap:14px;padding:18px}.review-location>span{font-size:22px}.review-location strong{color:var(--deep)}.review-location p{margin:4px 0 0;font-size:13px;line-height:1.55}.booking-unavailable{margin:20px 0 0;background:rgba(183,187,172,.22);border-color:rgba(80,82,61,.12)}.booking-summary-card h2{margin:0 0 20px;font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:30px;color:var(--deep)}.summary-provider{display:flex;gap:12px;align-items:center;padding:16px 0 20px;border-bottom:1px solid rgba(80,82,61,.12)}.summary-avatar{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--deep);color:#fff;font-family:Georgia,"Times New Roman",serif;font-size:20px}.summary-provider strong,.summary-provider span{display:block}.summary-provider strong{color:var(--deep);font-size:15px}.summary-provider span{margin-top:3px;font-size:11px;opacity:.65}.summary-list{margin:0}.summary-list>div{padding:15px 0;border-bottom:1px solid rgba(80,82,61,.1)}.summary-list dt{font-size:10px;letter-spacing:.15em;text-transform:uppercase;opacity:.58}.summary-list dd{margin:5px 0 0;color:var(--deep);font-size:14px;font-weight:600}.summary-hours{margin-top:20px;padding:16px;border-radius:16px;background:rgba(255,255,255,.3)}.summary-hours>strong{font-size:12px;text-transform:uppercase;letter-spacing:.1em}.summary-hours p{display:flex;justify-content:space-between;gap:12px;margin:10px 0 0;font-size:12px}.summary-hours b{font-weight:600;color:var(--deep)}.summary-footnote{margin:18px 0 0;font-size:11px;line-height:1.55;opacity:.65}.booking-footer{padding:30px 28px 40px;text-align:center;background:#90967c;color:rgba(255,255,255,.82)}.booking-footer img{width:190px;margin:0 auto 12px}.booking-footer p{margin:0;font-size:12px;line-height:1.7}.booking-footer a{color:inherit}
@media(max-width:1050px){.booking-shell{grid-template-columns:1fr}.booking-summary-card{position:static;order:-1;display:grid;grid-template-columns:auto 1fr;column-gap:24px}.booking-summary-card h2,.booking-summary-kicker{grid-column:1/-1}.summary-provider{border-bottom:0;padding:10px 0}.summary-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.summary-list>div{border:0;padding:10px 12px;background:rgba(255,255,255,.26);border-radius:12px}.summary-hours,.summary-footnote{display:none}}
@media(max-width:760px){.booking-page{padding:36px 16px 72px}.booking-intro{margin-bottom:24px}.booking-intro h1{font-size:42px}.booking-intro p{font-size:15px}.booking-shell{gap:18px}.booking-main-card,.booking-summary-card{border-radius:22px}.booking-summary-card{display:block;padding:20px}.summary-provider{border-bottom:1px solid rgba(80,82,61,.1)}.summary-list{grid-template-columns:1fr 1fr 1fr;gap:8px}.summary-list>div{padding:10px}.booking-progress{padding:16px 10px}.booking-progress li{gap:0}.booking-progress b{display:none}.booking-progress span{width:30px;height:30px}.booking-progress li:not(:last-child)::after{right:-4px;width:8px;height:1px;border-radius:0}.booking-step{padding:24px 18px}.booking-step-heading{grid-template-columns:1fr;gap:10px}.booking-step-heading p{font-size:12px}.date-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.date-chip:nth-child(n+9){display:none}.time-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-details-form{grid-template-columns:1fr}.booking-form-wide{grid-column:auto}.booking-actions{gap:10px}.booking-next,.booking-confirm,.booking-back{padding:0 15px;font-size:12px}.review-row{grid-template-columns:90px 1fr;padding:14px}.booking-footer{padding-bottom:34px}}
@media(max-width:430px){.summary-list{grid-template-columns:1fr}.date-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.date-chip:nth-child(n+7){display:none}.time-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-actions{flex-direction:column-reverse}.booking-actions button{width:100%}.booking-actions-end{flex-direction:column}.service-choice{grid-template-columns:42px 1fr 28px;padding:15px 13px;gap:12px}.service-choice strong{font-size:18px}.service-choice-icon{width:40px;height:40px}}

#booking-error:not([hidden]){margin:18px 0;padding:16px;border:1px solid #a7554a;border-radius:12px;color:#7c3430;background:#fff8f6;font-size:14px}
#booking-success:not([hidden]){margin:18px 0;padding:18px;border:1px solid #7b8c63;border-radius:14px;background:#eef5e6;color:var(--deep)}
#booking-success h3{font-family:Georgia,serif;font-weight:400;margin:0 0 8px}
#booking-success p{margin:8px 0;line-height:1.6}
.booking-unavailable[hidden],#booking-error[hidden],#booking-success[hidden]{display:none!important}
