.booking-dialog{width:min(760px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:0;border:0;border-radius:28px;background:#f7f4f1;color:#171513;box-shadow:0 30px 90px rgba(0,0,0,.35);overflow:hidden}.booking-dialog::backdrop{background:rgba(13,11,10,.68);backdrop-filter:blur(6px)}.booking-shell{display:flex;flex-direction:column;max-height:calc(100dvh - 24px)}.booking-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:22px 24px;border-bottom:1px solid rgba(30,27,24,.14);background:rgba(247,244,241,.96);position:sticky;top:0;z-index:4}.booking-head p{margin:0 0 5px;font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:#756d66}.booking-head h2{font-family:Georgia,serif;font-size:30px;line-height:1.05;font-weight:400;margin:0}.booking-close{border:0;background:transparent;font-size:30px;line-height:1;cursor:pointer;padding:0 4px}.booking-body{overflow:auto;padding:24px;overscroll-behavior:contain}.booking-progress{display:flex;gap:6px;margin-bottom:22px}.booking-progress span{height:4px;flex:1;background:#dcd5cf;border-radius:999px}.booking-progress span.is-active{background:#1d1a18}.booking-step{display:none}.booking-step.is-active{display:block}.booking-step h3{font-family:Georgia,serif;font-size:32px;line-height:1.05;font-weight:400;margin:0 0 10px}.booking-step>.booking-lead{color:#6f6861;line-height:1.55;margin:0 0 20px}.booking-choice-grid,.booking-service-list{display:grid;gap:12px}.booking-choice,.booking-service{width:100%;text-align:left;border:1px solid #d8d0c9;background:#fff;border-radius:18px;padding:18px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;color:#171513}.booking-choice:hover,.booking-service:hover,.booking-choice:focus-visible,.booking-service:focus-visible{border-color:#171513;outline:3px solid rgba(23,21,19,.11)}.booking-choice strong,.booking-service strong{display:block;font-size:17px;margin-bottom:5px}.booking-choice span,.booking-service span{display:block;color:#746c65;font-size:14px}.booking-choice-main{background:#171513;color:#fff;border-color:#171513}.booking-choice-main span{color:#d9d2cc}.booking-service small{display:block;color:#746c65;margin-top:6px}.booking-service-meta{text-align:right;white-space:nowrap}.booking-service.is-selected{border-color:#171513;background:#eee8e2}.booking-day-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.booking-day{border:1px solid #d8d0c9;background:#fff;border-radius:14px;padding:12px 8px;cursor:pointer;display:flex;flex-direction:column;gap:4px;align-items:center}.booking-day strong{font-size:18px}.booking-day span{font-size:12px;color:#746c65}.booking-day:disabled{opacity:.35;cursor:not-allowed}.booking-day.is-selected{background:#171513;color:#fff}.booking-day.is-selected span{color:#d8d0c9}.booking-time-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.booking-time{border:1px solid #d8d0c9;background:#fff;border-radius:999px;padding:12px;cursor:pointer}.booking-time.is-selected{background:#171513;color:#fff}.booking-form{display:grid;gap:14px}.booking-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking-form label{display:grid;gap:7px;font-size:13px;color:#6f6861}.booking-form input,.booking-form select,.booking-form textarea{width:100%;border:1px solid #d8d0c9;background:#fff;border-radius:13px;padding:13px;color:#171513;font:inherit}.booking-form textarea{min-height:92px;resize:vertical}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{outline:3px solid rgba(23,21,19,.11);border-color:#171513}.booking-consent{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start;gap:10px!important}.booking-consent input{width:auto;margin-top:3px}.booking-consent a{text-decoration:underline}.booking-summary{display:grid;gap:0;border:1px solid #d8d0c9;border-radius:18px;background:#fff;overflow:hidden}.booking-summary div{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:13px 16px;border-bottom:1px solid #e5dfda}.booking-summary div:last-child{border-bottom:0}.booking-summary span{color:#746c65}.booking-actions{display:flex;justify-content:space-between;gap:10px;margin-top:22px}.booking-primary,.booking-secondary{min-height:48px;border-radius:999px;padding:12px 20px;border:1px solid #171513;cursor:pointer;font:inherit;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.booking-primary{background:#171513;color:#fff}.booking-secondary{background:transparent;color:#171513}.booking-primary:disabled{opacity:.55;cursor:wait}.booking-status{min-height:20px;color:#756d66;margin:12px 0 0}.booking-status.is-error{color:#9b2d2d}.booking-success{display:grid;gap:16px}.booking-success-mark{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:#171513;color:#fff;font-size:28px}.booking-success-card{background:#fff;border:1px solid #d8d0c9;border-radius:18px;padding:18px;display:grid;gap:8px}.booking-success-card strong{font-size:19px}.booking-success-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.booking-precheck-note{background:#eee7e0;border-radius:14px;padding:13px 15px;color:#5e554e;font-size:14px;margin-top:12px}.booking-dialog a[data-booking-messenger]{display:flex;align-items:center;gap:12px}.booking-dialog a[data-booking-messenger] img{width:28px;height:28px;object-fit:contain}.booking-loading{padding:24px;text-align:center;color:#756d66}.online-booking-trigger{cursor:pointer}
@media(max-width:640px){.booking-dialog{width:100%;max-height:calc(100dvh - 8px);margin:auto 0 0;border-radius:26px 26px 0 0}.booking-shell{max-height:calc(100dvh - 8px);padding-bottom:env(safe-area-inset-bottom)}.booking-head{padding:18px}.booking-body{padding:18px}.booking-head h2{font-size:25px}.booking-step h3{font-size:28px}.booking-day-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-time-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-form-grid{grid-template-columns:1fr}.booking-actions{position:sticky;bottom:0;background:linear-gradient(to top,#f7f4f1 80%,rgba(247,244,241,0));padding-top:16px}.booking-actions>*{flex:1}.booking-summary div{grid-template-columns:110px 1fr}.booking-success-actions{grid-template-columns:1fr}.booking-choice,.booking-service{padding:16px}.booking-service-meta{white-space:normal;text-align:right;max-width:120px}}
@media(max-width:390px){.booking-day-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-time-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-body{padding:16px}.booking-head{padding:16px}.booking-summary div{grid-template-columns:1fr;gap:3px}}

.booking-d1{display:flex!important;align-items:center;gap:8px}.booking-d1 img{width:42px;height:21px;object-fit:contain}.booking-d1 b{font-size:14px;font-weight:600}
.booking-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}.booking-month{grid-column:1/-1}.booking-month h4{margin:10px 0 9px;font-size:14px;font-weight:600;text-transform:none;color:#514a44}.booking-month:first-child h4{margin-top:0}.booking-month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.booking-empty{grid-column:1/-1;border:1px solid #d8d0c9;background:#fff;border-radius:16px;padding:18px;display:grid;gap:6px}.booking-empty strong,.booking-empty p{margin:0}.booking-empty p{color:#746c65;line-height:1.45}.booking-empty.is-error{border-color:rgba(155,45,45,.35);background:#fff8f7}.booking-empty.is-error strong{color:#8b2929}.booking-step[aria-hidden="true"]{display:none}.booking-close:focus-visible,.booking-day:focus-visible,.booking-time:focus-visible,.booking-primary:focus-visible,.booking-secondary:focus-visible{outline:3px solid rgba(23,21,19,.18);outline-offset:2px}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:640px){.booking-month-days{grid-template-columns:repeat(5,minmax(0,1fr))}.booking-day{min-height:62px}.booking-body{padding-bottom:max(18px,env(safe-area-inset-bottom))}}
@media(max-width:430px){.booking-month-days{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:350px){.booking-month-days{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* V40 — centered, symmetrical booking sheet */
.booking-dialog{box-sizing:border-box;margin:auto;inset:0;max-width:760px}
.booking-shell,.booking-body,.booking-head{box-sizing:border-box}
.booking-offline{padding:22px}
.booking-offline-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
@media(max-width:640px){
  .booking-dialog{
    width:calc(100% - 16px);
    max-width:none;
    max-height:min(92dvh,860px);
    inset:auto 8px 0;
    margin:0 auto;
    border-radius:26px 26px 0 0;
  }
  .booking-shell{max-height:min(92dvh,860px)}
  .booking-head{padding:18px 20px}
  .booking-body{padding:18px 20px max(22px,env(safe-area-inset-bottom))}
  .booking-step h3{font-size:29px}
  .booking-choice,.booking-service{border-radius:16px}
}
@media(max-width:390px){
  .booking-dialog{width:calc(100% - 12px);inset:auto 6px 0}
  .booking-head,.booking-body{padding-left:18px;padding-right:18px}
  .booking-offline-actions{grid-template-columns:1fr}
}
