/* The page stays within the viewport; tall booking steps scroll inside the calendar. */
.booking-document{height:100%;overflow:hidden;scroll-padding-top:0}
.booking-page{--surface:#fff;background:#fff;height:100svh;height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column;color:#17181c}
.booking-header{width:min(1120px,calc(100% - 80px));margin-inline:auto;display:flex;align-items:center;justify-content:space-between;min-height:68px;flex:none;gap:24px}
.booking-brand{display:block;width:133px;height:49px}.booking-brand img{width:100%;height:100%;object-fit:contain}
.booking-back{font-size:13px;font-weight:550;color:#30343b;min-height:42px;padding:0 17px;border:1px solid #d8dde4;border-radius:11px;background:#fff;display:flex;align-items:center;justify-content:center}.booking-back:hover{color:#17181c;background:#f6f7f9;border-color:#b8c1ce}.booking-back:focus-visible{outline:2px solid #17181c;outline-offset:4px}
.booking-main{width:min(1120px,calc(100% - 80px));margin:10px auto 20px;flex:1;min-height:0;display:flex;flex-direction:column}
.booking-intro{text-align:center;margin:0 auto 42px;flex:none}
.booking-intro h1{font-size:clamp(34px,3.5vw,49px);font-weight:450;line-height:1.14;letter-spacing:-.035em}
.booking-calendar{position:relative;width:min(100%,1000px);margin:0 auto;flex:1;min-height:0;max-height:680px;border:1px solid #e5e7eb;border-radius:20px;overflow:hidden;background:#fff}
#pinpoint-calendar{width:100%;height:100%;overflow:auto;overscroll-behavior:contain}
/* Constrain the provider's auto-height frame so keyboard focus scrolls its own document. */
#pinpoint-calendar iframe{max-height:100%}
.booking-feedback{position:absolute;z-index:1;top:28px;left:24px;right:24px;padding:16px;text-align:center;font-size:14px;line-height:1.6;color:#626671;background:#fff;border-radius:10px}
.booking-feedback a{display:inline-block;margin-top:8px;color:#30343b;font-weight:550;text-decoration:underline;text-underline-offset:4px}
@media(max-width:760px){.booking-header,.booking-main{width:calc(100% - 40px)}.booking-main{margin-top:12px;margin-bottom:16px}.booking-intro{margin-bottom:36px}.booking-intro h1{max-width:480px;margin:auto;font-size:36px}.booking-calendar{border-radius:16px}}
@media(max-width:480px){.booking-header,.booking-main{width:calc(100% - 32px)}.booking-brand{width:121px;height:45px}.booking-back{font-size:12px}.booking-main{margin-top:12px}.booking-intro h1{font-size:34px;max-width:330px}}
@media(max-width:360px){.booking-intro h1{font-size:31px}.booking-calendar{border-radius:12px}}
@media(min-width:1000px) and (max-height:800px){.booking-header{min-height:64px}.booking-main{margin-top:6px;margin-bottom:16px}.booking-intro{margin-bottom:38px}.booking-intro h1{font-size:40px}}
@media(max-height:540px){.booking-header{min-height:56px}.booking-brand{height:40px}.booking-main{margin-top:0;margin-bottom:8px}.booking-intro{margin-bottom:20px}.booking-intro h1{font-size:28px}}
@media(forced-colors:active){.booking-calendar{border:1px solid CanvasText}.booking-page{background:Canvas;color:CanvasText}}
