/* Shared native controls, based on the homepage quick finder.
 * Keep the actual select/input in place so labels, keyboard navigation, browser
 * validation, autofill, form serialization and reset work without JavaScript.
 * Component dimensions and grid layouts continue to come from app.css.
 */
body input,
body select,
body textarea {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  font-family: inherit;
  font-size: 16px;
  color: #171717;
  color-scheme: light;
}

body input:not([type]),
body input[type="text"],
body input[type="email"],
body input[type="search"],
body input[type="tel"],
body input[type="url"],
body input[type="password"],
body input[type="number"],
body textarea,
body select:not([multiple]):not([size]),
body select[size="1"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-text-fill-color: currentColor;
}

/* Border, fill and radii match the existing 47px finder controls. Native check,
 * radio, date, time, range and file widgets retain their platform affordances.
 */
:where(
  [data-ajax-form] input:not([type]),
  [data-ajax-form] input[type="text"],
  [data-ajax-form] input[type="email"],
  [data-ajax-form] input[type="tel"],
  [data-ajax-form] input[type="url"],
  [data-ajax-form] input[type="number"],
  [data-ajax-form] select,
  [data-ajax-form] textarea
) {
  width: 100%;
  min-height: 47px;
  padding: 13px 14px;
  border: 1px solid #e6e6e6;
  border-radius: 15px;
  background-color: #f7f7f7;
  line-height: 1.4;
  box-shadow: none;
}

:where([data-ajax-form] textarea) {
  min-height: 110px;
  resize: vertical;
}

body select:not([multiple]):not([size]),
body select[size="1"] {
  padding-right: 42px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23636363' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 16px 16px;
  cursor: pointer;
  text-overflow: ellipsis;
}

body select option,
body select optgroup {
  background: #fff;
  color: #171717;
  font-size: 16px;
}

body input:focus-visible,
body select:focus-visible,
body textarea:focus-visible {
  outline: 3px solid #737373;
  outline-offset: 3px;
}

body input:disabled,
body select:disabled,
body textarea:disabled {
  cursor: not-allowed;
  opacity: .6;
  -webkit-text-fill-color: currentColor;
}

.contacts-field > span,
.contacts-consent,
[data-ajax-form] label,
[data-ajax-form] .form-message {
  font-size: 14px;
}

/* Preserve the established switch and filter controls. */
body input[type="checkbox"],
body input[type="radio"] {
  accent-color: #171717;
  flex-shrink: 0;
}

@media (forced-colors: active) {
  body select:not([multiple]):not([size]),
  body select[size="1"] {
    -webkit-appearance: auto;
    appearance: auto;
    background-image: none;
  }
}
