.booking-shell {
  background: #f4f6f9;
  padding: 5rem 1rem;
  line-height: 1.7;
}
.booking-panel {
  width: min(940px, 100%);
  margin: auto;
  background: #fff;
  border: 1px solid #dfe4eb;
  border-radius: 20px;
  box-shadow: 0 18px 55px rgba(16,33,61,.12);
  overflow: hidden;
}
.booking-intro {
  padding: 2.5rem 3rem;
  background: #10213d;
  color: #fff;
}
.booking-kicker {
  display: block;
  margin-bottom: .65rem;
  color: #e5c777;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.booking-intro h2 {
  color: #fff;
  margin: 0 0 .85rem;
  font-size: clamp(1.9rem, 4vw, 2.7rem);
}
.booking-intro p {
  max-width: 720px;
  margin: 0;
  color: rgba(255,255,255,.8);
  font-size: 1.03rem;
  line-height: 1.85;
}
.booking-form { padding: 1rem 3rem 3rem; }
.booking-step-section {
  padding: 2.25rem 0;
  border-bottom: 1px solid #e4e8ee;
}
.booking-step-heading {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.65rem;
}
.booking-step-heading > span {
  display: flex;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #c9a55c;
  color: #10213d;
  font-weight: 900;
}
.booking-step-heading h3 {
  margin: 0 0 .3rem;
  color: #10213d;
  font-size: 1.35rem;
}
.booking-step-heading p {
  margin: 0;
  color: #667085;
  line-height: 1.7;
}
.booking-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem 1.35rem;
}
.booking-field {
  display: flex;
  flex-direction: column;
  gap: .65rem;
}
.booking-field.full { grid-column: 1/-1; }
.booking-field label,
.booking-label {
  font-weight: 850;
  color: #10213d;
  font-size: .95rem;
}
.booking-field label small { color: #667085; font-weight: 600; }
.booking-field input,
.booking-field select,
.booking-field textarea {
  width: 100%;
  min-height: 52px;
  border: 1px solid #bdc7d5;
  border-radius: 10px;
  padding: .9rem 1rem;
  background: #fff;
  color: #17243a;
  font: inherit;
  font-size: 1rem;
  line-height: 1.5;
}
.booking-field input:focus,
.booking-field select:focus,
.booking-field textarea:focus {
  border-color: #9f7c2e;
  outline: 3px solid rgba(201,165,92,.2);
}
.booking-field textarea { min-height: 125px; resize: vertical; }
.booking-date-wrap {
  display: grid;
  grid-template-columns: minmax(260px,1fr) minmax(180px,.7fr);
  gap: 1.25rem;
  align-items: end;
}
.booking-timezone {
  display: flex;
  min-height: 52px;
  flex-direction: column;
  justify-content: center;
  padding: .65rem 1rem;
  border-radius: 10px;
  background: #f1f4f8;
  color: #344054;
}
.booking-timezone strong { font-size: .76rem; text-transform: uppercase; letter-spacing: .06em; }
.booking-timezone span { font-weight: 800; color: #10213d; }
.booking-times { margin-top: 1.5rem; }
.slot-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: .8rem;
  min-height: 68px;
  margin-top: .3rem;
  padding: 1rem;
  border-radius: 12px;
  background: #f7f8fa;
}
.slot-button {
  min-height: 48px;
  border: 1px solid #b88c2d;
  background: #fff;
  color: #10213d;
  border-radius: 9px;
  padding: .75rem .4rem;
  font-weight: 850;
  cursor: pointer;
}
.slot-button:hover,
.slot-button.selected { background: #c9a55c; color: #10213d; }
.booking-help { grid-column: 1/-1; align-self: center; color: #667085; margin: 0; line-height: 1.7; }
.booking-consent {
  display: flex;
  gap: .75rem;
  align-items: flex-start;
  margin-top: 1.5rem;
  color: #596579;
  font-size: .9rem;
  line-height: 1.7;
}
.booking-consent input { width: 18px; height: 18px; flex: 0 0 18px; margin-top: .25rem; }
.booking-actions {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}
.booking-actions .btn { min-height: 50px; padding: .9rem 1.5rem; }
.booking-actions .btn:disabled { opacity: .55; cursor: wait; }
.booking-status { flex: 1; min-width: 240px; color: #596579; font-weight: 700; line-height: 1.6; }
.booking-status.error { color: #b42318; background: #fef3f2; border: 1px solid #fecdca; border-radius: 9px; padding: .8rem 1rem; }
.booking-status.success { color: #147a52; background: #ecfdf3; border: 1px solid #abefc6; border-radius: 9px; padding: .8rem 1rem; }
.booking-note {
  margin-top: 2rem;
  padding: 1.2rem 1.35rem;
  border-left: 4px solid #c9a55c;
  background: #fffaeb;
  color: #694b08;
  font-size: .92rem;
  line-height: 1.75;
}
@media(max-width:700px) {
  .booking-shell { padding: 2.5rem .65rem; }
  .booking-form { padding: .5rem 1.3rem 2rem; }
  .booking-intro { padding: 2rem 1.4rem; }
  .booking-grid,
  .booking-date-wrap { grid-template-columns: 1fr; }
  .booking-step-section { padding: 1.8rem 0; }
  .slot-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .booking-actions { align-items: stretch; flex-direction: column; }
  .booking-actions .btn,
  .booking-status { width: 100%; min-width: 0; }
}
