:root{
  --booking-font-ui:Inter,ui-sans-serif,system-ui,sans-serif;
  --booking-font-heading:var(--booking-font-ui);
  --booking-accent:#315f50;
  --booking-accent-soft:#edf5f1;
  --booking-text:#17221e;
  --booking-muted:#66736e;
  --booking-border:#dfe7e3;
  --booking-surface:#fff;
  --booking-bg:#f7f9f8;
  --booking-dialog-radius:22px;
  --booking-control-radius:10px;
  --booking-button-radius:11px;
  --booking-dialog-width:1120px;
  --booking-dialog-max-height:820px;
  --booking-service-panel-width:250px;
  --booking-service-panel-bg:var(--booking-bg);
  --booking-summary-width:280px;
  --booking-control-height:44px;
  --booking-shadow:0 30px 90px rgba(15,31,25,.24);
  --booking-backdrop:rgba(18,29,25,.42);
  --booking-backdrop-blur:9px;
  --booking-spacing-xs:8px;
  --booking-spacing-sm:12px;
  --booking-spacing-md:18px;
  --booking-spacing-lg:28px;
  --booking-spacing-xl:34px;
  --booking-calendar-day-size:42px;
  --booking-calendar-gap:7px;
}
.booking-widget[hidden]{display:none!important}
html.booking-widget-open{overflow:hidden}
.booking-widget{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:24px;color:var(--booking-text);font:15px/1.5 var(--booking-font-ui)}
.booking-widget *{box-sizing:border-box}
.booking-widget__backdrop{position:absolute;inset:0;background:var(--booking-backdrop);backdrop-filter:blur(var(--booking-backdrop-blur));-webkit-backdrop-filter:blur(var(--booking-backdrop-blur))}
.booking-widget__dialog{position:relative;width:min(var(--booking-dialog-width),100%);max-height:min(var(--booking-dialog-max-height),calc(100vh - 48px));overflow:auto;border:1px solid rgba(255,255,255,.65);border-radius:var(--booking-dialog-radius);background:var(--booking-surface);box-shadow:var(--booking-shadow);color:var(--booking-text)}
.booking-widget__header{padding:var(--booking-spacing-lg) 30px var(--booking-spacing-md);border-bottom:1px solid var(--booking-border)}
.booking-widget__eyebrow,.booking-widget__section-label{display:block;margin-bottom:4px;color:var(--booking-accent);font-size:13px;font-weight:650;letter-spacing:.06em;text-transform:uppercase}
.booking-widget h2,.booking-widget h3{font-family:var(--booking-font-heading)}
.booking-widget h2{margin:0;font-size:28px;line-height:1.15}
.booking-widget h3{margin:8px 0 16px;font-size:19px}
.booking-widget__close{position:absolute;right:18px;top:18px;z-index:2;width:40px;height:40px;border:1px solid var(--booking-border);border-radius:50%;background:var(--booking-surface);color:var(--booking-text);font-size:25px;line-height:1;cursor:pointer}
.booking-widget__steps{display:flex;gap:var(--booking-spacing-xs);margin:20px 0 0;padding:0;list-style:none}
.booking-widget__steps li{display:flex;align-items:center;justify-content:center;min-height:32px;padding:5px 11px;border-radius:999px;background:var(--booking-bg);color:var(--booking-muted);font-size:13px;font-weight:500}
.booking-widget__steps li.active{background:var(--booking-accent-soft);color:var(--booking-accent)}
.booking-widget__body{display:grid;min-width:0}
.booking-widget[data-layout="compact"] .booking-widget__body{grid-template-columns:minmax(0,1fr) var(--booking-summary-width)}
.booking-widget[data-layout="compact"] .booking-widget__services{display:none}
.booking-widget[data-layout="compact"] .booking-widget__main{grid-column:1;grid-row:1}
.booking-widget[data-layout="compact"] .booking-widget__summary{grid-column:2;grid-row:1}
.booking-widget[data-layout="service-sidebar"] .booking-widget__body{grid-template-columns:var(--booking-service-panel-width) minmax(0,1fr) var(--booking-summary-width)}
.booking-widget[data-layout="service-sidebar"] .booking-widget__services{grid-column:1;grid-row:1 / span 2}
.booking-widget[data-layout="service-sidebar"] .booking-widget__main{grid-column:2;grid-row:1}
.booking-widget[data-layout="service-sidebar"] .booking-widget__summary{grid-column:3;grid-row:1 / span 2}
.booking-widget[data-layout="stacked"] .booking-widget__body{display:block}
.booking-widget__main{min-width:0;padding:30px}
.booking-widget__services{min-width:0;padding:30px 18px;border-right:1px solid var(--booking-border);background:var(--booking-service-panel-bg)}
.booking-widget__service-list{display:grid;gap:8px;margin-top:16px}
.booking-widget__service-option{display:grid;gap:3px;width:100%;min-height:58px;padding:11px 12px;border:1px solid transparent;border-radius:var(--booking-control-radius);background:transparent;color:var(--booking-text);text-align:left;cursor:pointer}
.booking-widget__service-option:hover{border-color:var(--booking-border);background:var(--booking-surface)}
.booking-widget__service-option--selected{border-color:var(--booking-accent);background:var(--booking-accent-soft)}
.booking-widget__service-option strong{font-size:14px;font-weight:650;line-height:1.3}
.booking-widget__service-option-meta{color:var(--booking-muted);font-size:12px}
.booking-widget__service-select{display:none;gap:7px;margin-top:12px;color:var(--booking-muted);font-size:13px;font-weight:500}
.booking-widget__summary{min-width:0;padding:30px;border-left:1px solid var(--booking-border);background:var(--booking-bg)}
.booking-widget__summary details{margin:0}
.booking-widget__summary summary{display:none;cursor:pointer;font-weight:650}
.booking-widget__summary-content>span,.booking-widget__service>span{display:block;color:var(--booking-muted);font-size:13px}
.booking-widget__summary-content>strong,.booking-widget__service>strong{display:block;margin-top:5px;font-size:18px}
.booking-widget__summary dl{display:grid;gap:0;margin:24px 0 0}
.booking-widget__summary dl div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-top:1px solid var(--booking-border)}
.booking-widget__summary dt{color:var(--booking-muted)}
.booking-widget__summary dd{margin:0;text-align:right;font-weight:600}
.booking-widget[data-summary="integrated"] .booking-widget__summary,
.booking-widget[data-summary="collapsed"] .booking-widget__summary{border-left:0;border-top:1px solid var(--booking-border)}
.booking-widget[data-layout="compact"][data-summary="integrated"] .booking-widget__body,
.booking-widget[data-layout="compact"][data-summary="collapsed"] .booking-widget__body{grid-template-columns:minmax(0,1fr)}
.booking-widget[data-layout="compact"][data-summary="integrated"] .booking-widget__summary,
.booking-widget[data-layout="compact"][data-summary="collapsed"] .booking-widget__summary{grid-column:1;grid-row:2}
.booking-widget[data-layout="service-sidebar"][data-summary="integrated"] .booking-widget__body,
.booking-widget[data-layout="service-sidebar"][data-summary="collapsed"] .booking-widget__body{grid-template-columns:var(--booking-service-panel-width) minmax(0,1fr)}
.booking-widget[data-layout="service-sidebar"][data-summary="integrated"] .booking-widget__summary,
.booking-widget[data-layout="service-sidebar"][data-summary="collapsed"] .booking-widget__summary{grid-column:2;grid-row:2}
.booking-widget[data-summary="collapsed"] .booking-widget__summary{padding:18px 30px}
.booking-widget[data-summary="collapsed"] .booking-widget__summary summary{display:list-item}
.booking-widget[data-summary="collapsed"] .booking-widget__summary-content{padding-top:18px}
.booking-widget__service{margin-bottom:22px;padding:16px 18px;border:1px solid var(--booking-border);border-radius:var(--booking-control-radius);background:var(--booking-bg)}
.booking-widget[data-layout="service-sidebar"] .booking-widget__service,
.booking-widget[data-layout="stacked"] .booking-widget__service{display:none}
.booking-widget__service small{display:block;margin-top:3px;color:var(--booking-muted)}
.booking-widget__service-required{margin:0 0 var(--booking-spacing-md);padding:13px 15px;border:1px dashed var(--booking-border);border-radius:var(--booking-control-radius);color:var(--booking-muted);background:var(--booking-bg)}
.booking-widget__field,.booking-widget__fields label,.booking-widget__service-select{font-size:14px;font-weight:500}
.booking-widget__field,.booking-widget__fields label{display:grid;gap:7px}
.booking-widget input,.booking-widget select{width:100%;min-height:var(--booking-control-height);padding:9px 11px;border:1px solid var(--booking-border);border-radius:var(--booking-control-radius);background:var(--booking-surface);color:var(--booking-text);font:inherit}
.booking-widget input:focus,.booking-widget select:focus,.booking-widget button:focus-visible,.booking-widget summary:focus-visible{outline:3px solid color-mix(in srgb,var(--booking-accent) 22%,transparent);outline-offset:2px}
.booking-widget__primary{width:100%;min-height:var(--booking-control-height);border:0;border-radius:var(--booking-button-radius);background:var(--booking-accent);color:#fff;font:600 14px/1 var(--booking-font-ui);cursor:pointer}
.booking-widget__primary:disabled{cursor:not-allowed;opacity:.5}
.booking-widget__actions{margin-top:20px}
.booking-widget__back{margin:0 0 8px;padding:0;border:0;background:none;color:var(--booking-accent);font:500 13px/1.4 var(--booking-font-ui);cursor:pointer}
.booking-widget__compact-date{display:grid}
.booking-widget__compact-date .booking-widget__primary{margin-top:20px}
.booking-widget__calendar{display:none}
.booking-widget[data-calendar="inline"] .booking-widget__compact-date{display:none}
.booking-widget[data-calendar="inline"] .booking-widget__calendar{display:block}
.booking-widget[data-calendar="compact"] .booking-widget__inline-availability{display:none}
.booking-widget__calendar-header{display:grid;grid-template-columns:var(--booking-control-height) minmax(0,1fr) var(--booking-control-height);align-items:center;gap:var(--booking-spacing-sm);margin-bottom:var(--booking-spacing-md)}
.booking-widget__calendar-header strong{text-align:center;text-transform:capitalize;font-family:var(--booking-font-heading);font-size:18px}
.booking-widget__calendar-header button{width:var(--booking-control-height);height:var(--booking-control-height);border:1px solid var(--booking-border);border-radius:50%;background:var(--booking-surface);color:var(--booking-text);font-size:22px;cursor:pointer}
.booking-widget__calendar-weekdays,.booking-widget__calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--booking-calendar-gap)}
.booking-widget__calendar-weekdays{margin-bottom:var(--booking-spacing-xs);color:var(--booking-muted);font-size:11px;font-weight:700;text-align:center;text-transform:uppercase}
.booking-widget__calendar-weekdays span{display:grid;place-items:center;min-height:24px}
.booking-widget__calendar-day,.booking-widget__calendar-spacer{min-width:0;min-height:var(--booking-calendar-day-size)}
.booking-widget__calendar-day{display:grid;place-items:center;border:1px solid transparent;border-radius:var(--booking-control-radius);background:transparent;color:var(--booking-text);font:500 13px/1 var(--booking-font-ui);cursor:pointer}
.booking-widget__calendar-day:hover:not(:disabled){border-color:var(--booking-border);background:var(--booking-bg)}
.booking-widget__calendar-day[aria-current="date"]{border-color:var(--booking-border)}
.booking-widget__calendar-day--selected{border-color:var(--booking-accent)!important;background:var(--booking-accent-soft)!important;color:var(--booking-accent);font-weight:700}
.booking-widget__calendar-day--disabled{cursor:not-allowed;color:var(--booking-muted);opacity:.4}
.booking-widget__inline-availability{margin-top:var(--booking-spacing-xl);padding-top:var(--booking-spacing-lg);border-top:1px solid var(--booking-border)}
.booking-widget__availability-heading{display:flex;align-items:baseline;justify-content:space-between;gap:var(--booking-spacing-md);margin-bottom:var(--booking-spacing-sm)}
.booking-widget__availability-heading h3{margin:0}
.booking-widget__availability-status{display:block;min-height:20px;color:var(--booking-muted);font-size:12px}
.booking-widget__slots{display:grid;grid-template-columns:repeat(3,minmax(90px,1fr));gap:9px}
.booking-widget__slot{min-height:42px;border:1px solid var(--booking-border);border-radius:var(--booking-control-radius);background:var(--booking-surface);color:var(--booking-text);font:500 14px/1 var(--booking-font-ui);cursor:pointer}
.booking-widget__slot:hover{border-color:var(--booking-accent)}
.booking-widget__slot--selected,.booking-widget__slots button.selected{border-color:var(--booking-accent);background:var(--booking-accent-soft);color:var(--booking-accent);font-weight:650}
.booking-widget__fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.booking-widget__wide{grid-column:1/-1}
.booking-widget__terms{display:flex;align-items:flex-start;gap:9px;margin-top:17px;color:var(--booking-muted);font-size:13px}
.booking-widget__terms input{width:18px;min-height:18px;margin-top:2px}
.booking-widget__error{margin-bottom:18px;padding:11px 13px;border:1px solid #f4c7c7;border-radius:var(--booking-control-radius);background:#fff6f6;color:#8e2525}
.booking-widget__empty{grid-column:1/-1;margin:0;padding:18px;border:1px dashed var(--booking-border);border-radius:var(--booking-control-radius);color:var(--booking-muted);text-align:center}
.booking-widget__result{padding:24px;border-radius:var(--booking-control-radius);background:var(--booking-accent-soft);text-align:center}
.booking-widget__result h3{margin-top:0}
.booking-widget__result strong{color:var(--booking-accent)}
.booking-widget[data-layout="stacked"] .booking-widget__services{border-right:0;border-bottom:1px solid var(--booking-border)}
.booking-widget[data-layout="stacked"] .booking-widget__service-list{display:none}
.booking-widget[data-layout="stacked"] .booking-widget__service-select{display:grid}
.booking-widget[data-layout="stacked"] .booking-widget__summary{border-left:0;border-top:1px solid var(--booking-border)}
@media(max-width:900px){
  .booking-widget[data-layout="service-sidebar"] .booking-widget__body{grid-template-columns:220px minmax(0,1fr)}
  .booking-widget[data-layout="service-sidebar"] .booking-widget__summary{grid-column:2;grid-row:2;border-left:0;border-top:1px solid var(--booking-border)}
}
@media(max-width:760px){
  .booking-widget{align-items:end;padding:0}
  .booking-widget__dialog{width:100%;max-height:94dvh;border-radius:var(--booking-dialog-radius) var(--booking-dialog-radius) 0 0}
  .booking-widget__header{padding:22px 20px 15px}
  .booking-widget h2{padding-right:40px;font-size:24px}
  .booking-widget__steps{overflow-x:auto}
  .booking-widget__steps li{white-space:nowrap}
  .booking-widget__body,.booking-widget[data-layout="compact"] .booking-widget__body,.booking-widget[data-layout="service-sidebar"] .booking-widget__body{display:block}
  .booking-widget__main{padding:22px 20px 26px}
  .booking-widget[data-layout="compact"] .booking-widget__services{display:none}
  .booking-widget[data-layout="service-sidebar"] .booking-widget__services,.booking-widget[data-layout="stacked"] .booking-widget__services{display:block;padding:18px 20px;border-right:0;border-bottom:1px solid var(--booking-border)}
  .booking-widget[data-layout="service-sidebar"] .booking-widget__service-list{display:none}
  .booking-widget[data-layout="service-sidebar"] .booking-widget__service-select{display:grid}
  .booking-widget__summary{padding:20px;border-left:0;border-top:1px solid var(--booking-border)}
  .booking-widget__slots{grid-template-columns:repeat(2,minmax(0,1fr))}
  .booking-widget__fields{grid-template-columns:1fr}
  .booking-widget__wide{grid-column:auto}
  .booking-widget__close{right:14px;top:14px}
  .booking-widget__calendar-day,.booking-widget__calendar-spacer{min-height:max(40px,var(--booking-calendar-day-size))}
}
@media(max-width:420px){
  .booking-widget__steps{gap:5px}
  .booking-widget__steps li{padding:5px 9px}
  .booking-widget[data-summary="sidebar"] .booking-widget__summary{display:none}
  .booking-widget[data-summary="collapsed"] .booking-widget__summary{display:block}
  .booking-widget__calendar-weekdays,.booking-widget__calendar-grid{gap:4px}
}
@media(prefers-reduced-motion:no-preference){
  .booking-widget__dialog{animation:booking-in .2s ease-out}
  @keyframes booking-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
}
