/* * {
    outline: 1px solid red !important;
} */




/* ============================= */
/*          VARIABLES            */
/* ============================= */
:root {
    --topBarHeight: 4.5vh;
    --topbar_right_Width: 18vw;
    --topbar_left_Width: 18vw;
    --sidebar_right_Width: 18vw;
    --sidebar_left_Width: 18vw;
    --footerHeight: 2vh;

    /* Hauteur de la topbar principale */
    --coef: calc(100vw / 1500);
    /* tu ajustes 1500 selon ton design */
}

/* Mobile standard */
@media (max-width: 399px) {
    :root {
        --sidebar_right_Width: 70vw;
        --sidebar_left_Width: 40vw;
        --topbar_right_Width: 70vw;
        --topbar_left_Width: 40vw;
        --topBarHeight: 8vh;
        /* Hauteur de la topbar principale */
        --coef: calc(100vw / 1500);
        /* tu ajustes 1500 selon ton design */
    }

}

/* Mobile large / Phablet */
@media (min-width: 400px) and (max-width: 599px) {
    :root {
        --sidebar_right_Width: 70vw;
        --sidebar_left_Width: 40vw;
        --topbar_right_Width: 70vw;
        --topbar_left_Width: 40vw;
        --topBarHeight: 8vh;
        /* Hauteur de la topbar principale */
        --coef: calc(100vw / 1500);
        /* tu ajustes 1500 selon ton design */
    }

}

/* Tablette portrait */
@media (min-width: 600px) and (max-width: 899px) {
    :root {
        --sidebar_right_Width: 70vw;
        --sidebar_left_Width: 40vw;
        --topbar_right_Width: 70vw;
        --topbar_left_Width: 40vw;
        --topBarHeight: 8vh;
        /* Hauteur de la topbar principale */
        --coef: calc(100vw / 1500);
        /* tu ajustes 1500 selon ton design */
    }

}

/* Desktop */
@media (min-width: 1200px) {}



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

html,
body {
    height: 100%;
    background: #ffffff;
    color: #333;
    font-family: arial, sans-serif;
}

body {
    display: flex;
    flex-direction: column;
}

/* Mobile standard */
@media (max-width: 399px) {
    body {}
}

/* Mobile large / Phablet */
@media (min-width: 400px) and (max-width: 599px) {
    body {}
}

/* Tablette portrait */
@media (min-width: 600px) and (max-width: 899px) {
    body {}
}

/* Desktop */
@media (min-width: 1200px) {
    body {}
}

/* Dark Mode automatique, changeable via bouton thème */
html.dark_mode body {
    background: #121212;
    color: #eee;
}





/* ============================= */
/*          TYPOGRAPHIE           */
/* ============================= */
h1,
h2,
h3,
h4 {
    font-weight: bold;
}

/* ============================= */
/*          TOPBAR               */
/* ============================= */
.topbar {
    display: flex;
    flex-direction: row;
    /* Alignement horizontal */
    align-items: center;
    /* Centrer verticalement */
    justify-content: space-between;
    /* Répartir les sections */
    height: var(--topBarHeight);
    /* Hauteur fixe */
    background: #704531;
    color: white;
    font-family: CambayDevanagari_Bold, sans-serif;
    width: 100%;
    overflow: hidden;
    /* Empêche le contenu de dépasser */
}

/* Mobile standard */
@media (max-width: 399px) {
    .topbar {}
}

/* Mobile large / Phablet */
@media (min-width: 400px) and (max-width: 599px) {
    .topbar {}
}

/* Tablette portrait */
@media (min-width: 600px) and (max-width: 899px) {
    .topbar {}
}

/* Desktop */
@media (min-width: 1200px) {
    .topbar {}
}

/* Dark Mode automatique, changeable via bouton thème */
html.dark_mode topbar {
    background: #1f1f1f;
    color: #fff;
}




