/* Booking-only styles; the scheduler supplies real availability inside its frame. */
.booking-dialog{width:min(1120px,calc(100% - 40px));max-width:none;max-height:94vh;max-height:94svh;padding:0;border:2px solid var(--deep,#172c24);border-radius:8px;background:var(--cream,#f5f2e9);color:var(--deep,#172c24);overflow:auto;overscroll-behavior:contain;box-shadow:0 30px 120px #081a1b66}
.booking-dialog::backdrop{background:#10261ac9;backdrop-filter:blur(7px)}
.booking-header{position:relative;padding:35px 48px 27px;border-bottom:1px solid #b8c4a8;background:#f8f5ed}
.booking-close{position:absolute;right:16px;top:14px;width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid #7a8d69;border-radius:4px;background:#fffdf5;color:var(--deep,#172c24);font:30px/1 Arial,sans-serif;z-index:2}
.booking-close:hover{background:var(--acid,#e5ff70)}
.booking-eyebrow{font:700 9px/1.6 var(--sans,Arial,sans-serif);letter-spacing:1.6px;padding-right:40px}
.booking-dialog .booking-title{font:400 clamp(35px,4vw,54px)/1.04 var(--serif,Georgia,serif);letter-spacing:-1.8px;max-width:800px;margin:14px 0 15px;padding-right:15px}
.booking-description{max-width:650px;font-size:13px;line-height:1.8;color:#4d624f}
.booking-details{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
.booking-details>span{padding:5px 10px;background:#e5efcf;border:1px solid #adbd94;border-radius:3px;font-size:10px;font-weight:700;line-height:1.5}
.booking-body{padding:28px 36px 32px;min-height:280px}
.booking-state{padding:24px 12px 34px;max-width:650px;margin:auto;text-align:center}
.booking-state-mark{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 22px;background:var(--acid,#e5ff70);border:2px solid var(--deep,#172c24);border-radius:5px;box-shadow:0 4px 0 var(--deep,#172c24);font:31px/1 Arial,sans-serif}
.booking-state h3{font:400 clamp(29px,3vw,39px)/1.08 var(--serif,Georgia,serif);letter-spacing:-.8px;margin:0 0 17px}
.booking-state>p{font-size:13px;line-height:1.85;color:#4b604d;max-width:480px;margin:0 auto}
.booking-actions{display:flex;align-items:stretch;justify-content:center;flex-wrap:wrap;gap:17px;margin-top:28px}
.booking-action{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:12px 19px;border:2px solid var(--deep,#172c24);border-radius:3px;font-size:12px;font-weight:700;line-height:1.5;transition:transform .2s,background .2s,box-shadow .2s}
.booking-action-primary{background:var(--acid,#e5ff70);color:var(--deep,#172c24);box-shadow:0 4px 0 var(--deep,#172c24)}
.booking-action-primary:hover{background:var(--coral,#ff8469);transform:translateY(-2px);box-shadow:0 6px 0 var(--deep,#172c24)}
.booking-action-secondary{background:#fffdf5;color:var(--deep,#172c24)}
.booking-action-secondary:hover{background:#e8f0d4}
.booking-dialog button:focus-visible,.booking-dialog a:focus-visible{outline:3px solid #ab351a;outline-offset:4px}
.booking-spinner{display:block;width:32px;height:32px;margin:15px auto 26px;border:3px solid #c4cfb7;border-top-color:var(--deep,#172c24);border-radius:50%;animation:booking-spin .8s linear infinite}
@keyframes booking-spin{to{transform:rotate(360deg)}}
.booking-calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:12px}
.booking-calendar-toolbar p{font-size:12px;line-height:1.7;max-width:480px;color:#435b45}
.booking-external{display:inline-flex;align-items:center;min-height:44px;padding:9px 12px;border:1px solid #546f45;border-radius:3px;background:#e8f0d4;font-size:11px;font-weight:700;line-height:1.6;white-space:nowrap}
.booking-external:hover{background:var(--acid,#e5ff70)}
.booking-frame-status{font-size:10px;line-height:1.7;color:#52664e;margin:0 0 13px}
.booking-frame{display:block;width:100%;height:700px;border:1px solid #c6d0ba;border-radius:5px;background:#fff;max-width:100%;color-scheme:light}
.booking-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body.booking-open{overflow:hidden}
@media(max-width:760px){.booking-dialog{width:calc(100% - 20px);max-height:96vh;max-height:96svh;border-radius:6px}.booking-header{padding:30px 22px 23px}.booking-close{right:10px;top:10px;width:42px;height:42px}.booking-eyebrow{font-size:8px;letter-spacing:1.2px;max-width:250px}.booking-dialog .booking-title{font-size:38px;letter-spacing:-1.3px;margin:17px 0 14px;padding:0;max-width:470px}.booking-description{font-size:12px}.booking-details{gap:7px;margin-top:16px}.booking-details>span{font-size:9px;padding:5px 8px}.booking-body{padding:22px 14px 25px;min-height:275px}.booking-state{padding:22px 9px 28px}.booking-state h3{font-size:32px}.booking-state>p{font-size:12px}.booking-actions{display:grid;gap:14px;margin-top:25px}.booking-action{min-height:53px;font-size:12px;padding:12px 15px}.booking-calendar-toolbar{display:block;padding:0 4px}.booking-calendar-toolbar p{font-size:11px}.booking-external{margin-top:13px;white-space:normal;font-size:10px}.booking-frame-status{font-size:9px;padding:0 4px;margin-top:13px}.booking-frame{height:76svh;min-height:600px}.booking-state-mark{margin-bottom:20px}}
@media(max-width:370px){.booking-header{padding-left:18px;padding-right:18px}.booking-dialog .booking-title{font-size:34px}.booking-eyebrow{font-size:7px}.booking-body{padding-left:10px;padding-right:10px}.booking-state h3{font-size:29px}.booking-action{font-size:11px}}
@media(prefers-reduced-motion:reduce){.booking-spinner{animation:none}.booking-action{transition:none}.booking-action-primary:hover{transform:none}}
.motion-paused .booking-spinner{animation:none}.motion-paused .booking-action-primary:hover{transform:none}
.booking-state>.booking-manual-note{margin-top:24px;font-size:11px;line-height:1.7;max-width:380px}
