:root {
    --serif-font: serif;
    --sans-serif-font: sans-serif;
    --font-size-title: 2rem;
    --timer: 11.5s;

    /* Custom Colors */
    --main-color: #312f4d;
    --main-color-acc: #59558a;
    --secondary-color: #F4F6FF;
    --secondary-color-acc: #d1d3db;
    --secondary-color-transp: #F4F6FFCC;
    --third-color: #ffe600;
    --third-color-acc: #ed7203;
    --third-color-transparent: #ffe60066;
    --sidebar-bg-color: #6EC1E4;
    --sidebar-link-bg: #248E82;
    --footer-bg-color: #757575;
    --nav-bg: #FFFFFF;
    --nav-border: none;
    --bg-main: #F0F0F0;
    --text-light: #FFFFFF;

    --gray-1: #EEEEEE;
    --gray-2: #DDDDDD;
    --gray-3: #CCCCCC;
    --gray-4: #BBBBBB;
    --gray-5: #AAAAAA;
    --gray-6: #999999;
    --gray-7: #888888;
    --gray-8: #888888;
    --gray-9: #777777;
    --gray-10: #666666;
    --gray-11: #555555;
    --gray-12: #444444;
    --gray-13: #333333;
    --gray-14: #222222;
    --gray-15: #111111;

    --filter-main-color: invert(80%) sepia(33%) saturate(4605%) hue-rotate(319deg) brightness(100%) contrast(97%);
    --filter-red: invert(20%) sepia(86%) saturate(6385%) hue-rotate(357deg) brightness(96%) contrast(122%);
}

@font-face {
    font-family: 'Phenomena';
    font-weight: 400;
    src: url(/public/assets/fonts/phenomena/Phenomena-Regular.otf) format('opentype');
}

@font-face {
    font-family: 'Phenomena-Bold';
    font-weight: 700;
    src: url(/public/assets/fonts/phenomena/Phenomena-Bold.otf) format('opentype');
}

@font-face {
    font-family: 'Phenomena-ExtraBold';
    font-weight: 1000;
    src: url(/public/assets/fonts/phenomena/Phenomena-ExtraBold.otf) format('opentype');
}


/***** DOM Elements *****/
html {
    height: -webkit-fill-available;
    width: 100vw;
    overflow-x: hidden;
}

body {
    font-family: Arial, Sans-serif;
    min-height: 100vh;
    background-color: var(--bg-main);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Phenomena-Bold", Arial, sans-serif !important;
}

h1 {
    font-size: 2.5rem;
}

h2 {
    font-size: 1.75rem;
}

h3 {
    font-size: 1.5rem;
}

h4 {
    font-size: 1.2rem;
}

h5 {
    font-size: 1rem;
}

h6 {
    font-size: 1rem;
}


footer {
    background-color: var(--main-color);
    color: #FFF;

    .social-media {
        width: 40px;
        height: 40px;
        display: flex;

        svg {
            stroke: #FFF;
            fill: #FFF;
            transition: all .3s;
        }
    }
}

/***** Ids *****/

#page_container {
    margin-top: 120px;
    margin-bottom: 10px;

    #first-elem-content {
        height: 200px;
    }
}

#logout {
    cursor: pointer;

    * {
        cursor: pointer;
    }
}

#navbar,
.offcanvas {
    background-color: var(--secondary-color);

    .offcanvas-header,
    .offcanvas-body {
        background-color: var(--secondary-color) !important;
    }
}

#navbar-fixed {
    display: flex;
    flex-direction: column;
    padding-top: 0;

    #infos_open {
        background: var(--main-color);
        color: #fff;
        width: 100%;
        text-align: center;
    }

    #nav-container {
        background-color: var(--secondary-color);
        height: 80px;
        display: flex;
        box-shadow: 0 5px 10px 0 #00000080;
        transition: all 0.8s;
        width: 100%;
        align-items: center;
        justify-content: center;

        .offcanvas {
            flex-grow: 0;

            .nav-item {
                display: flex;
                align-items: center;
                margin: 0 10px;

                .nav-link {
                    color: var(--main-color) !important;
                    text-transform: uppercase;
                }
            }
        }

        &.sliding {
            height: 70px;

            #nav-logo-div {
                img {
                    max-height: 70px;
                    margin-top: 0;
                }
            }
        }

        #nav-logo-div {
            z-index: 1040;

            img {
                max-height: 100px;
                margin-top: 20px;
                transition: all 0.8s;
            }

            img.scroll {
                max-height: 75px;
            }

        }
    }

    .navbar-toggler {
        position: absolute;
        right: 10px;
    }
}

