.header-wrapper{
    position: relative;
}

.site-header{
    background: var(--color-header);
    position: relative;
    z-index: 20;
}

.header-glow{
    position:absolute;
    left:0;
    right:0;
    top:80%;

    height:40px;

    background:var(--color-light);

    opacity:.55;

    filter:blur(14px);

    z-index:1;

    pointer-events:none;
}

.site-header__inner{
    width:100%;
    box-sizing:border-box;
    padding:24px 64px 20px 24px;

    display:flex;
    align-items:center;
    justify-content:space-between;
}

.site-logo img{
    width:100px;
    display:block;
}

.site-nav__menu{
    display:flex;
    gap:46px;
    list-style:none;
    margin:0;
    padding:0;
}

.site-nav__menu a{
    color:var(--color-accent);
    text-decoration:none;
    font-family:"Montserrat",sans-serif;
    font-size:20px;
    transition: color .25s ease, transform .25s ease;
}

.site-nav__menu > li > a{
    display: inline-block;
    position: relative;
    padding-bottom: 4px;
}

.site-nav__menu > li > a::before{
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background: var(--color-light);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .25s ease;
    opacity: .9;
}

.site-nav__menu > li > a:hover,
.site-nav__menu > li > a:focus-visible{
    color: var(--color-light);
    transform: translateY(-1px);
}

.site-nav__menu > li > a:hover::before,
.site-nav__menu > li > a:focus-visible::before{
    transform: scaleX(1);
}

.site-nav__menu > .menu-item-has-children > a {
    display: flex;
    align-items: center;
    gap: 7px;
}

.site-nav__menu > .menu-item-has-children > a::after {
    content: "";
    width: 6px;
    height: 6px;
    border-right: 1px solid var(--color-accent);
    border-bottom: 1px solid var(--color-accent);
    transform: rotate(45deg) translateY(-2px);
    transition: transform .25s ease;
    flex-shrink: 0;
}

.site-nav__menu > .menu-item-has-children:hover > a::after {
    transform: rotate(225deg) translate(-2px, -2px);
}

.menu-toggle{
    display:none;

    position: relative;
    width: 28px;
    height: 22px;

    background:none;
    border:none;

    cursor:pointer;

    padding:0;
    z-index: 20;
}

.menu-toggle span{
    position: absolute;
    left: 0;

    display:block;

    width:28px;
    height:2px;

    background:var(--color-accent);

    transition: transform .3s ease, opacity .3s ease, top .3s ease;
}

.menu-toggle span:nth-child(1){ top: 0; }
.menu-toggle span:nth-child(2){ top: 10px; }
.menu-toggle span:nth-child(3){ top: 20px; }

/* Icône hamburger -> croix quand le menu est ouvert */

.menu-toggle[aria-expanded="true"] span:nth-child(1){
    top: 10px;
    transform: rotate(45deg);
}

.menu-toggle[aria-expanded="true"] span:nth-child(2){
    opacity: 0;
}

.menu-toggle[aria-expanded="true"] span:nth-child(3){
    top: 10px;
    transform: rotate(-45deg);
}

.nav-overlay{
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.45);
    z-index: 10;
    opacity: 0;
    transition: opacity .35s ease;
}

.nav-overlay.is-open{
    display: block;
    opacity: 1;
}

@media(max-width:900px){

    .menu-toggle{
        display:block;
    }

    .site-nav{
        position:fixed;

        top:0;
        right:-100%;

        width:280px;
        height:100vh;

        background:var(--color-header);

        transition: right .35s ease;

        /* Espace interne pour éviter que le contenu touche le bord */
        padding: 120px 20px 20px 24px;

        z-index: 15;
        box-sizing: border-box;
        overflow-y: auto;
    }

    .site-nav.is-open{
        right:0;
    }

    .site-nav__menu{
        flex-direction:column;

        gap:34px;

        /* géré par .site-nav padding */
        padding-left:0;
    }

}

/* Empêche le scroll du body quand le menu mobile est ouvert */
body.nav-open{
    overflow: hidden;
}

.site-nav__menu {
    list-style: none;
    display: flex;
    gap: 46px;
    margin: 0;
    padding: 0;
}

.site-nav__menu > li {
    position: relative;
}

/* Sous-menu caché par défaut */

.site-nav__menu .sub-menu {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(12px);

    min-width: 190px;
    margin: 0;
    padding: 14px 0;

    list-style: none;

    background: var(--color-header);

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transition:
        opacity .2s ease,
        transform .2s ease,
        visibility .2s ease;

    z-index: 100;
}

/* Affichage au survol */

.site-nav__menu .menu-item-has-children:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;

    transform: translateX(-50%) translateY(0);
}

/* Liens du sous-menu */

.site-nav__menu .sub-menu li {
    width: 100%;
}

.site-nav__menu .sub-menu a {
    display: block;
    padding: 10px 22px;

    white-space: nowrap;

    color: var(--color-accent);

    font-size: 14px;
    text-align: left;
}

/* Petit hover */

.site-nav__menu .sub-menu a:hover {
    background: rgba(222, 208, 180, .08);
}

.site-nav__menu .menu-item-has-children {
    padding-bottom: 12px;
    margin-bottom: -12px;
}

/* Flèche sur les éléments qui possèdent un sous-menu */

.site-nav__menu > .menu-item-has-children > a {
    display: flex;
    align-items: center;
    gap: 7px;
}

.site-nav__menu > .menu-item-has-children > a::after {
    content: "";
    width: 6px;
    height: 6px;

    border-right: 1px solid var(--color-accent);
    border-bottom: 1px solid var(--color-accent);

    transform: rotate(45deg) translateY(-2px);

    transition: transform .25s ease;
}

/* Rotation de la flèche quand le menu est ouvert */

.site-nav__menu > .menu-item-has-children:hover > a::after {
    transform: rotate(225deg) translate(-2px, -2px);
}

/* Afficher directement les sous-menus en version mobile */
@media (max-width: 900px) {

    .site-nav__menu .sub-menu {
        position: static !important;
        top: auto !important;
        left: auto !important;
        transform: none !important;
        min-width: auto !important;
        margin: 0 !important;
        padding: 6px 0 6px 18px !important;
        list-style: none !important;
        background: transparent !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        box-shadow: none !important;
        z-index: auto !important;
        display: block !important;
        max-height: none !important;
        overflow: visible !important;
    }

    .site-nav__menu .sub-menu a {
        white-space: normal;
        padding: 8px 0 8px 0;
        font-size: 16px;
    }

    /* Ne pas afficher la flèche qui indiquait le sous-menu */
    .site-nav__menu > .menu-item-has-children > a::after {
        display: none;
    }

}