/* Voyara date picker (assets/js/datepicker.js) */

/* The browser field stays in the form, hidden; the text field in its place keeps the
   widget's own field styles, because it copies the classes. */
.vy-dp-src{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;border:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;opacity:0!important;pointer-events:none!important}
.vy-dp-alt{cursor:pointer;caret-color:transparent;text-overflow:ellipsis}
.vy-dp-alt::placeholder{color:var(--vy-muted,#5C6664);opacity:1}
.vy-sf__pair .vy-dp-alt{flex:1 1 auto;min-width:0}

.vy-dp{position:fixed;z-index:100050;padding:20px 22px 16px;background:var(--vy-bg,#fff);border-radius:20px;box-shadow:0 18px 50px rgba(21,32,31,.18),0 0 0 1px rgba(21,32,31,.06);font:400 14px/1.3 var(--vy-font-body,Jost,sans-serif);color:var(--vy-ink,#15201F);animation:vy-dp-in .18s ease}
.vy-dp[hidden]{display:none}
@keyframes vy-dp-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.vy-dp__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.vy-dp__title{font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--vy-muted,#5C6664)}
.vy-dp__x{display:none;width:40px;height:40px;border:0;border-radius:999px;background:var(--vy-sand,#F3EEE4);color:var(--vy-ink,#15201F);align-items:center;justify-content:center;cursor:pointer}
.vy-dp__months{display:flex;gap:32px}
.vy-dp__month{width:288px}
.vy-dp__head{display:flex;align-items:center;justify-content:space-between;height:44px;margin-bottom:4px}
.vy-dp__mtitle{font:400 18px/1 var(--vy-font-heading,Marcellus,Georgia,serif);color:var(--vy-ink,#15201F)}
.vy-dp__nav,.vy-dp__nav-gap{width:36px;height:36px;flex:0 0 auto;transition:border-color .2s ease}
.vy-dp__nav{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--vy-line,#E6E1D8);border-radius:999px;background:var(--vy-bg,#fff);color:var(--vy-ink,#15201F);cursor:pointer}
.vy-dp__nav:hover:not([disabled]){border-color:var(--vy-ink,#15201F)}
.vy-dp__nav[disabled]{opacity:.35;cursor:default}
.vy-dp__row{display:grid;grid-template-columns:repeat(7,1fr)}
.vy-dp__dow span{display:flex;align-items:center;justify-content:center;height:30px;font-size:12px;color:var(--vy-muted,#5C6664)}
.vy-dp__row>span{position:relative;display:flex;justify-content:center;padding:2px 0}
.vy-dp__day{position:relative;z-index:1;width:40px;height:40px;border:0;border-radius:999px;background:none;font:500 14px/1 var(--vy-font-body,Jost,sans-serif);color:var(--vy-ink,#15201F);cursor:pointer;transition:box-shadow .2s ease}
.vy-dp__day:hover:not([disabled]){box-shadow:inset 0 0 0 1.5px var(--vy-ink,#15201F)}
.vy-dp__day:focus-visible{outline:2px solid var(--vy-accent,#C9962B);outline-offset:2px}
.vy-dp__day[disabled]{color:#B9B3A9;text-decoration:line-through;cursor:default}
.vy-dp__day.is-today::after{content:"";position:absolute;left:50%;bottom:6px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:currentColor}
/* The nights in between: a sand band behind the days, joined across the row. */
.vy-dp__row>span:has(.is-in),.vy-dp__row>span:has(.is-preview){background:var(--vy-sand,#F3EEE4)}
.vy-dp__months:has(.is-end,.is-preview) .vy-dp__row>span:has(.is-start):not(:has(.is-end)){background:linear-gradient(90deg,transparent 50%,var(--vy-sand,#F3EEE4) 50%)}
.vy-dp__row>span:has(.is-end):not(:has(.is-start)){background:linear-gradient(90deg,var(--vy-sand,#F3EEE4) 50%,transparent 50%)}
.vy-dp__day.is-start,.vy-dp__day.is-end{background:var(--vy-main,#0E3B36);color:var(--vy-on-main,#fff);transition:box-shadow .2s ease}
.vy-dp__day.is-start:hover,.vy-dp__day.is-end:hover{box-shadow:none}
.vy-dp__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--vy-line,#E6E1D8)}
.vy-dp__sum{font-size:14px;color:var(--vy-ink-2,#2C3534)}
.vy-dp__btns{display:flex;align-items:center;gap:6px;margin-left:auto}
.vy-dp__clear{border:0;background:none;padding:8px 10px;font:500 14px var(--vy-font-body,Jost,sans-serif);color:var(--vy-ink,#15201F);text-decoration:underline;cursor:pointer}
.vy-dp__done{height:40px;padding:0 18px;border:0;border-radius:999px;background:var(--vy-main,#0E3B36);color:var(--vy-on-main,#fff);font:500 14px var(--vy-font-body,Jost,sans-serif);cursor:pointer}
.vy-dp__clear:focus-visible,.vy-dp__done:focus-visible,.vy-dp__nav:focus-visible,.vy-dp__x:focus-visible{outline:2px solid var(--vy-accent,#C9962B);outline-offset:2px}
/* The field that the next pick fills. */
.vy-dp-on{box-shadow:0 0 0 2px var(--vy-main,#0E3B36)!important}
/* Inside a field box the box shows the focus, not the text field. */
.vy-dp-alt:focus{outline:none}
.vy-dp-alt:focus-visible{outline:2px solid var(--vy-accent,#C9962B);outline-offset:2px}
.vy-sf__field .vy-dp-alt:focus-visible,.vy-book__field .vy-dp-alt:focus-visible,.vy-sbar__f .vy-dp-alt:focus-visible{outline:none}
.vy-sf__field:has(.vy-dp-alt:focus-visible),.vy-book__field:has(.vy-dp-alt:focus-visible),.vy-sbar__f:has(.vy-dp-alt:focus-visible){box-shadow:0 0 0 2px var(--vy-main,#0E3B36)}

/* Phones: a bottom sheet over a dimmed page. */
.vy-dp-veil{position:fixed;inset:0;z-index:100049;background:rgba(21,32,31,.45)}
.vy-dp-veil[hidden]{display:none}
.vy-dp.is-sheet{left:0;right:0;bottom:0;top:auto;max-height:88vh;overflow-y:auto;padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;animation-name:vy-dp-up}
@keyframes vy-dp-up{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
.vy-dp.is-sheet .vy-dp__x{display:inline-flex}
.vy-dp.is-sheet .vy-dp__months{display:block}
.vy-dp.is-sheet .vy-dp__month{width:auto}
.vy-dp.is-sheet .vy-dp__day{width:100%;max-width:48px;height:44px}
.vy-dp.is-sheet .vy-dp__foot{position:sticky;bottom:0;background:var(--vy-bg,#fff);flex-wrap:wrap}
.vy-dp.is-sheet .vy-dp__done{height:48px;padding:0 24px}
html.vy-dp-open{overflow:hidden}
@media (prefers-reduced-motion:reduce){.vy-dp{animation:none}}

/* Voyara time picker (assets/js/timepicker.js): a button in place of the browser time
   field, and a grid of times grouped by part of the day. */
.vy-tp-src{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;border:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;opacity:0!important;pointer-events:none!important}
.vy-tp-alt{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;-webkit-appearance:none;appearance:none;margin:0;padding:0;border:0;background:none;color:inherit;text-align:right;white-space:nowrap;cursor:pointer;transition:color .2s ease}
.vy-sf .vy-tp-alt.vy-sf__time{width:auto;min-width:64px}
.vy-tp-alt__icon{flex:0 0 auto;color:var(--vy-muted,#5C6664);transition:transform .2s ease}
.vy-tp-alt[aria-expanded=true] .vy-tp-alt__icon{transform:rotate(180deg)}
.vy-tp-alt:hover{color:var(--vy-main,#0E3B36)}
.vy-tp-alt:focus{outline:none}
.vy-tp-alt:focus-visible{outline:2px solid var(--vy-accent,#C9962B);outline-offset:2px;border-radius:6px}
.vy-sf__field:has(.vy-tp-alt[aria-expanded=true]){box-shadow:0 0 0 2px var(--vy-main,#0E3B36)}

.vy-tp{position:fixed;z-index:100050;display:flex;flex-direction:column;width:344px;max-height:min(440px,70vh);padding:16px 16px 12px;background:var(--vy-bg,#fff);border-radius:20px;box-shadow:0 18px 50px rgba(21,32,31,.18),0 0 0 1px rgba(21,32,31,.06);font:400 14px/1.3 var(--vy-font-body,Jost,sans-serif);color:var(--vy-ink,#15201F);animation:vy-dp-in .18s ease}
.vy-tp[hidden]{display:none}
.vy-tp__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.vy-tp__title{font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--vy-muted,#5C6664)}
.vy-tp__title b{margin-left:4px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--vy-ink,#15201F)}
.vy-tp__x{display:none;width:40px;height:40px;flex:0 0 auto;border:0;border-radius:999px;background:var(--vy-sand,#F3EEE4);color:var(--vy-ink,#15201F);align-items:center;justify-content:center;cursor:pointer}
.vy-tp__list{overflow-y:auto;overscroll-behavior:contain;margin:0 -4px;padding:2px 4px 4px}
.vy-tp__part+.vy-tp__part{margin-top:14px}
.vy-tp__plabel{display:block;margin:0 0 6px;font-size:12px;color:var(--vy-muted,#5C6664)}
.vy-tp__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.vy-tp__time{height:38px;padding:0 4px;border:1px solid var(--vy-line,#E6E1D8);border-radius:999px;background:var(--vy-bg,#fff);font:500 13px/1 var(--vy-font-body,Jost,sans-serif);color:var(--vy-ink,#15201F);white-space:nowrap;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,color .2s ease}
.vy-tp__time:hover:not([disabled]){border-color:var(--vy-ink,#15201F)}
.vy-tp__time.is-on{border-color:var(--vy-main,#0E3B36);background:var(--vy-main,#0E3B36);color:var(--vy-on-main,#fff)}
.vy-tp__time[disabled]{border-color:transparent;background:var(--vy-cream,#FBF9F5);color:#B9B3A9;text-decoration:line-through;cursor:default}
.vy-tp__time:focus{outline:none}
.vy-tp__time:focus-visible,.vy-tp__x:focus-visible{outline:2px solid var(--vy-accent,#C9962B);outline-offset:2px}
/* Phones: the same bottom sheet as the calendar. */
.vy-tp.is-sheet{left:0;right:0;bottom:0;top:auto;width:auto;max-height:80vh;padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;animation-name:vy-dp-up}
.vy-tp.is-sheet .vy-tp__x{display:inline-flex}
.vy-tp.is-sheet .vy-tp__time{height:44px;font-size:14px}
@media (prefers-reduced-motion:reduce){.vy-tp{animation:none}.vy-tp-alt__icon{transition:none}}
