
/***************************************************************************
* FORM
****************************************************************************/
/*** Basics ***/
form.typo_frontend_form label,
form.typo_frontend_form input,
form.typo_frontend_form select,
form.typo_frontend_form textarea {
    display: block;
    width: 100%;
}
form.typo_frontend_form input.button {
    width: auto;
}

/*** Repeater ***/
.typo_frontend_form .typo_column_repeater {
    position: relative;
}
.typo_frontend_form .repeater_wrapper {
    width: 100%;
    padding-right: 5rem;
}
.typo_frontend_form .typo_column_repeater fieldset {
    position: relative;
}
.typo_frontend_form .typo_column_repeater .add,
.typo_frontend_form .typo_column_repeater .remove {
    display: inline-block; cursor: pointer;
    height: 2rem; width: 2rem;
    margin: 0.125rem; border: 1px solid #888888;
    line-height: 2rem; text-align: center; 
}
.typo_frontend_form .typo_column_repeater .add {
    position: absolute;
    right: 0.75rem; bottom: 0.75rem;
}
.typo_frontend_form .typo_column_repeater .remove {
    position: absolute;
    bottom: 0; left: 100%;
    margin: 0 0 0 0.75rem;
}

/*** Loading ***/
form.typo_frontend_form.typo_loading {
    pointer-events: none;
    opacity: 0.5;
    position: relative;
}
form.typo_frontend_form.typo_loading .spinner {
    position: absolute; z-index: 200;
    top: 50%; left: 50%;
    width: 3rem; height: 3rem;
    border: 0.25rem solid currentColor;
    border-bottom-color: transparent;
    border-radius: 50%;
    transform: translate(-50%,-50%);
    animation: rotation 1s linear infinite;
}
@keyframes rotation {
    0% {transform: translate(-50%,-50%) rotate(0deg);}
    100% {transform: translate(-50%,-50%) rotate(360deg);}
} 


/*** HAS STYLE ***/
form.typo_frontend_form.typo_loading .spinner{
    border-color: var(--typo-primary-color,#000);
    border-bottom-color: transparent;
}

form.typo_frontend_form fieldset {
    border: none; padding: 0;
}
form.typo_frontend_form .typo_form_element > * {
    margin: 0;
}
form.typo_frontend_formm .repeater_wapper {
    padding-right: 8rem;
}
form.typo_frontend_form .typo_column_repeater .add,
form.typo_frontend_form .typo_column_repeater .remove {
    border: none; margin: 0;
    height: 3rem; width: 3rem; line-height: 3rem;
    background-color: #FFFFFF;
    /*border-radius: 0.5rem;*/
}
form.typo_frontend_form .typo_column_repeater .add {
    bottom: 1.5rem;
}
form.typo_frontend_form .typo_column_repeater .remove {
    margin: 0 0 0.75rem 1.25rem;
}
form.typo_frontend_form  .typo_column_repeater .typo_has_error .form_error {
    top: calc(100% - 0.5rem);
    left: 0;
}


/** HAS STYLE – ERROR **/
form.typo_frontend_form .typo_has_error input,
form.typo_frontend_form .typo_has_error select,
form.typo_frontend_form .typo_has_error textarea {
    border-color: #FFA3A3;
}
form.typo_frontend_form .typo_has_error {
    position: relative;
}
form.typo_frontend_form .typo_has_error .form_error {
    position: absolute;
    top: calc(100% - 0.75rem);
    left: 0.75rem;
    background-color: #FFA3A3;
    font-size: 0.875rem;
    z-index: 200;
    padding: 0.375rem 0.5rem;
    line-height: 1.2;
    border-radius: 0.375rem;
}
form.typo_frontend_form .typo_message {
    width: 100%; padding: 1rem; 
    background-color: var(--typo-primary-color,#000);
    color: #FFFFFF;
}



/****************************************************************************
* Repeater Addon
*****************************************************************************/
.typo_column_repeater .activate_repeater_field {
    display: inline-block;
    width: auto;
}
.typo_column_repeater .activate_repeater_field + label {
    display: inline-block;
    margin-left: 0.5rem;
    width: auto;
}
.wrapper .typo_frontend_form .typo_column_repeater .repeater_wrapper,
.wrapper .typo_frontend_form .typo_column_repeater .add {
    display: none;
}
.wrapper .typo_frontend_form .typo_column_repeater.active_repeater .repeater_wrapper,
.wrapper .typo_frontend_form .typo_column_repeater.active_repeater .add {
    display: block;
}