.p-0 {
    padding: 0 !important;
}

.danger {
    color: #dc3545 !important;
    line-height: 22px;
}

.text-primary {
    color: #3f6ad8 !important;
}

@keyframes spinner-border {
    to {
        transform: rotate(360deg);
    }
}

.spinner-border {
    display: inline-block;
    width: 2rem;
    height: 2rem;
    vertical-align: text-bottom;
    border: .25em solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: spinner-border .75s linear infinite;
}

.spinner-border-sm {
    width: 1rem;
    height: 1rem;
    border-width: .2em;
}

.was-validated .form-control:invalid, .form-control.is-invalid {
    border-color: #d92550;
    padding-right: 2.25rem;
    background-repeat: no-repeat;
    background-position: center right calc(2.25rem / 4);
    background-size: calc(2.25rem / 2) calc(2.25rem / 2);
    background-image: url("data:image/svg+xml,%3csvg xmlns='https://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2-277'%3e%3cpath stroke='%23d9534f' d='M00l33m0-3L03'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3c/svg%3E");
}

.btn.disabled, .btn:disabled {
    opacity: .65;
}

.form-optin p {
    margin: 5px 0 5px 0 !important;
}

#form-container {
    display: flex;
    /*flex-wrap: wrap;*/
}

#form-container button {
    text-align: center;
    user-select: none;
    background-color: transparent;
    border: 1px solid transparent;
    padding: .3rem .7rem;
    font-size: 0.8rem;
    line-height: 1.5;
    transition: color .15s, background-color .15s, border-color .15s, box-shadow .15s;
}

    #form-container label {
        display: unset !important;
        font-weight: 400 !important;
    }

    #form-container .form-control {
        display: block;
        width: 100%;
        height: calc(2.25rem+2px);
        padding: 1rem;
        font-weight: 400;
        line-height: 1.5;
        color: #495057;
        background-color: #fff;
        background-clip: padding-box;
        border: 1px solid #ced4da;
        border-radius: .25rem;
        transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out
    }
        #form-container .form-control:focus {
            color: #495057;
            background-color: #fff;
            border-color: #a9bcee;
            outline: 0;
        }

        #form-container .form-control:invalid, .form-control.is-invalid {
            border-color: #d92550 !important;
        }

    #form-container button .d-none {
        display: none !important
    }


/* Fit in if possible else wrap*/
.flex-responsive {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 8px;
}

    .flex-responsive .flex-item {
        flex: 0 1 auto;
        min-width: 200px;
    }

@media (max-width: 768px) {
    .flex-responsive {
        flex-direction: column;
    }

        .flex-responsive .flex-item {
            width: 100%;
        }
}

/* Always wrap with full width both full screen or mobile*/
.flex-wrap {
    flex-wrap: wrap !important
}

    .flex-wrap .flex-item {
        width: 100%;
        margin: .5rem;
    }