/* booking widget — inherits the site palette */
#booking{margin-top:30px;text-align:left}
.bk-step{border-top:1px solid var(--line);padding:16px 0;opacity:.35;transition:opacity .4s}
.bk-step.on{opacity:1;padding:22px 0}
.bk-step.done{opacity:.85}
.bk-step .body{display:none}
.bk-step.on .body{display:block}
.bk-step.on .bk-opts{display:grid}.bk-step.on .bk-cal{display:grid}
.bk-step.done h4{cursor:pointer}
.bk-step.done h4 .pick::after{content:"change";margin-left:12px;font-family:var(--sans);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);opacity:.8}
.bk-step.done h4:hover .pick::after{opacity:1}
.bk-step h4{display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:14px;font-weight:500}
.bk-step h4 i{font-style:normal;width:22px;height:22px;border:1px solid var(--gold-dim);border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-size:13px;color:var(--bone)}
.bk-step h4 .pick{margin-left:auto;font-family:var(--serif);font-size:16px;letter-spacing:0;text-transform:none;color:var(--bone)}
.bk-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.bk-opt{background:rgba(233,220,192,.04);border:1px solid var(--line);border-radius:8px;padding:14px;text-align:left;color:var(--bone);font-family:var(--sans);transition:.25s}
.bk-opt b{display:block;font-family:var(--serif);font-size:22px;font-weight:600;line-height:1.05}
.bk-opt small{display:block;margin-top:6px;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--bone-dim);line-height:1.5}
.bk-opt em{display:block;margin-top:8px;font-style:normal;font-size:12px;color:var(--gold)}
.bk-opt:hover{border-color:var(--gold-dim);background:rgba(217,134,47,.06)}
.bk-opt.on{border-color:var(--gold);background:rgba(217,134,47,.12)}
.bk-cal{display:grid;grid-template-columns:1fr auto;gap:22px;align-items:start}
.bk-month{border:1px solid var(--line);border-radius:10px;padding:14px;background:rgba(6,8,6,.35)}
.bk-month .head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-family:var(--serif);font-size:20px}
.bk-month .head button{background:none;border:1px solid var(--line);color:var(--bone);width:30px;height:30px;border-radius:50%;font-size:16px}
.bk-month .head button:hover{border-color:var(--gold)}
.bk-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.bk-grid span{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--bone-dim);text-align:center;padding:4px 0}
.bk-day{aspect-ratio:1;border:1px solid transparent;border-radius:6px;background:none;color:var(--bone-dim);font-family:var(--serif);font-size:16px;position:relative}
.bk-day.has{color:var(--bone);border-color:var(--line);background:rgba(233,220,192,.04)}
.bk-day.has::after{content:"";position:absolute;left:50%;bottom:5px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--gold)}
.bk-day.has:hover{border-color:var(--gold-dim)}
.bk-day.on{border-color:var(--gold);background:rgba(217,134,47,.14);color:var(--bone)}
.bk-day:disabled{opacity:.3}
.bk-slots{min-width:190px}
.bk-slots .lbl{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--bone-dim);margin-bottom:10px}
.bk-slots .list{display:flex;flex-wrap:wrap;gap:8px;max-height:280px;overflow:auto;padding-right:4px}
.bk-slot{background:rgba(233,220,192,.04);border:1px solid var(--line);color:var(--bone);border-radius:999px;padding:8px 14px;font-family:var(--serif);font-size:16px}
.bk-slot:hover{border-color:var(--gold-dim)}.bk-slot.on{border-color:var(--gold);background:rgba(217,134,47,.14)}
.bk-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bk-form .full{grid-column:1/-1}
.bk-sum{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 18px;border:1px solid var(--gold-dim);border-radius:10px;background:rgba(217,134,47,.06);font-family:var(--serif);font-size:19px}
.bk-sum small{display:block;font-family:var(--sans);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--bone-dim);margin-top:4px}
.bk-err{color:#f0a070;font-size:13px;margin-top:8px}
.bk-done{padding:34px;border:1px solid var(--gold-dim);border-radius:12px;background:rgba(217,134,47,.06);text-align:center}
.bk-done .code{font-family:var(--serif);font-size:44px;font-weight:600;letter-spacing:.06em;color:var(--gold);line-height:1;margin:10px 0}
.bk-done p{font-family:var(--serif);font-size:20px;line-height:1.45;color:var(--bone)}
.bk-done .actions{justify-content:center}
@media (max-width:900px){.bk-cal,.bk-form{grid-template-columns:1fr}.bk-slots .list{max-height:none}}
