.booking{padding-top:8rem;overflow-x:clip}.booking .booking-title{font-size:clamp(1.75rem,7vw,2.75rem);margin-bottom:1rem;overflow-wrap:anywhere;hyphens:auto}.booking .booking-desc{max-width:46rem;color:var(--text-dim);font-size:1.05rem;line-height:1.6;margin-bottom:2rem}.booking .booking-state{color:var(--text-dim);margin:1.5rem 0}.booking .booking-state a{color:var(--purple);text-decoration:underline;overflow-wrap:anywhere}.booking .booking-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:2.5rem;margin-top:1rem}.booking .booking-grid[hidden],.booking .booking-form[hidden],.booking .booking-done[hidden]{display:none}.booking .cal{border-top:2px solid var(--purple);padding-top:1rem;min-width:0}.booking .cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.booking .cal-month{font-family:Montserrat,sans-serif;font-weight:700;text-transform:capitalize}.booking .cal-nav{border:1px solid var(--divider);background:var(--bg);color:var(--text);width:2.5rem;height:2.5rem;cursor:pointer;font-size:1.2rem;border-radius:var(--radius)}.booking .cal-nav:disabled{opacity:.3;cursor:default}.booking .cal-week,.booking .cal-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.3rem;text-align:center}.booking .cal-week span{font-size:.75rem;color:var(--text-subtle);padding-bottom:.35rem}.booking .cal-days>*{aspect-ratio:1;min-width:0;display:flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums;font-size:.95rem}.booking .cal-days span{color:var(--text-subtle)}.booking .cal-days button{border:0;padding:0;background:var(--bg-alt);color:var(--purple-deep);font:inherit;font-weight:700;cursor:pointer;border-radius:50%}.booking .cal-days button:hover{background:var(--purple-soft)}.booking .cal-days button[aria-pressed=true]{background:var(--purple);color:var(--bg)}.booking .times{border-top:2px solid var(--green);padding-top:1rem;min-width:0}.booking .times-day{font-family:Montserrat,sans-serif;font-weight:700;margin-bottom:1rem}.booking .times-list{display:flex;flex-direction:column;gap:.5rem;max-height:22rem;overflow-y:auto}.booking .times-list button{border:1px solid var(--purple);background:var(--bg);color:var(--purple);padding:.85rem;font:inherit;font-weight:700;cursor:pointer;font-variant-numeric:tabular-nums;border-radius:var(--radius)}.booking .times-list button:hover{background:var(--purple);color:var(--bg)}.booking .booking-form{max-width:46rem;margin-top:1rem}.booking .chosen{font-family:Montserrat,sans-serif;font-weight:700;margin-bottom:1.5rem;padding:1rem 1.25rem;background:var(--bg-lift);border-left:3px solid var(--purple)}.booking .fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.booking .fields label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;color:var(--text-dim);min-width:0}.booking .fields .wide{grid-column:1 / -1}.booking .fields input,.booking .fields textarea{font:inherit;font-size:16px;width:100%;box-sizing:border-box;color:var(--text);padding:.7rem .8rem;border:1px solid var(--divider);background:var(--bg);border-radius:var(--radius)}.booking .fields input:focus,.booking .fields textarea:focus{outline:2px solid var(--purple-soft);border-color:var(--purple)}.booking .hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.booking .consent{display:flex;gap:.6rem;align-items:flex-start;margin:1.25rem 0;font-size:.9rem;color:var(--text-dim);line-height:1.5}.booking .consent input{margin-top:.2rem;flex:none;width:1.1rem;height:1.1rem}.booking .consent a{color:var(--purple);text-decoration:underline}.booking .form-actions{display:flex;flex-wrap:wrap;gap:.75rem}.booking .form-error{color:#b42318;margin-top:1rem;min-height:1.2em}.booking .booking-done{max-width:46rem;margin-top:1rem;padding:2rem;background:var(--bg-lift);border-top:2px solid var(--green)}.booking .booking-done h2{margin-bottom:.75rem}.booking .booking-done p{color:var(--text-dim);line-height:1.6}@media(max-width:800px){.booking{padding-top:6rem;padding-inline:0}.booking .booking-grid,.booking .fields{grid-template-columns:minmax(0,1fr)}.booking .form-actions .btn{flex:1 1 100%;text-align:center}}
