/* Bandeau geo (1ère visite + 1x/an) — réutilise le style .localisation_menu */
.kn-geo-banner[hidden] {
    display: none !important;
}
.kn-geo-banner.localisation_menu {
    position: relative;
    padding: 10px 50px 10px 20px;
}
.kn-geo-banner .kn-geo-banner__text {
    margin: 0;
    color: var(--dark-blue);
    font-family: var(--secondary-font);
}
.kn-geo-banner .kn-geo-banner__link {
    color: var(--dark-blue);
    text-decoration: underline;
    font-weight: 700;
    cursor: pointer;
}
.kn-geo-banner .kn-geo-banner__link:hover,
.kn-geo-banner .kn-geo-banner__link:focus {
    color: var(--orange);
    text-decoration: underline;
}
.kn-geo-banner .kn-geo-banner__close {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: 0;
    color: var(--dark-blue);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    padding: 4px 10px;
    border-radius: 4px;
    margin: 0;
    width: auto;
    height: auto;
}
.kn-geo-banner .kn-geo-banner__close:hover,
.kn-geo-banner .kn-geo-banner__close:focus {
    background: rgba(15, 57, 143, 0.1);
    color: var(--dark-blue);
    outline: none;
}
@media (max-width: 767px) {
    .kn-geo-banner.localisation_menu {
        padding: 10px 40px 10px 12px;
    }
    .kn-geo-banner .kn-geo-banner__close {
        right: 6px;
        font-size: 20px;
    }
}

/* Menu mobile */

