
  .vanilla-form .input-field {
    position: relative;
  }
.vanilla-form .input-field.with-icon input,
  .vanilla-form .input-field.form-privacy input {
    /* privacy button padding */
    padding-left: 0.75rem;
    padding-right: 3.5rem;
  }
.vanilla-form .input-field textarea,
  .vanilla-form .input-field select,
  .vanilla-form .input-field input {
    /* input field base style */
    display: block;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    border-width: 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));
  }
.vanilla-form .input-field .focused,
  .vanilla-form .input-field .not-empty {
    /* hide default aria focus */
    outline: 2px solid transparent;
    outline-offset: 2px;
  }
.vanilla-form .input-field label {
    /* collapsed label definition */
    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;
  }
.vanilla-form .input-field label.raised {
    /* inset label when focused or not empty */
    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);
  }
.vanilla-form .input-field .focused {
    /* blue border when focused */
    --border-opacity: 1;
    border-color: #0071ba;
    border-color: rgba(0, 113, 186, var(--border-opacity));
  }
.vanilla-form .input-field select ~ label {
    /* not used: select drop-down label */
    --text-opacity: 1;
    color: #404040;
    color: rgba(64, 64, 64, var(--text-opacity));
  }
.vanilla-form .input-field .not-empty:required:valid ~ label,
  .vanilla-form .input-field .not-empty:optional ~ label {
    /* non-focused label */
    --text-opacity: 1;
    color: #868686;
    color: rgba(134, 134, 134, var(--text-opacity));
  }
.vanilla-form .input-field .focused ~ label,
  .vanilla-form .input-field .focused.not-empty:required:valid ~ label,
  .vanilla-form .input-field .focused.not-empty ~ label {
    /* focused label */
    --text-opacity: 1;
    color: #0071ba;
    color: rgba(0, 113, 186, var(--text-opacity));
  }
.vanilla-form .input-field textarea:required:not(.empty):invalid,
  .vanilla-form .input-field input:required:not(.empty):invalid,
  .vanilla-form .input-field input:optional:invalid {
    /* invalid input border */
    --border-opacity: 1;
    border-color: #ea5e5f;
    border-color: rgba(234, 94, 95, var(--border-opacity));
  }
.vanilla-form .input-field .no-label ~ label {
    /* hide label */
    display: none;
  }
.vanilla-form .input-field input:disabled {
    /* disabled input state */
    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));
  }
.vanilla-form .input-field input:disabled ~ label {
    /* disabled label state */
    --text-opacity: 1;
    color: #868686;
    color: rgba(134, 134, 134, var(--text-opacity));
  }
.vanilla-form .select-field {
    position: relative;
  }
.vanilla-form .select-field select {
    /* input field base style */
    display: block;
    --bg-opacity: 1;
    background-color: #fff;
    background-color: rgba(255, 255, 255, var(--bg-opacity));
    padding-left: 0.75rem;
    padding-right: 2.5rem;
    border-width: 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));
    outline: 2px solid transparent;
    outline-offset: 2px;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    height: 50px;
    background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iNiIgdmlld0JveD0iMCAwIDEyIDYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wIDAuNTgwNjQ1QzAgMC40MzIwOTcgMC4wNjI3ODYxIDAuMjgzNDUyIDAuMTg4MzU3IDAuMTcwMTI5QzAuNDM5MzkzIC0wLjA1NjcwOTcgMC44NDYzMjEgLTAuMDU2NzA5NyAxLjA5NzM2IDAuMTcwMTI5TDYgNC41OTgyM0wxMC45MDI2IDAuMTcwMTI5QzExLjE1MzcgLTAuMDU2NzA5NyAxMS41NjA2IC0wLjA1NjcwOTcgMTEuODExNiAwLjE3MDEyOUMxMi4wNjI4IDAuMzk2Nzc0IDEyLjA2MjggMC43NjQ1MTYgMTEuODExNiAwLjk5MTE2MUw2LjQ1NDUgNS44Mjk4N0M2LjIwMzQ2IDYuMDU2NzEgNS43OTY1NCA2LjA1NjcxIDUuNTQ1NSA1LjgyOTg3TDAuMTg4MzU3IDAuOTkxMTYxQzAuMDYyNzg2MSAwLjg3NzgzOSAwIDAuNzI5MTk0IDAgMC41ODA2NDVaIiBmaWxsPSIjMUQyMjI1Ii8+PG1hc2sgaWQ9Im1hc2swIiBtYXNrLXR5cGU9ImFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTIiIGhlaWdodD0iNiI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wIDAuNTgwNjQ1QzAgMC40MzIwOTcgMC4wNjI3ODYxIDAuMjgzNDUyIDAuMTg4MzU3IDAuMTcwMTI5QzAuNDM5MzkzIC0wLjA1NjcwOTcgMC44NDYzMjEgLTAuMDU2NzA5NyAxLjA5NzM2IDAuMTcwMTI5TDYgNC41OTgyM0wxMC45MDI2IDAuMTcwMTI5QzExLjE1MzcgLTAuMDU2NzA5NyAxMS41NjA2IC0wLjA1NjcwOTcgMTEuODExNiAwLjE3MDEyOUMxMi4wNjI4IDAuMzk2Nzc0IDEyLjA2MjggMC43NjQ1MTYgMTEuODExNiAwLjk5MTE2MUw2LjQ1NDUgNS44Mjk4N0M2LjIwMzQ2IDYuMDU2NzEgNS43OTY1NCA2LjA1NjcxIDUuNTQ1NSA1LjgyOTg3TDAuMTg4MzU3IDAuOTkxMTYxQzAuMDYyNzg2MSAwLjg3NzgzOSAwIDAuNzI5MTk0IDAgMC41ODA2NDVaIiBmaWxsPSJ3aGl0ZSIvPjwvbWFzaz48ZyBtYXNrPSJ1cmwoI21hc2swKSI+PHJlY3QgeD0iLTEiIHk9Ii00IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9IiMwRDEyM0QiLz48L2c+PC9zdmc+');
    background-repeat: no-repeat;
    background-position: right .7em top 50%, 0 0;
    background-size: .65em auto, 100%;
  }
.vanilla-form .select-field label {
    /* collapsed label definition */
    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;
  }
.vanilla-form .select-field label.raised {
    /* inset label when focused or not empty */
    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);
  }
.vanilla-form .select-field .focused {
    /* blue border when focused */
    --border-opacity: 1;
    border-color: #0071ba;
    border-color: rgba(0, 113, 186, var(--border-opacity));
  }
.vanilla-form .select-field select ~ label {
    /* not used: select drop-down label */
    --text-opacity: 1;
    color: #404040;
    color: rgba(64, 64, 64, var(--text-opacity));
  }
.vanilla-form .select-field .not-empty:required:valid ~ label,
  .vanilla-form .select-field .not-empty:optional ~ label {
    /* non-focused label */
    --text-opacity: 1;
    color: #868686;
    color: rgba(134, 134, 134, var(--text-opacity));
  }
.vanilla-form .select-field .focused ~ label,
  .vanilla-form .select-field .focused ~ label.raised {
    /* focused label */
    --text-opacity: 1;
    color: #0071ba;
    color: rgba(0, 113, 186, var(--text-opacity));
  }
.vanilla-form .select-field .no-label ~ label {
    /* hide label */
    display: none;
  }
.vanilla-form .select-field input:disabled {
    /* disabled input state */
    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));
  }
.vanilla-form .select-field input:disabled ~ label {
    /* disabled label state */
    --text-opacity: 1;
    color: #868686;
    color: rgba(134, 134, 134, var(--text-opacity));
  }

