header {
    position: sticky;
    top: 0;
    z-index: 1000;
    height: var(--header-height);
    background-color: var(--white);
}

.header-container {
    padding: 1.25rem var(--padding-horizontal);
    background-color: var(--white);
    overflow: hidden;
    width: 100%;
    height: var(--header-height);
}

.header--row_first {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}

header .nav {
    position: fixed;
    top: var(--header-height);
    left: 0;
    height: calc(100vh - var(--header-height));
    width: -webkit-fill-available;
    flex-direction: column;
    transition: left 0.4s ease-in-out;
    background-color: var(--blue-400);
    overflow-y: scroll;
    width: 100vw;
}

.header .nav.hidden {
    left: 120vw;
}

.header .logo {
    display: block;
    width: auto; 
    max-height: 4.65rem;
}

.header .logo:focus-visible {
    outline: -webkit-focus-ring-color auto 0px;
}

.header--row_first--item.mobile-tablet-only {
    display: flex;
    justify-content: flex-start;

    border: none;
}

.header--row_first--item.mobile-tablet-only.search-lang {
    justify-content: space-between;
}

.header--row_first--item.mobile-tablet-only.socials {
    justify-content: center;
}

.header--row_first--item.mobile-tablet-only img {
    width: 2rem;
    height: 2rem;
}


.header--row_first--item.mobile-tablet-only li {
    list-style-type: none;
}

.header--row_first--item {
    -ms-flex-direction: row;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
}

.header .nav-line {
    list-style: none;
    display: flex;
    align-items: flex-start;
    margin: 0;
}

.header .nav-line.pictos {
    -ms-flex-direction: row;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
}

.header .nav-line.first {
    padding-top:2rem;
    top: 2rem;
    width: 100%;
    align-items: center;
    justify-content: space-between;
}

.header .nav-line{
    background-color: var(--white);
}

.container-close{
    width: 100%;
    /* width: 64%; */
    margin-right: 1rem;
    margin-left: 1rem;
}

.header .nav-line a,
.header .nav-line .menu-name {
    font-size: 1rem;
    font-weight: 700;
    line-height: 2.5rem;
    letter-spacing: 0.028rem;
    cursor: pointer;
    font-family: var(--font-family);
}

.header .nav-line a p{
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.5rem;
    letter-spacing: 0.028rem;
    color:var(--red);
}

.header .nav-line p{
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5rem;
    letter-spacing: 0.028rem;
    color:var(--blue);
    font-family: var(--font-family);
}

.mobile-tablet-only.nav-line.nav-line-cta{
    display: flex;
    padding: 1.5rem 1rem;
    flex-direction: column;
    align-items: flex-start;
    margin-top: -0.25rem;
    max-height: 512px;
    overflow-x: hidden;
    overflow-y: scroll;
    scrollbar-color: var(--red) var(--white);
    scrollbar-width: auto;
}

.menuBurger {
    cursor: pointer;
}

.menuBurger span.desktop-only{
    font-size: 1.2rem;
}

#menuBurger, #menuClose{
    width:2rem;
    cursor: pointer;
    display: none;
}

.header--burger path {
    transition: transform var(--transition-time);
    transform-origin: center center;
}

#menuClose {
    position: relative;
    z-index: 1001;
    display: none;
}

#menuBurger {
    z-index: 1;
}

.fixed-nav{
    position: fixed;
    top: 3.7rem;
    width: 100%;
    z-index: 1000
}

#menuBurger.hidden {
    pointer-events: none;
    visibility: hidden;
    display: none;
    position: relative;
}

.nav #menuBurger .menu-burger{
    position: fixed;
    top: 3.8rem;
}

.nav.hidden #menuBurger .menu-burger{
    position: relative;
    top:auto;
}

.nav-line.pictos.menuBurger{
    background-color: var(--bg-blue-light);
    padding: 1rem;
    pointer-events: visible;
    
}