#partenaires {
    width: 100%;
    justify-content: center;

    img {
        height: 100px;
    }

    .col-4 {
        text-align: center;
    }
}

/***** Classes *****/
.container {}

.text-xxs {
    font-size: 0.3em;
}

.text-xs {
    font-size: 0.5em;
}

.text-s {
    font-size: 0.8em;
}

.text-m {
    font-size: 1em;
}

.text-l {
    font-size: 1.2em;
}

.text-xl {
    font-size: 1.5em;
}

.text-xxl {
    font-size: 2em;
}

.text-3xl {
    font-size: 3em;
}

.text-4xl {
    font-size: 4em;
}

.text-main {
    color: var(--main-color);
}

.s-font {
    font-family: "Seagram-tfb", Sans-serif !important;
}

.fty-font {
    font-family: "FTY-STRATEGYCIDE-NCV", Sans-serif !important;
}

.arvo-font {
    font-family: "Arvo", Sans-serif !important;
}

.btn {
    background-color: var(--third-color);
    border-color: var(--main-color);
    color: var(--main-color);

    &:hover,
    &:focus,
    &:active {
        background-color: var(--third-color-acc) !important;
        border-color: var(--main-color-acc) !important;
        color: var(--text-light);
    }
}

.btn-nobg {
    background: transparent;
    border: none;
    color: white;

    &::after {
        display: none !important;
    }

    &:hover,
    &:focus,
    &:active {
        background: transparent !important;
        color: var(--secondary-color);
    }

    &:active {
        color: var(--secondary-color-acc) !important;
    }
}

.msg_content {
    color: white;
}

.container-fluid {
    overflow: auto;
    margin: 0;
    padding: 0;
    border-radius: 10px;
    height: -webkit-fill-available;
    width: auto;
}


.breadcrumb-container {
    margin-left: 1em;
    margin-top: 1em;
}

.btn-transparent {
    background-color: transparent;
    border: none;

    &:hover,
    &:active,
    &:focus {
        background-color: transparent !important;
        border: none;
    }
}

.border-right {
    border-right: 1px solid;
}

.border-white {
    border-color: white;
}

.bg-main {
    background-color: var(--main-color) !important;
    color: white;
}

.bg-white {
    color: var(--main-color);
    background-color: white;
}

.w-max-content {
    width: max-content;
}

/***** Multiple *****/



/***** Imported Components *****/

/** Custom Toasts **/
#toast {
    position: fixed;
    margin: 20px 20px auto 0;
    right: 0;
    top: 0;
    z-index: 999;
}

/** Sidebar **/

.sidebar {
    background-color: var(--main-color);
    position: relative;
    width: 280px;
}

.sidebar-logo {
    text-decoration: none !important;
    padding-bottom: 1rem !important;
    margin-bottom: 1rem !important;
    align-items: center !important;
    justify-content: center !important;
    border-bottom: 1px solid var(--main-color) !important;
    display: flex !important;
}

.b-example-divider {
    flex-shrink: 0;
    width: 1.5rem;
    height: 100vh;
    background-color: rgba(0, 0, 0, .1);
    border: solid rgba(0, 0, 0, .15);
    border-width: 1px 0;
    box-shadow: inset 0 .5em 1.5em rgba(0, 0, 0, .1), inset 0 .125em .5em rgba(0, 0, 0, .15);
}

.bi {
    pointer-events: none;
    fill: currentColor;
}

.dropdown-toggle {
    outline: 0;
}

.nav-flush .nav-link {
    border-radius: 0;
}

.btn-toggle {
    display: inline-flex;
    align-items: center;
    padding: .25rem .5rem;
    font-weight: 600;
    color: white;
    background-color: transparent;
    border: 0;
}

.btn-toggle:hover,
.btn-toggle:focus,
.btn-toggle:active {
    color: var(--secondary-color) !important;
    background-color: transparent !important;
}

.btn-toggle::before {
    width: 1.25em;
    line-height: 0;
    stroke: white;
    content: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%28255,255,255,.5%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e");
    transition: transform .35s ease;
    transform-origin: .5em 50%;
}

.btn-toggle[aria-expanded="true"] {
    color: white;
}

.btn-toggle[aria-expanded="true"]::before {
    transform: rotate(90deg);
}

.btn-toggle-nav a {
    display: inline-flex;
    padding: .1875rem .5rem;
    margin-top: .125rem;
    margin-left: 1.25rem;
    text-decoration: none;
    transition: background-color .4s;
    color: white !important;
}

.btn-toggle-nav a:hover,
.btn-toggle-nav a:focus {
    background-color: var(--sidebar-link-bg);
}

.scrollarea {
    overflow-y: auto;
}

