body.booking-open{overflow:hidden}
.booking-dialog{padding:0;border:1px solid #ffffff80;border-radius:26px;width:960px;max-width:calc(100vw - 40px);height:760px;max-height:calc(100dvh - 48px);color:var(--ink);background:#fff;box-shadow:0 35px 110px #09241d50;overflow:hidden}
.booking-dialog::backdrop{background:#0c29256b;backdrop-filter:blur(8px)}
.booking-dialog[open]{animation:booking-appear .2s ease-out}
@keyframes booking-appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.booking-dialog-grid{display:grid;grid-template-columns:280px minmax(0,1fr);height:100%;min-height:0}
.booking-close{position:absolute;top:15px;right:15px;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:#ffffffeb;color:var(--ink);z-index:3}
.booking-close:hover{background:var(--mint)}
.booking-person{position:relative;background:var(--ink);color:white;overflow:hidden}
.booking-person>img{height:100%;width:100%;object-fit:cover;object-position:50% 35%}
.booking-person:after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#12352ef2);pointer-events:none}
.booking-person>div{position:absolute;bottom:30px;left:26px;right:20px;z-index:1}
.booking-person-label{display:inline-flex;border:1px solid #ffffff50;border-radius:99px;padding:4px 9px;font-size:9px;margin-bottom:17px}
.booking-person h3{font-size:29px;margin-bottom:7px}
.booking-person p{font-size:11px;color:#e0ece6;margin:0}
.booking-content{overflow-y:auto;overscroll-behavior:contain;padding:42px 40px 28px;scrollbar-width:thin;background:linear-gradient(145deg,#fff 55%,#f0f7f2)}
.booking-content>.eyebrow{margin-bottom:17px;padding-right:35px;font-size:9px}
.booking-content>h2{font-size:39px;margin-bottom:17px;outline:none}
.booking-content>p{font-size:12px;line-height:1.85;max-width:460px;margin-bottom:26px}
.booking-date-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.booking-date-heading h3{font:500 12px/1.5 Inter,Arial,sans-serif;letter-spacing:0;margin:0}
.booking-date-heading>span{font-size:10px;color:var(--muted)}
.booking-date-nav{display:flex;align-items:center;gap:8px;margin-bottom:20px}
.booking-date-arrow{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border:0;background:transparent;color:var(--ink);font-size:18px;border-radius:8px}
.booking-date-arrow:disabled{opacity:.25;cursor:default}
.booking-dates{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding:5px 3px 8px;min-width:0;flex:1;scroll-snap-type:x proximity}
.booking-day{flex:1 0 50px;display:flex;align-items:center;flex-direction:column;gap:3px;min-height:65px;padding:9px 7px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);scroll-snap-align:start}
.booking-day span{font-size:9px;text-transform:uppercase;letter-spacing:.06em}
.booking-day strong{font-size:18px;font-weight:500;line-height:1.3}
.booking-day[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.booking-day:hover:not([aria-pressed="true"]){background:var(--paper);border-color:var(--teal)}
.booking-timezone{font-size:10px!important;margin:0 0 13px!important;color:var(--muted)}
.booking-status{font-size:12px;line-height:1.8;margin:0;padding:18px 16px;background:var(--paper);border-radius:12px}
.booking-status:empty{display:none}
.booking-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:3px}
.booking-slot{background:white;border:1px solid var(--line);border-radius:10px;min-height:44px;color:var(--ink);font-size:12px;transition:background .15s,border-color .15s}
.booking-slot:hover{background:var(--mint);border-color:var(--teal)}
.booking-direct{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:25px;padding-top:20px;border-top:1px solid var(--line);font-size:10px}
.booking-direct>span{color:var(--muted)}
.booking-direct a{font-size:11px;border-bottom:1px solid var(--line)}
.booking-direct a:hover{color:var(--teal)}
.booking-text-button{border:0;padding:8px 0;background:transparent;color:var(--teal);font-size:11px;min-height:44px;display:block}
.booking-text-button:hover{text-decoration:underline}
#booking-form{margin:0}
#booking-form input,#booking-form textarea{font-size:16px}
#booking-form label{margin-bottom:15px}
#booking-form .form-row{gap:14px}
.booking-selection{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:13px 16px;font-size:12px;line-height:1.8;color:var(--ink);margin:6px 0 22px}
.booking-optional{font-weight:400;color:var(--muted)}
.booking-privacy{font-size:10px;line-height:1.7;margin:0 0 18px}
.booking-submit{width:100%;padding:16px 23px;justify-content:space-between}
.booking-error{font-size:12px;color:#8b302b;background:#fff2ef;padding:12px;border-radius:9px;margin-bottom:16px}
.booking-success{padding-block:12px}
.booking-success-icon{width:55px;height:55px;display:grid;place-items:center;border-radius:50%;background:var(--mint);color:var(--ink);font-size:25px;margin-bottom:22px}
.booking-success h3{font-size:28px;outline:none}
.booking-success p{font-size:12px;line-height:1.8}
.booking-success .button{margin-bottom:15px;padding:14px 20px}
@media(max-width:700px){.booking-dialog{width:560px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);height:820px;border-radius:20px}.booking-dialog-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:108px minmax(0,1fr)}.booking-person{display:flex;align-items:center;gap:17px;padding:18px 22px}.booking-person:after{display:none}.booking-person>img{width:66px;height:72px;border-radius:12px;object-position:50% 37%;flex-shrink:0}.booking-person>div{position:static;min-width:0;padding-right:35px}.booking-person-label{border:0;padding:0;font-size:8px;margin-bottom:6px;color:var(--mint)}.booking-person h3{font-size:23px;margin-bottom:3px}.booking-person p{font-size:9px}.booking-close{top:12px;right:12px;width:44px;height:44px}.booking-content{padding:26px 22px}.booking-content>h2{font-size:34px}.booking-content>h2 br{display:none}.booking-content>.eyebrow{font-size:8px;margin-bottom:13px}.booking-content>p{font-size:12px;margin-bottom:22px}.booking-day{flex-basis:49px}.booking-direct{gap:10px 14px}.booking-direct>span{width:100%}.booking-slots{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-date-arrow{width:44px}.booking-date-nav{gap:4px}.booking-date-heading>span{font-size:9px}.booking-timezone{font-size:9px!important}#booking-form input,#booking-form textarea{font-size:16px}#booking-form .form-row{grid-template-columns:1fr;gap:0}}
@media(prefers-reduced-motion:reduce){.booking-dialog[open]{animation:none}.booking-dates{scroll-behavior:auto}}
