.booking{background:linear-gradient(180deg,#eef8fa,#fff 70%);border-top:1px solid var(--line)}.booking__app{display:grid;grid-template-columns:1fr 1.05fr;gap:24px;margin-top:34px;align-items:start}.booking__app[hidden],.booking__fallback[hidden]{display:none}.booking__card{padding:30px;border-radius:24px;background:#fff;border:1px solid var(--line);box-shadow:0 30px 70px #16425b14}.booking__month{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.booking__month-label{font-size:1.15rem;letter-spacing:-.02em}.booking__nav{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:var(--wash);color:var(--ink);font-size:1.2rem;cursor:pointer;transition:background .2s,border-color .2s}.booking__nav:hover:not(:disabled){border-color:var(--sky);background:#e1f2f7}.booking__nav:disabled{opacity:.35;cursor:default}.booking__weekdays,.booking__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.booking__weekdays span{text-align:center;font-size:.66rem;font-weight:700;color:#5b7d8c;padding-bottom:6px}.booking__grid{min-height:300px;transition:opacity .25s}.booking__grid.is-loading{opacity:.4}.booking__day{position:relative;aspect-ratio:1;border:1px solid transparent;border-radius:12px;background:transparent;color:#9db3bd;font:inherit;font-size:.85rem;cursor:default}.booking__day.is-weekend{background:#f3f5f6}.booking__day.is-free{cursor:pointer;color:var(--ink);font-weight:700;background:#e6f6fa;border-color:#81c3d777;animation:day-in .45s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--d) * 12ms);transition:background .2s,transform .2s,border-color .2s}.booking__day.is-free:after{content:"";position:absolute;left:50%;bottom:16%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--blue)}.booking__day.is-free:hover{transform:translateY(-2px);border-color:var(--blue)}.booking__day[aria-pressed=true]{background:var(--night);border-color:var(--night);color:#fff;box-shadow:0 10px 24px #16425b33}.booking__day[aria-pressed=true]:after{background:var(--lime)}.booking__legend{display:flex;align-items:center;gap:8px;margin:18px 0 0;font-size:.74rem;color:#5b7d8c}.booking__legend i{width:14px;height:14px;border-radius:4px;background:#e6f6fa;border:1px solid #81c3d777}@keyframes day-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}.booking__panel{min-height:420px;background:var(--night);color:#e5f4f7;border-color:#81c3d740;position:relative;overflow:hidden}.booking__panel:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#81c3d71c 1px,transparent 1px);background-size:20px 20px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 80% 10%,#000 10%,transparent 70%);mask-image:radial-gradient(ellipse 70% 60% at 80% 10%,#000 10%,transparent 70%)}.booking__step{position:relative;animation:step-in .45s cubic-bezier(.22,1,.36,1)}.booking__step[hidden]{display:none}.booking__step-n{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--lime);color:var(--ink);font-size:.72rem;font-weight:700;margin-bottom:16px}.booking__step h3{color:#fff;font-size:1.5rem;letter-spacing:-.03em}.booking__step p{color:#b9d3de;font-size:.9rem}.booking__slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin-top:6px}.booking__slot{padding:14px 10px;border-radius:14px;border:1px solid #81c3d755;background:#0c2539;color:#fff;font:inherit;font-weight:600;cursor:pointer;animation:day-in .4s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--i) * 40ms);transition:background .2s,border-color .2s,color .2s,transform .2s}.booking__slot:hover,.booking__slot:focus-visible{background:var(--lime);border-color:var(--lime);color:var(--ink);transform:translateY(-2px)}.booking__loading{color:#9cc4d3;font-size:.85rem}.booking__chosen{margin:0 0 6px;color:#fff!important;font-size:1rem!important}.booking__chosen small{color:#9cc4d3}.booking__change{padding:0;border:0;background:none;color:var(--lime);font:inherit;font-size:.8rem;text-decoration:underline;cursor:pointer;margin-bottom:18px}.booking__fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking__fields label{display:grid;gap:5px;font-size:.74rem;color:#b9d3de}.booking__fields input:not([type=checkbox]),.booking__fields textarea{width:100%;padding:11px 13px;border-radius:12px;border:1px solid #81c3d755;background:#0c2539;color:#fff;font:inherit;font-size:.88rem}.booking__fields input:focus,.booking__fields textarea:focus{outline:2px solid var(--lime);outline-offset:1px}.booking__wide{grid-column:1 / -1}.booking__consent{display:flex!important;grid-template-columns:none;align-items:flex-start;gap:10px!important;font-size:.74rem}.booking__consent input{margin-top:3px;accent-color:var(--lime)}.booking__consent a{color:var(--lime)}.booking__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.booking__error{min-height:1.2em;margin:12px 0 6px;color:#ffb4a8!important}.booking__error a{color:var(--lime)}.booking__submit{margin-top:4px}.booking__done{text-align:center;padding-top:40px;outline:none}.booking__check{display:inline-grid;place-items:center;width:82px;height:82px;border-radius:50%;background:var(--lime);color:var(--ink);font-size:2.4rem;font-weight:700;margin-bottom:18px;box-shadow:0 0 0 12px #b2ff5922,0 0 60px #b2ff5966;animation:booked .7s cubic-bezier(.34,1.56,.64,1) both}.booking__done-when{color:#fff!important;font-size:1.15rem!important;font-weight:600}@keyframes step-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes booked{0%{transform:scale(.3) rotate(-30deg);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.booking__day.is-free,.booking__slot,.booking__step,.booking__check{animation:none}}html.motion-paused .booking__day.is-free,html.motion-paused .booking__slot,html.motion-paused .booking__step,html.motion-paused .booking__check{animation:none}.booking__fallback{margin-top:30px;padding:28px;border-radius:20px;border:1px dashed #81c3d7;background:#fff}.booking__fallback p{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:0}@media(max-width:960px){.booking__app{grid-template-columns:1fr}.booking__panel{min-height:0}}@media(max-width:520px){.booking__card{padding:20px 16px}.booking__fields{grid-template-columns:1fr}.booking__weekdays,.booking__grid{gap:4px}.booking__day{border-radius:9px;font-size:.78rem}}.booking__app>*{min-width:0}@media(max-width:960px){.booking__app{grid-template-columns:minmax(0,1fr)}}.booking__weekdays,.booking__grid{grid-template-columns:repeat(7,minmax(0,1fr))}.booking__day{padding:0;min-width:0}
