.presentation_youtube,
.presentation_linkedin,
.presentation_website,
.presentation_twitter,
.presentation_facebook,
.presentation_instagram,
.presentation_viadeo,
.presentation_google_scholar,
.presentation_repec{
    border-radius:50%;
    border:1px solid #c5c5e1;
    padding:0;
    filter:saturate(0%);
}

.is-hidden{
    display:none!important;
}


/* =====================================================
   RESEARCHER
===================================================== */

.researcher{
    width:min(calc(100% - 2rem),1200px);
    margin:10px auto;
}

.researcher-header{
    display:grid;
    grid-template-columns:340px 1fr;
    gap:60px;
    align-items:flex-start;
    margin-bottom:60px;
}

.researcher-photo{
    width:340px;
    height:340px;
    overflow:hidden;
    border-radius:12px;
    border:1px solid rgba(255,255,255,.85);
    box-shadow:
            0 10px 25px rgba(0,0,0,.08),
            0 25px 55px rgba(0,0,0,.14),
            0 45px 90px rgba(0,0,0,.18);
}

.researcher-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:top;
}

.researcher-role{
    letter-spacing:.2em;
    text-transform:uppercase;
    color:#777;
}

.researcher-intro h1{
    margin:24px 0;
    font-size:clamp(2.2rem,5vw,3.4rem)!important;
    color:var(--ecox-bleu);
}

.researcher-axe,
.researcher-theme{
    color:var(--ecox-bleu);
    margin-bottom:35px;
}

.researcher-axe h4,
.researcher-theme h4{
    text-transform:uppercase;
    font-weight:400!important;
    color:#aaa;
    letter-spacing:.08em;
}
.researcher-axe .material-symbols-outlined {
    font-size: 1.7rem!important;
}

.researcher-theme-topics{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:25px 0;
}

.researcher-theme-topics span{
    padding:6px 12px;
    border:1px solid #ddd;
    border-radius:20px;
    font-size:.8rem!important;
    color:#4f5961;
    background:#fff;
}

.researcher-actions{
    display:flex;
    align-items:center;
    gap:25px;
    margin-top:35px;
}

.researcher-docs{
    display:flex;
    gap:15px;
}

.researcher-social{
    display:flex;
    align-items:center;
    gap:10px;
    margin-left:auto;
}


/* =====================================================
   SOCIAL
===================================================== */

.researcher-social a{
    width:42px;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#fff;
    border:2px solid rgba(0,0,0,.25);
    text-decoration:none;
    transition: border-color .3s ease;
}
.researcher-social a:hover{
    border-color:var(--ecox-rouge);
}

.researcher-social img{
    width:100%;
    aspect-ratio:1/1;
}

.researcher-social .material-symbols-outlined{
    font-size:20px!important;
}

.researcher-social i{
    font-size:18px;
}


/* =====================================================
   GRID
===================================================== */

.researcher-grid{
    display:grid;
    grid-template-columns:320px 1fr;
    gap:50px;
    align-items:start;
}

.researcher-sidebar{
    display:flex;
    flex-direction:column;
    gap:25px;
}

@media(min-width:991px){

    .researcher-sidebar{
        position:sticky;
        top:90px;
        align-self:start;
    }

}


/* =====================================================
   CONTACT
===================================================== */

.contact-list{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:18px;
}

.contact-list li{
    display:flex;
    align-items:flex-start;
    gap:15px;
}

.contact-icon{
    flex:0 0 42px;
    width:42px;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:rgba(51,52,102,.04);
    color:var(--ecox-rouge);
    font-size:22px!important;
    transition:
            background-color .3s ease,
            color .3s ease,
            transform .3s cubic-bezier(.22,1,.36,1);
}

.contact-list li:hover .contact-icon{
    background:var(--ecox-bleu);
    color:#fff;
    transform:scale(1.05);
}

.contact-content{
    flex:1;
    min-width:0;
}

.contact-content small{
    display:block;
    margin-bottom:3px;
    color:#8b8b8b;
    font-size:.78rem;
    font-weight:300;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.contact-content a,
.contact-content span{
    color: var(--ecox-bleu);
    font-weight:500;
    text-decoration:none;
    word-break:break-word;
}

.contact-content a{
    transition:color .25s ease;
}

.contact-content a:hover{
    color:var(--ecox-rouge);
}

.separator_publi,
.separator_dt{
    margin-bottom:45px;
}


/* =====================================================
   CARD / CARD EXPANDABLE (base commune factorisée)
===================================================== */

.card,
.card-expandable{
    z-index:2;
    display:block;
    padding:25px;
    border:1px solid rgba(0,0,0,.08);
    border-radius: var(--ecox-content-border-radius);
    background:#fff;
    margin-bottom:25px;
    overflow:hidden;
    overflow-anchor: none;
}

.card h2,
.card h3{
    margin-top:0;
    margin-bottom:25px;
    color:var(--ecox-bleu);
}


/* =====================================================
   CARD EXPANDABLE CUSTOM
===================================================== */

.card-expandable.custom{
    border:none;
}

.card-expandable.custom,
.card-expandable.custom .card-footer{
    background: var(--ecox-content-background);
}

.card-expandable.custom .card-header{
    padding:0 5px 22px;
    margin-bottom:25px;
}

.card-expandable.custom .card-header h2{
    font-weight:700;
}

.card-expandable.custom .card-header::before{
    background:none;
}

.card-expandable.custom .card-body::after{
    background:
            linear-gradient(
                    to bottom,
                    rgba(250,250,250,0) 0%,
                    rgba(250,250,250,.15) 35%,
                    rgba(250,250,250,.70) 75%,
                    var(--ecox-content-background) 100%
            );

    transition:opacity .3s ease;
}

.card-expandable .card-header{
    position:relative;
    padding:35px 35px 22px;
}

.card .card-header{
    position:relative;
    padding:5px 2px 28px;
}

.card-expandable .card-header h2{
    margin:0;
    font-size:1.6rem;
    letter-spacing:.12em;
}

.card .card-subtitle,
.card-expandable .card-subtitle{
    margin:10px 0 0;
    color:var(--ecox-rouge);
    font-size:.95rem;
    letter-spacing:.03em;
}


/* =====================================================
   CARD BODY
===================================================== */

.card-expandable .card-body{
    position:relative;
    overflow:hidden;
    box-sizing: border-box;
    padding:0 25px;
    transition: height .4s cubic-bezier(.22,.61,.36,1);
    /* Empêche cet élément (dont la hauteur change dynamiquement en JS,
       y compris via ResizeObserver) de participer au scroll-anchoring
       natif du navigateur, qui peut provoquer des sauts de scroll
       intempestifs sur mobile pendant un scroll actif. */
    overflow-anchor:none;
}

.card-expandable .card-body::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:140px;
    pointer-events:none;

    background:
            linear-gradient(
                    to bottom,
                    rgba(255,255,255,0) 0%,
                    rgba(255,255,255,.15) 35%,
                    rgba(255,255,255,.70) 75%,
                    #fff 100%
            );

    opacity:1;

    transition: opacity .3s ease;
}

