/*
Theme Name: Divi Child
Template: Divi
*/


/* ==========================================================================
   Design tokens
   ========================================================================== */

:root {
    --font-primary: 'Barlow', Arial, sans-serif;
    --color-primary: #203D85;
}


/* ==========================================================================
   Typography
   ========================================================================== */

body {
    font-family: var(--font-primary) !important;
}

body #page-container :is(h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    p,
    li,
    label,
    input,
    textarea,
    select,
    button,
    .et_pb_button) {
    font-family: var(--font-primary) !important;
}


/* ==========================================================================
   Header — base
   ========================================================================== */

.et-l--header .et_pb_section {
    border-bottom: 1px solid transparent;
    box-shadow: none;

    transition:
        background-color 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease;
}


/* ==========================================================================
   Header — desktop navigation
   ========================================================================== */

@media (min-width: 981px) {

    /* Navigation */
    .et-l--header .et-menu {
        gap: 28px;
        align-items: center;
    }

    .et-l--header .et-menu>li {
        display: flex;
        align-items: center;

        padding: 0 !important;
    }

    /* Liens standards */
    .et-l--header .et-menu>li:not(.menu-cta)>a {
        padding-top: 14px !important;
        padding-bottom: 14px !important;
    }

    /* CTA */
    .et-l--header .menu-cta>a {
        padding: 14px 22px !important;

        color: #fff !important;
        background: var(--color-primary);

        border-radius: 5px;

        box-shadow: 0 0 0 rgba(32, 61, 133, 0);

        transform: translateY(0);

        transition:
            background-color 0.2s ease,
            transform 0.2s ease,
            box-shadow 0.2s ease;
    }

    .et-l--header .menu-cta>a:hover {
        background: #182F68;

        transform: translateY(-1px);

        box-shadow:
            0 6px 16px rgba(32, 61, 133, 0.18);
    }

    .et-l--header .menu-cta>a:focus-visible {
        outline: 2px solid var(--color-primary);
        outline-offset: 3px;
    }

    /* Élément possédant un sous-menu */
    .et-l--header .et-menu>li.menu-item-has-children>a {
        position: relative;

        padding-right: 20px !important;
    }

    /* Chevron du sous-menu */
    .et-l--header .et-menu>li.menu-item-has-children>a::after {
        top: 50% !important;
        right: 0 !important;

        transform: translateY(-50%);
    }

    /* ==========================================================================
   Navigation — états interactifs desktop
   ========================================================================== */

    /*
 * Liens principaux :
 * ligne dessinée via background pour éviter les conflits
 * avec le chevron ::after de Divi.
 */
    .et-l--header .et-menu>li:not(.menu-cta)>a {
        color: #20242c;

        background-image:
            linear-gradient(var(--color-primary),
                var(--color-primary));

        background-repeat: no-repeat;
        background-position: left bottom;
        background-size: 0 2px;

        transition:
            color 0.2s ease,
            background-size 0.28s cubic-bezier(0.22, 1, 0.36, 1);
    }


    /* Hover */
    .et-l--header .et-menu>li:not(.menu-cta)>a:hover {
        color: var(--color-primary) !important;
        background-size: 100% 2px;
    }


    /* Page active */
    .et-l--header .et-menu>li.current-menu-item:not(.menu-cta)>a,
    .et-l--header .et-menu>li.current_page_item:not(.menu-cta)>a,
    .et-l--header .et-menu>li.current-menu-ancestor:not(.menu-cta)>a,
    .et-l--header .et-menu>li.current_page_ancestor:not(.menu-cta)>a {
        color: var(--color-primary) !important;
        background-size: 100% 2px;
    }

    /* ==========================================================================
   Sous-menu — desktop
   ========================================================================== */

    .et-l--header .et-menu .sub-menu li a {
        background: transparent;
        color: #20242c !important;

        transition:
            color 0.2s ease,
            background-color 0.2s ease;
    }


    /* Hover du sous-menu */
    .et-l--header .et-menu .sub-menu li a:hover {
        color: var(--color-primary) !important;
        background: rgba(32, 61, 133, 0.06);
    }


    /* Élément actif du sous-menu */
    .et-l--header .et-menu .sub-menu li.current-menu-item>a {
        color: var(--color-primary) !important;
        background: rgba(32, 61, 133, 0.08);
    }

}


/* ==========================================================================
   Header — mobile navigation
   ========================================================================== */

@media (max-width: 980px) {

    /*
     * Autorise le dropdown à sortir du header.
     * On ne force volontairement PAS position: relative ici,
     * afin de ne pas interférer avec le sticky Divi.
     */
    .et-l--header .et_pb_section {
        overflow: visible !important;
    }

    /*
     * On neutralise les wrappers intermédiaires afin que
     * le dropdown ne soit pas limité à la largeur du burger.
     */
    .et-l--header .et_pb_row,
    .et-l--header .et_pb_column,
    .et-l--header .et_pb_menu,
    .et-l--header .et_pb_menu_inner_container,
    .et-l--header .et_pb_menu__wrap,
    .et-l--header .et_mobile_nav_menu,
    .et-l--header .mobile_nav {
        position: static !important;
    }

    /* Dropdown mobile pleine largeur */
    .et-l--header .et_mobile_menu {
        position: absolute !important;

        top: 100% !important;
        right: 0 !important;
        left: 0 !important;

        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;

        margin: 0 !important;

        box-sizing: border-box !important;

        z-index: 99999 !important;
    }
}


/* ==========================================================================
   Header — sticky state
   ========================================================================== */

.et-l--header .et_pb_section.et_pb_sticky {
    background: rgba(255, 255, 255, 0.94) !important;

    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);

    border-bottom-color: rgba(32, 61, 133, 0.08);

    box-shadow: 0 8px 32px rgba(20, 30, 45, 0.07);
}