.fitcall-hidden-option {
  display: none !important;
}

.fitcall-unavailable-option {
  opacity: .32 !important;
  cursor: not-allowed !important;
}

.fitcall-unavailable-option * {
  cursor: not-allowed !important;
}

.fitcall-booking-status {
  margin-top: 10px;
  min-height: 18px;
  font-family: 'Noto Sans Thai', sans-serif;
  font-size: 12px;
  line-height: 1.5;
}

.fitcall-booking-status.is-info { opacity: .65; }
.fitcall-booking-status.is-error { opacity: .8; }

/*
 * v0.2.8
 * Bit Form themes can visually hide native radio controls. Keep the real
 * input in the DOM for submission, but render our own stable marker next to
 * it. This does not replace Bit Form values or validation.
 */
.fitcall-option-wrap {
  cursor: pointer !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 7px !important;
}

.fitcall-option-wrap.fitcall-unavailable-option {
  cursor: not-allowed !important;
}

.fitcall-native-radio {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

.fitcall-radio-marker {
  display: inline-flex !important;
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  flex: 0 0 16px !important;
  box-sizing: border-box !important;
  border: 1.5px solid #777 !important;
  border-radius: 50% !important;
  margin: 0 !important;
  vertical-align: middle !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  cursor: pointer !important;
  transform: none !important;
}

.fitcall-radio-marker::after {
  content: '' !important;
  display: block !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  background: transparent !important;
}

.fitcall-option-wrap.fitcall-selected-option .fitcall-radio-marker {
  border-color: #111 !important;
}

.fitcall-option-wrap.fitcall-selected-option .fitcall-radio-marker::after {
  background: #111 !important;
}

.fitcall-option-wrap.fitcall-unavailable-option .fitcall-radio-marker {
  border-color: #aaa !important;
  cursor: not-allowed !important;
}

.fitcall-option-wrap.fitcall-unavailable-option .fitcall-radio-marker::after {
  background: transparent !important;
}

.fitcall-option-text { margin: 0 !important; display: inline !important; }

/* v0.2.9 — confirmation summary shown only after both date + time are selected. */
.fitcall-booking-confirmation-ui {
  display: none !important;
  margin-top: 30px !important;
  font-family: 'Noto Sans Thai', sans-serif !important;
  color: #171513 !important;
}

.fitcall-booking-confirmation-ui.is-visible {
  display: block !important;
}

.fitcall-confirm-divider {
  width: 100% !important;
  height: 1px !important;
  background: rgba(162, 138, 106, .48) !important;
  margin: 0 0 28px !important;
}

.fitcall-confirm-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  column-gap: 64px !important;
  row-gap: 22px !important;
  max-width: 760px !important;
}

.fitcall-confirm-item {
  min-width: 0 !important;
}

.fitcall-confirm-label {
  margin-bottom: 3px !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
  font-weight: 400 !important;
  letter-spacing: 3px !important;
  color: #aa8f6e !important;
}

.fitcall-confirm-value {
  font-size: 20px !important;
  line-height: 1.5 !important;
  font-weight: 300 !important;
  color: #171513 !important;
}

.fitcall-confirm-muted {
  font-size: 13px !important;
  color: #aa8f6e !important;
  white-space: nowrap !important;
}

.fitcall-confirm-button {
  appearance: none !important;
  -webkit-appearance: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #171513 !important;
  color: #fff !important;
  font-family: 'Noto Sans Thai', sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: 4px !important;
  line-height: 1.4 !important;
  padding: 18px 34px !important;
  margin-top: 30px !important;
  min-width: 250px !important;
  cursor: pointer !important;
  text-align: center !important;
}

.fitcall-confirm-button:hover,
.fitcall-confirm-button:focus {
  background: #2a2723 !important;
  color: #fff !important;
}

.fitcall-native-submit-hidden,
.fitcall-native-submit-wrap-hidden {
  display: none !important;
}

@media (max-width: 767px) {
  .fitcall-confirm-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  .fitcall-confirm-button {
    width: 100% !important;
    min-width: 0 !important;
  }
}

/* v0.2.17 — targeted mobile repair based on live diagnostics.
 * Bit Form's outer form is already viewport-wide. The broken Step 02 view is
 * caused by field blocks / option groups retaining desktop grid columns and by
 * a horizontal offset after moving to the next step. Keep every b1-* field on
 * a full mobile grid row and stack option items into one column.
 */
@media (max-width: 767px) {
  html,
  body,
  body .wrapper,
  body .wrapper_inner,
  body .content,
  body .content_inner {
    overflow-x: clip !important;
    max-width: 100vw !important;
  }

  /* Each Step 01–04 field is one full mobile row in Bit Form's grid. */
  .b2-bit-form .btcd-fld-itm[class*="b1-"] {
    grid-column: 1 / -1 !important;
    grid-column-start: 1 !important;
    grid-column-end: -1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /* Option wrappers must never sit in desktop columns outside the viewport. */
  .b2-bit-form [class*="b1-"][class*="-cw"] {
    position: relative !important;
    left: 0 !important;
    right: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-column: 1 / -1 !important;
    grid-column-start: 1 !important;
    grid-column-end: -1 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    transform: none !important;
    box-sizing: border-box !important;
  }

  .b2-bit-form [class*="b1-"][class*="-cl"],
  .b2-bit-form [class*="b1-"][class*="-ct"] {
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    box-sizing: border-box !important;
  }
}

/* v0.3.0 — booking commit state. */
.fitcall-confirm-button.is-busy,
.fitcall-confirm-button:disabled {
  opacity: .62 !important;
  cursor: wait !important;
  pointer-events: none !important;
}
