.input-component {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
  position: relative;
}

.input-label {
  font: var(--body-b3);
  color: var(--dark);
}

.input-required {
  color: var(--error);
}

.input-field {
  width: 100% !important;
  font: var(--body-b4) !important;
  color: var(--off-black) !important;
  background-color: var(--white) !important;
  border: 1px solid var(--stone) !important;
  border-radius: var(--radius-8) !important;
  outline: none !important;
  padding: 10px 14px !important;
  box-sizing: border-box !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  transition: border-color 0.3s ease-in-out;
  height: unset !important;
  box-shadow: none !important;
}

.input-field::placeholder {
  color: var(--smoke);
}

.input-field:focus {
  border-color: var(--burnt-orange) !important;
  box-shadow: none !important;
}

.input-field:focus:hover {
  border-color: var(--burnt-orange) !important;
  box-shadow: none !important;
}

.input-field:hover {
  box-shadow: none !important;
  border: 1px solid var(--charcoal) !important;
}

select.input-field {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%23363635' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 12px 8px !important;
  padding-right: 40px !important;
  cursor: pointer;
}

.input-textarea {
  resize: none;
  min-height: 120px;
  scrollbar-width: none;
}

.input-textarea::-webkit-scrollbar {
  display: none;
}

.input-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}

.input-char-counter {
  font: var(--body-b5);
  color: var(--smoke);
  margin-left: auto;
  flex-shrink: 0;
}

.input-error-message {
  font: var(--body-b5);
  color: var(--error);
  display: block;
  position: absolute;
  bottom: -24px;
}

.input-state-error .input-field {
  border-color: var(--error) !important;
}

.input-state-error .input-field:focus {
  box-shadow: none !important;
  border-color: var(--error) !important;
}
