/* V4 — preuve, transmission et cas documentés */
.knowledge-statement{max-width:1050px;margin:0;font-size:clamp(3rem,7vw,7.2rem);font-weight:500;line-height:.87;letter-spacing:-.062em}.knowledge-statement em{color:var(--coral);font-family:"Instrument Serif",Georgia,serif;font-weight:400}.silver-note{display:grid;grid-template-columns:.6fr 1.4fr;gap:4rem;margin-top:4rem;padding-top:2rem;border-top:1px solid var(--line)}.silver-note h3{margin:0;font-size:clamp(1.8rem,3.5vw,3.5rem);font-weight:500;line-height:.95}.silver-note p{max-width:700px;margin:0;font-size:1.1rem}
.work-teasers{border-top:1px solid var(--ink)}.work-teaser{display:grid;grid-template-columns:.12fr .48fr 1.1fr .3fr;gap:2rem;align-items:start;padding:2.2rem 0;border-bottom:1px solid var(--line);text-decoration:none}.work-teaser .number{color:var(--coral);font-size:.72rem}.work-teaser .org{font-weight:650}.work-teaser h3{margin:0;font-size:clamp(1.65rem,3vw,3.1rem);font-weight:500;line-height:1;letter-spacing:-.045em}.work-teaser .fact{text-align:right;color:var(--muted);font-size:.78rem}.work-teaser:hover h3{color:var(--coral)}
.project-case{padding-block:clamp(5rem,10vw,10rem);border-top:1px solid var(--line)}.project-case:nth-child(even){background:#efdfd1}.project-head{display:grid;grid-template-columns:.28fr 1.72fr;gap:4rem;margin-bottom:clamp(3rem,7vw,7rem)}.project-head h2{max-width:1040px;margin:0;font-size:clamp(3rem,7vw,7rem);font-weight:500;line-height:.86;letter-spacing:-.06em}.project-head .org{display:block;margin-bottom:1rem;font-size:.72rem;font-weight:650;letter-spacing:.13em;text-transform:uppercase}.project-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(2.5rem,7vw,8rem)}.project-visual{position:relative;min-height:520px;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(1.5rem,3vw,3rem);overflow:hidden;color:#fff;background:var(--ink)}.project-visual.coral{background:var(--coral)}.project-visual.plum{background:#6f3f76}.project-visual.blue{background:#3151cf}.project-visual.teal{background:#167f70}.project-visual .visual-word{font-size:clamp(3rem,6vw,6.5rem);line-height:.8;letter-spacing:-.065em}.project-visual img{align-self:flex-end;max-width:34%;max-height:120px;object-fit:contain;filter:brightness(0) invert(1)}.project-stat{font-size:clamp(3rem,6.5vw,6.8rem);font-weight:500;line-height:.8;letter-spacing:-.06em}.project-stat small{display:block;margin-top:1rem;font-size:.8rem;font-weight:500;line-height:1.3;letter-spacing:.08em;text-transform:uppercase}.project-copy .lead{margin-top:0;font-size:clamp(1.35rem,2vw,1.8rem);line-height:1.2}.project-copy h3{margin:3rem 0 1rem;font-size:clamp(1.8rem,3vw,3rem);font-weight:500;line-height:1}.project-copy p{max-width:780px}.project-sections{display:grid;grid-template-columns:repeat(2,1fr);gap:2.5rem;margin-top:3rem}.project-sections section{padding-top:1rem;border-top:1px solid var(--line)}.project-sections h3{margin:0 0 1rem;font-size:1.15rem}.project-sections ul{margin:0;padding-left:1.1rem;color:var(--muted)}.disciplines{display:flex;flex-wrap:wrap;gap:.45rem 1.2rem;margin-top:3rem;padding-top:1.2rem;border-top:1px solid var(--line);font-size:.75rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.disciplines span::before{content:"— ";color:var(--coral)}
.project-head .parent-org{display:block;margin-top:.35rem;color:var(--muted);font-size:.9rem}.project-logo-zone{min-height:190px;display:flex;align-items:center;justify-content:center;margin-top:clamp(2rem,5vw,4rem);padding:1.5rem 1.75rem;background:#fff}.project-visual .project-logo-zone img{align-self:auto;width:auto;height:auto;max-width:100%;max-height:150px;object-fit:contain;object-position:center;filter:none}.project-visual .project-logo-zone .project-logo--cyber-safe{width:94%;max-width:390px}.project-visual .project-logo-zone .project-logo--ecole-club{width:auto;height:140px;max-height:140px}.project-visual .project-logo-zone .project-logo--salon-metiers{width:96%;max-width:430px}
.evidence-list{border-top:1px solid var(--line)}.evidence-item{display:grid;grid-template-columns:.4fr 1.6fr;gap:3rem;padding:2rem 0;border-bottom:1px solid var(--line)}.evidence-item h3{margin:0;font-size:clamp(1.4rem,2.5vw,2.5rem);font-weight:500;line-height:1}.evidence-item p{margin:0;color:var(--muted)}.evidence-item ul{margin:.8rem 0 0;padding-left:1.1rem;color:var(--muted)}
@media(max-width:900px){.silver-note,.project-head,.project-layout{grid-template-columns:1fr}.work-teaser{grid-template-columns:.14fr 1fr}.work-teaser h3{grid-column:2}.work-teaser .fact{grid-column:2;text-align:left}.project-visual{min-height:380px}.project-sections{grid-template-columns:1fr}.evidence-item{grid-template-columns:1fr}}
@media(max-width:560px){.page-hero h1{font-size:clamp(3rem,13vw,4rem)}.work-teaser{grid-template-columns:1fr}.work-teaser h3,.work-teaser .fact{grid-column:auto}.project-visual{min-height:310px}.project-logo-zone{min-height:160px;padding:1.25rem}.project-visual .project-logo-zone .project-logo--ecole-club{height:122px;max-height:122px}}
.portrait-stage.v3{background:transparent}.portrait-stage.v3::after{display:none}.portrait-stage.v3 img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 50%;transform:none;filter:none}
/* V4.2 — coherence + robust title wrapping + complete client logos */
.project-head>*,.project-layout>*,.work-teaser>*,.expertise-v3 article>*,.section-head>*{min-width:0}
.project-head h2,.work-teaser h3,.expertise-v3 h3,.featured-case-copy h3,.project-visual .visual-word,.page-hero h1,.section-head h2,.editorial-intro h2,.cta h2,.about-copy h2{max-width:100%;text-wrap:balance;overflow-wrap:break-word;hyphens:auto}
.project-head h2{font-size:clamp(2.75rem,5.7vw,5.9rem);line-height:.89}
.project-visual .visual-word{max-width:100%;font-size:clamp(2.55rem,3.9vw,4.15rem);line-height:.84}
.work-teaser h3{font-size:clamp(1.55rem,2.65vw,2.85rem);line-height:1.02}
.project-visual--with-logo{min-height:640px}
.project-logo-zone--compact{min-height:128px;margin-top:1.5rem;padding:1rem 1.25rem}
.project-visual .project-logo-zone .project-logo--sicpa{width:min(86%,300px);max-height:105px}
.project-visual .project-logo-zone .project-logo--galerie{width:auto;height:150px;max-width:88%;max-height:150px}
@media(max-width:1080px) and (min-width:901px){.project-head{grid-template-columns:.36fr 1.64fr;gap:2.5rem}.project-head h2{font-size:clamp(2.7rem,5.2vw,4.2rem)}.project-visual .visual-word{font-size:clamp(2.35rem,3.6vw,3.25rem)}}
@media(max-width:900px){.project-head h2{font-size:clamp(2.8rem,8vw,5rem)}.project-visual--with-logo{min-height:560px}}
@media(max-width:560px){.project-head h2{font-size:clamp(2.35rem,11vw,3.55rem)}.project-visual .visual-word{font-size:clamp(2.35rem,11vw,3.55rem)}.project-visual--with-logo{min-height:480px}.project-logo-zone--compact{min-height:110px}.project-visual .project-logo-zone .project-logo--galerie{height:126px;max-height:126px}}
html[lang="en"] .hero-v3 .moments{margin-left:6vw}
@media(min-width:901px){html[lang="en"] .hero-v3 h1{font-size:clamp(3.8rem,8.6vw,8.6rem)}}
@media(max-width:900px){html[lang="en"] .hero-v3 .moments{margin-left:0}}
@media(max-width:560px){html[lang="en"] .thread-title{font-size:clamp(3.1rem,13vw,4.2rem);line-height:.72}}

/* Expertise identity — shared iconography and chromatic hierarchy */
.expertise-v3 .expertise-card{align-items:start}
.expertise-title{display:grid;grid-template-columns:clamp(3rem,4.5vw,4.5rem) minmax(0,1fr);gap:clamp(1rem,2vw,1.75rem);align-items:start;min-width:0}
.expertise-icon{width:100%;height:auto;aspect-ratio:1;object-fit:contain;transform:translateY(.12em);transition:transform .24s ease,filter .24s ease}
.expertise-title h3{min-width:0;overflow-wrap:normal;hyphens:none}
.expertise-accent{color:var(--expertise-color)}
.expertise--brand{--expertise-color:var(--coral)}
.expertise--communication{--expertise-color:var(--plum)}
.expertise--experience{--expertise-color:var(--teal)}
.expertise--transmission{--expertise-color:var(--ink)}
.expertise-transfer{position:relative;display:inline-block;padding-bottom:.12em}
.expertise-transfer::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--coral) 0 33.333%,var(--plum) 33.333% 66.666%,var(--teal) 66.666% 100%);transform-origin:left;transition:transform .24s ease}
.expertise-card:hover .expertise-icon{filter:saturate(1.16);transform:translate(.08rem,-.04rem)}
.expertise-card:hover .expertise-transfer::after{transform:scaleX(1.035)}
.expertise-hero-icon{width:clamp(3.6rem,6vw,6.25rem);margin:0 0 clamp(1.25rem,2vw,2rem)}
.expertise-hero-icon img{display:block;width:100%;height:auto;aspect-ratio:1}
.page-hero--expertise h1{overflow-wrap:normal;hyphens:none}
.page-hero--expertise h1 .expertise-accent{color:var(--expertise-color)}
.page-hero--brand{--expertise-color:var(--coral)}
.page-hero--communication{--expertise-color:var(--plum)}
.page-hero--experience{--expertise-color:var(--teal)}
.page-hero--transmission{--expertise-color:var(--ink)}
.page-hero--transmission .expertise-transfer::after{height:3px}
@media(max-width:900px){.expertise-title{grid-template-columns:3.75rem minmax(0,1fr)}.expertise-v3 .expertise-card>div:last-child{grid-column:2}.expertise-hero-icon{width:4.5rem}}
@media(max-width:560px){.expertise-title{grid-template-columns:3.25rem minmax(0,1fr);gap:1rem}.expertise-v3 .expertise-card>div:last-child{grid-column:auto}.expertise-v3 h3{font-size:clamp(2rem,10.7vw,3.25rem)}.page-hero--expertise h1{font-size:clamp(3.2rem,15.5vw,5.2rem);overflow-wrap:normal;word-break:normal}.page-hero--communication h1{font-size:clamp(3rem,13.5vw,4.8rem)}.expertise-hero-icon{width:3.75rem;margin-bottom:1rem}}
@media(prefers-reduced-motion:reduce){.expertise-icon,.expertise-transfer::after{transition:none}.expertise-card:hover .expertise-icon{transform:translateY(.12em)}}

