.booking-dialog { max-width: 760px; }
.booking-dialog > p:not(.eyebrow) { margin-bottom: 26px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-grid label { display: flex; flex-direction: column; gap: 7px; color: #493941; font-size: .84rem; font-weight: 700; }
.form-grid .optional { color: #7d6d72; font-size: .78rem; font-weight: 500; }
.form-wide { grid-column: 1 / -1; }
.form-grid input,
.form-grid select,
.form-grid textarea { width: 100%; border: 1px solid #dfcbd4; border-radius: 12px; background: #fff; color: #21161c; padding: 12px 13px; font: inherit; font-weight: 500; outline: none; }
.form-grid input:focus,
.form-grid select:focus,
.form-grid textarea:focus { border-color: #ff2b93; box-shadow: 0 0 0 3px rgba(255,43,147,.12); }
.form-grid textarea { resize: vertical; }
.choice-row { display: flex; align-items: center; gap: 10px; font-weight: 700; }
.choice-row input { width: 18px; height: 18px; accent-color: #ff2b93; }
.choice-row small { color: #7d6d72; font-weight: 500; }
.service-picker { margin: 0; border: 1px solid #dfcbd4; border-radius: 16px; padding: 14px; min-width: 0; }
.service-picker legend { padding: 0 7px; color: #493941; font-size: .84rem; font-weight: 700; }
.service-choice-groups { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; max-height: 360px; overflow-y: auto; padding: 2px; }
.service-choice-groups section { border: 1px solid #f0dfe6; border-radius: 12px; background: #fff9fc; padding: 11px; }
.service-choice-groups h3 { margin: 0 0 8px; color: #ce176e; font-size: .85rem; }
.service-choice-groups label { display: grid; grid-template-columns: 18px 1fr; align-items: start; gap: 9px; padding: 7px 5px; border-radius: 8px; cursor: pointer; font-size: .83rem; }
.service-choice-groups label:hover { background: #fff0f7; }
.service-choice-groups input { width: 17px; height: 17px; margin-top: 1px; padding: 0; border: 0; background: transparent; box-shadow: none; accent-color: #ff2b93; }
.service-choice-groups small { display: block; margin-top: 2px; color: #7d6d72; font-weight: 500; }
.service-choice-groups .french-choice { margin-left: 10px; border-left: 2px solid #ff2b93; background: #fff0f7; }
.service-choice-groups .french-choice[hidden] { display: none; }
.service-picker-error { min-height: 1em; margin: 8px 3px 0; color: #a7234b; font-size: .78rem; font-weight: 700; }
.schedule-note { margin: -4px 0 0; color: #7d6d72; font-size: .78rem; }
.consent { display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: start; margin: 18px 0; color: #74656d; font-size: .78rem; }
.consent input { margin-top: 3px; accent-color: #ff2b93; }
.form-trap { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.form-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid #eadde2; padding-top: 18px; }
.form-footer p { margin: 0; max-width: 360px; font-size: .8rem; }
.form-success { color: #287a48 !important; font-weight: 700; }
.form-error { color: #a7234b !important; font-weight: 700; }
.form-footer button:disabled { opacity: .55; cursor: wait; transform: none; }
@media (max-width: 650px) {
  .form-grid { grid-template-columns: 1fr; }
  .form-wide { grid-column: 1; }
  .service-choice-groups { grid-template-columns: 1fr; max-height: 430px; }
  .form-footer { align-items: stretch; flex-direction: column; }
  .form-footer .button { width: 100%; }
}
