/* Pure-CSS replacements for the old JavaScript behaviour */
.sr{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
html{scroll-padding-top:96px}
/* mobile drawer (checkbox hack) */
.drawer{display:none}
#menu-toggle:checked ~ .drawer{display:block}
.drawer__bg{position:absolute;inset:0;cursor:pointer}
.hdr__burger{cursor:pointer}
.hdr__nav a.on{color:var(--ink);background:var(--beige)}
.drawer__panel a.on{background:rgba(255,255,255,.1)}
/* hero carousel (CSS animation, 5 slides x 6.5s) */
.slide{opacity:0;visibility:hidden;animation:heroShow 32.5s infinite both}
@keyframes heroShow{0%{opacity:0;visibility:visible}3%{opacity:1}20%{opacity:1;visibility:visible}23%{opacity:0;visibility:hidden}100%{opacity:0;visibility:hidden}}
.slide .slide__img{transform:scale(1)}
.hero__stage:hover .slide,.hero__stage:focus-within .slide{animation-play-state:paused}
.hero__dots span{width:10px;height:10px;border-radius:999px;background:rgba(255,255,255,.5);animation:dotOn 32.5s infinite both}
@keyframes dotOn{0%{width:34px;background:#fff}20%{width:34px;background:#fff}23%{width:10px;background:rgba(255,255,255,.5)}100%{width:10px;background:rgba(255,255,255,.5)}}
/* selectable radio cards */
.pick{position:relative;cursor:pointer;display:block}
.pick input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.pick:has(input:disabled){opacity:.4;cursor:not-allowed;text-decoration:line-through}
.pick:has(input:focus-visible){outline:3px solid var(--orange);outline-offset:2px}
.day.pick:has(input:checked){background:var(--forest);color:#fff}
.day.pick:has(input:checked) small{color:#cfe6cf}
.cal__grid .cd{aspect-ratio:1;border-radius:12px;font-size:14px;font-weight:500;display:grid;place-items:center;transition:.12s}
.cal__grid .cd:hover{background:var(--beige)}
.cal__grid .cd.today{box-shadow:inset 0 0 0 1.5px var(--orange)}
.cal__grid .cd:has(input:checked){background:var(--forest);color:#fff}
.cal__grid .cd:has(input:disabled){color:#c6c0a6}
.slot.pick:has(input:checked){border-color:var(--forest);background:var(--forest);color:#fff}
.slot.pick:has(input:checked) small{color:#cfe6cf}
/* number inputs styled as steppers */
.stepper input,.num input{width:64px;height:36px;border:0;background:#fff;border-radius:999px;text-align:center;font-weight:700;font-size:15px}
.num{display:flex;align-items:center;gap:10px;font-weight:700}
.num input{border:1.5px solid var(--line);height:44px}
/* native form validation feedback */
.fld:has(input:user-invalid) input,.fld:has(input:user-invalid) .ph{border-color:#E5533D}
.fld:has(input:user-invalid) .err{display:block}
.qbook__people{display:flex}
.drawer .drawer__panel{animation:none}
@media print{.topbar,.hdr,.partners,.ftr,.done__acts{display:none}}