/* Artwork accompanies the introduction without cropping the supplied images. */
.expertise-introduction{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2.5rem,6vw,6rem);align-items:start}
.expertise-artwork{margin:2rem 0 0;max-width:480px}
.expertise-artwork img{display:block;width:100%;height:auto;aspect-ratio:3/4}
.expertise-artwork{position:relative;overflow:hidden;isolation:isolate}
.expertise-artwork .artwork-colour,.expertise-artwork .artwork-monochrome,.expertise-artwork .artwork-highlight{display:none}
/* 2.5s colour sweep, 3s colour, 2.5s monochrome sweep, 2s rest. */
@keyframes artwork-colour-sweep{
  0%{mask-position:0 100%;-webkit-mask-position:0 100%}
  25%,100%{mask-position:0 0;-webkit-mask-position:0 0}
}
@keyframes artwork-monochrome-sweep{
  0%,55%{mask-position:0 0;-webkit-mask-position:0 0}
  80%,100%{mask-position:0 100%;-webkit-mask-position:0 100%}
}
@media(prefers-reduced-motion:no-preference){
  @supports ((mask-image:linear-gradient(black,transparent)) or (-webkit-mask-image:linear-gradient(black,transparent))){
    .expertise-artwork.artwork-animated>img:first-child{filter:grayscale(1)}
    .expertise-artwork.artwork-animated .artwork-colour,
    .expertise-artwork.artwork-animated .artwork-monochrome,
    .expertise-artwork.artwork-animated .artwork-highlight{
      display:block;position:absolute;inset:0;width:100%;height:100%;pointer-events:none;
      mask-image:linear-gradient(to bottom,#000 40%,transparent 60%);
      -webkit-mask-image:linear-gradient(to bottom,#000 40%,transparent 60%);
      mask-size:100% 250%;-webkit-mask-size:100% 250%;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;
      animation:artwork-colour-sweep 10s ease-in-out infinite;animation-play-state:paused;
    }
    .expertise-artwork.artwork-animated .artwork-monochrome{
      filter:grayscale(1);animation-name:artwork-monochrome-sweep;
      mask-image:linear-gradient(to top,#000 40%,transparent 60%);
      -webkit-mask-image:linear-gradient(to top,#000 40%,transparent 60%);
    }
    /* Brighten the original coloured pixels, rather than adding a white stripe. */
    .expertise-artwork.artwork-animated .artwork-highlight{
      filter:brightness(1.65) saturate(1.15);
      mask-image:linear-gradient(to bottom,transparent 42%,rgba(0,0,0,.3) 46%,#000 50%,rgba(0,0,0,.3) 54%,transparent 58%);
      -webkit-mask-image:linear-gradient(to bottom,transparent 42%,rgba(0,0,0,.3) 46%,#000 50%,rgba(0,0,0,.3) 54%,transparent 58%);
    }
    .expertise-artwork.artwork-animated .artwork-highlight--return{animation-name:artwork-monochrome-sweep}
    .expertise-artwork.artwork-playing .artwork-colour,
    .expertise-artwork.artwork-playing .artwork-monochrome,
    .expertise-artwork.artwork-playing .artwork-highlight{animation-play-state:running}
  }
}
.expertise-introduction>.prose h2:first-child{margin-top:0}
@media(max-width:900px){.expertise-introduction{grid-template-columns:1fr}.expertise-artwork{width:min(100%,360px)}}

/* Expertise rows — desktop balance */
@media(min-width:901px){
  .expertise-v3 .expertise-card{grid-template-columns:minmax(40px,.12fr) minmax(0,1.05fr) minmax(300px,.83fr);gap:clamp(1.5rem,2vw,2.5rem)}
  .expertise-title{grid-template-columns:clamp(2.875rem,3.35vw,3.75rem) minmax(0,1fr);gap:clamp(1rem,1.5vw,1.5rem)}
  .expertise-v3 h3{font-size:clamp(2.2rem,3.35vw,4rem);overflow-wrap:normal;word-break:normal;hyphens:none}
}

/* Persistent navigation, with room for anchor targets and short mobile screens. */
@media(max-width:560px){
  .expertise-title{grid-template-columns:2.5rem minmax(0,1fr);gap:.75rem}
  .expertise-v3 h3{font-size:clamp(1.8rem,9.4vw,3.25rem)}
  .page-hero--communication h1{font-size:clamp(2.3rem,11.7vw,4.1rem)}
}
@media(max-width:360px){html[lang="en"] .hero-v3 h1{font-size:clamp(2.8rem,15.5vw,3.5rem)}}
html{scroll-padding-top:124px}
.site-header{position:fixed;background:var(--ivory);border-bottom:1px solid var(--line)}
/* Two seconds for one turn, then six seconds at rest. SVG artwork stays intact. */
@keyframes singleclic-logo-turn{
  0%{transform:rotate(0deg)}
  25%,100%{transform:rotate(-360deg)}
}
@media(prefers-reduced-motion:no-preference){
  .site-header .brand img,.cta-logo{transform-origin:center;animation:singleclic-logo-turn 8s ease-in-out infinite}
  .button--logo .cta-logo{animation-name:singleclic-cta-logo-turn}
}
@keyframes singleclic-cta-logo-turn{
  0%{transform:rotate(0deg)}
  25%,100%{transform:rotate(360deg)}
}
.section-signature{background:var(--ivory)}
.button--logo{justify-content:flex-start;gap:1.25rem;max-width:100%;justify-self:start}
.button--logo::after{content:none}
.cta-logo{display:block;width:44px;height:46px;object-fit:contain;flex:none}
@media(max-width:900px){
  html{scroll-padding-top:98px}
  .main-nav{max-height:calc(100vh - 98px);max-height:calc(100dvh - 98px);overflow-y:auto;overscroll-behavior:contain}
}
