:root {
    --primary: aliceblue;
    --secondary: rgb(2, 200, 255);
    --color-dark: #0e1521;
    --font-family: "Open Sans", sans-serif;
    --border: 1px solid rgb(255, 255, 255);
    --border-5: 5px solid rgb(2 200 255);
    --box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.629);
    --box-shadow-hover: 15px 10px 2px rgb(2, 200, 255);

}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background-attachment: fixed;
    background-repeat: no-repeat;
    height: 100vh;
    font-family: var(--font-family);
}

a {
    color: inherit;
    text-decoration: none;
}

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

.flex-row-nowrap {
    flex-flow: row nowrap;
}

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

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

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

.align-items-end {
    align-items: flex-end;
}

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

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

.justify-content-between {
    justify-content: space-between;
}

.justify-content-evenly {
    justify-content: space-evenly;
}

.justify-content-around {
    justify-content: space-around;
}

.flex-fill {
    flex: 1;
}

/*Margins*/
.m-5 {
    margin: 5px;
}

.m-10 {
    margin: 10px;
}

.m-20 {
    margin: 20px;
}

.m-50 {
    margin: 50px
}

.m-100 {
    padding-top: 100px;
}

.mr-5 {
    margin-right: 5px;
}

.mr-20 {
    margin-right: 20px;
}

.mr-50 {
    margin-right: 50px;
}

.mb-20 {
    margin-bottom: 20px;
}

/* Paddings */
.p-5 {
    padding: 5px;
}

.p-10 {
    padding: 10px;
}

.p-20 {
    padding: 20px;
}

.pb-20 {
    padding-bottom: 20px;
}

.py-20 {
    padding-top: 20px;
    padding-bottom: 20px;
}

.py-50 {
    padding-top: 50px;
    padding-bottom: 50px;
}

ul {
    list-style: none;
}

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

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

/* LOADER */
.background-loader {
    z-index: 100;
    position: absolute;
    width: 100%;
    height: 100%;
    background: var(--color-dark);
    display: flex;
    align-items: center;
    justify-content: center;
}

.custom-loader {
    width: 250px;
    height: 30px;
    border-radius: 20px;
    color: var(--primary);
    border: 2px solid;
    z-index: 100;
    display: flex;
    justify-content: center;
    position: absolute;
    text-align: center;
    font-size: larger;
    font-weight: bold;
}

.custom-loader::before {
    content: "";
    position: absolute;
    margin: 1px;
    inset: 0 100% 0 0;
    z-index: 100;
    border-radius: inherit;
    background: var(--secondary);
    animation: p6 0.6s infinite;
}

.fondu-out {
    opacity: 0;
    transition: opacity 1s ease-out;
}

@keyframes p6 {
    100% {
        inset: 0
    }
}