/* ── Grid Layout ── */
.forminator-ui .forminator-row,
.field-row {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 1rem !important;
  margin-bottom: 1rem !important;
}

.forminator-ui .forminator-col-12 {
  grid-column: 1 / -1 !important;
}

.field-row > .checkbox,
.field-row > .field-col-2 {
  grid-column: 1 / -1 !important;
}

@media (min-width: 640px) {
  .field-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .field-row .form-field {
    margin-bottom: 0 !important;
  }
}

/* ── Labels ── */
.form-field label.booking-label,
.forminator-ui .forminator-label {
  display: block;
  margin-bottom: 0.375rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #0d1117;
}

.forminator-ui .forminator-required,
.form-field label.booking-label .required {
  color: #c4694a !important;
}

/* ── Inputs & Textarea ── */
.form-field input,
.form-field select,
.form-field textarea,
.forminator-ui .forminator-input,
.forminator-ui .forminator-textarea {
  max-width: 100% !important;
  width: 100% !important;
  padding: 12px 16px !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 12px !important;
  font-size: 14px !important;
  color: #1a1a1a !important;
  background: #fff !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  min-height: 48px !important;
  line-height: 1.4 !important;
}

.form-field select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238892a4' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 0.875rem center !important;
  padding-right: 2.5rem !important;
}

.form-field select:focus,
.form-field input:focus,
.form-field textarea:focus,
.forminator-ui .forminator-input:focus,
.forminator-ui .forminator-textarea:focus,
.forminator-ui .forminator-select:focus {
  border-color: #c4694a !important;
  box-shadow: 0 0 0 3px rgba(196, 105, 74, 0.1) !important;
  outline: none !important;
}

.forminator-ui .forminator-textarea,
.form-field textarea {
  resize: vertical !important;
  min-height: 120px !important;
}

.forminator-ui .forminator-input::placeholder,
.forminator-ui .forminator-textarea::placeholder,
.form-field textarea::placeholder,
.form-field input::placeholder,
.form-field select::placeholder {
  color: #9ca3af !important;
}

/* Checkbox */
.checkbox {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  cursor: pointer;
  font-size: 0.8125rem;
  color: #4a5568;
  line-height: 1.45;
}

.checkbox span {
  line-height: 1.9;
}

.checkbox input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.checkbox .checkbox-box {
  flex-shrink: 0;
  width: 1.125rem;
  height: 1.125rem;
  margin-top: 0.125rem;
  border: 1.5px solid #e8ecf2;
  border-radius: 0.25rem;
  background: #fff;
  transition: border-color 0.2s, background 0.2s;
}

.checkbox input:checked + .checkbox-box {
  border-color: #c4694a;
  background: #c4694a;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2 6l3 3 5-5' stroke='white' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
}

/* Date field — Date Range Picker trigger */
.date-picker-wrap {
  position: relative;
  display: block;
  cursor: pointer;
}

.date-picker-input {
  width: 100%;
  padding-right: 2.75rem;
  cursor: pointer;
  min-height: 2.75rem;
}

.date-picker-input::placeholder {
  color: #8892a4;
}

.date-picker-input:focus {
  border-color: #c4694a;
  box-shadow: 0 0 0 3px rgba(196, 105, 74, 0.15);
}

.date-picker-icon {
  position: absolute;
  right: 0.875rem;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.125rem;
  height: 1.125rem;
  color: #8892a4;
  pointer-events: none;
  transition: color 0.2s;
}

.date-picker-icon svg {
  width: 100%;
  height: 100%;
}

.date-picker-wrap:focus-within .date-picker-icon {
  color: #c4694a;
}

.date-picker-wrap:has(.date-picker-input.is-invalid) .date-picker-icon {
  color: #dc2626;
}

.date-picker-input.is-invalid {
  border-color: #dc2626;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12);
}

/* ── Select2 Container ── */
.forminator-ui .select2-container {
  width: 100% !important;
}

.forminator-ui .select2-container .select2-selection--single {
  height: 48px !important;
  padding: 0 !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: none !important;
  display: flex !important;
  align-items: center !important;
}

