.header-cta{background:transparent;color:var(--ink);font-family:var(--sans);cursor:pointer}
.primary,.secondary{font-family:var(--sans)}
button.primary{border:0;cursor:pointer}
.booking-overlay[hidden]{display:none}
.booking-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:24px;background:rgba(27,37,32,.72);backdrop-filter:blur(7px)}
.booking-dialog{width:min(780px,100%);max-height:92vh;overflow:auto;position:relative;padding:44px;border-radius:3px;background:var(--cream);box-shadow:0 28px 90px rgba(0,0,0,.28)}
.booking-close{position:absolute;right:18px;top:16px;width:38px;height:38px;border:0;border-radius:50%;background:#e7e8e2;color:var(--ink);font-size:1.55rem;cursor:pointer}
.booking-heading>p{margin:0;color:var(--moss);font-size:.75rem;font-weight:600;letter-spacing:.17em}
.booking-heading h2,.booking-success h2{margin:9px 0;font-size:3.4rem;line-height:1}
.booking-heading>span{color:#6c7670;font-size:.9rem}
.booking-loading,.booking-error{margin-top:30px;padding:25px;background:#e8ebe5;color:#5c6861;text-align:center}
.booking-error{background:#f6e6e1;color:#853e2c}
.booking-step{margin-top:32px;padding-top:26px;border-top:1px solid var(--line)}
.booking-step>b{font-family:var(--serif);font-size:1.55rem;font-weight:500}
.booking-days{display:flex;gap:8px;margin-top:18px;overflow:auto;padding-bottom:4px}
.booking-day{min-width:116px;padding:12px;border:1px solid #bfc6bf;background:transparent;color:var(--ink);font-family:var(--sans);text-align:left;cursor:pointer}
.booking-day span,.booking-day small{display:block}
.booking-day span{font-size:.88rem;font-weight:600}
.booking-day small{margin-top:3px;color:#718078;font-size:.78rem}
.booking-day.active{border-color:var(--moss);background:var(--moss);color:#fff}
.booking-day.active small{color:#d9e3da}
.booking-slots{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.booking-slot{padding:11px 15px;border:1px solid #bfc6bf;background:#fff;color:var(--ink);font-family:var(--sans);font-size:.88rem;cursor:pointer}
.booking-slot.active{border-color:var(--ink);background:var(--ink);color:#fff}
.patient-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.patient-fields>b{grid-column:1/-1}
.patient-fields label{display:grid;gap:7px;color:#53615a;font-size:.86rem;font-weight:600}
.patient-fields input,.patient-fields select{width:100%;min-height:46px;padding:10px 12px;border:1px solid #c5cac4;background:#fff;color:var(--ink);font:inherit}
.patient-fields .full{grid-column:1/-1}
.privacy-check{display:flex!important;grid-template-columns:20px 1fr!important;align-items:start;line-height:1.5;font-weight:400!important}
.privacy-check input{width:18px;min-height:auto;margin:3px 0}
.booking-honeypot{position:absolute!important;left:-10000px!important}
.booking-submit{width:100%;margin-top:25px;padding:16px;border:0;background:var(--moss);color:#fff;font:600 .9rem var(--sans);cursor:pointer}
.booking-submit:disabled{opacity:.6;cursor:wait}
.booking-form-note{margin:12px 0 0;color:#7c8580;font-size:.78rem;text-align:center}
.booking-success{padding:35px 0 10px;text-align:center}
.booking-success>span{display:grid;place-items:center;width:54px;height:54px;margin:auto;border-radius:50%;background:var(--moss);color:#fff;font-size:1.5rem}
.booking-success>p{margin:18px 0 0;color:var(--moss);font-size:.75rem;font-weight:600;letter-spacing:.17em}
.booking-success>b,.booking-success>small{display:block}
.booking-success>b{margin-top:22px;font-size:1.05rem}
.booking-success>small{margin-top:8px;color:#68736d}
.booking-success button{margin-top:28px;padding:13px 20px;border:1px solid var(--ink);background:transparent;font:600 .8rem var(--sans);cursor:pointer}
body.booking-open{overflow:hidden}
@media(max-width:620px){.booking-overlay{padding:0}.booking-dialog{width:100%;height:100%;max-height:none;padding:34px 18px;border-radius:0}.booking-heading h2,.booking-success h2{font-size:2.7rem}.patient-fields{grid-template-columns:1fr}.patient-fields>b,.patient-fields .full{grid-column:auto}}
