/* Terminbuchung (add-on booking). Uses the site tokens (--gold, --radius, ...). */
.booking{max-width:760px;margin:0 auto;background:#fff;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-8)}
.booking-intro{max-width:640px;margin:0 auto var(--space-8)}
.booking-loading,.bk-hint{color:var(--muted);margin:var(--space-3) 0 0}
.booking-preview{text-align:center}
.bk-step{padding-bottom:var(--space-6);margin-bottom:var(--space-6);border-bottom:1px solid var(--border)}
.bk-step:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.bk-step-title{font-weight:700;display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-lg);margin:0 0 var(--space-4)}
.bk-num{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:999px;background:var(--gold-l);color:var(--gold-text,#7d601c);font-size:14px;font-weight:700;flex:none}
.bk-step.done .bk-num{background:var(--gold);color:var(--on-gold,#17181b)}
.bk-services{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}
.bk-service{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:var(--space-4);border:1.5px solid var(--border);border-radius:var(--radius-sm);background:#fff;font:inherit;color:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.bk-service:hover{border-color:var(--gold)}
.bk-service.on{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-l)}
.bk-meta{font-size:var(--text-sm);color:var(--muted)}
.bk-service small{color:var(--muted)}
.bk-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}
.bk-cal-title{font-size:var(--text-base)}
.bk-nav{width:40px;height:40px;border-radius:999px;border:1px solid var(--border);background:#fff;font-size:22px;line-height:1;cursor:pointer;color:inherit}
.bk-nav:disabled{opacity:.3;cursor:default}
.bk-cal{max-width:440px;margin-inline:auto}
.bk-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.bk-wd{text-align:center;font-size:12px;font-weight:600;color:var(--muted);padding:4px 0}
.bk-day{aspect-ratio:1;min-height:40px;border-radius:999px;border:0;background:transparent;font:500 15px/1 var(--font);color:#b9b5ad;cursor:default}
.bk-day.free{background:var(--gold-l);color:var(--dark);font-weight:700;cursor:pointer}
.bk-day.free:hover{background:var(--gold-2)}
.bk-day.on{background:var(--gold);color:var(--on-gold,#17181b)}
.bk-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.bk-time{min-height:44px;border-radius:10px;border:1.5px solid var(--gold);background:#fff;color:var(--dark);font:600 15px/1 var(--font);cursor:pointer}
.bk-time:hover{background:var(--gold-l)}
.bk-time.on{background:var(--gold);color:var(--on-gold,#17181b)}
.bk-summary{background:var(--soft);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin:0 0 var(--space-4)}
.bk-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.bk-done{text-align:center;padding:var(--space-6) 0}
.bk-check{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:999px;background:var(--grad-gold);color:var(--on-gold,#17181b);font-size:30px;margin-bottom:var(--space-4)}
.bk-when{font-weight:700;font-size:var(--text-lg)}
.bk-add{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap;margin-top:var(--space-4)}
.bk-add .btn{color:var(--dark)}
.bk-live{position:absolute;left:-9999px}
@media (max-width:600px){.booking{padding:var(--space-4)}.bk-form .row2{grid-template-columns:1fr}.bk-grid{gap:3px}}
.bk-consent{display:flex;gap:8px;align-items:flex-start;font-size:var(--text-sm);color:var(--muted);margin:0 0 var(--space-3)}
.bk-consent input{margin-top:3px}
/* Person choice (same look as services) */
.bk-staff .bk-service small{color:var(--muted)}
/* Online payment box (SumUp) */
.bk-pay{display:grid;gap:4px;margin:0 0 var(--space-4);padding:var(--space-4);border:1.5px solid var(--gold);border-radius:var(--radius-sm);background:var(--gold-l, #f3e7cb)}
.bk-pay strong{font-size:var(--text-lg)}
.bk-pay small{color:var(--muted);line-height:1.45}
.bk-pay-brand{margin-top:2px}
/* 1.6.0: services from the price list - category, group chips, variants */
.bk-cat{margin:var(--space-4) 0 var(--space-2);font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-text,#7d601c)}
.bk-step .bk-cat:first-of-type{margin-top:0}
.bk-groups{display:flex;flex-wrap:wrap;gap:8px}
.bk-group{min-height:42px;padding:0 16px;border-radius:999px;border:1.5px solid var(--border);background:#fff;color:inherit;font:600 14px/1 var(--font);cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.bk-group:hover{border-color:var(--gold)}
.bk-group.on{background:var(--dark);border-color:var(--dark);color:#fff}
.bk-variants{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px dashed var(--border)}
.booking{scroll-margin-top:100px}
/* 1.6.1: finished steps fold into one line, the active step stays in view */
.bk-step{scroll-margin-top:110px}
.bk-folded{padding-bottom:var(--space-3);margin-bottom:var(--space-3)}
.bk-folded .bk-step-title{margin:0;font-size:var(--text-base);font-weight:400}
.bk-fold-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.bk-fold-text small{font-size:12px;color:var(--muted);line-height:1.2}
.bk-fold-text strong{font-weight:600;line-height:1.35}
.bk-change{margin-left:auto;flex:none;background:none;border:0;padding:6px 2px;font:500 14px/1 var(--font);color:var(--gold-text,#7d601c);text-decoration:underline;text-underline-offset:4px;cursor:pointer}

/* 1.9.0: Ort / Link */
.bk-places{margin:0 0 1rem}
.bk-place-pick{border:0;padding:0;margin:0 0 .5rem}
.bk-place-pick legend{font-weight:600;margin-bottom:.4rem;padding:0}
.bk-place{display:flex;gap:.6rem;align-items:flex-start;padding:.6rem .8rem;border:1px solid currentColor;border-color:color-mix(in srgb,currentColor 25%,transparent);border-radius:10px;margin-bottom:.45rem;cursor:pointer}
.bk-place input{margin-top:.25rem}
.bk-place small{display:block;opacity:.75}
.bk-place-info{margin:0 0 .35rem}
.bk-where{margin:.25rem 0}
