/* Inline field validation errors */
.field-error-message {
  display: block;
  margin-top: 6px;
  margin-bottom: 2px;
  font-size: 13px;
  line-height: 1.4;
  color: #c0392b;
  font-weight: 500;
}

/* Book-now: input row wrapper — icon centers on control only, not on error text below */
.taxi-booking-form .form-field-control {
  position: relative;
  width: 100%;
  min-height: 50px;
}

.taxi-booking-form .form-field-control > i,
.taxi-booking-form .form-field-control > i.las {
  position: absolute !important;
  right: 12px !important;
  top: 50% !important;
  left: auto !important;
  transform: translateY(-50%) !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
  font-size: 20px !important;
  color: #ff9900 !important;
  z-index: 3;
  pointer-events: none;
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.taxi-booking-form .form-field.has-field-error .form-field-control > i {
  color: #e74c3c !important;
}

.taxi-booking-form .form-field-control .form-control,
.taxi-booking-form .form-field-control select,
.taxi-booking-form .form-field-control .nice-select {
  width: 100%;
}

.taxi-booking-form .form-field-control .form-control {
  padding-right: 42px !important;
}

.taxi-booking-form .form-field-control .phone-input-group {
  display: flex;
  gap: 10px;
  width: 100%;
  min-height: 50px;
  align-items: stretch;
}

.taxi-booking-form .form-field-control .phone-input-group .form-control {
  padding-right: 12px !important;
}

/* Icon beside phone row: center on the group */
.taxi-booking-form .form-field-control:has(.phone-input-group) > i {
  top: 50% !important;
}

.taxi-booking-form .form-field-control .autocomplete-dropdown {
  top: 100%;
  left: 0;
  right: 0;
}

/* Override Bootstrap .is-invalid background icon */
.taxi-booking-form .form-control.is-invalid,
.taxi-booking-form select.is-invalid,
.taxi-booking-form textarea.is-invalid,
.taxi-booking-form input.is-invalid {
  border-color: #e74c3c !important;
  box-shadow: 0 0 0 1px rgba(231, 76, 60, 0.2) !important;
  background-image: none !important;
  background-repeat: no-repeat !important;
}

.taxi-booking-form .form-control:invalid:not(.is-invalid) {
  border-color: #ccc !important;
  box-shadow: none !important;
  background-image: none !important;
}

.taxi-booking-form .form-field.has-field-error .form-field-control .form-control,
.taxi-booking-form .form-field.has-field-error .form-field-control .nice-select {
  border-color: #e74c3c !important;
}

.taxi-booking-form .nice-select.is-invalid {
  border-color: #e74c3c !important;
  background-image: none !important;
  padding-right: 42px !important;
}

.taxi-booking-form .nice-select.is-invalid:after {
  border-color: #e74c3c;
}

/* Generic forms (contact, etc.) */
.form-control.is-invalid,
select.is-invalid,
textarea.is-invalid,
input.is-invalid {
  border-color: #e74c3c !important;
  box-shadow: 0 0 0 1px rgba(231, 76, 60, 0.2) !important;
  background-image: none !important;
}

.mb-3 .form-control.is-invalid,
.mb-3 textarea.is-invalid {
  padding-right: 12px !important;
}

/* Landing (Tailwind) forms */
.space-y-2 .field-error-message,
.space-y-4 .field-error-message {
  margin-left: 4px;
}

.space-y-2 input.is-invalid,
.space-y-2 select.is-invalid,
.space-y-4 input.is-invalid,
.space-y-4 select.is-invalid {
  border: 1px solid #e74c3c !important;
  background-image: none !important;
  box-shadow: none !important;
}

.space-y-2 input:invalid:not(.is-invalid),
.space-y-4 input:invalid:not(.is-invalid) {
  border-color: transparent;
}
