.elementor-79 .elementor-element.elementor-element-93d9d08{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}/* Start custom CSS for html, class: .elementor-element-e0774d5 */@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&family=Roboto:wght@400;500;600;700&display=swap');


:root{
    --zb-blue:#21489A;
    --zb-blue-dark:#21489A;
    --zb-orange:#ff571c;
    --zb-bg:#f8f4ee;
    --zb-line:rgba(33,72,154,.12);

    --zb-real-header-height:118px;
}


/* =========================================================
   GLOBAL
========================================================= */

html,
body{
    width:100%;
    max-width:100%;

    margin:0;
    padding:0;

    overflow-x:hidden;
}


/* =========================================================
   RESET
========================================================= */

.zb-header,
.zb-header *,
.zb-header *::before,
.zb-header *::after{
    box-sizing:border-box;
}


.zb-header a{
    text-decoration:none;
}


.zb-header img{
    display:block;
    max-width:100%;
}


.zb-header button{
    font-family:"Montserrat",sans-serif;
}


/* =========================================================
   SPACER
   EXACTEMENT LA HAUTEUR DU HEADER
========================================================= */

.zb-header-spacer{
    display:block !important;

    width:100% !important;

    height:var(--zb-real-header-height);

    min-height:0 !important;

    margin:0 !important;
    padding:0 !important;

    border:0 !important;

    background:transparent !important;
}


/* =========================================================
   IMPORTANT :
   PAS DE HAUTEUR FORCÉE SUR LE WIDGET ELEMENTOR
========================================================= */

.elementor-widget-html:has(.zb-header-spacer),
.elementor-widget-html:has(.zb-header-spacer)
> .elementor-widget-container{
    min-height:0 !important;

    margin:0 !important;
    padding:0 !important;

    overflow:visible !important;
}


/* =========================================================
   HEADER FIXE RÉEL
========================================================= */

.zb-header{
    position:fixed !important;

    top:0 !important;
    left:0 !important;
    right:0 !important;

    z-index:999999 !important;

    width:100% !important;

    max-width:none !important;

    margin:0 !important;
    padding:0 !important;

    overflow:visible !important;

    font-family:"Montserrat",sans-serif;

    background:
        radial-gradient(
            circle at 96% 0%,
            rgba(255,87,28,.07),
            transparent 25%
        ),
        linear-gradient(
            110deg,
            #fbf8f3,
            #f4eee7
        );

    border-bottom:
        1px solid rgba(33,72,154,.10);

    box-shadow:
        0 5px 24px
        rgba(33,72,154,.08);
}


/* =========================================================
   WORDPRESS ADMIN BAR
========================================================= */

body.admin-bar .zb-header{
    top:32px !important;
}


@media(max-width:782px){

    body.admin-bar .zb-header{
        top:46px !important;
    }

}


/* =========================================================
   DECOR
========================================================= */

.zb-header__bg-shape{
    position:absolute;

    width:175px;
    height:175px;

    right:-88px;
    top:-100px;

    border-radius:50%;

    border:
        27px solid var(--zb-orange);

    pointer-events:none;

    z-index:0;
}


.zb-header__bg-shape::before{
    content:"";

    position:absolute;

    inset:17px;

    border-radius:50%;

    border:
        1px solid rgba(33,72,154,.15);
}


/* =========================================================
   HEADER INNER
========================================================= */

.zb-header__inner{
    position:relative;

    z-index:5;

    width:100% !important;

    max-width:none !important;

    min-height:118px;

    margin:0 !important;

    padding:
        0
        34px !important;

    display:flex;

    align-items:center;
    justify-content:space-between;

    gap:20px;
}


/* =========================================================
   BRAND
========================================================= */

.zb-brand{
    position:relative;

    z-index:3;

    display:flex;

    align-items:center;

    flex:0 0 auto;

    margin:
        0
        auto
        0
        0;
}


/* =========================================================
   LOGO
========================================================= */

.zb-brand__logo-wrap{
    position:relative;

    display:block;

    width:124px;
    height:112px;

    flex:
        0
        0
        124px;
}


.zb-brand__orange{
    position:absolute;

    width:107px;
    height:107px;

    left:14px;
    top:8px;

    background:var(--zb-orange);

    border-radius:5px;

    transform:
        rotate(-3deg);

    z-index:1;
}