@media (max-width: 991px) {
    body {
        &:has(.popup_selection_pays.open, .accessibility.open) {
            overflow-y: scroll !important;
        }
    }

    .header {
        &:has(.popup_selection_pays) {
            position: fixed;
        }

        &:has(.popup_selection_pays.open) {
            position: relative !important;
        }

        .top_menu_wrapper {
            display: none !important;
        }

        .popup_selection_pays {
            overflow-y: scroll !important;

            .close_popup {
                top: 20px !important;
            }

            .title_selection {
                margin: 70px auto 10px auto !important;
            }

            .services {
                flex-direction: column !important;
                gap: 10px !important;

                >* h4 {
                    margin-bottom: 10px !important;
                }

                #second_col {
                    grid-template-columns: 1fr !important;
                    gap: 10px !important;
                }
            }
        }

        .accessibility {
            &.open {
                margin-top: 0px !important;
                overflow-y: scroll !important;

                &:after {
                    content: '';
                    position: absolute;
                    top: 50%;
                    left: 50%;
                    width: 100vw;
                    height: calc(100vh + 50%);
                    z-index: 0;
                    background: rgba(255, 255, 255, 0.2);
                    backdrop-filter: blur(5px);
                    transform: translate(-50%, -50%);
                }

                .accessibility__content {
                    width: 90vw !important;
                    top: 30px !important;
                    transform: translate(-50%, 0%) !important;

                    .accessibility__title {
                        font-size: 18px;
                        margin-right: auto;
                    }

                    .accessibility__choices {
                        margin-top: -30px;

                        .accessibility__item {
                            padding: 8px !important;

                            >legend {
                                font-size: 16px !important;
                            }

                            .accessibility__input {
                                font-size: 14px !important;
                            }
                        }
                    }
                }
            }
        }

        .header__main {
            &:has(.menu.open) {
                .header__logo {
                    align-self: start;
                    position: fixed;
                    top: 35px;
                    left: 35px;

                    &:after {
                        top: -35px;
                    }

                    img {
                        filter: brightness(0) saturate(100%) invert(100%) sepia(100%) saturate(1%) hue-rotate(22deg) brightness(106%) contrast(101%) !important;
                    }
                }

                .menu {
                    &.open {
                        background-color: var(--dark-blue) !important;
                        overflow: hidden !important;

                        .top__menu {
                            justify-content: end !important;
                            height: fit-content !important;


                            li {
                                &:hover {
                                    background: unset !important;
                                }

                                a {
                                    color: var(--white) !important;

                                    &:hover {
                                        background: unset !important;
                                    }
                                }
                            }
                        }

                        .menu__main {
                            * img {
                                width: 16px !important;
                                height: 16px !important;
                            }

                            .form_search {
                                width: 100% !important;
                                opacity: 1 !important;
                                transform: translateX(0) !important;
                                pointer-events: all !important;
                                margin: 0 0 10px 0 !important;

                                .swp-input--search {
                                    max-width: unset !important;
                                    height: 40px !important;
                                    border-radius: var(--border-radius) !important;
                                }

                                form.searchwp-form {
                                    padding: 4px 10px !important;
                                }
                            }

                            .pll-parent-menu-item {
                                margin: 0 0 15px auto !important;

                                &:before {
                                    position: relative !important;
                                    left: 0 !important;
                                    top: 0 !important;
                                    transform: unset !important;
                                    margin-left: 10px !important;
                                }

                                a {
                                    color: var(--white) !important;
                                }

                                .sub-menu {
                                    margin-right: 5px !important;
                                }
                            }

                            .search {
                                width: 100%;
                                border-radius: var(--border-radius) !important;
                                padding: 20px;
                                display: flex !important;
                                align-items: center !important;
                                background: transparent !important;
                                border: 1px solid var(--white) !important;

                                img {
                                    margin-left: auto !important;
                                }
                            }

                            .selection_pays {
                                background: var(--blue);
                                padding: 7px;
                                border-radius: var(--border-radius);
                                margin-bottom: 10px !important;
                            }

                            .bouton.menu_cta {
                                padding: 7px;
                                border-radius: var(--border-radius);
                                width: 100%;
                                margin-bottom: 10px;
                            }

                            .accessibilite {
                                background: var(--blue);
                                padding: 11px;
                                border-radius: var(--border-radius);
                                color: var(--white);
                                display: flex;
                                align-items: center;
                                gap: 10px;
                            }
                        }
                    }
                }

                .menu_mobile {
                    position: fixed !important;
                    right: 0;
                    top: 22px;
                }
            }
        }
    }

    body {
        &:has(.menu.open) {
            overflow: hidden;
            max-height: 100vh;

            main.dis_none,
            footer.dis_none {
                display: none !important;
            }
        }
    }

    .header {
        .localisation_menu {
            height: unset !important;
            padding: 20px 0;
        }

        .header__main {
            &:has(.menu.open) {
                .header__logo {
                    img {
                        z-index: 2;
                        position: relative;
                    }

                    &:after {
                        content: '';
                        opacity: 1;
                        background: var(--dark-blue);
                        width: 150vw;
                        height: 100px;
                        position: absolute;
                        top: -35px;
                        left: -50vw;
                        z-index: 1;
                        transform: translateX(0);
                        pointer-events: none;
                    }
                }

                .menu_mobile {
                    z-index: 102;
                    position: relative;
                    width: 50px;
                    height: 50px;
                    pointer-events: all;

                    .menu__toggle {
                        opacity: 0;
                    }

                    &:before,
                    &:after {
                        content: '';
                        position: absolute;
                        top: 25px;
                        left: 0;
                        display: inline-block;
                        width: 35px;
                        height: 3px;
                        background: var(--white);
                        z-index: 103;
                        border-radius: var(--border-radius);
                        pointer-events: all;
                    }

                    &:before {
                        transform: rotate(45deg);
                    }

                    &:after {
                        transform: rotate(-45deg);
                    }
                }
            }

            .menu {
                flex-direction: column;
                left: 0;
                padding-bottom: 24px;
                position: fixed;
                overflow: auto;
                transition: transform 0.3s ease;
                width: 100%;
                z-index: 9;
                top: 0;
                transform: translateX(100%);

                &.open {
                    display: flex;
                    width: 100vw;
                    height: 100vh;
                    padding-bottom: 0px;
                    transform: translateX(0px);
                    padding-top: 99px;

                    &:has(>.menu__main>li.sub-menu-open) {
                        background: var(--dark-blue);

                        .menu__main {
                            justify-content: flex-start;
                        }
                    }
                }

                .menu__main {
                    background: var(--dark-blue);
                    margin: 0;
                    padding: 150px 12px 120px 12px;
                    display: flex;
                    flex-direction: column;
                    justify-content: center;
                    min-height: 100vh;
                    overflow-x: hidden;
                    overflow-y: scroll;

                    li {
                        list-style: none;
                        position: relative;
                        z-index: 1;

                        &:before,
                        &:marker {
                            display: none;
                        }

                        &>a {
                            img {
                                display: none;
                            }
                        }
                    }

                    &>.menu-item {
                        &:not(.pll-parent-menu-item) {

                            transition: var(--transition);

                            &:not(:last-child) {
                                margin-bottom: 20px;
                            }

                            &.menu-item-has-children {
                                scroll-margin-top: 120px;

                                &>a {
                                    display: flex;
                                    justify-content: space-between;
                                    align-items: center;

                                    &:after {
                                        content: '';
                                        background-image: url(../img/triangle.svg);
                                        width: 12px;
                                        height: 12px;
                                        display: inline-block;
                                        background-size: cover;
                                        background-repeat: no-repeat;
                                        transform: rotate(90deg);
                                        transition: var(--transition);
                                    }

                                    span {
                                        margin-right: 20px;
                                    }
                                }

                                &.sub-menu-open {
                                    border: 0px;
                                    margin-bottom: 0 !important;

                                    &>.sub-menu {
                                        max-height: unset;
                                        opacity: 1;
                                        transform: translateY(0px);
                                        padding: 20px 0 20px 0;
                                        margin: 15px 0;
                                        border-bottom: 1px solid var(--light-blue);
                                        position: relative;
                                        overflow: visible;

                                        &:after {
                                            content: '';
                                            background: var(--light-blue);
                                            width: 130vw;
                                            height: 101%;
                                            position: absolute;
                                            top: 0;
                                            left: -60px;
                                            z-index: 0;
                                        }

                                        &>li {
                                            &:not(:last-child) {
                                                border-bottom: 1px solid var(--dark-blue);
                                                padding-bottom: 15px;
                                                margin-bottom: 15px;
                                            }

                                            &>a {
                                                display: flex;
                                                flex-direction: column;

                                                span {
                                                    color: var(--white);

                                                    &:not(.desc) {
                                                        font-weight: var(--bold);
                                                        padding-bottom: 10px;
                                                    }
                                                }
                                            }
                                        }
                                    }

                                    &>a {
                                        &:after {
                                            transform: rotate(-90deg);
                                        }
                                    }
                                }
                            }

                            &>a {
                                color: var(--white);
                                font-size: 24px;
                                font-weight: var(--bold);

                                span {
                                    color: var(--white);
                                }
                            }


                            &>.sub-menu {
                                max-height: 0;
                                opacity: 0;
                                transition: transform 0.3s ease, opacity 0.3s ease;
                                transform: translateY(30px);
                                overflow: hidden;

                                &>.menu-item {

                                    &.img_left,
                                    &.img_right {
                                        display: none;
                                    }

                                    &>.sub-menu {
                                        padding: 0;

                                        &>.menu-item {
                                            &:first-child {
                                                padding-top: 10px;
                                            }

                                            &:not(:last-child) {
                                                padding-bottom: 10px;
                                            }

                                            &>a {
                                                span {
                                                    color: var(--white);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            .menu__toggle {
                display: block;
                cursor: pointer;
                width: 50px;
                height: 50px;
            }
        }
    }
}

/* Menu */

.header {
    position: fixed;
    z-index: 1000;
    width: 100%;
    background: var(--white);

    @media (min-width: 1600px) {

        .container,
        .container-sm,
        .container-md,
        .container-lg,
        .container-xl,
        .container-xxl,
        .container-xxxl {
            max-width: var(--container-xxxl);
        }
    }

    .accessibility {
        background: rgba(10, 31, 69, 0.4);
        height: 100%;
        width: 100%;
        position: fixed;
        top: 0;
        left: 0;
        z-index: -1;
        opacity: 0;
        transition: opacity 0.3s ease;
        pointer-events: none;

        &.open {
            opacity: 1;
            z-index: 110;
            pointer-events: all;
            /* margin-top: 250px; */

            .accessibility__content {
                z-index: 1;
                transform: translate(-50%, -50%);
                pointer-events: all;
            }

            .header__main,
            .menu,
            .menu__main,
            .menu-item,
            .sub-menu,
            .sub-menu .menu-item {
                pointer-events: none !important;
                box-shadow: none !important;
            }
        }

        .accessibility__content {
            position: absolute;
            padding: 50px 25px;
            height: fit-content;
            background: var(--white);
            box-shadow: 0 0px 24px rgba(0, 0, 0, 0.16);
            border-radius: var(--border-radius);
            top: 50%;
            transform: translate(-50%, -45%);
            left: 50%;
            max-width: 95vw;
            display: flex;
            flex-direction: column;
            gap: 40px;
            align-items: center;
            transition: transform 0.3s ease;
            pointer-events: none;

            @media (min-width: 992px) {
                width: 960px;
                max-width: 960px;
                padding: 50px;
            }

            .accessibility__title {
                color: var(--dark-blue);
            }

            .accessibility__close {
                color: var(--white);
                position: absolute;
                top: 20px;
                right: 20px;
                cursor: pointer;
                font-size: 25px;
                border-radius: 50%;
                padding: 0px 12px 4px 12px;
                display: inline-block;
                font-weight: var(--bold);
                background: var(--orange);
                font-family: var(--secondary-font);
                transition: var(--transition);

                &:hover {
                    background: var(--light-blue);
                }
            }

            .accessibility__choices {
                display: grid;
                gap: 20px;
                grid-template-columns: 1fr;
                width: 100%;

                @media (min-width: 992px) {
                    grid-template-columns: repeat(2, 1fr);
                }

                .accessibility__item {
                    margin: 0;
                    display: flex;
                    border: 0px;
                    background: var(--dark-grey);
                    align-items: center;
                    flex-wrap: wrap;
                    padding: 15px;
                    border-radius: var(--border-radius);

                    @media (min-width: 992px) {
                        height: fit-content;
                    }

                    &>legend {
                        color: var(--dark-blue);
                        float: left;
                        width: 100%;
                        margin: 0 0 10px 0;
                        font-size: 20px;
                        font-weight: var(--bold);
                    }

                    .accessibility__input {
                        height: fit-content;
                        clear: left;
                        margin: 0;
                        font-size: 18px;
                        white-space: nowrap;
                        font-weight: var(--medium);
                        display: flex;
                        align-items: center;

                        &:first-child {
                            margin-right: 10px;
                        }

                        &>input[type='radio'] {
                            width: 17px;
                            height: 17px;
                            margin-right: 5px;
                            background: var(--white) !important;
                            border: 1px solid var(--light-blue) !important;
                            appearance: none;
                            border-radius: 50%;
                            transition: var(--transition);

                            &:checked {
                                box-shadow: inset 0 0 0 3px white;
                                background: var(--light-blue) !important;
                            }
                        }
                    }
                }
            }
        }
    }

    .popup_selection_pays {
        position: absolute;
        width: 100vw;
        background: var(--dark);
        z-index: 10000;
        display: flex;
        justify-content: center;
        align-items: center;
        transform: translateX(-200vw);
        transition: transform 0.3s ease;
        overflow-y: scroll !important;

        @media (min-width: 992px) {
            height: 100vh;
        }

        &.open {
            transform: translateX(0);
        }

        .close_popup {
            color: var(--orange);
            font-family: var(--main-font);
            position: absolute;
            top: 71px;
            display: flex;
            align-items: center;
            gap: 10px;
            cursor: pointer;

            &:before {
                content: 'x';
                font-size: var(--p-size);
                border: 1px solid var(--orange);
                border-radius: 50%;
                padding: 0px 8px 4px 8px;
                display: inline-block;
                margin-top: -2px;
            }

            &:after {
                content: '';
                height: 1px;
                width: 0;
                background: var(--orange);
                transition: width 0.3s ease;
                position: absolute;
                bottom: -5px;
                left: 30px;
            }

            &:hover {
                &:after {
                    width: 60%;
                    transition: width 0.3s ease;
                }
            }
        }

        >* a,
        * p {
            color: var(--white);
            font-size: var(--p-size);
        }

        .listing_pays {
            display: flex;
            flex-direction: column;
            gap: 10px;
            margin-bottom: 10px;
        }

        .title_selection {
            text-align: center;
            max-width: 640px;
            margin: 0 auto 40px auto;

            >* {
                color: var(--white);
            }
        }

        .services {
            display: flex;
            justify-content: space-between;
            gap: 50px;

            >* h4,
            h5 {
                color: var(--light-blue);
                font-size: 24px;
            }

            >* h4 {
                text-transform: uppercase;
                font-size: 24px;
                border-bottom: 1px solid rgba(240, 242, 245, 0.33);
                padding-bottom: 20px;
            }

            >* h5 {
                margin: 0 0 20px 0;
            }

            #first_col {
                flex: 0.4;

                #dosimetrie_continent {
                    display: grid;
                    grid-template-columns: 1fr 1fr;

                    #europe {
                        grid-row: 1 / span 2;
                    }
                }

                &:not(:has(+#second_col)) {
                    flex: 1 !important;
                }
            }

            #second_col {
                flex: 0.6;
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 50px;

                /* #equipement_laboratoire,
                #landauer_monde {
                }

                #notre_groupe {
                } */
            }
        }
    }

    .search {
        width: 0px;
        opacity: 0;
        transition: transform 0.3s ease, background-color 0.3s ease;
        transform: translateX(-20px);

        &:hover {
            background-color: var(--orange) !important;
        }

        &.active {
            opacity: 1;
            display: grid;
            background-color: var(--light-blue);
            height: 26px;
            width: 26px;
            border-radius: 50%;
            place-items: center;
            cursor: pointer;
            transform: translateX(0);
        }
    }

    .form_search {
        width: 640px;
        margin: auto;
        pointer-events: all;

        /* Fallback flex utilities when SearchWP plugin not loaded (UK/NO blogs) */
        .swp-flex--col { display: flex; flex-direction: column; }
        .swp-flex--row { display: flex; flex-direction: row; }
        .swp-flex--wrap { flex-wrap: wrap; }
        .swp-flex--gap-md { gap: 16px; }
        .swp-items-stretch { align-items: stretch; }
        .searchwp-form-input-container { flex: 1; }

        form.searchwp-form {
            border: 1px solid var(--white);
            border-radius: var(--border-radius);
            padding: 13px 20px;

            .swp-input--search {
                background: transparent;
                box-shadow: none;
                border: 0;
                height: 35px;
                color: var(--white);
                font-size: 16px;

                &:focus,
                &:focus-visible {
                    border: 0px;
                    outline: none;
                }
            }

            .search-submit {
                width: 26px !important;
                border-radius: 50px !important;
                background-color: transparent;
                font-size: 0px;
                display: flex;
                align-items: center;
                justify-content: center;
                position: relative;
                background-image: url(../img/search.svg);
                background-size: 100%;
                background-repeat: no-repeat;
                background-position: center;
                cursor: pointer;
                transition: var(--transition);
                box-shadow: none;
                border: 0;
                margin-left: auto;
                filter: brightness(0) saturate(100%) invert(54%) sepia(32%) saturate(2153%) hue-rotate(5deg) brightness(103%) contrast(102%);
            }
        }
    }

    .search_wrapper {
        position: absolute;
        width: 100vw;
        background: var(--dark);
        z-index: 10000;
        display: flex;
        justify-content: center;
        align-items: center;
        transform: translateX(-200vw);
        transition: transform 0.3s ease;
        overflow-y: scroll !important;

        @media (min-width: 992px) {
            height: 100vh;
        }

        &.open {
            transform: translateX(0);
        }

        .close_popup_search {
            color: var(--orange);
            font-family: var(--main-font);
            position: absolute;
            top: 71px;
            display: flex;
            align-items: center;
            gap: 10px;
            cursor: pointer;
            display: flex;
            align-items: start;
            padding-top: 250px;

            &:before {
                content: 'x';
                font-size: var(--p-size);
                border: 1px solid var(--orange);
                border-radius: 50%;
                padding: 0px 8px 4px 8px;
                display: inline-block;
                margin-top: -2px;
            }

            &:after {
                content: '';
                height: 1px;
                width: 0;
                background: var(--orange);
                transition: width 0.3s ease;
                position: absolute;
                bottom: -5px;
                left: 30px;
            }

            &:hover {
                &:after {
                    width: 60%;
                    transition: width 0.3s ease;
                }
            }
        }

        >* a,
        * p {
            color: var(--white);
            font-size: var(--p-size);
        }

        .title_selection {
            text-align: center;
            max-width: 640px;
            margin: 0 auto 40px auto;

            >* {
                color: var(--white);
            }
        }
    }

    .selection_pays {
        display: flex;
        align-items: center;
        gap: 10px;
        color: var(--white);
        cursor: pointer;
        padding: 0 5px;
        transition: var(--transition);

        &:hover {
            background-color: var(--light-blue);
        }
    }

    .pll-parent-menu-item {
        margin-right: 15px;
        display: flex;
        align-items: center;
        flex-direction: row-reverse;
        gap: 3px;
        position: relative !important;
        z-index: 10;

        &:before {
            content: '';
            background-image: url(../img/world.svg);
            left: -40%;
            top: 50%;
            background-repeat: no-repeat;
            display: inline-block;
            width: 17px;
            height: 17px;
            background-size: cover;
            position: absolute;
            transform: translateY(-50%);
        }

        &>a {
            background-color: var(--light-blue);
            height: 25px;
            width: 25px;
            border-radius: 100px;
            display: grid;
            place-items: center;
        }

        .sub-menu {
            padding: 0;

            .current-lang {
                display: none;
            }
        }
    }

    .top__menu {
        margin: 0;
        padding: 0;
        display: flex;
        height: 100%;

        li {
            transition: var(--transition);

            &:not(.pll-parent-menu-item, .lang-item) {
                list-style: none;
                margin: auto;
                height: 100%;
                display: flex;
                align-items: center;
                padding: 10px;

                &:hover {
                    background: var(--light-blue);

                    a {
                        color: var(--white) !important;
                    }
                }
            }

            &.lang-item {
                &:not(.current-lang) {
                    height: 25px;
                    width: 25px;
                    border-radius: 100px;
                    display: grid;
                    place-items: center;

                    &:hover {
                        background-color: var(--light-blue);
                    }
                }
            }
        }
    }

    .header__main {
        border-bottom: 1px solid var(--grey);
    }

    &:not(.single, .home) {
        .menu {
            .menu__main {
                li:not(.img_left, .img_right, .menu-cta) {

                    a,
                    a span {
                        color: var(--blue);
                    }
                }
            }
        }
    }

    .localisation_menu {
        display: flex;
        background: var(--grey);
        justify-content: center;
        align-items: center;
        width: 100%;
        height: 60px;
        gap: 10px;
        flex-direction: column;

        @media (min-width: 500px) {
            flex-direction: row;
        }

        .wrapper_localize {
            display: flex;
            align-items: center;
            gap: 15px;

            >* {
                flex-shrink: 0;
            }
        }

        .drapeau {
            position: relative;
            display: flex;

            &:after {
                content: '';
                position: absolute;
                top: 50%;
                left: 50%;
                width: 28px;
                height: 28px;
                border-radius: 50px;
                background: rgba(15, 57, 143, 0.16);
                transform: translate(-50%, -50%);
            }

            img {
                max-height: 16px;
                filter: brightness(0) saturate(100%) invert(16%) sepia(82%) saturate(2138%) hue-rotate(208deg) brightness(98%) contrast(94%);
            }
        }

        span {
            margin: 5px 0px 0 5px;
            color: var(--dark-blue);
        }

        select {
            max-width: 240px;
            border: 1px solid var(--dark-blue);
            height: fit-content;
            padding: 5px 10px 5px 5px;
            border-radius: 4px;
            cursor: pointer;
        }

        button {
            margin: 0;
            border-radius: 4px;
            background: var(--dark-blue);
            color: var(--white);
            text-align: center;
            font-family: var(--secondary-font);
            font-size: var(--p-size);
            padding: 0;
            line-height: normal;
            height: 31px;
            width: 32px;
            outline: 0px;
            border: 0px;
            transition: var(--transition);

            &:hover {
                background: var(--light-blue);
            }
        }
    }

    .top_menu_wrapper {
        background-color: var(--blue);
        margin: 0;
        padding: 0;
        max-height: 40px;

        &>.container {
            display: flex;
            justify-content: space-between;

            &>.bouton {
                border-radius: 0 !important;
                padding: 0 10px !important;
            }
        }

        * img {
            max-height: 16px;
        }

        * {
            color: var(--white);
            font-size: var(--p-size);
        }

        * p {
            margin: 0;
        }

        .top_menu_left {
            display: flex;
            align-items: center;
            gap: 15px;

            .accessibilite {
                display: flex;
                align-items: center;
                gap: 5px;
                margin-right: 5px;
                min-width: 107px;
                padding: 0 5px;
                height: 100%;
                transition: var(--transition);
                cursor: pointer;

                &:hover,
                &.active {
                    background: var(--light-blue);
                }
            }
        }
    }

    .header__main {
        align-items: center;
        display: flex;
        justify-content: space-between;
        position: relative;
        transition: all 0.3s;
        width: 100vw;

        @media (min-width: 992px) {
            padding: 20px 0px;
        }

        &.container {
            display: flex;
            align-items: center;
            justify-content: space-between;

            .header__logo {
                align-self: center;
                display: block;
                position: relative;
                min-width: 192px;
                min-height: fit-content;
                z-index: 100;

                &:after {
                    opacity: 0;
                    transition: var(--transition);
                    transform: translateX(100%);
                }

                img {
                    transition: var(--transition);
                    max-width: 220px;
                }

                @media (min-width: 992px) {
                    &:hover {
                        img {
                            opacity: 0.7;
                        }
                    }
                }
            }
        }

        @media (min-width: 992px) {
            .menu {
                flex-direction: row;
                overflow: visible;
                gap: 24px;
                margin-top: 0;
                padding: 0 12px;
                height: 48px;
                display: flex;
                position: static;

                &.open i {
                    transform: rotate(180deg);
                }

                &.open .sub-menu {
                    border-color: var(--light-blue);
                    max-height: 500px;
                }

                .menu__main {
                    position: relative;
                    display: flex;
                    margin: 0;
                    padding: 0;
                    align-items: center;
                    order: -1;
                    overflow: visible;
                    gap: 15px;

                    li {
                        list-style: none;
                    }

                    &>li {
                        &:before {
                            display: none;
                        }

                        @media (min-width: 992px) {
                            &.none_desktop.a_propos {
                                display: none !important;
                            }
                        }

                        &.menu-item-has-children {
                            &>a {
                                display: flex;
                                justify-content: space-between;
                                align-items: center;

                                &:after {
                                    content: '';
                                    background-image: url(../img/chevron.svg);
                                    width: 8px;
                                    height: 8px;
                                    display: inline-block;
                                    background-size: cover;
                                    background-repeat: no-repeat;
                                    transition: var(--transition);
                                }

                                span {
                                    margin-right: 5px;
                                    transition: var(--transition);
                                    position: relative;

                                    &:after {
                                        content: '';
                                        height: 1px;
                                        width: 0;
                                        background: var(--orange);
                                        transition: width 0.3s ease;
                                        position: absolute;
                                        bottom: -5px;
                                        left: 0;
                                    }
                                }
                            }
                        }
                    }

                    &>.menu-item {
                        overflow: hidden;
                        height: fit-content;
                        padding: 16px 0;
                        width: auto;
                        position: unset;

                        &.current_page_parent,
                        &.current_page_ancestor {

                            &>a,
                            &>a span {
                                color: var(--orange) !important;
                            }

                            &>.sub-menu {

                                &>.menu-item.current-menu-item>a,
                                &>.menu-item.current-menu-item>a span {
                                    color: var(--orange) !important;
                                }

                                &>.menu-item.current-menu-item>a span {
                                    &:after {
                                        width: 100% !important;
                                    }
                                }

                                &>.menu-item.current-menu-item>a {
                                    &:after {
                                        filter: brightness(0) saturate(100%) invert(54%) sepia(13%) saturate(5838%) hue-rotate(9deg) brightness(105%) contrast(107%) !important;
                                    }
                                }
                            }
                        }

                        &:not(.menu-cta) {
                            &:hover {
                                overflow: visible;

                                &>a {
                                    &>span {
                                        color: var(--orange) !important;

                                        &:after {
                                            width: 100%;
                                            transition: width 0.3s ease;
                                        }
                                    }

                                    &:after {
                                        transform: rotate(180deg);
                                    }
                                }

                                .sub-menu {
                                    opacity: 1;
                                    max-height: unset;
                                    visibility: visible;
                                }
                            }
                        }

                        &>a,
                        &>span {
                            padding: 16px 10px;
                            align-items: center;
                            transition: var(--transition);
                            color: var(--blue);
                            font-family: var(--main-font);
                            font-weight: var(--medium);
                            font-size: 16px;
                            line-height: 16px;

                            &:hover {
                                color: var(--orange);
                            }
                        }

                        &.menu-cta {
                            background: none !important;

                            &>a {
                                min-height: unset !important;
                                height: 35px !important;
                                background: var(--light-blue) !important;
                                padding: 7px 15px !important;
                                border-radius: 5px !important;
                                display: flex !important;
                                color: var(--white) !important;
                                font-weight: var(--regular) !important;
                                font-size: var(--p-size) !important;

                                &:hover {
                                    background: var(--dark) !important;
                                }
                            }
                        }

                        /**********************A supprimer **********************/

                        &>.sub-menu {
                            visibility: hidden;
                            max-height: 0;
                            opacity: 0;
                            margin: 0;
                            padding: 0;
                            position: absolute;
                            overflow: hidden;
                            background-color: var(--white);
                            top: 60px;
                            right: 0;
                            display: grid;
                            grid-template-columns: repeat(2, minmax(auto, 328px));
                            width: max-content;
                            border-radius: var(--border-radius);
                            box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.16);

                            @media (min-width: 992px) {
                                gap: 30px 40px;
                            }

                            &:not(:has(>.img_left), :has(>.img_right)) {
                                padding: 40px;
                            }

                            &:has(>.img_left) {
                                grid-template-columns: 220px repeat(3, minmax(auto, 190px));
                                padding: 40px 40px 40px 0;
                            }

                            &:has(>.img_right) {
                                grid-template-columns: repeat(3, minmax(auto, 190px)) 220px;
                                padding: 40px 0 40px 40px;
                            }

                            &:has(>.is_title) {
                                @media (min-width: 992px) {
                                    .is_title {
                                        grid-row: 1;
                                        grid-column: 1 / 4;
                                        border-bottom: 1px solid var(--grey);
                                        padding-bottom: 20px;
                                        margin-bottom: -10px;

                                        a {
                                            flex-direction: row;
                                            text-transform: uppercase;
                                            align-items: center;

                                            span {
                                                height: fit-content !important;
                                                font-weight: var(--bold) !important;
                                            }
                                        }

                                        &[data-color="#1bc661"] {
                                            a span {
                                                color: #1bc661 !important;
                                            }

                                            &~li.with_gradient {
                                                &:after {
                                                    background: linear-gradient(180deg, rgba(27, 198, 97, 0) 0%, rgba(27, 198, 97, 1) 60%);
                                                }
                                            }
                                        }

                                        &[data-color="#0f398f"] {
                                            a span {
                                                color: #0f398f !important;
                                            }
                                        }

                                        &[data-color="#518de4"] {
                                            a span {
                                                color: #518de4 !important;
                                            }

                                            &~li.with_gradient {
                                                &:after {
                                                    background: linear-gradient(180deg, rgba(81, 141, 228, 0) 0%, rgba(81, 141, 228, 1) 60%);
                                                }
                                            }
                                        }
                                    }

                                    .img_right {
                                        grid-row: 1 / 4 !important;
                                    }
                                }
                            }

                            &.four_col {
                                grid-template-columns: repeat(4, minmax(auto, 190px));

                                &:has(>.img_left, >.img_right) {
                                    @media (min-width: 992px) {
                                        grid-template-columns: 230px repeat(3, minmax(auto, 160px));
                                    }

                                    @media (min-width: 1200px) {
                                        grid-template-columns: 270px repeat(3, minmax(auto, 190px));
                                    }

                                    @media (min-width: 1400px) {
                                        grid-template-columns: 270px repeat(4, minmax(auto, 190px));
                                    }
                                }
                            }

                            &>.menu-item {
                                &:not(:has(>.sub-menu), .is_title, .menu-cta, .img_left, .img_right) {
                                    &:hover {
                                        a {
                                            color: var(--orange) !important;

                                            span {
                                                color: var(--orange) !important;
                                            }

                                            &:after {
                                                filter: brightness(0) saturate(100%) invert(54%) sepia(13%) saturate(5838%) hue-rotate(9deg) brightness(105%) contrast(107%);
                                            }
                                        }
                                    }
                                }

                                &:not(:has(>.sub-menu), .is_title, .menu-cta, .img_left, .img_right) {
                                    a {
                                        span {
                                            position: relative;

                                            &:not(.desc, .bouton) {
                                                &:after {
                                                    content: '';
                                                    height: 1px;
                                                    width: 0;
                                                    background: var(--orange);
                                                    transition: width 0.3s ease;
                                                    position: absolute;
                                                    bottom: -5px;
                                                    left: 0;
                                                }
                                            }
                                        }
                                    }

                                    &:hover {
                                        a {
                                            span {
                                                color: var(--orange) !important;

                                                &:after {
                                                    width: 100%;
                                                    transition: width 0.3s ease;
                                                }
                                            }
                                        }
                                    }

                                    &.img_left,
                                    &.img_right {
                                        a {
                                            span:first-child {
                                                &:after {
                                                    display: none !important;
                                                }
                                            }
                                        }
                                    }
                                }

                                &:not(.is_title, .img_left, .img_right) {
                                    &>a {
                                        &:after {
                                            content: url('../img/arrow_menu.svg');
                                            width: 16px;
                                            height: 8px;
                                            display: inline-block;
                                            transition: var(--transition);
                                        }
                                    }
                                }

                                &>a {
                                    display: flex;
                                    flex-direction: column;
                                    gap: 12px;
                                    transition: var(--transition);

                                    &:has(+ .sub-menu) {
                                        span {
                                            &:not(.desc) {
                                                border-bottom: 1px solid var(--dark-grey);
                                                padding-bottom: 12px;
                                            }
                                        }
                                    }

                                    span {
                                        color: var(--dark-blue);
                                        transition: var(--transition);
                                        width: fit-content;

                                        &:not(.desc) {
                                            font-weight: var(--medium);
                                        }

                                        &.desc {
                                            font-size: var(--p-size);
                                            line-height: 18px;
                                        }
                                    }

                                    img {
                                        width: 28px;
                                        height: 26px;
                                        object-fit: contain;
                                    }
                                }

                                &:has(>.sub-menu) {
                                    &>.sub-menu {
                                        padding: 12px 0 0 0;

                                        &>li {
                                            display: flex;
                                            align-items: center;
                                            transition: var(--transition);

                                            &:not(:last-child) {
                                                margin-bottom: 16px;
                                            }

                                            &>a {
                                                color: var(--dark-blue);
                                                transition: var(--transition);

                                                span {
                                                    color: var(--dark-blue);
                                                    transition: var(--transition);
                                                }
                                            }

                                            &:hover {
                                                a {
                                                    color: var(--light-blue);

                                                    span {
                                                        color: var(--light-blue);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }

                                &.img_left {
                                    left: -50px;
                                    grid-row: span 2;
                                }

                                &.img_right {
                                    grid-row: 1 / 3;
                                    grid-column: 4;
                                }

                                &.img_left,
                                &.img_right {
                                    height: calc(100% + 80px);
                                    position: relative;
                                    top: -40px;
                                    width: 220px;
                                    background-repeat: no-repeat;
                                    background-size: cover;
                                    display: flex;
                                    align-items: end;
                                    border: 0px;
                                    padding: 40px;
                                    z-index: 1;
                                    background-position: right;

                                    &:hover {
                                        a {
                                            span {
                                                &.bouton {
                                                    background-color: var(--dark-blue) !important;
                                                }

                                                &.bouton_no_bg {
                                                    &:after {
                                                        width: 100%;
                                                        transition: width 0.3s ease;
                                                    }
                                                }
                                            }
                                        }
                                    }

                                    &.no_text {

                                        &>a span:not(.bouton),
                                        &:after {
                                            display: none;
                                        }
                                    }

                                    @media (min-width: 1200px) {
                                        width: 240px;
                                        background-position: unset;
                                    }

                                    &.with_gradient {
                                        &:after {
                                            content: '';
                                            position: absolute;
                                            top: 0;
                                            left: 0;
                                            width: 100%;
                                            height: 100%;
                                            z-index: 0;
                                            background: linear-gradient(180deg, rgba(15, 57, 143, 0) 0%, rgba(15, 57, 143, 1) 60%);
                                        }

                                        &>a {
                                            &>span {
                                                color: var(--white) !important;
                                            }
                                        }
                                    }

                                    &>a {
                                        font-family: var(--title-font);
                                        color: var(--white);
                                        font-size: 36px;
                                        line-height: 44px;
                                        font-style: normal;
                                        z-index: 2;
                                        gap: 20px;

                                        &>span:not(.bouton) {
                                            font-size: 24px;
                                            color: var(--dark-blue);
                                            line-height: 28px;
                                            font-weight: var(--semibold);
                                        }

                                        &>span.bouton {
                                            color: var(--white) !important;
                                        }

                                        &>span.bouton_no_bg {
                                            font-size: 16px;
                                            color: var(--orange) !important;
                                            font-weight: var(--regular);
                                            margin-top: -10px;
                                            position: relative;
                                            width: fit-content;

                                            &:after {
                                                content: '';
                                                height: 0.5px;
                                                width: 0;
                                                background: var(--orange);
                                                transition: width 0.3s ease;
                                                position: absolute;
                                                bottom: -5px;
                                                left: 0;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            .menu_mobile,
            .menu__toggle {
                display: none;
            }
        }

        @media (min-width: 1200px) {
            .menu {
                .menu__main {
                    gap: 30px;

                    &>.menu-item {

                        &>a,
                        &>span {
                            padding: 16px;
                        }

                        &>.sub-menu {
                            &:has(>.img_left) {
                                grid-template-columns: 240px repeat(3, minmax(auto, 220px));
                            }

                            &:has(>.img_right) {
                                grid-template-columns: repeat(3, minmax(auto, 220px)) 240px;
                            }
                        }
                    }
                }
            }
        }
    }
}

.acces_rapide {
    display: none;
}

.demande_devis {
    width: 80px;
    height: 50px;
    background: var(--orange);
    z-index: 101;
    position: fixed;
    top: 50%;
    display: flex;
    border-radius: 8px 0px 8px 12px;
    right: 0;
    padding: 10px 12px;
    transition: none !important;

    @media (min-width: 992px) {
        width: 110px;
        height: 60px;
    }

    &:hover {
        background: var(--dark-blue);

        &:before {
            filter: brightness(0) saturate(100%) invert(9%) sepia(68%) saturate(1830%) hue-rotate(199deg) brightness(93%) contrast(97%);
        }
    }

    &:before {
        content: url('../img/deco.svg');
        position: absolute;
        top: -11px;
        right: 0;
        transform: scale(-1, 1);
    }

    >p {
        margin: 0;
        font-family: var(--secondary-font);
        font-size: var(--p-size);
        font-weight: var(--medium);
        line-height: 14px;
        color: var(--white) !important;

        @media (min-width: 992px) {
            font-size: 19px;
            line-height: 1;
        }
    }
}

/* @media (min-width: 992px) { */

    .acces_rapide {
        width: 56px;
        height: 70px;
        background: var(--orange);
        z-index: 101;
        position: fixed;
        top: 50%;
        display: block;
        border-radius: 0 8px 8px 12px;

        &:before {
            content: url('../img/deco.svg');
            position: absolute;
            top: -11px;
            left: 0;
        }

        &:after {
            content: '';
            position: absolute;
            right: -145px;
            width: 205px;
            height: 0px;
            background: transparent;
            opacity: 0;
            top: 50%;
            transform: translateY(-50%) translateX(-100%);
            z-index: -1;
        }

        &:hover {
            .acces_elements {
                pointer-events: all !important;
                visibility: visible !important;

                .acces_element {
                    opacity: 1 !important;
                    pointer-events: all !important;
                }
            }

            &:after {
                height: 105px;
                opacity: 1;
                transform: translateY(-50%) translateX(0) !important;
            }
        }

        .acces_wrapper {
            height: 100%;
            position: relative;

            .acces_bubble {
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                color: var(--white) !important;
                height: 100%;
                text-align: center;
                gap: 6px;

                span#info {
                    font-family: 'Times New Roman', serif;
                    font-size: var(--p-size);
                    line-height: 14px;
                    color: var(--white);
                    font-weight: 700;
                    position: relative;
                    font-style: italic;

                    &:after {
                        content: '';
                        font-style: italic;
                        border: 1px solid var(--white);
                        border-radius: 50px;
                        width: 16px;
                        height: 16px;
                        position: absolute;
                        top: 50%;
                        left: 50%;
                        transform: translate(-50%, -50%);
                    }
                }

                >p {
                    margin: 0;
                    font-family: var(--secondary-font);
                    font-size: var(--p-size);
                    font-weight: var(--medium);
                    line-height: 14px;
                }
            }

            .acces_elements {
                position: absolute;
                right: 100px;
                top: 0;
                display: flex;
                flex-direction: column;
                gap: 10px;
                left: 70px;
                width: fit-content;
                top: 50%;
                transform: translateY(-50%);
                pointer-events: none;
                visibility: hidden;

                .acces_element {
                    background: var(--white);
                    color: var(--blue);
                    width: max-content;
                    padding: 5px 10px;
                    border-radius: 4px;
                    font-size: var(--p-size);
                    font-weight: var(--medium);
                    display: flex;
                    align-items: center;
                    gap: 10px;
                    box-shadow: 0 0 8px rgba(0, 0, 0, 0.24);
                    min-height: 28px;
                    pointer-events: none;
                    opacity: 0;
                    transition: opacity 0.3s ease, background 0.3s ease, color 0.3s ease;

                    &:hover {
                        background: var(--orange);
                        color: var(--white);

                        &:before {
                            filter: brightness(0) saturate(100%) invert(94%) sepia(94%) saturate(2%) hue-rotate(13deg) brightness(108%) contrast(101%);
                        }
                    }

                    &:before {
                        margin-top: 2px;
                    }

                    &#lock {
                        &:before {
                            content: url('../img/acces_lock.svg');
                            display: inline-flex;
                        }
                    }

                    &#emergency {
                        &:before {
                            content: url('../img/acces_emergency.svg');
                            display: inline-flex;
                        }
                    }

                    &#phone {
                        &:before {
                            content: url('../img/acces_phone.svg');
                            display: inline-flex;
                        }
                    }
                }
            }
        }
    }

    @keyframes fadeInFromTop {
        from {
            opacity: 0;
            transform: translateY(-10px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    @keyframes fadeInFromLeft {
        from {
            opacity: 0;
            transform: translateY(-50%) translateX(-50px);
        }

        to {
            opacity: 1;
            transform: translateY(-50%) translateX(0);
        }
    }

    .menu .menu__main>.menu-item:hover>.sub-menu {
        animation: fadeInFromTop 0.3s ease-out;
    }

    .acces_rapide:hover .acces_elements {
        animation: fadeInFromLeft 0.3s ease-out forwards;
    }
/* } */