.booking-open{font:700 12px Arial,Helvetica,sans-serif;padding:14px 16px;background:#171717;color:#fff;border:0;cursor:pointer;min-height:44px;white-space:nowrap}
.booking-launcher{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:80;width:60px;height:60px;display:grid;place-items:center;border:2px solid #171717;border-radius:50%;background:#f2c400;color:#171717;box-shadow:0 4px 18px rgb(0 0 0 / 28%);cursor:pointer}
.booking-launcher svg{width:31px;height:31px}.booking-launcher:hover{background:#ffdc2c}.booking-launcher:focus-visible{outline:3px solid #171717;outline-offset:3px}
.booking-dialog{box-sizing:border-box;position:fixed;top:auto;left:auto;right:max(16px,env(safe-area-inset-right));bottom:calc(max(16px,env(safe-area-inset-bottom)) + 68px);margin:0;width:min(390px,calc(100vw - 32px));max-width:none;height:min(600px,calc(100vh - 116px));height:min(600px,calc(100dvh - 116px - env(safe-area-inset-bottom)));padding:0;border:1px solid #d9d7d0;border-radius:16px;background:#fff;color:#171717;box-shadow:0 12px 36px rgb(0 0 0 / 22%);overflow:hidden;z-index:81;font-family:Arial,Helvetica,sans-serif}
.booking-dialog[open]{display:flex;flex-direction:column}
.booking-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;border-top:5px solid #f2c400;border-bottom:1px solid #d9d7d0;padding:10px 16px;background:#fff}
.booking-heading h2{font:700 19px/1.3 Arial,Helvetica,sans-serif;letter-spacing:0;margin:0}.booking-close{width:44px;height:44px;min-width:44px;font-size:27px;line-height:1;background:#fff;color:#171717;border:1px solid #777;border-radius:9px;cursor:pointer;flex-shrink:0}
.booking-body{box-sizing:border-box;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 16px 18px;font-size:14px;line-height:1.5}.booking-body h3{font:700 17px/1.35 Arial,Helvetica,sans-serif;margin:0 0 10px}.booking-body a{text-decoration:underline;overflow-wrap:anywhere}.booking-body p{line-height:1.5;margin:10px 0}
.booking-body :is(.booking-notice,.booking-picker,.booking-personal,.booking-confirm){box-sizing:border-box;min-width:0;border:1px solid #e0ded7;border-radius:10px;background:#faf9f5;padding:14px;margin:0 0 12px}
.booking-body :is(.booking-picker,.booking-personal,.booking-confirm) label{display:block;font-size:14px;text-transform:none;letter-spacing:0;margin:10px 0 5px}
.booking-body :is(input:not([type=checkbox]),select){box-sizing:border-box;display:block;width:100%;max-width:100%;min-width:0;min-height:44px;padding:8px 10px;font-size:16px;background:#fff;color:#171717;border:1px solid #777;border-radius:5px}
.booking-body button{box-sizing:border-box;min-height:44px;max-width:100%;cursor:pointer;white-space:normal;overflow-wrap:anywhere;font-size:14px}.booking-body button:disabled{opacity:.65;cursor:wait}
.booking-body .btn{width:100%;margin-top:14px;padding:9px 12px;font-size:14px;line-height:1.35;text-align:center}
.booking-slot{display:block;box-sizing:border-box;width:100%;margin:0 0 8px;text-align:left;padding:12px;background:#f5f4ef;border:1px solid #777;border-radius:8px;color:#171717;font-size:14px;line-height:1.4;overflow-wrap:anywhere}
.booking-check{display:flex!important;gap:10px;align-items:flex-start}.booking-check input{width:24px;min-width:24px;height:24px;margin:0;accent-color:#171717}.booking-resend,.booking-restart{display:block;width:100%;margin:10px 0 0;border:1px solid #777;border-radius:6px;background:#fff;padding:8px 10px;color:#171717;font-size:14px}
.booking-status{padding:10px 12px;font-weight:700;overflow-wrap:anywhere;border-left:4px solid #f2c400;background:#fff8d8}.booking-status:empty{display:none}
.booking-dialog [hidden]{display:none!important}.booking-body :focus-visible{outline:3px solid #806700;outline-offset:3px}
@media(max-width:1200px){.links{display:none}.menu{display:block}.links.open{display:flex;position:absolute;left:0;right:0;top:82px;background:#fff;flex-direction:column;align-items:stretch;padding:18px 30px;border-bottom:1px solid #d9d7d0;max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px);overflow:auto}.links.open a{padding:13px 16px;min-height:44px}.links.open .booking-open{text-align:left}}
@media(max-width:650px){.links.open{top:68px}.booking-dialog{right:max(8px,env(safe-area-inset-right));width:calc(100vw - 16px - env(safe-area-inset-left) - env(safe-area-inset-right));bottom:calc(max(16px,env(safe-area-inset-bottom)) + 68px);height:min(600px,calc(100vh - 116px));height:min(600px,calc(100dvh - 116px - env(safe-area-inset-bottom)))}.booking-body{padding:10px 12px 14px}.booking-heading{padding:8px 12px}}
