fieldset {
    margin: 3rem 0 0 0;
    padding: 0;
    border: none;
}

.form-radio,
.form-group {
    position: relative;
    margin-top: 2.25rem;
}

.form-inline > .form-group,
.form-inline > .btn {
    display: inline-block;
    margin-bottom: 0;
}

.form-help {
    margin-top: 0.125rem;
    margin-left: 0.125rem;
    color: #b3b3b3;
    font-size: 0.8rem;
}

.checkbox .form-help,
.form-radio .form-help,
.form-group .form-help {
    position: absolute;
    width: 100%;
}

.checkbox .form-help {
    position: relative;
    margin-bottom: 1rem;
}

.form-radio .form-help {
    padding-top: 0.25rem;
    margin-top: -1rem;
}

.form-group input {
    height: 1.9rem;
}

.form-group textarea {
    resize: none;
}

.form-group select {
    width: 100%;
    font-size: 1rem;
    height: 1.9rem;
    padding: 0.125rem 0.125rem 0.0625rem;
    background: none;
    border: none;
    line-height: 1.6;
    box-shadow: none;
}

.form-group > label {
    color: #b3b3b3;
    font-size: 1rem;
    font-weight: normal;
    padding-left: 0.125rem;
}

.form-group .control-label {
    position: absolute;
    top: 0.25rem;
    left: 0;
    pointer-events: none;
    padding-left: 0.125rem;
    z-index: 1;
    color: #b3b3b3;
    font-size: 1rem;
    font-weight: normal;
    -webkit-transition: all 0.28s ease;
    transition: all 0.28s ease;
}

.form-group .bar {
    position: relative;
    border-bottom: 0.0625rem solid #d8d8d8;
    display: block;
}

.form-group .bar::before {
    content: '';
    height: 0.125rem;
    width: 0;
    left: 50%;
    bottom: -0.0625rem;
    position: absolute;
    background: #000;
    -webkit-transition: left 0.28s ease, width 0.28s ease;
    transition: left 0.28s ease, width 0.28s ease;
    z-index: 2;
}

.form-group input,
.form-group textarea {
    display: block;
    background: none;
    padding: 1.2rem 0;
    font-size: 1rem;
    border-width: 0;
    border-color: transparent;
    line-height: 1.9;
    width: 100%;
    color: transparent;
    -webkit-transition: all 0.28s ease;
    transition: all 0.28s ease;
    box-shadow: none;
    border-radius: 3px;
    font-size: 1em;
}

.form-group input[type="file"] {
    line-height: 1;
}

.form-group input[type="file"] ~ .bar {
    display: none;
}

.form-group select:focus,
.form-group select:valid,
.form-group input:focus,
.form-group input:valid,
.form-group input.form-file,
.form-group input.has-value,
.form-group textarea:focus,
.form-group textarea:valid,
.form-group textarea.form-file,
.form-group textarea.has-value {
    color: #333;
}

.form-group select:focus ~ .control-label,
.form-group select:valid ~ .control-label,
.form-group input:focus ~ .control-label,
.form-group input:required:valid ~ .control-label,
.form-group input:not([value=""]):not(:required) ~ .control-label,
.form-group input.form-file ~ .control-label,
.form-group input.has-value ~ .control-label,
.form-group textarea:focus ~ .control-label,
.form-group textarea:required:valid ~ .control-label,
.form-group textarea:not([value=""]):not(:required) ~ .control-label,
.form-group textarea.form-file ~ .control-label,
.form-group textarea.has-value ~ .control-label {
    font-size: 0.8rem;
    color: gray;
    top: -1rem;
    left: 0;
}

.form-group select:focus,
.form-group input:focus,
.form-group textarea:focus {
    outline: none;
}

.form-group select:focus ~ .control-label,
.form-group input:focus ~ .control-label,
.form-group textarea:focus ~ .control-label {
    color: #000;
}

.form-group select:focus ~ .bar::before,
.form-group input:focus ~ .bar::before,
.form-group textarea:focus ~ .bar::before {
    width: 100%;
    left: 0;
}

.checkbox label,
.form-radio .radio label {
    position: relative;
    cursor: pointer;
    padding: 1px 0 0 2rem;
    text-align: left;
    color: #333;
    display: block;
    line-height: 1.2em;
}

.checkbox input,
.form-radio input {
    width: auto;
    opacity: 0.00000001;
    position: absolute;
    left: 0;
    height: 0.1rem;
}

.radio {
    margin-bottom: 1rem;
}

.radio .helper {
    position: absolute;
    top: -0.25rem;
    left: -0.25rem;
    cursor: pointer;
    display: block;
    font-size: 1rem;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    color: #999;
}

.radio .helper::before,
.radio .helper::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    margin: 0.25rem;
    width: 1rem;
    height: 1rem;
    -webkit-transition: -webkit-transform 0.28s ease;
    transition: -webkit-transform 0.28s ease;
    transition: transform 0.28s ease;
    transition: transform 0.28s ease, -webkit-transform 0.28s ease;
    border-radius: 50%;
    border: 0.125rem solid currentColor;
}

.radio .helper::after {
    -webkit-transform: scale(0);
    transform: scale(0);
    background-color: #000;
    border-color: #000;
}

.radio input:focus + .helper,
.radio label:hover .helper {
    color: #000;
}

