/* Maquette locale : scene 3D et commandes accessibles hors de la scene. */
.expertise-diagram { position:relative; margin:38px 0 0; padding:28px 30px; border:1px solid #dddeda; border-radius:24px; background:radial-gradient(ellipse at 50% 45%,#fff 0,#f7f6f1 65%); scroll-margin-top:100px; }
.expertise-diagram figcaption { display:grid; gap:7px; padding-right:125px; font-size:18px; line-height:1.5; }
.expertise-diagram figcaption .eyebrow { color:var(--blue); }
.diagram-motion { position:absolute; top:28px; right:30px; display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:44px; padding:8px 13px; border:1px solid #b8c0d1; border-radius:22px; background:#fff; color:#3d4a65; font-size:14px; cursor:pointer; }
.diagram-motion[hidden] { display:none; }
.motion-symbol { font-size:17px; line-height:1; }
.diagram-workspace { position:relative; }
.orbit-hint { margin-top:22px; color:#526077; font-size:14px; line-height:1.5; }
.orbit-hint > span { display:inline-block; margin-left:5px; color:var(--blue); }
.orbit-stage { position:relative; width:min(100%,650px); aspect-ratio:1; margin:12px auto 0; isolation:isolate; }
.orbit-canvas { position:absolute; inset:0; display:block; width:100%; height:100%; pointer-events:none; }
.is-webgl .orbit-core { opacity:0; pointer-events:none; }
.is-webgl .orbit-node::before { display:none; }
.is-webgl .orbit-group { padding:0; }
.is-webgl .orbit-group > strong,.is-webgl .orbit-group > .actor-summary { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.is-webgl .orbit-detail { opacity:0; }
.orbit-access { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; max-width:780px; margin:8px auto 0; }
.orbit-access button { display:grid; align-content:start; gap:6px; padding:13px 12px; min-height:72px; border:1px solid #d4d9e1; border-radius:10px; background:#ffffffb0; color:var(--ink); text-align:left; cursor:pointer; }
.orbit-access button::before { content:''; width:19px; height:4px; border-radius:2px; background:#8998aa; }
.orbit-access button:nth-child(2)::before { background:#667f9c; }
.orbit-access button:nth-child(3)::before { background:#445166; }
.orbit-access strong { font-size:15px; font-weight:500; line-height:1.35; }
.orbit-access button > span { color:#536176; font-size:14px; line-height:1.4; }
.orbit-access button:hover,.orbit-access button.is-current { border-color:var(--blue); background:#eef1fc; }
.orbit-access button:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
.no-webgl { aspect-ratio:auto; display:grid; gap:10px; }
.no-webgl .orbit-node,.no-webgl .orbit-core { position:relative; top:auto; left:auto; transform:none; margin:10px auto; }
.no-webgl .orbit-canvas { display:none; }
.no-webgl .orbit-details:not([hidden]) { display:flex; flex-wrap:wrap; justify-content:center; }
.orbit-core { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:180px; height:180px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:9px; padding:15px; border-radius:50%; background:radial-gradient(circle at 30% 20%,#52617a 0,#29364d 42%,#192438 77%,#111b2b 100%); color:#fff; text-align:center; box-shadow:inset 4px 5px 10px #bbc8ff20,inset -8px -12px 22px #07144040,0 16px 25px #233c8620; z-index:3; }
.orbit-core img { width:43px; height:43px; border-radius:50%; object-fit:cover; border:2px solid #fff8; }
.orbit-core strong { font-size:20px; line-height:1.2; font-weight:500; }
.orbit-core > span { color:#e2e8ff; font-size:14px; line-height:1.45; max-width:145px; }
.orbit-core > .core-eyebrow { font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.orbit-role-summary { display:none; }
.core-summary { display:flex; flex-wrap:wrap; justify-content:center; column-gap:7px; }
.core-summary > span:not(:last-child)::after { content:' ·'; }
.orbit-node { position:absolute; top:0; left:0; width:158px; height:158px; border-radius:50%; text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:15px; isolation:isolate; }
.orbit-node::before { content:''; position:absolute; inset:0; z-index:-1; border-radius:50%; background:radial-gradient(circle at 28% 22%,#ffffff 0,var(--orb-light,#fbfcf9) 20%,var(--orb-bg,#e1e5df) 62%,var(--orb-shadow,#bdc6be) 100%); box-shadow:inset 3px 4px 8px #ffffffb0,inset -7px -10px 16px #23334312,9px 12px 20px #2434451a; transform:scale(var(--orb-scale,1)); }
.orbit-node > strong { display:block; font-size:18px; line-height:1.2; font-weight:500; text-wrap:balance; }
.orbit-node > span:not(.orbit-toggle):not(.sr-only) { font-size:14px; line-height:1.4; text-wrap:balance; }
.orbit-group { z-index:4; border:0; background:transparent; color:var(--orb-ink); cursor:pointer; will-change:transform; }
.orbit-group .actor-summary { color:inherit; }
.orbit-business { --orb-bg:#c7d4e0; --orb-light:#e9eef3; --orb-shadow:#a8b7c6; --orb-ink:#25364f; }
.orbit-technical { --orb-bg:#64819f; --orb-light:#aebfd1; --orb-shadow:#425c7c; --orb-ink:#fff; }
.orbit-external { --orb-bg:#475566; --orb-light:#788594; --orb-shadow:#2d3b4d; --orb-ink:#fff; }
.orbit-toggle { position:absolute; bottom:0; right:8px; display:grid; place-items:center; width:29px; height:29px; border-radius:50%; border:1px solid #fff; background:var(--ink); color:#fff; font-size:22px; line-height:1; box-shadow:0 2px 7px #27304c22; }
.orbit-group:hover { outline:2px solid #26399555; outline-offset:3px; }
.orbit-group:focus-visible,.diagram-motion:focus-visible,.diagram-levers a:focus-visible { outline:3px solid var(--blue); outline-offset:5px; }
.orbit-family.is-selected .orbit-group { outline:3px solid #263995; outline-offset:4px; }
.orbit-stage.has-selection .orbit-family:not(.is-selected) .orbit-group { --orb-bg:#e0e3e0; --orb-light:#f3f4f0; --orb-shadow:#c1c8c2; color:#4b596b; }
.orbit-stage.has-selection .orbit-family:not(.is-selected) .orbit-toggle { background:#647084; }
.orbit-details[hidden] { display:none; }
.orbit-detail { z-index:3; --orb-bg:#e2e5df; --orb-light:#f7f8f3; --orb-shadow:#c7cec4; color:#32435b; pointer-events:none; }
.orbit-detail > strong { font-size:17px; }
.orbit-detail > span { color:#526078; }
.orbit-context { margin:10px 0 0; text-align:center; color:#59667b; font-size:14px; line-height:1.5; }
.diagram-levers { margin-top:25px; }
.diagram-levers > p { margin-bottom:12px; color:#4c5c74; font-size:14px; line-height:1.5; text-align:center; }
.diagram-levers nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; max-width:900px; margin-inline:auto; }
.diagram-levers a { display:flex; align-items:center; justify-content:center; gap:12px; padding:13px 12px; border:1px solid #d6dae2; border-radius:8px; background:#fff9; font-size:16px; line-height:1.45; text-align:center; }
.diagram-levers a > span { display:grid; place-items:center; flex-shrink:0; width:26px; height:26px; border-radius:50%; background:#e6ecff; color:#4055b4; font-size:12px; }
.diagram-levers a:hover { background:#e9efff; }
.diagram-journey { max-width:780px; margin:25px auto 0; }
.diagram-journey ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; margin:0; padding:0; position:relative; }
.diagram-journey ol::before { content:''; position:absolute; top:3px; left:16.66%; right:16.66%; height:1px; background:#aebbd5; }
.diagram-journey li { position:relative; padding:17px 10px 0; color:#4f5e79; font-size:14px; line-height:1.45; text-align:center; }
.diagram-journey li::before { content:''; position:absolute; top:0; left:calc(50% - 3px); width:7px; height:7px; border-radius:50%; background:#6b81ba; box-shadow:0 0 0 4px #f7f6f1; }
.diagram-journey > p { margin-top:14px; color:#53647f; font-size:14px; line-height:1.5; text-align:center; }
.expertise-section .expertise-grid { margin-top:24px; }
.expertise-item[id] { scroll-margin-top:100px; }
.expertise-section [data-reveal] { opacity:1 !important; transform:none !important; transition:none !important; }
.working-style { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.65fr); gap:55px; margin-top:55px; padding-top:38px; border-top:1px solid #d4d8df; }
.working-style-heading .eyebrow { color:#5266ad; font-size:12px; line-height:1.7; letter-spacing:.07em; }
.working-style h3 { margin-top:16px; font-size:32px; line-height:1.15; letter-spacing:-.04em; }
.working-style-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px 32px; margin:0; }
.working-style-list > div { padding-top:15px; border-top:1px solid #d4d8df; }
.working-style dt { font-size:18px; line-height:1.4; font-weight:500; letter-spacing:-.02em; }
.working-style dd { margin:8px 0 0; color:#596579; font-size:16px; line-height:1.65; }
.profile-words { font-size:43px; line-height:1; gap:13px; margin-top:30px; }
.profile-words .profile-and { font-family:var(--serif); font-size:27px; font-style:italic; color:#b9c8f7; }
@media (prefers-reduced-motion:no-preference) {
 .orbit-group { transition:background-color .25s,color .25s,box-shadow .25s; }
 .orbit-group .orbit-toggle { animation:orbit-invite 3s ease-in-out infinite; }
 .orbit-stage.has-selection .orbit-toggle { animation:none; }
 @keyframes orbit-invite { 0%,70%,100% { box-shadow:0 0 0 0 #26399500; } 85% { box-shadow:0 0 0 5px #26399524; } }
}
@media (max-width:1000px) {
 .expertise-diagram { padding-inline:22px; }
 .working-style { gap:30px; grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr); }
 .working-style-list { gap:23px; }
 .profile-words { font-size:35px; }
}
@media (max-width:700px) {
 .expertise-diagram { margin:28px -12px 0; padding:20px 12px; border-radius:20px; }
 .expertise-diagram figcaption { padding-right:52px; font-size:16px; gap:7px; }
 .expertise-diagram figcaption .eyebrow { font-size:12px; letter-spacing:.06em; }
 .diagram-motion { top:20px; right:12px; width:40px; min-height:44px; padding:8px; }
 .diagram-motion .motion-label { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); }
 .orbit-hint { margin-top:18px; font-size:14px; }
 .orbit-stage { width:calc(100% + 24px); max-width:500px; margin:20px -12px 0; }
 .orbit-core { width:clamp(84px,28vw,130px); height:clamp(84px,28vw,130px); padding:5px; gap:4px; box-shadow:inset 3px 4px 8px #bbc8ff40,inset -5px -8px 16px #07144044,0 9px 16px #233c8625; }
 .orbit-core img { display:none; }
 .orbit-core strong { font-size:16px; max-width:85px; line-height:1.1; }
 .orbit-core > span { font-size:14px; line-height:1.15; max-width:100px; }
 .orbit-core .core-summary { display:none; }
 .orbit-role-summary { display:block; margin:12px 0 18px; color:#536176; font-size:14px; line-height:1.5; text-align:center; }
 .core-summary { display:grid; gap:0; }
 .core-summary > span::after { content:none !important; }
 .orbit-node { width:clamp(94px,29vw,140px); height:clamp(94px,29vw,140px); padding:6px; gap:5px; }
 .orbit-node > strong,.orbit-detail > strong { font-size:14px; line-height:1.2; max-width:100%; text-wrap:initial; }
 .orbit-node > span:not(.orbit-toggle):not(.sr-only) { font-size:14px; line-height:1.15; max-width:100%; }
 .orbit-toggle { width:23px; height:23px; right:0; bottom:0; font-size:19px; }
 .orbit-node::before { box-shadow:inset 2px 3px 6px #ffffffb0,inset -5px -7px 12px #23334312,5px 7px 13px #24344518; }
 .orbit-context { margin-top:15px; font-size:14px; }
 .orbit-access { gap:6px; }
 .orbit-access button { padding:10px 7px; }
 .orbit-access strong { font-size:14px; }
 .diagram-levers { margin-top:20px; }
 .diagram-levers > p { font-size:14px; margin-bottom:10px; }
 .diagram-levers nav { gap:6px; }
 .diagram-levers a { flex-direction:column; gap:7px; padding:10px 5px; font-size:14px; }
 .diagram-levers a > span { width:23px; height:23px; }
 .diagram-journey { margin-top:23px; }
 .diagram-journey li { font-size:14px; padding-inline:4px; }
 .working-style { grid-template-columns:minmax(0,1fr); gap:26px; margin-top:38px; padding-top:30px; }
 .working-style h3 { font-size:29px; margin-top:13px; }
 .working-style-list { grid-template-columns:minmax(0,1fr); gap:20px; }
}
@media (min-width:540px) and (max-width:700px) {
 .orbit-stage { margin-inline:auto; }
 .orbit-core img { display:block; width:30px; height:30px; }
 .orbit-core strong { max-width:none; }
 .orbit-node > strong,.orbit-detail > strong { font-size:16px; }
}
@media (max-width:360px) {
 .expertise-diagram { margin-inline:-18px; }
 .orbit-node { padding:3px; gap:4px; }
 .orbit-core { padding:2px; gap:2px; }
 .orbit-core strong { font-size:15px; max-width:70px; }
 .orbit-node > strong { letter-spacing:-.025em; }
 .orbit-core > span { max-width:100%; }
 .orbit-family.is-selected .orbit-group { outline-width:2px; outline-offset:2px; }
 .orbit-toggle { width:20px; height:20px; right:1px; font-size:17px; }
 .orbit-access { grid-template-columns:minmax(0,1fr); }
 .orbit-access button { position:relative; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); align-items:center; min-height:54px; gap:12px; padding:10px 12px 10px 21px; }
 .orbit-access button::before { position:absolute; top:16px; bottom:16px; left:9px; width:3px; height:auto; }
}
@media (max-width:620px) {
 .profile { display:block; }
 .profile-words { font-size:35px; margin-top:22px; padding-bottom:0; gap:12px; }
 .profile-bottom { margin-top:22px; display:flex; justify-content:space-between; gap:20px; }
 .profile-caption { display:block; padding-bottom:20px; max-width:150px; min-height:0; }
 .profile-caption > span { font-size:14px; }
 .profile-bottom > img { width:120px; margin:0; }
}