/* Image de l'icône */
.topbar_left img {
    max-width: 100%;
    max-height: 100%;
    width: 100%;
    /* Permet d'occuper toute la div */
    height: auto;
    /* Conserve les proportions */
    object-fit: contain;
    /* Empêche toute déformation */
    cursor: pointer;
    /* Change le curseur dès le survol du conteneur */
    pointer-events: none;
    /* Permet de cliquer même si l’image est transparente */
}

/* ----------------------------- */
/* Section gauche et droite      */
/* ----------------------------- */
.topbar_left {
    flex: 0 0 var(--topbar_left_Width);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    /* Empêche le contenu de dépasser */
    padding: 1vh 1vw;
    height: 100%;
    width: 100%;
}

/* Mobile standard */
@media (max-width: 399px) {
    .topbar_left {
        position: fixed;
        background: white;
        border-radius: 2vw;
        box-shadow: 0 0 4vw rgba(0, 0, 0, 0.2);
        transition: transform 0.3s ease;
        opacity: 0.97;
        z-index: 1000;

        top: calc(0.3vh + var(--topBarHeight));
        height: var(--topBarHeight);
        overflow-y: auto;
        width: var(--topbar_left_Width);
        /* défaut */
        transform: translateX(calc(-100% - 2vw));
        background: #725a4f;
    }
}

/* Mobile large / Phablet */
@media (min-width: 400px) and (max-width: 599px) {
    .topbar_left {
        position: fixed;
        background: white;
        border-radius: 2vw;
        box-shadow: 0 0 4vw rgba(0, 0, 0, 0.2);
        transition: transform 0.3s ease;
        opacity: 0.97;
        z-index: 1000;

        top: calc(0.3vh + var(--topBarHeight));
        height: var(--topBarHeight);
        overflow-y: auto;
        width: var(--topbar_left_Width);
        /* défaut */
        transform: translateX(calc(-100% - 2vw));
        background: #725a4f;
    }
}

/* Tablette portrait */
@media (min-width: 600px) and (max-width: 899px) {
    .topbar_left {
        position: fixed;
        background: white;
        border-radius: 2vw;
        box-shadow: 0 0 4vw rgba(0, 0, 0, 0.2);
        transition: transform 0.3s ease;
        opacity: 0.97;
        z-index: 1000;

        top: calc(0.3vh + var(--topBarHeight));
        height: var(--topBarHeight);
        overflow-y: auto;
        width: var(--topbar_left_Width);
        /* défaut */
        transform: translateX(calc(-100% - 2vw));
        background: #725a4f;
    }
}

/* Desktop */
@media (min-width: 1200px) {
    .topbar_left {}
}

/* Dark Mode automatique, changeable via bouton thème */
html.dark_mode topbar_left {
    background: #1f1f1f;
    color: #fff;
}

.topbar_right {
    flex: 0 0 var(--topbar_right_Width);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    /* Empêche le contenu de dépasser */
    padding: 1vh 1vw;
    height: 100%;
    width: 100%;
}

/* Mobile standard */
@media (max-width: 399px) {
    .topbar_right {
        position: fixed;
        background: white;
        border-radius: 2vw;
        box-shadow: 0 0 4vw rgba(0, 0, 0, 0.2);
        transition: transform 0.3s ease;
        opacity: 0.97;
        z-index: 1000;
        top: calc(0.3vh + var(--topBarHeight));
        height: var(--topBarHeight);
        overflow-y: auto;
        width: var(--topbar_left_Width);
        /* défaut */
        transform: translateX(calc(-100% - 2vw));
        background: #725a4f;

        width: var(--topbar_right_Width);
        left: auto;
        right: 2vw;
        transform: translateX(calc(100% + 2vw));
        padding: 1vh 1vw;
    }
}

