/* Nouvelle structure de la page (preuves plus tot, contenus regroupes). Se charge apres design-encre.css. */

/* Bandeau de references */
html.encre .client-band { display:flex; align-items:center; justify-content:space-between; gap:18px 40px; padding-block:26px; border-block:1px solid var(--line); }
html.encre .client-band .eyebrow { flex-shrink:0; color:var(--muted); }
html.encre .client-band ul { display:flex; flex-wrap:wrap; gap:12px; margin:0; padding:0; list-style:none; }
html.encre .client-band li { display:block; width:132px; height:64px; padding:8px 14px; border-radius:8px; background:#fff; }
html.encre .client-band img { display:block; width:100%; height:100%; object-fit:contain; }

/* Presentation : carte plus compacte */
html.encre .profile { min-height:0; padding-bottom:0; }
html.encre .profile-words { margin-top:24px; font-size:clamp(30px,2.9vw,40px); }
html.encre .profile-bottom { margin-top:20px; }
html.encre .profile-bottom > img { width:38%; }
html.encre .hero-baseline { margin-top:44px; }

/* Projets : role et resultat visibles, contexte replie */
html.encre .projects-section .project-company { margin-bottom:16px; }
html.encre .projects-section .project-main .project-role:not(.project-result) { margin-top:18px; padding-top:16px; }
html.encre .project-more { margin-top:14px; border-top:1px solid var(--line); }
html.encre .project-more summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:44px; font-size:14px; font-weight:600; line-height:1.6; letter-spacing:.09em; text-transform:uppercase; list-style:none; cursor:pointer; }
html.encre .project-more summary::-webkit-details-marker { display:none; }
html.encre .project-more summary > span { color:var(--cyan); font-size:20px; line-height:1; transition:transform .25s ease; }
html.encre .project-more[open] summary > span { transform:rotate(45deg); }
html.encre .project-more p { color:var(--muted); font-size:16px; line-height:1.7; }
html.encre .project-more .tags { gap:8px; margin:14px 0 6px; }
html.encre .project-more .tags li { border:1px solid #333c60; border-radius:20px; padding:5px 10px; color:#c6cde0; font-size:12px; line-height:1.6; }
html.encre .project-more summary:focus-visible { outline:3px solid var(--blue); outline-offset:2px; }
html.encre .projects-section .project-detail { align-self:start; }
html.encre .projects-section .project-detail > p { margin-top:10px; }

/* Expertises : sections contigues, cartes sans etiquettes, qualites en une phrase */
html.encre .expertise-section { margin-top:0; }
html.encre .expertise-section .expertise-item h3 { min-height:0; margin-top:16px; }
html.encre .expertise-section .expertise-grid { margin-top:22px; }
html.encre .working-style-line { margin-top:30px; padding-top:24px; border-top:1px solid var(--line); color:var(--muted); font-size:16px; line-height:1.7; }
html.encre .working-style-line > strong { color:var(--ink); font-weight:500; }
html.encre .working-style-line.skills-line { margin-top:10px; padding-top:0; border-top:0; }

/* Atouts : qualites, methodes et langues bien visibles */
html.encre .strengths { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:28px; }
html.encre .strength { padding:24px 24px 26px; border:1px solid #39446e; border-radius:12px; background:linear-gradient(160deg,#1a2147,var(--card)); }
html.encre .strength h3 { color:#fff; font-size:21px; line-height:1.2; letter-spacing:-.02em; }
html.encre .chips { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 0; padding:0; list-style:none; }
html.encre .chips li { padding:6px 13px; border:1px solid #46528a; border-radius:999px; background:rgba(140,155,255,.1); color:#e4e8ff; font-size:15px; line-height:1.4; }
html.encre .chips-lang li { color:var(--muted); }
html.encre .chips-lang li strong { color:#fff; font-weight:500; }
@media (max-width:900px) { html.encre .strengths { grid-template-columns:minmax(0,1fr); gap:12px; } }
@media (max-width:620px) {
 html.encre .strengths { margin-top:20px; gap:10px; }
 html.encre .strength { padding:18px 16px; }
 html.encre .strength h3 { font-size:19px; }
 html.encre .chips { gap:6px; margin-top:12px; }
 html.encre .chips li { padding:5px 11px; font-size:14px; }
}

/* Haut de page : 20 ans et parcours en trois etapes */
html.encre .hero-path { margin-top:18px; }
html.encre .hero-years { color:var(--muted); font-size:18px; line-height:1.2; }
html.encre .hero-years strong { margin-right:6px; background:linear-gradient(95deg,#a9b5ff,var(--cyan)); -webkit-background-clip:text; background-clip:text; color:transparent; font-size:40px; font-weight:500; letter-spacing:-.04em; }
html.encre .path-steps { display:flex; flex-wrap:wrap; align-items:center; gap:8px 6px; margin:12px 0 0; padding:0; list-style:none; }
html.encre .path-steps li { display:flex; align-items:center; gap:6px; color:#e4e8ff; font-size:15px; line-height:1.3; }
html.encre .path-steps li:not(:last-child)::after { content:'→'; color:var(--cyan); }
html.encre .path-steps li > span { color:var(--muted); }
html.encre .path-steps li:last-child { padding:4px 11px; border:1px solid #46528a; border-radius:999px; background:rgba(98,224,255,.08); color:#fff; }
html.encre .hero-description { margin-top:18px; color:#d3d8ea; }
html.encre .hero .profile { margin-bottom:44px; }
html.encre .profile-caption { align-self:center; padding-bottom:0; }
html.encre .profile-caption > span { margin-top:0; color:#e4e8ff; font-size:16px; line-height:1.5; }

/* Expertises : la devise en introduction */
html.encre .section-motto { color:#fff !important; font-size:clamp(22px,2vw,28px) !important; line-height:1.3 !important; letter-spacing:-.02em; }
html.encre .section-motto em { font-family:var(--serif); font-size:1.12em; color:var(--cyan); }

/* Parcours : sous-titre du bloc 2007-2017 et missions en puces */
html.encre .timeline-older-title small { color:var(--muted); font-size:14px; line-height:1.4; }
html.encre .mission-detail ul { display:grid; gap:6px; margin:0; padding-left:18px; }
html.encre .mission-detail li::marker { color:var(--cyan); }

/* Liens vers les certifications et bouton de retour */
html.encre .chip-link { display:inline-flex; align-items:center; gap:6px; margin:-6px -13px; padding:6px 13px; border-radius:999px; color:#fff; text-decoration:none; }
html.encre .chip-link::after { content:'↓'; color:var(--cyan); font-size:13px; }
html.encre .chips li:has(.chip-link) { border-color:#62e0ff80; }
html.encre .chip-link:hover { color:var(--cyan); }
html.encre .chip-link:focus-visible { outline:3px solid var(--cyan); outline-offset:2px; }
html.encre .certifications li.is-pointed { border-color:var(--cyan); box-shadow:0 0 0 3px rgba(98,224,255,.35),0 18px 50px rgba(70,90,255,.25); }
.back-to-origin { position:fixed; left:50%; bottom:18px; z-index:45; display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:10px 18px; border:0; border-radius:999px; background:#fff; color:#0b0f1c; font:inherit; font-size:15px; font-weight:500; box-shadow:0 10px 30px #0008; cursor:pointer; transform:translateX(-50%); white-space:nowrap; }
.back-to-origin[hidden] { display:none; }
.back-to-origin:focus-visible { outline:3px solid #62e0ff; outline-offset:3px; }
@media (prefers-reduced-motion:no-preference) {
 html.encre .certifications li { transition:border-color .3s,box-shadow .3s; }
}
@media (max-width:620px) {
 html.encre .hero-years strong { font-size:34px; }
 html.encre .path-steps li { font-size:14px; }
 html.encre .hero .profile { margin-bottom:30px; }
}

/* Projets : la precision "parmi d'autres" bien visible, sans en faire un titre */
html.encre .projects-section .projects-heading > p.projects-note { padding:4px 0 4px 16px; border-left:3px solid var(--cyan); color:#c9cfe4; font-size:19px; line-height:1.55; }
html.encre .projects-note strong { display:block; color:#fff; font-weight:500; }
@media (max-width:620px) {
 html.encre .projects-section .projects-heading > p.projects-note { margin-top:18px; font-size:17px; }
}

/* Encadres des projets : meme structure pour les trois */
html.encre .projects-section .project-detail-text > strong { font-family:var(--sans); font-size:clamp(26px,2.4vw,34px); line-height:1.15; letter-spacing:-.03em; }
@media (max-width:620px) { html.encre .projects-section .project-detail-text > strong { font-size:24px; } }
html.encre .projects-section .project-detail .detail-kicker { color:var(--cyan); }

/* Parcours : repere "Depuis 2017" en tete de frise */
html.encre .timeline-phase { display:inline-flex; align-items:center; gap:12px; margin:0 0 22px; padding:10px 18px 10px 12px; border:1px solid #46528a; border-radius:999px; background:linear-gradient(95deg,rgba(140,155,255,.16),rgba(98,224,255,.1)); }
html.encre .timeline-phase-years { padding:4px 10px; border-radius:999px; background:var(--cyan); color:#0b0f1c; font-size:14px; font-weight:600; letter-spacing:.04em; }
html.encre .timeline-phase-title { color:#fff; font-size:18px; font-weight:500; letter-spacing:-.01em; }

/* Parcours : carte vers les certifications */
html.encre .cert-teaser { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:14px; max-width:320px; margin-top:28px; padding:16px 18px; border:1px solid #46528a; border-radius:14px; background:linear-gradient(160deg,#1a2147,var(--card)); color:#fff; text-decoration:none; }
html.encre .cert-teaser-count { background:linear-gradient(95deg,#a9b5ff,var(--cyan)); -webkit-background-clip:text; background-clip:text; color:transparent; font-size:44px; font-weight:500; line-height:1; letter-spacing:-.04em; }
html.encre .cert-teaser-text strong { display:block; font-size:18px; font-weight:500; line-height:1.2; }
html.encre .cert-teaser-text small { display:block; margin-top:4px; color:var(--muted); font-size:14px; line-height:1.4; }
html.encre .cert-teaser-arrow { display:grid; place-items:center; width:36px; height:36px; border:1px solid #46528a; border-radius:50%; color:var(--cyan); font-size:18px; }
html.encre .cert-teaser:hover { border-color:var(--cyan); color:#fff; }
html.encre .cert-teaser:hover .cert-teaser-arrow { background:var(--cyan); color:#0b0f1c; }
html.encre .cert-teaser:focus-visible { outline:3px solid var(--cyan); outline-offset:3px; }
@media (max-width:620px) {
 html.encre .timeline-phase { margin-bottom:16px; padding:8px 14px 8px 10px; }
 html.encre .timeline-phase-title { font-size:16px; }
 html.encre .cert-teaser { max-width:none; margin-top:18px; padding:14px 16px; }
 html.encre .cert-teaser-count { font-size:38px; }
}

/* Bloc 2007-2017 : invitation explicite a deplier */
html.encre .timeline-older > summary .timeline-older-title { flex:1; }
html.encre .timeline-older > summary > span[aria-hidden="true"] { display:none; }
html.encre .older-cta { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:44px; margin-top:4px; font-style:normal; }
html.encre .older-cta::after { content:'+'; color:var(--cyan); font-size:20px; line-height:1; }
html.encre .timeline-older[open] > summary .older-cta::after { content:'×'; }
html.encre .older-cta b { color:var(--ink); font-size:14px; font-weight:500; line-height:1.6; }
html.encre .older-cta .older-cta-open { display:none; }
html.encre .timeline-older[open] > summary .older-cta-closed { display:none; }
html.encre .timeline-older[open] > summary .older-cta-open { display:inline; }
html.encre .timeline-older > summary:hover .older-cta b { color:var(--cyan); }

/* Certifications : explication depliable */
html.encre .certifications li { align-items:start; }
html.encre .cert-more { margin-top:8px; }
html.encre .cert-more summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:40px; color:var(--ink); font-size:14px; font-weight:500; list-style:none; cursor:pointer; }
html.encre .cert-more summary::-webkit-details-marker { display:none; }
html.encre .cert-more summary > span { color:var(--cyan); font-size:20px; line-height:1; transition:transform .25s ease; }
html.encre .cert-more[open] summary > span { transform:rotate(45deg); }
html.encre .cert-more summary:hover { color:var(--cyan); }
html.encre .cert-more summary:focus-visible { outline:3px solid var(--cyan); outline-offset:2px; }
html.encre .cert-more p { margin:4px 0 4px; color:var(--muted); font-size:14px; line-height:1.6; }

/* Frise : renvois vers les projets detailles plus haut */
html.encre .timeline-project-link { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:44px; margin-top:4px; color:var(--ink); font-size:14px; font-weight:500; text-decoration:none; }
html.encre .timeline-project-link > span { color:var(--cyan); font-size:18px; }
html.encre .timeline-project-link:hover { color:var(--cyan); }
html.encre .mission-links { margin:12px 0 0; color:var(--muted); font-size:14px; line-height:1.6; }
html.encre .mission-links a { color:#fff; text-decoration:underline; text-decoration-color:var(--cyan); text-underline-offset:3px; }
html.encre .mission-links a:hover { color:var(--cyan); }
html.encre .mission-links > span { color:var(--cyan); }

/* Bandeau anime : cascade, puis defilement continu sur mobile */
html.encre .client-band .logo-track { min-width:0; }
html.encre .client-band li.is-clone { display:none; }
@media (prefers-reduced-motion:no-preference) {
 html.encre .client-band.js-anim li { opacity:0; transform:translateY(12px); transition:opacity .5s ease,transform .5s ease; transition-delay:calc(var(--i,0) * 90ms); }
 html.encre .client-band.js-anim.is-in li { opacity:1; transform:none; }
}
@media (max-width:620px) and (prefers-reduced-motion:no-preference) {
 html.encre .client-band .logo-track { margin-top:12px; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
 html.encre .client-band .logo-track ul { display:flex; width:max-content; gap:0; margin:0; animation:logos-defilement 24s linear infinite; }
 html.encre .client-band .logo-track li { flex:none; width:96px; height:52px; margin-right:8px; }
 html.encre .client-band .logo-track li.is-clone { display:block; }
 html.encre .client-band.is-paused .logo-track ul { animation-play-state:paused; }
 @keyframes logos-defilement { from { transform:translateX(0); } to { transform:translateX(-50%); } }
}

/* Ordinateur uniquement : reperes de section (01 / PROJETS...) plus grands */
@media (min-width:761px) {
 html.encre .section-heading > .eyebrow,
 html.encre .section-heading > div > .eyebrow,
 html.encre .career-intro > .eyebrow,
 html.encre .contact-layout > div > .eyebrow { font-size:15px; letter-spacing:.12em; }
}

/* Choix de la langue dans le menu */
html.encre .navigation .nav-lang { display:inline-flex; align-items:center; justify-content:center; min-width:40px; min-height:32px; padding:4px 10px; border:1px solid #46528a; border-radius:999px; color:#fff; font-size:13px; font-weight:600; letter-spacing:.08em; }
html.encre .navigation .nav-lang:hover { border-color:var(--cyan); color:var(--cyan); }
html.encre .navigation .nav-lang::after { display:none; }
@media (max-width:760px) { html.encre .navigation .nav-lang { justify-self:start; min-height:44px; margin-left:10px; } }

/* Selecteur de langue avec drapeaux dans l'en-tete */
html.encre .lang-switch { display:flex; align-items:center; gap:4px; order:3; }
html.encre .navigation { order:2; margin-left:auto; }
html.encre .lang-switch a { display:inline-flex; align-items:center; gap:6px; min-height:36px; padding:4px 9px; border:1px solid transparent; border-radius:999px; color:#c9cfe4; font-size:13px; font-weight:600; letter-spacing:.06em; text-decoration:none; }
html.encre .lang-switch a:hover { border-color:#46528a; color:#fff; }
html.encre .lang-switch a[aria-current="page"] { border-color:#46528a; background:rgba(140,155,255,.12); color:#fff; }
html.encre .lang-switch a:focus-visible { outline:3px solid var(--cyan); outline-offset:2px; }
html.encre .flag { display:block; flex:none; width:21px; height:14px; border-radius:2px; box-shadow:0 0 0 1px rgba(255,255,255,.3); }
@media (max-width:760px) {
 html.encre .header-inner { gap:8px; }
 html.encre .lang-switch { order:2; margin-left:auto; gap:2px; }
 html.encre .lang-switch a[aria-current="page"] { display:none; }
 html.encre .lang-switch .lang-code { display:none; }
 html.encre .lang-switch a { min-width:40px; min-height:44px; justify-content:center; padding:0 8px; }
 html.encre .menu-toggle { order:3; }
}
@media (max-width:360px) {
 html.encre .menu-toggle:not([hidden]) > span:first-child { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
 html.encre .menu-toggle:not([hidden]) { padding:9px 12px; }
}

/* Bandeau a six logos */
@media (max-width:620px) { html.encre .client-band ul { grid-template-columns:repeat(3,minmax(0,1fr)); } }

/* Parcours : fond different des expertises, postes anciens regroupes */
html.encre .career-section { background:var(--paper); }
html.encre .timeline-dot { border-color:var(--paper); }
html.encre .timeline-older summary { display:flex; align-items:center; justify-content:space-between; gap:18px; list-style:none; cursor:pointer; }
html.encre .timeline-older > summary { min-height:64px; padding:0; font-size:inherit; }
html.encre .timeline-older { margin-top:0; }
html.encre .timeline-older > summary::-webkit-details-marker { display:none; }
html.encre .timeline-older-title { display:grid; gap:4px; }
html.encre .timeline details[open] > summary > .timeline-older-title { transform:none; }
html.encre .timeline details:not([open]) > summary > span { transform:none; }
html.encre .timeline-older-title time { color:var(--cyan); font-size:14px; font-weight:600; letter-spacing:.05em; line-height:1.6; }
html.encre .timeline-older-title strong { color:var(--ink); font-size:20px; font-weight:500; line-height:1.25; letter-spacing:-.02em; }
html.encre .timeline-older-list { margin:12px 0 0; padding:14px 18px; border:1px solid var(--line); border-radius:10px; background:var(--card); list-style:none; }
html.encre .timeline-older-list .timeline-dot { display:none; }
html.encre .timeline-older-list .timeline-item { padding-block:16px; }
html.encre .timeline-older-list .timeline-item:first-child { padding-top:4px; }
html.encre .timeline-older-list .timeline-item:last-child { padding-bottom:0; }
html.encre .timeline-older-list h3 { font-size:19px; }
html.encre .timeline-older-list .mission-detail { background:var(--paper); }

/* Certifications compactes */
html.encre .career-extras { margin-top:44px; }
html.encre .certifications ul { margin-top:16px; gap:10px; }
html.encre .certifications li { grid-template-columns:60px minmax(0,1fr); gap:16px; padding:12px 16px; }
html.encre .certification-logo,
html.encre .certification-logo-wide,
html.encre .certification-logo-microsoft { width:60px; height:60px; padding:4px; }
html.encre .certifications .certification-copy > strong { display:inline; font-size:16px; }
html.encre .certifications .certification-copy > span { margin-top:2px; font-size:14px; }
html.encre .certification-copy > time { display:block; margin:2px 0 0; }

@media (max-width:620px) {
 html.encre .section { padding-block:54px; }
 /* Presentation */
 html.encre .hero { padding-top:30px; }
 html.encre h1 { margin:16px 0 18px; }
 html.encre .hero-role { gap:5px; }
 html.encre .hero-description { margin-top:12px; line-height:1.6; }
 html.encre .hero-actions { margin-top:18px; gap:14px 20px; }
 html.encre .profile { margin-top:26px; padding:16px 18px 0; }
 html.encre .profile-words { margin-top:12px; padding-bottom:0; font-size:26px; gap:6px; }
 html.encre .profile-words .profile-and { font-size:20px; }
 html.encre .profile-bottom { justify-content:flex-start; gap:14px; margin-top:12px; }
 html.encre .profile-bottom > img { order:0; width:86px; }
 html.encre .profile-caption { max-width:none; padding-bottom:12px; }
 html.encre .profile-caption > span { margin-top:2px; line-height:1.4; }
 html.encre .hero-baseline { margin-top:18px; padding-block:12px; }
 /* Bandeau */
 html.encre .client-band { display:block; padding-block:18px; }
 html.encre .client-band ul { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin-top:12px; }
 html.encre .client-band li { width:auto; height:48px; padding:5px 7px; }
 /* Projets */
 html.encre .projects-section .project-list { gap:16px; margin-top:26px; }
 html.encre .projects-section .project { gap:14px; padding:18px 16px; }
 html.encre .projects-section .project-index { padding-bottom:12px; }
 html.encre .projects-section .project-company { margin-bottom:10px; min-height:0; }
 html.encre .projects-section .project-company img { width:34px; height:30px; padding:3px 5px; }
 html.encre .projects-section .project-company > span { font-size:12px; line-height:1.4; }
 html.encre .projects-section .project h3 { font-size:25px; }
 html.encre .projects-section .project-main .project-role { line-height:1.55; }
 html.encre .projects-section .project-main .project-role:not(.project-result) { margin-top:14px; padding-top:12px; }
 html.encre .projects-section .project-main .project-role.project-result { margin-top:10px; }
 html.encre .projects-section .project-role > strong { margin-bottom:3px; }
 html.encre .project-more { margin-top:10px; }
 html.encre .projects-section .project-detail { display:block; padding:14px 16px; }
 html.encre .projects-section .project-detail > strong { margin-top:6px; font-size:42px; }
 html.encre .projects-section .project-detail-text > strong { font-size:27px; }
 html.encre .projects-section .project-detail > p { margin-top:4px; line-height:1.45; }
 /* Expertises */
 html.encre .expertise-section .section-heading { gap:12px; }
 html.encre .expertise-section .expertise-grid { gap:10px; margin-top:14px; }
 html.encre .expertise-section .expertise-item,
 html.encre .expertise-section .expertise-item + .expertise-item { padding:16px; column-gap:12px; }
 html.encre .expertise-section .expertise-number { width:32px; height:32px; }
 html.encre .expertise-section .expertise-item h3 { margin:0; font-size:20px; }
 html.encre .expertise-section .expertise-item p { grid-column:1 / -1; margin-top:10px; line-height:1.55; }
 html.encre .working-style-line { margin-top:22px; padding-top:18px; line-height:1.6; }
 /* Parcours */
 html.encre .career-intro > p:not(.eyebrow) { margin-top:14px; line-height:1.6; }
 html.encre .career-fact { margin-top:16px; padding-top:14px; }
 html.encre .career-intro > p.timeline-hint { margin-top:12px; }
 html.encre .certifications-link { margin-top:10px; }
 html.encre .career-content { margin-top:18px; }
 html.encre .timeline-item { padding-bottom:12px; }
 html.encre .timeline-item + .timeline-item { padding-top:18px; }
 html.encre .timeline-item + .timeline-item .timeline-dot { top:25px; }
 html.encre .timeline-meta { margin-bottom:4px; }
 html.encre .timeline-item > p { margin-top:6px; line-height:1.55; }
 html.encre .timeline details { margin-top:4px; }
 html.encre .timeline-older { margin-top:0; }
 html.encre .timeline-older-list { padding:12px 14px; }
 html.encre .career-extras { margin-top:26px; }
 html.encre .career-extras .product-note { padding:18px 0; }
 html.encre .career-extras .product-note h3 { margin-top:8px; }
 html.encre .career-extras .product-note p { margin-top:8px; line-height:1.55; }
 html.encre .career-extras .product-note .text-link { margin-top:8px; }
 html.encre .certifications { padding-top:18px; }
 html.encre .certifications li { grid-template-columns:48px minmax(0,1fr); gap:12px; padding:10px 12px; }
 html.encre .certification-logo,
 html.encre .certification-logo-wide,
 html.encre .certification-logo-microsoft { width:48px; height:48px; }
 html.encre .certifications .certification-copy > strong { font-size:15px; }
}