.fw-semibold {
    font-weight: 600;
}

.lh-tight {
    line-height: 1.25;
}


/** Custom Scroll **/
.custom-scroll {
    position: relative;

    .custom-grid {
        padding: 20px 0;
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: minmax(320px, 1fr);
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
        color: black;
        column-gap: 30px;
        scrollbar-color: red;

        .custom-card {
            text-decoration: none;
            background: var(--secondary-color);
            transition: all 0.3s ease;
            text-align: left;
            backdrop-filter: blur(6px);
            position: relative;
            border-radius: 10px;
            overflow: hidden;

            .card-img {
                height: 200px;
                overflow: hidden;
                border-radius: 10px;

                img {
                    min-height: 200px;
                    width: auto;
                    max-width: 100%;
                }
            }

            .card-body {
                padding: 1rem;
            }
        }
    }

    .custom-grid::-webkit-scrollbar-track {
        background: transparent;
    }


    /* Flèches */
    .scroll-arrow {
        height: fit-content !important;
        width: fit-content !important;
        padding: 9px !important;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        background: var(--third-color-transparent);
        color: var(--main-color);
        border: none;
        border-radius: 100%;
        opacity: 0;
        cursor: pointer;
        pointer-events: none;
        transition: opacity 0.25s ease;
        z-index: 2;

        svg {
            height: 50px;
            width: 50px;
            fill: var(--main-color);
        }
    }

    .scroll-arrow.left {
        left: 5px;
    }

    .scroll-arrow.right {
        right: 5px;
    }

    /* Visible */
    .scroll-arrow.visible {
        opacity: 1;
        pointer-events: auto;
    }

}

.bi-red {
    color: red;
}

/** Mega-Menu **/

/* Conteneur */
.mega-menu {
    position: absolute;
    top: 90%;
    left: 0;
    width: 100vw;
    background-color: var(--secondary-color);
    padding: 40px 0;
    box-shadow: 0 5px 10px -5px #00000080;
    opacity: 0;
    visibility: hidden;
    transform: translateY(15px);
    transition:
        opacity .25s ease,
        transform .25s ease,
        visibility .25s;

    z-index: 1000;

    .col-4 {
        text-align: center;
    }

}

/* Ouverture */
.mega-dropdown.open .mega-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}


/* Titres */
.mega-title {
    font-size: 1.3rem;
    color: var(--main-color);
    font-weight: 700;
    margin-bottom: 1rem;
}


/* Liens */
.mega-menu ul li {
    margin-bottom: .7rem;
}


.mega-menu a {
    text-decoration: none;
    color: var(--main-color);
    display: block;
    overflow: hidden;
    width: max-content;
    margin: auto;

    img {
        transition: all .4s;
        height: 200px;
    }
}

.mega-menu a:hover {
    img {
        transform: scale(1.05);
    }
}

/* Carte image */
.mega-card {
    background: #f8f8f8;
    padding: 20px;
    border-radius: 15px;
}

/* éviter que le menu dépasse */
@media(min-width:768px) {
    .mega-menu .container {
        max-width: 1400px;
    }
}


/***** Media querys *****/

/** Max-width **/
@media (max-width: 1399px) {}

@media (max-width: 1199px) {
    h1 {
        font-size: 2rem;
    }

    h2 {
        font-size: 1.5rem;
    }

    h3 {
        font-size: 1.3rem;
    }

    h4 {
        font-size: 1.1rem;
    }

    h5 {
        font-size: 0.9rem;
    }

    h6 {
        font-size: 0.9rem;
    }
}

@media (max-width: 991px) {
    h1 {
        font-size: 1.7rem;
    }

    h2 {
        font-size: 1.3rem;
    }

    h3 {
        font-size: 1.1rem;
    }

    h4 {
        font-size: 0.9rem;
    }

    h5 {
        font-size: 0.8rem;
    }

    h6 {
        font-size: 0.8rem;
    }

    .sidebar {
        width: 210px;
    }

    #partenaires {
        img {
            height: 75px !important;
        }
    }
}

@media (max-width: 767px) {
    .sidebar {
        display: none;
    }

    #nav-container {
        height: -webkit-fill-available;

        img {
            height: 70px !important;
            margin: 0 !important;
        }

    }

    #partenaires {
        img {
            height: 50px !important;
        }
    }
}

@media (max-width: 575px) {
    #page_container {
        margin-top: 140px;
    }

    #partenaires {
        img {
            height: 40px !important;
        }
    }
}

/** Min-width **/
@media (min-width: 1399px) {}

@media (min-width: 1199px) {}

@media (min-width: 991px) {}

@media (min-width: 767px) {}

@media (min-width: 575px) {}