.zb-brand__image{
    position:absolute;

    left:0;
    top:0;

    width:111px;
    height:111px;

    overflow:hidden;

    border-radius:7px;

    background:#21489A;

    box-shadow:
        0 14px 30px
        rgba(33,72,154,.14);

    transform:
        rotate(-1.5deg);

    z-index:2;
}


.zb-brand__image img{
    width:100% !important;
    height:100% !important;

    max-width:100% !important;

    margin:0 !important;
    padding:0 !important;

    border:0 !important;

    object-fit:cover !important;
    object-position:center !important;

    transform:
        scale(1.03);
}


/* =========================================================
   DESKTOP NAV
========================================================= */

.zb-nav{
    position:absolute;

    left:50%;
    top:50%;

    transform:
        translate(-50%,-50%);

    display:flex;

    align-items:center;
    justify-content:center;

    gap:
        clamp(25px,2.1vw,44px);

    width:max-content;

    margin:0;

    z-index:5;
}


.zb-nav__item{
    position:relative;
}


/* =========================================================
   NAV LINKS
========================================================= */

.zb-nav__link{
    position:relative;

    display:flex;

    align-items:center;

    gap:9px;

    padding:
        42px
        0;

    border:0;

    outline:0;

    background:transparent;

    color:var(--zb-blue);

    font-size:
        clamp(15px,1.02vw,17px);

    font-weight:700;

    line-height:1;

    white-space:nowrap;

    cursor:pointer;

    appearance:none;
    -webkit-appearance:none;

    transition:
        color .2s ease;
}


.zb-nav__link:hover,
.zb-nav__item:focus-within
.zb-nav__link{
    color:var(--zb-orange);
}


/* =========================================================
   HOVER LINE
========================================================= */

.zb-nav__link::after{
    content:"";

    position:absolute;

    left:0;
    bottom:28px;

    width:0;
    height:2px;

    background:
        var(--zb-orange);

    transition:
        width .25s ease;
}


.zb-nav__item:hover
.zb-nav__link::after,
.zb-nav__item:focus-within
.zb-nav__link::after{
    width:28px;
}


/* =========================================================
   CHEVRON
========================================================= */

.zb-nav__chevron{
    width:8px;
    height:8px;

    border-right:
        1.5px solid #81929c;

    border-bottom:
        1.5px solid #81929c;

    transform:
        rotate(45deg)
        translateY(-2px);

    transition:
        transform .25s ease,
        border-color .25s ease;
}


.zb-nav__item:hover
.zb-nav__chevron,
.zb-nav__item:focus-within
.zb-nav__chevron{
    border-color:
        var(--zb-orange);

    transform:
        rotate(225deg)
        translateY(-2px);
}


/* =========================================================
   DROPDOWN
========================================================= */

.zb-dropdown{
    position:absolute;

    top:
        calc(100% - 15px);

    left:50%;

    width:430px;

    padding:
        10px
        28px;

    background:#fbf8f3;

    border:
        1px solid rgba(33,72,154,.10);

    box-shadow:
        0 24px 60px
        rgba(33,72,154,.16);

    opacity:0;

    visibility:hidden;

    pointer-events:none;

    transform:
        translate(-50%,12px);

    transition:
        opacity .25s ease,
        visibility .25s ease,
        transform .25s ease;

    z-index:1000000;
}


/* CONTACT */

.zb-dropdown--contact{
    left:auto;

    right:0;

    width:380px;

    transform:
        translateY(12px);
}


/* OPEN */

.zb-nav__item:hover
.zb-dropdown,
.zb-nav__item:focus-within
.zb-dropdown{
    opacity:1;

    visibility:visible;

    pointer-events:auto;

    transform:
        translate(-50%,0);
}


.zb-nav__item:hover
.zb-dropdown--contact,
.zb-nav__item:focus-within
.zb-dropdown--contact{
    transform:
        translateY(0);
}


/* =========================================================
   DROPDOWN LINKS
========================================================= */

.zb-dropdown__links{
    display:grid;
}


.zb-dropdown__links a{
    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:24px;

    min-height:76px;

    padding:
        17px
        0;

    border-bottom:
        1px solid rgba(33,72,154,.08);

    color:
        var(--zb-blue);

    transition:
        padding-left .2s ease;
}


