[data-prepend]::before {
  content: attr(data-prepend);
}

footer .pSection--sales .salesTitle {
  font-size: clamp(50px, 6vw, 4vw);
}

footer .pSection--sales .salesTitle strong {
  font-size: 57%;
}

.portfolio section.pSection {
  margin-bottom: 0;
}

.portfolio section.pSection a:hover {
  text-decoration: none;
}

.portfolio section.pSection h1.st1 {
  font-size: clamp(50px, 4.5vw, 95px);
  margin-top:0;
}

.portfolio section.pSection h1 strong {
  font-size: clamp(50px, 4.5vw, 95px);
  padding-left: 1em;
}

.download-cta {
  border: solid white 1px;
  border-radius: 5px;
  line-height: 4em;
  text-align: center;
  background-color: rgba(255,255,255,.5);
  color: #A70151;
  transition: background-color 1s;

  a {
    text-decoration: none;
    font-family: "Lyon Display", Times, serif;
    font-size: 2em;
    font-style: italic;
    display: block;
  }

  &:hover {
    background-color: transparent;
  }

  &:hover a {
    color: white;
  }
}

/* Archive statique : Locomotive Scroll ne pose pas toujours is-inview sur les photos -> elles restaient masquees (clip-path ferme). On les ouvre en permanence. */
.ls-cover,.ls-cover.is-inview{clip-path:inset(0) !important;will-change:auto}
.ls-cover .imageRender_cover{transform:scale(1) !important}

/* fleches des boutons : centrees dans le carre (le bouton heritait de la taille de police du titre parent) */
.navButton svg{display:block;margin:5.5px auto}

/* footer : logo a gauche, fleche "haut de page" a droite (maquette) */
.footerLogo{display:block;width:clamp(70px,6vw,110px);height:auto;opacity:.55}
@media (min-width:768px){
  footer .pSection--footer .row--bottom{position:relative}
  footer .pSection--footer .scrollTop{position:absolute;right:5%;bottom:0;left:auto;top:auto;margin:0}
}

/* intro accueil : un volet noir se retire du bas vers le haut et devoile la video (remplace le fondu) */
.introCurtain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;background:#000;pointer-events:none;clip-path:inset(0 0 0 0)}
.introCurtain.is-go{animation:introCurtain 1.1s cubic-bezier(.76,0,.24,1) forwards}
@keyframes introCurtain{from{clip-path:inset(0 0 0 0);visibility:visible}to{clip-path:inset(0 0 100% 0);visibility:hidden}}
@media (prefers-reduced-motion:reduce){.introCurtain{display:none}}

/* titre de section dans la barre du haut : interligne resserre */
.navbar_title{line-height:1.15}

/* intro: plus de pin de 3 ecrans (scroll fluide) */
.home .pSection--intro{height:200vh}

/* logo : animation des barres au survol */
.menuButton rect{transform-box:fill-box;transform-origin:50% 100%}
@media (hover:hover){
.menuButton:hover rect{animation:logoBar 1.7s ease-in-out infinite}
.menuButton:hover rect:nth-child(2),.menuButton:hover rect:nth-child(4),.menuButton:hover rect:nth-child(6),.menuButton:hover rect:nth-child(9),.menuButton:hover rect:nth-child(11){animation-name:logoBarB}
.menuButton:hover rect:nth-child(1){animation-delay:0s}
.menuButton:hover rect:nth-child(2){animation-delay:.04s}
.menuButton:hover rect:nth-child(3){animation-delay:.08s}
.menuButton:hover rect:nth-child(4){animation-delay:.12s}
.menuButton:hover rect:nth-child(5){animation-delay:.16s}
.menuButton:hover rect:nth-child(6){animation-delay:.2s}
.menuButton:hover rect:nth-child(7){animation-delay:.24s}
.menuButton:hover rect:nth-child(8){animation-delay:.28s}
.menuButton:hover rect:nth-child(9){animation-delay:.32s}
.menuButton:hover rect:nth-child(10){animation-delay:.36s}
.menuButton:hover rect:nth-child(11){animation-delay:.4s}
.menuButton:hover rect:nth-child(12){animation-delay:.44s}
}
@keyframes logoBar{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.3)}}
@keyframes logoBarB{0%,100%{transform:scaleY(1)}50%{transform:scaleY(2.2)}}
@media (prefers-reduced-motion:reduce){.menuButton:hover rect{animation:none!important}}

