/*
  Availability calendar page (/book/).

  Reuses the site's ink/parchment/gold tokens and the two fonts already loaded
  by every generated page — no new colours, no new webfont requests, no external
  libraries. Same square-cornered, hairline-bordered treatment as the chat
  widget and blog pages.
*/
.bk-grid{
  display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:26px;
  align-items:start;
}
@media (max-width:820px){ .bk-grid{grid-template-columns:1fr;} }

.bk-panel{
  background:var(--navy-900);border:1px solid var(--navy-800);padding:22px;
}

/* ------------------------------ calendar ---------------------------------- */

.bk-cal-head{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;
}
.bk-cal-title{
  font-family:'Cormorant Garamond',serif;font-size:1.2rem;color:var(--ivory-100);
  letter-spacing:0.03em;
}
.bk-cal-nav{
  background:transparent;border:1px solid var(--navy-800);color:var(--ivory-50);
  font-size:1rem;width:32px;height:32px;cursor:pointer;line-height:1;
}
.bk-cal-nav:hover:not(:disabled){border-color:var(--gold-400);color:var(--gold-400);}
.bk-cal-nav:disabled{opacity:0.35;cursor:default;}

.bk-cal{width:100%;border-collapse:collapse;table-layout:fixed;}
.bk-cal th{
  font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--gold-700);font-weight:600;padding:6px 0;text-align:center;
}
.bk-cal td{padding:2px;text-align:center;}
.bk-day{
  width:100%;aspect-ratio:1/1;min-height:34px;
  background:transparent;border:1px solid transparent;color:var(--ivory-50);
  font-family:'Source Serif 4',serif;font-size:0.86rem;cursor:default;
}
/* Days with open slots are the only ones offered as buttons. */
button.bk-day{cursor:pointer;border-color:var(--navy-800);}
button.bk-day:hover{border-color:var(--gold-400);color:var(--gold-400);}
.bk-day[aria-pressed='true']{
  background:var(--gold-600);border-color:var(--gold-600);color:var(--navy-950);
  font-weight:600;
}
.bk-day:disabled{opacity:0.3;cursor:default;}
.bk-day-other{color:transparent;} /* trailing cells outside the month */
.bk-day-today{border-bottom:2px solid var(--gold-700);}

/* ------------------------------- slots ------------------------------------ */

.bk-slots-title{
  font-family:'Cormorant Garamond',serif;font-size:1.1rem;color:var(--gold-400);
  margin:0 0 10px;font-weight:500;
}
.bk-slots{display:flex;flex-wrap:wrap;gap:8px;}
.bk-slot{
  background:var(--navy-950);border:1px solid var(--navy-800);color:var(--ivory-50);
  font-family:'Source Serif 4',serif;font-size:0.86rem;padding:8px 14px;cursor:pointer;
}
.bk-slot:hover{border-color:var(--gold-400);color:var(--gold-400);}
.bk-slot[aria-pressed='true']{
  background:var(--gold-600);border-color:var(--gold-600);color:var(--navy-950);
  font-weight:600;
}
.bk-empty{color:var(--ivory-50);font-size:0.9rem;}

/* -------------------------------- form ------------------------------------ */

.bk-form-title{
  font-family:'Cormorant Garamond',serif;font-size:1.35rem;color:var(--ivory-100);
  margin:0 0 14px;font-weight:600;
}
.bk-field{margin-bottom:12px;}
.bk-field label{
  display:block;font-size:0.72rem;text-transform:uppercase;letter-spacing:0.07em;
  color:var(--ivory-50);margin-bottom:4px;
}
.bk-field input,.bk-field textarea,.bk-field select{
  width:100%;padding:9px 10px;background:var(--navy-950);border:1px solid var(--navy-800);
  color:var(--ivory-100);font-family:'Source Serif 4',serif;font-size:0.92rem;
}
.bk-field textarea{min-height:70px;resize:vertical;}
.bk-field input:focus,.bk-field textarea:focus,.bk-field select:focus{
  outline:none;border-color:var(--gold-400);
}
.bk-req{color:var(--gold-600);}

.bk-summary{
  list-style:none;margin:0 0 16px;padding:14px;background:var(--navy-950);
  border:1px solid var(--navy-800);font-size:0.88rem;
}
.bk-summary li{display:flex;gap:10px;padding:3px 0;}
.bk-summary span{color:var(--gold-700);flex:0 0 70px;font-size:0.76rem;text-transform:uppercase;letter-spacing:0.05em;}

.bk-btn{
  font-family:'Cormorant Garamond',serif;font-size:1rem;letter-spacing:0.04em;
  padding:10px 22px;background:var(--gold-600);color:var(--navy-950);
  border:1px solid var(--gold-600);cursor:pointer;
}
.bk-btn:hover:not(:disabled){background:var(--gold-400);border-color:var(--gold-400);}
.bk-btn:disabled{opacity:0.6;cursor:wait;}
.bk-btn-ghost{
  background:transparent;color:var(--ivory-100);border:1px solid var(--navy-800);
}
.bk-btn-ghost:hover:not(:disabled){background:transparent;border-color:var(--gold-400);color:var(--gold-400);}
.bk-actions{display:flex;gap:10px;flex-wrap:wrap;}

.bk-error{color:#e08a8a;font-size:0.86rem;margin:10px 0 0;}
.bk-error[hidden]{display:none;}
.bk-note{color:var(--ivory-50);font-size:0.82rem;margin-top:10px;}
.bk-status{color:var(--ivory-50);font-size:0.88rem;}

/* ------------------------------ confirmed ---------------------------------- */

.bk-ref{
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.15rem;
  color:var(--gold-400);letter-spacing:0.08em;
}

/* Turnstile renders its challenge into this holder when configured. */
#bk-turnstile{margin-bottom:12px;}