/* Phone appointment, product 28 in shop 1 only; the native booking template adds this marker. */
.mlgsf-call-booking,
.mlgsf-call-booking * { box-sizing: border-box; }
.mlgsf-call-booking { min-width: 0; padding: 20px; border-radius: 14px; }
.mlgsf-call-booking .card-title { padding-top: 0 !important; }
.mlgsf-call-booking .wk-booking-content { float: none; width: 100%; min-width: 0; }
.mlgsf-call-booking .date_range_form > .form-group { margin-right: 0; margin-left: 0; }
.mlgsf-call-booking .date_range_form > .form-group > .col-md-12 { padding: 0; }
.mlgsf-call-booking #booking_time_slot_date { min-width: 0; min-height: 44px; font-size: 16px; }
.mlgsf-call-booking #booking_product_time_slots { width: 100%; min-width: 0; }
.mlgsf-call-booking .wk-slot-card { display: flex; flex-wrap: wrap; gap: 12px; padding: 14px; margin: 0 0 12px; }
.mlgsf-call-booking .wk-slot-main { flex: 1 1 190px; width: auto; max-width: 100%; min-width: 0; padding: 0; gap: 10px; }
.mlgsf-call-booking .wk-slot-check { flex: 0 0 24px; width: 24px; min-height: 44px; }
.mlgsf-call-booking .wk-slot-details { min-width: 0; gap: 8px 16px; }
.mlgsf-call-booking .wk-slot-price-block { min-width: 0; }
.mlgsf-call-booking .wk-slot-time-row { white-space: nowrap; gap: 8px; }
.mlgsf-call-booking .wk-slot-qty { flex: 0 0 144px; width: 144px; max-width: 100%; justify-content: flex-start; margin: 0; padding: 0; }
.mlgsf-call-booking .wk-slot-qty--booked { flex-basis: auto; width: auto; }
.mlgsf-call-booking .wk-slot-qty .bootstrap-touchspin,
.mlgsf-call-booking .wk-slot-qty .wk-qty-stepper > .input-group {
  display: grid !important; grid-template-columns: 44px minmax(44px, 1fr) 44px;
  align-items: center; width: 144px !important; max-width: 100%; min-width: 0;
  height: 46px !important; min-height: 46px; margin: 0; padding: 0;
  border: 1px solid #cbd5e1; border-radius: 8px; background: #fff;
  box-shadow: none; overflow: visible;
}
.mlgsf-call-booking .wk-slot-qty .wk-qty-stepper { width: 144px; max-width: 100%; padding: 0; }
.mlgsf-call-booking .wk-slot-qty .bootstrap-touchspin .input-group-btn,
.mlgsf-call-booking .wk-slot-qty .bootstrap-touchspin .input-group-btn-vertical {
  display: contents !important; position: static !important; width: auto; min-width: 0;
  height: auto; padding: 0; margin: 0; float: none;
}
.mlgsf-call-booking .wk-slot-qty .booking_time_slots_quantity_wanted {
  grid-column: 2; grid-row: 1; position: static; float: none !important;
  width: 100% !important; min-width: 0 !important; max-width: 100%;
  height: 44px !important; min-height: 44px !important; margin: 0 !important; padding: 0 !important;
  border: 0 !important; border-left: 1px solid #cbd5e1 !important; border-right: 1px solid #cbd5e1 !important;
  border-radius: 0 !important; text-align: center; font-family: inherit; font-size: 16px; font-weight: 600; line-height: 44px;
  color: #172b45; background: #fff; box-shadow: none !important;
}
.mlgsf-call-booking .wk-slot-qty .bootstrap-touchspin-down,
.mlgsf-call-booking .wk-slot-qty .bootstrap-touchspin-up {
  display: inline-flex !important; position: relative !important; inset: auto !important;
  grid-row: 1; float: none; align-items: center; justify-content: center;
  width: 44px !important; min-width: 44px !important; max-width: 44px;
  height: 44px !important; min-height: 44px !important; max-height: 44px;
  padding: 0 !important; margin: 0 !important; border: 0 !important; border-radius: 0;
  background: #f4f7fb; color: #172b45; box-shadow: none; transform: none !important;
  font-size: 0 !important; line-height: 1; cursor: pointer;
}
.mlgsf-call-booking .wk-slot-qty .bootstrap-touchspin-down { grid-column: 1; border-radius: 7px 0 0 7px; }
.mlgsf-call-booking .wk-slot-qty .bootstrap-touchspin-up { grid-column: 3; border-radius: 0 7px 7px 0; }
.mlgsf-call-booking .wk-slot-qty .bootstrap-touchspin-down > i,
.mlgsf-call-booking .wk-slot-qty .bootstrap-touchspin-up > i { display: none !important; }
/* Geometric signs avoid dependence on the theme's incompatible icon fonts. */
.mlgsf-call-booking .wk-slot-qty .bootstrap-touchspin-down::before,
.mlgsf-call-booking .wk-slot-qty .bootstrap-touchspin-up::before {
  content: "" !important; position: absolute; top: calc(50% - 1px); left: calc(50% - 7px);
  display: block; width: 14px; height: 2px; background: currentColor; transform: none;
}
.mlgsf-call-booking .wk-slot-qty .bootstrap-touchspin-up::after {
  content: "" !important; position: absolute; top: calc(50% - 7px); left: calc(50% - 1px);
  display: block; width: 2px; height: 14px; background: currentColor; transform: none;
}
.mlgsf-call-booking .wk-slot-qty .bootstrap-touchspin-down::after { content: none !important; }
.mlgsf-call-booking .wk-slot-qty button:hover:not(:disabled) { background: #e5eef9; }
.mlgsf-call-booking .wk-slot-qty button:disabled { opacity: .5; cursor: not-allowed; }
.mlgsf-call-booking .wk-slot-qty button:focus-visible,
.mlgsf-call-booking .booking_time_slots_quantity_wanted:focus-visible,
.mlgsf-call-booking .product_blooking_time_slot:focus-visible,
.mlgsf-call-booking #booking_time_slot_date:focus-visible { outline: 3px solid #2468b4; outline-offset: 2px; z-index: 1; }
.mlgsf-call-booking #booking_button { min-height: 44px; max-width: 100%; white-space: normal; }
@media (max-width: 575px) {
  .mlgsf-call-booking { padding: 14px; }
  .mlgsf-call-booking .wk-slot-card { padding: 12px; gap: 10px; }
  .mlgsf-call-booking .wk-slot-main { flex-basis: 100%; }
  .mlgsf-call-booking .wk-slot-qty { margin-left: 34px; }
}