.forminator-ui
  .select2-container
  .select2-selection--single
  .select2-selection__rendered {
  padding: 0 40px 0 16px !important;
  font-size: 14px !important;
  color: #1a1a1a !important;
  line-height: 48px !important;
  height: 48px !important;
}

.forminator-ui
  .select2-container
  .select2-selection--single
  .select2-selection__placeholder {
  color: #9ca3af !important;
}

.forminator-ui
  .select2-container
  .select2-selection--single
  .select2-selection__arrow {
  top: 2px !important;
  right: 14px !important;
  height: auto !important;
  width: auto !important;
}

.forminator-ui
  .select2-container
  .select2-selection--single
  .select2-selection__arrow
  b {
  border-color: #6b7280 transparent transparent transparent !important;
  border-width: 5px 4px 0 4px !important;
  margin: 0 !important;
  left: auto !important;
  top: auto !important;
}

.forminator-ui
  .select2-container.select2-container--open
  .select2-selection--single
  .select2-selection__arrow
  b {
  border-color: transparent transparent #6b7280 transparent !important;
  border-width: 0 4px 5px 4px !important;
}

.forminator-ui
  .select2-container.select2-container--focus
  .select2-selection--single,
.forminator-ui
  .select2-container.select2-container--open
  .select2-selection--single {
  border-color: #c4694a !important;
  box-shadow: 0 0 0 3px rgba(196, 105, 74, 0.1) !important;
}

/* ── Select2 Dropdown Panel ── */
.forminator-select-dropdown {
  border: 1px solid #e5e7eb !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15) !important;
  margin-top: 6px !important;
  padding: 6px !important;
  background: #fff !important;
}

.forminator-select-dropdown .select2-results__option {
  padding: 12px 16px !important;
  font-size: 14px !important;
  color: #1a1a1a !important;
  border-radius: 8px !important;
  margin-bottom: 2px !important;
  line-height: 1.4 !important;
}

.forminator-select-dropdown .select2-results__option--highlighted {
  background: #fdf0eb !important;
  color: #c4694a !important;
}

.forminator-select-dropdown .select2-results__option[aria-selected="true"] {
  background: #fdf0eb !important;
  color: #c4694a !important;
  font-weight: 500 !important;
}

.forminator-select-dropdown
  .select2-results__option--highlighted[aria-selected] {
  background-color: #c4694a !important;
  color: #fff !important;
}

.forminator-select-dropdown .select2-search--dropdown {
  padding: 4px 4px 8px !important;
}

.forminator-select-dropdown .select2-search__field {
  padding: 10px 14px !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 8px !important;
  font-size: 14px !important;
  font-family: inherit !important;
  outline: none !important;
  box-sizing: border-box !important;
  width: 100% !important;
}

.forminator-select-dropdown .select2-search__field:focus {
  border-color: #c4694a !important;
  box-shadow: none !important;
}

.forminator-select-dropdown .select2-results > .select2-results__options {
  max-height: 240px;
}

/* ── Submit Button ── */
.forminator-ui .forminator-button-submit {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  height: 48px !important;
  padding: 0 28px !important;
  background: #0d1117 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 999px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  box-shadow: none !important;
  width: auto !important;
  font-family: inherit !important;
}

.forminator-ui .forminator-button-submit:hover {
  background: #1a1a1a !important;
}

/* ── Success Message ── */
.forminator-ui .forminator-response-message.forminator-success {
  background: #fdf0eb !important;
  border: 1px solid #f5d5c8 !important;
  color: #15803d !important;
  border-radius: 12px !important;
  padding: 16px !important;
  font-size: 14px !important;
  text-align: center !important;
  box-shadow: none !important;
  margin-top: 20px !important;
}

/* ── Error Message ── */
.forminator-ui .forminator-error-message {
  font-size: 12px !important;
  color: #dc2626 !important;
  margin-top: 4px !important;
}

/* ── Field Spacing ── */
.forminator-ui .forminator-field {
  margin-bottom: 0 !important;
}

/* ── Mobile ── */
@media (max-width: 640px) {
  .forminator-ui .forminator-row {
    grid-template-columns: 1fr !important;
  }
}
