.booking{background:var(--cream);width:min(920px,100vw - 2rem);max-height:calc(100dvh - 2rem);color:var(--ink);border:0;border-radius:10px;padding:0;overflow:auto}.booking::backdrop{background:#0e3a49b8}.booking__head{justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.6rem 1.75rem 0;display:flex}.booking__title{font:400 clamp(1.9rem, 4vw, 2.7rem)/1.1 var(--font-script,var(--font-display))}.booking__close{border:1.5px solid var(--ink);width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;flex:none;font-size:1.4rem;line-height:1}.booking__close:hover{background:var(--ink);color:var(--cream)}.booking__form{padding:1rem 1.75rem 1.75rem}.booking__bar{border:1.5px solid var(--ink);background:#fff;border-radius:8px;grid-template-columns:1fr 1fr 1.3fr;display:grid}.booking__cell{text-align:left;border:0;border-right:1px solid var(--line);min-height:68px;color:var(--ink);cursor:pointer;font:inherit;background:0 0;padding:.7rem 1rem;display:block;position:relative}.booking__cell:last-child{border-right:0}.booking__cell:hover,.booking__cell[aria-expanded=true]{background:var(--sand)}.booking__label{font:600 .7rem/1.2 var(--font-text);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);display:block}.booking__value{font:500 1.05rem/1.3 var(--font-text);margin-top:.25rem;display:block}.booking__value.is-empty{color:var(--muted)}.booking__cal{border:1px solid var(--line);background:#fff;border-radius:8px;margin-top:1rem;padding:1rem}.booking__months{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid;position:relative}.booking__month-title{text-align:center;font:600 .82rem/1 var(--font-text);letter-spacing:.18em;text-transform:uppercase;padding:.7rem 0 .9rem}.booking__nav{width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:50%;font-size:1.5rem;position:absolute;top:0}.booking__nav:hover:not(:disabled){background:var(--sand)}.booking__nav:disabled{opacity:.3;cursor:default}.booking__nav--prev{left:-.4rem}.booking__nav--next{right:-.4rem}.booking__grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.booking__dow{text-align:center;font:600 .72rem/2 var(--font-text);color:var(--muted)}.booking__day{aspect-ratio:1;min-height:40px;color:var(--ink);font:500 .95rem/1 var(--font-text);cursor:pointer;background:0 0;border:0;border-radius:4px}.booking__day:hover:not(:disabled){background:var(--sand)}.booking__day:disabled{color:#1c2a2b4d;cursor:not-allowed;text-decoration:line-through}.booking__day.is-range{background:var(--sand);border-radius:0}.booking__day.is-start,.booking__day.is-end{background:var(--petrol);color:#fff}.booking__day.is-start{border-radius:4px 0 0 4px}.booking__day.is-end{border-radius:0 4px 4px 0}.booking__day.is-start.is-end{border-radius:4px}.booking__blank{visibility:hidden}.booking__hint{font:400 .9rem/1.5 var(--font-text);color:var(--muted);margin-top:.75rem}.booking__guests{border:1px solid var(--line);background:#fff;border-radius:8px;gap:.25rem;margin-top:1rem;padding:1rem 1.25rem;display:grid}.booking__guests[hidden],.booking__cal[hidden]{display:none}.booking__row{justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0;display:flex}.booking__row+.booking__row{border-top:1px solid var(--line)}.booking__row small{color:var(--muted);font-size:.85rem;display:block}.booking__step{align-items:center;gap:.6rem;display:inline-flex}.booking__step button{border:1.5px solid var(--ink);width:40px;height:40px;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;font-size:1.25rem}.booking__step button:hover:not(:disabled){background:var(--ink);color:var(--cream)}.booking__step button:disabled{opacity:.3;cursor:default}.booking__step output{text-align:center;min-width:1.6rem;font:600 1.05rem var(--font-text)}.booking__foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.25rem;display:flex}.booking__note{font:400 .88rem/1.5 var(--font-text);color:var(--muted);flex:260px}.booking__error{color:var(--terra-dark);font:600 .95rem/1.4 var(--font-text);margin-top:.75rem}.booking__error:empty{display:none}@media (max-width:720px){.booking__head,.booking__form{padding-left:1.1rem;padding-right:1.1rem}.booking__bar{grid-template-columns:1fr 1fr}.booking__cell--guests{border-right:0;border-top:1px solid var(--line);grid-column:1/-1}.booking__months{grid-template-columns:1fr}.booking__month+.booking__month{display:none}.booking__foot .btn{width:100%}}@media (prefers-reduced-motion:no-preference){.booking[open]{animation:booking-in .35s var(--ease)}@keyframes booking-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}}.booking__ages{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.75rem;padding:.75rem 0 .25rem;display:grid}.booking__ages[hidden]{display:none}.booking__age{font:600 .78rem/1.3 var(--font-text);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);gap:.3rem;display:grid}.booking__age select{border:1.5px solid var(--ink);min-height:44px;color:var(--ink);font:500 1rem var(--font-text);letter-spacing:0;text-transform:none;background:#fff;border-radius:6px;padding:0 .75rem}.booking__day{flex-direction:column;justify-content:center;align-items:center;gap:1px;min-height:48px;padding:2px 0;display:flex}.booking__n{font:500 .95rem/1.1 var(--font-text)}.booking__p{font:500 .62rem/1 var(--font-text);color:var(--muted);letter-spacing:0}.booking__day.is-start .booking__p,.booking__day.is-end .booking__p{color:#fffc}.booking__day.is-low{box-shadow:inset 0 -3px 0 var(--mustard)}.booking__day.is-soldout{background:repeating-linear-gradient(135deg,#0000 0 5px,#1c2a2b14 5px 6px)}.booking__legend{font:400 .82rem/1.4 var(--font-text);color:var(--muted);flex-wrap:wrap;gap:.4rem 1.25rem;margin-top:.6rem;display:flex}.booking__legend i{vertical-align:-2px;border:1px solid var(--line);border-radius:3px;width:14px;height:14px;margin-right:.35rem;display:inline-block}.booking__legend .lg-low{box-shadow:inset 0 -3px 0 var(--mustard)}.booking__legend .lg-out{background:repeating-linear-gradient(135deg,#0000 0 3px,#1c2a2b40 3px 4px)}.booking__close,.booking__step button,.booking__nav{border-radius:var(--btn-radius,999px 0 999px 0)}.booking__room{border:0;min-width:0;margin:0;padding:0}.booking__room legend{float:left;border-top:1px solid var(--line);width:100%;font:600 .74rem/1.2 var(--font-text);letter-spacing:.2em;text-transform:uppercase;color:var(--olive);margin-top:.6rem;padding:.85rem 0 .1rem}.booking__room legend+*{clear:both}
