/* Artae Studio — thème blocs. Couleurs, polices et espacements : theme.json. Ici : mise en page et animations
   qui ne se règlent pas dans theme.json (carrousel, sections qui glissent, défilement de galeries…).
   Reprend à l'identique le design du thème classique 1.2.0. */

:root{
	--nuit:var(--wp--preset--color--nuit);--anglais:var(--wp--preset--color--anglais);--noyer:var(--wp--preset--color--noyer);
	--calcaire:var(--wp--preset--color--calcaire);--lin:var(--wp--preset--color--lin);--papier:var(--wp--preset--color--papier);--encre:var(--wp--preset--color--encre);
	--f-titre:var(--wp--preset--font-family--titre);
	--f-texte:var(--wp--preset--font-family--texte);
	--gutter:clamp(20px,3.4vw,52px);
	--w:min(1560px,calc(100vw - 2 * var(--gutter)));
	--hdr:96px;
	--ab:0px;
	--sec:clamp(56px,6vw,96px);
	/* Mouvements de caméra du carrousel d'accueil : zoom (0.03 = 3 %) et déplacement latéral. Mettre 0 pour des photos fixes. */
	--cam-z:.03;
	--cam-p:.8%;
}

/* Base */
*,*::before,*::after{box-sizing:border-box}
html{background:var(--papier);-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{-webkit-font-smoothing:antialiased;overflow-x:hidden}
/* Bodoni Moda « texte » (taille optique 11) : traits fins épaissis, lisible en grand. Jamais d'italique. */
h1,h2,h3,h4,.title,.statement{font-style:normal;font-optical-sizing:none}
body.menu-open{overflow:hidden}
img{max-width:100%;height:auto;display:block}
:focus-visible{outline:1px solid currentColor;outline-offset:4px}
.wp-site-blocks{padding:0}
.wp-site-blocks>*{margin-block-start:0}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;margin:0!important;padding:0!important}
.wp-block-image,.wp-block-image figure{margin:0}
.wp-block-image img{display:block}
.wp-block-group,.wp-block-columns{margin:0}
ul.wp-block-post-template{margin:0;padding:0;list-style:none}
.wp-block-query{margin:0}
.wp-block-post-featured-image{margin:0}
.wp-block-post-featured-image a{display:block;height:100%}

/* Éléments de base */
.wrap{width:var(--w);margin:0 auto}
.eyebrow{font:400 11px/1.4 var(--f-texte);letter-spacing:.32em;text-transform:uppercase;opacity:.6}
.title{font-family:var(--f-titre);font-weight:400;text-transform:uppercase;line-height:1.12;letter-spacing:.06em;text-wrap:balance}
.t1{font-size:clamp(34px,5vw,60px)}
.t2{font-size:clamp(28px,3.3vw,42px)}
.t3{font-size:clamp(22px,2.2vw,27px)}
.statement{font-family:var(--f-titre);font-weight:400;font-size:clamp(21px,2.3vw,29px);line-height:1.5;letter-spacing:.005em}
.link{font:400 11px/1 var(--f-texte);letter-spacing:.32em;text-transform:uppercase}
.link a,.wp-block-post-excerpt__more-link,.wp-block-read-more.link{display:inline-block;border-bottom:1px solid currentColor;padding-bottom:6px;transition:opacity .2s;text-decoration:none}
.link a:hover,.wp-block-post-excerpt__more-link:hover,.wp-block-read-more.link:hover{opacity:.6}
.wp-block-read-more.link{font:400 11px/1 var(--f-texte);letter-spacing:.32em;text-transform:uppercase}
.btn,.form .btn{display:inline-block;background:var(--anglais);color:var(--papier);font:400 11px/1 var(--f-texte);letter-spacing:.32em;text-transform:uppercase;padding:18px 34px;border:0;cursor:pointer;transition:background-color .2s}
.btn:hover{background:var(--nuit)}
.center{text-align:center}
.panel{background:var(--papier)}
.lin{background:var(--lin)}
.nuit{background:var(--nuit);color:var(--papier)}
.sec{padding:var(--sec) 0}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:clamp(36px,5vw,56px)}
.head .title{margin-top:18px}
.head-flush{margin-bottom:0}
.im,.wp-block-post-featured-image{overflow:hidden;background:var(--calcaire)}
.im img,.wp-block-post-featured-image img{width:100%;height:100%;object-fit:cover}
a:hover .wp-block-post-featured-image img,.wp-block-post-featured-image a:hover img{transform:scale(1.04)}
.wp-block-post-featured-image img{transition:transform 1.4s cubic-bezier(.2,.6,.2,1)}
.wp-block-post-title a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}
.wp-block-post-title{font-family:var(--f-titre)}

