/* =============================================================
   PS Contributor Profiles — contributor-profile.css
   Loaded ONLY on /contributeurs/ pages — zero impact elsewhere.
   All classes prefixed .ps-cp- to avoid any theme conflicts.
   ============================================================= */


/* ------ Boxed content container ------ */
.ps-cp-container {
    max-width: 860px;
    margin: 0 auto;
    padding: 2rem 1.5rem 3rem;
}

/* ------ Breadcrumb ------ */
.ps-cp-breadcrumb {
    margin: 1rem 0 1.75rem;
    font-size: 0.82rem;
    color: #888;
}
.ps-cp-breadcrumb ol {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}
.ps-cp-breadcrumb li + li::before {
    content: "›";
    margin-right: 0.25rem;
    color: #bbb;
}
.ps-cp-breadcrumb a {
    color: #555;
    text-decoration: none;
}
.ps-cp-breadcrumb a:hover { text-decoration: underline; }
.ps-cp-breadcrumb [aria-current="page"] {
    color: #222;
    font-weight: 500;
}


/* ------ Profile card header ------ */
.ps-cp-header {
    display: flex;
    gap: 2rem;
    align-items: flex-start;
    background: #f7f9fc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 1.75rem;
    margin-bottom: 2.5rem;
    position: relative; /* needed for social top-right positioning */
}


/* ------ Photo ------ */
.ps-cp-photo { flex-shrink: 0; }
.ps-cp-photo img {
    display: block;
    width: 160px;
    height: auto;
    border-radius: 6px;
    object-fit: cover;
    box-shadow: 0 2px 10px rgba(0,0,0,.10);
}


/* ------ Identity ------ */
.ps-cp-identity {
    flex: 1;
    min-width: 0;
}

.ps-cp-name {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.2;
    color: #1a2d4e;
    margin: 0 0 0.4rem;
}

.ps-cp-job {
    font-size: 1rem;
    font-weight: 600;
    color: #3b5ea6;
    margin: 0 0 0.5rem;
}

.ps-cp-expertise {
    font-size: 0.9rem;
    color: #555;
    margin: 0 0 0.5rem;
}
.ps-cp-expertise__label {
    font-weight: 600;
    color: #333;
}

.ps-cp-org {
    font-size: 0.85rem;
    color: #888;
    margin: 0 0 0.85rem;
}
.ps-cp-org a { color: #3b5ea6; text-decoration: none; }
.ps-cp-org a:hover { text-decoration: underline; }


/* ------ Degree ------ */
.ps-cp-degree {
    font-size: 0.88rem;
    color: #555;
    margin: 0 0 0.45rem;
}
.ps-cp-degree__label {
    font-weight: 600;
    color: #333;
}

/* ------ Book ------ */
.ps-cp-book {
    font-size: 0.88rem;
    color: #555;
    margin: 0.45rem 0 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem;
}
.ps-cp-book__label {
    font-weight: 600;
    color: #333;
    flex-shrink: 0;
}
.ps-cp-book__link {
    color: #0A66C2;
    text-decoration: none;
    font-style: italic;
}
.ps-cp-book__link:hover { text-decoration: underline; }
.ps-cp-book__publisher {
    font-size: 0.8rem;
    color: #888;
}


/* ------ Social icons — top-right of header card ------ */
.ps-cp-social {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    position: absolute;
    top: 1rem;
    right: 1rem;
}

.ps-cp-social__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    text-decoration: none !important;
    transition: opacity 0.15s ease, transform 0.15s ease;
    flex-shrink: 0;
}
.ps-cp-social__btn:hover {
    opacity: 0.82;
    transform: translateY(-2px);
}

.ps-cp-social__icon {
    display: flex;
    align-items: center;
    justify-content: center;
}
.ps-cp-social__icon svg {
    width: 18px;
    height: 18px;
    fill: #fff;
    display: block;
}

/* Hide text label — icon only */
.ps-cp-social__label {
    display: none;
}


/* ------ Bio content ------ */
.ps-cp-bio {
    font-size: 1rem;
    line-height: 1.8;
    color: #333;
}
.ps-cp-bio p { margin-bottom: 1.1em; }
/* Strip WPBakery extra spacing inside bio */
.ps-cp-bio .vc_row,
.ps-cp-bio .wpb_wrapper { padding: 0 !important; }


/* ------ Related articles ------ */
.ps-cp-articles {
    border-top: 2px solid #e2e8f0;
    padding-top: 2rem;
    margin-top: 2rem;
}
.ps-cp-articles__title {
    font-size: 1.15rem;
    font-weight: 700;
    color: #1a2d4e;
    margin: 0 0 1rem;
}
.ps-cp-articles__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.ps-cp-articles__list a {
    color: #3b5ea6;
    text-decoration: none;
    font-size: 0.95rem;
}
.ps-cp-articles__list a::before {
    content: "→ ";
    opacity: 0.5;
}
.ps-cp-articles__list a:hover { text-decoration: underline; }


/* =============================================================
   RESPONSIVE
   ============================================================= */
@media (max-width: 640px) {
    .ps-cp-container {
        padding: 1.25rem 1rem 2rem;
    }
    .ps-cp-header {
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: 1.25rem;
        gap: 1.25rem;
        padding-top: 3.5rem; /* room for social icons at top */
    }
    .ps-cp-photo img { width: 120px; }
    .ps-cp-name { font-size: 1.4rem; }
    .ps-cp-social {
        position: absolute;
        top: 0.75rem;
        right: 0.75rem;
        flex-wrap: wrap;
        justify-content: flex-end;
        max-width: 120px;
    }
}
