body:has(.booking-dialog[open]){overflow:hidden}.booking-dialog,.booking-calendar{--ink: #493727;--paper-soft: #fcf8f1;--line: #49372738;--muted: #6f6052;--accent: #6d7354;color:var(--ink);font:14px/1.5 var(--font-body, "Montserrat", sans-serif);box-sizing:border-box;margin:auto}.booking-dialog{width:min(620px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 24px);padding:0;border:1px solid var(--line);border-radius:2px;background:var(--paper-soft);overscroll-behavior:contain}.booking-dialog::backdrop{background:#251d17bf}.booking-panel{padding:clamp(16px,5vw,32px)}.booking-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.booking-heading h2{font:500 clamp(28px,5vw,42px)/1.08 var(--font-display, "Cormorant Garamond", serif);margin:2px 0 0;min-width:0;overflow-wrap:anywhere}.booking-heading h2:focus{outline:none}.booking-dialog .booking-close{flex:0 0 44px;display:grid;place-items:center;margin:0;width:44px;height:44px;padding:0;color:inherit;background:transparent;border:1px solid var(--line);cursor:pointer}.booking-intro{margin:8px 0 20px;color:var(--muted)}.booking-dialog button{cursor:pointer}.booking-dialog button:disabled{cursor:default;opacity:.45}.booking-dialog [hidden]{display:none!important}.booking-dialog :is(button,a,input,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.booking-dialog :is(input,textarea,button),.booking-calendar button{box-sizing:border-box}.booking-consent{margin:12px 0 4px}.booking-consent label{display:grid;grid-template-columns:22px 1fr;align-items:center;min-height:44px;gap:10px;cursor:pointer}.booking-consent input{appearance:none;width:20px;height:20px;margin:0;color:#fff;background:var(--paper-soft);border:1px solid var(--muted);border-radius:2px;display:grid;place-content:center}.booking-consent input:checked{background:var(--ink);border-color:var(--ink)}.booking-consent input:checked:before{content:"✓";font-size:15px;line-height:1}.booking-consent input[aria-invalid=true]{border-color:#943c28}.booking-time-empty{margin:8px 0 0;color:var(--muted);font-size:12px}.booking-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px}.booking-field{min-width:0}.booking-field label,.booking-label{display:block;font-size:13px;line-height:1.6;margin-bottom:8px}.booking-field label span{color:var(--muted,#6f6052)}.booking-field input:not([type=checkbox]),.booking-field textarea,.booking-time-trigger{appearance:none;-webkit-appearance:none;border:0;border-bottom:1px solid #796b5c;border-radius:0;background:#49372705;width:100%;min-height:48px;padding:12px 8px;color:inherit;font:16px/1.5 var(--font-ui,"Montserrat",sans-serif)}.booking-field input::placeholder,.booking-field textarea::placeholder{color:var(--muted,#6f6052);opacity:1}.booking-field input:focus-visible,.booking-field textarea:focus-visible,.booking-time-trigger:focus-visible{outline:2px solid var(--accent,#6d7354);outline-offset:4px}.booking-error{color:#943c28;font-size:12px;line-height:1.6;margin-top:8px;overflow-wrap:break-word}.booking-error:empty{display:none}.booking-field [aria-invalid=true]{border-bottom:2px solid #943c28}.booking-date-control,.booking-time-field{position:relative}.booking-date-control input{padding-right:48px}.booking-calendar-trigger{position:absolute;right:0;top:0;background:transparent;color:inherit;width:48px;height:48px;display:flex;align-items:center;justify-content:center}.booking-time-trigger{cursor:pointer;display:flex;gap:12px;justify-content:space-between;align-items:center;text-align:left}.booking-time-list{position:absolute;top:calc(1.6em + 56px);left:0;right:0;max-height:256px;overflow:auto;padding:8px;background:var(--paper-soft,#fcf8f1);color:var(--ink,#493727);z-index:5;border:1px solid var(--line,#49372738);overscroll-behavior:contain}.booking-time-list button{display:block;width:100%;padding:12px;min-height:44px;text-align:left;background:transparent;color:inherit;font-size:14px}.booking-time-list button:hover:not(:disabled),.booking-time-list button:focus-visible,.booking-time-list button[aria-selected=true]{background:var(--ink,#493727);color:var(--paper-soft,#fcf8f1)}.booking-time-list button:focus-visible{outline:2px solid var(--accent,#6d7354);outline-offset:-3px}.booking-stepper{min-height:48px;border-bottom:1px solid #796b5c;display:flex;align-items:center;justify-content:space-between;gap:8px}.booking-stepper button{width:44px;height:44px;background:transparent;color:inherit;font-size:24px}.booking-stepper button:disabled{opacity:.4;cursor:default}.booking-stepper output{font-size:14px;text-align:center;font-variant-numeric:tabular-nums}.booking-comment-field{grid-column:1/-1}.booking-field textarea{resize:vertical;min-height:88px;max-height:200px}.booking-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,3vw,24px);margin-top:12px}.booking-action{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0;min-height:48px;padding:10px 0;background:transparent;color:inherit;font:inherit;font-size:clamp(12px,3.5vw,14px);text-align:left;text-decoration:none;border:0;border-bottom:1px solid currentColor;border-radius:0}.booking-action svg{flex:none}.booking-actions:has(.booking-submit[hidden]){grid-template-columns:minmax(0,1fr)}.booking-actions:has(.booking-submit[hidden]) .booking-result-call{justify-self:start;gap:16px}.booking-result{padding:10px 0 12px}.booking-result h3{font:400 30px/1.2 var(--font-display,"Cormorant Garamond",serif);margin:0 0 12px}.booking-result>p{font-size:14px;line-height:1.7;margin:8px 0}.booking-calendar{background:var(--paper-soft,#fcf8f1);color:var(--ink,#493727);border:1px solid var(--line,#49372738);padding:28px;max-width:calc(100vw - 24px);width:380px;border-radius:2px;max-height:calc(100dvh - 24px);overflow:auto}.booking-calendar::backdrop{background:#251d17d9}.booking-calendar-head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:4px;position:relative;padding-top:32px;margin-bottom:24px}.booking-calendar-head h4{font:400 20px/1.4 var(--font-display,"Montserrat",sans-serif);text-align:center;margin:0}.booking-calendar-head button{background:transparent;color:inherit;width:44px;min-height:44px;font-size:24px;padding:0}.booking-calendar-head .booking-calendar-close{display:grid;place-items:center;position:absolute;right:-8px;top:-20px}.booking-calendar-head button:disabled{opacity:.4}.booking-weekdays,.booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0}.booking-weekdays{margin-bottom:8px;text-align:center;font-size:12px;color:var(--muted,#6f6052)}.booking-days button{min-height:44px;width:100%;padding:4px;background:transparent;color:inherit;border:1px solid transparent;font-size:14px}.booking-days button:hover:not(:disabled),.booking-days button[aria-pressed=true]{background:var(--ink,#493727);color:var(--paper-soft,#fcf8f1)}.booking-days button:disabled{opacity:.4;cursor:default}.booking-calendar>p{font-size:12px;line-height:1.8;margin-top:24px;color:var(--muted,#6f6052)}@media(max-width:760px){.booking-fields{grid-template-columns:1fr;gap:16px}.booking-comment-field{grid-column:auto}.booking-calendar{padding:24px 12px}.booking-calendar-head h4{font-size:18px}.booking-days button{min-height:40px}}@media(prefers-reduced-motion:reduce){.booking-form *,.booking-calendar *{transition:none!important;animation:none!important}}