/* volet d'intro : variante couleur pour la page createurs (fond deja noir) */
.introCurtain--alt{background:#A70151}

/* page createurs : bloc de texte complementaire */
.createurs .creatorsMore{margin-top:12vh}
.createurs .creatorsMore .st2{margin-top:0;max-width:none}
.createurs .creatorsMore--2{margin-top:8vh;margin-bottom:4vh}
@media (max-width:767px){.createurs .creatorsMore{margin-top:8vh}.createurs .creatorsMore--2 [class*=col-]+[class*=col-]{margin-top:3vh}}
.createurs .creatorsMore em,.createurs .creator_content em{font-family:"Lyon Display",Times,serif;font-style:italic;font-weight:300;color:#F8B738;font-size:1.18em;line-height:1}
.createurs .creatorsMore .st2 strong{color:#F8B738}
.createurs .creator_content .creator_more{margin-top:1.4em}

/* portraits createurs : legende au survol (prenom nom + lien LinkedIn) */
.createurs .creatorCaption{position:absolute;left:0;right:0;bottom:0;z-index:4;display:flex;flex-direction:row;justify-content:space-between;align-items:flex-end;gap:1em;padding:1.2rem 1.4rem;color:#fff;text-decoration:none;opacity:0;transform:translateY(12px);transition:opacity .45s ease,transform .6s cubic-bezier(.19,1,.22,1)}
.createurs .creatorCaption_name{font-family:"Neue Montreal",Helvetica,sans-serif;font-weight:500;font-size:clamp(18px,1.5vw,28px);line-height:1.1}
.createurs .creatorCaption_name strong{font-family:"Lyon Display",Times,serif;font-style:italic;font-weight:300;color:#fff;font-size:1.12em}
.createurs .creatorCaption_lk{font-family:"Neue Montreal",Helvetica,sans-serif;font-weight:500;font-size:clamp(11px,.8vw,14px);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.7);padding-bottom:2px;white-space:nowrap}
.createurs .creatorCaption_lk i{font-style:normal;display:inline-block;transition:transform .3s ease}
.createurs .creatorCaption:hover .creatorCaption_lk{border-color:#fff}
.createurs .creatorCaption:hover .creatorCaption_lk i{transform:translate(2px,-2px)}
.createurs .creatorPicture:hover .creatorCaption,.createurs .creatorCaption:focus-visible{opacity:1;transform:none}
@media (hover:none){.createurs .creatorCaption{opacity:1;transform:none}}
/* legende Annabelle : texte noir (fond clair) */
.createurs .creatorPicture--1 .creatorCaption,.createurs .creatorPicture--1 .creatorCaption_name strong{color:#000}
.createurs .creatorPicture--1 .creatorCaption_lk{border-color:rgba(0,0,0,.6)}
.createurs .creatorPicture--1 .creatorCaption:hover .creatorCaption_lk{border-color:#000}

/* bouton video (lance l'interview) : icone play/pause + info-bulle au survol */
.createurs .audioButton .icoPause{display:none}
.createurs .audioButton.is-playing .icoPlay{display:none}
.createurs .audioButton.is-playing .icoPause{display:block}
.createurs .audioButton::after{content:"Voir la vidéo";position:absolute;left:calc(100% + 14px);top:50%;transform:translate(-6px,-50%);white-space:nowrap;font-family:"Neue Montreal",Helvetica,sans-serif;font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#fff;opacity:0;pointer-events:none;transition:opacity .3s ease,transform .4s cubic-bezier(.19,1,.22,1)}
.createurs .audioButton.is-playing::after{content:"Mettre en pause"}
@media (hover:hover){.createurs .audioButton:hover::after,.createurs .audioButton:focus-visible::after{opacity:1;transform:translate(0,-50%)}}

/* menu : la fleche noire suit le titre survole */
@media (hover:hover) and (min-width:768px){
.menu_main>ul>li:hover::before{opacity:1;transform:translateX(0)}
.menu_main>ul:hover>li.active:not(:hover){opacity:.3}
.menu_main>ul:hover>li.active:not(:hover)::before{opacity:0;transform:translateX(-50px)}
}

/* bouton fermer du menu : centre en haut, sur toutes les pages */
.menu_close{left:50%;right:auto;transform:translateX(-50%)}

/* image totale : legere rotation des images de droite au scroll */
.imageTotale .pSection_illus .imageRender,.pSection_illus .imageRender{will-change:rotate;transform-origin:50% 50%}
.pSection_illus .imageRender{transition:none}
.pSection--date .st2.extraSt2{margin-top:1.4em}

/* expos : bloc partenaires + commentaires visiteurs */
.pSection--partners{position:relative;min-height:100vh;overflow:hidden;background:#1a0a10}
.pSection--partners .partners_bg{position:absolute;inset:-340px 0;will-change:transform;background-size:cover;background-position:center}
.pSection--partners .partners_panel{position:relative;z-index:2;width:62%;min-height:100vh;background:#F8C2DE;color:#000;padding:14vh 6vw 10vh 15%;display:flex;flex-direction:column;gap:12vh;box-sizing:border-box}
.partners_block{position:relative;border-top:1px solid #000;padding-top:5vh}
.partners_head{display:flex;justify-content:space-between;gap:4vw;align-items:flex-start}
.partners_title{font-family:"Neue Montreal",Helvetica,sans-serif;font-weight:500;font-size:clamp(22px,2.2vw,34px);line-height:.95;text-transform:uppercase;margin:0}
.partners_title em{display:block;font-family:"Lyon Display",Times,serif;font-style:italic;font-weight:300;text-transform:none;font-size:1.1em;line-height:1}
.partners_text{max-width:20em;font-size:12px;font-weight:700;text-transform:uppercase;line-height:1.3;margin:0}
.partners_logos{list-style:none;display:flex;gap:3vw;align-items:center;justify-content:space-between;margin:9vh 0 0;padding:0}
.partners_logos img{height:44px;width:auto;display:block}
.partners_wm{font-family:"Neue Montreal",Helvetica,sans-serif;font-weight:700;font-size:26px;line-height:.9;letter-spacing:-.02em;display:block}
.partners_wm small{display:block;font-size:9px;font-weight:500;letter-spacing:0}
.partners_wm--it{font-style:italic;text-transform:uppercase;font-size:24px}
.partners_nav{position:absolute;right:0;top:-1px;transform:translateY(-50%);display:flex;gap:6px;background:#F8C2DE;padding-left:10px}
.partners_btn{width:22px;height:22px;background:#000;color:#fff;border:0;cursor:pointer;font-size:12px;line-height:1;padding:0}
.partners_quotes{position:relative;margin:6vh 0 0 30%;min-height:22vh}
.partners_quote{display:none;margin:0;font-size:13px;line-height:1.5}
.partners_quote.is-active{display:block}
.partners_quote p::before{content:"\201D";display:block;font-family:"Lyon Display",Times,serif;font-size:42px;line-height:.6;margin-bottom:.3em}
.partners_quote cite{display:block;margin-top:1.4em;font-style:normal;font-weight:700;text-transform:uppercase;font-size:12px}
@media (max-width:767px){.pSection--partners .partners_panel{width:100%;padding:12vh 6vw}.partners_head{flex-direction:column}.partners_quotes{margin-left:0}.partners_logos{flex-wrap:wrap}}

/* expos : video YouTube a cote du texte */
.featuredVideo{position:relative;width:100%;margin-top:20vh;aspect-ratio:1/1.26;overflow:hidden;background:#000}
.featuredVideo iframe{position:absolute;top:0;bottom:0;height:100%;width:224%;left:50%;transform:translateX(-50%);border:0}
@media (max-width:979px){.featuredVideo{margin-top:5vh}}

/* expos : titre serre + texte d'intro selon la maquette */
.exposition .pSection--featured .st1{line-height:.72;margin-bottom:0}
.exposition .pSection--featured .st1 strong{display:inline-block;line-height:.86;margin-top:-.04em}
.exposition .pSection--headerCover .st1{line-height:.72}
.exposition .pSection--headerCover .st1 strong{display:inline-block;line-height:.86}
.exposition .pSection--featured .st2{margin-top:9vh;line-height:1.38;font-weight:500}
.exposition .pSection--featured .st2 strong{color:#000;font-family:"Lyon Display",Times,serif;font-style:italic;font-weight:300;font-size:1.1em;line-height:1}

/* galerie : titre + sous-titre propres */
.exposition .pSection--gallery .galleryCarousel_content .st3{border-top:0;padding-top:0;margin-bottom:0;white-space:normal;line-height:1}
.exposition .pSection--gallery .galleryCarousel_content h3.st3{white-space:nowrap;font-size:clamp(34px,3.4vw,64px);display:flex;align-items:baseline;gap:.25em}
.exposition .pSection--gallery .galleryCarousel_content h3.st3 strong{font-size:1.2em;line-height:1}
.exposition .pSection--gallery .galleryCarousel_content .st3+.st3{margin-top:.7em;font-size:clamp(14px,1.15vw,22px);line-height:1.25;letter-spacing:.02em}
.exposition .pSection--gallery .galleryCarousel_content h3.st3{margin-bottom:0 !important;padding-bottom:0 !important}
.exposition .pSection--gallery .galleryCarousel_content .st3+.st3,.exposition .pSection--gallery .galleryCarousel_content div.st3{margin-top:.35em !important;padding-top:0 !important;border-top:0 !important}

/* bandeau d'en-tete : video YouTube en fond (muette, boucle) */
.videoRender--yt{overflow:hidden}
.videoRender--yt iframe{position:absolute;top:50%;left:50%;width:max(100%,177.78vh);height:max(100%,56.25vw);transform:translate(-50%,-50%);border:0;pointer-events:none}

/* mobile : pas de scroll horizontal parasite */
@media (max-width:767px){html,body,.createurs [data-scroll-container]{overflow-x:hidden}.createurs{max-width:100vw}}