/* Mobile large / Phablet */
@media (min-width: 400px) and (max-width: 599px) {
    .topbar_right {
        position: fixed;
        background: white;
        border-radius: 2vw;
        box-shadow: 0 0 4vw rgba(0, 0, 0, 0.2);
        transition: transform 0.3s ease;
        opacity: 0.97;
        z-index: 1000;

        top: calc(0.3vh + var(--topBarHeight));
        height: var(--topBarHeight);
        overflow-y: auto;
        width: var(--topbar_left_Width);
        /* défaut */
        transform: translateX(calc(-100% - 2vw));
        background: #725a4f;

        width: var(--topbar_right_Width);
        left: auto;
        right: 2vw;
        transform: translateX(calc(100% + 2vw));
        padding: 1vh 1vw;
    }
}

/* Tablette portrait */
@media (min-width: 600px) and (max-width: 899px) {
    .topbar_right {
        position: fixed;
        background: white;
        border-radius: 2vw;
        box-shadow: 0 0 4vw rgba(0, 0, 0, 0.2);
        transition: transform 0.3s ease;
        opacity: 0.97;
        z-index: 1000;

        top: calc(0.3vh + var(--topBarHeight));
        height: var(--topBarHeight);
        overflow-y: auto;
        width: var(--topbar_left_Width);
        /* défaut */
        transform: translateX(calc(-100% - 2vw));
        background: #725a4f;

        width: var(--topbar_right_Width);
        left: auto;
        right: 2vw;
        transform: translateX(calc(100% + 2vw));
        padding: 1vh 1vw;
    }
}

/* Desktop */
@media (min-width: 1200px) {}


/* Dark Mode automatique, changeable via bouton thème */
html.dark_mode topbar_right {
    background: #1f1f1f;
    color: #fff;
}





/* ----------------------------- */
/* Section centrale              */
/* ----------------------------- */
.topbar_center {
    display: flex;
    flex: 1;
    /* Prend tout l'espace restant */
    height: 100%;
}

/* Mobile standard */
@media (max-width: 399px) {
    topbar_center {
        display: flex;
        flex-direction: row;
        width: 100vw;
    }
}

/* Mobile large / Phablet */
@media (min-width: 400px) and (max-width: 599px) {
    topbar_center {
        display: flex;
        flex-direction: row;
        width: 100vw;
    }
}

/* Tablette portrait */
@media (min-width: 600px) and (max-width: 899px) {
    topbar_center {
        display: flex;
        flex-direction: row;
        width: 100vw;
    }
}

/* Desktop */
@media (min-width: 1200px) {
    .topbar_center {}
}

/* Dark Mode automatique, changeable via bouton thème */
html.dark_mode .topbar_center {}

/* Logo à gauche (30%) */
.topbar_center_left {
    flex: 0 0 30%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding-left: 2%;
    padding: 1vh 1vw;
}

/* Mobile standard */
@media (max-width: 399px) {
    topbar_center_left {
        display: none !important;
    }
}

/* Mobile large / Phablet */
@media (min-width: 400px) and (max-width: 599px) {
    topbar_center_left {
        display: none !important;
    }
}

/* Tablette portrait */
@media (min-width: 600px) and (max-width: 899px) {
    topbar_center_left {
        display: none !important;
    }
}

/* Desktop */
@media (min-width: 1200px) {
    .topbar_center_left {}
}

/* Dark Mode automatique, changeable via bouton thème */
html.dark_mode .topbar_center_left {}

.topbar_center_left img {
    max-width: 100%;
    /* l'image ne dépasse jamais la largeur de la div */
    max-height: 100%;
    /* l'image ne dépasse jamais la hauteur de la div */
    width: auto;
    /* garde les proportions en largeur */
    height: auto;
    /* garde les proportions en hauteur */
    object-fit: contain;
    /* l'image est contenue dans la div sans être rognée */
}

/* Menus à droite (70%) */
.topbar_center_right {
    flex: 0 0 70%;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-right: 2%;
    gap: 1rem;
    position: relative;
    /* Pour dropdown menu */
    z-index: 1;
    overflow: visible;
}

.topbar_center_right>* {
    flex: 0 0 auto;
}