.zb-dropdown__links a:last-child{
    border-bottom:0;
}


.zb-dropdown__links a > div{
    min-width:0;
}


.zb-dropdown__links strong{
    display:block;

    margin-bottom:5px;

    color:
        var(--zb-blue);

    font-size:17px;

    font-weight:700;

    line-height:1.2;

    transition:
        color .2s ease;
}


.zb-dropdown__links small{
    display:block;

    color:#7a8d98;

    font-family:
        "Roboto",sans-serif;

    font-size:14px;

    line-height:1.4;
}


.zb-dropdown__links > a > span{
    flex:
        0
        0
        auto;

    color:
        var(--zb-orange);

    font-size:21px;

    transition:
        transform .2s ease;
}


.zb-dropdown__links a:hover{
    padding-left:7px;
}


.zb-dropdown__links a:hover strong{
    color:
        var(--zb-orange);
}


.zb-dropdown__links a:hover
> span{
    transform:
        translate(3px,-3px);
}


/* =========================================================
   MOBILE DEFAULT
========================================================= */

.zb-burger,
.zb-mobile{
    display:none;
}


/* =========================================================
   MEDIUM DESKTOP
========================================================= */

@media(max-width:1450px) and (min-width:1101px){

    .zb-header__inner{
        padding:
            0
            22px !important;
    }


    .zb-brand__logo-wrap{
        width:112px;

        flex-basis:112px;
    }


    .zb-brand__image{
        width:101px;
        height:101px;
    }


    .zb-brand__orange{
        width:97px;
        height:97px;

        left:12px;
    }


    .zb-nav{
        gap:
            clamp(17px,1.45vw,25px);
    }


    .zb-nav__link{
        font-size:
            clamp(13px,.95vw,15px);
    }


    .zb-dropdown{
        width:390px;
    }


    .zb-dropdown--contact{
        width:350px;
    }

}


/* =========================================================
   TABLET / MOBILE
========================================================= */

