:root {
    --yellow: #f1b434;
    --blue: #5ba2b6;
    --pink: #b8417d;
    --grey: #333;
    --light-grey: #f4f4f4;
    --white: #fff;
}
#content {margin-top: 0;}
header {
    position: sticky;
    top: 0;
    height: auto;
    width: 100%;
    z-index: 1000;
    padding-block: 1em;
    background-color: var(--white);
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
header .row {
    display: flex;
    align-items: center;
    margin-inline:auto;
    width:min(1410px,90vw);
    justify-content: space-between;
}
header [style^="--icn"] {
    position: relative;
    width: 1.5em;
    height: 1.5em;
    display: grid;
    border-radius: 2em;
    align-content: center;
    justify-content: center;
    background-color: currentcolor;
}
header [style^="--icn"]::before{
    position: relative;
    scale: .8;
    content: "";
    display: block;
    transition: initial;
    pointer-events: none;
    padding: min(.7rem, 3vw);
    background-color: var(--white);
    -webkit-mask-image: var(--icn);
    mask-image: var(--icn);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-position: center;
    mask-position: center;
}
.logo-container img {
    height: 60px;
    display: block;
}

/* --- Navigation Desktop --- */
.nav-menu {
    display: flex;
    gap: 20px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-decoration: none;
    color: inherit;
}

.badge {
    font-weight: bold;
    padding: 4px 12px;
    border-radius: 4px;
    color: white;
    font-size: 0.9rem;
    margin-bottom: 4px;
    text-transform: uppercase;
}

.sub-text {
    font-size: 0.85rem;
    color: #555;
}

/* Couleurs spécifiques */
.bg-yellow { background-color: var(--yellow); }
.bg-blue   { background-color: var(--blue); }
.bg-pink   { background-color: var(--pink); }
.bg-grey   { background-color: var(--light-grey); color: var(--grey); }

.social-link {
    font-size: 24px;
    color: var(--grey);
    margin-left: 20px;
}

/* --- Mobile / Hamburger Logic --- */
#menu-toggle { display: none; }

.hamburger {
    display: none;
    cursor: pointer;
    font-size: 24px;
    color: var(--grey);
    z-index: 100;
}

/* --- Responsive Queries --- */
@media (max-width: 1024px) {
    .hamburger { display: block; }

    .nav-menu {
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        background: white;
        flex-direction: column;
        gap: 0;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease-in-out;
        box-shadow: 0 10px 15px rgba(0,0,0,0.1);
    }

    /* Ouverture du menu via la checkbox */
    #menu-toggle:checked ~ .nav-menu {
        max-height: 500px;
        padding-bottom: 20px;
    }

    .nav-item {
        padding: 15px 5%;
        width: 90%;
        position: relative;
        border-bottom: 1px solid #eee;
    }

    /* Ajout du cadre coloré en ::before sur mobile */
    .nav-item::before {
        content: "";
        position: absolute;
        left: 0;
        top: 10%;
        height: 80%;
        width: 5px;
        border-radius: 0 4px 4px 0;
    }

    .nav-item.yellow::before { background-color: var(--yellow); }
    .nav-item.blue::before   { background-color: var(--blue); }
    .nav-item.pink::before   { background-color: var(--pink); }
    .nav-item.grey::before   { background-color: var(--grey); }

    .social-link {
        padding: 15px 5%;
        display: block;
        margin: 0;
    }
}