/*
 * P114 booking availability calendar. Structure only: colours, type and radius come from each theme's own
 * tokens (--brand, --ink, --muted, --paper, --line, --body) and from the --p114cal-* values the themes set in
 * their stylesheets. Logical properties keep it correct in RTL (Arabic, Urdu).
 */
.p114cal-host{position:relative}
.p114cal-input{padding-inline-end:3.25rem!important}
.p114cal-input::-webkit-calendar-picker-indicator{display:none}
.p114cal-input.is-touch{cursor:pointer;background-color:var(--p114cal-field-bg,#fff)}
.p114cal-trigger{position:absolute;inset-inline-end:2px;display:inline-flex;align-items:center;justify-content:center;width:48px;min-height:40px;margin:0;padding:0;border:0;border-radius:var(--p114cal-radius,12px);background:transparent;color:var(--p114cal-accent,var(--brand,#0b6b4d));cursor:pointer;z-index:1}
.p114cal-trigger svg{width:22px;height:22px}
.p114cal-trigger:hover{background:color-mix(in srgb,var(--p114cal-accent,var(--brand,#0b6b4d)) 10%,transparent)}
.p114cal-trigger:focus-visible{outline:3px solid var(--p114cal-accent,var(--brand,#0b6b4d));outline-offset:-3px}
.p114cal-hint{margin:.4rem 0 0;font-size:.875rem;line-height:1.45;color:var(--p114cal-ink,var(--ink,#1d2523));font-weight:500}
.p114cal-hint.is-error{color:var(--p114cal-red,#b42318)}
.p114cal-hint[hidden]{display:none}

.p114cal-paused{display:flex;gap:.75rem;align-items:flex-start;margin:0 0 1rem;padding:.9rem 1rem;border:1px solid #ecd28a;border-inline-start:4px solid #c08a00;border-radius:var(--p114cal-radius,12px);background:#fff8e2;color:#3d3104;font-family:var(--p114cal-font,var(--body,inherit))}
.p114cal-paused svg{flex:0 0 22px;width:22px;height:22px;margin-top:.1rem;color:#8a6400}
.p114cal-paused p{margin:0;font-size:1rem;line-height:1.5;font-weight:600}
.p114cal-paused:focus{outline:3px solid #8a6400;outline-offset:2px}
[data-p114-booking-paused]~* [type=submit]:disabled,form [type=submit]:disabled[aria-describedby*="p114cal-paused"]{opacity:.55;cursor:not-allowed}

.p114cal{position:fixed;z-index:100000;box-sizing:border-box;width:min(392px,calc(100vw - 16px));max-height:calc(100vh - 16px);overflow:auto;padding:1rem 1rem .75rem;border:1px solid var(--p114cal-line,var(--line,#dde3df));border-radius:calc(var(--p114cal-radius,12px) + 6px);background:var(--p114cal-surface,#fff);color:var(--p114cal-ink,var(--ink,#1d2523));box-shadow:0 24px 64px rgba(10,20,18,.22);font-family:var(--p114cal-font,var(--body,inherit));font-size:1rem;line-height:1.4;text-align:start}
.p114cal[hidden],.p114cal-backdrop[hidden]{display:none}
.p114cal *,.p114cal *::before,.p114cal *::after{box-sizing:border-box}
.p114cal.is-sheet{width:100vw;max-height:88vh;border-radius:20px 20px 0 0;padding-bottom:calc(.75rem + env(safe-area-inset-bottom,0px))}
.p114cal-backdrop{position:fixed;inset:0;z-index:99999;background:rgba(12,18,17,.45)}
.p114cal__head{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:.25rem;margin-bottom:.5rem}
.p114cal__titles{text-align:center}
.p114cal__eyebrow{margin:0;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--p114cal-muted,var(--muted,#5f6b67))}
.p114cal__title{margin:0;font-family:inherit;font-size:1.125rem;font-weight:700;letter-spacing:0;line-height:1.3;color:inherit}
.p114cal__nav,.p114cal__close{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;margin:0;padding:0 .9rem;border:1px solid var(--p114cal-line,var(--line,#dde3df));border-radius:var(--p114cal-radius,12px);background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer}
.p114cal__nav{padding:0}
.p114cal__nav svg{width:22px;height:22px}
[dir=rtl] .p114cal__nav svg{transform:scaleX(-1)}
.p114cal__nav:disabled{opacity:.35;cursor:not-allowed}
.p114cal__nav:focus-visible,.p114cal__close:focus-visible{outline:3px solid var(--p114cal-accent,var(--brand,#0b6b4d));outline-offset:2px}
.p114cal__grid{width:100%;border-collapse:separate;border-spacing:2px;table-layout:fixed;margin:0}
.p114cal__grid th{padding:.25rem 0;font-size:.8125rem;font-weight:600;text-align:center;color:var(--p114cal-muted,var(--muted,#5f6b67))}
.p114cal__grid td{padding:0;border:0}
.p114cal__day{position:relative;height:min(48px,calc((100vw - 48px)/7));text-align:center;vertical-align:middle;border-radius:var(--p114cal-radius,12px);cursor:pointer;font-variant-numeric:tabular-nums;font-weight:600;color:inherit;background:var(--p114cal-day-bg,transparent)}
.p114cal__day:hover{background:color-mix(in srgb,var(--p114cal-accent,var(--brand,#0b6b4d)) 10%,transparent)}
.p114cal__day:focus{outline:none}
.p114cal__day:focus-visible,.p114cal__day:focus{box-shadow:0 0 0 3px var(--p114cal-surface,#fff),0 0 0 5px var(--p114cal-accent,var(--brand,#0b6b4d))}
.p114cal__day.is-today .p114cal__num{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.p114cal__day[aria-selected=true]{background:var(--p114cal-accent,var(--brand,#0b6b4d));color:var(--p114cal-accent-ink,#fff)}
/* Not bookable online: red overlay, diagonal hatching and a struck-through number (never colour alone). */
.p114cal__day.is-unavailable{cursor:not-allowed;color:var(--p114cal-red-ink,#8f1d14);background:var(--p114cal-red-soft,#fdeceb) repeating-linear-gradient(135deg,transparent 0 6px,rgba(180,35,24,.16) 6px 8px)}
.p114cal__day.is-unavailable .p114cal__num{text-decoration:line-through;text-decoration-thickness:1.5px}
.p114cal__day.is-unavailable:hover{background-color:#fadad7}
.p114cal__day.is-past{color:var(--p114cal-muted,var(--muted,#6b7572));background:transparent;opacity:.6}
.p114cal__day.is-past .p114cal__num{text-decoration:none}
.p114cal__mark{position:absolute;inset-block-end:5px;inset-inline-start:50%;width:6px;height:6px;margin-inline-start:-3px;border-radius:50%;background:var(--p114cal-red,#b42318)}
.p114cal__day.is-limited .p114cal__mark{background:var(--p114cal-amber,#a15c00)}
.p114cal__day[aria-selected=true] .p114cal__mark{background:currentColor}
.p114cal__day.is-past .p114cal__mark{display:none}
.p114cal__pad{visibility:hidden}
.p114cal__info{min-height:2.9em;margin:.5rem 0 .25rem;padding:.5rem .75rem;border-radius:var(--p114cal-radius,12px);background:var(--p114cal-soft,#f3f6f4);font-size:.9375rem;line-height:1.45}
.p114cal__info.is-unavailable{background:var(--p114cal-red-soft,#fdeceb);color:var(--p114cal-red-ink,#8f1d14)}
.p114cal__legend{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin:.5rem 0;padding:0;list-style:none;font-size:.8125rem;color:var(--p114cal-muted,var(--muted,#5f6b67))}
.p114cal__legend li{display:inline-flex;align-items:center;gap:.4rem;margin:0}
.p114cal__swatch{display:inline-block;width:16px;height:16px;border-radius:5px;border:1px solid var(--p114cal-line,var(--line,#dde3df))}
.p114cal__legend .is-unavailable .p114cal__swatch{border-color:#e9b4ae;background:#fdeceb repeating-linear-gradient(135deg,transparent 0 4px,rgba(180,35,24,.3) 4px 6px)}
.p114cal__legend .is-limited .p114cal__swatch{position:relative}
.p114cal__legend .is-limited .p114cal__swatch::after{content:"";position:absolute;inset-block-end:2px;inset-inline-start:4px;width:6px;height:6px;border-radius:50%;background:var(--p114cal-amber,#a15c00)}
.p114cal__foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.25rem}
.p114cal__tz{margin:0;font-size:.8125rem;color:var(--p114cal-muted,var(--muted,#5f6b67))}
.p114cal__sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
@media (forced-colors:active){.p114cal__day.is-unavailable{background:none;color:GrayText}.p114cal__day[aria-selected=true]{forced-color-adjust:none;background:Highlight;color:HighlightText}}
