/* ==========================================================================
   Forms — Ultra Modern Dark
   Inputs, selects, search forms, lead capture.
   Source: ultra modern dark design guide.md, section 11
   ========================================================================== */

/* ---------- Global inputs ---------- */

input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="url"],
input[type="number"],
input[type="date"],
select,
textarea,
.form-control {
  background-color: var(--input-bg);
  color: var(--text-primary);
  border: 1px solid var(--input-border);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: var(--text-body);
  padding: 12px 16px;
  min-height: 48px;
  transition: var(--transition);
  -webkit-appearance: none;
}

input::placeholder,
textarea::placeholder,
.form-control::placeholder {
  color: var(--input-placeholder);
}

input:focus,
select:focus,
textarea:focus,
.form-control:focus {
  outline: none;
  border-color: var(--input-focus-border);
  box-shadow: var(--input-focus-shadow);
  background-color: var(--input-bg);
  color: var(--text-primary);
}

/* ---------- Labels ---------- */

label {
  color: var(--text-secondary);
  font-family: var(--font-body);
  font-weight: 500;
  font-size: var(--text-small);
}

/* ---------- Bootstrap select overrides ---------- */

.bootstrap-select .dropdown-toggle,
.bootstrap-select .btn {
  background-color: var(--input-bg);
  border: 1px solid var(--input-border);
  color: var(--text-secondary);
  border-radius: var(--radius-sm);
  min-height: 48px;
  box-shadow: none;
}

.bootstrap-select .dropdown-toggle:hover,
.bootstrap-select .dropdown-toggle:focus,
.bootstrap-select .btn:hover,
.bootstrap-select .btn:focus {
  background-color: var(--surface);
  border-color: var(--border-strong);
  color: var(--text-primary);
}

.bootstrap-select .dropdown-menu {
  background: var(--surface-elevated);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-elevated);
}

.bootstrap-select .dropdown-menu li a {
  color: var(--text-secondary);
  padding: 10px 16px;
}

.bootstrap-select .dropdown-menu li a:hover,
.bootstrap-select .dropdown-menu .active a,
.bootstrap-select .dropdown-menu .selected a {
  background-color: rgba(255, 255, 255, 0.06);
  color: var(--text-primary);
}

.bootstrap-select .caret,
.bootstrap-select .bs-caret::after {
  border-top-color: var(--text-muted);
}

.bootstrap-select .filter-option-inner-inner {
  color: inherit;
}

/* ---------- Chosen select overrides ---------- */

.chosen-container-single .chosen-single {
  background: var(--input-bg);
  border: 1px solid var(--input-border);
  color: var(--text-secondary);
  border-radius: var(--radius-sm);
  height: 48px;
  line-height: 48px;
  padding: 0 12px;
  box-shadow: none;
}

.chosen-container-single .chosen-single span {
  color: var(--text-secondary);
  text-transform: capitalize;
}

.chosen-container .chosen-drop {
  background: var(--surface-elevated);
  border: 1px solid var(--border-subtle);
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  box-shadow: var(--shadow-soft);
}

.chosen-container .chosen-results li {
  color: var(--text-secondary);
}

.chosen-container .chosen-results li.highlighted {
  background-color: rgba(255, 255, 255, 0.06);
  color: var(--text-primary);
}

.chosen-container-active .chosen-single,
.chosen-container-active.chosen-with-drop .chosen-single {
  border-color: var(--input-focus-border);
  box-shadow: var(--input-focus-shadow);
}

/* ---------- IDX search widget ---------- */

.rws_idxSearchWidget label {
  display: none;
}

.rws_idxSearchWidget .chosen-container {
  display: block;
  width: 100%;
}

/* ---------- Search form container ---------- */

#rws_search_form {
  background: var(--surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding: 32px;
  box-shadow: var(--shadow-soft);
}

/* ---------- Search form grid layout ---------- */

#rws_search_form .search_items {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px 20px;
  margin-bottom: 0;
}

#rws_search_form .search_item {
  float: none;
  width: 100%;
  padding: 0;
  min-width: 0;
}

#rws_search_form .search_item label {
  display: block;
  font-weight: 600;
  margin-bottom: 6px;
  max-width: 100%;
  color: var(--text-secondary);
  font-size: 13px;
}

#rws_search_form .search_item select,
#rws_search_form .search_item input[type="text"] {
  width: 100%;
}

#rws_search_form .chosen-container {
  width: 100% !important;
}

/* ---------- Search form fieldset groups ---------- */

#rws_search_form .search-group {
  border: none;
  border-bottom: 1px solid var(--border-subtle);
  margin: 0;
  padding: 0 0 20px;
  margin-bottom: 24px;
}