.header .nav-line.first span,
.header .nav-line.first img {
    cursor: pointer;
    color: var(--white);
}

.header .nav-line-item {
    width: 100%;
    border-bottom: 1px solid var(--white);
    background-image: url(img/slick/next.svg);
    background-repeat: no-repeat;
    background-position: right 16px;
    background-size: auto 16px;
}

.header .menu-burger,
.header .close-menu {
    display: block;
    cursor: pointer;
}

.open-close-menu .svg-menu-open {
    width: 2.8125rem; 
    height: var(--header-items-padding); 
}

.open-close-menu .svg-menu-close {
    width: var(--header-items-padding); 
    height: var(--header-items-padding); 
}

.open-close-menu.close-menu {
    position: absolute;
    top: 35px; 
    right: 27px; 
}

.header--nav {
    color: var(--white);
}

header nav,
.header-submenu-items {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10;
    height: 100vh;
    padding-left: var(--header-items-padding);
    padding-top: var(--header-height);
    background-color: var(--black);
    transform: translateX(100vw);
    transition: var(--transition-time);
    width: 100vw;
    box-sizing: border-box;
}

header nav.is-open,
.header-submenu-items.is-open {
    transform: translateX(0);
}

.header-menu-items {
    margin: 0;
    padding-left: 0;
    list-style: none;
}

.header-menu-items.socials {
    display: flex;
    -ms-flex-direction: row;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    gap: 1.6875rem; /* 27px */
}

.header-submenu-items {
    top: var(--header-height);
    padding-top: 0;
    padding-left: var(--header-items-padding);
    list-style: none;
}

.header-menu-item a,
.header-submenu-item a,
.header-menu-item span,
.header-submenu-item span {
    display: inline-block;
    color: var(--white);
    font-weight: var(--p-bold-weight);
    text-decoration: none;
    text-transform: uppercase;
    margin: var(--header-items-padding) 0; /* 30px */
    cursor: pointer;
}

.header-menu-item span svg.mobile-only,
.header-menu-item span svg.mobile-tablet-only {
    display: inline-block;
}

.header-menu-items.socials a {
    margin: 0.5625rem 0; /* 9px */
}

.header-menu-items.socials img {
    display: block;
    max-width: 2.1875rem; /* 35px */
    max-height: 2.1875rem; /* 35px */
    width: auto;
    height: auto;
    object-fit: contain;
    filter: var(--svg-filter-white);
}

.header--nav-primary {
    padding: 2.5rem 1.25rem;
}

.header--nav-primary .component-accordion {
    margin-bottom: 2rem;
}
.header--nav-primary .accordion-title {
    margin-bottom: 0;
    text-transform: uppercase;
    color: var(--white);
}
.header--nav-primary .header--nav--subitems {
    list-style: disc;
    padding-left: 2rem;
}

.header--nav-primary .header--nav--subitems li {
    padding: 0.5rem;
}

.header--nav-primary .header--nav--subitems li a:hover {
    text-decoration: underline;
}

.header--nav-secondary {
    background-color: var(--blue-700);
    padding: 2.5rem 1.25rem;
}

.component-title-sliding-images-text__extraNavigation {
    display: flex;
    -ms-flex-direction: column;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    gap: 1.25rem;
}

.component-title-sliding-images-text__extraNavigation .component-cta {
    font-weight: 500;
}

/* SEARCH */

.starts-offscreen {
    position: fixed;
    top: 114px;
    left: 0;
    z-index: 100;
    height: calc(100vh - 114px);
    width: 100vw;
    padding-left: 2.313rem;
    background-color: transparent;
    transform: translateX(100%);
    transition: transform var(--transition-time), background-color var(--transition-time);
}
.starts-offscreen.is-open {
    transform: translateX(0);
    background-color: var(--blue-400);
}

