/* --- HEADER --- */
.header {
    border-bottom: 1px solid #D0D0CF;
}
.header--transparent {
    position: absolute;
    z-index: 20;
    top: 0;
    right: 0;
    left: 0;
    color: #fff;
    border-bottom: 0;
}
.header__content {
    position: relative;
    z-index: 12;
    background: #FFF;
    padding-top: 1rem;
    padding-bottom: .5rem;
}
.header__content {
    height: calc(4rem - 1px);
}
.header--fixed .header__content {
    position: fixed;
    right: 0;
    left: 0;
}
.header--transparent .header__content {
    background: linear-gradient(180deg, rgba(13, 31, 79, .78), rgba(13, 31, 79, 0));
}

.header--transparent .header__logo img {
    filter: brightness(0) invert(1);
}
.header__logo img {
    width: auto;
    height: 40px;
    min-width: 160px;
}

.header__meta {
    align-items: center;
    position: absolute;
    top: 0;
    padding: 1rem 1rem 1rem 3rem;
    background-color: rgba(165,204,215,0.75);
    margin-right: -1.5rem;
}

.header__meta::before {
    content: '';
    position: absolute;
    left: -24.1px;
    top: 0;
    bottom: 0;
    width: 24px;
    background-color: rgba(165,204,215,0.75);
    z-index: 1;
    clip-path: polygon(100% 0%, 0% 100%, 100% 100%)
}

.header__meta::after {
    content: '';
    position: absolute;
    left: 100%;
    width: calc(calc(100vw - 1410px) / 2);
    top: 0;
    bottom: 0;
    background-color: rgba(165,204,215,0.75);
}

.header__menu {
    margin-top: 2rem;
}

.header__meta i {
    font-size: 1rem;
    position: relative;
    top: 0;
}

.header__meta a {
    font-size: 14px;
    margin-right: 8px;
}

.border {
    border: 1px solid #D0D0CF;
    border-radius: 4px;
    padding: .0rem .3rem .2rem .3rem;
}

.scroll-down {
    color: inherit;
    text-decoration: none;
}

/* --- MAIN MENU --- */
.nav-main .nav-main__link {
    color: #153d8a;
}

.header--transparent .nav-main .nav-main__item--1 > .nav-main__link {
    color: #FFFFFF;
}

.header__meta::after {
    background-color: rgba(165,204,215,0.75);
}

.nav-main .nav-main__link[data-mask]::before {
  content: attr(data-mask);
}

.mobile-menu__toggle {
    margin-left: 0;
}

.mobile-pf {
    padding: 0 20px;
}
.mobile-pf i {
    margin-right: 5px;
}

.nav-main__teasers {
    margin-left: -20px;
    margin-right: -20px;
    margin-bottom: -4rem;
}
.nav-main__teasers p {
    margin-top: .5rem;
}
.nav-main__teasers .col {
    max-width: 50%;
}
.nav-main__teasers .col + .col{
    border-left: 2px solid #fff;
}



/* --- SEARCH --- */
.header__meta-search,
.solr-form__fieldset {
    position: relative;
}
.header__meta-search .search-field__input input {
    height: 54px;
    font-family: Arial, sans-serif;
    line-height: 100%;
    color: #4A4949;
    border: 1px solid #e0e0e0;
    border-radius: 0;
    padding: 0 80px 0 20px;
}
.header__meta-search .search-field__btn {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    border: none;
    background: #0055FF;
    color: #fff;
    font-size: 1.5rem;
}
.header__meta-search .search-field__btn:hover {
    background: #0D1F4F;
}
.search__content form {
    height: 0;
    overflow: hidden;
    background: #fff;
    z-index: 12;
    min-width: 300px;
    position: absolute;
    right: -47px;
    top: 47px;
    opacity: 0;
    transition: opacity .5s, box-shadow .5s;
}
.search--open .search__content form {
    height: auto;
    overflow: visible;
    opacity: 1;
    box-shadow: 0 20px 20px -10px rgba(0,0,0,.5);
}

/* ==========================================================================
   Media Queries
   ========================================================================== */

/* --- PHONE (SM) --- */
@media ( min-width: 576px ) {



}



/* --- TABLET (MD) --- */
@media ( min-width: 768px ) {

    .mobile-menu__toggle {
        margin-left: 0;
    }

    .search__content form {
        min-width: 320px;
        right: -20px;
        top: 100%;
    }

}


