.booking-dialog{background:transparent;border:0;height:100%;inset:0;margin:0;max-height:none;max-width:none;padding:18px;width:100%}
.booking-dialog::backdrop{background:rgba(4,22,26,.72)}
.booking-dialog[open]{align-items:center;display:flex;justify-content:center}
.booking-shell{background:#f7f1e7;box-shadow:0 28px 90px rgba(0,0,0,.35);color:#15363b;display:grid;grid-template-columns:minmax(245px,.72fr) minmax(420px,1.28fr);max-height:calc(100svh - 36px);max-width:1040px;overflow:auto;position:relative;width:100%}
.booking-side{background:#11383d;color:#fff;padding:48px 38px}
.booking-side .booking-kicker{color:#c39a63;font:700 .66rem Arial,sans-serif;letter-spacing:.2em;margin:0 0 22px;text-transform:uppercase}
.booking-side h2{font-family:Georgia,serif;font-size:2.4rem;font-weight:400;line-height:1.04;margin:0 0 18px}
.booking-service-meta{color:rgba(255,255,255,.75);font-size:.9rem;line-height:1.7;margin:0 0 24px}
.booking-main{min-width:0;padding:44px 42px 38px}
.booking-close{background:#fff;border:1px solid rgba(21,54,59,.18);border-radius:50%;color:#15363b;cursor:pointer;font-size:24px;height:40px;line-height:1;position:absolute;right:16px;top:16px;width:40px;z-index:2}
.booking-close:hover,.booking-close:focus-visible{border-color:#c39a63;outline:0}
.booking-status{background:#fff8e9;border-left:3px solid #c39a63;font-size:.88rem;line-height:1.5;margin:0 0 20px;padding:12px 14px}
.booking-status:empty{display:none}
.booking-status.error{background:#fff0ed;border-color:#b85143;color:#7d271d}
.booking-status.success{background:#edf7f0;border-color:#49845a;color:#285c37}
.booking-month-head{align-items:center;display:flex;justify-content:space-between;margin:0 0 18px;padding-right:38px}
.booking-month-head h3{font-family:Georgia,serif;font-size:1.65rem;font-weight:400;margin:0;text-transform:capitalize}
.booking-month-nav{display:flex;gap:7px}
.booking-month-nav button{background:transparent;border:1px solid rgba(21,54,59,.25);border-radius:50%;color:#15363b;cursor:pointer;font-size:18px;height:34px;width:34px}
.booking-weekdays,.booking-days{display:grid;grid-template-columns:repeat(7,1fr)}
.booking-weekdays span{color:#6c7875;font:700 .62rem Arial,sans-serif;letter-spacing:.08em;padding:6px 2px;text-align:center;text-transform:uppercase}
.booking-days{gap:5px}
.booking-day{aspect-ratio:1;background:#fff;border:1px solid rgba(21,54,59,.12);color:#15363b;cursor:pointer;font:600 .82rem Arial,sans-serif;min-width:0;padding:0}
.booking-day:not(:disabled):hover,.booking-day.selected{background:#15363b;border-color:#15363b;color:#fff}
.booking-day:disabled{background:rgba(255,255,255,.38);color:#a9adaa;cursor:default}
.booking-day.empty{background:transparent;border:0}
.booking-times-title{font-family:Georgia,serif;font-size:1.25rem;font-weight:400;margin:28px 0 12px}
.booking-times{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}
.booking-time{background:#fff;border:1px solid rgba(21,54,59,.2);color:#15363b;cursor:pointer;font:700 .72rem Arial,sans-serif;padding:10px 5px}
.booking-time:hover,.booking-time.selected{background:#c39a63;border-color:#c39a63;color:#102f34}
.booking-empty{color:#6c7875;font-size:.86rem;grid-column:1/-1;line-height:1.5;margin:4px 0}
.booking-continue,.booking-submit,.booking-action{background:#15363b;border:1px solid #15363b;color:#fff;cursor:pointer;font:700 .68rem Arial,sans-serif;letter-spacing:.11em;margin-top:24px;padding:13px 18px;text-transform:uppercase;width:100%}
.booking-continue:disabled,.booking-submit:disabled,.booking-action:disabled{cursor:not-allowed;opacity:.45}
.booking-back{background:transparent;border:0;color:#345f5b;cursor:pointer;font:700 .66rem Arial,sans-serif;letter-spacing:.08em;margin:0 0 22px;padding:0;text-transform:uppercase}
.booking-summary{background:#fff;border-left:3px solid #c39a63;line-height:1.6;margin:0 0 24px;padding:15px 16px}
.booking-summary strong{display:block;font-family:Georgia,serif;font-size:1.18rem;font-weight:400}
.booking-payment-note{color:#6c7875;font:400 .72rem/1.5 Arial,sans-serif;margin:-12px 2px 22px}
.booking-form{display:grid;gap:16px}
.booking-field{display:grid;gap:7px}
.booking-field label{font:700 .65rem Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.booking-field label span{font-weight:400;letter-spacing:.04em;text-transform:none}
.booking-field input,.booking-field textarea{background:#fff;border:1px solid rgba(21,54,59,.22);border-radius:0;color:#15363b;font:inherit;padding:9px 12px;width:100%}
.booking-field textarea{min-height:68px;resize:vertical}
.booking-field input:focus,.booking-field textarea:focus{border-color:#c39a63;outline:2px solid rgba(195,154,99,.22)}
.booking-field small{color:#64716e;font-size:.72rem;line-height:1.45}
.booking-privacy{color:#64716e;font-size:.74rem;line-height:1.5;margin:2px 0 0}
.booking-turnstile{min-height:65px}
.booking-confirmation{text-align:center}
.booking-confirmation .booking-check{align-items:center;background:#dcece6;border-radius:50%;color:#245b50;display:inline-flex;font-size:28px;height:64px;justify-content:center;margin-bottom:18px;width:64px}
.booking-confirmation h3{font-family:Georgia,serif;font-size:2rem;font-weight:400;margin:0 0 12px}
.booking-confirmation p{color:#5f6f6c;line-height:1.65}
.booking-manage-actions{display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-top:22px}
.booking-action.cancel{background:transparent;color:#8b3a31}
.booking-fallback{background:#fff8e9;border-left:3px solid #c39a63;margin-top:8px;padding:14px 16px;text-align:center}
.booking-fallback p{color:#5f6f6c;font-size:.82rem;line-height:1.5;margin:0 0 10px}
.booking-fallback a{color:#15363b;font:700 .68rem Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.booking-reschedule[hidden],.booking-step[hidden]{display:none}
@media(max-width:760px){
  .booking-dialog{padding:0}.booking-dialog[open]{align-items:stretch}.booking-shell{display:block;max-height:100svh;min-height:100svh;overflow:auto}.booking-side{padding:18px 58px 16px 18px}.booking-side .booking-kicker{margin-bottom:8px}.booking-side h2{font-size:2rem;margin-bottom:6px}.booking-service-meta{line-height:1.35;margin-bottom:10px}.booking-main{padding:24px 18px 38px}.booking-dialog[data-view="details"] .booking-side{display:none}.booking-dialog[data-view="details"] .booking-main{padding-top:20px}.booking-close{position:fixed;right:12px;top:12px}.booking-month-head{padding-right:0}.booking-times{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-manage-actions{grid-template-columns:1fr}
}
.booking-voucher{border-top:1px solid rgba(21,54,59,.17);margin-top:3px;padding-top:14px}.booking-voucher-toggle{align-items:center;cursor:pointer;display:flex;font:700 .68rem Arial,sans-serif;gap:9px;letter-spacing:.08em;text-transform:uppercase}.booking-voucher-toggle input{appearance:none;background:#fff;border:1px solid rgba(21,54,59,.42);border-radius:3px;flex:0 0 auto;height:20px;margin:0;position:relative;width:20px}.booking-voucher-toggle input:checked{background:#15363b;border-color:#15363b}.booking-voucher-toggle input:checked::after{border:solid #fff;border-width:0 2px 2px 0;content:"";height:9px;left:6px;position:absolute;top:3px;transform:rotate(45deg);width:4px}.booking-voucher-fields[hidden]{display:none}.booking-voucher p{color:#64716e;font-size:.76rem;line-height:1.45;margin:8px 0 12px}.booking-voucher .booking-field{margin-top:12px}.booking-voucher .booking-voucher-error{background:#fff0ed;border-left:3px solid #b85143;color:#7d271d;font-size:.78rem;margin:12px 0 0;padding:10px 12px}.booking-voucher .booking-voucher-error[hidden]{display:none}