/* Mobile standard */
@media (max-width: 399px) {
    topbar_center_right {
        flex: 1 1 auto !important;
        flex-direction: row;
        flex-wrap: nowrap;
        /* pas de retour à la ligne */
        display: flex;
        align-items: center;
        justify-content: space-between;
        /* répartit l'espace entre les enfants */
        gap: 1vw;
        white-space: nowrap;

        overflow-y: visible;
        width: 100% !important;
        gap: 1vw;
        /* <-- espace entre les enfants */
    }
}

/* Mobile large / Phablet */
@media (min-width: 400px) and (max-width: 599px) {
    topbar_center_right {
        flex: 1 1 auto !important;
        flex-direction: row;
        flex-wrap: nowrap;
        /* pas de retour à la ligne */
        display: flex;
        align-items: center;
        justify-content: space-between;
        /* répartit l'espace entre les enfants */
        gap: 1vw;
        white-space: nowrap;

        overflow-y: visible;
        width: 100% !important;
        gap: 1vw;
        /* <-- espace entre les enfants */
    }
}

/* Tablette portrait */
@media (min-width: 600px) and (max-width: 899px) {
    topbar_center_right {
        flex: 1 1 auto !important;
        flex-direction: row;
        flex-wrap: nowrap;
        /* pas de retour à la ligne */
        display: flex;
        align-items: center;
        justify-content: space-between;
        /* répartit l'espace entre les enfants */
        gap: 1vw;
        white-space: nowrap;

        overflow-y: visible;
        width: 100% !important;
        gap: 1vw;
        /* <-- espace entre les enfants */
    }
}

/* Desktop */
@media (min-width: 1200px) {
    .topbar_center_right {}
}

/* Dark Mode automatique, changeable via bouton thème */
html.dark_mode .topbar_center_right {}



/* ----------------------------- */
/* Logo responsive               */
/* ----------------------------- */
.topbar_center_left .topbar_logo {
    max-height: 100%;
    /* Ne dépasse pas la topbar */
    width: auto;
    /* Conserve le ratio */
    object-fit: contain;
    transition: transform 0.1s ease;
    transform-origin: center center;
}

/* ----------------------------- */
/* Flèches (mobile)              */
/* ----------------------------- */
.topbar_arrow_left,
.topbar_arrow_right {
    display: none;
    /* Réservé au responsive */
}

/* Mobile standard */
@media (max-width: 399px) {
    .topbar_arrow_left,
    .topbar_arrow_right {
        display: flex;
        justify-content: center;
        align-items: center;
        height: var(--topBarHeight);
        padding: 1vh 1vw;
        box-sizing: border-box;
        cursor: pointer;
        transition: transform 0.15s ease, opacity 0.15s ease;
    }
}

/* Mobile large / Phablet */
@media (min-width: 400px) and (max-width: 599px) {
    .topbar_arrow_left,
    .topbar_arrow_right {
        display: flex;
        justify-content: center;
        align-items: center;
        height: var(--topBarHeight);
        padding: 1vh 1vw;
        box-sizing: border-box;
        cursor: pointer;
        transition: transform 0.15s ease, opacity 0.15s ease;
    }
}

/* Tablette portrait */
@media (min-width: 600px) and (max-width: 899px) {
    .topbar_arrow_left,
    .topbar_arrow_right {
        display: flex;
        justify-content: center;
        align-items: center;
        height: var(--topBarHeight);
        padding: 1vh 1vw;
        box-sizing: border-box;
        cursor: pointer;
        transition: transform 0.15s ease, opacity 0.15s ease;
    }
}

/* Desktop */
@media (min-width: 1200px) {
    .topbar_arrow_left,
    .topbar_arrow_right {
        display: flex;
        justify-content: center;
        align-items: center;
        height: var(--topBarHeight);
        padding: 1vh 1vw;
        box-sizing: border-box;
        cursor: pointer;
        transition: transform 0.15s ease, opacity 0.15s ease;
    }
}

/* Dark Mode automatique, changeable via bouton thème */
html.dark_mode .topbar_arrow_left,
.topbar_arrow_right {}

.topbar_arrow_left:active,
.topbar_arrow_right:active {}