/* Header : le bloc « partie de gabarit » lui-même est collant */
.hdr{position:sticky;top:0;z-index:50;background:var(--papier);border-bottom:1px solid var(--calcaire);color:var(--encre);transition:background-color .35s,color .35s,border-color .35s}
.admin-bar .hdr{top:32px}
.hdr-inner{height:var(--hdr);display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter)}
.home .hdr{position:fixed;left:0;right:0;background:transparent;border-color:transparent;color:#fff}
.home .hdr.is-solid{background:var(--papier);color:var(--encre);border-color:var(--calcaire)}
.hdr-inner .logo{margin:0;flex:0 0 auto}
.hdr-inner .logo a{display:block}
.hdr-inner .logo img{width:auto;height:30px;transition:filter .35s}
.home .hdr:not(.is-solid) .logo img{filter:brightness(0) invert(1)}
.hdr-r{display:flex;align-items:center}
.hdr .wp-block-navigation{color:inherit}
.nav-desktop .wp-block-navigation__container{gap:clamp(24px,2.6vw,42px)}
.nav-desktop .wp-block-navigation-item a{padding-bottom:6px;border-bottom:1px solid transparent;transition:border-color .2s;font-size:14px;letter-spacing:.22em;text-transform:uppercase;font-weight:700}
.nav-desktop .wp-block-navigation-item a:hover,.nav-desktop .current-menu-item>a,.nav-desktop a.on{border-bottom-color:currentColor}
.hdr-inner .nav-mobile{display:none}
.nav-mobile .wp-block-navigation__responsive-container-open{position:relative;width:28px;height:28px;padding:0;color:inherit}
.nav-mobile .wp-block-navigation__responsive-container-open svg{display:none}
.nav-mobile .wp-block-navigation__responsive-container-open::before,.nav-mobile .wp-block-navigation__responsive-container-open::after{content:"";position:absolute;left:1px;right:1px;height:1px;background:currentColor}
.nav-mobile .wp-block-navigation__responsive-container-open{background:linear-gradient(currentColor,currentColor) center/calc(100% - 2px) 1px no-repeat}
.nav-mobile .wp-block-navigation__responsive-container-open::before{top:7px}
.nav-mobile .wp-block-navigation__responsive-container-open::after{bottom:7px}
/* Menu plein écran (mobile) */
.nav-mobile .wp-block-navigation__responsive-container.is-menu-open{background:var(--nuit)!important;color:var(--papier)!important;padding:0 var(--gutter) 40px}
.admin-bar .nav-mobile .wp-block-navigation__responsive-container.is-menu-open{top:32px}
.nav-mobile .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog{padding:0}
.nav-mobile .wp-block-navigation__responsive-container-close{position:absolute;top:0;right:var(--gutter);left:auto;height:72px;color:var(--papier);font:400 11px/1 var(--f-texte);letter-spacing:.3em;text-transform:uppercase}
.nav-mobile .wp-block-navigation__responsive-container-content{padding-top:40px;align-items:flex-start;justify-content:flex-start}
.nav-mobile .is-menu-open .wp-block-navigation__container{gap:0;align-items:flex-start}
.nav-mobile .is-menu-open .wp-block-navigation-item a{display:block;font:400 clamp(26px,7vw,38px)/1.5 var(--f-titre);letter-spacing:.06em;text-transform:uppercase}

/* Hero : une nouvelle photo toutes les 3 s (9 photos, boucle de 27 s), chacune avec son mouvement de caméra lent
   (avance, glissement, recul, montée), fondu de 0,6 s. CSS seul. Amplitude réglée par --cam-z et --cam-p.
   Pour N photos : boucle = 3 s × N ; pourcentages des images clés = 0,6 s, 3 s et 3,6 s divisés par la boucle
   (ici 2,222 %, 11,1 % et 13,333 %) ; délai de la photo k = -0,6 s + 3 s × (k - 1). publier-vercel.mjs refuse un site
   dont la boucle ne correspond pas au nombre de photos. */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;max-height:1100px;overflow:hidden;color:#fff;background:var(--nuit)}
.hero .slides{position:absolute;inset:0;z-index:0}
.hero .slide{position:absolute;inset:0;margin:0}
.hero .slide img{width:100%;height:100%;object-fit:cover}
/* Téléphone et tablette : la photo d'accueil « doorway » (classe m-left) est cadrée à gauche pour montrer l'œuvre (demande de Marion, 16/10). Ordinateur inchangé. */
@media (max-width:900px){.hero .slide.m-left img{object-position:0% 50%}}
.hero .slide:not(:first-child){opacity:0}
.js .hero .slide{opacity:0;animation:artae-slide 27s infinite}
.js .hero .slide img{animation:artae-cam1 27s linear infinite;animation-delay:inherit}
.hero .slide:nth-child(1),.hero .dots i:nth-child(1){animation-delay:-.6s}
.hero .slide:nth-child(2),.hero .dots i:nth-child(2){animation-delay:2.4s}
.hero .slide:nth-child(3),.hero .dots i:nth-child(3){animation-delay:5.4s}
.hero .slide:nth-child(4),.hero .dots i:nth-child(4){animation-delay:8.4s}
.hero .slide:nth-child(5),.hero .dots i:nth-child(5){animation-delay:11.4s}
.hero .slide:nth-child(6),.hero .dots i:nth-child(6){animation-delay:14.4s}
.hero .slide:nth-child(7),.hero .dots i:nth-child(7){animation-delay:17.4s}
.hero .slide:nth-child(8),.hero .dots i:nth-child(8){animation-delay:20.4s}
.hero .slide:nth-child(9),.hero .dots i:nth-child(9){animation-delay:23.4s}
.js .hero .slide:nth-child(3) img{animation-name:artae-cam2}
.js .hero .slide:nth-child(4) img{animation-name:artae-cam3}
.js .hero .slide:nth-child(5) img{animation-name:artae-cam4}
.js .hero .slide:nth-child(6) img{animation-name:artae-cam5}
.js .hero .slide:nth-child(7) img{animation-name:artae-cam6}
.js .hero .slide:nth-child(8) img{animation-name:artae-cam7}
.js .hero .slide:nth-child(9) img{animation-name:artae-cam8}
@keyframes artae-slide{0%{opacity:0;z-index:2;animation-timing-function:ease-out}2.222%{opacity:1}11.1%{z-index:2}11.111%{opacity:1;z-index:1}13.333%{opacity:1}13.334%{opacity:0}100%{opacity:0;z-index:1}}
@keyframes artae-cam1{0%{transform:scale(1)}13.333%,100%{transform:scale(calc(1 + var(--cam-z)))}}
@keyframes artae-cam2{0%{transform:scale(calc(1 + var(--cam-z))) translateX(var(--cam-p))}13.333%,100%{transform:scale(calc(1 + var(--cam-z))) translateX(calc(-1 * var(--cam-p)))}}
@keyframes artae-cam3{0%{transform:scale(calc(1 + var(--cam-z) * 1.4))}13.333%,100%{transform:scale(calc(1 + var(--cam-z) * .2))}}
@keyframes artae-cam4{0%{transform:scale(calc(1 + var(--cam-z))) translateX(calc(-1 * var(--cam-p)))}13.333%,100%{transform:scale(calc(1 + var(--cam-z))) translateX(var(--cam-p))}}
@keyframes artae-cam5{0%{transform:scale(calc(1 + var(--cam-z))) translateY(var(--cam-p))}13.333%,100%{transform:scale(calc(1 + var(--cam-z))) translateY(calc(-1 * var(--cam-p)))}}
@keyframes artae-cam6{0%{transform:scale(calc(1 + var(--cam-z) * .7)) translate(calc(-.6 * var(--cam-p)),calc(.3 * var(--cam-p)))}13.333%,100%{transform:scale(calc(1 + var(--cam-z) * 1.2)) translate(calc(.6 * var(--cam-p)),calc(-.3 * var(--cam-p)))}}
@keyframes artae-cam7{0%{transform:scale(calc(1 + var(--cam-z) * .7)) translateX(calc(.6 * var(--cam-p)))}13.333%,100%{transform:scale(calc(1 + var(--cam-z) * 1.2)) translateX(calc(-.6 * var(--cam-p)))}}
@keyframes artae-cam8{0%{transform:scale(calc(1 + var(--cam-z))) translateY(calc(-1 * var(--cam-p)))}13.333%,100%{transform:scale(calc(1 + var(--cam-z))) translateY(var(--cam-p))}}
@keyframes artae-dot{0%{opacity:.45}2.222%{opacity:1}11.111%{opacity:1}13.333%{opacity:.45}100%{opacity:.45}}
.is-hero-off .hero .slide,.is-hero-off .hero .slide img,.is-hero-off .hero .dots i{animation-play-state:paused}
.hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.30),rgba(0,0,0,.18) 40%,rgba(0,0,0,.36));pointer-events:none}
.hero .mark{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;pointer-events:none}
.hero .mark .wp-block-image{width:min(560px,70vw)}
.hero .mark img{width:100%;height:auto;filter:brightness(0) invert(1)}
.hero .tag{position:absolute;left:0;right:0;bottom:56px;z-index:2;padding:0 30px;text-align:center;font:400 clamp(21px,2.2vw,32px)/1.4 var(--f-titre);letter-spacing:.03em}
.hero .dots{position:absolute;left:0;right:0;bottom:40px;z-index:2;display:flex;justify-content:center;gap:10px}
.hero .dots i{width:28px;height:1px;background:#fff;opacity:.45;animation:artae-dot 27s infinite}

/* Accueil : chaque section glisse par-dessus la précédente, qui reste en place (sticky). js/main.js règle chaque « top ».
   Les sections « flow » (projets, engagements, secteurs, presse) glissent par-dessus la photo puis défilent normalement. */
.admin-bar{--ab:32px}
.js .panel{position:sticky;top:calc(var(--hdr) + var(--ab))}
.js .hero.panel{top:var(--ab)}
.js .panel.flow{position:relative;top:auto}
@supports (animation-timeline:scroll()) and (animation-range:0px 1px){
	.js .panel.rise{animation:artae-rise auto linear both;animation-timeline:scroll(root);animation-range:var(--rs) var(--re)}
}
@keyframes artae-rise{from{translate:0 calc(-1 * var(--e))}to{translate:0 0}}
.panel.sec{display:flex;flex-direction:column;justify-content:center;padding:clamp(48px,6vw,88px) 0}
.panel .head{margin-bottom:clamp(24px,4vh,56px)}
.head .side{display:flex;align-items:center;gap:clamp(24px,3vw,44px)}
.kbd .panel{position:relative!important;top:auto!important;margin-top:0!important;animation:none!important}
.pimg{position:relative;height:calc(100vh - var(--hdr) - var(--ab));height:calc(100svh - var(--hdr) - var(--ab));min-height:320px;overflow:hidden;background:var(--calcaire)}
.pimg .wp-block-image,.pimg img{width:100%;height:100%}
.pimg img{object-fit:cover}
.pimg .pimg-p{display:none}
@media (orientation:portrait){.pimg .pimg-l{display:none}.pimg .pimg-p{display:block}}
.pimg .cap-photo{position:absolute;left:var(--gutter);right:var(--gutter);bottom:22px;color:#fff;font:400 11px/1.5 var(--f-texte);letter-spacing:.28em;text-transform:uppercase;text-shadow:0 0 14px rgba(0,0,0,.55)}
.intro .statement{max-width:1000px;margin:22px auto 30px;font-size:clamp(23px,2.6vw,34px)}
/* Carrousels horizontaux (liste d'articles en rail) */
.rail{position:relative;display:flex!important;gap:28px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;padding:0 calc((100vw - var(--w)) / 2) 12px!important;scroll-padding:0 calc((100vw - var(--w)) / 2);-webkit-user-select:none;user-select:none}
.rail::-webkit-scrollbar{display:none}
.rail>*{flex:0 0 auto;scroll-snap-align:start;margin:0!important}
.rail img{-webkit-user-drag:none}
.rail.is-dragging{scroll-snap-type:none;cursor:grabbing}
.rail.is-dragging a{pointer-events:none}
.prail{gap:clamp(20px,2vw,32px)}
.panel.projects{padding:clamp(40px,5vw,72px) 0}
.panel.projects .head{margin-bottom:clamp(18px,3vh,40px)}
.prail>li{width:min(860px,84vw);width:min(860px,84vw,calc((100svh - var(--hdr) - var(--ab) - 13.4vh - 185px) * 1.414))}
.pcard{position:relative;display:grid;grid-template-columns:100%;align-content:start}
.pcard .wp-block-post-featured-image{grid-area:1/1;aspect-ratio:1.414;width:100%}
.pcard .meta{grid-row:2}
.pcard .wp-block-post-title{grid-row:3;font-size:clamp(19px,1.8vw,24px);letter-spacing:.05em;line-height:1.12}
.pcard .wp-block-post-title a::after,.scard .wp-block-post-title a::after{content:"";position:absolute;inset:0;z-index:2}
.scard{position:relative}
.pop{position:relative;z-index:1;grid-area:1/1;align-self:end;justify-self:start;max-width:min(440px,calc(100% - 2 * clamp(12px,1.4vw,20px)));margin:clamp(12px,1.4vw,20px);padding:clamp(18px,1.8vw,26px) clamp(20px,2vw,30px) clamp(20px,2vw,28px);background:rgba(246,244,239,.97);color:var(--encre);opacity:0;transform:translateY(16px);transition:opacity .45s ease,transform .7s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.pop .wp-block-post-excerpt__excerpt{font-size:15px;line-height:1.65;margin:0 0 18px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.pop .wp-block-post-excerpt__more-text{margin:0;font:400 11px/1 var(--f-texte);letter-spacing:.32em;text-transform:uppercase}
.pcard:hover .pop,.pcard:focus-within .pop{opacity:1;transform:none}
.progress{position:relative;height:1px;margin-top:clamp(16px,2.4vh,30px);background:var(--calcaire)}
.progress i{position:absolute;top:-1px;height:3px;left:calc(var(--p,0) * (100% - var(--t,.2) * 100%));width:calc(var(--t,.2) * 100%);background:var(--encre);transition:left .25s ease-out}
@media (hover:none){
	.pop{grid-area:auto;grid-row:4;align-self:start;max-width:none;margin:14px 0 0;padding:0;background:none;opacity:1;transform:none}
	.pop .wp-block-post-excerpt__excerpt{-webkit-line-clamp:3;margin-bottom:12px}
}
.meta{font:400 11px/1.5 var(--f-texte);letter-spacing:.28em;text-transform:uppercase;opacity:.6;margin:22px 0 10px}
.arrows{display:flex;gap:18px}
.arrows button{display:flex;padding:10px 4px;transition:opacity .2s;color:inherit;background:none;border:0;cursor:pointer}
.arrows svg{display:block;width:34px;height:12px}
.arrows [data-dir="-1"] svg{transform:scaleX(-1)}
.arrows button:disabled{opacity:.25;cursor:default}
.scard-li,.sectors .rail>li{width:min(300px,62vw);width:min(300px,62vw,calc((84svh - var(--hdr) - var(--ab) - 130px) * .72))}
.scard .wp-block-post-featured-image{aspect-ratio:.72}
.scard .wp-block-post-title{font:400 16px/1.35 var(--f-titre);text-transform:uppercase;letter-spacing:.07em;margin-top:18px}
.commit{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(28px,3vw,48px);margin-top:36px;padding-top:36px;border-top:1px solid var(--calcaire)}
.n{font:400 22px/1 var(--f-titre);letter-spacing:.06em;opacity:.5}
.commit h3{font:400 16px/1.3 var(--f-titre);text-transform:uppercase;letter-spacing:.04em;margin:0 0 14px;white-space:nowrap}
.commit p{font-size:16px;line-height:1.7}
.partners>.eyebrow{margin-bottom:34px}
.marquee{overflow:hidden;white-space:nowrap;padding:34px 0;border-top:1px solid var(--calcaire);border-bottom:1px solid var(--calcaire)}
.panel.partners .marquee{padding:clamp(40px,6vh,64px) 0}
.marquee-track{display:inline-flex!important;flex-wrap:nowrap;align-items:baseline;animation:artae-marquee 40s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track>p{flex:0 0 auto;white-space:nowrap;font:400 clamp(26px,4vw,54px)/1 var(--f-titre);text-transform:uppercase;letter-spacing:.07em;margin:0 28px 0 0}
.marquee-track>p::after{content:"";display:inline-block;width:1.2em;height:.78em;margin-left:28px;font-size:.62em;opacity:.35;background:currentColor;-webkit-mask:url(../logo/symbol.svg) center/contain no-repeat;mask:url(../logo/symbol.svg) center/contain no-repeat}
@keyframes artae-marquee{to{transform:translateX(-50%)}}
.press-grid{display:grid!important;grid-template-columns:repeat(3,1fr);gap:40px;margin:0}
.press-grid>li{margin:0!important}
.press-grid .wp-block-post-featured-image{aspect-ratio:.8;background:#fff;border:1px solid var(--lin)}
.panel .press-grid .wp-block-post-featured-image{max-height:max(240px,calc(84svh - var(--hdr) - var(--ab) - 220px))}
.press-grid .wp-block-post-featured-image img{object-fit:contain}
.press-grid .wp-block-post-title{font:400 18px/1.4 var(--f-titre);letter-spacing:.01em;text-transform:none;margin-top:10px}
.cband{position:relative;padding:clamp(72px,9vw,112px) 0}
.cband .title{margin-top:20px}
.cband p:not(.eyebrow):not(.link){max-width:560px;margin:26px auto 40px;opacity:.85}
.cband-part{margin:0}

/* Footer */
.ftr{background:var(--nuit);color:var(--papier);padding:64px 0 36px;border-top:1px solid rgba(246,244,239,.12)}
.ftr .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.ftr .logo{margin:0}
.ftr .logo img{width:150px;height:auto;filter:brightness(0) invert(1)}
.ftr .tagline{margin-top:26px;max-width:300px;font:400 17px/1.55 var(--f-titre);opacity:.85}
.ftr h2{font:400 11px/1.4 var(--f-texte);letter-spacing:.3em;text-transform:uppercase;opacity:.6;margin-bottom:18px}
.ftr-list{font-size:15px;line-height:2}
.ftr-nav .wp-block-navigation__container{gap:0;align-items:flex-start}
.ftr-nav .wp-block-navigation-item a{font:300 15px/2 var(--f-texte);letter-spacing:normal;text-transform:none}
.ftr a:hover{opacity:.7}
.ftr .bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;margin-top:56px;padding-top:26px;border-top:1px solid rgba(246,244,239,.15);font-size:12px;letter-spacing:.05em}
.ftr .bot p{opacity:.6}
.ftr .bot a:hover{text-decoration:underline;opacity:1}

/* Pages intérieures */
.phead{padding:clamp(56px,7vw,96px) 0 clamp(36px,5vw,64px)}
.phead .title{margin:22px 0 30px}
.phead .lead{max-width:760px;margin:0 auto;font-size:19px}
.phead .link.back{margin-top:40px}
.figure{width:var(--w);margin:0 auto}
.figure img{width:100%;height:auto}
.cap{font-size:12px;letter-spacing:.02em;opacity:.6;margin-top:12px}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:70px}
.cols2 .eyebrow.mt{margin:34px 0 14px}
.cols2 .eyebrow+.names{margin-top:14px}
.ecosystem-title{margin:18px 0 26px!important}
.founders{display:grid;grid-template-columns:minmax(0,480px) 1fr;gap:80px;align-items:start}
.bio h3{font:400 23px/1.2 var(--f-titre);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.bio .role{margin-bottom:18px}
.bio p:not(.eyebrow){font-size:16px}
.bio+.bio{margin-top:50px;padding-top:44px;border-top:1px solid var(--calcaire)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.steps .n{font-size:44px;opacity:.4}
.steps h3{font:400 17px/1.3 var(--f-titre);text-transform:uppercase;letter-spacing:.07em;margin:14px 0 10px}
.steps p:not(.n){font-size:16px}
.names{font:400 17px/1.8 var(--f-titre);text-transform:uppercase;letter-spacing:.06em}
.names-lg{font-size:clamp(18px,2vw,24px);margin-top:26px}
.xrows{padding-bottom:100px}
.xrow{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,90px);align-items:center;padding:70px 0;border-top:1px solid var(--calcaire)}
.xrow.rev .xim{order:2}
.xrow .n{font-size:28px;opacity:.5}
.xrow h2{margin:12px 0 10px}
.xrow .sub{font:400 19px/1.45 var(--f-titre);margin-bottom:20px}
.xrow ul,.svc3 ul{list-style:none;padding:0}
.xrow ul{margin-top:24px;border-top:1px solid var(--calcaire)}
.xrow li{font-size:15px;letter-spacing:.04em;padding:11px 0;border-bottom:1px solid var(--calcaire)}
.svc3{display:grid;grid-template-columns:repeat(3,1fr);gap:56px}
.svc3 h3{font:400 17px/1.3 var(--f-titre);text-transform:uppercase;letter-spacing:.07em;margin-bottom:16px}
.svc3 li{font-size:16px;padding:9px 0;border-top:1px solid var(--calcaire)}
.srows{padding-bottom:96px}
.srow-list{counter-reset:secteur}
.srow{counter-increment:secteur;display:grid;grid-template-columns:1fr 1fr minmax(0,380px);gap:40px;align-items:center;padding:34px 0;border-top:1px solid var(--calcaire)}
.srow-list>li:last-child .srow{border-bottom:1px solid var(--calcaire)}
.srow .title{font-size:clamp(26px,2.8vw,34px);scroll-margin-top:calc(var(--hdr) + 90px)}
.srow p{font-size:16px}
.srow .wp-block-post-featured-image{aspect-ratio:1.414}
.plist{padding-bottom:96px}
.plist-rows .row{display:grid;grid-template-columns:160px 1fr auto;gap:40px;align-items:center;padding:30px 0;border-top:1px solid var(--calcaire)}
.plist-rows>li:last-child .row{border-bottom:1px solid var(--calcaire)}
.plist .wp-block-post-title{font:400 20px/1.35 var(--f-titre);letter-spacing:.01em;text-transform:none}
.press-top{padding-bottom:90px}

/* Index des projets */
.filters{display:flex;justify-content:center;flex-wrap:wrap;gap:18px 40px;margin-bottom:70px;font:400 11px/1 var(--f-texte);letter-spacing:.3em;text-transform:uppercase}
.filters p{margin:0}
.filters a{opacity:.55;padding-bottom:6px;border-bottom:1px solid transparent;transition:opacity .2s}
.filters a:hover{opacity:1}
.filters a.on{opacity:1;border-bottom-color:currentColor}
.pgrid{display:grid!important;grid-template-columns:1fr 1fr;gap:80px 40px;margin:0}
.pgrid>li{margin:0!important}
.pgrid>[hidden]{display:none}
.pgrid>li:first-child,.pgrid>li.feat{grid-column:span 2}
.pgrid>li.no-feat{grid-column:auto}
.pgrid .wp-block-post-featured-image{aspect-ratio:1.414}
.pgrid .wp-block-post-title{font-size:clamp(24px,2.5vw,30px);line-height:1.12}
.pgrid>li:first-child .wp-block-post-title{font-size:clamp(30px,3.4vw,40px)}
.pitem{position:relative}
.pitem .wp-block-post-title a::after{content:"";position:absolute;inset:0;z-index:2}
.pgrid-wrap{padding-bottom:96px}
.empty{text-align:center;opacity:.7}

/* Page projet */
.project-body{padding-bottom:0}
.pmeta{gap:clamp(40px,7vw,90px)!important;margin-bottom:var(--sec)!important;align-items:flex-start}
.pmeta .wp-block-column>*+*{margin-top:1.1em}
.pmeta .statement{font-size:clamp(22px,2.2vw,26px);margin-bottom:30px}
.pmeta-table,.pmeta-table table{width:100%;border-collapse:collapse;margin:0}
.pmeta-table td{font-size:15px;font-weight:300;text-align:left;padding:13px 0;border:0;border-top:1px solid var(--calcaire);vertical-align:top}
.pmeta-table td:first-child{font:400 11px/1.4 var(--f-texte);letter-spacing:.28em;text-transform:uppercase;opacity:.6;width:130px;padding-top:16px}
.project-content>*+*{margin-top:28px}
.project-content>.pmeta+*{margin-top:0}
.project-content img{width:100%;height:auto}
.project-content .gal2{gap:28px}
.project-content .wp-block-image{margin:0}
.project-content>.cap,.project-content>p.cap{margin-top:12px}
.entry>*+*{margin-top:1.1em}
.entry a{border-bottom:1px solid currentColor}
.entry h2,.entry h3{font-family:var(--f-titre);font-weight:400;text-transform:uppercase;letter-spacing:.06em;line-height:1.2;margin-top:1.6em}
.entry h2{font-size:clamp(24px,2.5vw,30px)}
.entry h3{font-size:20px}
.entry ul{list-style:disc;padding-left:1.2em}
.entry figcaption{font-size:12px;opacity:.6;margin-top:10px}
.next{text-align:center}
.next .title{margin:18px 0 26px}
.next .wp-block-post-navigation-link a{border-bottom:1px solid currentColor;padding-bottom:4px}

/* Contact */
.csplit{display:grid;grid-template-columns:1fr 1fr;min-height:min(1000px,100vh)}
.csplit>.im{height:100%;min-height:420px}
.csplit>.im .wp-block-image{height:100%}
.form{padding:clamp(70px,8vw,110px) clamp(24px,7vw,100px)}
.form .title{margin:20px 0 24px}
.form .who{margin-top:22px;font-size:15px}
.form .who a{border-bottom:1px solid currentColor}
.fields{margin-top:40px}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.field,.form :is(input[type=text],input[type=email],input[type=tel],input[type=url],select,textarea){display:block;width:100%;background:transparent;border:0;border-bottom:1px solid var(--calcaire);border-radius:0;padding:22px 0 12px;font:300 16px/1.4 var(--f-texte);color:var(--encre);-webkit-appearance:none;appearance:none}
.field::placeholder{font:400 11px/1.4 var(--f-texte);letter-spacing:.28em;text-transform:uppercase;color:var(--encre);opacity:.75}
select.field:has(option[value=""]:checked){font:400 11px/1.4 var(--f-texte);letter-spacing:.28em;text-transform:uppercase}
select.field{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%231A1A1A'/%3E%3C/svg%3E") no-repeat right 4px bottom 20px;padding-right:24px;cursor:pointer}
textarea.field{height:150px;resize:vertical}
.field:focus,.form :is(input,select,textarea):focus{outline:none;border-bottom-color:var(--encre)}
.chk{display:flex;gap:12px;align-items:flex-start;margin:26px 0 34px;font-size:13px;opacity:.8;cursor:pointer}
.chk input{-webkit-appearance:none;appearance:none;flex:0 0 14px;width:14px!important;height:14px;margin-top:4px;padding:0!important;border:1px solid var(--encre)!important;cursor:pointer}
.chk input:checked{background:var(--anglais);border-color:var(--anglais)!important;box-shadow:inset 0 0 0 2px var(--papier)}
.chk a{border-bottom:1px solid currentColor}
.form-note{margin-top:18px;font-size:13px;opacity:.8}

/* Pages génériques */
.page-body{padding-bottom:var(--sec)}
.page-body .entry{margin:0 auto}
.page-legal{width:min(760px,calc(100vw - 2 * var(--gutter)));margin:0 auto;padding-bottom:var(--sec)}
.page-legal>*+*{margin-top:1.1em}
.page-legal h2{font-size:clamp(24px,2.5vw,30px);margin-top:1.6em}
/* Pages légales détaillées (18/10) : date de mise à jour, sous-titres par traitement, listes. */
.page-legal .legal-date{font-size:14px;opacity:.65;margin-top:0}
.page-legal h3{font:600 13px/1.5 var(--f-texte);letter-spacing:.14em;text-transform:uppercase;margin-top:1.8em}
.page-legal ul{padding-left:1.2em}
.page-legal li+li{margin-top:.45em}
.page-legal [id]{scroll-margin-top:calc(var(--hdr) + 24px)}
/* Titres de page sur petit téléphone : « CONFIDENTIALITÉ » ne se coupe plus en plein mot. */
@media (max-width:420px){.phead .t1{font-size:min(34px,8.2vw)}}

/* Apparition au défilement (fondu + montée de 12 px, 0,8 s) */
.js .reveal{opacity:0;transform:translateY(12px);transition:opacity .8s ease,transform .8s ease}
.js .reveal.is-in{opacity:1;transform:none}

/* Responsive */
@media (max-width:1080px){
	:root{--hdr:72px}
	.nav-desktop{display:none}
	.hdr-inner{position:relative}
	.hdr-inner .nav-mobile{display:flex}
	.hdr-inner .hdr-r{order:-1}
	.hdr-inner .logo{position:absolute;left:50%;top:50%;translate:-50% -50%}
	.hdr-inner .logo img{height:26px}
}
@media (max-width:900px){
	.commit,.steps{grid-template-columns:1fr 1fr}
	.cols2,.founders{grid-template-columns:1fr;gap:40px}
	.xrow{grid-template-columns:1fr;gap:36px;padding:50px 0}
	.xrow.rev .xim{order:0}
	.svc3{grid-template-columns:1fr;gap:40px}
	.srow{grid-template-columns:1fr;gap:16px;padding:30px 0}
	.srow>p,.srow>.wp-block-post-excerpt,.srow>.wp-block-post-featured-image{grid-column:auto}
	.press-grid{grid-template-columns:1fr 1fr}
	.ftr .cols{grid-template-columns:1fr 1fr}
	.csplit{grid-template-columns:1fr;min-height:0}
	.csplit>.im{height:52vh}
	.plist-rows .row{grid-template-columns:1fr auto;gap:10px 24px}
	.plist-rows .row>.eyebrow,.plist-rows .row>.wp-block-post-excerpt{grid-column:1 / -1}
}
@media (max-width:782px){
	.admin-bar{--ab:46px}
	.admin-bar .hdr{top:46px}
	.admin-bar .nav-mobile .wp-block-navigation__responsive-container.is-menu-open{top:46px}
}
@media (max-width:600px){
	.head{display:block}
	.head .side{margin-top:22px}
	.arrows{display:none}
	.commit,.steps{grid-template-columns:1fr;gap:34px}
	.press-grid{grid-template-columns:1fr}
	.ftr .cols{grid-template-columns:1fr}
	.ftr .bot{display:block}
	.ftr .bot>*+*{margin-top:8px}
	.pgrid{grid-template-columns:1fr;gap:56px}
	.pgrid>li:first-child,.pgrid>li.feat{grid-column:auto}
	.project-content .gal2{flex-direction:column}
	.pmeta{flex-direction:column}
	.pmeta .wp-block-column{flex-basis:100%!important}
	.hero .tag{bottom:80px}
	.srow{grid-template-columns:1fr}
	.srow>p,.srow>.wp-block-post-excerpt,.srow>.wp-block-post-featured-image{grid-column:auto!important}
}

/* Mouvement réduit */
@media (prefers-reduced-motion:reduce){
	html{scroll-behavior:auto}
	.js .hero .slide,.js .hero .slide img,.hero .dots i,.marquee-track{animation:none}
	.js .hero .slide{opacity:0}
	.js .hero .slide:first-child,.hero .dots i:first-child{opacity:1}
	.wp-block-post-featured-image img,.wp-block-post-featured-image a:hover img{transition:none;transform:none}
	.js .reveal{opacity:1;transform:none;transition:none}
}

/* Texte justifié (demande de la cliente) : tous les paragraphes, sauf les petites lignes (surtitres, légendes, liens, tags).
   Les blocs centrés gardent leur dernière ligne centrée. Coupure des mots automatique (hyphens) pour éviter les trous. */
main p:not(.eyebrow):not(.meta):not(.link):not(.cap):not(.cap-photo):not(.tag):not(.n):not(.names):not(.form-note):not(.empty):not(.who):not(.back),
main .wp-block-post-excerpt__excerpt,
main .wp-block-list li{text-align:inherit;-webkit-hyphens:manual;hyphens:manual;text-wrap:pretty}
.center p:not(.eyebrow):not(.link):not(.cap){text-align-last:center}
.cband p:not(.eyebrow):not(.link){text-align:center}
.ftr .tagline,.ftr-list{text-align:left;-webkit-hyphens:manual;hyphens:manual}
.center p,.cband p{-webkit-hyphens:manual;hyphens:manual}


/* ---- Page Expertise : cinq bandes de photos, toutes fermées au départ. Au survol (ou au toucher) une bande s'ouvre,
   la photo est éclaircie à 70 % et le titre se pose par-dessus en encre pour rester lisible. ---- */
.xpanels{padding:0 0 clamp(40px,5vw,72px)}
.pw{display:flex;gap:10px;width:var(--w);margin:0 auto;height:min(78svh,740px);min-height:540px}
.pw>.p{position:relative;flex:1 1 0;min-width:0;overflow:hidden;background:#4A3B30;border:1px solid #4A3B30;color:#fff;cursor:pointer;container-type:inline-size;transition:flex-grow 1s var(--ease)}
.pw>.p.on{flex-grow:5.6;cursor:default}
.p .bg{position:absolute;inset:0;margin:0;opacity:.34;transform:scale(1.05);transition:transform 6s var(--ease),opacity .8s}
.p .bg img{width:100%;height:100%;object-fit:cover}
.p.on .bg{transform:scale(1);opacity:.4}
.p:not(.on):hover .bg{opacity:.46}
.p .num{position:absolute;left:clamp(14px,1.4vw,22px);top:20px;z-index:2;font:400 19px/1 var(--f-titre);letter-spacing:.06em;opacity:1}
.p .ttl{position:absolute;z-index:2;margin:0;left:clamp(14px,1.4vw,22px);right:clamp(14px,1.4vw,22px);bottom:clamp(18px,2vw,28px);font:400 clamp(18px,1.7vw,25px)/1.2 var(--f-titre);letter-spacing:.07em;text-transform:uppercase;color:#fff;text-shadow:0 1px 18px rgba(0,0,0,.35);text-wrap:balance;animation:ttlin .5s ease .45s both}
.p.on .ttl{left:clamp(18px,2vw,32px);right:auto;bottom:auto;top:clamp(46px,4.4vw,70px);white-space:normal;max-width:12ch;font-size:clamp(28px,3.4vw,52px);line-height:1.1;letter-spacing:.06em;animation:ttlin .6s ease .4s both}
.p.on .num{left:clamp(18px,2vw,32px);top:clamp(20px,2.2vw,30px)}
@keyframes ttlin{from{opacity:0}to{opacity:1}}
.p .label{position:absolute;left:0;right:0;bottom:0;z-index:3;background:#4A3B30;color:#fff;border-top:1px solid rgba(255,255,255,.18);padding:clamp(16px,1.8vw,26px);display:grid;gap:12px 28px;transform:translateY(101%);transition:transform .9s var(--ease) .15s}
.p.on .label{transform:none}
.p .label .sub{font:400 17px/1.4 var(--f-titre);margin:0 0 10px}
.p .label .txt{font-size:15px;line-height:1.65;margin:0;color:#fff}
.p .label ul{list-style:none;padding:0;margin:14px 0 0;border-top:1px solid rgba(255,255,255,.25)}
.p .label li{font-size:14px;letter-spacing:.04em;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.25)}
.p .label .more-p{margin:14px 0 0;font:400 11px/1 var(--f-texte);letter-spacing:.32em;text-transform:uppercase}
.p .label .more-p a{border-bottom:1px solid currentColor;padding-bottom:6px;text-decoration:none}
@container (min-width:560px){.p .label{grid-template-columns:minmax(0,.7fr) minmax(0,1.4fr)}.p .label .sub{grid-column:1}.p .label .txt,.p .label ul,.p .label .more-p{grid-column:2}.p .label .sub{grid-row:1 / span 3}}
@media (max-width:900px){
	.pw{flex-direction:column;height:auto;min-height:0;width:100%;gap:2px}
	.pw>.p{flex:none;height:78px;transition:height .8s var(--ease)}
	.pw>.p.on{height:min(125svh,680px)}
	.p .ttl{left:calc(var(--gutter) + 40px);right:var(--gutter);top:50%;bottom:auto;translate:0 -50%}
	.p.on .ttl{translate:0 0;top:clamp(48px,12vw,64px);left:var(--gutter);font-size:clamp(26px,8vw,38px)}
	.p .num{left:var(--gutter);top:50%;translate:0 -50%}
	.p.on .num{top:20px;translate:0 0}
	.p .label{grid-template-columns:1fr!important}
	.p .label .sub,.p .label .txt,.p .label ul,.p .label .more-p{grid-column:1!important;grid-row:auto!important}
}
.pw:has(.p.on) .p:not(.on) .ttl{opacity:0;animation:none;transition:opacity .3s}
.commit-rail>.ccard{width:min(360px,72vw)}
.ccard figure{margin:0;aspect-ratio:.72}
.ccard figure img{width:100%;height:100%;object-fit:cover;display:block}
.commit-sec .head .eyebrow:empty{display:none}
.ccard-title{font:400 16px/1.35 var(--f-titre);text-transform:uppercase;letter-spacing:.07em;margin-top:18px}
.ccard-text{font-size:15px;line-height:1.6;margin-top:10px;text-align:left;hyphens:manual}

.hero .tag{font:400 clamp(12px,.95vw,14px)/1.6 var(--f-texte);letter-spacing:.16em;text-transform:uppercase}
.intro .intro-sub{max-width:1000px;margin:0 auto 30px;font:400 clamp(23px,2.6vw,34px)/1.5 var(--f-titre);letter-spacing:.005em;opacity:1}
.ck{position:fixed;left:16px;right:16px;bottom:16px;z-index:9999;max-width:560px;margin:0 auto;background:#fff;color:#1A1A1A;border:1px solid #d9d4ca;padding:20px 22px;font:400 14px/1.6 var(--f-texte);box-shadow:0 8px 40px rgba(0,0,0,.14)}
.ck p{margin:0 0 14px}
.ck a{text-decoration:underline}
.ck div{display:flex;gap:10px;flex-wrap:wrap}
.ck button{font:400 11px/1 var(--f-texte);letter-spacing:.24em;text-transform:uppercase;padding:13px 20px;border:1px solid #1A1A1A;background:#1A1A1A;color:#fff;cursor:pointer}
.ck button.ck-no{background:transparent;color:#1A1A1A}
.svc-pw>.p{border:0;background:#4a3326}
.svc-pw>.p:nth-child(2){background:#5a3f2e}
.svc-pw>.p:nth-child(3){background:#3f2b20}
.svc-pw>.p:nth-child(4){background:#6a4a35}
.svc-pw>.p:nth-child(5){background:#52382a}
.svc-pw>.p:nth-child(6){background:#43301f}
.svc-pw>.p:nth-child(7){background:#5f4331}
.svc-pw .p .ttl{font-weight:700;font-size:clamp(14px,7.2cqw,22px);letter-spacing:.06em;text-shadow:none;max-width:none}
.svc-pw .p.on .ttl{font-size:clamp(28px,3.4vw,52px)}
.svc-pw .p .label{background:rgba(0,0,0,.18)}
.svc-pw .p:not(.on) .ttl{font-size:clamp(15px,9.2cqw,26px);top:50%;bottom:auto;translate:0 -50%;letter-spacing:.08em}
.svc-pw .p:not(.on) .ttl{font-size:clamp(17px,10cqw,34px);letter-spacing:.03em;left:14px;right:10px;line-height:1.15}
.ccard{position:relative;overflow:hidden}
.ccard .ccap{position:absolute;left:0;right:0;bottom:0;padding:90px clamp(16px,1.6vw,24px) clamp(18px,1.8vw,26px);background:linear-gradient(to top,rgba(74,59,48,.72),rgba(74,59,48,0));pointer-events:none}
.ccard .ccard-title{margin:0;color:#fff;font:400 clamp(17px,1.5vw,22px)/1.2 var(--f-titre);letter-spacing:.07em;text-transform:uppercase}
.ccard .ccard-text{margin:8px 0 0;color:rgba(255,255,255,.92);font-size:13px;line-height:1.5;text-align:left;hyphens:none}
.svc-pw .p:not(.on) .ttl{top:auto;bottom:clamp(18px,2vw,28px);translate:none}
.svc-pw>.p,.svc-pw>.p:nth-child(n){background:#4A3B30}
.svc-pw>.p{transition:flex-grow 1.6s cubic-bezier(.22,.61,.36,1)}
.svc-pw>.p.on{flex-grow:4.2}
.svc-pw .p .label{opacity:0;transition:transform 1.4s cubic-bezier(.22,.61,.36,1) .2s,opacity 1.1s ease .35s}
.svc-pw .p.on .label{opacity:1}
.svc-pw .p .ttl{transition:opacity .9s ease}
.hero .tag{font-size:clamp(9.5px,.72vw,11px);letter-spacing:.14em}
main .intro .statement,main .intro .intro-sub{text-align:center;text-justify:auto;hyphens:none;-webkit-hyphens:none;word-spacing:normal;text-wrap:balance}
main .intro .statement,main .intro .intro-sub{text-align:center!important;hyphens:none!important;-webkit-hyphens:none!important;text-justify:auto!important}
.svc-pw .p .bg{opacity:.4}
.svc-pw .p.on .bg{opacity:.5}
.svc-pw .p:not(.on):hover .bg{opacity:.48}
.svc-pw .p .ttl{font-weight:700;text-shadow:0 1px 14px rgba(0,0,0,.35)}
@media (max-width:900px){
	.svc-pw>.p{height:96px}
	.svc-pw>.p.on{height:min(125svh,700px)}
	.svc-pw .p:not(.on) .ttl{font-size:clamp(17px,5.2vw,24px);left:var(--gutter);right:var(--gutter);top:50%;bottom:auto;translate:0 -50%;letter-spacing:.06em;line-height:1.15}
	.svc-pw .p.on .ttl{font-size:clamp(24px,7vw,34px);font-weight:700}
}
main .phead .lead{text-align:center!important;hyphens:none!important;-webkit-hyphens:none!important}
.pcard .wp-block-post-featured-image{overflow:hidden}
.pcard .wp-block-post-featured-image img{transform-origin:50% 50%;animation:pdrift 18s ease-in-out infinite alternate;transition:scale 1.4s cubic-bezier(.22,.61,.36,1)}
.pcard:hover .wp-block-post-featured-image img{scale:1.06}
.rail>li:nth-child(2n) .pcard .wp-block-post-featured-image img{animation-duration:22s;animation-direction:alternate-reverse}
.rail>li:nth-child(3n) .pcard .wp-block-post-featured-image img{animation-duration:26s;animation-delay:-6s}
@keyframes pdrift{from{transform:scale(1.02) translate3d(-1%,0,0)}to{transform:scale(1.09) translate3d(1.2%,-1%,0)}}
@media (prefers-reduced-motion:reduce){.pcard .wp-block-post-featured-image img{animation:none}}
.svc-sec{overflow:hidden}
.svc-marquee{overflow:hidden;width:100%}
.svc-track{display:flex!important;flex-wrap:nowrap;width:max-content;animation:artae-marquee 70s linear infinite}
.svc-marquee:hover .svc-track{animation-play-state:paused}
.svc-card{position:relative;flex:0 0 auto;width:clamp(210px,17vw,300px);aspect-ratio:.62;margin:0 12px 0 0!important;background:#4A3B30;overflow:hidden}
.svc-card .svc-bg{position:absolute;inset:0;margin:0;opacity:.4}
.svc-card .svc-bg img{width:100%;height:100%;object-fit:cover;display:block}
.svc-card .svc-title{position:absolute;left:16px;right:12px;bottom:22px;margin:0;font:700 clamp(17px,1.5vw,24px)/1.15 var(--f-titre);letter-spacing:.04em;text-transform:uppercase;color:#fff}
.svc-card .svc-title a{color:#fff;text-decoration:none}
.svc-card .svc-title a::after{content:"";position:absolute;inset:0;z-index:2}
@media (prefers-reduced-motion:reduce){.svc-track{animation:none}.svc-marquee{overflow-x:auto}}
.ccard figure{position:relative}
.ccard figure::after{content:"";position:absolute;inset:0;background:rgba(74,59,48,.58);pointer-events:none}
.ccard .ccap{background:linear-gradient(to top,rgba(74,59,48,.9),rgba(74,59,48,0));z-index:2}
.panel.projects{padding-top:clamp(28px,3vw,44px)}
.panel.projects .head{margin-bottom:16px}
/* Every block slides over the previous one: held blocks are at least one screen tall so the one underneath never shows. */
.js .panel:not(.flow):not(.hero){min-height:calc(100svh - var(--hdr) - var(--ab));display:flex;flex-direction:column;justify-content:center}
.js .panel.cband-part{min-height:0;display:block}
.js .panel.cband-part:not(.flow):not(.hero){min-height:0;display:block;background:var(--nuit)}
.js .panel.cband-part{margin-top:0!important;animation:none!important;translate:none!important}
/* Same title band on Our expertise, Sectors and Projects: same top gap, same band height, same gap to the cards. */
.js .panel.commit-sec:not(.flow):not(.hero),.js .panel.svc-sec:not(.flow):not(.hero),.js .panel.projects:not(.flow):not(.hero){justify-content:flex-start;padding-top:clamp(56px,7vh,84px)}
.commit-sec .head,.svc-sec .head,.panel.projects .head{min-height:clamp(52px,6.5vh,72px);align-items:center;margin-bottom:clamp(28px,4vh,44px)}
/* Home: sector cards are plain cream with black type (no photo). */
.svc-card{background:var(--lin)}
.svc-card .svc-title,.svc-card .svc-title a{color:var(--encre)}
/* Services: photo while closed; when a band opens it turns plain cream with black type and the text sits higher. */
.svc-pw>.p{transition:flex-grow 1.6s cubic-bezier(.22,.61,.36,1),background-color 1.1s ease}
.svc-pw>.p.on,.svc-pw>.p.on:nth-child(n){background:var(--lin)}
.svc-pw .p.on .bg{opacity:0}
.svc-pw .p .bg{transition:opacity 1s ease,transform 6s var(--ease)}
.svc-pw .p.on .ttl{color:var(--encre);text-shadow:none;top:clamp(36px,3.4vw,56px)}
.svc-pw .p.on .label{top:calc(clamp(36px,3.4vw,56px) + 2.5 * clamp(28px,3.4vw,52px) + 20px);bottom:auto;background:transparent;border-top:0;color:var(--encre);transform:none}
.svc-pw .p.on .label .txt,.svc-pw .p.on .label .sub{color:var(--encre)}
.svc-pw .p.on .label .more-p,.svc-pw .p.on .label .more-p a{color:var(--encre)}
@media (max-width:900px){
	.svc-pw .p.on .ttl{top:clamp(40px,10vw,56px)}
	.svc-pw .p.on .label{top:calc(clamp(40px,10vw,56px) + 2.4 * clamp(24px,7vw,34px) + 16px)}
}
/* Warmer, deeper beige for the sector cards (home) and the opened Services bands. */
:root{--beige-carte:#D9D4CA}
.svc-card{background:var(--beige-carte)}
.svc-pw>.p.on,.svc-pw>.p.on:nth-child(n){background:var(--beige-carte)}
/* Services: the text of an opened band sits in the middle of the card, not pushed to the right. */
.svc-pw .p.on .label{left:0;right:0;grid-template-columns:1fr!important;justify-items:center;text-align:center;padding-left:clamp(18px,2vw,32px);padding-right:clamp(18px,2vw,32px)}
.svc-pw .p.on .label .txt,.svc-pw .p.on .label .more-p{grid-column:1!important;max-width:34em;text-align:center}
/* Small, quiet call to action beside each block title. */
.cta{margin:0 22px 0 0}
.cta a{display:inline-flex;align-items:center;gap:10px;font:400 10.5px/1 var(--f-texte);letter-spacing:.26em;text-transform:uppercase;text-decoration:none;color:var(--encre);padding-bottom:6px;border-bottom:1px solid rgba(26,26,26,.35);transition:border-color .4s ease,gap .4s ease}
.cta a::after{content:"";width:16px;height:1px;background:currentColor;position:relative;transition:width .4s ease}
.cta a:hover{border-bottom-color:var(--encre);gap:14px}
.cta a:hover::after{width:22px}
/* Sectors: the whole panel is cream; the names scroll by on their own, like the partners band did. */
.svc-sec .head{margin-bottom:0}
.js .panel.svc-sec{justify-content:flex-start}
.svc-sec .svc-names{margin:auto 0;border-top:0;border-bottom:0}
.svc-sec .marquee-track>p a{color:inherit;text-decoration:none}
.svc-sec .marquee-track>p a:hover{opacity:.55}
.ccard figure::after{background:rgba(74,59,48,.72)}
.svc-sec .svc-names{margin:clamp(70px,16vh,150px) 0 auto}
.svc-pw .p .bg{opacity:.24}
.svc-pw .p:not(.on):hover .bg{opacity:.32}
/* Sector names band: same size as the block title. */
.svc-sec .marquee-track>p{font-size:clamp(28px,3.3vw,42px);margin-right:22px}
.svc-sec .marquee-track>p::after{margin-left:22px}
.svc-sec .svc-names{padding:22px 0}
/* Expertise cards: darker veil, bold white titles. */
.ccard figure::after{background:rgba(74,59,48,.82)}
.ccard .ccard-title{font-weight:700;color:#fff}
.ccard .ccard-text{color:#fff}
.svc-pw .p .bg{opacity:.16}
.svc-pw .p:not(.on):hover .bg{opacity:.24}
.hero .tag{font-size:clamp(10.5px,.8vw,14px);letter-spacing:.14em}
@media (max-width:600px){.hero .tag{font-size:10.5px;letter-spacing:.12em;padding:0 22px}}
.ccard figure::after{background:rgba(74,59,48,.72)}
.svc-sec .svc-names{margin:clamp(30px,6vh,56px) 0 0}
/* Projects and Press: a little more room at the bottom before the next block slides over. */
.panel.projects,.artae-page>.panel:nth-last-child(2){padding-bottom:clamp(96px,14vh,160px)}
/* Sectors page: lighter bands. */
.svc-pw .p .bg{opacity:.3}
.svc-pw .p:not(.on):hover .bg{opacity:.4}
/* Sectors band: almost a full screen, so only a strip of the same cream (the foot of Our expertise) shows under it before Projects slides over. */
.js .panel.svc-sec:not(.flow){min-height:calc(100svh - var(--hdr) - var(--ab) - 90px);display:flex;flex-direction:column;justify-content:flex-start;padding-top:clamp(56px,7vh,84px)}
.svc-sec .svc-names{margin:clamp(40px,9vh,90px) 0 auto}
.js .panel.cband-part{margin-top:0!important;animation:none!important;translate:none!important}
.ccard figure::after{background:rgba(74,59,48,.55)}
/* Sectors -> Projects: less empty cream under the names, more white above the Projects title. */
.svc-sec .svc-names{margin:clamp(80px,17vh,170px) 0 auto}
.js .panel.projects:not(.flow){padding-top:clamp(104px,15vh,160px)}
/* Projects: more room at the foot before Press slides in. */
.panel.projects{padding-bottom:clamp(170px,25vh,270px)}
.js .panel.projects:not(.flow):not(.hero){padding-top:clamp(104px,15vh,160px)}
.js .artae-page>.panel:nth-last-child(2){padding-bottom:clamp(170px,25vh,270px)}
/* Marion's brand colour: the whole site sits on Lin lavé #E6E2DA (charter). Footer and contact band stay night green; text on dark stays cotton paper. */
html,body{background:var(--lin)}
.panel,.hdr,.home .hdr.is-solid{background:var(--lin)}
/* Charter: no shadow on titles and cards; slow image zoom 1.00 -> 1.04 on hover. */
.svc-pw .p .ttl,.svc-pw .p.on .ttl{text-shadow:none}
.pcard:hover .wp-block-post-featured-image img{scale:1.04}
@keyframes pdrift{from{transform:scale(1.01) translate3d(-.8%,0,0)}to{transform:scale(1.05) translate3d(.8%,-.6%,0)}}
/* Phone: the Sectors accordion. Closed bands are 96 px; the open one is compact (title + text + link), never a whole screen. */
@media (max-width:900px){
	.svc-pw{--pw-closed:96px;--pw-open:260px}
	.svc-pw>.p{height:var(--pw-closed)}
	.svc-pw>.p{transition:height .4s cubic-bezier(.22,.61,.36,1),background-color .4s ease}
	.svc-pw>.p.on{height:var(--pw-open)}
	.svc-pw .p.on .ttl{top:22px;left:var(--gutter);right:var(--gutter);max-width:none;font-size:clamp(24px,7.2vw,30px);line-height:1.1}
	.svc-pw .p.on .label{left:0;right:0;top:calc(22px + 2.3 * clamp(24px,7.2vw,30px) + 12px);bottom:auto;padding:0 var(--gutter);justify-items:start;text-align:left;gap:16px}
	.svc-pw .p.on .label .txt{font-size:15px;line-height:1.6}
	.svc-pw .p.on .label .txt,.svc-pw .p.on .label .more-p{text-align:left;max-width:none}
}

/* About: justified text with a roomier line height, hyphenated so lines fill evenly instead of leaving odd gaps. */
.about-page p:not(.eyebrow):not(.lead):not(.cap):not(.link):not(.n):not(.names):not(.who):not(.back){text-align:justify!important;text-justify:inter-word;-webkit-hyphens:auto!important;hyphens:auto!important;hyphenate-limit-chars:6 3 3;line-height:1.85;text-wrap:pretty;overflow-wrap:break-word}
.about-page .phead p,.about-page .center p{text-align:center!important;hyphens:manual!important}
@media (max-width:600px){.about-page p:not(.eyebrow):not(.lead):not(.cap):not(.link):not(.n):not(.names):not(.who):not(.back){line-height:1.75;word-spacing:-.02em;hyphenate-limit-chars:6 3 3}}

/* Accueil, Our expertise : titres sur une seule ligne, tous à la même hauteur (sous-titre réservé sur 2 lignes). */
.ccard{container-type:inline-size}
.ccard .ccard-title{font-size:clamp(13px,5.3cqw,19px);letter-spacing:.05em;white-space:nowrap}
.ccard .ccard-text{min-height:3em}
/* Page Sectors : tous les noms restent visibles quand une bande est ouverte. */
.svc-pw:has(.p.on) .p:not(.on) .ttl{opacity:1}

/* Page projet : paragraphe de texte justifié (interligne conservé), coupures de mots automatiques. */
.project-content p:not(.cap):not(.pmeta):not(.lead):not(.eyebrow):not(.link){text-align:justify!important;text-justify:inter-word;-webkit-hyphens:auto!important;hyphens:auto!important;hyphenate-limit-chars:6 3 3;text-wrap:pretty;overflow-wrap:break-word}

/* Accueil, Our expertise : cartes un peu plus claires. */
.ccard figure::after{background:rgba(74,59,48,.44)}
.ccard .ccap{background:linear-gradient(to top,rgba(74,59,48,.78),rgba(74,59,48,0))}
/* Pied de page : deux colonnes en moins (logo + Follow). */
.ftr .cols{grid-template-columns:1.6fr 1fr}
@media (max-width:900px){.ftr .cols{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.ftr .cols{grid-template-columns:1fr}}

/* Accueil, Sectors we work with : tous les noms en 2 ou 3 lignes, bloc fixe, comme la phrase d'introduction. */
.svc-sec .svc-list{max-width:1000px;margin:clamp(34px,6vh,64px) auto auto;text-align:center!important;font:400 clamp(23px,2.6vw,34px)/1.6 var(--f-titre);letter-spacing:.005em;text-wrap:balance;hyphens:none}
.svc-sec .svc-list a{color:inherit;text-decoration:none;white-space:nowrap;transition:opacity .3s}
.svc-sec .svc-list a:hover{opacity:.55}
.svc-sec .svc-list .sep{opacity:.45;margin:0 .35em}

/* Même rendu des polices sur ordinateur et téléphone : lissage en niveaux de gris (sinon macOS épaissit les traits). */
html,body,.svc-pw,.svc-pw *{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-synthesis:none}

/* Projects : on arrive directement sur les projets, sans grande image ni bloc d'en-tête ; tous les projets, deux par ligne. */
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.pgrid>li,.pgrid>li.feat,.pgrid>li:first-child,.pgrid>li.no-feat{grid-column:auto!important}
.pgrid-wrap{padding-top:clamp(40px,6vw,72px)}
/* Page projet : titre à gauche, aligné sur le texte ; texte à gauche, photos à droite. */
.pj-head{padding:clamp(40px,5vw,72px) 0 clamp(24px,3vw,40px)}
.pj-head .wrap{text-align:left}
.pj-head .title{margin:14px 0 0;text-align:left}
.pj-cols{gap:clamp(28px,4vw,64px);align-items:flex-start}
.pj-cols .pj-text{flex:1 1 0!important}
.pj-cols .pj-text p{max-width:38em;line-height:1.75;margin:0 0 1.4em}
.pj-cols .pj-text p strong{font-weight:400;color:var(--encre)}
.pj-cols .pj-pics{display:grid;gap:clamp(14px,2vw,28px)}
.pj-cols .pj-pics>*{margin:0!important}

/* Pied de page compact (comme Haven) : logo + phrase à gauche, réseaux à droite sur une ligne, mentions légales dessous. */
.ftr{padding:30px 0 16px}
.ftr .cols,.ftr .cols{display:flex!important;justify-content:space-between;align-items:center;gap:20px 40px;flex-wrap:wrap}
.ftr .logo img{width:104px}
.ftr .tagline{margin:10px 0 0;font-size:15px;max-width:340px}
.ftr .cols>:last-child{text-align:right}
.ftr h2{display:inline;margin:0 14px 0 0}
.ftr .ftr-list{display:inline;line-height:1.6}
.ftr .bot{margin-top:22px;padding-top:14px}
@media (max-width:700px){.ftr .cols{flex-direction:column;align-items:flex-start}.ftr .cols>:last-child{text-align:left}}

/* Accueil, Sectors : noms plus grands, en 3 lignes équilibrées, centrés dans la hauteur du bloc. */
.svc-sec .svc-list{max-width:1300px;margin:auto!important;font-size:clamp(26px,4.3vw,66px);line-height:1.5;padding:clamp(24px,5vh,60px) 0}
.svc-sec .svc-list .sep{margin:0 .5em;opacity:.35}
@media (max-width:700px){.svc-sec .svc-list{font-size:clamp(24px,7vw,34px);line-height:1.55}.svc-sec .svc-list .sb{display:none}.svc-sec .svc-list a{white-space:normal}}

/* Accueil, Sectors : 3 lignes qui tiennent à toutes les largeurs d'ordinateur. */
.svc-sec .svc-list{font-size:clamp(24px,3.5vw,58px)}
@media (min-width:701px){.svc-sec .svc-list a{white-space:nowrap}}
/* Pages projet : images agrandissables. */
.project-content .pj-pics img,.project-content .wp-block-image img{cursor:zoom-in}
.lb{position:fixed;inset:0;z-index:2000;display:none;align-items:center;justify-content:center;background:rgba(26,26,26,.92);padding:clamp(16px,4vw,56px)}
.lb.is-open{display:flex;animation:lb-in .35s ease both}
@keyframes lb-in{from{opacity:0}to{opacity:1}}
.lb img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
.lb button{position:absolute;background:transparent;border:0;color:#F6F4EF;cursor:pointer;font:400 11px/1 var(--f-texte);letter-spacing:.3em;text-transform:uppercase;padding:14px 18px}
.lb .lb-x{top:clamp(10px,2vw,24px);right:clamp(10px,2vw,24px)}
.lb .lb-p,.lb .lb-n{top:50%;translate:0 -50%;font-size:26px;letter-spacing:0;padding:18px 20px}
.lb .lb-p{left:clamp(4px,1.5vw,20px)}
.lb .lb-n{right:clamp(4px,1.5vw,20px)}
.lb button:hover{opacity:.7}
@media (prefers-reduced-motion:reduce){.lb.is-open{animation:none}}

/* Accueil, Sectors : même style que « Art partners » (Bodoni en majuscules, æ entre les noms, tons dégradés) mais fixe. */
.svc-sec .svc-list{max-width:1300px;margin:auto!important;text-align:center!important;font:400 clamp(22px,3.2vw,52px)/1.25 var(--f-titre);letter-spacing:.015em;text-transform:uppercase;text-wrap:balance}
.svc-sec .svc-list .svc-row{display:block;margin:0 0 clamp(18px,3.2vh,34px)}
.svc-sec .svc-list .svc-row.r2{opacity:.72}
.svc-sec .svc-list .svc-row.r3{opacity:.5;margin-bottom:0}
.svc-sec .svc-list .sep{margin:0 .7em;font-size:.8em;opacity:.5;text-transform:none}
.svc-sec .svc-list a:hover{opacity:.6}
@media (min-width:701px){.svc-sec .svc-list .svc-row{white-space:nowrap}}
@media (max-width:700px){.svc-sec .svc-list{font-size:clamp(20px,6vw,28px)}.svc-sec .svc-list .svc-row{margin-bottom:14px}.svc-sec .svc-list .sep{margin:0 .45em}}
/* Page Sectors : une bande atteinte par un lien laisse la place de l'en-tête. */
.svc-pw>.p{scroll-margin-top:calc(var(--hdr) + 28px)}

/* Accueil, Sectors : taille proportionnelle à la largeur du bloc (rien ne déborde), un nom ne se coupe jamais, æ entre chaque nom. */
.svc-sec .svc-list{font-size:min(3.4vw,54px);width:100%}
.svc-sec .svc-list .svc-row,.svc-sec .svc-list a{white-space:nowrap}
.svc-sec .svc-list .sep{margin:0 .6em}
@media (max-width:700px){
	.svc-sec .svc-list{font-size:clamp(19px,6.2vw,28px)}
	.svc-sec .svc-list .svc-row{display:flex;flex-direction:column;align-items:center;gap:.1em;margin-bottom:.1em}
	.svc-sec .svc-list .sep{margin:0;font-size:.75em;line-height:1.1}
	.svc-sec .svc-list .svc-row+.svc-row::before{content:"æ";display:block;text-align:center;margin-bottom:.1em;font-size:.75em;line-height:1.1;opacity:.5;text-transform:none}
}
.figure img{cursor:zoom-in}
.pgrid>li:first-child .wp-block-post-title,.pgrid>li.feat .wp-block-post-title{font-size:clamp(24px,2.5vw,30px);line-height:1.12}

/* Pages projet : de l'air entre les photos. */
.project-content>.wp-block-image{margin-block:0 clamp(24px,3.2vw,48px)!important}
.project-content>.wp-block-image:last-of-type{margin-bottom:0!important}
.project-content .gal2{gap:clamp(24px,3.2vw,48px);margin-block:0 clamp(24px,3.2vw,48px)!important}
.project-content .gal2 .wp-block-image{margin:0!important}
.project-content>.cap{margin-top:clamp(18px,2vw,28px)!important}

/* Cadrages demandés par Marion. */
img[src*="pj-hm1"]{object-position:12% 50%}
img[src*="pj-ch1"]{object-position:50% 78%}

/* Page Sectors : chaque photo est recentrée sur son sujet dans la bande étroite (x = position horizontale, y = verticale sur téléphone). */
.svc-pw .p .bg img{object-position:var(--ox,50%) var(--oy,50%)}
.svc-pw #companies{--ox:63%;--oy:62%}
.svc-pw #hotels-restaurants{--ox:53%;--oy:40%}
.svc-pw #institutions{--ox:25%;--oy:62%}
.svc-pw #interior-architecture{--ox:58%;--oy:38%}
.svc-pw #luxury-houses{--ox:50%;--oy:70%}
.svc-pw #private-collections{--ox:47%;--oy:62%}
.svc-pw #real-estate-projects{--ox:65%;--oy:78%}

/* Accueil, Sectors : toutes les lignes en noir (plus de dégradé de gris). */
.svc-sec .svc-list .svc-row.r2,.svc-sec .svc-list .svc-row.r3{opacity:1}
img[src*="pj-pi1"]{object-position:50% 62%}

/* Accueil, Projects : petites flèches à l'extrémité droite de l'en-tête, pour inviter à parcourir les projets. */
.projects .head .side{display:flex;align-items:center;gap:clamp(18px,2.4vw,34px)}
.projects .head .arrows{gap:10px}
.projects .head .arrows svg{width:26px;height:10px}
.projects .head .arrows button{opacity:.75}
.projects .head .arrows button:hover{opacity:1}

/* Sélecteur de langue (EN | FR) */
.lang-sw{display:flex;align-items:center;gap:8px;margin-left:clamp(20px,2vw,32px);font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:700}
.lang-sw[hidden]{display:none}
.lang-sw a{opacity:.55;padding-bottom:3px;border-bottom:1px solid transparent;transition:opacity .2s,border-color .2s}
.lang-sw a:hover,.lang-sw a[aria-current]{opacity:1;border-bottom-color:currentColor}
.lang-sw span{opacity:.35}
@media (max-width:1080px){.lang-sw{position:absolute;right:var(--gutter);top:50%;translate:0 -50%;margin:0;font-size:11px}}
/* Liste des secteurs de l'accueil : taille de base un peu plus basse ; main.js réduit encore si une langue est plus longue */
@media (min-width:701px){.svc-sec .svc-list{font-size:min(2.8vw,46px)}}

/* Mobile : les noms de secteurs s'adaptent à la largeur (retour à la ligne équilibré, jamais de débordement). */
@media (max-width:700px){
	.svc-sec .svc-list{font-size:clamp(17px,5.2vw,26px);padding-left:var(--gutter);padding-right:var(--gutter);box-sizing:border-box}
	.svc-sec .svc-list .svc-row,.svc-sec .svc-list a{white-space:normal;text-wrap:balance;max-width:100%;line-height:1.2}
}
/* Projet suivant : le soulignement ne traverse plus le titre quand il passe à la ligne. */
.next .wp-block-post-navigation-link a{display:inline-block;line-height:1.2;padding-bottom:8px}

/* Accueil, Our expertise : chaque carte est cliquable et ouvre le bon bloc de la page Expertise. */
.ccard{cursor:pointer}
.ccard .ccard-title a{color:inherit;text-decoration:none}

/* Pages projet : les photos côte à côte (gal2) restent séparées quand elles s'empilent sur mobile. */
.project-content .gal2{gap:clamp(24px,3.2vw,48px)!important;row-gap:clamp(24px,3.2vw,48px)!important}
@media (max-width:781px){.project-content .gal2{flex-direction:column;flex-wrap:wrap!important}.project-content .gal2>.wp-block-column{flex-basis:100%!important;margin:0!important}}
/* Une photo seule suivie d'une paire de photos : même espace entre les deux blocs. */
.project-content>.wp-block-image+.gal2{margin-top:clamp(24px,3.2vw,48px)!important}

/* Accueil, Our expertise : 5 cartes visibles sur grand écran ; signe clair que la carte est cliquable au survol. */
@media (min-width:1100px){.commit-rail>.ccard{width:calc((var(--w) - 112px) / 5)}}
.ccard figure img{transition:transform .8s cubic-bezier(.22,.61,.36,1)}
.ccard:hover figure img{transform:scale(1.05)}
.ccard figure::after{transition:background .5s ease}
.ccard:hover figure::after{background:rgba(74,59,48,.4)}
.ccard .ccard-title a{display:inline-flex;align-items:center;gap:0}
/* 5 cartes côte à côte : titres à taille normale, sur deux lignes si besoin ; les sous-titres restent alignés entre cartes. */
@media (min-width:1100px){.commit-rail>.ccard .ccard-title{font-size:clamp(15px,6.2cqw,20px);letter-spacing:.05em;white-space:normal;line-height:1.25;min-height:2.5em;display:flex;align-items:flex-end;text-wrap:balance}}

/* Pas de flèche ni de soulignement au survol des cartes : seuls le curseur main et le léger zoom de la photo indiquent le clic. */
.ccard .ccard-title a:focus-visible{outline:1px solid rgba(255,255,255,.7);outline-offset:3px}

/* À propos, Notre méthode : textes alignés à gauche, pas justifiés. */
.about-page .steps>*>p:not(.eyebrow):not(.lead):not(.cap):not(.link):not(.n):not(.names):not(.who):not(.back){text-align:left!important;-webkit-hyphens:manual!important;hyphens:manual!important;word-spacing:normal!important}

/* Accueil, Projects : pas de flèches à côté du titre ; le carrousel défile seul, se glisse au doigt ou à la molette. */
.projects .arrows{display:none!important}

/* Page Sectors : cadrage de chaque photo sur son sujet. --ox = position horizontale (bandes verticales sur ordinateur), --oy = position verticale (bandes horizontales sur téléphone). */
.svc-pw #private-collections{--ox:50%;--oy:63%}
.svc-pw #architecture-interiors{--ox:51%;--oy:30%}
.svc-pw #institutions{--ox:46%;--oy:45%}
.svc-pw #real-estate-developments{--ox:57%;--oy:60%}
.svc-pw #hospitality{--ox:70%;--oy:47%}
.svc-pw #corporate{--ox:58%;--oy:50%}
.svc-pw #brands-maisons{--ox:40%;--oy:58%}

/* À propos : pas de coupure de mot en fin de ligne (« à tra-vers », « accom-pagne »). */
.about-page p:not(.eyebrow):not(.lead):not(.cap):not(.link):not(.n):not(.names):not(.who):not(.back){-webkit-hyphens:manual!important;hyphens:manual!important}

/* Page Sectors : en changeant de carte, le texte de la carte qui se referme ne glisse plus vers le bas ; il disparaît aussitôt, et celui de la nouvelle carte apparaît en fondu. */
.svc-pw .p .label{transform:none!important}
.svc-pw .p:not(.on) .label{opacity:0;visibility:hidden;transition:none;pointer-events:none}
.svc-pw .p.on .label{opacity:1;visibility:visible;transition:opacity .7s ease .5s}
