// Form control
// *******************************************************************************
.form-control {
  //? Form control (all size) padding calc due to border increase on focus
  padding: calc($input-padding-y - $input-border-width) calc($input-padding-x - $input-border-width);
  // form input placeholder animation
  &::placeholder,
  &:focus::placeholder {
    transition: all 0.2s ease;
  }
  // border color on hover state
  &:hover {
    &:not([disabled]):not([focus]) {
      border-color: $input-border-hover-color;
    }
  }
  // ! FIX: wizard-ex input type number placeholder align issue
  &[type='number'] {
    .input-group & {
      line-height: 1.375rem;
      min-height: 2.375rem;
    }
    .input-group-lg & {
      line-height: 1.5rem;
      min-height: 3rem;
    }
    .input-group-sm & {
      min-height: 1.875rem;
    }
  }

  &:focus {
    border-width: $input-focus-border-width;
    padding: calc($input-padding-y - $input-focus-border-width) calc($input-padding-x - $input-focus-border-width);
  }
  &.form-control-lg {
    padding: calc($input-padding-y-lg - $input-border-width) calc($input-padding-x-lg - $input-border-width);
    &:focus {
      padding: calc($input-padding-y-lg - $input-focus-border-width)
        calc($input-padding-x-lg - $input-focus-border-width);
    }
  }
  &.form-control-sm {
    padding: calc($input-padding-y-sm - $input-border-width) calc($input-padding-x-sm - $input-border-width);
    &:focus {
      padding: calc($input-padding-y-sm - $input-focus-border-width)
        calc($input-padding-x-sm - $input-focus-border-width);
    }
  }
}
.input-group:has(button) .form-control {
  padding: calc($input-padding-y - $input-border-width) calc($input-padding-x - $input-border-width) !important;
  border-width: $input-border-width !important;
}
// ltr only
@include ltr-only {
  .form-control:not([readonly]) {
    &:focus::placeholder {
      transform: translateX(5px);
    }
  }
}
// rtl only
@include rtl-only {
  input[type='tel'] {
    text-align: right;
  }
  .form-control:not([readonly]) {
    &:focus::placeholder {
      transform: translateX(-5px);
    }
  }
}
