/* direct booking */
.booking{padding-top:0}
.booking__grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:32px;align-items:start}
.bk-cal,.bk-form{background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:40px}
.bk-units{display:inline-flex;padding:4px;border-radius:999px;background:var(--ground);border:1px solid var(--line-2);gap:4px;margin-bottom:24px;max-width:100%}
.bk-unit{border:0;background:none;border-radius:999px;padding:10px 18px;min-height:44px;font:600 14px var(--body);color:var(--muted);cursor:pointer}
.bk-unit[aria-selected="true"]{background:var(--ink);color:var(--ground)}
.bk-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.bk-bar button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:none;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.bk-bar button:hover:not(:disabled){background:var(--ground)}
.bk-bar button:disabled{opacity:.35;cursor:default}
#bk-status{font-size:13px;color:var(--muted);display:inline-flex;align-items:center;gap:8px;text-align:center}
#bk-status[data-state="synced"]::before{content:"";width:8px;height:8px;border-radius:50%;background:#2F7D5B}
.bk-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
.bk-month h3{font-family:var(--body);font-weight:600;font-size:16px;letter-spacing:0;text-align:center;margin:0 0 14px;text-transform:capitalize}
.bk-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px 0}
.bk-wd{font-size:12px;color:var(--muted);text-align:center;padding-bottom:6px;text-transform:capitalize}
.bk-grid button{position:relative;aspect-ratio:1;min-height:40px;border:0;background:none;font:500 14px var(--body);color:var(--ink);cursor:pointer;border-radius:10px}
.bk-grid button:hover:not(:disabled){background:var(--ground);outline:1.5px solid var(--ink);outline-offset:-1.5px}
.bk-grid button:disabled{color:#A7AFB2;cursor:default}
.bk-grid button.is-busy{color:#A7AFB2;text-decoration:line-through;background:repeating-linear-gradient(135deg,transparent 0 5px,rgba(22,38,46,.06) 5px 7px)}
.bk-grid button.is-today{font-weight:700}
.bk-grid button.is-in{background:#F2DDD3;border-radius:0;color:var(--ink)}
.bk-grid button.is-start,.bk-grid button.is-end{background:var(--accent);color:#fff;text-decoration:none}
.bk-grid button.is-start{border-radius:10px 0 0 10px}
.bk-grid button.is-end{border-radius:0 10px 10px 0}
.bk-grid button.is-solo{border-radius:10px}
.bk-legend{display:flex;flex-wrap:wrap;gap:20px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line-2);font-size:13px;color:var(--muted)}
.bk-legend span{display:inline-flex;align-items:center;gap:8px}
.bk-legend i{width:14px;height:14px;border-radius:4px;border:1px solid var(--line)}
.bk-legend .lg-busy{background:repeating-linear-gradient(135deg,#fff 0 3px,#D5D8D9 3px 5px)}
.bk-legend .lg-sel{background:var(--accent);border-color:var(--accent)}

.bk-form{display:flex;flex-direction:column;gap:18px;position:sticky;top:104px}
.bk-sum{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);border-radius:16px;overflow:hidden}
.bk-sum div{padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.bk-sum div+div{border-left:1px solid var(--line)}
.bk-sum small{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--muted)}
.bk-sum strong{font-size:16px;font-weight:600}
.bk-meta{display:flex;justify-content:space-between;font-size:14px;color:var(--muted);min-height:20px}
.bk-meta #bk-nights{color:var(--ink);font-weight:600}
.bk-field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
.bk-field input,.bk-field select,.bk-field textarea{font:400 16px var(--body);color:var(--ink);background:var(--ground);border:1px solid var(--line);border-radius:12px;padding:12px 14px;min-height:48px;width:100%}
.bk-field textarea{min-height:88px;resize:vertical}
.bk-field input:focus,.bk-field select:focus,.bk-field textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}
.bk-row{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:12px}
.bk-form .btn{width:100%}
#bk-error{margin:0;color:#A3321B;font-size:14px;font-weight:600;min-height:0}
#bk-error:empty{display:none}
.bk-phone{display:flex;gap:8px}
.bk-phone input{flex:1;min-width:0}
.bk-field label{cursor:default}
.bk-done{align-items:flex-start;text-align:left}
.bk-done[hidden],.bk-form[hidden]{display:none}
.bk-done__icon{width:56px;height:56px;border-radius:50%;background:#E3F1EA;color:#1F5E43;display:inline-flex;align-items:center;justify-content:center}
.bk-done h3{font-size:30px;font-weight:400;outline:none}
.bk-done p{margin:0;color:var(--ink-2);line-height:1.6}
.bk-ref strong{font-family:ui-monospace,Menlo,monospace;letter-spacing:.06em;color:var(--ink)}
.bk-done .btn{width:auto}
.bk-fine{margin:0;font-size:13px;line-height:1.5;color:var(--muted)}

@media (max-width:1100px){
  .booking__grid{grid-template-columns:1fr}
  .bk-form{position:static}
}
@media (max-width:860px){
  .bk-months{grid-template-columns:1fr}
}
@media (max-width:560px){
  .booking{padding-top:0}
  .bk-cal,.bk-form{padding:20px 16px;border-radius:20px}
  .bk-units{display:flex;width:100%}
  .bk-unit{flex:1;padding:10px 8px;font-size:13px}
  .bk-grid button{min-height:0;font-size:15px}
}