@media(max-width:1100px){

    .zb-header__inner{
        min-height:96px;

        padding:
            0
            18px !important;
    }


    .zb-nav{
        display:none !important;
    }


    /* LOGO */

    .zb-brand__logo-wrap{
        width:88px;
        height:82px;

        flex:
            0
            0
            88px;
    }


    .zb-brand__image{
        width:79px;
        height:79px;
    }


    .zb-brand__orange{
        width:74px;
        height:74px;

        left:9px;
        top:7px;
    }


    /* =====================================================
       BURGER
    ===================================================== */

    .zb-burger{
        position:relative;

        z-index:1000002;

        display:block !important;

        width:50px;
        height:50px;

        flex:
            0
            0
            50px;

        margin:0;
        padding:0;

        border:0;

        border-radius:50%;

        background:
            var(--zb-blue);

        cursor:pointer;

        appearance:none;
        -webkit-appearance:none;

        touch-action:manipulation;
    }


    .zb-burger span{
        position:absolute;

        left:50%;

        width:20px;
        height:2px;

        margin-left:-10px;

        background:#fff;

        border-radius:10px;

        pointer-events:none;

        transition:
            transform .3s ease,
            top .3s ease;
    }


    .zb-burger span:first-child{
        top:19px;
    }


    .zb-burger span:last-child{
        top:28px;
    }


    .zb-header.is-open
    .zb-burger span:first-child{
        top:24px;

        transform:
            rotate(45deg);
    }


    .zb-header.is-open
    .zb-burger span:last-child{
        top:24px;

        transform:
            rotate(-45deg);
    }


    /* =====================================================
       MOBILE PANEL
    ===================================================== */

    .zb-mobile{
        position:fixed;

        top:96px;

        left:0;
        right:0;

        z-index:1000001;

        display:block !important;

        width:100%;

        height:
            calc(100dvh - 96px);

        padding:
            15px
            24px
            40px;

        overflow-y:auto;
        overflow-x:hidden;

        -webkit-overflow-scrolling:touch;

        overscroll-behavior:contain;

        background:
            linear-gradient(
                135deg,
                #fbf8f3 0%,
                #f4eee7 100%
            );

        border-top:
            1px solid var(--zb-line);

        box-shadow:
            0 25px 55px
            rgba(33,72,154,.15);

        opacity:0;

        visibility:hidden;

        pointer-events:none;

        transform:
            translateY(-8px);

        transition:
            opacity .25s ease,
            visibility .25s ease,
            transform .25s ease;
    }


    body.admin-bar
    .zb-mobile{
        top:
            calc(96px + 32px);

        height:
            calc(
                100dvh
                - 96px
                - 32px
            );
    }


    .zb-header.is-open
    .zb-mobile{
        opacity:1;

        visibility:visible;

        pointer-events:auto;

        transform:
            translateY(0);
    }


    /* GROUP */

    .zb-mobile__group{
        border-bottom:
            1px solid var(--zb-line);
    }


    .zb-mobile__group > button{
        width:100%;

        min-height:70px;

        padding:
            0
            5px;

        display:flex;

        align-items:center;
        justify-content:space-between;

        gap:20px;

        border:0;

        background:transparent;

        color:
            var(--zb-blue);

        font-family:
            "Montserrat",sans-serif;

        font-size:18px;

        font-weight:700;

        line-height:1.25;

        text-align:left;

        cursor:pointer;
    }


    .zb-mobile__group > button i{
        color:
            var(--zb-orange);

        font-size:28px;

        font-style:normal;

        font-weight:500;

        pointer-events:none;
    }


    /* SUBMENU */

    .zb-mobile__sub{
        display:none;

        padding:
            0
            5px
            18px;
    }


    .zb-mobile__group.is-open
    > .zb-mobile__sub{
        display:grid;

        gap:4px;
    }


    .zb-mobile__sub a{
        display:block;

        padding:
            10px
            0;

        color:#617887;

        font-family:
            "Roboto",sans-serif;

        font-size:15px;

        font-weight:500;

        line-height:1.45;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:600px){

    .zb-header__inner{
        min-height:92px;

        padding:
            0
            14px !important;
    }


    .zb-brand__logo-wrap{
        width:88px;
        height:82px;

        flex-basis:88px;
    }


    .zb-brand__image{
        width:79px;
        height:79px;
    }


    .zb-brand__orange{
        width:74px;
        height:74px;

        left:9px;
        top:7px;
    }


    .zb-header__bg-shape{
        width:112px;
        height:112px;

        right:-64px;
        top:-65px;

        border-width:19px;
    }


    .zb-burger{
        width:48px;
        height:48px;

        flex-basis:48px;
    }


    .zb-mobile{
        top:92px;

        height:
            calc(100dvh - 92px);

        padding:
            10px
            15px
            30px;
    }


    body.admin-bar
    .zb-mobile{
        top:
            calc(92px + 46px);

        height:
            calc(
                100dvh
                - 92px
                - 46px
            );
    }


    .zb-mobile__group > button{
        min-height:64px;

        font-size:17px;
    }


    .zb-mobile__sub a{
        padding:
            9px
            0;

        font-size:14px;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media(max-width:390px){

    .zb-header__inner{
        padding:
            0
            11px !important;
    }


    .zb-brand__logo-wrap{
        width:82px;
        height:76px;

        flex-basis:82px;
    }


    .zb-brand__image{
        width:74px;
        height:74px;
    }


    .zb-brand__orange{
        width:69px;
        height:69px;

        left:9px;
        top:7px;
    }


    .zb-burger{
        width:44px;
        height:44px;

        flex-basis:44px;
    }


    .zb-burger span:first-child{
        top:17px;
    }


    .zb-burger span:last-child{
        top:25px;
    }


    .zb-header.is-open
    .zb-burger span:first-child,
    .zb-header.is-open
    .zb-burger span:last-child{
        top:21px;
    }


    .zb-mobile{
        padding:
            8px
            12px
            25px;
    }


    .zb-mobile__group > button{
        min-height:60px;

        font-size:16px;
    }

}


/* =========================================================
   BODY LOCK
========================================================= */

body.zb-menu-open{
    overflow:hidden !important;
}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){

    .zb-dropdown,
    .zb-mobile,
    .zb-burger span,
    .zb-nav__link::after,
    .zb-dropdown__links a,
    .zb-dropdown__links > a > span{
        transition:none !important;
    }

}/* End custom CSS */