.projects-detail-page{background:var(--off)}.projects-detail-page em{font-weight:400;color:var(--petrol)}.pd-open{padding-top:clamp(155px,13vh,190px);padding-bottom:clamp(70px,7vw,105px);display:grid;grid-template-columns:1.18fr .82fr;column-gap:8vw;row-gap:48px}.pd-kicker{font-size:.72rem;letter-spacing:.15em;font-weight:800;color:var(--petrol);margin:0 0 18px}.pd-open h1{font-size:clamp(3.8rem,5.5vw,6.3rem);max-width:900px}.pd-open-copy{align-self:end;font-size:1.06rem;max-width:620px}.pd-open-copy p:last-child{color:#667073}.pd-local{grid-column:1/-1;display:flex;border-top:1px solid rgba(37,42,44,.18);border-bottom:1px solid rgba(37,42,44,.18)}.pd-local a{flex:1;padding:18px 20px;text-decoration:none;color:var(--ink);font-size:.88rem}.pd-local a+a{border-left:1px solid rgba(37,42,44,.14)}.pd-local span{color:var(--coral);font-size:.7rem;margin-right:12px}.pd-local a:hover{color:var(--petrol)}
.pd-case{scroll-margin-top:72px}.pd-case-inner{padding-top:clamp(85px,7vw,115px);padding-bottom:clamp(95px,8vw,130px)}.pd-apf{background:white}.pd-trans{background:var(--ivory)}.pd-multi{background:var(--off)}.pd-case-head{display:grid;grid-template-columns:.36fr 1fr;column-gap:7vw}.pd-case-head .pd-kicker{grid-column:1}.pd-case-head h2{grid-column:2;font-size:clamp(3rem,4.3vw,5rem);max-width:1050px}.pd-context{grid-column:2;max-width:860px;font-size:1.08rem;margin:28px 0 0}.pd-story{margin-top:55px;display:grid;grid-template-columns:.8fr 1.15fr 1fr;border-top:1px solid rgba(37,42,44,.18);border-bottom:1px solid rgba(37,42,44,.18)}.pd-story article{padding:27px 30px 27px 0}.pd-story article+article{border-left:1px solid rgba(37,42,44,.14);padding-left:30px}.pd-story span{display:block;font-size:.67rem;letter-spacing:.14em;font-weight:800;color:var(--petrol);margin-bottom:12px}.pd-story p{font-size:.93rem;margin:0}.pd-story .pd-proof{background:rgba(167,197,161,.14);padding-right:26px}.pd-story .pd-proof span{color:var(--coral)}
.apf-evidence{margin-top:62px;display:grid;grid-template-columns:1.35fr .65fr;grid-template-rows:auto auto;gap:18px}.apf-evidence figure,.macro{margin:0;background:white;position:relative;overflow:hidden}.apf-evidence img,.macro img{width:100%;display:block}.apf-hero{grid-row:1/3}.apf-hero img{height:100%;object-fit:cover}.apf-wide{grid-column:1/-1}.apf-wide img{max-height:440px;object-fit:cover;object-position:top}.apf-evidence figcaption,.macro figcaption{padding:14px 16px;display:flex;justify-content:space-between;gap:20px;font-size:.78rem}.apf-evidence figcaption b,.macro figcaption b{color:var(--petrol)}.apf-evidence figcaption span,.macro figcaption span{color:#687073;text-align:right}
.process-evidence,.multi-evidence{margin-top:62px}.process-evidence .macro{display:grid;grid-template-columns:.58fr .42fr;align-items:center}.process-evidence .macro img{min-height:360px;object-fit:cover}.process-evidence .macro figcaption{display:block;padding:30px}.process-evidence .macro figcaption b,.process-evidence .macro figcaption span{display:block;text-align:left}.process-evidence .macro figcaption span{margin-top:10px;font-size:.92rem}.evidence-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:15px;margin-top:20px}.evidence-flow>i{font-family:Georgia,serif;font-style:normal;color:var(--coral);font-size:1.5rem}.asset-placeholder{min-height:190px;border:1px dashed rgba(46,112,107,.38);background:rgba(255,255,255,.55);padding:25px;display:flex;flex-direction:column;justify-content:flex-end}.asset-placeholder b{font-size:.7rem;letter-spacing:.14em;color:var(--petrol)}.asset-placeholder span{font-family:Georgia,serif;font-size:1.35rem;line-height:1.08;margin:9px 0}.asset-placeholder small{font-size:.65rem;letter-spacing:.06em;color:#7b8283}.asset-placeholder.important{border-style:solid;background:white}.demo-bridge{margin:42px 0 0 auto;max-width:1040px;border-left:3px solid var(--coral);padding:18px 0 4px 25px}.demo-bridge b{font-size:.68rem;letter-spacing:.14em;color:var(--petrol)}.demo-bridge p{font-size:.9rem;max-width:900px;margin:9px 0 0;color:#5d6668}.multi-evidence{display:grid;grid-template-columns:.8fr 1.2fr;gap:20px;align-items:stretch}.multi-evidence .macro{display:flex;flex-direction:column}.multi-evidence .macro img{flex:1;object-fit:cover;min-height:430px}.multi-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.multi-grid .learner{grid-column:1/-1;min-height:220px;background:white}.multi-grid .asset-placeholder{min-height:250px}
@media(max-width:1050px){.pd-open{grid-template-columns:1fr;gap:28px}.pd-open-copy{max-width:760px}.pd-case-head{grid-template-columns:1fr}.pd-case-head h2,.pd-context{grid-column:1}.pd-story{grid-template-columns:1fr 1fr}.pd-story .pd-proof{grid-column:1/-1;border-left:0;border-top:1px solid rgba(37,42,44,.14)}.multi-evidence{grid-template-columns:1fr}.multi-evidence .macro{display:grid;grid-template-columns:1fr .5fr}.multi-evidence .macro img{min-height:0}}
@media(max-width:720px){.pd-open{padding-top:120px}.pd-open h1{font-size:clamp(3rem,13vw,4.7rem)}.pd-local{flex-direction:column}.pd-local a+a{border-left:0;border-top:1px solid rgba(37,42,44,.14)}.pd-case{scroll-margin-top:65px}.pd-story{grid-template-columns:1fr;margin-top:38px}.pd-story article,.pd-story article+article{border-left:0;border-top:1px solid rgba(37,42,44,.14);padding:22px 0}.pd-story article:first-child{border-top:0}.apf-evidence{grid-template-columns:1fr}.apf-hero{grid-row:auto}.apf-wide{grid-column:auto}.apf-evidence img,.apf-hero img,.apf-wide img{height:auto;max-height:none}.process-evidence .macro,.multi-evidence .macro{grid-template-columns:1fr}.process-evidence .macro img{min-height:0}.evidence-flow{grid-template-columns:1fr}.evidence-flow>i{transform:rotate(90deg);justify-self:center}.multi-grid{grid-template-columns:1fr}.multi-grid .learner{grid-column:auto}.asset-placeholder,.multi-grid .asset-placeholder{min-height:170px}.apf-evidence figcaption,.macro figcaption{display:block}.apf-evidence figcaption span,.macro figcaption span{display:block;text-align:left;margin-top:5px}}


/* V0.1 — Agrandissement sobre des preuves détaillées (opt-in uniquement) */
img[data-proof-zoom]{cursor:zoom-in}
.proof-zoom-wrap{position:relative;display:block;overflow:hidden}
.proof-zoom-wrap::after{content:"Agrandir";position:absolute;right:12px;bottom:12px;padding:7px 10px;background:rgba(37,42,44,.82);color:#fff;font:600 .67rem/1 Aptos,Arial,sans-serif;letter-spacing:.07em;text-transform:uppercase;opacity:0;transform:translateY(4px);transition:opacity .18s ease,transform .18s ease;pointer-events:none}
.proof-zoom-wrap:hover::after,.proof-zoom-wrap:focus-within::after{opacity:.9;transform:none}
img[data-proof-zoom]:focus-visible{outline:2px solid var(--coral);outline-offset:-3px}
.proof-lightbox{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:clamp(18px,4vw,56px);background:rgba(22,25,26,.9);opacity:0;visibility:hidden;transition:opacity .18s ease,visibility .18s ease}
.proof-lightbox.is-open{opacity:1;visibility:visible}
.proof-lightbox__stage{position:relative;max-width:min(94vw,1800px);max-height:90vh;display:grid;place-items:center}
.proof-lightbox__image{display:block;width:auto;height:auto;max-width:100%;max-height:90vh;object-fit:contain;background:#fff}
.proof-lightbox__close{position:absolute;top:-14px;right:-14px;width:42px;height:42px;border:0;border-radius:50%;background:var(--off);color:var(--ink);font:400 1.55rem/1 Arial,sans-serif;cursor:pointer;box-shadow:0 4px 18px rgba(0,0,0,.22)}
.proof-lightbox__close:hover{background:var(--coral);color:#fff}.proof-lightbox__close:focus-visible{outline:2px solid #fff;outline-offset:3px}
body.lightbox-open{overflow:hidden}
@media(max-width:720px){.proof-zoom-wrap::after{content:"↗";opacity:.78;transform:none;padding:7px 9px;right:9px;bottom:9px}.proof-lightbox{padding:14px}.proof-lightbox__stage{max-width:100%;max-height:92vh}.proof-lightbox__image{max-height:92vh}.proof-lightbox__close{top:8px;right:8px;width:40px;height:40px}}
@media(hover:none){.proof-zoom-wrap::after{opacity:.72;transform:none}}
@media(prefers-reduced-motion:reduce){.proof-lightbox,.proof-zoom-wrap::after{transition:none}}


/* TRANS final — V0.2 : remplacement strict des placeholders, architecture V0.1 conservée */
.trans-final-flow{align-items:stretch}
.evidence-asset{margin:0;background:rgba(255,255,255,.72);border:1px solid rgba(46,112,107,.18);display:flex;flex-direction:column;min-width:0}
.evidence-asset.important{background:#fff;border-color:rgba(46,112,107,.38);box-shadow:0 10px 28px rgba(37,42,44,.055)}
.evidence-asset img{display:block;width:100%;aspect-ratio:3/2;object-fit:contain;background:#fff}
.evidence-asset figcaption{padding:13px 15px 14px;display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-top:1px solid rgba(37,42,44,.08)}
.evidence-asset figcaption b{font-size:.64rem;letter-spacing:.13em;color:var(--petrol)}
.evidence-asset figcaption span{font:400 1rem/1.15 Georgia,serif;color:var(--ink);text-align:right}
@media(max-width:720px){.evidence-asset figcaption{padding:12px 14px}.evidence-asset figcaption span{font-size:.96rem}}

/* V1 — MULTI masters finalises */
.multi-grid .evidence-asset{min-width:0}
.multi-grid .evidence-asset img{width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;background:#fff}
.multi-grid .evidence-asset.learner{grid-column:1/-1;justify-self:center;width:min(78%,860px);background:#fff}
.multi-grid .evidence-asset.learner img{width:100%}
@media(max-width:720px){.multi-grid .evidence-asset.learner{grid-column:auto;width:100%}}

/* V1.1 — Direction artistique éditoriale */
.pd-open{grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);column-gap:clamp(55px,7vw,120px);padding-bottom:clamp(64px,6vw,92px)}
.pd-open h1 span,.pd-open h1 em{display:block}.pd-open-copy{font-size:1.14rem;line-height:1.62;max-width:680px}.pd-open-copy .pd-lead{margin:0}.pd-transparency{position:relative;margin:30px 0 0 22px!important;padding-left:20px;font-size:.88rem;line-height:1.55;color:#667073!important;max-width:620px}.pd-transparency:before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:3px;background:var(--coral)}
.pd-local{margin-top:8px;border-color:rgba(46,112,107,.24)}.pd-local a{position:relative;text-align:center;padding:22px 18px;font-size:1rem;font-weight:600;transition:background .18s ease,color .18s ease}.pd-local span{font-size:.76rem;font-weight:800}.pd-local a:after{content:"";position:absolute;left:50%;right:50%;bottom:-1px;height:3px;background:var(--petrol);transition:left .18s ease,right .18s ease}.pd-local a:hover{background:rgba(167,197,161,.11)}.pd-local a:hover:after{left:22%;right:22%}
.pd-case-inner{padding-top:clamp(92px,7.5vw,128px);padding-bottom:clamp(105px,8.5vw,145px)}.pd-case-head h2{line-height:.98}.pd-context{font-size:1.16rem;line-height:1.55;max-width:900px}
.pd-story{margin-top:60px;grid-template-columns:.86fr 1.14fr 1fr;border-bottom:0;gap:0}.pd-story article{padding:31px 34px 34px 0}.pd-story article+article{padding-left:34px}.pd-story span{font-size:.73rem;margin-bottom:15px}.pd-story p{font-size:1.02rem;line-height:1.55}.pd-story .pd-proof{position:relative;background:rgba(167,197,161,.17);padding:31px 30px 34px 34px}.pd-story .pd-proof:after{content:"";position:absolute;right:18px;top:18px;width:10px;height:10px;border:1px solid var(--coral)}
/* APFORM — quatre preuves, récit plutôt que grille */
.apf-evidence{margin-top:76px;display:grid;grid-template-columns:1.06fr .94fr;grid-template-areas:"arch video" "activity resource";gap:clamp(28px,4vw,62px) clamp(34px,5vw,76px);align-items:start}.apf-proof{margin:0;min-width:0}.apf-architecture{grid-area:arch}.apf-video{grid-area:video;margin-top:70px}.apf-activity{grid-area:activity;margin-left:9%;margin-top:10px}.apf-resource{grid-area:resource;margin-top:62px}.apf-frame{position:relative;background:#fff;padding:10px;border:1px solid rgba(46,112,107,.16);box-shadow:0 14px 34px rgba(37,42,44,.07)}.apf-frame:before{content:"";position:absolute;z-index:-1;inset:14px -13px -13px 14px;background:rgba(167,197,161,.25)}.apf-video .apf-frame:before{background:rgba(200,121,94,.18);inset:-11px 16px 14px -12px}.apf-activity .apf-frame:before{background:rgba(143,166,179,.22)}.apf-resource .apf-frame:before{background:rgba(46,112,107,.13);inset:12px 15px -12px -14px}.apf-frame img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain}.apf-proof figcaption{padding:20px 6px 0;display:block}.apf-proof figcaption b{display:block;font:400 clamp(1.4rem,1.7vw,1.85rem)/1.12 Georgia,serif;color:var(--ink)}.apf-proof figcaption span{display:block;margin-top:8px;font-size:.93rem;line-height:1.45;color:#60696b}.video-frame{background:#1d2224;padding:8px}.video-play{position:absolute;left:50%;top:50%;translate:-50% -50%;display:grid;place-items:center;width:66px;height:66px;border-radius:50%;background:rgba(247,246,242,.93);color:var(--petrol);font-size:1.35rem;padding-left:4px;box-shadow:0 6px 24px rgba(0,0,0,.2)}.video-bar{position:absolute;left:24px;right:24px;bottom:22px;height:3px;background:rgba(255,255,255,.45)}.video-bar i{display:block;width:38%;height:100%;background:#fff}
/* Macro preuves — résultat introduit sans écraser le raisonnement */
.process-evidence,.multi-evidence{margin-top:78px}.editorial-macro{overflow:visible!important;background:transparent!important}.editorial-macro .macro-visual{background:#fff;padding:10px;border:1px solid rgba(46,112,107,.16);box-shadow:0 14px 36px rgba(37,42,44,.06)}.editorial-macro figcaption{padding:24px 4px!important;display:block!important}.editorial-macro figcaption b{display:block;font:400 clamp(1.45rem,1.8vw,2rem)/1.12 Georgia,serif;color:var(--ink)!important}.editorial-macro figcaption span{display:block!important;text-align:left!important;margin-top:9px!important;font-size:.95rem!important;line-height:1.5;color:#626b6d!important}.process-evidence .trans-macro{display:grid;grid-template-columns:.56fr .44fr;gap:clamp(34px,5vw,72px);align-items:center;max-width:1180px}.process-evidence .macro img{min-height:0;object-fit:contain}.process-evidence .macro figcaption{padding:0!important}
/* TRANS — séquence éditoriale asymétrique */
.evidence-flow.trans-final-flow{position:relative;margin-top:72px;display:grid;grid-template-columns:1fr 1.12fr 1fr;gap:clamp(30px,4vw,64px);align-items:start}.trans-final-flow:before{content:"";position:absolute;left:5%;right:5%;top:34%;height:1px;background:rgba(46,112,107,.24);z-index:0}.evidence-asset{position:relative;z-index:1;background:transparent;border:0;overflow:visible}.evidence-asset .evidence-visual{position:relative;background:#fff;padding:8px;border:1px solid rgba(46,112,107,.17);box-shadow:0 12px 30px rgba(37,42,44,.055)}.evidence-asset .evidence-visual:before{content:"";position:absolute;z-index:-1;inset:12px -11px -11px 12px;background:rgba(143,166,179,.18)}.evidence-asset.important .evidence-visual{border-color:rgba(46,112,107,.42);box-shadow:0 18px 40px rgba(37,42,44,.09)}.evidence-asset.important .evidence-visual:before{background:rgba(200,121,94,.18);inset:-10px 13px 13px -10px}.evidence-asset img{aspect-ratio:3/2;object-fit:contain}.evidence-asset figcaption{display:block;border:0;padding:22px 4px 0}.evidence-asset figcaption b{display:block;font:400 clamp(1.3rem,1.55vw,1.65rem)/1.15 Georgia,serif;letter-spacing:0;color:var(--ink)}.evidence-asset figcaption span{display:block;margin-top:8px;font:400 .9rem/1.48 Aptos,Arial,sans-serif;color:#626b6d;text-align:left}.trans-final-flow .evidence-two{margin-top:46px}.trans-final-flow .evidence-three{margin-top:8px}
/* Multi — transparence puis vision globale + zooms */
.demo-bridge{margin:50px 0 0 auto;max-width:1000px;border-left:3px solid var(--coral);background:rgba(255,255,255,.48);padding:20px 26px}.demo-bridge b{font:400 1.22rem/1.25 Georgia,serif;letter-spacing:0;color:var(--ink)}.demo-bridge p{font-size:.9rem;line-height:1.52;margin-top:10px}
.multi-evidence{display:block}.multi-macro{display:grid;grid-template-columns:.62fr .38fr;gap:clamp(34px,5vw,72px);align-items:center;max-width:1160px;margin-left:auto}.multi-evidence .macro img{min-height:0;object-fit:contain}.multi-macro figcaption{padding:0!important}.multi-grid{margin-top:76px;display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,5vw,70px);align-items:start}.multi-grid .multi-one{margin-top:36px}.multi-grid .multi-two{margin-right:6%}.multi-grid .evidence-asset.learner{grid-column:1/-1;justify-self:center;width:min(74%,930px);margin-top:26px}.multi-grid .learner .evidence-visual:before{background:rgba(167,197,161,.25);inset:13px -14px -12px 14px}.multi-grid .learner figcaption{max-width:800px}
@media(max-width:1050px){.pd-open{grid-template-columns:1fr;gap:30px}.pd-open-copy{max-width:800px}.pd-transparency{margin-left:0!important}.pd-story p{font-size:.98rem}.apf-evidence{gap:42px 34px}.apf-video,.apf-resource{margin-top:40px}.process-evidence .trans-macro,.multi-macro{grid-template-columns:1fr .55fr}.evidence-flow.trans-final-flow{gap:28px}.evidence-asset figcaption b{font-size:1.28rem}}
@media(max-width:820px){.pd-story{grid-template-columns:1fr}.pd-story article,.pd-story article+article{border-left:0;border-top:1px solid rgba(37,42,44,.14);padding:24px 0}.pd-story article:first-child{border-top:0}.pd-story .pd-proof{grid-column:auto;padding:25px 24px;margin-top:8px}.apf-evidence{grid-template-columns:1fr;grid-template-areas:"arch" "video" "activity" "resource";gap:44px}.apf-video,.apf-activity,.apf-resource{margin:0}.process-evidence .trans-macro,.multi-macro{grid-template-columns:1fr;gap:20px}.process-evidence .macro figcaption,.multi-macro figcaption{padding:4px 2px!important}.evidence-flow.trans-final-flow{grid-template-columns:1fr;gap:48px}.trans-final-flow:before{display:none}.trans-final-flow .evidence-two,.trans-final-flow .evidence-three{margin-top:0}.multi-grid{grid-template-columns:1fr;gap:48px}.multi-grid .multi-one,.multi-grid .multi-two{margin:0}.multi-grid .evidence-asset.learner{grid-column:auto;width:100%;margin-top:0}}
@media(max-width:720px){.pd-open h1 span,.pd-open h1 em{display:inline}.pd-open-copy{font-size:1.05rem}.pd-local a{text-align:left;padding:18px 14px}.pd-case-inner{padding-top:82px;padding-bottom:94px}.pd-context{font-size:1.06rem}.apf-evidence,.process-evidence,.multi-evidence{margin-top:58px}.apf-frame,.editorial-macro .macro-visual,.evidence-asset .evidence-visual{padding:5px;box-shadow:0 8px 20px rgba(37,42,44,.06)}.apf-frame:before,.evidence-asset .evidence-visual:before{display:none}.video-play{width:52px;height:52px;font-size:1rem}.demo-bridge{margin-top:38px;padding:18px 20px}.demo-bridge b{font-size:1.08rem}.multi-grid,.evidence-flow.trans-final-flow{margin-top:52px}}

/* V1.2 — Portfolio / direction artistique globale */
.pd-open-copy .pd-lead+.pd-lead{margin-top:1.05em}.pd-transparency{margin-top:42px!important;font-size:.8rem;line-height:1.45;max-width:590px}.pd-local a{font-size:1.08rem;padding:24px 18px}.pd-local span{display:none}
/* Entrées de cas : signature éditoriale */
.pd-case-head{position:relative;padding-top:26px}.pd-case-head:before{content:"";position:absolute;left:0;top:0;width:clamp(58px,6vw,92px);height:4px;background:var(--petrol)}.pd-case-head:after{content:"";position:absolute;left:clamp(72px,7vw,108px);top:-3px;width:11px;height:11px;border:2px solid var(--coral)}.pd-trans .pd-case-head:before{background:var(--blue)}.pd-multi .pd-case-head:before{background:var(--sage)}
/* Synthèse : trois fonctions, hiérarchie plus assumée */
.pd-story{border-top:0;align-items:stretch}.pd-story article{position:relative;border-top:1px solid rgba(46,112,107,.28);padding-top:34px!important}.pd-story article+article{border-left:0;padding-left:38px}.pd-story article+article:before{content:"";position:absolute;left:0;top:34px;bottom:20px;width:1px;background:rgba(37,42,44,.14)}.pd-story span{font-size:.82rem;letter-spacing:.12em;margin-bottom:18px}.pd-story p{font-size:1.08rem;line-height:1.58}.pd-story .pd-proof{border-top:0;background:rgba(167,197,161,.22);margin-top:-10px;padding:38px 34px 38px!important}.pd-story .pd-proof:before{display:none}.pd-story .pd-proof span{font-size:.84rem}
/* APFORM : récit visuel en quatre mouvements */
.apf-storyboard{display:block;margin-top:94px}.apf-storyboard>.apf-proof{margin:0}.apf-architecture{width:min(76%,1040px);position:relative}.apf-architecture .apf-frame{padding:12px}.apf-architecture figcaption{max-width:650px;margin-left:7%;padding-top:24px}.apf-architecture:after{content:"";position:absolute;right:-12%;top:18%;width:18%;height:42%;background:rgba(167,197,161,.20);z-index:-2}.apf-proof figcaption b,.apf-editorial-caption h3{font:400 clamp(1.65rem,2vw,2.25rem)/1.1 Georgia,serif;color:var(--ink);margin:0}.apf-proof figcaption span,.apf-editorial-caption p{font-size:1rem;line-height:1.5;color:#596365;margin-top:10px}.apf-video-report{margin-top:100px!important;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.55fr);gap:clamp(40px,6vw,90px);align-items:center}.apf-editorial-caption{position:relative;padding:30px 0 30px 28px}.apf-editorial-caption:before{content:"";position:absolute;left:0;top:25px;width:3px;height:54px;background:var(--coral)}.apf-collage{position:relative;min-height:520px}.apf-shot{position:absolute;background:#fff;padding:7px;box-shadow:0 18px 40px rgba(37,42,44,.12)}.apf-shot img{display:block;width:100%;height:100%;object-fit:cover}.apf-video-collage .apf-shot-main{left:0;top:4%;width:76%;height:68%;z-index:2}.apf-video-collage .shot-a{right:0;top:0;width:35%;height:38%;z-index:3;transform:rotate(1.2deg)}.apf-video-collage .shot-b{right:4%;bottom:1%;width:42%;height:38%;z-index:1;transform:rotate(-1deg)}.apf-video-collage:before{content:"";position:absolute;left:-22px;bottom:44px;width:58%;height:38%;background:rgba(143,166,179,.22)}.apf-activity-report{margin-top:112px!important;display:grid;grid-template-columns:minmax(280px,.52fr) minmax(0,1.28fr);gap:clamp(42px,6vw,90px);align-items:center}.apf-activity-report .apf-editorial-caption:before{background:var(--petrol)}.apf-activity-collage .apf-shot-main{right:0;top:5%;width:75%;height:68%;z-index:2}.apf-activity-collage .shot-a{left:0;top:0;width:38%;height:40%;z-index:3;transform:rotate(-1.1deg)}.apf-activity-collage .shot-b{left:4%;bottom:0;width:43%;height:39%;z-index:1;transform:rotate(1deg)}.apf-activity-collage:before{content:"";position:absolute;right:-20px;bottom:35px;width:60%;height:40%;background:rgba(200,121,94,.15)}.apf-resource{width:min(82%,1120px);margin:112px 0 0 auto!important;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.55fr);gap:clamp(38px,5vw,74px);align-items:center}.apf-resource .apf-frame:before{background:rgba(46,112,107,.14);inset:18px -18px -16px 18px}.apf-resource figcaption{padding:0!important}.apf-resource figcaption span{max-width:420px}
/* TRANS : résultat majeur + transformation plus tangible */
.process-evidence .trans-macro{max-width:1260px;grid-template-columns:.64fr .36fr;position:relative}.trans-macro .macro-visual{padding:12px;box-shadow:0 20px 48px rgba(37,42,44,.10)}.trans-macro .macro-visual:before{content:"";position:absolute;z-index:-1;left:-22px;top:34px;width:52%;height:72%;background:rgba(143,166,179,.22)}.trans-macro figcaption{position:relative;background:rgba(255,255,255,.62);padding:28px 28px 30px!important;margin-left:-28px;z-index:2}.trans-macro figcaption:after{content:"";position:absolute;right:20px;top:18px;width:11px;height:11px;border:2px solid var(--coral)}.evidence-flow.trans-final-flow{grid-template-columns:.94fr 1.18fr .94fr;gap:clamp(38px,5vw,76px);margin-top:100px}.trans-final-flow:before{top:29%;height:2px;background:rgba(46,112,107,.18)}.trans-final-flow .evidence-one{margin-top:4px}.trans-final-flow .evidence-two{margin-top:58px}.trans-final-flow .evidence-three{margin-top:14px}.trans-final-flow .evidence-one .evidence-visual{transform:rotate(-.55deg)}.trans-final-flow .evidence-two .evidence-visual{transform:rotate(.35deg)}.trans-final-flow .evidence-three .evidence-visual{transform:rotate(-.35deg)}.evidence-asset figcaption b{font-size:clamp(1.5rem,1.8vw,1.95rem)}.evidence-asset figcaption span{font-size:1rem;line-height:1.5}.trans-final-flow .important figcaption{padding-left:18px;border-left:3px solid var(--coral)}
/* MULTI : transition éditoriale, pièce globale et trois niveaux */
.demo-bridge{max-width:none;margin-top:64px;padding:26px clamp(28px,4vw,58px);display:grid;grid-template-columns:.42fr .58fr;gap:46px;align-items:center;border-left:0;border-top:1px solid rgba(200,121,94,.5);border-bottom:1px solid rgba(200,121,94,.28);background:rgba(200,121,94,.075)}.demo-bridge b{font-size:1.42rem}.demo-bridge p{margin:0;font-size:.96rem}.multi-evidence{margin-top:66px}.multi-macro{max-width:1240px;grid-template-columns:.68fr .32fr;gap:clamp(28px,4vw,58px);position:relative}.multi-macro .macro-visual{padding:12px;box-shadow:0 20px 48px rgba(37,42,44,.09)}.multi-macro .macro-visual:before{content:"";position:absolute;z-index:-1;right:-20px;bottom:-18px;width:52%;height:64%;background:rgba(167,197,161,.24)}.multi-macro figcaption{margin-left:-12px}.multi-grid{margin-top:92px;grid-template-columns:1fr 1fr;gap:clamp(42px,6vw,88px)}.multi-grid .multi-one{margin-top:0;width:94%}.multi-grid .multi-two{margin-top:70px;margin-right:0;width:96%;justify-self:end}.multi-grid .evidence-asset.learner{width:min(84%,1040px);margin-top:46px}.multi-grid .multi-one .evidence-visual{transform:rotate(-.45deg)}.multi-grid .multi-two .evidence-visual{transform:rotate(.4deg)}.multi-grid .learner .evidence-visual{transform:rotate(-.2deg)}.multi-grid .evidence-asset figcaption{background:transparent!important}.multi-grid .important figcaption{padding-left:18px;border-left:3px solid var(--petrol)}.multi-grid .learner figcaption{padding-left:18px;border-left:3px solid var(--sage)}
@media(max-width:1050px){.apf-video-report,.apf-activity-report,.apf-resource{grid-template-columns:1fr}.apf-editorial-caption{max-width:720px}.apf-collage{min-height:460px}.apf-resource{width:90%}.trans-macro figcaption{margin-left:0}.demo-bridge{grid-template-columns:1fr;gap:12px}.multi-macro figcaption{margin-left:0}}
@media(max-width:820px){.pd-story article+article:before{display:none}.pd-story article+article{padding-left:0}.pd-story .pd-proof{margin-top:10px}.apf-architecture,.apf-resource{width:100%}.apf-video-report,.apf-activity-report,.apf-resource{margin-top:72px!important}.apf-collage{min-height:420px}.apf-editorial-caption{padding-left:22px}.trans-macro .macro-visual:before,.multi-macro .macro-visual:before{display:none}.trans-final-flow .evidence-one,.trans-final-flow .evidence-two,.trans-final-flow .evidence-three,.multi-grid .multi-one,.multi-grid .multi-two,.multi-grid .learner{margin-top:0;width:100%}.trans-final-flow .evidence-visual,.multi-grid .evidence-visual{transform:none!important}}
@media(max-width:600px){.pd-transparency{margin-top:30px!important}.pd-local{display:grid}.pd-local a+a{border-left:0;border-top:1px solid rgba(37,42,44,.12)}.apf-collage{min-height:300px}.apf-video-collage .apf-shot-main,.apf-activity-collage .apf-shot-main{width:78%;height:66%}.apf-video-collage .shot-a,.apf-activity-collage .shot-a{width:39%;height:37%}.apf-video-collage .shot-b,.apf-activity-collage .shot-b{width:45%;height:36%}.demo-bridge{padding:22px 20px}.demo-bridge b{font-size:1.2rem}}

/* V1.3 — consolidation ciblée avant contrôle responsive */
.text-accent{color:var(--coral);font-weight:600}.pd-open-copy{position:relative}.pd-transparency{margin:34px 0 0 auto!important;max-width:570px;text-align:right;font-size:.73rem;line-height:1.42;color:#737b7d!important;position:relative;padding-top:12px}.pd-transparency:before{content:"";position:absolute;right:0;top:0;width:46px;height:2px;background:var(--coral)}
/* règle unique de hiérarchie interne des synthèses */
.pd-story p strong{font-weight:650;color:var(--petrol)}
/* repère de marque discret dans le territoire gauche d'APFORM */
.pd-apf .pd-case-head:after{width:34px;height:34px;border:0;background:transparent;box-shadow:0 0 0 2px rgba(200,121,94,.72);transform:translate(-4px,-14px)}
.pd-apf .pd-case-head .pd-kicker:before{content:"";position:absolute;left:16px;top:13px;width:34px;height:34px;border:2px solid rgba(46,112,107,.26);pointer-events:none}
/* APFORM — alternance éditoriale stabilisée */
.apf-architecture{width:100%;display:grid;grid-template-columns:minmax(260px,.38fr) minmax(0,1fr);gap:clamp(42px,6vw,92px);align-items:center}.apf-architecture figcaption{order:1;margin:0;padding:26px 0 26px 28px;position:relative}.apf-architecture figcaption:before{content:"";position:absolute;left:0;top:24px;width:3px;height:58px;background:var(--petrol)}.apf-architecture .apf-frame{order:2;padding:10px}.apf-architecture:after{right:-2%;top:14%;width:44%;height:74%}
.apf-video-collage:before{background:rgba(167,197,161,.27);left:-24px;bottom:28px;width:72%;height:58%}.apf-video-collage .apf-shot{background:rgba(229,239,226,.96);padding:8px}.video-play-small{width:38px!important;height:38px!important;font-size:.72rem!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important}
.apf-activity-collage:before{background:rgba(200,121,94,.13);right:-22px;bottom:20px;width:76%;height:62%}.apf-activity-collage .apf-shot{background:#f8eeea;padding:8px}.apf-activity-collage .apf-shot img{object-fit:contain;background:#fff}.apf-activity-collage .apf-shot-main{right:0;top:7%;width:72%;height:auto;aspect-ratio:1.775}.apf-activity-collage .shot-a{left:0;top:0;width:40%;height:auto;aspect-ratio:1.775}.apf-activity-collage .shot-b{left:3%;bottom:1%;width:45%;height:auto;aspect-ratio:1.775}
.apf-resource{width:100%;margin-top:110px!important;grid-template-columns:minmax(0,1.2fr) minmax(290px,.55fr);gap:clamp(42px,6vw,90px)}.apf-resource .apf-frame{grid-column:1}.apf-resource figcaption{grid-column:2}.apf-resource .apf-frame:before{inset:16px -12px -14px 16px}
/* TRANS — processus puis résultat */
.process-evidence{display:flex;flex-direction:column}.evidence-flow.trans-final-flow{order:1;margin-top:20px}.process-evidence .trans-macro{order:2;margin:105px auto 0;max-width:1180px;grid-template-columns:.66fr .34fr;align-items:center}.trans-macro figcaption{margin-left:-18px}.trans-final-flow .important figcaption{padding-left:0;border-left:0}.trans-final-flow .evidence-asset figcaption{padding:22px 4px 0!important;background:transparent!important;border:0!important}.trans-final-flow .evidence-asset figcaption b{display:block;color:var(--ink)}.trans-final-flow .evidence-asset figcaption span{display:block;margin-top:9px;color:#596365}
/* MULTI — transparence secondaire, HOME texte gauche / visuel droite, légendes unifiées */
.demo-bridge{display:block;max-width:850px;margin:54px 0 0 auto;padding:15px 0 0 24px;border:0;border-left:2px solid rgba(200,121,94,.72);background:transparent}.demo-bridge b{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--petrol)}.demo-bridge p{margin-top:8px;font-size:.84rem;line-height:1.48;color:#667073}
.multi-evidence{margin-top:58px}.multi-macro{max-width:none;grid-template-columns:minmax(280px,.36fr) minmax(0,1fr);gap:clamp(42px,6vw,88px);align-items:center}.multi-macro figcaption{order:1;margin:0;padding:26px 0 26px 28px!important;position:relative}.multi-macro figcaption:before{content:"";position:absolute;left:0;top:24px;width:3px;height:58px;background:var(--sage)}.multi-macro .macro-visual{order:2}.multi-grid{margin-top:78px}.multi-grid .evidence-asset figcaption{padding:22px 4px 0!important;background:transparent!important;border:0!important}.multi-grid .evidence-asset figcaption b{display:block;color:var(--ink)}.multi-grid .evidence-asset figcaption span{display:block;margin-top:9px;color:#596365}.multi-grid .evidence-asset.learner{margin-top:12px}
@media(max-width:1050px){.apf-architecture,.multi-macro{grid-template-columns:1fr}.apf-architecture figcaption,.multi-macro figcaption{max-width:720px}.apf-architecture .apf-frame,.multi-macro .macro-visual{grid-column:1}.process-evidence .trans-macro{grid-template-columns:1fr}.trans-macro figcaption{margin-left:0}.pd-transparency{max-width:520px}}
@media(max-width:820px){.pd-transparency{text-align:left;margin-left:0!important}.pd-transparency:before{left:0;right:auto}.pd-apf .pd-case-head .pd-kicker:before{display:none}.apf-architecture figcaption,.multi-macro figcaption{padding-left:22px!important}.apf-resource{grid-template-columns:1fr}.apf-resource .apf-frame,.apf-resource figcaption{grid-column:1}.apf-resource figcaption{padding-left:22px!important}.process-evidence .trans-macro{margin-top:70px}.multi-grid .evidence-asset.learner{margin-top:0}}
@media(max-width:600px){.apf-activity-collage .apf-shot-main{width:76%}.apf-activity-collage .shot-a{width:41%}.apf-activity-collage .shot-b{width:46%}.demo-bridge{margin-top:40px;padding-left:18px}.pd-transparency{font-size:.76rem}}

/* V1.3 FINAL DESKTOP — vertical rhythm consolidation only */
@media (min-width:1051px){
  /* MULTI transparency note: secondary editorial note anchored to left content territory */
  .demo-bridge{margin:50px auto 0 0;max-width:850px}

  /* MULTI home: keep caption and visual as one editorial unit */
  .multi-evidence{margin-top:44px}
  .multi-macro{gap:clamp(28px,4vw,58px)}
  .multi-macro figcaption{padding-top:18px!important;padding-bottom:18px!important}

  /* Local rhythm corrections: preserve generous case breathing, remove accidental disconnects */
  .apf-evidence{margin-top:68px}
  .process-evidence{margin-top:70px}
  .evidence-flow.trans-final-flow{margin-top:14px}
  .process-evidence .trans-macro{margin-top:88px}
  .multi-grid{margin-top:68px}
}

/* Réalisations complémentaires — desktop integration V1 */
.portfolio-spectrum{padding:clamp(110px,10vw,170px) 0 90px;background:var(--off)}
.spectrum-intro{display:grid;grid-template-columns:.72fr 1.28fr;column-gap:clamp(50px,7vw,120px);align-items:end}
.spectrum-intro .pd-kicker{grid-column:1}.spectrum-intro h2{grid-column:1/3;margin:12px 0 0;max-width:1080px;font-family:Georgia,serif;font-size:clamp(2.7rem,4.5vw,5.2rem);line-height:.98;font-weight:400;color:var(--ink)}
.spectrum-intro h2 em{display:block;color:var(--petrol);font-weight:400}.spectrum-intro>p:last-child{grid-column:2;margin:30px 0 0;max-width:700px;font-size:1.12rem;line-height:1.62;color:#596365}
.spectrum-list{margin-top:95px}.spectrum-case{position:relative;display:grid;grid-template-columns:minmax(280px,.34fr) minmax(0,.66fr);gap:clamp(45px,6vw,92px);align-items:center;padding:94px 0 112px;border-top:1px solid rgba(37,42,44,.12)}
.spectrum-case.reverse{grid-template-columns:minmax(0,.66fr) minmax(280px,.34fr)}.spectrum-case.reverse .spectrum-copy{grid-column:2;grid-row:1}.spectrum-case.reverse .spectrum-composition{grid-column:1;grid-row:1}
.spectrum-copy{align-self:center;position:relative;padding-left:25px}.spectrum-copy:before{content:"";position:absolute;left:0;top:4px;width:3px;height:54px;background:var(--coral)}
.spectrum-index{margin:0 0 12px;font-size:.76rem;letter-spacing:.11em;font-weight:700;color:var(--petrol)}.spectrum-copy h3{margin:0;font-family:Georgia,serif;font-size:clamp(2.25rem,3.2vw,3.7rem);line-height:1;color:var(--ink);font-weight:400}.spectrum-copy>p:not(.spectrum-index):not(.spectrum-path){margin:24px 0 0;font-size:1.02rem;line-height:1.62;color:#4f5a5d}.spectrum-path{margin:25px 0 0!important;font-size:.82rem!important;line-height:1.4!important;font-weight:650;letter-spacing:.025em;color:var(--petrol)!important}.spectrum-path i{padding:0 6px;color:var(--coral);font-style:normal}
.spectrum-composition{position:relative;min-height:610px}.shot{position:absolute;margin:0}.shot-frame{position:relative;background:#fff;padding:8px;box-shadow:0 18px 42px rgba(37,42,44,.11)}.shot-frame img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}.shot figcaption{margin-top:10px;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:#687174}.shot.dominant figcaption{color:var(--petrol)}
.spectrum-composition:before{content:"";position:absolute;z-index:0;background:rgba(167,197,161,.22)}.shot{z-index:1}.case-expert .spectrum-composition:before,.case-complex .spectrum-composition:before{background:rgba(143,166,179,.18)}.case-resource .spectrum-composition:before{background:rgba(200,121,94,.10)}.case-immersive .spectrum-composition:before{background:rgba(167,197,161,.18)}
/* clinique */.clin-composition:before{left:8%;top:8%;width:70%;height:68%}.clin-a{left:0;top:0;width:49%;transform:rotate(-.45deg)}.clin-b{right:0;top:17%;width:58%;transform:rotate(.35deg)}.clin-c{left:9%;bottom:0;width:44%;transform:rotate(-.2deg)}
/* expert */.expert-composition:before{right:3%;top:10%;width:73%;height:65%}.expert-a{left:0;top:5%;width:66%;transform:rotate(-.3deg)}.expert-b{right:0;top:0;width:47%;transform:rotate(.3deg)}.expert-c{right:7%;bottom:0;width:43%;transform:rotate(-.2deg)}.mini-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:54px;height:54px;border:2px solid rgba(255,255,255,.92);border-radius:50%;background:rgba(37,42,44,.42);color:#fff;font-size:1rem;padding-left:3px}
/* ressources : portraits assumés */.resource-composition{min-height:690px}.resource-composition:before{left:13%;top:7%;width:72%;height:78%}.resource-a{left:0;top:0;width:43%;transform:rotate(-1deg)}.resource-b{left:38%;top:12%;width:31%;transform:rotate(.8deg)}.resource-c{right:0;bottom:3%;width:48%;transform:rotate(-.35deg)}
/* immersif */.immersive-composition:before{right:6%;top:10%;width:73%;height:68%}.immersive-a{left:0;top:0;width:61%;transform:rotate(-.3deg)}.immersive-b{right:0;top:18%;width:48%;transform:rotate(.25deg)}.immersive-c{left:13%;bottom:0;width:47%;transform:rotate(-.2deg)}
/* complexe */.complex-composition:before{left:5%;top:8%;width:74%;height:69%}.complex-a{left:0;top:0;width:59%;transform:rotate(-.35deg)}.complex-b{right:0;top:15%;width:48%;transform:rotate(.3deg)}.complex-c{left:16%;bottom:0;width:48%;transform:rotate(-.2deg)}
.portfolio-cta{margin:30px auto 120px;padding-top:84px;padding-bottom:20px;border-top:1px solid rgba(37,42,44,.14);display:grid;grid-template-columns:.7fr 1.3fr;column-gap:clamp(50px,7vw,120px)}.portfolio-cta .pd-kicker{grid-column:1}.portfolio-cta h2{grid-column:1/3;margin:14px 0 0;max-width:980px;font-family:Georgia,serif;font-size:clamp(2.6rem,4.3vw,4.8rem);line-height:1;font-weight:400}.portfolio-cta h2 em{color:var(--petrol);font-weight:400}.portfolio-cta>p{grid-column:2;margin:30px 0 0;max-width:680px;font-size:1.08rem;line-height:1.62;color:#596365}.portfolio-cta .button{grid-column:2;justify-self:start;margin-top:28px}
@media(max-width:1050px){.spectrum-case,.spectrum-case.reverse{grid-template-columns:1fr}.spectrum-case.reverse .spectrum-copy,.spectrum-case.reverse .spectrum-composition{grid-column:1}.spectrum-case.reverse .spectrum-copy{grid-row:1}.spectrum-case.reverse .spectrum-composition{grid-row:2}.spectrum-composition{margin-top:35px}.spectrum-intro{grid-template-columns:1fr}.spectrum-intro .pd-kicker,.spectrum-intro h2,.spectrum-intro>p:last-child{grid-column:1}.spectrum-intro>p:last-child{max-width:760px}.portfolio-cta{grid-template-columns:1fr}.portfolio-cta .pd-kicker,.portfolio-cta h2,.portfolio-cta>p,.portfolio-cta .button{grid-column:1}}

/* Desktop finishing pass — validated composition, rhythm and micro-hierarchy only */
@media (min-width:1051px){
  /* Chapter transition: remove accidental void without changing locked project sections */
  .portfolio-spectrum{position:relative;padding-top:72px;padding-bottom:56px}
  .portfolio-spectrum:before{content:"";display:block;width:min(1180px,calc(100% - 80px));height:1px;margin:0 auto 58px;background:rgba(46,112,107,.22)}
  .portfolio-spectrum:after{content:"";position:absolute;top:71px;left:50%;width:8px;height:8px;transform:translate(-50%,-3px) rotate(45deg);background:var(--coral)}

  /* Intro is a transition, not a cover screen */
  .spectrum-intro h2 span,.spectrum-intro h2 em{display:block}
  .spectrum-intro>p:last-child{transform:translate(46px,10px);max-width:650px}
  .spectrum-list{margin-top:50px}

  /* Keep generous editorial breathing, remove only disconnected gaps */
  .spectrum-case{padding-top:76px;padding-bottom:88px}
  .spectrum-case:last-child{padding-bottom:62px}

  /* Stronger pedagogical thread and restrained scan emphasis */
  .spectrum-path{margin-top:22px!important;font-size:.98rem!important;line-height:1.45!important;font-weight:700;letter-spacing:.018em}
  .spectrum-path i{padding:0 8px}
  .spectrum-copy>p:not(.spectrum-index):not(.spectrum-path) strong{font-weight:700;color:var(--petrol)}

  /* Captions must remain readable despite overlaps */
  .shot figcaption{position:relative;z-index:5;display:inline-block;padding:5px 8px 4px;margin-top:7px;background:rgba(247,246,242,.94);box-shadow:0 2px 8px rgba(37,42,44,.05)}
  .shot.dominant figcaption{background:rgba(243,241,235,.96)}
  .clin-b figcaption,.expert-b figcaption,.resource-b figcaption,.immersive-b figcaption,.complex-b figcaption{position:absolute;left:10px;bottom:-35px;margin:0;white-space:nowrap}

  /* Final transition: last proof -> breathing -> invitation */
  .portfolio-cta.portfolio-cta-visual{margin-top:8px;margin-bottom:96px;padding-top:52px;padding-bottom:0;display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);gap:clamp(44px,5vw,82px);align-items:center}
  .portfolio-cta-visual .portfolio-cta-copy{display:block}
  .portfolio-cta-visual .pd-kicker{margin:0 0 14px}
  .portfolio-cta-visual h2{margin:0;max-width:700px;font-family:Georgia,serif;font-size:clamp(2.6rem,4vw,4.55rem);line-height:1;font-weight:400}
  .portfolio-cta-visual h2 span,.portfolio-cta-visual h2 em{display:block}
  .portfolio-cta-visual h2 em{color:var(--petrol);font-weight:400}
  .portfolio-cta-visual .portfolio-cta-copy>p{margin:27px 0 0;max-width:590px;font-size:1.06rem;line-height:1.62;color:#596365}
  .portfolio-cta-visual .button{margin-top:27px}
  .portfolio-cta-image{margin:0;overflow:hidden;aspect-ratio:3/2;background:var(--ivory)}
  .portfolio-cta-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:53% center}
}
\n\n/* V1.2 — FINAL DESKTOP LOCK candidate: finishing corrections only */
@media (min-width:1051px){
  /* Pull the new chapter toward the locked end of “Projets en détail” without editing it. */
  .portfolio-spectrum{margin-top:-72px;padding-top:30px;padding-bottom:38px}
  .portfolio-spectrum:before{margin-bottom:30px}
  .portfolio-spectrum:after{top:29px}

  /* Intro remains a transition, not a standalone cover. */
  .spectrum-intro>p:last-child{transform:translate(40px,6px)}
  .spectrum-list{margin-top:22px}

  /* Pedagogical path = small autonomous editorial level. */
  .spectrum-path{margin-top:31px!important;font-size:1.08rem!important;line-height:1.42!important;font-weight:700;letter-spacing:.014em}
  .spectrum-path i{padding:0 9px}

  /* Robust middle-step caption: above visual 02 so visual 03 can never mask it. */
  .clin-b,.expert-b,.resource-b,.immersive-b,.complex-b{z-index:4}
  .clin-b figcaption,.expert-b figcaption,.resource-b figcaption,.immersive-b figcaption,.complex-b figcaption{
    position:absolute;left:10px;top:-34px;bottom:auto;margin:0;white-space:nowrap;z-index:8;
    background:rgba(247,246,242,.97);box-shadow:0 2px 8px rgba(37,42,44,.06)
  }

  /* Last mini-story -> conversion: compact, continuous ending. */
  .spectrum-case:last-child{padding-bottom:30px}
  .portfolio-cta.portfolio-cta-visual{margin-top:0;margin-bottom:82px;padding-top:34px;grid-template-columns:minmax(0,1fr) minmax(360px,.72fr);gap:clamp(42px,5vw,76px)}
  .portfolio-cta-image{width:min(100%,520px);justify-self:end;align-self:center}
}

/* V1.3 — Desktop lock corrections: browser-visible rhythm + caption safety only */
@media (min-width:1051px){
  /* Three transitions: deliberately compact in the rendered page. */
  .portfolio-spectrum{margin-top:-150px!important;padding-top:18px!important;padding-bottom:24px!important}
  .portfolio-spectrum:before{margin-bottom:20px!important}
  .portfolio-spectrum:after{top:17px!important}
  .spectrum-list{margin-top:8px!important}
  .spectrum-case:first-child{padding-top:38px!important}
  .spectrum-case:last-child{padding-bottom:12px!important}

  /* Middle captions: per-case robust positions, without changing the collages. */
  .clin-b figcaption{left:12px!important;top:auto!important;bottom:-34px!important}
  .expert-b figcaption{left:12px!important;top:-34px!important;bottom:auto!important}
  .resource-b figcaption{left:10px!important;top:-34px!important;bottom:auto!important}
  .immersive-b figcaption{left:auto!important;right:4px!important;top:auto!important;bottom:-34px!important}
  .complex-b figcaption{left:auto!important;right:2px!important;top:auto!important;bottom:-34px!important}
  .clin-b figcaption,.expert-b figcaption,.resource-b figcaption,.immersive-b figcaption,.complex-b figcaption{z-index:20!important;white-space:nowrap!important}

  /* Portfolio ending: no blank-screen transition; GEN-03 is supporting evidence, not a second hero. */
  .portfolio-cta.portfolio-cta-visual{margin-top:-18px!important;margin-bottom:72px!important;padding-top:28px!important;grid-template-columns:minmax(0,1fr) minmax(300px,.58fr)!important;gap:clamp(36px,4vw,62px)!important}
  .portfolio-cta-image{width:min(100%,360px)!important;aspect-ratio:3/2!important;justify-self:end!important;align-self:center!important}
}

/* V1.4 — last localized desktop finishing pass */
@media (min-width:1051px){
  /* 2 — Intro -> case 01: remove the height created by the generic .section vertical padding on both adjacent blocks. */
  .portfolio-spectrum .spectrum-intro.section{padding-bottom:64px!important}
  .portfolio-spectrum .spectrum-list.section{padding-top:0!important;margin-top:0!important}
  .portfolio-spectrum .spectrum-case:first-child{padding-top:58px!important}

  /* 3 — Clinical middle caption: below visual 02, fully visible. */
  .clin-b{z-index:6!important}
  .clin-b figcaption{display:block!important;visibility:visible!important;opacity:1!important;left:12px!important;right:auto!important;top:auto!important;bottom:-35px!important;color:#687174!important}

  /* 4 — All 01/02/03 captions use the same dark grey; typography otherwise unchanged. */
  .spectrum-composition .shot figcaption,.spectrum-composition .shot.dominant figcaption{color:#687174!important}

  /* 5 — Resource middle caption: keep above visual 02, move right so it clears visual 01. */
  .resource-b figcaption{left:52px!important;right:auto!important;top:-34px!important;bottom:auto!important}

  /* 6 — Case 05 -> Échangeons: compact chapter transition + discreet rule. */
  .portfolio-spectrum .spectrum-case:last-child{padding-bottom:0!important}
  .portfolio-cta.portfolio-cta-visual{position:relative;margin-top:-34px!important;padding-top:42px!important;border-top:0!important}
  .portfolio-cta.portfolio-cta-visual::before{content:"";position:absolute;top:0;left:50%;width:min(980px,76%);height:1px;transform:translateX(-50%);background:rgba(46,112,107,.20)}

  /* 7 — Échangeons: same GEN-03 size, compact centered pair, image left / editorial right. */
  .portfolio-cta.portfolio-cta-visual{width:min(100% - (2 * var(--pad)),980px)!important;max-width:980px!important;grid-template-columns:360px minmax(0,1fr)!important;gap:clamp(48px,5vw,72px)!important;align-items:center!important}
  .portfolio-cta-visual .portfolio-cta-image{grid-column:1!important;grid-row:1!important;width:360px!important;max-width:360px!important;justify-self:start!important}
  .portfolio-cta-visual .portfolio-cta-copy{grid-column:2!important;grid-row:1!important;max-width:500px!important}
  .portfolio-cta-visual h2{font-size:clamp(2.55rem,3.55vw,4rem)!important}
}

/* FINAL LOCK — micro-spacing Échangeons only */
@media (min-width:1051px){
  .portfolio-cta-visual .pd-kicker{margin-bottom:26px!important}
}

/* PHASE 2 — Desktop typography normalization only */
@media (min-width:901px){
  .projects-detail-page .pd-open-copy,
  .projects-detail-page .pd-context,
  .projects-detail-page .pd-story p,
  .projects-detail-page .spectrum-intro>p:last-child,
  .projects-detail-page .spectrum-copy>p:not(.spectrum-index):not(.spectrum-path),
  .projects-detail-page .portfolio-cta-visual .portfolio-cta-copy>p{
    font-family:Aptos,"Segoe UI",Arial,sans-serif;
    font-weight:400;
  }
  .projects-detail-page .pd-story p{font-size:18px;line-height:1.58;}
  .projects-detail-page .apf-evidence figcaption,
  .projects-detail-page .macro figcaption,
  .projects-detail-page .evidence-asset figcaption p,
  .projects-detail-page .evidence-asset figcaption span,
  .projects-detail-page .spectrum-copy>p:not(.spectrum-index):not(.spectrum-path){font-family:Aptos,"Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.55;font-weight:400;}
  .projects-detail-page .spectrum-index,
  .projects-detail-page .pd-kicker,
  .projects-detail-page .pd-story span,
  .projects-detail-page .shot figcaption{font-family:Aptos,"Segoe UI",Arial,sans-serif;}
}

/* PHASE 3 — Desktop final finishing: local mass/rhythm adjustments only */
@media (min-width:1051px){
  /* APFORM — Mettre en activité: reduce right dominance, reinforce both supporting proofs */
  .apf-activity-collage .apf-shot-main{width:65%}
  .apf-activity-collage .shot-a{width:43%}
  .apf-activity-collage .shot-b{width:48%;left:2%}

  /* APFORM — Ressources opérationnelles: keep readable, reduce image mass without adding void */
  .apf-resource{grid-template-columns:minmax(0,.98fr) minmax(310px,.62fr);gap:clamp(38px,5vw,72px)}

  /* Multi-experts — discreet clearance after final proof */
  .pd-multi .multi-three{margin-bottom:24px}
}

/* RESPONSIVE PHASE 1 — page Réalisations */
@media(max-width:820px){
 .pd-open{padding-top:112px;padding-bottom:58px;grid-template-columns:1fr;row-gap:28px}
 .pd-open h1{font-size:clamp(2.8rem,11vw,4rem)}.pd-open-copy{font-size:1rem}
 .pd-local{overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}.pd-local a{min-width:max-content;padding:15px 16px}
 .pd-case-inner{padding-top:68px;padding-bottom:76px}.pd-case-head{grid-template-columns:1fr;gap:14px}.pd-case-head .pd-kicker,.pd-case-head h2{grid-column:1}.pd-case-head h2{font-size:clamp(2.55rem,10vw,3.6rem)}
 .apf-architecture,.multi-macro,.apf-resource,.process-evidence .trans-macro{grid-template-columns:1fr!important;gap:26px}
 .apf-resource{margin-top:70px!important}
 .spectrum-list{margin-top:58px}.spectrum-case{padding:62px 0 72px;gap:20px}.spectrum-copy{padding-left:18px}.spectrum-copy h3{font-size:clamp(2rem,9vw,2.8rem)}
 .portfolio-spectrum{padding-top:78px;padding-bottom:60px}.portfolio-cta{margin-bottom:72px;padding-top:60px}
}
@media(max-width:600px){
 /* proof screens are stacked at readable width; no destructive crop and no horizontal mosaic */
 .apf-collage,.apf-video-collage,.apf-activity-collage{min-height:0!important;display:grid!important;grid-template-columns:1fr!important;gap:14px!important}
 .apf-collage:before,.apf-video-collage:before,.apf-activity-collage:before{display:none!important}
 .apf-collage .apf-shot,.apf-video-collage .apf-shot,.apf-activity-collage .apf-shot,.apf-video-collage .apf-shot-main,.apf-activity-collage .apf-shot-main,.apf-video-collage .shot-a,.apf-video-collage .shot-b,.apf-activity-collage .shot-a,.apf-activity-collage .shot-b{position:relative!important;inset:auto!important;width:100%!important;height:auto!important;aspect-ratio:auto!important;transform:none!important}
 .apf-collage img,.apf-video-collage img,.apf-activity-collage img{width:100%;height:auto!important;object-fit:contain!important}
 .spectrum-composition,.resource-composition{min-height:0!important;margin-top:28px;display:grid;grid-template-columns:1fr;gap:22px}
 .spectrum-composition:before{display:none}.spectrum-composition .shot{position:relative!important;inset:auto!important;width:100%!important;transform:none!important}
 .shot-frame{padding:6px}.shot figcaption{font-size:.7rem;margin-top:8px}
 .spectrum-path{font-size:.8rem!important}.portfolio-cta .button{width:100%;justify-content:center}
}

/* RESPONSIVE PHASE 2 — targeted project-page corrections */
@media (max-width:820px){
  /* APFORM: editorial order is always heading/copy then corresponding proof(s) */
  .apf-video-report{display:flex!important;flex-direction:column!important;gap:24px!important}
  .apf-video-report .apf-editorial-caption{order:1}
  .apf-video-report .apf-video-collage{order:2;width:100%}
  .apf-resource{display:flex!important;flex-direction:column!important;gap:24px!important}
  .apf-resource figcaption{order:1;width:100%}
  .apf-resource .apf-frame{order:2;width:100%}

  /* Pharma: intentional vertical sequence; no desktop min-width survives */
  .evidence-flow.trans-final-flow{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:46px!important;width:100%;min-width:0}
  .trans-final-flow .evidence-asset,.trans-final-flow .evidence-visual,.trans-final-flow figcaption{width:100%;min-width:0;max-width:100%}
  .trans-final-flow figcaption b,.trans-final-flow figcaption span{overflow-wrap:anywhere}

  /* Shared lightbox: viewport is the hard boundary */
  .proof-lightbox{box-sizing:border-box;width:100vw;height:100dvh;max-width:100vw;overflow:hidden;padding:clamp(12px,3vw,24px)}
  .proof-lightbox__stage{width:100%;height:100%;max-width:100%;max-height:100%;min-width:0;min-height:0;padding:44px 0 8px}
  .proof-lightbox__image{width:auto!important;height:auto!important;max-width:100%!important;max-height:calc(100dvh - 76px)!important;object-fit:contain!important;margin:auto}
  .proof-lightbox__close{top:0!important;right:0!important;width:44px;height:44px;z-index:3}
  body.lightbox-open{overflow:hidden!important}

  /* Closing CTA: clear mobile flow and intentional crop */
  .portfolio-cta.portfolio-cta-visual{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;max-width:none!important;gap:28px!important;padding-left:var(--pad)!important;padding-right:var(--pad)!important;overflow:hidden}
  .portfolio-cta-visual .portfolio-cta-copy,.portfolio-cta-visual .portfolio-cta-image{grid-column:1!important;grid-row:auto!important;width:100%!important;max-width:100%!important;min-width:0!important;justify-self:stretch!important}
  .portfolio-cta-visual h2,.portfolio-cta-visual h2 span,.portfolio-cta-visual h2 em,.portfolio-cta-visual .portfolio-cta-copy>p{max-width:100%!important;overflow-wrap:anywhere}
  .portfolio-cta-visual .portfolio-cta-image{aspect-ratio:4/3!important}
  .portfolio-cta-image img{object-fit:cover;object-position:56% center}
}


/* RESPONSIVE PHASE 3 — closing photograph only; Desktop >=821px unchanged */
@media (max-width:820px){
  .portfolio-cta.portfolio-cta-visual{overflow:visible!important}
  .portfolio-cta-visual .portfolio-cta-image{box-sizing:border-box;overflow:hidden!important;aspect-ratio:16/10!important;width:100%!important;max-width:100%!important}
  .portfolio-cta-visual .portfolio-cta-image img{display:block;width:100%!important;height:100%!important;max-width:100%!important;object-fit:cover!important;object-position:50% 50%!important}
}

/* RESPONSIVE PHASE 4 — tablet/intermediate consolidation; desktop >=1101 untouched. */
@media (min-width:601px) and (max-width:1050px){
  /* Demonstrators: preserve all three proofs and captions without desktop overlap geometry. */
  .spectrum-composition,.resource-composition{min-height:0!important;margin-top:34px;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 24px;align-items:start}
  .spectrum-composition:before{display:none!important}
  .spectrum-composition .shot{position:relative!important;inset:auto!important;width:100%!important;transform:none!important;margin:0!important;min-width:0}
  .spectrum-composition .shot.dominant{grid-column:1/-1;width:min(72%,680px)!important;justify-self:center}
  .spectrum-composition .shot figcaption{position:static!important;inset:auto!important;display:block!important;visibility:visible!important;opacity:1!important;white-space:normal!important;margin:9px 0 0!important;line-height:1.35}
  .resource-composition .shot.dominant{width:min(54%,480px)!important}

  /* Closing CTA uses the same contained tablet flow as mobile, without cropping copy. */
  .portfolio-cta.portfolio-cta-visual{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;gap:30px!important;padding-left:var(--pad)!important;padding-right:var(--pad)!important;overflow:visible!important}
  .portfolio-cta-visual .portfolio-cta-copy,.portfolio-cta-visual .portfolio-cta-image{grid-column:1!important;grid-row:auto!important;width:100%!important;max-width:100%!important;min-width:0!important}
  .portfolio-cta-visual .portfolio-cta-image{aspect-ratio:16/9!important;overflow:hidden!important}
  .portfolio-cta-visual .portfolio-cta-image img{display:block;width:100%!important;height:100%!important;object-fit:cover!important;object-position:50% 50%!important}
}

/* RESPONSIVE PHASE 5 — final intermediate-only corrections; Desktop >=1101 untouched. */
@media (min-width:821px) and (max-width:1100px){
  /* APFORM: same editorial grammar as mobile — heading/copy before its media. */
  .apf-video-report{display:flex!important;flex-direction:column!important;gap:28px!important}
  .apf-video-report .apf-editorial-caption{order:1;width:100%;max-width:760px}
  .apf-video-report .apf-video-collage{order:2;width:100%}
  .apf-resource{display:flex!important;flex-direction:column!important;gap:28px!important;width:100%!important}
  .apf-resource figcaption{order:1;width:100%;max-width:760px;padding-left:28px!important;position:relative}
  .apf-resource .apf-frame{order:2;width:100%}

  /* Reading copy must not become microtext in the intermediate regime. */
  .projects-detail-page .pd-open-copy,
  .projects-detail-page .pd-context,
  .projects-detail-page .pd-story p,
  .projects-detail-page .demo-bridge p,
  .projects-detail-page .apf-proof figcaption span,
  .projects-detail-page .apf-editorial-caption p,
  .projects-detail-page .editorial-macro figcaption span,
  .projects-detail-page .evidence-asset figcaption span,
  .projects-detail-page .spectrum-intro>p:last-child,
  .projects-detail-page .spectrum-copy>p:not(.spectrum-index):not(.spectrum-path),
  .projects-detail-page .portfolio-cta-visual .portfolio-cta-copy>p{
    font-size:1rem!important;
    line-height:1.55!important;
  }

  /* Remove desktop-height residue between Multi-experts -> spectrum and spectrum -> closing CTA. */
  .projects-detail-page .pd-multi .pd-case-inner{padding-bottom:72px!important}
  .projects-detail-page .portfolio-spectrum{margin-top:0!important;padding-top:42px!important;padding-bottom:36px!important}
  .projects-detail-page .portfolio-spectrum:before{margin-bottom:34px!important}
  .projects-detail-page .spectrum-intro.section{padding-top:0!important;padding-bottom:42px!important}
  .projects-detail-page .spectrum-list.section{padding-top:0!important;padding-bottom:28px!important;margin-top:0!important}
  .projects-detail-page .spectrum-case{padding-top:58px!important;padding-bottom:64px!important}
  .projects-detail-page .spectrum-case:last-child{padding-bottom:24px!important}
  .projects-detail-page .portfolio-cta.portfolio-cta-visual{margin-top:0!important;padding-top:38px!important;margin-bottom:72px!important}
}