/* Mobile standard */
@media (max-width: 399px) {
    .topbar_arrow_left:active,
    .topbar_arrow_right:active {
        transform: scale(0.88);
        opacity: 0.7;
    }
}

/* Mobile large / Phablet */
@media (min-width: 400px) and (max-width: 599px) {
    .topbar_arrow_left:active,
    .topbar_arrow_right:active {
        transform: scale(0.88);
        opacity: 0.7;
    }
}

/* Tablette portrait */
@media (min-width: 600px) and (max-width: 899px) {
    .topbar_arrow_left:active,
    .topbar_arrow_right:active {
        transform: scale(0.88);
        opacity: 0.7;
    }
}

/* Desktop */
@media (min-width: 1200px) {
    .topbar_arrow_left:active,
    .topbar_arrow_right:active {}
}

/* Dark Mode automatique, changeable via bouton thème */
html.dark_mode .topbar_arrow_left:active,
.topbar_arrow_right:active {}



/* Mobile standard */
@media (max-width: 399px) {
    .topbar_arrow_left img,
    .topbar_arrow_right img {
        height: 4vh;
        /* ajuste la taille de l’icône */
        width: auto;
    }
}

/* Mobile large / Phablet */
@media (min-width: 400px) and (max-width: 599px) {
    .topbar_arrow_left img,
    .topbar_arrow_right img {
        height: 4vh;
        /* ajuste la taille de l’icône */
        width: auto;
    }
}

/* Tablette portrait */
@media (min-width: 600px) and (max-width: 899px) {

    .topbar_arrow_left img,
    .topbar_arrow_right img {
        height: 4vh;
        /* ajuste la taille de l’icône */
        width: auto;
    }
}

/* Desktop */
@media (min-width: 1200px) {
    .topbar_arrow_left img,
    .topbar_arrow_right img {}
}

/* Dark Mode automatique, changeable via bouton thème */
html.dark_mode .topbar_arrow_left img,
.topbar_arrow_right img {}


/* ============================= */
/* Notes                         */
/* ============================= */
/*
- Les largeurs de left et right sont fixes grâce à flex: 0 0 <valeur>
- La section center prend l'espace restant
- La hauteur de la topbar est fixe grâce à height: var(--topBarHeight)
- overflow: hidden empêche le contenu de dépasser
- max-height: 100% sur les enfants permet de rester dans la topbar
*/



/* ============================= */
/*    MENUS HORIZONTAL DESKTOP   */
/* ============================= */

/*   cf menus.css   😉  */



/* ============================= */
/*       PANNEAUX LATERAUX       */
/* ============================= */

.sidebar_left,
.sidebar_right {
    position: relative;
    transform: none;
    transition: transform 0.3s ease;
}

/* Mobile standard */
@media (max-width: 399px) {

    .sidebar_left,
    .sidebar_right {}
}

/* Mobile large / Phablet */
@media (min-width: 400px) and (max-width: 599px) {

    .sidebar_left,
    .sidebar_right {}
}

/* Tablette portrait */
@media (min-width: 600px) and (max-width: 899px) {

    .sidebar_left,
    .sidebar_right {}
}

/* Desktop */
@media (min-width: 1200px) {

    .sidebar_left,
    .sidebar_right {}
}

/* Dark Mode automatique, changeable via bouton thème */
html.dark_mode .sidebar_left,
html.dark_mode .sidebar_right {
    background: #1b1b1b;
    color: #eee;
}



.sidebar_left {
    width: var(--sidebar_left_Width);
    flex: 0 0 var(--sidebar_left_Width);
    /* Peut s'élargir si besoin */
}

.sidebar_right {
    width: var(--sidebar_right_Width);
    flex: 0 0 var(--sidebar_right_Width);
    /* Peut s'élargir si besoin */
}

/* ----- Ouverture ----- */
.sidebar_left.open,
.sidebar_right.open,
.topbar_left.open,
.topbar_right.open {
    transform: translateX(0);
}



