
.booking-assistant-toggle{position:fixed;right:max(22px,env(safe-area-inset-right));bottom:calc(var(--cookie-banner-height,0px) + max(22px,env(safe-area-inset-bottom)));z-index:80;display:inline-flex;align-items:center;justify-content:center;gap:10px;max-width:calc(100vw - 32px);min-height:58px;padding:14px 20px;color:var(--paper,#fdfaf4);background:var(--ink,#25332b);border:1px solid #b6a27b;border-radius:999px;box-shadow:0 12px 34px #17251f30;font:600 .9rem/1.2 var(--sans,Arial,sans-serif);letter-spacing:.01em;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}
.booking-assistant-toggle:hover{transform:translateY(-2px);box-shadow:0 16px 38px #17251f40}
.booking-assistant-toggle-icon{display:inline-grid;place-items:center;color:#d9c49d;font-size:1.3rem}
.booking-assistant-panel{position:fixed;right:max(22px,env(safe-area-inset-right));bottom:calc(var(--cookie-banner-height,0px) + max(22px,env(safe-area-inset-bottom)) + 72px);z-index:81;width:min(430px,calc(100vw - 28px));max-height:min(760px,calc(100dvh - var(--cookie-banner-height,0px) - max(22px,env(safe-area-inset-bottom)) - 94px));display:flex;flex-direction:column;overflow:hidden;padding:24px;background:var(--paper,#fdfaf4);color:var(--ink,#25332b);border:1px solid var(--line,#dcd9ce);box-shadow:0 20px 70px #0e211b30;border-radius:20px}
.booking-assistant-panel[hidden]{display:none}
.booking-assistant-top{flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.booking-assistant-top h2{margin:0;font:400 2rem/1.05 var(--serif,Georgia,serif);letter-spacing:-.02em}
.booking-assistant-close{flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--line,#dcd9ce);border-radius:50%;background:transparent;color:inherit;font-size:1.7rem;line-height:1}
.booking-assistant-intro{flex-shrink:0;margin:0 0 18px;color:var(--muted,#676b60);font-size:.88rem;line-height:1.5}
#ba-form{display:flex;flex:1 1 auto;flex-direction:column;min-width:0;min-height:0;gap:0}
.booking-assistant-inputs{display:grid;flex:1 1 auto;grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;align-content:start;gap:8px;overflow:auto;min-width:0;min-height:0;padding:4px 5px 12px;scroll-padding-block:8px;overscroll-behavior:contain}
.booking-assistant-actions{position:relative;flex-shrink:0;background:var(--paper,#fdfaf4);padding-top:12px;border-top:1px solid var(--line,#dcd9ce)}
.booking-assistant-confirmation{margin:0 0 10px;color:var(--ink,#25332b);font-size:.8rem;line-height:1.45}
.booking-assistant-options>div{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;gap:8px;padding-block:8px}
#ba-form summary{min-height:44px;display:list-item;align-content:center;cursor:pointer;font-size:.85rem;line-height:1.5;color:var(--ink,#25332b)}
#ba-form summary:focus-visible{outline:2px solid #7d3e2f;outline-offset:2px}
.booking-assistant-options,.booking-assistant-policy{border-top:1px solid var(--line,#dcd9ce)}
#ba-form label{margin-top:4px;color:var(--ink,#25332b);font-size:.8rem;font-weight:600;line-height:1.3}
#ba-form input,#ba-form select,#ba-form textarea{width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid #d3cec1;border-radius:9px;background:#fffefa;color:var(--ink,#25332b);font:400 1rem/1.4 var(--sans,Arial,sans-serif)}
#ba-form select{appearance:none;-webkit-appearance:none;height:3rem;min-height:3rem;padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2325332b' stroke-width='1.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:20px}
#ba-date{appearance:none;-webkit-appearance:none;display:block;max-width:100%;height:3rem;min-height:3rem}
#ba-date::-webkit-date-and-time-value{min-width:0;text-align:left}
#ba-form input:focus,#ba-form select:focus,#ba-form textarea:focus{outline:2px solid #a54e36;outline-offset:2px}
#ba-form textarea{resize:vertical;min-height:68px}
.booking-assistant-celiac{display:grid;gap:3px;margin:2px 0}
#ba-form .booking-assistant-checkbox{display:flex;min-height:44px;align-items:center;gap:9px;margin:0;cursor:pointer}
#ba-form .booking-assistant-checkbox input{flex:0 0 18px;width:18px;min-height:18px;height:18px;margin:0;accent-color:#7d3e2f}
.booking-assistant-help{margin:0 0 0 27px;color:#52564d;font-size:.8rem;line-height:1.4}
.booking-assistant-actual-guests{display:grid;gap:8px}
.booking-assistant-actual-guests[hidden]{display:none!important}
.booking-assistant-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.booking-assistant-fields>div{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;gap:8px}
.booking-assistant-disclaimer{margin:8px 0;padding:12px;background:#f3eee3;border:1px solid var(--line,#dcd9ce);color:#52564d;font-size:.85rem;line-height:1.5}
.booking-assistant-submit{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:50px;padding:13px 16px;background:var(--ink,#25332b);color:var(--paper,#fdfaf4);border:0;border-radius:999px;font:600 .88rem/1.2 var(--sans,Arial,sans-serif)}
.booking-assistant-submit:hover{background:#36483d}
.booking-assistant-status{min-height:0;margin:0;color:var(--muted,#676b60);font-size:.78rem;line-height:1.4}
.booking-assistant-status:not(:empty){margin-top:4px}
.booking-assistant-footer{flex-shrink:0;margin:10px 0 0;color:var(--muted,#676b60);font-size:.75rem;line-height:1.4}
@media(max-width:520px){.booking-assistant-toggle{right:max(12px,env(safe-area-inset-right));bottom:calc(var(--cookie-banner-height,0px) + max(12px,env(safe-area-inset-bottom)));min-height:52px;padding:12px 16px;font-size:.82rem}.booking-assistant-panel{right:10px;bottom:calc(var(--cookie-banner-height,0px) + max(10px,env(safe-area-inset-bottom)) + 62px);width:calc(100vw - 20px);max-height:calc(100dvh - var(--cookie-banner-height,0px) - max(10px,env(safe-area-inset-bottom)) - 82px);padding:20px 17px;border-radius:16px}.booking-assistant-top h2{font-size:1.8rem}.booking-assistant-fields{gap:9px}}
@media(prefers-reduced-motion:reduce){.booking-assistant-toggle{transition:none}.booking-assistant-toggle:hover{transform:none}}

@media(max-height:540px){.booking-assistant-panel{bottom:max(8px,env(safe-area-inset-bottom));max-height:calc(100dvh - var(--cookie-banner-height,0px) - 16px);padding:14px}.booking-assistant-intro,.booking-assistant-footer{display:none}.booking-assistant-top{margin-bottom:8px}.booking-assistant-top h2{font-size:1.65rem}}
@media(max-height:700px),(max-width:700px){
  .booking-assistant-panel{bottom:calc(var(--cookie-banner-height,0px) + max(10px,env(safe-area-inset-bottom)));max-height:calc(100dvh - var(--cookie-banner-height,0px) - max(10px,env(safe-area-inset-top)) - max(10px,env(safe-area-inset-bottom)))}
  #booking-assistant-toggle[aria-expanded="true"]{visibility:hidden}
  .booking-assistant-footer{display:none}
}