.radio input:checked ~ .helper::after {
    -webkit-transform: scale(0.5);
    transform: scale(0.5);
}

.radio input:checked ~ .helper::before {
    color: #000;
}

.checkbox {
    margin-top: 3rem;
    margin-bottom: 1rem;
}

label +.radio,
label +.checkbox {
    margin-top: 1rem;
}

.checkbox .helper {
    color: #999;
    position: absolute;
    top: 0;
    left: 0;
    width: 1rem;
    height: 1rem;
    z-index: 0;
    border: 0.125rem solid currentColor;
    border-radius: 0.0625rem;
    -webkit-transition: border-color 0.28s ease;
    transition: border-color 0.28s ease;
}

.checkbox .helper::before,
.checkbox .helper::after {
    position: absolute;
    height: 0;
    width: 0.2rem;
    background-color: #000;
    display: block;
    -webkit-transform-origin: left top;
    transform-origin: left top;
    border-radius: 0.25rem;
    content: '';
    -webkit-transition: opacity 0.28s ease, height 0s linear 0.28s;
    transition: opacity 0.28s ease, height 0s linear 0.28s;
    opacity: 0;
}

.checkbox .helper::before {
    top: 0.65rem;
    left: 0.38rem;
    -webkit-transform: rotate(-135deg);
    transform: rotate(-135deg);
    box-shadow: 0 0 0 0.0625rem #fff;
}

.checkbox .helper::after {
    top: 0.3rem;
    left: 0;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

.checkbox label:hover .helper {
    color: #000;
}

.checkbox input:checked ~ .helper {
    color: #000;
}

.checkbox input:checked ~ .helper::after,
.checkbox input:checked ~ .helper::before {
    opacity: 1;
    -webkit-transition: height 0.28s ease;
    transition: height 0.28s ease;
}

.checkbox input:checked ~ .helper::after {
    height: 0.5rem;
}

.checkbox input:checked ~ .helper::before {
    height: 1.2rem;
    -webkit-transition-delay: 0.28s;
    transition-delay: 0.28s;
}

.radio + .radio,
.checkbox + .checkbox {
    margin-top: 1rem;
}

.has-error .legend.legend,
.has-error.form-group .control-label.control-label {
    color: #fab234;
}

.has-error.form-group .form-help,
.has-error.form-group .helper,
.has-error.checkbox .form-help,
.has-error.checkbox .helper,
.has-error.radio .form-help,
.has-error.radio .helper,
.has-error.form-radio .form-help,
.has-error.form-radio .helper {
    color: #fab234;
}

.has-error .bar::before {
    background: #fab234;
    left: 0;
    width: 100%;
}

.required {
    position: relative;
}

.required:before {
    content: '*';
    position: absolute;
    left: -1em;
    top: 0;
    font-size: 0.8em;
    color: #000;
}

.toggle-password {
    position: relative;
}

.toggle-password input[type="checkbox"],
.toggle-password input[type="checkbox"] + span {
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1rem;
    height: 35%;
    cursor: pointer;
}

.toggle-password input[type="checkbox"] {
    opacity: 0;
}

.toggle-password input[type="checkbox"] + span {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512'%3E%3Cpath fill='gray' d='M288 144a110.94 110.94 0 0 0-31.24 5 55.4 55.4 0 0 1 7.24 27 56 56 0 0 1-56 56 55.4 55.4 0 0 1-27-7.24A111.71 111.71 0 1 0 288 144zm284.52 97.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400c-98.65 0-189.09-55-237.93-144C98.91 167 189.34 112 288 112s189.09 55 237.93 144C477.1 345 386.66 400 288 400z'/%3E%3C/svg%3E") center center no-repeat;
    pointer-events: none;
}

.toggle-password input[type="checkbox"]:checked + span {
    background: url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 512'%3E%3Cpath fill='gray' d='M634 471L36 3.51A16 16 0 0 0 13.51 6l-10 12.49A16 16 0 0 0 6 41l598 467.49a16 16 0 0 0 22.49-2.49l10-12.49A16 16 0 0 0 634 471zM296.79 146.47l134.79 105.38C429.36 191.91 380.48 144 320 144a112.26 112.26 0 0 0-23.21 2.47zm46.42 219.07L208.42 260.16C210.65 320.09 259.53 368 320 368a113 113 0 0 0 23.21-2.46zM320 112c98.65 0 189.09 55 237.93 144a285.53 285.53 0 0 1-44 60.2l37.74 29.5a333.7 333.7 0 0 0 52.9-75.11 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64c-36.7 0-71.71 7-104.63 18.81l46.41 36.29c18.94-4.3 38.34-7.1 58.22-7.1zm0 288c-98.65 0-189.08-55-237.93-144a285.47 285.47 0 0 1 44.05-60.19l-37.74-29.5a333.6 333.6 0 0 0-52.89 75.1 32.35 32.35 0 0 0 0 29.19C89.72 376.41 197.08 448 320 448c36.7 0 71.71-7.05 104.63-18.81l-46.41-36.28C359.28 397.2 339.89 400 320 400z'/%3E%3C/svg%3E") center center no-repeat;
}

.toggle-password input::-ms-reveal,
.toggle-password input::-ms-clear {
    display: none;
}

.form-group {
    position: relative;
}