html.booking-open,body.booking-open{overflow:hidden}
#booking{position:fixed;inset:0;width:min(640px,calc(100% - 48px));max-width:none;max-height:calc(100dvh - 40px);margin:auto;padding:20px 24px;border:1px solid #e4e4e7;border-radius:16px;background:#fff;color:var(--ink);font-family:Arial,sans-serif;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;box-shadow:0 24px 80px #1720191c,0 2px 12px #17201908}
#booking:not([open]){display:none}
/* Keep the same iframe laid out and loading while the modal is closed. */
#booking[data-booking-preload]:not([open]){display:block;inset:0 auto auto 0;margin:0;opacity:0;pointer-events:none}
#booking[open]{animation:booking-enter .18s ease-out both}
#booking::backdrop{background:#fff9;backdrop-filter:blur(5px)}
#booking-close{position:absolute;top:12px;right:12px;z-index:3;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#f5f5f7;color:var(--muted);cursor:pointer}
#booking-close:hover{background:#f3f3ef}
#booking :is(button,a,input,select):focus-visible{outline:1px solid var(--ink);outline-offset:3px}
#booking-title:focus{outline:none}
.booking-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}
.booking-layout{display:grid;grid-template-columns:minmax(0,1fr);min-width:0}
.booking-intro{min-width:0;padding:24px 16px 16px;text-align:center}
#booking-title{max-width:22em;margin:0 auto;font:400 25px/1.2 var(--serif);letter-spacing:-.5px;color:var(--ink)}
.booking-lead{max-width:48em;margin:8px auto 0;font:13px/1.5 Arial,sans-serif}
.booking-note{max-width:43em;margin:8px auto 0;font:12px/1.65 Arial,sans-serif;color:var(--muted)}
.booking-duration{margin:12px auto 0;font:12px/1.5 Arial,sans-serif;color:var(--ink)}
.booking-scheduler{min-width:0;padding:12px 0 0;border-top:1px solid var(--line);background:#fff;text-align:center}
#booking-calendar-title{margin:0;font:600 13px/1.5 Arial,sans-serif;letter-spacing:0;color:var(--ink)}
#booking-status{min-height:18px;margin:4px 0 8px;color:var(--muted);font:12px/1.5 Arial,sans-serif}
#booking-status:empty{min-height:0;margin:0}
#booking-calendar{width:100%;min-width:0;height:560px;margin-top:8px;background:#fff;text-align:left}
/* Calendly has a fixed blue keyboard ring; keep every embedded state neutral. */
#booking-calendar iframe{display:block;width:100%;min-width:0!important;height:100%;border:0;filter:grayscale(1)}
#booking-fallback{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;margin-top:0;padding:0 4px;color:var(--muted);font:12px/1.5 Arial,sans-serif;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
#booking-fallback .booking-icon{width:14px;height:14px}
#booking-fallback:hover{color:var(--ink)}
#booking[data-booking-state=error] #booking-calendar{display:none}
#booking[data-booking-state=error] .booking-scheduler{min-height:180px}
#booking[data-booking-state=error] #booking-status{max-width:34em;margin:12px auto;color:var(--ink);font-size:13px}
@keyframes booking-enter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:650px){#booking{width:calc(100% - 20px);max-height:calc(100dvh - 20px);padding:16px;border-radius:16px}#booking-close{top:7px;right:7px}.booking-intro{padding-top:36px;padding-bottom:14px}#booking-title{font-size:21px}.booking-lead{font-size:12px}.booking-note{font-size:11px}.booking-scheduler{padding-top:10px}}
@media(max-width:380px){#booking{width:100%;max-height:100dvh;padding:12px 0;margin:0;border-radius:0}.booking-intro{padding-inline:18px}.booking-scheduler{padding-inline:0}#booking-status{padding-inline:18px}}
@media(prefers-reduced-motion:reduce){#booking,#booking[open]{animation:none;scroll-behavior:auto}}