.searchForm-wrapper {
    padding: 2.5rem 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.close-search {
    position: absolute;
    top: var(--padding-y);
    right: var(--padding-x);
    width: 3rem;
}

.header-search {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.header-search label {
    width: 100%;
}

.header-search input[type="search"] {
    width: 100%;
    background: transparent;
    border-bottom: .063rem solid var(--blue-800);
    border-radius: 0;
    color: var(--blue-800);
    margin-bottom: 1.5rem;
}

.header-search input[type="search"]:focus {
    outline: none;
}

.search--submit {
    border: 2px solid var(--blue-800);
    border-radius: 2.5rem;
    color: var(--blue-800);
    background: transparent;
    width: 100%;
    padding: 0.5rem;
    cursor: pointer;

    transition:
        color var(--transition-time, .25s),
        background-color var(--transition-time, .25s);
}

.search--submit:hover,
.search--submit:focus {
    color: var(--blue-400);
    background-color: var(--blue-800);
    outline: none;
}

.lang-choice {
    text-transform: uppercase;
}

@media screen and (min-width: 35.5rem) /* 568px */{

    /* HEADER */
    
    .nav-line.pictos.menuBurger{
        padding: 0.625rem;
    }

    .header .logo {
        max-height: 4.5rem;
    }

    .fixed-nav{
        top: 4.3rem;
    }
}

@media screen and (min-width: 46.5rem) /* 744px */{

    /* HEADER */
    
    .header .header-logo-link {
        max-width: 284px;
    }
    
    .header .logo {
        width: 100%;
        max-width: unset;
    }

    .fixed-nav{
        top: 4.5rem;
    }

    .header .nav-line.nav-line-cta a{
        font-size: 1.5rem;
    }

    .navlink {
        margin-bottom: 0.625rem;
    }

    .navlink-contact{
        justify-content: center;
        align-items: center; 
        display: flex;
        padding: 0.75rem 1rem;
    }

    .header .nav-line a,
    .header .nav-line .menu-name {
        font-size: 1.375rem;
        font-weight: 700;
        /* line-height: 3.125rem; */
        line-height: 2.5rem;
        letter-spacing: 0.028rem;
        cursor: pointer;
        font-family: var(--font-family);
    }

    .header .nav-line a p{
        font-size: 1.375rem;
        font-weight: 700;
        line-height: 2.5rem;
        letter-spacing: 0.028rem;
        color:var(--red);
    }

    .header .nav-line p{
        font-size: 1.375rem;
        font-weight: 400;
        line-height: 2.5rem;
        letter-spacing: 0.028rem;
        color:var(--blue);
        font-family: var(--font-family);
    }
}

@media screen and (min-width: 64rem) /* 1024px */ {

    :root {

        --navbar-shadow-blur: 0.25rem;
        --navbar-shadow-color: hsla(0, 0%, 0%, 0.250);
        --navbar-shadow: 0rem 0.25rem var(--navbar-shadow-blur) 0rem var(--navbar-shadow-color);


        --header-height: 7.375rem; /* 118px */
        --header-total-height: calc(var(--header-height) + 4.5rem);
        --header-items-padding-x: 3.125rem; /* 50px */
        --header-items-padding-y: 1.875rem; /* 30px */
        --header-items-padding: var(--header-items-padding-y) var(--header-items-padding-x);

        --menu-items-max-width: 91.25rem; /* 1460px = 91.25rem */
        --menu-items-max-gap: 3.125rem; /* 50px = 3.125rem */
        --menu-items-gap-percentage: 3.43%;
        --menu-items-gap: min(var(--menu-items-gap-percentage), var(--menu-items-max-gap));
    }

    body {
        margin-top: 0;
    }

    header {
        --padding-horizontal: 0;
        --nb-cols: 2;
        position: fixed;
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 100%;
        z-index: 1000;
        padding: 0;
    }
    
    .header-container {
        width: var(--content-width);
        margin: 0 auto;
        position: relative;
        overflow: visible;
        transition: 0.25s;
        gap: 1.5rem;
        margin-top: 0;
    }

    header[data-visible="sticky"],
    header[data-visible="false"] {
        margin-bottom: 4em;
    }

    header[data-visible="false"] .header-container {
        top: -10em;
        left: 0;
        right: 0;
        transition: 0.2s;
        
    }
    
    header[data-visible="true"] .header-container {
        top: 0;
        left: 0;
        right: 0;
        transition: 0.2s;
        padding-left: 0;
        padding-right: 0;
    }
    
    header[data-visible="sticky"] .header-container {
        top: 0;
        left: 0;
        right: 0;
        box-shadow: var(--navbar-shadow);
        padding-left: 0;
        padding-right: 0;
        transition: 0.2s;
    }

    .header .header-container .container-close{
        display: none;
    }

    .header.float .header-container {
        max-width: 1309px;
        padding: 1.11vw 0;
        width: 96.32%;
        height: 8.96vw;
    }

    .header .logo {
        min-height: 5vw;
        max-height: 4.5rem;
    }

    .header--row_first--item.mobile-tablet-only {
        display: none;
    }

    .header--row_first--item:not(.mobile-tablet-only) {
        display: flex;
        
        border-left: 2px solid var(--blue-500);
    }
    header .nav {
        width: 100vw;
        padding: 0;
        background-color: var(--blue-400);
        transform: unset;
        display: flex;
        flex-direction: column;
        overflow-y: initial;
    }

    .header .nav-line {
        flex-direction: row;
        align-items: center;
        justify-content: flex-end;
        margin: 0;
    }

    .header .nav-line-item {
        width: auto;
    }
    .header .nav-line a,
    .header .nav-line .menu-name {
        /* margin: 0 10px; */
        font-size: 0.8rem;
        text-decoration: none;
        font-weight: 700;
        line-height: 1.5rem;
        margin-bottom: 0;
        width: auto;
    }
    .navlink {
        font-size: 0.8rem;
        color:var(--red);
        font-weight: 700;
        background-color: var(--bg-blue-light);
        position: relative;
        display: inline-block;
        z-index: 0;
        text-decoration: none;
        z-index: 0;
    }
    
    .navlink::before {
        content: "";
        position: absolute;
        bottom: 0.7rem;
        left: 0;
        width: 100%;
        height: 30%; 
        background-color: var(--bg-red-light);
        z-index: -1;
        opacity: 0;
        transition: opacity 0.3s ease;
    }
    
    .navlink:hover::before {
        opacity: 1;
    }

    .header--nav-primary .component-accordion {
        padding-left: 0;
        padding-right: 0;
    }

    .header .nav-line.first span,
    .header .nav-line.first img {
        cursor: pointer;
        color: var(--blue);
    }
    .header .nav-line .nav-line-item:last-of-type .menu-name {
        margin-right: 0;
    }

    .container-close{
        display: none;
    }

    .mobile-tablet-only.nav-line.nav-line-cta{
        display: none;
    }

    .header-container .container-close{
        display: none;
    }

    .header .nav-line.first{
        padding-top: 0;
        padding: 0;
    }

    .header.float {
        top: 20px;
        width: 94%;
        max-width: 1359px;
        border-radius: 20px;
        box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.15);
    }

    .header .nav-line.nav-line-cta a{
        font-size: 1.25rem;
        transition: background-color 0.3s ease;
    }

    header nav {
        flex: 1;
        width: auto;
        height: var(--header-height);
        display: flex;
        -ms-flex-direction: row;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: var(--menu-items-gap);
        padding-left: 0;
        padding-top: 0;
        background-color: transparent;
        transform: unset;
        position: static;
    }

    .header-menu-items {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        margin: 0;
        width: initial;
    }

    .header-menu-item {
        padding: var(--header-items-padding-y) 0;
    }

    .header--nav--wrapper {
        width: var(--content-width);
        margin: 0 auto;
    }

    .header--nav-primary {
        display: grid;
        grid-template-columns: repeat(var(--nb-cols), auto);
        /*gap: clamp(2.5rem, 3vw, 5rem);*/
        gap: clamp(0.5rem, 3vw, 2rem);
        padding: 2rem var(--padding-horizontal);
        padding-right: 1.5rem;
        max-height: calc(100vh - var(--header-height));
        overflow-y: scroll;
    }

    .header--nav-primary::-webkit-scrollbar-thumb {
        background: var(--yellow-600);
    }
    .header--nav-primary::-webkit-scrollbar {
        width: 0.25rem; /* 4px */
    }
    .header--nav-primary::-webkit-scrollbar-track {
        position: relative;
        opacity: 0;
    }

    .header--nav-primary .component-accordion {
        margin-bottom: 0;
    }

    .header--nav-secondary {
        padding: var(--padding-y) min(2.5vw, 3rem);
        height: calc(100vh - var(--header-height));
        overflow-y: scroll;
    }

    .header--nav-secondary::-webkit-scrollbar-thumb {
        background: var(--yellow-600);
    }
    .header--nav-secondary::-webkit-scrollbar {
        width: 0.25rem; /* 4px */
    }
    .header--nav-secondary::-webkit-scrollbar-track {
        position: relative;
        opacity: 0;
    }

    .component-title-sliding-images-text__extraNavigation {
        gap: 2.5rem;
    }

    /* SEARCH */

    .header-search {
        width: 50%
    }

    .close-search {
        right: 25%;
    }

    .header-search label {
        width: 100%;
        display: flex;
        -ms-flex-direction: row;
        flex-direction: row;
        gap: 3rem;
    }

    .header-search input[type="search"] {
        margin-bottom: 0;
    }

    .search--submit {
        width: auto;
        padding: 0.5rem 2.5rem;
    }

}

@media screen and (min-width:80rem) { /*1280px*/

    header {
        --nb-cols: 3;
    }

    .header .nav-line a,
    .header .nav-line .menu-name {
        /* margin: 0 10px; */
        font-size: 1rem;
        text-decoration: none;
        font-weight: 700;
        line-height: 1.5rem;
        margin-bottom: 0;
        width: auto;
    }
    
}

@media screen and (min-width: 85.375rem) /*1366px*/{

    /* HEADER */

    .header.float .header-container {
        max-width: 1309px;
        max-height: 129px;
        padding: 16px 0;
    }

    .header .nav-line.nav-line-cta a{
        font-size: 3vw;
    }

    .header .nav-line.first a {
        font-size: 1rem;
        font-weight: 700;
        line-height: 1.5rem;
    }

    .header .logo {
        width: auto;
        /* max-height: 5vw; */
        min-height:0;
        /* max-height: 5rem; */
    }
    
    .navlink-contact-desktop {
        min-height: 3rem;
    }
}

@media screen and (min-width: 105rem) /*1680px*/ {

    /*HEADER*/

    .header .header-container {
        /* gap:2.5rem; */
    }

    .header .nav-line.first a {
        font-weight: 400;
    }

    .navlink-contact-desktop {
        min-height: 3rem;
    }
}

@media screen and (min-width:120rem) { /* 1920px */

    .header .nav-line a,
    .header .nav-line .menu-name {
        margin: 0 10px;
        font-size: 1.25rem;
        text-decoration: none;
        font-weight: 500;
        line-height: 1.5rem;
        margin-bottom: 0;
        width: auto;
    }

    .header .nav-line.first a{
        font-size: 1.25rem;
        font-weight: 500;
        line-height: 1.5rem;
        padding-top: 1rem;
        padding-bottom: 1rem;
    }

    .header .header-container {
        max-height: 5.938rem;
    }

    header[data-visible="true"] .header-container {
        padding-left: auto;
        padding-right: auto;
    }
    
    header[data-visible="sticky"] .header-container {
        padding-left: auto;
        padding-right: auto;
    }
}