/* Styles spécifiques aux pages CV (cv.html / cv_fr.html) */

.cv{
    --cv-accent: #334385;
    --cv-accent-soft: #e8ebf6;
    --cv-text: #1f2430;
    --cv-muted: #5f6675;
    --cv-card: #ffffff;
    --cv-border: #dde1ea;
    max-width: 900px;
    margin: 0 auto;
    padding: 10px 0 40px;
    color: var(--cv-text);
}

.cv-hero{
    text-align: center;
    margin: 20px 0 40px;
}

.cv-hero h1{
    font-weight: 700;
    letter-spacing: -0.5px;
    margin-bottom: 6px;
}

.cv-hero .cv-subtitle{
    color: var(--cv-muted);
    font-size: 1.1rem;
    margin: 0 0 18px;
}

.cv-hero p{
    color: var(--cv-muted);
    margin: 0 auto 18px;
    max-width: 600px;
}

.cv-btn{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 18px;
    border-radius: 999px;
    background: var(--cv-accent);
    color: #fff;
    font-weight: 600;
    font-size: 0.95rem;
    transition: background-color .2s, transform .2s;
}

.cv-btn:hover,
.cv-btn:focus{
    background: #24306a;
    color: #fff;
    transform: translateY(-1px);
}

.cv-btn img{
    width: 18px;
    height: 18px;
    border-radius: 3px;
}

.cv-section{
    margin-bottom: 44px;
}

.cv-section h2{
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0 0 22px;
}

.cv-section h2::after{
    content: "";
    flex: 1;
    height: 2px;
    background: linear-gradient(to right, var(--cv-border), transparent);
}

/* Frise chronologique */
.timeline{
    list-style: none;
    margin: 0;
    padding: 0 0 0 28px;
    position: relative;
}

.timeline::before{
    content: "";
    position: absolute;
    left: 7px;
    top: 8px;
    bottom: 8px;
    width: 2px;
    background: var(--cv-border);
}

.timeline > li{
    position: relative;
    margin-bottom: 18px;
}

.timeline > li::before{
    content: "";
    position: absolute;
    left: -27px;
    top: 22px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--cv-card);
    border: 3px solid var(--cv-accent);
}

.timeline > li.current::before{
    background: var(--cv-accent);
    box-shadow: 0 0 0 4px var(--cv-accent-soft);
}

.cv-card{
    background: var(--cv-card);
    border: 1px solid var(--cv-border);
    border-radius: 12px;
    padding: 16px 20px;
    box-shadow: 0 1px 3px rgba(20, 30, 60, .06);
    transition: box-shadow .2s, transform .2s;
}

.cv-card:hover{
    box-shadow: 0 6px 18px rgba(20, 30, 60, .10);
    transform: translateY(-2px);
}

.cv-date{
    display: inline-block;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: .3px;
    color: var(--cv-accent);
    background: var(--cv-accent-soft);
    padding: 2px 10px;
    border-radius: 999px;
    margin-bottom: 6px;
}

.cv-card h3{
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--cv-text);
    margin: 0 0 2px;
}

.cv-org{
    color: var(--cv-muted);
    margin: 0;
}

.cv-roles{
    list-style: none;
    margin: 14px 0 0;
    padding: 12px 0 0;
    border-top: 1px solid var(--cv-border);
}

.cv-roles li{
    display: flex;
    gap: 12px;
    align-items: baseline;
    padding: 5px 0;
    font-size: 0.95rem;
}

.cv-roles .cv-year{
    flex: 0 0 auto;
    min-width: 92px;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--cv-muted);
    white-space: nowrap;
}

@media (max-width: 600px){
    .timeline{
        padding-left: 22px;
    }
    .timeline > li::before{
        left: -21px;
    }
    .cv-card{
        padding: 14px 16px;
    }
    .cv-roles li{
        flex-direction: column;
        gap: 0;
    }
}