@media ( max-width: 1451px ) {

    .header__meta {
        position: relative;
        background-color: transparent;
        padding: 0;
        padding-right: .75rem;
    }

    .header--transparent .header__meta {
        i,
        span,
        a {
            color: white;
        }
    }

    .header__meta::before,
    .header__meta::after {
        display: none;
    }

    .header__menu {
        margin: 0;
    }

    .icon-product-finder {
        display: none;
    }

    .header--transparent .nav-main .nav-main__item--1 > .nav-main__link {
        color: inherit;
    }

    .mobile-menu__toggle {
        display: flex !important;
        z-index: 999;
        position: relative;
    }

    .header--transparent .mobile-menu__toggle {
        color: white;
    }

    /* --- MOBILE MENU --- */
    .mobile-menu__content {
        overflow-y: auto;
        position: fixed;
        z-index: 11;
        top: 4rem;
        right: 0;
        bottom: 0;
        left: 0;
        height: 0;
        background: #FFF;
    }
    .mobile-menu--open .mobile-menu__content {
        max-width: none;
        height: auto;
    }
    .mobile-menu .hamburger-inner,
    .mobile-menu .hamburger-inner::before,
    .mobile-menu .hamburger-inner::after {
        background-color: #153D8A;
    }

    /* --- MAIN MENU --- */

    /* Nav list styling */
    .nav-main__item {
        border-bottom: 1px solid rgba(0,0,0,0.15);
    }
    .nav-main__item:last-child {
        border-bottom: 0;
    }
    .nav-main .nav-main__link {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        padding: 10px 10px 10px 20px;
        position: relative;
    }
    .nav-main .nav-main__link sup {
        margin-right: .4em;
    }
    .nav-main .nav-main__link::before {
        order: 1;
        margin-left: 0.5em;
        font-size: .75rem;
        transform: translateY(-0.05em);
        position: absolute;
        right: 10px;
        top: 15px;
    }
    .nav-main .nav-main__link--up {
        justify-content: flex-start;
        padding-left: 10px;
        border-bottom: 1px solid #FFF;
    }
    .nav-main .nav-main__link--up::before {
        order: -1;
        margin: 0 0.5em 0 0;
    }
    .nav-main .nav-main__link--current,
    .nav-main .nav-main__link--current:hover {
        font-weight: 700;
        color: #FFF;
        background: #0d1f4f;
    }

    /* Main menu */
    .nav-main {
        overflow-y: auto;
        position: absolute;
        top: -20px;
        right: 0;
        bottom: 0;
        left: 0;
        max-width: 680px;
        margin: 0 auto;
        opacity: 0;
        transition: top .3s, opacity .3s;
    }
    .mobile-menu--open .nav-main {
        top: 0;
        opacity: 1;
    }
    .nav-main__list {
        display: none;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        margin: 0;
        padding: 1.5rem 0 0;
        transition: transform .5s cubic-bezier(0.19, 1, 0.22, 1);
    }
    .nav-main__list.open {
        display: block;
    }
    .nav-main__list .nav-main__list {
        left: 100%;
    }

    /* Level 1 */
    .nav-main__list--1 {
        display: block;
    }

    /* Level 2 */
    .nav-main__sub {
        padding: 0;
    }



    /* --- MOBILE OPTIONS --- */
    .nav-main .m-opts {
        display: flex;
        padding: 10px 20px;
        border-color: #FFF;
    }
    .m-opts__item {
        margin-right: 30px;
    }
    .m-opts__item:last-child {
        margin-right: 0;
    }
    .m-opts__toggle {
        padding: 0;
        border: 0;
        color: inherit;
        background: none;
    }
    .m-opts__content {
        display: none;
        overflow-y: auto;
        position: absolute;
        z-index: 1;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
    }
    .m-opts__item--open .m-opts__content {
        display: block;
    }

    /* Language menu */
    .nav-lang [class*=" icon-flag-"] {
        justify-content: flex-start;
    }
    .nav-lang [class*=" icon-flag-"]::before {
        order: unset;
        margin: 0 .5em 0 0;
        box-shadow: 0 0 0 1px rgba(255,255,255,0.75)
    }

}



