/* Launchpad Feature — Booking styles. Colours from core/tokens.css. Mobile-first. */

.lp-booking{padding:0 0 30px}

.lp-bk-section{margin-bottom:24px}
.lp-bk-label{
  font-size:.75rem;font-weight:700;letter-spacing:.6px;text-transform:uppercase;
  color:var(--text-2);margin-bottom:10px;
}

/* Party size */
.lp-bk-party{display:flex;align-items:center;gap:4px}
.lp-bk-party button{
  width:52px;min-height:52px;border-radius:var(--radius);
  border:1px solid var(--border);background:var(--bg-2);color:var(--text);
  font-size:1.3rem;font-weight:600;
}
.lp-bk-party button:active{border-color:var(--brand);color:var(--brand)}
.lp-bk-party span{
  min-width:60px;text-align:center;font-family:var(--font-head);
  font-size:1.4rem;font-weight:800;
}

/* Dates — horizontal scroller */
.lp-bk-dates{
  display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;
  padding-bottom:4px;scrollbar-width:none;
}
.lp-bk-dates::-webkit-scrollbar{display:none}
.lp-bk-date{
  flex:0 0 auto;width:64px;min-height:68px;border-radius:var(--radius);
  border:1px solid var(--border);background:var(--bg-2);color:var(--text-2);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
}
.lp-bk-date.on{border-color:var(--brand);background:var(--brand);color:#fff}
.lp-bk-dow{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.lp-bk-dnum{font-family:var(--font-head);font-size:1.15rem;font-weight:800}

/* Slots */
.lp-bk-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.lp-bk-slot{
  min-height:var(--tap);border-radius:var(--radius);
  border:1px solid var(--border);background:var(--bg-2);color:var(--text);
  font-size:.9rem;font-weight:600;position:relative;
}
.lp-bk-slot.on{border-color:var(--brand);background:var(--brand);color:#fff}
.lp-bk-slot:disabled{opacity:.4;cursor:not-allowed}
.lp-bk-full{
  display:block;font-size:.58rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.4px;color:var(--err);margin-top:1px;
}

.lp-bk-note,.lp-bk-loading,.lp-bk-error{
  text-align:center;padding:28px 16px;color:var(--text-2);
  font-size:.85rem;line-height:1.5;grid-column:1/-1;
}
.lp-bk-error{color:var(--err)}

@media (min-width:600px){
  .lp-bk-slots{grid-template-columns:repeat(4,1fr)}
}
@media (min-width:768px){
  .lp-booking{max-width:560px;margin:0 auto}
  .lp-bk-slots{grid-template-columns:repeat(5,1fr)}
}
