*,
::before,
::after {
    margin: 0;
    box-sizing: border-box;
}

[class^="col-"] {
    flex: 1 0 auto;
    /* padding: 0 1rem; */
}

.row {
    display: flex;
    flex-flow: row wrap;
}

/* .flex-row>* { */
/* flex: 1; allow children to grow when space available */
/* } */

.justify-center {
    justify-content: center;
}

.justify-content-center {
    justify-content: center;
}

.align-center {
    align-items: center;
}

.align-content {
    align-content: center;
}

.hidden {
    display: none;
}

.text-truncate {
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

.text-center {
    text-align: center;
}

.text-left {
    text-align: left;
}

.text-right {
    text-align: right;
}

.text-justify {
    text-align: justify;
}

.text-white {
    color: white;
}

.text-black {
    color: black;
}

.text-muted {
    color: #808080;
}

.text-error {
    color: red;
}

.text-uppercase {
    text-transform: uppercase;
}

.pill {
    background-color: var(--color-theme-1);
    border: none;
    color: white;
    padding: 5px 10px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    margin: 4px 2px;
    cursor: pointer;
    border-radius: 16px;
}

/* Flexbox */
.d-flex {
    display: flex;
}

.flex-1 {
    flex: 1;
}

.flex-row {
    flex-direction: row;
}

.flex-column {
    flex-direction: column;
}

.flex-wrap {
    flex-wrap: wrap;
}

.flex-grow {
    flex-grow: 1
}

.flex-start {
    justify-content: start;
}

.flex-center {
    justify-content: center;
}

.flex-end {
    justify-content: end;
}

.d-inline-block {
    display: inline-block;
}

.relative {
    position: relative;
}

.absolute {
    position: absolute;
}

.top-0 {
    top: 0;
}

.bottom-0 {
    bottom: 0;
}

.right-0 {
    right: 0;
}

.left-0 {
    left: 0;
}

.float-left {
    float: left;
}

.float-right {
    float: right;
}

.col-12 {
    /* flex: 100%; */
    flex-basis: 100%;
    max-width: 100%;
    min-width: 100%;
}

.col-10 {
    /* flex: 83.33%; */
    flex-basis: 83.33%;
    max-width: 83.33%;
}

.col-9 {
    flex-basis: 75%;
    max-width: 75%;
}

.col-8 {
    /* flex: 66.67%; */
    flex-basis: 66.66%;
    max-width: 66.66%;
}

.col-7 {
    flex-basis: 58.33%;
    max-width: 58.33%;
}

.col-6 {
    /* flex: 50%; */
    flex-basis: 50%;
    max-width: 50%;
}

.col-5 {
    flex-basis: 41.65%;
    max-width: 41.65%;
}

.col-4 {
    /* flex: 33.33%; */
    flex-basis: 33.33%;
    max-width: 33.33%;
}

.col-3 {
    /* flex: 25%; */
    flex-basis: 25%;
    max-width: 25%;
}

.col-2 {
    /* flex: 16.67%; */
    flex-basis: 16.66%;
    max-width: 16.66%;
}

.col-1 {
    /* flex: 8.33%; */
    flex-basis: 8.33%;
    max-width: 8.33%;
}

.col-0 {
    /* flex: 0%; */
    flex-basis: 0%;
    max-width: 0%;
}

/* xl */
@media screen and (min-width: 1201px) {
    .col-xl-12 {
        flex-basis: 100%;
        max-width: 100%;
    }

    .col-xl-10 {
        flex-basis: 83.33%;
        max-width: 83.33%;
    }

    .col-xl-9 {
        flex-basis: 75%;
        max-width: 75%;
    }

    .col-xl-8 {
        flex-basis: 66.66%;
        max-width: 66.66%;
    }

    .col-xl-8 {
        flex-basis: 58.33%;
        max-width: 58.33%;
    }

    .col-xl-6 {
        flex-basis: 50%;
        max-width: 50%;
    }

    .col-xl-5 {
        flex-basis: 41.65%;
        max-width: 41.65%;
    }

    .col-xl-4 {
        flex-basis: 33.33%;
        max-width: 33.33%;
    }

    .col-xl-3 {
        flex-basis: 25%;
        max-width: 25%;
    }

    .col-xl-2 {
        flex-basis: 16.66%;
        max-width: 16.66%;
    }

    .col-xl-1 {
        flex-basis: 8.33%;
        max-width: 8.33%;
    }

    .col-xl-0 {
        flex-basis: 0%;
        max-width: 0%;
    }
}

/* lg */
@media screen and (max-width: 1200px) {
    .col-lg-12 {
        flex-basis: 100%;
        max-width: 100%;
    }

    .col-lg-10 {
        flex-basis: 83.33%;
        max-width: 83.33%;
    }

    .col-lg-9 {
        flex-basis: 75%;
        max-width: 75%;
    }

    .col-lg-8 {
        flex-basis: 66.66%;
        max-width: 66.66%;
    }

    .col-lg-7 {
        flex-basis: 58.33%;
        max-width: 58.33%;
    }

    .col-lg-6 {
        flex-basis: 50%;
        max-width: 50%;
    }

    .col-lg-5 {
        flex-basis: 41.65%;
        max-width: 41.65%;
    }

    .col-lg-4 {
        flex-basis: 33.33%;
        max-width: 33.33%;
    }

    .col-lg-3 {
        flex-basis: 25%;
        max-width: 25%;
    }

    .col-lg-2 {
        flex-basis: 16.66%;
        max-width: 16.66%;
    }

    .col-lg-1 {
        flex-basis: 8.33%;
        max-width: 8.33%;
    }

    .col-lg-0 {
        flex-basis: 0%;
        max-width: 0%;
    }
}

/* md */
@media screen and (max-width: 992px) {
    .col-md-12 {
        flex-basis: 100%;
        max-width: 100%;
    }

    .col-md-10 {
        flex-basis: 83.33%;
        max-width: 83.33%;
    }

    .col-md-9 {
        flex-basis: 75%;
        max-width: 75%;
    }

    .col-md-8 {
        flex-basis: 66.66%;
        max-width: 66.66%;
    }

    .col-md-7 {
        flex-basis: 58.33%;
        max-width: 58.33%;
    }

    .col-md-6 {
        flex-basis: 50%;
        max-width: 50%;
    }

    .col-md-5 {
        flex-basis: 41.65%;
        max-width: 41.65%;
    }

    .col-md-4 {
        flex-basis: 33.33%;
        max-width: 33.33%;
    }

    .col-md-3 {
        flex-basis: 25%;
        max-width: 25%;
    }

    .col-md-2 {
        flex-basis: 16.66%;
        max-width: 16.66%;
    }

    .col-md-1 {
        flex-basis: 8.33%;
        max-width: 8.33%;
    }

    .col-md-0 {
        flex-basis: 0%;
        max-width: 0%;
    }
}

/* md */
@media screen and (min-width: 769px) {
    .hidden-md-and-up {
        display: none;
    }
}

/* sm */
@media screen and (max-width: 768px) {
    .col-sm-12 {
        flex-basis: 100%;
        max-width: 100%;
    }

    .col-sm-10 {
        flex-basis: 83.33%;
        max-width: 83.33%;
    }

    .col-sm-9 {
        flex-basis: 75%;
        max-width: 75%;
    }

    .col-sm-8 {
        flex-basis: 66.66%;
        max-width: 66.66%;
    }

    .col-sm-7 {
        flex-basis: 58.33%;
        max-width: 58.33%;
    }

    .col-sm-6 {
        flex-basis: 50%;
        max-width: 50%;
    }

    .col-sm-5 {
        flex-basis: 41.65%;
        max-width: 41.65%;
    }

    .col-sm-4 {
        flex-basis: 33.33%;
        max-width: 33.33%;
    }

    .col-sm-3 {
        flex-basis: 25%;
        max-width: 25%;
    }

    .col-sm-2 {
        flex-basis: 16.66%;
        max-width: 16.66%;
    }

    .col-sm-1 {
        flex-basis: 8.33%;
        max-width: 8.33%;
    }

    .col-sm-0 {
        flex-basis: 0%;
        max-width: 0%;
    }

    .hidden-sm-and-down {
        display: none;
    }
}

/* xs */
@media screen and (max-width: 576px) {
    .col-xs-12 {
        flex-basis: 100%;
        max-width: 100%;
    }

    .col-xs-10 {
        flex-basis: 83.33%;
        max-width: 83.33%;
    }

    .col-xs-9 {
        flex-basis: 75%;
        max-width: 75%;
    }

    .col-xs-8 {
        flex-basis: 66.66%;
        max-width: 66.66%;
    }

    .col-xs-7 {
        flex-basis: 58.33%;
        max-width: 58.33%;
    }

    .col-xs-6 {
        flex-basis: 50%;
        max-width: 50%;
    }

    .col-xs-5 {
        flex-basis: 41.65%;
        max-width: 41.65%;
    }

    .col-xs-4 {
        flex-basis: 33.33%;
        max-width: 33.33%;
    }

    .col-xs-3 {
        flex-basis: 25%;
        max-width: 25%;
    }

    .col-xs-2 {
        flex-basis: 16.66%;
        max-width: 16.66%;
    }

    .col-xs-1 {
        flex-basis: 8.33%;
        max-width: 8.33%;
    }

    .col-xs-0 {
        flex-basis: 0%;
        max-width: 0%;
    }
}

/* margins */
.ma-0 {
    margin: 0em 0em;
}

.ma-1 {
    margin: 0.3em 0.3em;
}

.ma-2 {
    margin: 0.5em 0.5em;
}

.ma-3 {
    margin: 1em 1em;
}

.ma-4 {
    margin: 1.5em 1.5em;
}

.ma-5 {
    margin: 2em 2em;
}

.my-0 {
    margin-top: 0px;
    margin-bottom: 0px;
}

.my-1 {
    margin-top: .3em;
    margin-bottom: .3em;
}

.my-2 {
    margin-top: .5em;
    margin-bottom: .5em;
}

.my-3 {
    margin-top: 1em;
    margin-bottom: 1em;
}

.my-4 {
    margin-top: 1.5em;
    margin-bottom: 1.5em;
}

.my-5 {
    margin-top: 2em;
    margin-bottom: 2em;
}

.my-10 {
    margin-top: 3em;
    margin-bottom: 3em;
}

.mt-0 {
    margin-top: 0;
}

.mt-1 {
    margin-top: .3em;
}

.mt-2 {
    margin-top: .5em;
}

.mt-3 {
    margin-top: 1em;
}

.mt-4 {
    margin-top: 1.5em;
}

.mt-5 {
    margin-top: 2em;
}

.mr-0 {
    margin-right: 0;
}

.mr-1 {
    margin-right: .3em;
}

.mr-2 {
    margin-right: .5em;
}

.mr-3 {
    margin-right: 1em;
}

.mr-4 {
    margin-right: 1.5em;
}

.mr-5 {
    margin-right: 2em;
}

.ml-0 {
    margin-left: 0;
}

.ml-1 {
    margin-left: .3em;
}

.ml-2 {
    margin-left: .5em;
}

.ml-3 {
    margin-left: 1em;
}

.ml-4 {
    margin-left: 1.5em;
}

.ml-5 {
    margin-left: 2em;
}

.mx-0 {
    margin-left: 0;
    margin-right: 0;
}

.mx-1 {
    margin-left: .3em;
    margin-right: .3em;
}

.mx-2 {
    margin-left: .5em;
    margin-right: .5em;
}

.mx-3 {
    margin-left: 1em;
    margin-right: 1em;
}

.mx-4 {
    margin-left: 1.5em;
    margin-right: 1.5em;
}

.mx-5 {
    margin-left: 2em;
    margin-right: 2em;
}

/* paddings */
.pa-0 {
    padding: 0;
}

.pa-1 {
    padding: .3em;
}

.pa-2 {
    padding: .5em;
}

.pa-3 {
    padding: 1em;
}

.pa-4 {
    padding: 1.5em;
}

.pa-5 {
    padding: 2em;
}

.px-0 {
    padding-left: 0em;
    padding-right: 0em;
}

.px-1 {
    padding-left: .3em;
    padding-right: .3em;
}

.px-2 {
    padding-left: .5em;
    padding-right: .5em;
}

.px-3 {
    padding-left: 1em;
    padding-right: 1em;
}

.px-4 {
    padding-left: 1.5em;
    padding-right: 1.5em;
}

.px-5 {
    padding-left: 2em;
    padding-right: 2em;
}

.py-0 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.py-1 {
    padding-top: .3em;
    padding-bottom: .3em;
}

.py-2 {
    padding-top: .5em;
    padding-bottom: .5em;
}

.py-3 {
    padding-top: 1em;
    padding-bottom: 1em;
}

.py-4 {
    padding-top: 1.5em;
    padding-bottom: 1.5em;
}

.py-5 {
    padding-top: 2em;
    padding-bottom: 2em;
}

.pt-0 {
    padding-top: 0px !important;
}

.pt-1 {
    padding-top: .3em;
}

.pt-2 {
    padding-top: .5em;
}

.pt-3 {
    padding-top: 1em;
}

.pt-4 {
    padding-top: 1.5em;
}

.pt-5 {
    padding-top: 2em;
}

.pl-1 {
    padding-left: .3em;
}

.pl-2 {
    padding-left: .5em;
}

.pl-3 {
    padding-left: 1em;
}

.pl-4 {
    padding-left: 1.5em;
}

.pl-5 {
    padding-left: 2em;
}

.pr-1 {
    padding-right: .3em;
}

.pr-2 {
    padding-right: .5em;
}

.pr-3 {
    padding-right: 1em;
}

.pr-4 {
    padding-right: 1.5em;
}

.pr-5 {
    padding-right: 2em;
}

/* borders */
.border-primary {
    border: 2px solid var(--color-theme-1);
}

.border-secondary {
    border: 2px solid var(--color-theme-2);
}

.border-radius-02 {
    border-radius: .2em;
}

.border-radius-04 {
    border-radius: .4em;
}

.border-radius-06 {
    border-radius: .6em;
}

.border-radius-08 {
    border-radius: .8em;
}

.border-radius-1 {
    border-radius: 1em;
}

.border-0 {
    border: none;
}

.border-1 {
    border: 2px solid red;
}

.border-2 {
    border: 2px solid blue;
}

.border-3 {
    border: 2px solid green;
}

.border-4 {
    border: 2px solid orange;
}

.border-5 {
    border: 2px solid lightgreen;
}

/* .btn {
    padding: 0.4em;
    border-radius: 0.4em;
    background: rgba(255, 255, 255, 0.3);
    border: 2px solid var(--color-theme-1);
    color: var(--color-theme-1);
    margin: 0.3em;
} */

/* .btn:hover {
    cursor: pointer;
    border: var(--color-theme-1);
    color: #fff;
} */