/* --- DESKTOP (MD) --- */
@media ( min-width: 768px ) {


    /* --- META MENU --- */
    .header__meta i {
        top: 0;
        margin-right: 5px;
    }
    .header__meta .js-link,
    .header__meta a {
        margin-right: 20px;
        font-size: 1rem;
    }

}
/* --- DESKTOP (LG) --- */
@media ( min-width: 1451px ) {

    /* --- HEADER --- */
    .header__content {
        padding: 2rem 0 1rem 0;
        height: auto;
        position: relative;
    }
    .header__logo img {
        height: 74px;
    }

    /* --- META MENU --- */
    .header__meta {
        flex: 1 1 100%;
    }
    .header__meta .header__meta-search .js-link {
        margin-right: 0;
    }


    /* --- MOBILE MENU --- */



    
    .nav-main__list {
        list-style: none;
    }
    .nav-main__item--sub {
        /*cursor: pointer;*/
    }
    .nav-main .nav-main__link.icon-caret-right:before {
        display: none;
    }
    .nav-main__item--active > .nav-main__link {
        font-weight: 700;
    }
    .header__menu .nav-main__item a.nav-main__link:hover {
        color: #0D1F4F;
        text-decoration: underline;
    }

    /* Level 1 */
    .nav-main__list--1 {
        display: flex;
        margin: 0 -30px 0 0;
        justify-content: flex-start;
    }
    .nav-main__item--1 > .icon-bento-menu {
        font-size: 1.2rem;
        position: relative;
        top: 3px;
    }
    .nav-main__item--1 > .nav-main__link {
        display: block;
        padding: 0.75rem 10px; /* 3rem total height */
        white-space: nowrap;
        position: relative;
        cursor: pointer;
    }
    [lang=fr] .nav-main__item--1 > .nav-main__link {
        padding: 0.75rem 5px; /* 3rem total height */
    }
    [lang=fr] .nav-main__item--1:first-child > .nav-main__link {
        padding-left: 0;
    }
    .nav-main__item--1 > .nav-main__link:after {
        content: '';
        position: absolute;
        top: calc(100% - 3px);
        left: 50%;
        width: 0;
        height: 0;
        background: #fff;
        transition: left .2s, width .2s,  height .2s, background .4s;
    }
    .nav-main__item--hover > .nav-main__link:after {
        left: 10px;
        width: calc(100% - 20px);
        background: #FF0000;
        height: 3px;
    }
    .nav-main__item--hover > .nav-main__link {
        color: #0D1F4F;
    }

    /* Level 2 */
    .nav-main__sub {
        display: none;
        position: absolute;
        z-index: 11;
        top: calc(100% + 1px);
        right: 0;
        left: 0;
        padding: 0 20px 4rem 20px;
        background: #FFF;
        box-shadow: 0 40px 40px -20px rgba(0,0,0,.5);
    }
    .nav-main__item--hover .nav-main__sub {
        display: block;
    }
    .nav-main__sub--columns .nav-main__list--2 {
        column-count: 4;
        column-gap: 40px;
    }
    .nav-main__sub--float .nav-main__list--2 {
        overflow: hidden;
    }
    .nav-main__sub--float .nav-main__item--2 {
        /* workaround for Edge and IE (they have issues placing less then 4 items ) */
        float: left;
        width: 25.75%;
        padding-right: 40px;
    }
    .nav-main__item--2 {
        /* workaround for FF (which seems to ignore page-break-inside, when items are very imbalanced) */
        overflow: hidden;
        padding: 1.5rem 0 0 0;
        -webkit-column-break-inside: avoid;
        page-break-inside: avoid;
        break-inside: avoid;
    }
    .nav-main__sub--columns-bento .nav-main__list--2 {
        /* workaround: 5 lists in 5 columns shouldn't be balanced so i just flexed them (since there is no real css column fragmentation) */
        column-count: initial;
        display: flex;
        column-gap: 0;
        margin-right: -40px;
    }
    .nav-main__sub--columns-bento .nav-main__item--2 {
        /* workaround: 5 lists in 5 columns shouldn't be balanced so i just flexed them (since there is no real css column fragmentation) */
        flex: 1 1 20%;
        margin-right: 40px;
    }
    .nav-main__item--2 > .nav-main__link {
        display: inline-block;
        position: relative;
        margin-right: 10px;
        font-weight: 700;
    }

    /* Level 3 */
    .nav-main__list--3 {
        margin: 0;
        padding: 0.5rem 0 0 0;
    }
    li.nav-main__item--3 {
        padding: 8px 0;
        border-bottom: 1px solid #D0D0CF;
    }
    .nav-main__item--3:first-child {
        padding-top: 0;
    }



    /* --- ROOTLINE --- */
    .header__breadcrumb {
        position: absolute;
        top: 100%;
    }
}



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

    /* Level 1 */
    .nav-main__list--1 {
        margin: 0 -40px 0 0;
    }
    .nav-main__item--1 > .nav-main__link {
        padding: 0.75rem 8px; /* 3rem total height */
    }
    .nav-main__item--hover > .nav-main__link:after {
        left: 20px;
        width: calc(100% - 40px);
    }
    [lang=fr] .nav-main__item--1 > .nav-main__link {
        padding: 0.75rem 7px; /* 3rem total height */
    }

}



/* --- DESKTOP (XXL) --- */
@media ( min-width: 1600px ) {



}


@media ( max-width: 1450px ) {
    .nav-main__item--1 > .nav-main__link {
        padding: 0.75rem .5rem; /* 3rem total height */
    }
}


@media ( max-width: 640px ) {
    .header__logo img {
        min-width: auto;
    }
    .header__meta {
        padding-right: 1.75rem;
    }
}