#rws_search_form .search-group:last-of-type {
  border-bottom: none;
  margin-bottom: 16px;
  padding-bottom: 0;
}

#rws_search_form .search-group legend {
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
  padding: 0 0 12px;
  margin: 0;
  width: auto;
  border: none;
  float: none;
}

#rws_search_form .search-group .search_items + .search_items {
  margin-top: 16px;
}

/* ---------- Search form submit ---------- */

#rws_search_form .search_items--submit {
  display: flex;
  justify-content: center;
  padding-top: 8px;
}

#rws_search_form .search_item--submit {
  float: none;
  width: auto;
  padding: 0;
}

#rws_search_form .rws_search_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-width: 240px;
  max-width: 320px;
  padding: 14px 32px;
  background: var(--accent-red);
  color: #fff;
  border: none;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
}

#rws_search_form .rws_search_button:hover,
#rws_search_form .rws_search_button:focus {
  background: #b8222a;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(217, 41, 47, 0.3);
}

#rws_search_form .rws_search_button .fa {
  font-size: 14px;
}

/* ---------- Chosen multi-select dark theme ---------- */

.chosen-container-multi .chosen-choices {
  background: var(--input-bg);
  border: 1px solid var(--input-border);
  border-radius: var(--radius-sm);
  min-height: 48px;
  padding: 6px 8px;
  box-shadow: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}

.chosen-container-multi.chosen-container-active .chosen-choices {
  border-color: var(--input-focus-border);
  box-shadow: var(--input-focus-shadow);
}

.chosen-container-multi .chosen-choices li.search-choice {
  background: var(--surface-elevated);
  border: 1px solid var(--border-subtle);
  color: var(--text-primary);
  border-radius: 6px;
  padding: 4px 22px 4px 10px;
  margin: 0;
  font-size: 13px;
  line-height: 1.4;
  position: relative;
  box-shadow: none;
  background-image: none;
}

.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  width: 12px;
  height: 12px;
  font-size: 0;
}

.chosen-container-multi .chosen-choices li.search-choice .search-choice-close::before {
  content: "\00d7";
  font-size: 16px;
  line-height: 1;
  color: var(--text-muted);
  display: block;
}

.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover::before {
  color: var(--accent-red);
}

.chosen-container-multi .chosen-choices li.search-field input[type="text"] {
  background: transparent;
  border: none;
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: 14px;
  min-height: auto;
  padding: 4px 0;
  margin: 0;
  box-shadow: none;
}

.chosen-container-multi .chosen-drop {
  background: var(--surface-elevated);
  border: 1px solid var(--border-subtle);
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  box-shadow: var(--shadow-soft);
}

.chosen-container-multi .chosen-results li {
  color: var(--text-secondary);
  padding: 8px 12px;
}

.chosen-container-multi .chosen-results li.highlighted {
  background: rgba(255, 255, 255, 0.06);
  color: var(--text-primary);
}

.chosen-container-multi .chosen-results li.result-selected {
  color: var(--text-muted);
}

/* ---------- Search form responsive ---------- */

@media (max-width: 991px) {
  #rws_search_form {
    padding: 24px;
  }

  #rws_search_form .search_items {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 575px) {
  #rws_search_form {
    padding: 20px 16px;
  }

  #rws_search_form .search_items {
    grid-template-columns: 1fr;
  }

  #rws_search_form .rws_search_button {
    max-width: 100%;
  }
}

.home-search-box label {
  display: none;
}

/* ---------- Contact / lead capture forms ---------- */

.contact-box {
  background-color: var(--surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding: 30px;
  min-height: 280px;
}

/* Valuation / search form panels — glassy elevated dark */
.ak-search .vc_row,
.property-search-box {
  background-color: var(--surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-soft);
}

/* ---------- Email subscribe ---------- */

.rws-mail input {
  width: 75%;
  padding: 8px 16px;
  border: 1px solid var(--border-subtle);
  background-color: var(--input-bg);
  color: var(--text-primary);
  border-radius: var(--radius-sm);
}

/* ---------- Advanced search ---------- */

.advanced-search {
  border-top: 1px solid var(--border-subtle);
}

.advanced-search .advance-btn {
  color: var(--text-muted);
}

.advanced-search .advance-btn:hover {
  color: var(--text-primary);
}

/* ---------- Input groups ---------- */

.input-group-addon {
  background-color: var(--surface);
  border-color: var(--input-border);
  color: var(--text-muted);
}

.field-group input,
.field-group select {
  background-color: var(--input-bg);
  border-color: var(--input-border);
  color: var(--text-primary);
}

.jplist-panel input[type="text"] {
  padding: 0px;
  min-height: 16px;
}
