.input-field {
  position: relative;
}

/* privacy button padding */
.input-field.with-icon input,
.input-field.form-privacy input {
  padding-left: 0.75rem;
  padding-right: 3.5rem;
}

/* input field base style */
.input-field textarea,
.input-field select,
.input-field input {
  display: block;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.75rem;
  padding-bottom: 0.5rem;

  width: 100%;

  border: solid 1px;
  border-radius: 0;
  --border-opacity: 1;
  border-color: #cccccc;
  border-color: rgba(204, 204, 204, var(--border-opacity));

  --text-opacity: 1;
  color: #404040;
  color: rgba(64, 64, 64, var(--text-opacity));
}

/* hide default aria focus */
.input-field .focused,
.input-field .not-empty {
  outline: none;
}

/* collapsed label definition */
.input-field label {
  position: absolute;
  pointer-events: none;

  --text-opacity: 1;
  color: #404040;
  color: rgba(64, 64, 64, var(--text-opacity));

  left: 0.625rem;
  top: 0.625rem;
  transition: 0.2s ease all;
  -moz-transition: 0.2s ease all;
  -webkit-transition: 0.2s ease all;
}

/* inset label when focused or not empty */
.input-field label.raised {
  font-size: 0.875rem;
  margin-left: 0.25rem;
  margin-top: -1.25rem;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  background-image: linear-gradient(0deg, #fff 0.675rem, transparent 0.675rem);
}

/* blue border when focused */
.input-field .focused {

  --border-opacity: 1;
  border-color: #0071ba;
  border-color: rgba(0, 113, 186, var(--border-opacity));
}

/* not used: select drop-down label */
.input-field select ~ label {
  --text-opacity: 1;
  color: #404040;
  color: rgba(64, 64, 64, var(--text-opacity));
}

/* non-focused label */
.input-field .not-empty:required:valid ~ label,
.input-field .not-empty:optional ~ label {
  --text-opacity: 1;
  color: #868686;
  color: rgba(134, 134, 134, var(--text-opacity));
}

/* focused label */
.input-field .focused ~ label,
.input-field .focused.not-empty:required:valid ~ label,
.input-field .focused.not-empty ~ label {
  --text-opacity: 1;
  color: #0071ba;
  color: rgba(0, 113, 186, var(--text-opacity));
}

/* invalid input border */
.input-field textarea:required:not(.empty):invalid,
.input-field input:required:not(.empty):invalid,
.input-field input:optional:invalid {
  --text-opacity: 1;
  border-color: #ea5e5f;
  /*color: rgba(234, 94, 95, var(--text-opacity));*/
}

/* hide label */
.input-field .no-label ~ label {
  display: none;
}

/* disabled input state */
.input-field input:disabled {
  cursor: not-allowed;

  --text-opacity: 1;
  color: #868686;
  color: rgba(134, 134, 134, var(--text-opacity));

  --bg-opacity: 1;
    background-color: #e7e7e7;
    background-color: rgba(231, 231, 231, var(--bg-opacity));
}

/* disabled label state */
.input-field input:disabled ~ label {
  --text-opacity: 1;
  color: #868686;
  color: rgba(134, 134, 134, var(--text-opacity));
}
