/* Booking page. Builds on style.css tokens. */
.bk-panel[hidden],.bk-times[hidden]{display:none!important}
.button.ghost{background:transparent;color:var(--white);border-color:#394238}.button.ghost:hover{background:transparent;border-color:var(--lime);color:var(--lime)}
.bk{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:start;padding-top:80px;padding-bottom:100px}
.bk-intro{position:sticky;top:40px}.bk h1{font-size:clamp(38px,4.2vw,62px)}
.bk-cal{background:var(--panel);border:1px solid #313831;padding:36px;scroll-margin-top:20px}
.bk-steps{list-style:none;display:flex;gap:8px;padding:0;margin:0 0 32px;font-size:13px;color:var(--muted)}
.bk-steps li{flex:1;border-top:3px solid #394238;padding-top:10px}.bk-steps li span{display:block;font:12px monospace;letter-spacing:1px}
.bk-steps li.on{border-color:var(--lime);color:var(--white)}.bk-steps li.on span{color:var(--lime)}
.bk-month{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.bk-month h2{font-size:22px;letter-spacing:-.5px;margin:0}
.bk-nav{background:none;border:1px solid #394238;color:var(--white);width:40px;height:40px;font-size:22px;line-height:1}.bk-nav:hover:not(:disabled){border-color:var(--lime);color:var(--lime)}.bk-nav:disabled{opacity:.3;cursor:default}
.bk-grid,.bk-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center}
.bk-grid span{font:11px monospace;letter-spacing:1px;color:var(--muted);text-transform:uppercase;padding-bottom:6px}
.bk-days button{aspect-ratio:1;background:var(--bg);border:1px solid #313831;color:var(--white);font-weight:700;font-size:15px}
.bk-days button:hover:not(:disabled){border-color:var(--lime)}.bk-days button:disabled{background:none;border-color:transparent;color:#4d554c;cursor:default}
.bk-days button.on{background:var(--lime);border-color:var(--lime);color:var(--bg)}
.bk-times{margin-top:28px;border-top:1px solid #313831;padding-top:22px}.bk-label{color:var(--white);font-weight:700;margin-bottom:14px}
.bk-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.bk-slots button{background:none;border:1px solid #394238;color:var(--white);padding:12px 6px;font-weight:700;font-size:14px}
.bk-slots button:hover{border-color:var(--lime)}.bk-slots button.on{background:var(--lime);border-color:var(--lime);color:var(--bg)}
.bk-tz{font-size:12px;margin:14px 0 0}.bk-next{width:100%;margin-top:28px}.bk-next:disabled{opacity:.35;cursor:default;transform:none}
form.bk-panel{display:grid;gap:18px}.bk-picked{color:var(--white);border-left:3px solid var(--lime);padding-left:16px;margin:0 0 6px}
.bk-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
form.bk-panel label{display:grid;gap:7px;font-size:13px;font-weight:700;color:var(--white)}
form.bk-panel input:not([type=checkbox]),form.bk-panel textarea{font:inherit;font-size:15px;font-weight:400;background:var(--bg);color:var(--white);border:1px solid #394238;padding:13px 14px;width:100%;resize:vertical}
form.bk-panel input:focus,form.bk-panel textarea:focus{outline:none;border-color:var(--lime)}form.bk-panel ::placeholder{color:#6d766b}
.bk-check{grid-template-columns:20px 1fr!important;align-items:start}.bk-check span{font-size:12px;font-weight:400;color:var(--muted);line-height:1.5}.bk-check input{accent-color:var(--lime);width:18px;height:18px;margin:2px 0 0}
.bk-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:6px}.bk-back{background:none;border:0;border-bottom:1px solid var(--lime);color:var(--white);margin:0;padding:0 0 4px}
.bk-done{text-align:center;padding:30px 0}.bk-tick{display:inline-grid;place-items:center;width:64px;height:64px;background:var(--lime);color:var(--bg);font-size:30px;font-weight:900;margin-bottom:22px}
.bk-done h2{margin-bottom:14px}.bk-done strong{color:var(--white)}
.program h3{margin-top:0}
@media(max-width:1000px){.bk{grid-template-columns:1fr;gap:40px}.bk-intro{position:static}}
@media(max-width:700px){.bk{padding-top:45px;padding-bottom:60px}.bk-cal{padding:22px 16px;margin:0 -5.56%;border-left:0;border-right:0}.bk-row{grid-template-columns:1fr}.bk-slots{grid-template-columns:repeat(2,1fr)}.bk-days,.bk-grid{gap:4px}.bk-days button{font-size:14px}.bk-actions{flex-direction:column-reverse;align-items:stretch}.bk-actions .button{width:100%}.bk-back{align-self:center}.ticker{grid-template-columns:1fr 1fr}}
