:root{--black:#0b0b0b;--white:#fdfaf0;--soft:#f1f1ef;--grey:#666;--ink:#111;--serif:Baskerville,"Iowan Old Style","Times New Roman",serif;--sans:"Helvetica Neue",Helvetica,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5}img{display:block;width:100%}a{color:inherit}.skip{position:absolute;left:-9999px;top:0;background:#fff;color:#000;padding:12px;z-index:100}.skip:focus{left:12px}.topbar{position:fixed;inset:0 0 auto 0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:13px 34px;color:#111;background:rgba(255,255,255,.94);border-bottom:1px solid rgba(0,0,0,.12);backdrop-filter:blur(8px)}.wordmark{display:block;width:72px;height:48px;overflow:hidden}.wordmark img{width:72px;height:auto;transform:translateY(-2px)}.topbar nav{display:flex;gap:28px}.topbar nav a{text-decoration:none;font-size:12px;text-transform:uppercase;letter-spacing:.12em}.menu-toggle{display:none;background:transparent;border:0;color:inherit;text-transform:uppercase;letter-spacing:.12em;font-size:12px}.hero{min-height:100vh;position:relative;display:grid;grid-template-columns:56% 44%;overflow:hidden;background:#fff;color:#111}.hero-image{grid-column:2;grid-row:1;background:url('assets/orchestre.png') center/cover;filter:grayscale(1) contrast(1.08)}.hero-content{grid-column:1;grid-row:1;position:relative;z-index:1;width:100%;padding:140px 5vw 7vh;display:flex;flex-direction:column;justify-content:flex-end}.eyebrow,.section-label{font-size:11px;text-transform:uppercase;letter-spacing:.17em;margin:0 0 42px}.hero h1,.section-head h2,.services h2,.closing h2{font-family:var(--serif);font-weight:400;letter-spacing:-.045em;line-height:.88;margin:0}.hero h1{font-size:clamp(58px,7.5vw,118px);max-width:900px}.hero-bottom{display:block;margin-top:60px;border-top:1px solid rgba(0,0,0,.25);padding-top:22px}.hero-bottom p{max-width:500px;font-size:17px;margin:0 0 28px}.text-link{text-decoration:none;text-transform:uppercase;letter-spacing:.1em;font-size:11px}.text-link span{font-size:18px;margin-left:14px}.index{position:absolute;right:34px;top:100px;font-size:11px;letter-spacing:.15em;color:#fff}.light-section{background:var(--white);color:var(--ink)}.soft-section{background:var(--soft);color:var(--ink)}.dark-section{background:var(--black);color:var(--white)}.manifesto{padding:130px 7vw;border-top:1px solid #ddd}.manifesto blockquote{font-family:var(--serif);font-size:clamp(38px,5.5vw,82px);line-height:1.03;letter-spacing:-.035em;margin:0;max-width:1400px}.manifesto blockquote em{font-weight:400}.manifesto-note{display:grid;grid-template-columns:1fr 2fr;gap:40px;margin:90px 0 0 33%;padding-top:18px;border-top:1px solid #aaa}.manifesto-note span{font-size:11px;text-transform:uppercase;letter-spacing:.14em}.manifesto-note p{margin:0;max-width:480px}.projects{padding:130px 6vw}.section-head{display:grid;grid-template-columns:1fr 2fr;align-items:end;margin-bottom:100px}.section-head .section-label{align-self:start}.section-head h2,.services h2{font-size:clamp(52px,7.3vw,110px)}.project{display:grid;grid-template-columns:1.18fr .82fr;gap:7vw;align-items:center;padding:90px 0;border-top:1px solid rgba(0,0,0,.22)}.project figure{margin:0;overflow:hidden}.project figure img{aspect-ratio:4/3;object-fit:cover;filter:grayscale(1) contrast(1.08);transition:transform .8s ease}.project:hover figure img{transform:scale(1.02)}.project-reverse figure{order:2}.project-reverse .project-copy{order:1}.project-number,.project-card>p{font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:#666}.project-copy h3,.project-card h3{font-family:var(--serif);font-weight:400;letter-spacing:-.025em;line-height:1;margin:26px 0}.project-copy h3{font-size:clamp(42px,5vw,74px)}.lead{font-size:18px;max-width:570px}.project dl{margin-top:45px}.project dl div{display:grid;grid-template-columns:120px 1fr;padding:14px 0;border-top:1px solid rgba(0,0,0,.18)}dt{text-transform:uppercase;letter-spacing:.1em;font-size:10px;color:#666}dd{margin:0;font-size:14px}.project-facts{list-style:none;padding:0;margin:52px 0 0;display:flex;gap:42px}.project-facts strong{font-family:var(--serif);font-size:44px;font-weight:400;display:block}.project-facts span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#666}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding-top:70px;border-top:1px solid rgba(0,0,0,.22)}.project-card img{aspect-ratio:4/5;object-fit:cover;filter:grayscale(1) contrast(1.08);margin-bottom:26px}.project-card h3{font-size:32px}.project-card>span{color:#555;font-size:14px}.method{padding:130px 7vw;border-top:1px solid #ddd}.method-list{list-style:none;padding:0;margin:0 0 0 33%;border-top:1px solid #888}.method-list li{display:grid;grid-template-columns:80px 1fr;padding:34px 0;border-bottom:1px solid #aaa}.method-list li>span{font-size:11px}.method-list h3{font-family:var(--serif);font-size:44px;font-weight:400;margin:0 0 8px}.method-list p{margin:0;max-width:630px}.services{padding:130px 7vw}.services>h2{max-width:1000px}.service-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:110px}.service-columns>div{border-top:1px solid rgba(0,0,0,.22);padding-top:18px}.service-columns>div>p{font-size:10px;letter-spacing:.15em;color:#666}.service-columns h3{font-family:var(--serif);font-size:34px;font-weight:400;margin:38px 0}.service-columns ul{list-style:none;padding:0;margin:0}.service-columns li{padding:10px 0;border-top:1px solid rgba(0,0,0,.18);color:#333}.profile{padding:130px 7vw;display:grid;grid-template-columns:.8fr 1.2fr;gap:10vw;align-items:start}.portrait-wrap{position:sticky;top:100px}.portrait-wrap img{aspect-ratio:4/5;object-fit:cover;object-position:center top;filter:grayscale(1) contrast(1.04)}.profile-copy h2{font-family:var(--serif);font-size:clamp(58px,7vw,104px);font-weight:400;letter-spacing:-.04em;line-height:.9;margin:0 0 50px}.profile-intro{font-family:var(--serif);font-size:32px;line-height:1.15}.profile-copy>p:not(.section-label,.profile-intro){max-width:650px}.references{margin-top:70px;border-top:1px solid #aaa;display:grid;grid-template-columns:repeat(2,1fr)}.references p{padding:13px 0;margin:0;border-bottom:1px solid #ccc;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.closing{min-height:78vh;padding:130px 7vw 50px;display:flex;flex-direction:column}.closing h2{font-size:clamp(62px,9vw,138px);max-width:1300px}.contact-row{display:flex;gap:40px;margin-top:80px;padding-top:20px;border-top:1px solid rgba(255,255,255,.24)}.contact-row a{text-decoration:none}.closing-logo{margin:auto auto 40px;width:130px;height:auto}.copyright{text-align:right;font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#888;margin:0}.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s ease}.reveal.visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.project figure img{transition:none}}
@media(max-width:780px){.topbar{padding:10px 20px}.menu-toggle{display:block}.topbar nav{position:absolute;right:20px;top:62px;display:none;flex-direction:column;background:#fff;color:#000;padding:24px;gap:18px;min-width:190px}.topbar nav.open{display:flex}.hero{display:flex;min-height:auto;padding-top:69px;flex-direction:column}.hero-image{width:100%;height:46vh;min-height:340px;order:1}.hero-content{padding:60px 22px 64px;order:2}.hero h1{font-size:clamp(48px,15vw,78px)}.hero-bottom{display:block;margin-top:45px}.hero-bottom p{font-size:15px;margin-bottom:28px}.index{display:none}.manifesto,.projects,.method,.services,.profile,.closing{padding:90px 22px}.manifesto blockquote{font-size:38px}.manifesto-note{grid-template-columns:1fr;margin:60px 0 0;gap:18px}.section-head{grid-template-columns:1fr;margin-bottom:55px}.section-head h2,.services h2{font-size:54px}.project,.profile{grid-template-columns:1fr;gap:35px;padding:55px 0}.project-reverse figure,.project-reverse .project-copy{order:initial}.project-grid,.service-columns{grid-template-columns:1fr;gap:70px}.project-facts{gap:20px;flex-wrap:wrap}.method-list{margin:0}.method-list li{grid-template-columns:50px 1fr}.method-list h3{font-size:34px}.service-columns{margin-top:70px}.portrait-wrap{position:static}.references{grid-template-columns:1fr}.contact-row{flex-direction:column;gap:16px}.closing{min-height:100vh}.closing h2{font-size:54px}.closing-logo{margin-top:auto}}

/* Logo original carré : proportions conservées, sans recadrage. */
.nav-brand{font-family:var(--serif);font-size:20px;line-height:1;text-decoration:none;letter-spacing:-.02em}
.hero-logo{position:absolute;top:100px;left:5vw;width:clamp(150px,13vw,210px);height:auto;aspect-ratio:1;object-fit:contain}
.closing-logo{width:170px;height:auto;aspect-ratio:1;object-fit:contain}
@media(max-width:780px){.hero-content{padding-top:54px}.hero-logo{position:static;width:160px;margin:0 0 48px}}

/* Fond de marque repris exactement depuis le logo original. */
:root{--white:#fdfaf0}
body,.hero,.light-section{background:#fdfaf0}
.topbar{background:rgba(253,250,240,.96)}
.skip{background:#fdfaf0}
@media(max-width:780px){.topbar nav{background:#fdfaf0}}

/* Composition éditoriale sans images génériques présentées comme des réalisations. */
.hero-image{display:flex;align-items:flex-end;padding:0 3.5vw 7vh;background:#0b0b0b}
.hero-image span{font-family:var(--serif);font-size:clamp(42px,5vw,78px);font-weight:400;line-height:.9;letter-spacing:-.045em;color:#fdfaf0}
.hero-content{justify-content:flex-start;padding-top:105px}
.hero-logo{position:static;width:180px;margin:0 0 auto}
.project-visual{min-height:520px;display:flex;align-items:flex-end;padding:42px;background:#0b0b0b;color:#fdfaf0}
.project-visual span{font-family:var(--serif);font-size:clamp(42px,5vw,76px);line-height:.9;letter-spacing:-.04em}
.project-card{padding-top:30px;border-top:1px solid rgba(0,0,0,.35)}
@media(max-width:780px){.hero-image{padding:42px 22px;align-items:flex-end}.hero-image span{font-size:52px}.hero-content{padding-top:54px}.hero-logo{width:160px;margin:0 0 56px}.project-visual{min-height:360px;padding:28px}.project-featured .project-visual,.project-reverse .project-visual{order:initial}}

/* Grille recalée et photographies reprises de la présentation originale. */
.hero{grid-template-columns:52% 48%}
.hero-image{display:block;padding:0;background:url('assets/congres-original.png') center/cover no-repeat;filter:grayscale(1) contrast(1.04)}
.hero-content{display:grid;grid-template-rows:auto minmax(40px,1fr) auto auto auto;align-content:stretch;justify-content:stretch;padding:105px 5vw 7vh}
.hero-logo{grid-row:1;position:static;width:165px;margin:0}
.hero-content>.eyebrow{grid-row:3;margin:0 0 28px}
.hero-content>h1{grid-row:4}
.hero-bottom{grid-row:5;margin-top:42px}
.project{grid-template-columns:minmax(0,1fr) minmax(360px,.78fr);gap:6vw}
.project figure{width:100%}
.project figure img{width:100%;height:100%;min-height:440px;aspect-ratio:4/3;object-fit:cover}
.project-reverse figure{order:2}.project-reverse .project-copy{order:1}
.project-grid{align-items:start}
.project-card{padding-top:0;border-top:0}
.project-card img{width:100%;aspect-ratio:4/3;object-fit:cover;margin:0 0 28px}
.profile{grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);align-items:start}
.profile-copy{max-width:760px}
@media(max-width:780px){.hero{display:flex}.hero-image{min-height:360px;padding:0}.hero-content{display:flex;padding:52px 22px 64px}.hero-logo{width:150px;margin:0 0 54px}.project{grid-template-columns:1fr}.project figure,.project-reverse figure{order:initial}.project-copy,.project-reverse .project-copy{order:initial}.project figure img{min-height:0}.project-card img{aspect-ratio:4/3}.profile{grid-template-columns:1fr}}

/* Direction La Mode en Images × Random Studio : photographie, rythme et alignements nets. */
.hero{display:block;min-height:92vh;background:#111;color:#fdfaf0}
.hero-image{position:absolute;inset:0;background:url('assets/concert-original.png') center/cover no-repeat;filter:grayscale(1) contrast(1.02)}
.hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08) 35%,rgba(0,0,0,.72) 100%)}
.hero-content{position:absolute;left:0;right:0;bottom:0;display:block;width:auto;padding:0 max(6vw,40px) 7vh;color:#fdfaf0}
.hero-content>.eyebrow{margin:0 0 24px;max-width:820px}
.hero h1{max-width:1050px;font-size:clamp(56px,7vw,108px);line-height:.92}
.brand-intro{max-width:1440px;margin:0 auto;padding:90px 6vw 120px;display:grid;grid-template-columns:260px minmax(0,1fr);gap:10vw;align-items:start;background:#fdfaf0}
.brand-intro-logo{width:240px;height:240px;object-fit:contain}
.brand-intro>div{max-width:760px}
.brand-intro p{font-family:var(--serif);font-size:clamp(30px,3.4vw,54px);line-height:1.08;letter-spacing:-.025em;margin:0 0 38px}
.projects,.method,.services,.profile,.manifesto{max-width:1600px;margin-left:auto;margin-right:auto}
.section-head{grid-template-columns:minmax(180px,.65fr) minmax(0,2fr);gap:6vw}
.project{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:6vw;align-items:center}
.project-reverse{grid-template-columns:minmax(360px,.85fr) minmax(0,1.15fr)}
.project figure img{min-height:0;aspect-ratio:16/10}
.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:70px 30px}
.project-card img{aspect-ratio:16/10}
.project-card:nth-child(4){padding:40px;border:1px solid rgba(0,0,0,.22);align-self:stretch}
.profile-copy p{max-width:700px}
@media(max-width:780px){.hero{min-height:78vh;padding:0}.hero-image{height:auto;min-height:0}.hero-content{position:absolute;display:block;padding:0 22px 52px}.hero h1{font-size:clamp(46px,14vw,68px)}.brand-intro{padding:60px 22px 80px;grid-template-columns:1fr;gap:38px}.brand-intro-logo{width:170px;height:170px}.brand-intro p{font-size:34px}.section-head{grid-template-columns:1fr}.project,.project-reverse{grid-template-columns:1fr}.project-grid{grid-template-columns:1fr;gap:60px}}

/* Version corporate : visuels fournis, hiérarchie éditoriale plus équilibrée. */
.hero-image{background:url('assets/corporate-batimat.jpg') center 45%/cover no-repeat;filter:none}
.hero-image:after{background:linear-gradient(180deg,rgba(0,0,0,.12) 20%,rgba(0,0,0,.8) 100%)}
.hero h1{max-width:1120px;font-size:clamp(48px,5.9vw,88px);line-height:.98;letter-spacing:-.035em}
.section-head h2,.services h2{font-size:clamp(44px,5.6vw,82px);line-height:.98}
.project-copy h3{font-size:clamp(36px,4vw,60px);line-height:1.04}
.project-card h3{font-size:clamp(28px,2.6vw,40px);line-height:1.08}
.project-facts strong{font-size:36px}
.project-card:nth-child(4){padding:0;border:0}
.project-card-wide{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);grid-template-rows:auto auto 1fr;column-gap:44px;align-items:start;border-top:1px solid rgba(0,0,0,.22);padding-top:70px}
.project-card-wide>img,.project-card-wide>figure{grid-column:1;grid-row:1/5;margin:0}
.project-card-wide>p,.project-card-wide>h3,.project-card-wide>span{grid-column:2}
.project-card-wide>p{margin-top:0}
@media(max-width:780px){.hero h1{font-size:clamp(42px,12vw,60px)}.brand-intro p{font-size:32px}.project-card-wide{grid-column:auto;display:block;padding-top:0;border-top:0}.project-card-wide img{margin-bottom:28px}.section-head h2,.services h2{font-size:46px}.project-copy h3{font-size:38px}}

/* L'écru du logo remplace le blanc pur sur l'ensemble de la composition. */
:root{--white:#fdfaf0}
.skip,.topbar,.topbar nav{background:#fdfaf0}
.hero,.dark-section{color:#fdfaf0}
.index{color:#fdfaf0}
.contact-row{border-top-color:rgba(253,250,240,.3)}
.brand-intro-logo,.closing-logo{background:#fdfaf0}
.references{display:block}
.reference-group{padding:24px 0;border-bottom:1px solid #ccc}
.reference-group h3{margin:0 0 18px;font-size:11px;font-family:var(--sans);font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:#666}
.reference-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:30px}
.reference-list p{padding:11px 0;margin:0;border-top:1px solid #ddd;font-size:12px;text-transform:uppercase;letter-spacing:.08em}
@media(max-width:780px){.reference-list{grid-template-columns:1fr}}

/* Plan et hiérarchie unifiés. Deux familles typographiques seulement. */
.nav-brand{font-family:var(--sans);font-size:27px;font-weight:500;letter-spacing:-.035em}
.hero,.dark-section,.hero h1,.closing h2,.closing a,.closing .section-label{color:#fdfaf0}
.hero h1,.section-head h2,.project-copy h3,.project-card h3,.method-list h3,.profile-copy h2,.closing h2,.brand-intro p,.manifesto blockquote{font-family:var(--serif)}
.eyebrow,.section-label,.project-number,.project-card>p,.lead,.project-card>span,.method-list p,.profile-copy p,.contact-row{font-family:var(--sans)}
.project-anniversary figure img{filter:none}
.project-card-wide img{aspect-ratio:4/3;object-position:center 48%;filter:none}
.project-card img{filter:none}
.method-list li{grid-template-columns:1fr}
.method-list li>span{display:none}
.method-list h3{font-size:38px}
.method-list p{font-size:17px;line-height:1.55}
.project-number,.project-card>p{letter-spacing:.12em}
.project-card>span{font-size:16px;line-height:1.55}
.closing-logo{background:#fdfaf0}

/* Rythme photographique et fiches projets structurées selon un plan constant. */
.image-rhythm{max-width:1600px;margin:0 auto;display:grid;grid-template-columns:1.25fr .85fr .85fr;gap:12px;padding:0 6vw 30px;background:#fdfaf0}
.image-rhythm img{width:100%;height:340px;object-fit:cover}
.image-rhythm img:nth-child(2){object-position:center 45%}
.image-rhythm img:nth-child(3){object-position:center 28%}
.project dl,.card-details{margin:36px 0 0}
.project dl div,.card-details div{display:grid;grid-template-columns:118px 1fr;gap:16px;padding:13px 0;border-top:1px solid rgba(0,0,0,.18)}
.card-details dt,.card-details dd{font-family:var(--sans)}
.card-details dd{font-size:14px;line-height:1.45;color:#444}
.project-card-wide{grid-template-rows:auto auto 1fr}
.project-card-wide>img,.project-card-wide>figure{grid-row:1/6}
.project-card-wide>p,.project-card-wide>h3,.project-card-wide>.card-details{grid-column:2}
.project-card-wide>.card-details{margin-top:12px}
.project-card img[src*="cohesion"]{object-position:center 38%}
.project-card img[src*="festival-marseille"]{object-position:center 68%}
.portrait-wrap img{filter:none;object-position:center top}
.closing{min-height:76vh;padding:0;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);background:#fdfaf0;color:#111}
.closing-copy{padding:120px 6vw 42px;display:flex;flex-direction:column}
.closing h2,.closing a,.closing .section-label{color:#111}
.closing h2{font-size:clamp(54px,7vw,108px);line-height:.94}
.closing-image{width:100%;height:100%;min-height:76vh;object-fit:cover;object-position:center 35%}
.contact-row{border-top-color:rgba(0,0,0,.24);flex-wrap:wrap}
.closing-logo{margin:auto 0 24px;width:125px}
.copyright{text-align:left;color:#666}
@media(max-width:780px){
  .image-rhythm{grid-template-columns:1fr 1fr;padding:0 22px 18px}
  .image-rhythm img{height:220px}.image-rhythm img:first-child{grid-column:1/-1}
  .project dl div,.card-details div{grid-template-columns:92px 1fr}
  .closing{display:block;min-height:0}.closing-copy{padding:90px 22px 50px}.closing-image{min-height:0;height:62vh}
}

/* Conclusion et phrase d’introduction du profil. */
.profile-copy .profile-intro{font-family:var(--serif);font-size:clamp(30px,3.4vw,54px);font-weight:400;letter-spacing:-.025em;line-height:1.08}
.closing-invite{margin:34px 0 0;font-family:var(--serif);font-size:clamp(20px,2vw,28px);line-height:1.25}
.closing .contact-row{margin-top:50px}
@media(max-width:780px){.profile-copy .profile-intro{font-size:34px}.closing-invite{margin-top:26px;font-size:20px}.closing .contact-row{margin-top:38px}}

/* Le bandeau reprend le logo original et non une recomposition typographique. */
.nav-brand{width:78px;height:58px;display:block;overflow:hidden}
.nav-brand img{width:132px;height:132px;max-width:none;object-fit:contain;transform:translate(-59px,-16px)}
.topbar{min-height:74px;padding-top:8px;padding-bottom:8px}
@media(max-width:780px){.nav-brand{width:70px;height:52px}.nav-brand img{width:120px;height:120px;transform:translate(-54px,-15px)}.topbar{min-height:66px}}

/* Logo horizontal composé exclusivement à partir du fichier de marque original. */
.nav-brand{width:214px;height:52px;display:flex;align-items:center;gap:7px;overflow:visible;font-size:0}
.brand-word{display:block;height:42px;background-image:url('assets/logo-faire-savoir-ecru.png');background-repeat:no-repeat;background-size:276px 276px;flex:none}
.brand-faire{width:98px;background-position:-171px -49px}
.brand-savoir{width:132px;background-position:-137px -121px}
.topbar{min-height:76px}
.hero,.hero *,.dark-section,.dark-section *{color:#fdfaf0}
.hero .eyebrow,.hero h1,.hero a,.hero span{color:#fdfaf0}
.skip,.topbar,.topbar nav,body,.light-section{background-color:#fdfaf0}
.dark-section,.dark-section p,.dark-section a,.dark-section h1,.dark-section h2,.dark-section h3{color:#fdfaf0}
.index{color:#fdfaf0}
.contact-row{border-top-color:rgba(253,250,240,.3)}
@media(max-width:780px){
  .nav-brand{width:193px;height:44px;gap:5px}
  .brand-word{height:34px;background-size:224px 224px}
  .brand-faire{width:80px;background-position:-139px -40px}
  .brand-savoir{width:108px;background-position:-111px -98px}
  .topbar{min-height:68px}
}
.closing .contact-row{border-top-color:rgba(0,0,0,.24)}

/* Les compositions en deux colonnes se terminent sur la même ligne visuelle. */
@media(min-width:781px){
  .project{align-items:stretch}
  .project figure{height:100%}
  .project figure img{height:100%;min-height:100%;aspect-ratio:auto;object-fit:cover}
  .profile{align-items:start}
  .portrait-wrap{position:sticky;top:100px;height:auto}
  .portrait-wrap img{width:100%;height:auto;max-height:680px;aspect-ratio:4/5;object-fit:cover;object-position:center top}
}

/* Entrée plus directe dans les références et grands cas présentés à l'horizontale. */
.projects-intro{display:block;margin-bottom:36px}
.projects-intro .section-label{margin-bottom:0}
.project-card-wide{grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);column-gap:56px;align-items:start}
.project-card-wide>figure{position:relative;min-height:0;align-self:stretch;overflow:hidden}
.project-card-wide>figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.project-card-music{margin-top:18px}
@media(max-width:780px){
  .projects-intro{margin-bottom:18px}
  .project-card-music{margin-top:0}
}

/* La méthode associe le parti pris visuel à la rigueur de l'exécution. */
.method-layout{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(0,2fr);gap:6vw;align-items:stretch}
.method-layout .method-list{margin:0}
.method-visual{margin:0;overflow:hidden;min-height:520px}
.method-visual img{width:100%;height:100%;object-fit:cover;object-position:center}

/* Le jeu de mots final reprend le mot-symbole de la marque. */
.closing-brand{display:flex;align-items:center;gap:10px;width:max-content;height:68px;margin:0 0 .12em}
.closing-brand .brand-word{height:63px;background-size:414px 414px}
.closing-brand .brand-faire{width:147px;background-position:-256.5px -73.5px}
.closing-brand .brand-savoir{width:198px;background-position:-205.5px -181.5px}
.closing h2>span:last-child{display:block}
.brand-intro-mark{display:flex;align-items:center;gap:7px;width:max-content;height:52px;margin-top:7px}
.brand-intro-mark .brand-word{height:42px;background-size:276px 276px}
.brand-intro-mark .brand-faire{width:98px;background-position:-171px -49px}
.brand-intro-mark .brand-savoir{width:132px;background-position:-137px -121px}
.closing{min-height:0}
.closing-copy{padding-top:82px;padding-bottom:30px}
.closing-image{height:66vh;min-height:560px;align-self:start}
.closing .copyright{margin-top:auto;padding-top:34px}
@media(max-width:780px){
  .method-layout{grid-template-columns:1fr;gap:34px}
  .method-visual{min-height:0;height:58vh;max-height:520px}
  .closing-brand{height:47px;gap:7px}
  .closing-brand .brand-word{height:44px;background-size:290px 290px}
  .closing-brand .brand-faire{width:103px;background-position:-179.5px -51.5px}
  .closing-brand .brand-savoir{width:139px;background-position:-144px -127px}
  .project-card-wide>figure{min-height:0;aspect-ratio:4/3;margin-bottom:28px}
  .brand-intro-mark{height:44px;margin-top:0}
  .brand-intro-mark .brand-word{height:34px;background-size:224px 224px}
  .brand-intro-mark .brand-faire{width:80px;background-position:-139px -40px}
  .brand-intro-mark .brand-savoir{width:108px;background-position:-111px -98px}
  .closing-image{height:52vh;min-height:380px}
}

/* Rythme final : moins de répétition de marque, moins de blanc, lignes visuelles communes. */
.brand-intro-logo{width:210px;height:210px;object-fit:contain;align-self:start;margin-top:-20px}
.manifesto{padding-top:105px;padding-bottom:78px}
.manifesto-note{margin-top:58px}
.projects{padding-top:88px;padding-bottom:110px}
.project{grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);gap:56px}
.project-reverse{grid-template-columns:minmax(360px,.9fr) minmax(0,1.1fr)}
@media(max-width:780px){
  .brand-intro-logo{width:165px;height:165px;margin-top:0}
  .manifesto{padding-top:82px;padding-bottom:62px}
  .manifesto-note{margin-top:46px}
  .projects{padding-top:70px;padding-bottom:82px}
  .project,.project-reverse{grid-template-columns:1fr;gap:35px}
}

/* La grande référence reprend exactement les deux colonnes des cartes suivantes. */
.project-card-wide{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:30px}
.project-card-wide:first-child>figure img{object-position:center 48%}
@media(max-width:780px){.project-card-wide{display:block}}

/* Dernière passe de densité : les preuves s'enchaînent sans écrans vides. */
.project{padding-top:68px;padding-bottom:68px}
.project-grid{gap:46px 30px;padding-top:48px}
.project-card-wide{padding-top:42px}
.method{padding-top:92px;padding-bottom:92px}
.method .section-head{margin-bottom:68px}
.profile{padding-top:92px;padding-bottom:92px}
.profile-copy h2{font-size:clamp(48px,5.4vw,78px);margin-bottom:38px}
.references{margin-top:48px}
@media(max-width:780px){
  .project{padding-top:48px;padding-bottom:48px}
  .project-grid{gap:48px;padding-top:40px}
  .project-card-wide{padding-top:0}
  .method,.profile{padding-top:72px;padding-bottom:72px}
  .method .section-head{margin-bottom:46px}
  .profile-copy h2{font-size:46px;margin-bottom:30px}
}

/* Après La Caserne, deux références complémentaires retrouvent un rythme en diptyque. */
.project-card-festival,.project-card-music{margin-top:0}
.project-card-festival img,.project-card-music img{aspect-ratio:16/10;object-fit:cover;margin-bottom:28px}
.project-card-festival img{object-position:center 68%}
.project-card-music img{object-position:center}

/* Cadrages dédiés aux petits écrans : chaque sujet reste lisible sans coupe excessive. */
@media(max-width:780px){
  .hero{min-height:76vh}
  .hero-image{background-position:center 42%}
  .brand-intro-logo{display:block;margin:0 auto;width:150px;height:150px}
  .image-rhythm{grid-template-columns:1fr 1fr;gap:8px}
  .image-rhythm img{height:auto;object-fit:cover}
  .image-rhythm img:first-child{grid-column:1/-1;aspect-ratio:16/9;object-position:center}
  .image-rhythm img:nth-child(2),.image-rhythm img:nth-child(3){aspect-ratio:1/1}
  .image-rhythm img:nth-child(2){object-position:center 45%}
  .image-rhythm img:nth-child(3){object-position:center 48%}
  .project figure,.project-card-wide>figure{width:100%;height:auto;aspect-ratio:16/10}
  .project figure img,.project-card-wide>figure img{width:100%;height:100%;object-fit:cover}
  .project-featured figure img{object-position:center 50%}
  .project-reverse figure img{object-position:center}
  .project-anniversary figure img{object-position:center}
  .project-card-wide:first-child>figure img{object-position:center 52%}
  .project-card-festival img,.project-card-music img{width:100%;height:auto;aspect-ratio:16/10}
  .method-visual{width:100%;height:auto;max-height:none;aspect-ratio:4/3}
  .method-visual img{width:100%;height:100%;object-fit:cover;object-position:center}
  .portrait-wrap{max-width:430px;margin:0 auto}
  .portrait-wrap img{width:100%;height:auto;max-height:none;aspect-ratio:4/5;object-fit:cover;object-position:center top}
  .closing-image{width:100%;height:auto;min-height:0;aspect-ratio:4/3;object-fit:cover;object-position:center 32%}
}

/* Hiérarchie typographique définitive : une lecture stable sur ordinateur et mobile. */
:root{--serif:Georgia,"Times New Roman",serif}
body{font-family:var(--sans);font-size:16px;line-height:1.6}
p,dd,.lead,.project-card>span,.method-list p,.profile-copy p,.manifesto-note p,.brand-intro p,.closing-invite{font-family:var(--sans);font-weight:400;letter-spacing:0;text-wrap:pretty}
.hero h1,.manifesto blockquote,.section-head h2,.project-copy h3,.project-card h3,.method-list h3,.profile-copy h2,.closing h2{font-family:var(--serif);font-weight:400;text-wrap:balance}
.brand-intro{align-items:center}
.brand-intro-logo{align-self:center;margin-top:0}
.brand-intro>div{align-self:center}
.brand-intro p{font-size:clamp(21px,2vw,28px);line-height:1.45;margin-bottom:30px}
.hero h1{font-size:clamp(50px,5.8vw,86px);line-height:.98}
.manifesto blockquote{font-size:clamp(42px,4.8vw,72px);line-height:1.06}
.section-head h2,.services h2{font-size:clamp(46px,5vw,72px);line-height:1}
.project-copy h3{font-size:clamp(38px,3.8vw,56px);line-height:1.04}
.project-card h3{font-size:clamp(30px,2.4vw,36px);line-height:1.08}
.method-list h3{font-size:36px;line-height:1.08}
.profile-copy h2{font-size:clamp(50px,5vw,72px);line-height:.98}
.profile-copy .profile-intro{font-family:var(--sans);font-size:22px;line-height:1.45;letter-spacing:0}
.closing h2{font-size:clamp(52px,6vw,88px);line-height:.98}
.closing-prefix{display:block;margin-bottom:.08em}
.brand-intro p,.manifesto-note p,.project-copy .lead,.project-card>span,.method-list p,.profile-copy>p:not(.section-label){text-align:justify;text-align-last:left;text-justify:inter-word;hyphens:auto;-webkit-hyphens:auto}
.project-card>span{display:block}
section[id]{scroll-margin-top:92px}
.section-label{font-size:14px;font-weight:600;line-height:1.3;letter-spacing:.13em}
.topbar nav a{font-size:13px;font-weight:500}
.section-titlebar{width:100%;margin:0 0 58px;padding:0 0 15px;border-bottom:1px solid rgba(17,17,17,.38)}
.section-titlebar .section-label{margin:0;font-family:var(--sans);font-size:14px;font-weight:600;line-height:1.3;letter-spacing:.13em}
.profile>.section-titlebar{grid-column:1/-1}
.profile{row-gap:0}
.method .section-head{grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:4vw}
.method .section-head h2{grid-column:2}
.closing .section-titlebar{margin-bottom:58px}
.lead,.method-list p{font-size:17px;line-height:1.6}
.project-card>span,.manifesto-note p,.profile-copy>p:not(.section-label,.profile-intro){font-size:16px;line-height:1.6}
.card-details dd,.project dd{line-height:1.55}
.closing-invite{font-size:22px;line-height:1.4}

@media(max-width:780px){
  body{font-size:16px;line-height:1.58}
  .brand-intro{align-items:start}
  .brand-intro-logo{align-self:center}
  .brand-intro p{font-size:20px;line-height:1.5}
  .hero h1{font-size:44px;line-height:1}
  .manifesto blockquote{font-size:34px;line-height:1.08}
  .section-head h2,.services h2{font-size:44px;line-height:1.02}
  .project-copy h3{font-size:36px;line-height:1.06}
  .project-card h3{font-size:30px;line-height:1.1}
  .method-list h3{font-size:30px}
  .profile-copy h2{font-size:42px;line-height:1}
  .profile-copy .profile-intro{font-size:20px;line-height:1.5}
  .closing h2{font-size:48px;line-height:1}
  .closing-invite{font-size:20px}
  .section-titlebar{margin-bottom:38px;padding-bottom:12px}
  .method .section-head{grid-template-columns:1fr}
  .method .section-head h2{grid-column:1}
}

/* Titres allégés : même voix éditoriale, sans effet massif. */
.hero h1,.manifesto blockquote,.section-head h2,.project-copy h3,.project-card h3,.method-list h3,.profile-copy h2,.closing h2,.brand-intro p{font-family:var(--serif);font-weight:400;font-style:normal;-webkit-font-smoothing:antialiased}
.brand-intro p{font-size:clamp(22px,2.2vw,30px);line-height:1.38;letter-spacing:-.015em}
.hero h1{font-size:clamp(46px,5.2vw,78px)}
.manifesto blockquote{font-size:clamp(38px,4.2vw,62px)}
.section-head h2,.services h2{font-size:clamp(40px,4.4vw,64px)}
.project-copy h3{font-size:clamp(34px,3.4vw,50px)}
.project-card h3{font-size:clamp(28px,2.1vw,34px)}
.method-list h3{font-size:32px}
.profile-copy h2{font-size:clamp(44px,4.4vw,64px)}
.closing h2{font-size:clamp(46px,5.2vw,76px)}

@media(max-width:780px){
  .brand-intro p{font-size:22px;line-height:1.42}
  .hero h1{font-size:40px}
  .manifesto blockquote{font-size:31px}
  .section-head h2,.services h2{font-size:40px}
  .project-copy h3{font-size:34px}
  .project-card h3{font-size:28px}
  .method-list h3{font-size:28px}
  .profile-copy h2{font-size:38px}
  .closing h2{font-size:42px}
}

/* Composition éditoriale allégée et suppression des répétitions visuelles. */
:root{--serif:Baskerville,"Iowan Old Style","Times New Roman",serif}
html{font-synthesis:none}
.topbar nav a,.section-titlebar .section-label{font-weight:400}
.hero h1,.manifesto blockquote,.section-head h2,.project-copy h3,.project-card h3,.method-list h3,.profile-copy h2,.closing h2,.brand-intro p{font-weight:400}
.hero h1{font-size:clamp(43px,4.8vw,72px)}
.brand-intro p{font-size:clamp(21px,2vw,28px);line-height:1.42}
.manifesto blockquote{font-size:clamp(35px,3.8vw,54px);line-height:1.1}
.section-head h2,.services h2{font-size:clamp(38px,4vw,58px)}
.project-copy h3{font-size:clamp(32px,3vw,40px);white-space:nowrap;margin-top:0}
.project-card h3{font-size:clamp(27px,2vw,30px)}
.method-list h3{font-size:29px}
.profile-copy h2{font-size:clamp(40px,4vw,56px)}
.closing h2{font-size:clamp(43px,4.8vw,68px)}
.projects>.section-titlebar{margin-bottom:0}
.projects>.project:first-of-type{border-top:0}

/* La Caserne : photographie en couleur et texte de même importance. */
.project-caserne{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,4vw,60px);align-items:center}
.project-caserne figure{height:auto;align-self:center}
.project-caserne figure img{display:block;width:100%;height:auto;min-height:0;max-height:390px;aspect-ratio:16/10;object-fit:cover;object-position:center 52%;filter:none}
.project-caserne .project-copy h3{white-space:normal}
.project-caserne dl{margin-top:26px}
.project-caserne dl div{grid-template-columns:105px minmax(0,1fr);gap:12px;padding:13px 0}
.project-caserne dt{font-size:12px}
.project-caserne dd{font-size:16px;line-height:1.5}

@media(max-width:780px){
  .hero h1{font-size:37px}
  .brand-intro p{font-size:21px}
  .manifesto blockquote{font-size:28px}
  .section-head h2,.services h2{font-size:36px}
  .project-copy h3{font-size:31px;white-space:normal}
  .project-card h3{font-size:27px}
  .method-list h3{font-size:27px}
  .profile-copy h2{font-size:36px}
  .closing h2{font-size:39px}
  .project-caserne{grid-template-columns:1fr;gap:28px}
  .project-caserne figure img{max-height:none}
}

/* Largeurs de lecture : pas de retour forcé quand l'espace est disponible. */
.method .section-head h2{white-space:normal;max-width:780px}
.method-list p{max-width:none}
.profile{grid-template-columns:minmax(280px,360px) minmax(0,1fr);column-gap:6vw}
.profile-copy{width:100%;max-width:none}
.profile-copy .profile-intro,.profile-copy>p:not(.profile-intro){max-width:900px}
.portrait-wrap{width:100%;max-width:360px}
.portrait-wrap img{width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;image-rendering:auto}

@media(max-width:780px){
  .method .section-head h2{white-space:normal}
  .profile{grid-template-columns:1fr}
  .portrait-wrap{width:100%;max-width:320px;margin:0 auto}
  .portrait-wrap img{aspect-ratio:auto;object-fit:contain}
}

/* Les textes de méthode et de profil utilisent toute la largeur disponible. */
.method-layout{grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:4vw}
.method-list p,.profile-copy .profile-intro,.profile-copy>p:not(.profile-intro){width:100%;max-width:none;text-align:left;text-align-last:auto;hyphens:none;-webkit-hyphens:none}

@media(max-width:780px){
  .method-layout{grid-template-columns:1fr}
}

/* Aucune césure : les retours à la ligne se font uniquement entre les mots. */
p,dd{hyphens:none;-webkit-hyphens:none;word-break:normal;overflow-wrap:normal}

/* Rythme resserré et règles de lecture prioritaires. */
.no-break{white-space:nowrap}
.brand-intro p,.manifesto-note p,.project-copy .lead,.project-card span,.method-list p,.profile-copy .profile-intro,.profile-copy>p{hyphens:none!important;-webkit-hyphens:none!important;word-break:normal!important;overflow-wrap:normal!important}
.method-list p,.profile-copy .profile-intro,.profile-copy>p{width:100%;max-width:none;text-align:left!important;text-align-last:auto!important;word-spacing:normal!important}
.manifesto,.projects,.method,.profile{padding-top:52px;padding-bottom:32px}
.section-titlebar{margin-bottom:36px}
.project{padding-top:52px;padding-bottom:52px}
.project-grid{padding-top:36px;gap:38px 30px}
.method .section-head{margin-bottom:44px}
.references{margin-top:36px}

@media(max-width:780px){
  .manifesto,.projects,.method,.profile{padding-top:44px;padding-bottom:28px}
  .section-titlebar{margin-bottom:30px}
  .project{padding-top:38px;padding-bottom:38px}
  .project-grid{padding-top:30px;gap:38px}
  .method .section-head{margin-bottom:34px}
  .references{margin-top:32px}
}

/* Références : structure éditoriale marquée, avec seulement deux filets. */
.references{display:block;margin-top:36px;border-top:1px solid rgba(17,17,17,.35)}
.reference-group{padding:24px 0;border:0}
.reference-group+.reference-group{border-top:1px solid rgba(17,17,17,.22)}
.reference-group h3{margin:0 0 18px;font-family:var(--sans);font-size:15px;font-weight:700;line-height:1.3;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.reference-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:34px;row-gap:2px}
.reference-list p{margin:0;padding:7px 0;border:0;font-family:var(--sans);font-size:13px;line-height:1.45;letter-spacing:.055em;text-transform:uppercase}

@media(max-width:780px){
  .reference-list{grid-template-columns:1fr}
  .reference-group{padding:22px 0}
  .reference-group h3{font-size:14px;margin-bottom:13px}
}

/* Logos clients intégrés aux études de cas. */
.client-logo{width:auto;height:auto;object-fit:contain;object-position:left center;margin:18px 0 20px;filter:none}
.client-logo-aema{max-width:180px}
.client-logo-ivory{width:180px;max-width:100%;margin:20px 0 16px}
.client-logo-embrace{width:240px;max-width:100%;padding:12px 14px;background:#111}
.client-logo-mutualite{max-width:154px;margin-bottom:8px}
.client-logo-crop{display:block;width:154px;aspect-ratio:346/245;overflow:hidden;margin:18px 0 20px}
.client-logo-crop .client-logo-mutualite{display:block;width:100%;max-width:none;margin:0}

/* Parcours de coordination, présenté comme un schéma éditorial. */
.coordination{padding:72px 7vw 94px;border-top:1px solid rgba(17,17,17,.2)}
.coordination-intro{display:block;margin-bottom:58px}
.coordination-intro h2{max-width:1350px;margin:0;font-family:var(--serif);font-size:clamp(38px,4.2vw,58px);font-weight:400;line-height:1.08;letter-spacing:-.035em}
.coordination-intro h2 em{font-weight:400}
.coordination-intro p{max-width:780px;margin:24px 0 0;font-size:18px;line-height:1.55}
.coordination-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;margin:0;padding:0;list-style:none}
.coordination-steps article{position:relative;padding:30px 18px 0 0;border-top:1px solid #111}
.coordination-steps .step-marker{position:absolute;top:-5px;left:0;width:9px;height:9px;border-radius:50%;background:#111}
.coordination-steps h3{margin:0 0 14px;font-family:var(--serif);font-size:clamp(27px,2.6vw,38px);font-weight:400;line-height:1.1}
.coordination-steps p{max-width:350px;margin:0;font-size:16px;line-height:1.6;text-align:left}
@media(min-width:781px) and (max-width:1080px){
  .topbar{padding-inline:18px}
  .topbar nav{gap:12px}
  .topbar nav a{font-size:11px;letter-spacing:.07em}
}
@media(max-width:780px){
  .coordination{padding:55px 6vw 70px}
  .coordination-intro{display:block;margin-bottom:54px}
  .coordination-intro h2{font-size:34px;margin-bottom:20px}
  .coordination-intro p{font-size:17px}
  .coordination-steps{grid-template-columns:1fr;gap:36px}
  .coordination-steps article{padding-top:24px}
  .coordination-steps h3{font-size:31px}
}

@media(max-width:780px){
  .client-logo-aema{max-width:160px}
  .client-logo-embrace{width:220px}
  .client-logo-mutualite{max-width:140px}
  .client-logo-crop{width:140px}
}
