fieldset {
    margin: 1rem 0 0 0;
    padding: 0;
    border: none;
}

.form-radio, .form-group {
    position: relative;
    margin-top: 2rem;
}

.form-inline > .form-group, .form-inline > .btn {
    display: inline-block;
    margin-bottom: 0;
}

.form-help {
    margin-top: 0.125rem;
    margin-left: 0.125rem;
    color: #3c3c3b;
    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: #3c3c3b;
    font-size: 1rem;
    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: #3c3c3b;
    font-size: 1rem;
    -webkit-transition: all 0.28s ease;
    transition: all 0.28s ease;
    white-space: nowrap;
}

.form-group .bar {
    position: relative;
    border-bottom: 2px solid #c7c7c7;
    display: block;
}

.form-group .bar::before {
    content: '';
    height: 2px;
    width: 0;
    left: 50%;
    bottom: -2px;
    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;
    font-size: 1em;
}

.form-group input[type="file"] {
    line-height: 1;
}

.form-group input[type="file"] ~ .bar {
    display: none;
}

.image-upload input[type="file"] {
    display: none;
}

.image-upload-thumbnails img {
    object-fit: cover;
    width: 3.25rem;
    height: 3.25rem;
    box-shadow: 0 4px 80px 0 rgb(0 0 0 / 10%);
}

.image-upload-thumbnails {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.image-upload-thumbnails .thumbnail {
    position: relative;
}

.image-upload-thumbnails button {
    position: absolute;
    bottom: 0;
    right: 0;
    background: #fff;
    border-radius: 50%;
    transform: translate(50%,50%);
    padding: .3rem;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0px 0px 15px 0px rgba(169, 169, 169, .5);
}

.image-upload-thumbnails svg {
    width: .6rem;
    height: .6rem;
}

.image-upload-thumbnails button:hover {
    box-shadow: 0px 0px 15px 0px rgba(169, 169, 169, .8);
}

.image-upload-thumbnails button:hover svg {
    fill: #bf1e2e;
}

.image-upload {
    border: 2px solid #f3f3f3;
    display: flex;
    padding: 6px 12px;
    width: 100%;
    flex-wrap: wrap;
}

.image-upload label {
    padding: 1rem 1rem 1rem .5rem;
    cursor: pointer;
}

.image-upload label span {
    text-decoration: underline;
}

.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: #3c3c3b;
}

.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):not([type="checkbox"]) ~ .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.has-value ~ .control-label, .form-group textarea.form-file ~ .control-label, .form-group textarea.has-value ~ .control-label {
    font-size: 0.666rem;
    color: #3c3c3b;
    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: #3c3c3b;
}

.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 2em;
    text-align: left;
    color: #3c3c3b;
    line-height: 1em;
    display: flex;
    align-items: center;
    font-size: 1rem;
}

.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: 1rem;
    margin-bottom: 1rem;
}

label +.radio, label +.checkbox {
    margin-top: 1rem;
}

.checkbox .helper {
    color: #999;
    position: absolute;
    top: -.025em;
    left: 0;
    width: 1em;
    height: 1em;
    z-index: 0;
    border: 0.125em solid currentColor;
    -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;
    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.65em;
    left: 0.38em;
    -webkit-transform: rotate(-135deg);
    transform: rotate(-135deg);
    /* box-shadow: 0 0 0 0.0625rem #fff; */
}

.checkbox .helper::after {
    top: .32em;
    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.5em;
}

.checkbox input:checked ~ .helper::before {
    height: 1em;
    -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: #bf1e2e;
}

.validate-error {
    font-size: 13px;
}

.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: #e5e0c4;
}

.has-error .bar::before {
    background: #e5e0c4;
    left: 0;
    width: 100%;
}

.required {
    position: relative;
}

div.required:before {
    content: '*';
    position: absolute;
    right: 0.2em;
    top: 0;
    font-size: 1.2em;
    color: #000;
}

abbr.required {
    color: #000 !important;
}

.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;
}