/* ============================= */
/*           LAYOUT              */
/* ============================= */
.layout {
    display: flex;
    flex: 1;
    flex-direction: row;
    height: calc(100vh - var(--topBarHeight) - var(--footerHeight));
    width: 100%;
}

.main_content {
    flex: 1;
    /* Remplit tout l’espace libre */
    min-width: 0;
    /* IMPORTANT : évite les débordements */

    padding: 20px;
    display: flex;
    justify-content: center;
}

/* Mobile standard */
@media (max-width: 399px) {
    .main_content {
        transition: filter 0.3s ease, opacity 0.3s ease;
    }
}

/* Mobile large / Phablet */
@media (min-width: 400px) and (max-width: 599px) {
    .main_content {
        transition: filter 0.3s ease, opacity 0.3s ease;
    }
}

/* Tablette portrait */
@media (min-width: 600px) and (max-width: 899px) {
    .main_content {
        transition: filter 0.3s ease, opacity 0.3s ease;
    }
}

/* Desktop */
@media (min-width: 1200px) {
    .main_content {}
}

/* Dark Mode automatique, changeable via bouton thème */
html.dark_mode .main_content {}



/* ============================= */
/*           FOOTER              */
/* ============================= */
.footer {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: #8c563d;
    color: white;
    display: flex;
    justify-content: center;
    align-items: center;
    height: var(--footerHeight);
    flex-shrink: 0;
}

/* Mobile standard */
@media (max-width: 399px) {
    .footer {
        transition: filter 0.3s ease, opacity 0.3s ease;
    }
}

/* Mobile large / Phablet */
@media (min-width: 400px) and (max-width: 599px) {
    .footer {
        transition: filter 0.3s ease, opacity 0.3s ease;
    }
}

/* Tablette portrait */
@media (min-width: 600px) and (max-width: 899px) {
    .footer {
        transition: filter 0.3s ease, opacity 0.3s ease;
    }
}

/* Desktop */
@media (min-width: 1200px) {
    .footer {}
}

/* Dark Mode automatique, changeable via bouton thème */
html.dark_mode .main_content {}

/* ============================= */
/*           LINKS               */
/* ============================= */
a {
    color: #4CAF50;
    text-decoration: none;
/* Correction : accolade fermante orpheline supprimée */}

a:hover {
    text-decoration: underline;
/* Correction : accolade fermante orpheline supprimée */
}
/* ============================= */
/*         CONTAINERS BASE       */
/* ============================= */
.container {
    max-width: 1200px;
    margin: auto;
    padding: 20px;
}


/* ============================= */
/*         BOUTONS       */
/* ============================= */
.theme_toggle {
    cursor: pointer;
    padding: 8px 14px;
    border-radius: 8px;
    border: none;
    font-size: 14px;
    background: var(--btn-bg, #333);
    color: var(--btn-color, #fff);
}

html.dark_mode .theme_toggle {
    background: #eee;
    color: #222;
}

html.dark_mode body {
    background: black !important;
    color: white !important;
}


/* ============================= */
/*            FONTS              */
/* ============================= */
@font-face {
    font-family: 'CambayDevanagari';
    src: url('/fonts/CambayDevanagari-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'CambayDevanagari_Blod';
    src: url('/fonts/CambayDevanagari-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: 'CambayDevanagari_Italic';
    src: url('/fonts/CambayDevanagari-Italic.woff2') format('woff2');
    font-weight: 400;
    font-style: italic;
}

@font-face {
    font-family: 'NotoSans';
    src: url('/fonts/NotoSans-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'NotoSans_Blod';
    src: url('/fonts/NotoSans-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: 'NotoSans_Italic';
    src: url('/fonts/NotoSans-Italic.woff2') format('woff2');
    font-weight: 400;
    font-style: italic;
}

@font-face {
    font-family: 'Tanker_Claire';
    src: url('/fonts/Tanker-Regular-Claire.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'Tanker';
    src: url('/fonts/Tanker-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'HarryPotter';
    src: url('/fonts/HarryPotter.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
}