/**
 * @license EUPL-1.2+
 * Copyright Gemeente Amsterdam
 */

@use "../../common/print-exact" as *;
@use "../../common/resets" as *;
@use "../../common/text-rendering" as *;

.ams-search-field {
  display: flex;
  isolation: isolate; // create new stacking context, so the input’s z-index doesn’t escape the component
}

.ams-search-field__input {
  @include reset-input;

  background-color: var(--ams-search-field-input-background-color);
  border-color: var(--ams-search-field-input-border-color);
  border-style: var(--ams-search-field-input-border-style);
  border-width: var(--ams-search-field-input-border-width);
  box-sizing: border-box;
  color: var(--ams-search-field-input-color);
  font-family: var(--ams-search-field-input-font-family);
  font-size: var(--ams-search-field-input-font-size);
  font-weight: var(--ams-search-field-input-font-weight);
  inline-size: 100%;
  line-height: var(--ams-search-field-input-line-height);
  outline-offset: var(--ams-search-field-input-outline-offset);
  padding-block: var(--ams-search-field-input-padding-block);
  padding-inline: var(--ams-search-field-input-padding-inline);
  touch-action: manipulation;

  @include print-exact;
  @include text-rendering;

  &:focus {
    z-index: 1; // Make sure the focus outline isn’t cut off by the adjacent button
  }
}

.ams-search-field__input::placeholder {
  @include reset-placeholder;

  color: var(--ams-search-field-input-placeholder-color);
}

.ams-search-field__input:not(:disabled):invalid,
.ams-search-field__input:not(:disabled)[aria-invalid="true"] {
  border-color: var(--ams-search-field-input-invalid-border-color);
}

.ams-search-field__input:not(:disabled):hover {
  box-shadow: var(--ams-search-field-input-hover-box-shadow);
}

.ams-search-field__input:not(:disabled):invalid:hover,
.ams-search-field__input:not(:disabled)[aria-invalid="true"]:hover {
  border-color: var(--ams-search-field-input-invalid-hover-border-color);
  box-shadow: var(--ams-search-field-input-invalid-hover-box-shadow);
}

.ams-search-field__input::-webkit-search-cancel-button {
  appearance: none;
  background-image: var(--ams-search-field-input-cancel-button-background-image);
  block-size: var(--ams-search-field-input-cancel-button-block-size);
  cursor: var(--ams-search-field-input-cancel-button-cursor);
  inline-size: var(--ams-search-field-input-cancel-button-inline-size);
  margin-inline-start: 0.5rem;
}
