.search-field {
  --search-field-radius: 4px;

  position: relative;
  display: flex;
  min-width: 0;
}

.search-field--rounded {
  --search-field-radius: 999px;
}

.search-field__icon {
  position: absolute;
  top: 50%;
  left: 14px;
  display: flex;
  color: var(--color-ambient-mint-dark);
  transform: translateY(-50%);
  pointer-events: none;
}

.search-field__icon .icon {
  width: 20px;
  height: 20px;
}

.search-field__icon--button {
  left: 2px;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: calc(var(--search-field-radius) - 1px);
  background: transparent;
  cursor: pointer;
  pointer-events: auto;
}

.search-field__icon--button:hover {
  color: var(--color-font-primary);
}

.search-field__icon--button:focus-visible {
  outline: 2px solid var(--color-ambient-mint-dark);
  outline-offset: -2px;
}

.search-field__input {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: 48px;
  padding: 0 48px 0 44px;
  border: 1px solid var(--color-ambient-mint-light);
  border-radius: var(--search-field-radius);
  background: var(--color-surface-white);
  color: var(--color-font-primary);
  font-family: var(--font-primary);
  font-size: 16px;
  font-style: normal;
  line-height: 1.4;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

.search-field__input::-moz-placeholder {
  color: var(--color-font-primary);
  font-style: italic;
  opacity: 0.8;
}

.search-field__input::placeholder {
  color: var(--color-font-primary);
  font-style: italic;
  opacity: 0.8;
}

.search-field .search-field__input:focus {
  outline: 2px solid var(--color-ambient-mint-dark);
  outline-offset: -2px;
}

.search-field__input::-webkit-search-cancel-button {
  display: none;
}

.search-field__clear {
  position: absolute;
  top: 50%;
  right: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: calc(var(--search-field-radius) - 1px);
  background: transparent;
  color: var(--color-font-primary);
  transform: translateY(-50%);
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

.search-field__clear[hidden] {
  display: none;
}

.search-field__clear .icon {
  width: 16px;
  height: 16px;
}

.search-field__clear:hover {
  color: var(--color-ambient-mint-dark);
}

.search-field .search-field__clear:focus-visible {
  outline: 2px solid var(--color-ambient-mint-dark);
  outline-offset: -2px;
}
