/* booking.css — Buchungs-Modal (Terminanfrage) */

.bk-overlay{
  position:fixed; inset:0; z-index:300;
  background:rgba(28,22,17,.55); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center; padding:18px;
  animation:bkFade .3s ease;
}
@keyframes bkFade{ from{ opacity:0; } to{ opacity:1; } }
.bk-modal{
  position:relative; width:min(560px, 100%); max-height:92vh; overflow:auto;
  background:var(--paper); border-radius:18px; box-shadow:var(--shadow-pop);
  animation:bkRise .4s var(--ease);
}
@keyframes bkRise{ from{ opacity:0; transform:translateY(20px) scale(.98); } to{ opacity:1; transform:none; } }
.bk-close{
  position:absolute; top:16px; right:16px; z-index:2; width:34px; height:34px; border-radius:50%;
  border:none; background:rgba(42,33,26,.07); color:var(--ink); font-size:.95rem;
}
.bk-close:hover{ background:rgba(42,33,26,.14); }

.bk-head{ padding:30px 32px 18px; border-bottom:1px solid var(--line); }
.bk-eyebrow{ font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:var(--accent); font-weight:500; }
.bk-title{ font-family:var(--serif); font-size:1.55rem; font-weight:600; margin-top:5px; }
.bk-steps{ display:flex; gap:6px; margin-top:20px; }
.bk-step{ display:flex; align-items:center; gap:8px; flex:1; color:var(--muted); font-size:.72rem; letter-spacing:.04em; }
.bk-step i{ width:24px; height:24px; flex:none; border-radius:50%; display:grid; place-items:center; font-size:.72rem; font-style:normal; background:rgba(42,33,26,.08); color:var(--ink-soft); transition:.25s; }
.bk-step span{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.bk-step.active{ color:var(--ink); }
.bk-step.active i{ background:var(--accent); color:#fff; }
.bk-step.done i{ background:var(--ink); color:#fff; }

.bk-body{ padding:26px 32px; min-height:240px; }
.bk-pane{ animation:bkFade .35s ease; }
.bk-q{ font-family:var(--serif); font-size:1.4rem; font-weight:600; margin:0 0 18px; }

.bk-chips{ display:flex; flex-wrap:wrap; gap:9px; }
.bk-chip{ padding:.7em 1.05em; border-radius:999px; border:1px solid var(--line-strong); background:transparent; color:var(--ink-soft); font-size:.86rem; transition:.2s var(--ease); }
.bk-chip:hover{ border-color:var(--ink); color:var(--ink); }
.bk-chip.sel{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

.bk-days{ display:grid; grid-template-columns:repeat(7, 1fr); gap:7px; }
.bk-day{ display:flex; flex-direction:column; align-items:center; gap:2px; padding:9px 2px; border-radius:10px; border:1px solid var(--line); background:transparent; color:var(--ink); transition:.18s var(--ease); }
.bk-day small{ font-size:.62rem; letter-spacing:.06em; color:var(--muted); text-transform:uppercase; }
.bk-day b{ font-family:var(--serif); font-size:1.2rem; }
.bk-day span{ font-size:.6rem; color:var(--muted); }
.bk-day:hover:not(:disabled){ border-color:var(--ink); }
.bk-day.sel{ background:var(--ink); border-color:var(--ink); }
.bk-day.sel small, .bk-day.sel span{ color:rgba(255,255,255,.7); }
.bk-day.sel b{ color:#fff; }
.bk-day:disabled{ opacity:.32; cursor:not-allowed; }
.bk-timelabel{ font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin:22px 0 10px; }
.bk-times{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.bk-time{ padding:.7em; border-radius:10px; border:1px solid var(--line-strong); background:transparent; font-family:var(--serif); font-size:1.02rem; color:var(--ink); transition:.18s var(--ease); }
.bk-time:hover:not(:disabled){ border-color:var(--ink); }
.bk-time.sel{ background:var(--accent); color:#fff; border-color:var(--accent); }
.bk-time:disabled{ opacity:.3; cursor:not-allowed; }

.bk-fields{ display:flex; flex-direction:column; gap:14px; }
.bk-helper{ color:var(--ink-soft); font-size:.92rem; line-height:1.55; margin:0 0 16px; }
.bk-summary-inline{ margin-top:18px; background:var(--cream); }
.bk-field{ display:flex; flex-direction:column; gap:7px; }
.bk-field span{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); font-weight:500; }
.bk-field span em{ font-style:normal; color:var(--muted); text-transform:none; letter-spacing:0; }
.bk-field input, .bk-field textarea{ font-family:var(--sans); font-size:1rem; color:var(--ink); padding:.8em 1em; border-radius:10px; border:1px solid var(--line-strong); background:#fff; resize:none; transition:border .2s; }
.bk-field input:focus, .bk-field textarea:focus{ outline:none; border-color:var(--accent); }

.bk-done{ text-align:center; padding-top:8px; }
.bk-check{ width:62px; height:62px; margin:0 auto 16px; border-radius:50%; background:var(--accent); color:#fff; display:grid; place-items:center; font-size:1.7rem; animation:bkPop .5s var(--ease); }
@keyframes bkPop{ 0%{ transform:scale(0); } 60%{ transform:scale(1.15); } 100%{ transform:scale(1); } }
.bk-done p{ color:var(--ink-soft); margin:0 auto 20px; max-width:36ch; line-height:1.6; }
.bk-summary{ text-align:left; background:var(--cream); border-radius:12px; padding:18px 20px; display:flex; flex-direction:column; gap:11px; }
.bk-summary div{ display:flex; justify-content:space-between; gap:16px; font-size:.92rem; border-bottom:1px solid var(--line); padding-bottom:11px; }
.bk-summary div:last-child{ border-bottom:none; padding-bottom:0; }
.bk-summary span{ color:var(--muted); }
.bk-summary b{ font-weight:500; text-align:right; }

.bk-foot{ display:flex; justify-content:flex-end; gap:10px; padding:18px 32px 26px; border-top:1px solid var(--line); }
.bk-foot .bk-back{ margin-right:auto; }
.bk-foot .btn:disabled{ opacity:.4; cursor:not-allowed; transform:none; box-shadow:none; }

@media (max-width:560px){
  .bk-head, .bk-body, .bk-foot{ padding-inline:20px; }
  .bk-days{ gap:4px; }
  .bk-day b{ font-size:1rem; }
  .bk-step span{ display:none; }
}