.card-expandable .card-body.transparent-after::after{
    opacity:0;
}


/* =====================================================
   CARD FOOTER
===================================================== */

.card-expandable .card-footer{
    display:flex;
    justify-content:center;
    align-items:center;
    padding:20px 28px;
    border-top:1px solid rgba(0,0,0,.05);
    background:#fff;
}


/* =====================================================
   CARD TOGGLE
===================================================== */

.card-expandable .card-toggle{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
    background:none;
    border:0;
    cursor:pointer;
    color:var(--ecox-bleu);
    transition: color .25s ease;
}

.card-expandable .card-toggle:hover{
    color:var(--ecox-rouge);
}

.card-expandable .card-toggle-text{
    font-size:.95rem;
    font-weight:600;
    letter-spacing:.03em;
    margin-bottom:18px;
}

.card-expandable .card-toggle .material-symbols-outlined{
    font-size:44px!important;

    transition:
            transform .35s cubic-bezier(.22,1,.36,1),
            color .25s ease;
}

.card-expandable.open .card-toggle .material-symbols-outlined{
    transform:rotate(180deg);
}


/* =====================================================
   CARD OUVERTE
===================================================== */

.card-expandable.open{
    box-shadow:0 25px 70px rgba(0,0,0,.12);
}


/* =====================================================
   CARD THESIS
===================================================== */

.phd-card{
    background:#fff;
    border:1px solid rgba(0,0,0,.08);
    border-radius: var(--ecox-content-border-radius);
    padding:30px;
}

.phd-card .phd-card-header{
    position:relative;
    padding:25px 2px 22px;
}

.phd-card .phd-card-header::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:1px;
    background:var(--ecox-bleu);
}

.phd-label{
    display:block;
    margin-bottom:8px;
    font-size:.75rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:#777;
}

.phd-title{
    margin:0 0 28px;
    font-size:1.35rem;
    line-height:1.4;
    color:var(--ecox-bleu);
}

.phd-meta{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.phd-item{
    display:flex;
    align-items:flex-start;
    gap:14px;
}

.phd-item .material-symbols-outlined{
    flex-shrink:0;
    font-size:24px!important;
    color:var(--ecox-rouge);

    font-variation-settings:
            'FILL' 0,
            'wght' 300,
            'GRAD' 0,
            'opsz' 24;
}

.phd-item small{
    display:block;
    margin-bottom:3px;
    color:#777;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:.75rem;
}

.phd-item strong{
    color:#222;
    font-weight:600;
}


/* =====================================================
   PUBLICATIONS
===================================================== */

.publication{
    display:flex;
    gap:25px;
    padding:18px 0;
    background: #f3f3f3;
}

.year{
    min-width:55px;
    font-weight:700;
    color: var(--ecox-rouge);
}

.resource-list{
    display:flex;
    flex-direction:column;
    gap:12px;
}


/* =====================================================
   MOBILE
===================================================== */

@media(max-width:991px){

    .card-resource{
        display:none;
    }

    .researcher-header{
        grid-template-columns:1fr;
        text-align:center;
    }

    .researcher-photo{
        margin-inline:auto;
    }

    .researcher-grid{
        grid-template-columns:1fr;
    }

    .researcher-actions{
        justify-content:center;
        gap:35px;
    }

    .card-expandable{
        width:98%;
        max-width:98%;
        box-sizing:border-box;
    }

    .card-expandable .card-header{
        padding:25px 10px 15px;
    }

    .card-expandable .card-body{
        padding:0 5px;
    }

    .card-expandable .card-footer{
        padding:20px;
    }

    .card-expandable .card-header h2{
        font-size:1.3rem;
    }

    .card-expandable .card-subtitle{
        font-size:.9rem;
    }

}


@media(max-width:767px){

    .researcher-actions{
        flex-direction:column;
        align-items:center;
        gap:35px;
    }

    .researcher-docs{
        justify-content:center;
        flex-wrap:wrap;
    }

    .researcher-social{
        margin-left:0;
        justify-content:center;
        flex-wrap:wrap;
    }

}
