/* Higher Vision booking calendar modal (credit brand) + success animation.
   Themed with the site's own CSS variables so it inherits the brand palette. */
.bk{--bk-ease:cubic-bezier(.22,1,.36,1);position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:14px;background:rgba(40,12,16,.55);backdrop-filter:blur(4px)}
.bk.open{display:flex}
.bk__box{position:relative;width:min(430px,100%);max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;background:var(--paper,#faf8f6);border:1px solid var(--hair,#e8e0d7);border-radius:22px;padding:22px 24px 20px;box-shadow:0 40px 90px -28px rgba(40,12,16,.5);color:var(--ink-2,#3d322c);font-family:var(--sans)}
.bk__x{position:absolute;top:11px;right:13px;width:32px;height:32px;font-size:1.5rem;line-height:1;color:var(--muted);background:none;border:0;cursor:pointer;border-radius:50%}
.bk__x:hover{color:var(--ink);background:var(--paper-2)}
.bk__kick{font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--brand);margin-bottom:5px}
.bk__h{font-family:var(--serif);font-weight:400;font-size:1.55rem;color:var(--ink);margin-bottom:12px;line-height:1.08}
.bk__calhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-family:var(--serif);font-size:1.15rem;color:var(--ink)}
.bk__nav{width:34px;height:34px;border-radius:50%;border:1px solid var(--hair);color:var(--brand);background:#fff;cursor:pointer;font-size:1.15rem;line-height:1}
.bk__nav:hover:not(:disabled){border-color:var(--brand);background:var(--paper-2)}
.bk__nav:disabled{opacity:.3;cursor:default}
.bk__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.bk-dow{font-size:.62rem;font-weight:700;letter-spacing:.04em;color:var(--muted);padding:2px 0}
.bk-day{padding:8px 0;display:grid;place-items:center;border-radius:9px;border:1px solid var(--hair);background:#fff;color:var(--ink);font:inherit;font-size:.88rem;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.bk-day:hover:not(.is-off){background:var(--brand);color:#fff;border-color:var(--brand)}
.bk-day.is-off{opacity:.3;cursor:default;background:none;border-color:transparent}
.bk__hint{margin-top:11px;font-size:.74rem;color:var(--muted);text-align:center}
.bk__slots{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.bk-slot{padding:12px;border-radius:11px;border:1px solid var(--hair);background:#fff;color:var(--ink-2);font:inherit;font-weight:600;cursor:pointer;transition:.15s}
.bk-slot:hover{background:var(--brand);color:#fff;border-color:var(--brand)}
.bk__back{background:none;border:0;color:var(--muted);font:inherit;font-size:.83rem;cursor:pointer;margin-bottom:10px;padding:0}
.bk__back:hover{color:var(--brand)}
.bk__conf{font-family:var(--serif);font-style:italic;font-size:1.4rem;color:var(--brand);margin-bottom:14px}
.bk__fields{display:grid;gap:11px;margin-bottom:14px}
.bk__fields label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-bottom:5px}
.bk__fields input{box-sizing:border-box;width:100%;padding:12px 14px;border-radius:11px;border:1px solid var(--hair);background:#fff;color:var(--ink);font:inherit}
.bk__box,.bk-day,.bk-slot,.bk__cta{box-sizing:border-box}
.bk__fields input::placeholder{color:#b9afa6}
.bk__fields input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(168,31,56,.12)}
.bk__fields input.bad{border-color:#c0392b;box-shadow:0 0 0 3px rgba(192,57,43,.1)}
.bk__hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.bk__cta{width:100%;padding:15px;border-radius:99px;border:0;cursor:pointer;font:inherit;font-weight:700;color:#fff;background:linear-gradient(168deg,var(--brand-2,#c4344f),var(--brand,#a81f38) 55%,var(--brand-deep,#6d222c));box-shadow:0 12px 26px -12px rgba(168,31,56,.7);transition:filter .2s,transform .2s}
.bk__cta:hover{filter:brightness(1.05);transform:translateY(-1px)}
.bk__cta[disabled]{opacity:.6;cursor:default;transform:none}
/* ----- success animation ----- */
.bk__ok{text-align:center;padding:4px 0 2px}
.bk__burst{position:relative;width:66px;height:66px;margin:2px auto 14px}
.bk__mark{width:66px;height:66px;display:block;position:relative;z-index:2;animation:bkpop .5s var(--bk-ease) both}
.bk__mc{fill:none;stroke:var(--ok,#0a7b50);stroke-width:2.5;stroke-dasharray:145;stroke-dashoffset:145;animation:bkdraw .55s var(--bk-ease) forwards}
.bk__mk{fill:none;stroke:var(--ok,#0a7b50);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:bkdraw .38s .42s var(--bk-ease) forwards}
.bk__cft{position:absolute;top:50%;left:50%;width:8px;height:8px;border-radius:2px;opacity:0;animation:bkcft .8s .3s var(--bk-ease) forwards}
@keyframes bkpop{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
@keyframes bkdraw{to{stroke-dashoffset:0}}
@keyframes bkcft{0%{opacity:1;transform:translate(-50%,-50%) scale(.3) rotate(0)}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(1) rotate(220deg)}}
@media (prefers-reduced-motion: reduce){.bk__mark,.bk__mc,.bk__mk,.bk__cft{animation:none!important;stroke-dashoffset:0;opacity:1}}
