/* Rounded monochrome booking controls, using the site's existing typefaces. */
.ag-booking-picker{position:relative;min-width:0;container-type:inline-size}
.ag-booking-label{display:block;margin-bottom:10px;font:400 14px/1.5 var(--sans)}
.ag-booking-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0 16px;border:0;border-bottom:1px solid #b1b3aa;background:transparent;color:#161616;font:400 16px/1.5 var(--sans);cursor:pointer;text-align:left}
.ag-booking-toggle svg{flex:0 0 20px;width:20px;height:20px}
.ag-booking-toggle:focus-visible,.ag-booking-panel button:focus-visible{outline:2px solid #111;outline-offset:3px}
.ag-booking-toggle[aria-expanded=true]{border-color:#111}
.ag-booking-panel{margin-top:16px;padding:22px;border:1px solid #deded9;border-radius:24px;background:#fff;color:#111;box-shadow:0 8px 26px #00000009}
.ag-booking-panel[hidden],.ag-booking-picker [hidden]{display:none!important}
.ag-calendar-eyebrow{display:block;font:600 9px/1.5 var(--sans);letter-spacing:.11em;color:#111}
html body[data-page] .ag-booking-picker .ag-calendar-zone{margin:7px 0 22px!important;font:400 12px/1.6 var(--sans);color:#555!important}
.ag-calendar-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}
.ag-calendar-navigation{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:15px}
html body[data-page] .ag-booking-picker .ag-calendar-title{margin:0;font:400 26px/1.1 var(--display);letter-spacing:-.02em;color:#111}
.ag-calendar-arrow{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border:1px solid #e6e6e2;border-radius:50%;background:#fff;color:#111;font:400 25px/1 var(--sans);cursor:pointer}
.ag-calendar-weekdays,.ag-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.ag-calendar-weekdays{margin-bottom:7px;text-align:center;font:500 10px/1.5 var(--sans);color:#777}
.ag-calendar-day{display:grid;place-items:center;min-width:0;height:36px;padding:0;border:1px solid transparent;border-radius:50%;background:#fff;color:#111;font:400 13px/1 var(--sans);cursor:pointer}
.ag-calendar-day[aria-current=date]{border-color:#bcbcb6}
.ag-calendar-day:not(:disabled):hover,.ag-calendar-slot:not(:disabled):hover{background:#efefec}
.ag-calendar-day[aria-pressed=true],.ag-calendar-slot[aria-pressed=true]{background:#111!important;color:#fff!important;border-color:#111}
.ag-calendar-day:disabled{color:#c5c5c0;cursor:default}
.ag-calendar-arrow:disabled{opacity:.25;cursor:default}
.ag-calendar-times{min-width:0;padding-top:18px;border-top:1px solid #eaeae6}
html body[data-page] .ag-booking-picker .ag-calendar-times h4{margin:0 0 14px;color:#111;font:500 12px/1.5 var(--sans)}
.ag-calendar-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.ag-calendar-slot{min-width:0;min-height:39px;padding:9px 3px;border:1px solid #deded8;border-radius:12px;background:#fff;color:#111;font:400 12px/1.3 var(--sans);cursor:pointer}
.ag-calendar-slot:disabled{opacity:.28;cursor:default}
html body[data-page] .ag-booking-picker .ag-calendar-hint{grid-column:1/-1;margin:0!important;color:#777!important;font:400 12px/1.6 var(--sans)}
html body[data-page] .ag-booking-picker .ag-booking-status{margin:8px 0 0!important;color:#555!important;font:400 12px/1.6 var(--sans)}
.ag-booking-status:empty{display:none}
.ag-booking-fallback{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.ag-booking-picker:not(.is-ready) .ag-booking-toggle{display:none}
html body[data-page] .ag-booking-picker.is-ready .ag-booking-fallback{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap;pointer-events:none}
@container(min-width:500px){.ag-calendar-layout{grid-template-columns:minmax(0,1fr) 170px;gap:22px}.ag-calendar-times{border-top:0;border-left:1px solid #eaeae6;padding:0 0 0 18px}.ag-calendar-slots{grid-template-columns:repeat(2,minmax(0,1fr));max-height:276px;overflow-y:auto;padding:3px;scrollbar-width:thin;scrollbar-color:#ccc transparent}.ag-calendar-slot{min-height:36px}.ag-calendar-day{height:34px}}
@media(max-width:380px){.ag-booking-panel{padding:14px;border-radius:20px}.ag-calendar-day{height:32px}.ag-calendar-slots{gap:6px}.ag-calendar-slot{font-size:11px}}

/* Readable page-colour calendar with a Start-menu-style semantic zoom. */
html body[data-page] .ag-booking-picker .ag-booking-panel{background:transparent;border:0;box-shadow:none;padding:22px 0 8px;border-radius:24px;transform-origin:50% 0;will-change:auto}
.ag-calendar-body{transform-origin:50% 35%}
.ag-calendar-eyebrow{font-size:11px;letter-spacing:.09em}
html body[data-page] .ag-booking-picker .ag-calendar-zone{font-size:14px;line-height:1.6;color:#333!important;margin-bottom:24px!important}
html body[data-page] .ag-booking-picker .ag-calendar-title{font-size:32px;line-height:1.15;min-width:0;text-align:center}
.ag-calendar-zoom-label{display:block;margin:0;padding:4px 6px;border:0;border-radius:10px;background:transparent;color:#111;font:inherit;cursor:pointer}
.ag-calendar-zoom-label::after{content:'⌄';display:inline-block;margin-left:8px;font:16px var(--sans);vertical-align:middle}
.ag-calendar-zoom-label:hover{background:#00000008}
.ag-calendar-arrow{width:40px;height:40px;flex-basis:40px;background:transparent;border-color:#bbb;font-size:30px}
.ag-calendar-weekdays{font-size:13px;font-weight:600;color:#444;margin-bottom:10px}
.ag-calendar-days{gap:4px}
.ag-calendar-day{height:46px;background:transparent;color:#111;font-size:18px;font-weight:600;border-radius:14px}
.ag-calendar-day:disabled{color:#999;opacity:.6}
.ag-calendar-day[aria-current=date]{border-color:#777}
.ag-calendar-day:not(:disabled):hover,.ag-calendar-slot:not(:disabled):hover{background:#00000009}
.ag-calendar-times{border-color:#bdbdb6}
html body[data-page] .ag-booking-picker .ag-calendar-times h4{font-size:16px;font-weight:500;margin-bottom:16px}
.ag-calendar-slot{min-height:46px;background:transparent;border-color:#aaa;font-size:16px;font-weight:500;border-radius:14px}
html body[data-page] .ag-booking-picker .ag-calendar-hint,html body[data-page] .ag-booking-picker .ag-booking-status{font-size:14px;color:#444!important}
.ag-calendar-months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;min-height:278px}
.ag-calendar-month-choice{min-width:0;min-height:58px;border:1px solid transparent;border-radius:16px;background:transparent;color:#111;font:500 18px/1.3 var(--sans);cursor:pointer}
.ag-calendar-month-choice:hover{background:#00000009}
.ag-calendar-month-choice[aria-pressed=true]{background:#111;color:#fff}
.ag-calendar-month-choice:disabled{color:#999;opacity:.6;cursor:default}
@container(min-width:500px){.ag-calendar-layout{grid-template-columns:minmax(0,1fr) 190px;gap:22px}.ag-calendar-times{padding-left:20px}.ag-calendar-slots{max-height:354px;gap:9px}.ag-calendar-day{height:44px}.ag-calendar-slot{min-height:44px}}
@container(max-width:499px){html body[data-page] .ag-booking-picker .ag-calendar-title{font-size:28px}.ag-calendar-slots{gap:9px}.ag-calendar-months{min-height:300px}}
@media(max-width:380px){html body[data-page] .ag-booking-picker .ag-calendar-title{font-size:24px}.ag-calendar-arrow{width:34px;height:34px;flex-basis:34px}.ag-calendar-navigation{gap:4px}.ag-calendar-day{font-size:17px;height:42px}.ag-calendar-slot{font-size:15px}.ag-calendar-weekdays{font-size:12px}}
@media(prefers-reduced-motion:reduce){.ag-booking-panel,.ag-calendar-body{transform:none!important;filter:none!important}}
