.booking-widget {
  --booking-ink: #171717;
  --booking-paper: #fff;
  --booking-warm: #f6f5f2;
  --booking-line: #d9d7d2;
  color: var(--booking-ink);
  font: inherit;
  max-width: 980px;
  margin: 0 auto;
}
.booking-widget *, .booking-widget *::before, .booking-widget *::after { box-sizing: border-box; }
.booking-widget button, .booking-widget select, .booking-widget input, .booking-widget textarea { font: inherit; }
.booking-widget button { cursor: pointer; }
.booking-widget button:focus-visible { outline: 2px solid var(--booking-ink); outline-offset: 2px; }
.booking-widget__card { border: 1px solid var(--booking-line); background: var(--booking-paper); }
.booking-widget__head { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; padding: 24px; border-bottom: 1px solid var(--booking-line); }
.booking-widget__eyebrow { display:block; margin-bottom: 7px; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.booking-widget h2 { margin:0; font-size: clamp(23px, 3vw, 32px); letter-spacing: -.035em; line-height: 1.06; }
.booking-widget__step { margin: 5px 0 0; font-size: 13px; color: #5d5c58; }
.booking-widget__step { white-space: nowrap; }
.booking-widget__body { padding: 24px; }
.booking-widget__chooser { display:grid; grid-template-columns: minmax(0, 1.45fr) minmax(220px, .8fr); gap: 28px; }
.booking-widget__calendar { padding-right: 28px; border-right: 1px solid var(--booking-line); }
.booking-widget__calendar-nav { display:flex; justify-content:space-between; align-items:center; margin-bottom: 16px; }
.booking-widget__month { margin:0; font-size:16px; font-weight:700; text-transform:capitalize; }
.booking-widget__navs { display:flex; gap:7px; }
.booking-widget__nav, .booking-widget__icon-button { min-width:34px; height:34px; border:1px solid var(--booking-line); border-radius:2px; background:var(--booking-paper); color:var(--booking-ink); }
.booking-widget__nav:hover:not(:disabled), .booking-widget__icon-button:hover { background:var(--booking-warm); }
.booking-widget__nav:disabled { color:#aaa8a2; cursor:not-allowed; }
.booking-widget__weekdays, .booking-widget__days { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:4px; min-width:0; }
.booking-widget__weekdays { margin-bottom:7px; color:#777570; font-size:10px; font-weight:700; text-align:center; text-transform:uppercase; letter-spacing:.06em; }
.booking-widget__blank { min-height:42px; }
.booking-widget__day { position:relative; min-height:42px; padding:0; border:1px solid transparent; border-radius:2px; background:transparent; color:var(--booking-ink); font-size:13px; }
.booking-widget__day:hover:not(:disabled) { border-color:var(--booking-ink); }
.booking-widget__day--selected { background:var(--booking-ink); color:#fff; }
.booking-widget__day:disabled { color:#b6b4ae; cursor:not-allowed; text-decoration:line-through; }
.booking-widget__day--available::after { content:""; position:absolute; bottom:5px; left:50%; width:3px; height:3px; transform:translateX(-50%); border-radius:50%; background:currentColor; }
.booking-widget__day--selected::after { background:#fff; }
.booking-widget__legend { display:flex; gap:15px; margin:17px 0 0; font-size:11px; color:#6f6d68; }
.booking-widget__legend span::before { content:""; display:inline-block; width:6px; height:6px; margin:0 5px 1px 0; border-radius:50%; vertical-align:middle; background:var(--booking-ink); }
.booking-widget__legend span:last-child::before { border:1px solid #aaa8a2; background:transparent; }
.booking-widget__times h3 { margin:0 0 5px; font-size:16px; }
.booking-widget__times-hint { margin:0 0 16px; color:#6f6d68; font-size:12px; line-height:1.5; }
.booking-widget__slots { display:grid; grid-template-columns:repeat(2, 1fr); gap:7px; }
.booking-widget__slot { min-height:40px; border:1px solid var(--booking-line); border-radius:2px; background:#fff; color:var(--booking-ink); font-size:13px; }
.booking-widget__slot:hover:not(:disabled) { border-color:var(--booking-ink); }
.booking-widget__slot--selected { background:var(--booking-ink); border-color:var(--booking-ink); color:#fff; }
.booking-widget__slot:disabled { color:#aaa8a2; background:var(--booking-warm); cursor:not-allowed; text-decoration:line-through; }
.booking-widget__details { display:grid; grid-template-columns: minmax(0, 1fr) minmax(250px, .8fr); gap:28px; padding-top:24px; margin-top:24px; border-top:1px solid var(--booking-line); }
.booking-widget label { display:block; margin-bottom:7px; font-size:12px; font-weight:700; }
.booking-widget select, .booking-widget input, .booking-widget textarea { width:100%; border:1px solid var(--booking-line); border-radius:2px; background:#fff; color:var(--booking-ink); padding:11px 12px; }
.booking-widget select:focus, .booking-widget input:focus, .booking-widget textarea:focus { outline:none; box-shadow:none; border-color:var(--booking-ink); background:#fff; }
.booking-widget textarea { min-height:92px; resize:vertical; }
.booking-widget__summary { padding:18px; border:1px solid var(--booking-line); background:var(--booking-warm); }
.booking-widget__summary h3 { margin:0 0 14px; font-size:14px; }
.booking-widget__summary p { margin:0 0 7px; font-size:13px; line-height:1.45; }
.booking-widget__summary p:last-child { margin-bottom:0; }
.booking-widget__summary strong { font-weight:700; }
.booking-widget__actions { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:24px; border-top:1px solid var(--booking-line); }
.booking-widget__actions--right { justify-content:flex-end; }
.booking-widget__button { min-height:45px; padding:0 18px; border:1px solid var(--booking-ink); border-radius:2px; background:var(--booking-ink); color:#fff; font-size:13px; font-weight:700; }
.booking-widget__button:hover { background:#fff; color:var(--booking-ink); }
.booking-widget__button--quiet { background:#fff; color:var(--booking-ink); }
.booking-widget__button--quiet:hover { background:var(--booking-warm); }
.booking-widget__form { display:grid; grid-template-columns:repeat(2, 1fr); gap:16px; }
.booking-widget__field--full { grid-column:1 / -1; }
.booking-widget__confirmation { max-width:620px; padding:34px 24px; }
.booking-widget__confirmation h2 { margin-bottom:12px; }
.booking-widget__confirmation p { max-width:54ch; line-height:1.6; }
.booking-widget__confirmation .booking-widget__summary { margin:25px 0; }
.booking-widget__sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width: 680px) {
  .booking-widget__head { flex-direction:column; gap:10px; }
  .booking-widget input, .booking-widget select, .booking-widget textarea { font-size:16px; }
  .booking-widget__head, .booking-widget__body, .booking-widget__actions { padding:18px; }
  .booking-widget__chooser, .booking-widget__details { grid-template-columns:1fr; gap:24px; }
  .booking-widget__calendar { padding:0 0 24px; border:0; border-bottom:1px solid var(--booking-line); }
  .booking-widget__form { grid-template-columns:1fr; }
  .booking-widget__field--full { grid-column:auto; }
  .booking-widget__actions { align-items:stretch; flex-direction:column-reverse; }
  .booking-widget__actions .booking-widget__button { width:100%; }
}
