:root{--g:#141F19;--c:#EFE8D8;--sand:#D6C7B6;--m:#5C574F;--h:#E6DECB;--p:5vw;--arr:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M4 12 12 4M5 4h7v7'/%3E%3C/svg%3E")}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--g);color:var(--g);font:400 1.13rem/1.2 "Afacad","Afacad Variable",sans-serif;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid #c46a2c;outline-offset:3px}
h1,h2,h3,h4,.bf{font-family:"Bricolage Grotesque",sans-serif;font-weight:400}
/* h2 : 32px, « trim » vertical de -6px (comme l’original) */
h2{font-size:2rem;line-height:1.2;margin:-6px 0}
.script{font-family:"Pinyon Script",cursive;font-weight:400}
/* sections empilées au-dessus du pied de page ; la dernière est arrondie */
main>section{position:relative;z-index:3;background:var(--c)}
main>section:last-child{border-radius:0 0 24px 24px;padding-bottom:80px}
/* boutons : flèche 16x16 + trait 1x32 qui apparaît de gauche à droite */
.cta{position:relative;display:inline-flex;align-items:center;gap:8px;padding-bottom:10px;font:700 1rem/1.2rem "Afacad",sans-serif;text-transform:uppercase}
.cta:after{content:"";width:16px;height:16px;flex:none;background:currentColor;-webkit-mask:var(--arr) center/contain no-repeat;mask:var(--arr) center/contain no-repeat}
.cta:before{content:"";position:absolute;left:0;bottom:0;width:32px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.cta:hover:before,.cta:focus-visible:before{transform:scaleX(1)}
/* titres masqués jusqu'au découpage en lignes (.rd posé par le JS) */
.js h2:not(.rd):not(.nr),.js .fh h1:not(.rd){visibility:hidden}
/* en-tête : 2 états (transparent beige / flou vert), le menu déroulant hérite du même fond */
.hd{position:fixed;inset:0 0 auto;z-index:50;color:var(--h);transition:background .3s,color .3s}
/* pages sans hero (toutes sauf l'accueil) : flou + vert dès l'arrivée */
.hd.sc,.hd.open,body:not([data-hero]) .hd{background:rgba(239,232,216,.6);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);color:var(--g)}
.hi{position:relative;height:64px;margin:0 var(--p);display:flex;align-items:center;justify-content:space-between;z-index:2}
.brand{font:400 1.125rem/1 "Bricolage Grotesque",sans-serif;display:flex;align-items:baseline;gap:5px}.brand .script{font-size:1.5rem}
.logo{position:absolute;left:50%;top:8px;transform:translateX(-50%)}
.logo i{display:block;width:72px;height:48px;background:currentColor;-webkit-mask:url(/assets/images/K7yKZQDGl0FS7Knl5V46ItruUns.webp) center/contain no-repeat;mask:url(/assets/images/K7yKZQDGl0FS7Knl5V46ItruUns.webp) center/contain no-repeat}
.mb{display:flex;align-items:center;gap:10px;background:none;border:0;color:inherit;font:400 1.125rem/1 "Bricolage Grotesque",sans-serif;cursor:pointer}
/* MENU -> CLOSE (roll) et burger -> croix */
.roll{display:block;height:21.6px;overflow:hidden;text-align:right}
.roll span{display:block;height:21.6px;line-height:1.35rem;transition:transform .5s cubic-bezier(.7,0,.2,1)}
.hd.open .roll span,.cfm.x .roll span{transform:translateY(-100%)}
.bg{position:relative;display:block;width:26px;height:16px}
.bg i{position:absolute;right:0;top:0;width:26px;height:1.4px;background:currentColor;transform-origin:100% 50%;transition:transform .5s cubic-bezier(.7,0,.2,1),top .5s cubic-bezier(.7,0,.2,1),opacity .3s,transform-origin .5s}
.bg i:nth-child(2){top:7.3px;transform:scaleX(.77)}.bg i:nth-child(3){top:14.6px;transform:scaleX(.54)}
.hd.open .bg i:nth-child(1),.cfm.x .bg i:nth-child(1){top:7.3px;transform:rotate(45deg) scaleX(.62);transform-origin:50% 50%}
.hd.open .bg i:nth-child(2),.cfm.x .bg i:nth-child(2){opacity:0;transform:scaleX(0)}
.hd.open .bg i:nth-child(3),.cfm.x .bg i:nth-child(3){top:7.3px;transform:rotate(-45deg) scaleX(.62);transform-origin:50% 50%}
/* voile sombre sur la page quand le menu est ouvert (toutes pages, toutes tailles — demande du 30/10/2026) : délimite le menu ; un toucher sur le voile ferme le menu */
body:after{content:"";position:fixed;inset:0;z-index:49;background:rgba(20,31,25,.3);opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s}
html.mopen body:after{opacity:1;visibility:visible}
@media(prefers-reduced-motion:reduce){body:after{transition:none}}
.menu{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s ease;visibility:hidden}
.menu.open{grid-template-rows:1fr;visibility:visible}
.menu>div{overflow:hidden;min-height:0}
.mc{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:0 var(--p);padding:32px 0 40px}
.big{position:relative;display:block;margin-bottom:16px;padding:13px 0 12px;font:400 1.375rem/1.65rem "Bricolage Grotesque",sans-serif;transition:font-weight .25s}
.big:before,.big:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px}
.big:before{background:linear-gradient(90deg,#EFE8D8,rgba(239,232,216,0))}
.big:after{background:linear-gradient(90deg,var(--g),rgba(20,31,25,0));transform:scaleX(0);transform-origin:left;transition:transform .45s ease}
.big:hover,.big:focus-visible{font-weight:700}.big:hover:after,.big:focus-visible:after{transform:scaleX(1)}
.mc .row{display:flex;align-items:center;gap:32px;margin-top:24px}
.mc .lang{display:flex;gap:16px;margin-top:20px;font:600 0.875rem "Afacad",sans-serif}.lang [aria-current]{border-bottom:1px solid}
.ico{width:24px;height:24px}
/* hero collant (z-index 3 : le pied de page, z-index 1, passe derrière) : la vidéo naît en cercle (200px) puis s'agrandit */
.hero{position:sticky;top:0;z-index:3;height:100svh;min-height:560px;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;color:var(--c);background:var(--g)!important}
.vid{position:absolute;left:50%;top:50%;z-index:1;width:100%;height:100%;overflow:hidden;transform:translate(-50%,-50%);animation:c1 .8s .3s cubic-bezier(.22,1,.36,1) backwards,c2 1.1s 1s cubic-bezier(.65,0,.35,1) backwards}
@keyframes c1{from{transform:translate(-50%,-50%) scale(.005);opacity:0}}
@keyframes c2{from{width:200px;height:200px;border-radius:50%}}
.vid video{position:absolute;left:50%;top:50%;width:100vw;height:100svh;object-fit:cover;transform:translate(-50%,calc(-50% + var(--py,0%))) scale(1.3)}
.vid i{position:absolute;inset:0;background:#000;opacity:.4;animation:ov 1.1s 1s backwards}
@keyframes ov{from{opacity:0}}
.hero .txt{position:relative;z-index:2;width:90%;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:end;padding-bottom:83px}
.hero h1{font-size:3.25rem;line-height:1.1;letter-spacing:-.02em}
.hero h1 .script{display:block;font-size:4.25rem;line-height:1.1;letter-spacing:-.02em}
.hero p{line-height:1.2;margin-bottom:20px}
.rv{animation:up .8s 2.1s ease-out backwards}
@keyframes up{from{opacity:0;transform:translateY(30px)}}
/* intro */
.intro{padding:80px 0 79px}
.intro .tx{width:70%;margin:0 auto}
.intro .lux{font-size:1.43rem;line-height:1.2;margin-bottom:28px}
/* diaporama collant piloté par le défilement */
.slides{background:#000!important}
.slide{position:relative;min-height:100svh;overflow:hidden;color:var(--c);display:flex;align-items:center}
.slide>img{position:absolute;left:0;top:-15%;width:100%;height:130%;object-fit:cover;opacity:.5;transform:translateY(var(--pp,0px))}
.slide:after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.2),transparent 40%)}
.slide .tx{position:relative;z-index:2;width:90%;margin:0 auto;display:grid;grid-template-columns:30.5vw 29.1vw 1fr;align-items:start}
.slide h3{font-size:2rem;line-height:2rem;letter-spacing:-.04em}
.slide p{font:400 1rem/1.5rem "Afacad",sans-serif}.slide .cta{justify-self:end;margin-top:12px}
.pg{position:absolute;z-index:3;bottom:2rem;left:50%;transform:translateX(-50%);display:none;flex-direction:column;align-items:center;gap:8px;color:var(--c)}
.pg i{font:italic 700 0.875rem/0.875rem "Afacad",sans-serif;letter-spacing:.05em}.pg span{display:flex;align-items:center;font:700 0.9375rem/1.21875rem "Afacad",sans-serif;letter-spacing:-.01em}.pg b{min-width:2rem;font-weight:inherit}.pg b:first-child{text-align:right}.pg u{width:40px;height:1px;margin:0 1rem;background:currentColor}
.js .slides{height:calc(var(--n)*100svh)}
.js .st{position:sticky;top:0;height:100svh;overflow:hidden}
.js .slide{position:absolute;inset:0;min-height:0;opacity:0;visibility:hidden;transition:opacity .8s}
.js .slide.on{opacity:1;visibility:visible}
.js .slide.on>img{animation:z .8s ease-out}@keyframes z{from{scale:1.1}}
.js .slide .tx{position:absolute;left:5%;right:5%;top:50%;width:auto;margin:0;opacity:0;transform:translateY(calc(-50% + 50px))}
.js .slide.on .tx{opacity:1;transform:translateY(-50%);transition:opacity .6s .3s,transform .6s .3s}
.js .pg{display:flex}
/* collection : texte + cartes défilent ensemble dans une seule bande, 100vh, padding 80 haut/bas */
.col{height:100svh;min-height:560px;padding:80px 0;display:flex;flex-direction:column;background:#EFE7D8!important}
.col p{margin-top:8px}
.scr{flex:1;min-height:0;display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-left:var(--p);scroll-padding-left:var(--p)}
.scr::-webkit-scrollbar{display:none}
/* marge finale à droite = marge gauche (72px) */
.scr:after{content:"";flex:0 0 calc(var(--p) - 8px);scroll-snap-align:end}
.ct{flex:0 0 400px;scroll-snap-align:start}
.card{position:relative;flex:0 0 400px;height:100%;scroll-snap-align:start;display:flex;align-items:flex-end;padding:16px;color:#EFE7D8;overflow:hidden}
.card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* dégradé d'origine ; au survol (.4s) le haut s'assombrit et les caractéristiques apparaissent */
.card:before,.card:after{content:"";position:absolute;inset:0;transition:opacity .4s cubic-bezier(.44,0,.56,1)}
.card:after{background:linear-gradient(rgba(0,0,0,0) 36.02%,rgba(0,0,0,.85) 90.63%)}
.card:before{z-index:1;background:linear-gradient(rgba(0,0,0,.35) 36.02%,rgba(0,0,0,.85) 90.63%);opacity:0}
.card:hover:before,.card:focus-visible:before{opacity:1}.card:hover:after,.card:focus-visible:after{opacity:0}
.card div{position:relative;z-index:2}
.card small{display:block;font:900 0.75rem/0.9rem "Bricolage Grotesque",sans-serif}
.card h3{font:700 1.5rem/1.8rem "Bricolage Grotesque",sans-serif;margin-bottom:8px}
.card .l{text-transform:uppercase}.card .l b{font-weight:900}.card .l span{font-weight:400}
.card .d{font-weight:400;max-height:0;margin-top:0;opacity:0;overflow:hidden;transition:max-height .4s cubic-bezier(.44,0,.56,1),margin-top .4s cubic-bezier(.44,0,.56,1),opacity .4s}
.card:hover .d,.card:focus-visible .d{max-height:15px;margin-top:24px;opacity:1}
.arr{flex:none;height:56px;display:flex;justify-content:flex-end;align-items:flex-end;gap:24px;padding-right:var(--p)}
.arr button{background:none;border:0;cursor:pointer;color:var(--g);transition:opacity .2s}.arr button:disabled{opacity:.3;cursor:default}
.arr svg{width:38px;height:12px;display:block}.arr .an svg{transform:scaleX(-1)}
/* chiffres */
.head{display:flow-root;background:#EFE7D8!important;padding:0 var(--p) 80px}
.head .pp{margin-top:8px}.head .pp+.pp{margin-top:0;font-style:italic}
.head .cta{margin-top:28px}
.stats{display:grid;grid-template-columns:24.7vw 22.5vw 22.5vw 1fr;margin-top:35px}
.stats strong{display:block;font:800 2.75rem/2.75rem "Afacad",sans-serif;letter-spacing:-.03em}
.stats p>span{display:block;max-width:260px;margin-top:6px;font:600 0.875rem/1.1875rem "Afacad",sans-serif;color:var(--m);text-transform:uppercase}
/* local pedigree : image parallax à gauche, texte 50 % sur fond sable */
.band{display:grid;grid-template-columns:1fr 1fr;min-height:320px;background:var(--sand)!important}
.pi{position:relative;overflow:hidden;background:#111}
.pi img{position:absolute;left:0;top:-100px;width:100%;height:calc(100% + 200px);max-width:none;object-fit:cover;will-change:transform}
.pi:after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.3)}
.bt{display:flex;flex-direction:column;align-items:flex-start;padding:80px var(--p) 80px 32px}
.bt p{margin-top:8px}.bt .cta{margin-top:28px}
/* insights */
.ih{padding:80px 0 80px}
.ih .t{margin:0 var(--p);display:grid;gap:0;justify-items:start}
.ih .t p{margin-top:8px;max-width:1296px}.ih .t .cta{margin-top:29px}
.arts{display:grid;grid-template-columns:repeat(3,384px) 1fr;margin-top:35px;padding-left:var(--p);border-block:1px solid var(--sand)}
.arts:after{content:"";border-left:1px solid var(--sand)}
.arts a{display:flex;flex-direction:column;align-items:flex-start;padding:24px 16px 27px;border-left:1px solid var(--sand);min-height:270px;transition:background-color .3s}
/* cartes « Read brief » : fond sable au survol (demande utilisatrice) */
.arts a:hover,.arts a:focus-visible,.air a:hover,.air a:focus-visible{background-color:var(--sand)}
.arts small{font:400 1rem/1.2rem "Afacad",sans-serif;text-transform:uppercase;margin-bottom:6px}
.arts h4{font-size:1.5rem;line-height:1.8rem;margin-bottom:15px}
.arts p{margin-bottom:auto;padding-bottom:12px}
/* l'original resserre titre → texte de 8px sur la 2e carte */
.arts a:nth-child(2) h4{margin-bottom:7px}
.arts a:hover .cta:before{transform:scaleX(1)}
/* pied de page collant, révélé sous le contenu */
.ft{position:sticky;bottom:0;z-index:1;height:476px;background:var(--g);color:var(--c);padding:100px var(--p) 0}
.ft .cols{display:grid;grid-template-columns:543px 412px 1fr;column-gap:0}
.ft .lg{display:flex;align-items:flex-start;gap:8px}.ft .lg img{width:120px;height:80px;object-fit:contain}
.ft .lg div{padding-top:6px;font:400 1.5rem/1.8rem "Bricolage Grotesque",sans-serif}.ft .lg .script{display:block;font-size:2rem;line-height:2.4rem}
.ft .tag{margin-top:8px;max-width:300px;font:400 0.88rem/1.40625rem "Afacad",sans-serif}
.ft ul{list-style:none;padding-top:8px}.ft .cols>div:last-child{padding-top:8px}.ft li{margin-bottom:34.3px}
/* liens : soulignement dégradé, même espacement que le bouton « Inquire » */
.ft a.u{position:relative;display:inline-block;padding-bottom:10px;margin-bottom:-10px}
.ft a.u:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:linear-gradient(90deg,var(--c),rgba(239,232,216,0));transform:scaleX(0);transform-origin:left;transition:transform .4s ease}
.ft a.u:hover:after,.ft a.u:focus-visible:after{transform:scaleX(1)}
.ft .row{display:flex;align-items:center;gap:32px;margin-top:29px}
.ft .fine{position:absolute;left:var(--p);right:var(--p);bottom:52px;padding-top:51px;border-top:1px solid #222;display:flex;justify-content:space-between;font:400 0.88rem/1.23125rem "Afacad",sans-serif;color:#8A8A8A}
.ft .fine nav{display:flex;gap:32px}.ft .fine nav a{white-space:nowrap}
/* Privacy / Terms : soulignement gris au survol */
.ft .fine a.u:after{background:linear-gradient(90deg,#8A8A8A,rgba(138,138,138,0))}
/* ===== sous-pages ===== */
/* titre de page */
.ph{padding:144px var(--p) 80px;display:flex;align-items:flex-end;gap:32px}.ph>*{flex:1}
/* --om : décalage optique du titre (−1px par défaut, −3px sur Core Divisions) */
.ph h1{font-size:3.25rem;line-height:1.2;margin:-6px 0 -6px var(--om,-1px)}
.ph.g8{gap:8px}
/* sections « process » (Core Divisions) : piste de 2500px (intérieur collant) + 80px d'écart ; image / titre + description / 4 étapes */
.dv{padding:0 0 80px}
.dv .stk{width:90%;margin:0 auto}
.dv .im{position:relative;overflow:hidden}.dv .im img{width:100%;height:min(40vw,560px);object-fit:cover}
.dv .dh{display:flex;align-items:flex-start;margin:32px 0}.dv .dh>*{flex:1}
.dv .st4{display:flex;gap:32px}
/* l'original espace les étapes de 16px sur les divisions 2 et 3 */
.dv~.dv .st4{gap:16px}
.dv .s{flex:1;cursor:pointer}
.dv .s .n,.dv .s h3{color:var(--tc,var(--g))}
.dv .s .n{display:block;font-size:0.88rem;opacity:.5;margin-bottom:4px}
.dv .s h3{font:700 0.875rem/1.2 "Afacad",sans-serif;margin-bottom:8px}
.dv .b{height:2px;border-radius:1px;background:rgba(214,199,182,.35);overflow:hidden}.dv .b i{display:block;height:100%;width:100%;background:var(--g)}
.dv .pw{margin-top:24px}
/* 160px de défilement par étape (2 crans de molette maximum), quelle que soit la hauteur d'écran — demande utilisatrice */
.js .dv .trk{height:calc(100svh + 640px)}
.js .dv .stk{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;padding:0 0 32px}
.js .dv .im{flex:1;min-height:0;margin-bottom:32px}.js .dv .im img{position:absolute;inset:0;height:100%}
.js .dv .dh{flex:none;margin:0 0 32px}.js .dv .st4{flex:none}
/* ===== fiches des biens ===== */
/* hero : image 47,5 % (révélée par un masque gauche → droite) | infos à partir de 50 % */
.fh{height:100svh;min-height:640px;display:grid;grid-template-columns:47.5% 1fr}
.fhi{position:relative;overflow:hidden}.fhi img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* le masque est sur l'enfant : un élément entièrement masqué ne déclenche pas l'IntersectionObserver */
.js [data-mr]>*{clip-path:inset(0 100% 0 0);transition:clip-path .8s cubic-bezier(.44,0,.56,1)}.js [data-mr].in>*{clip-path:inset(0)}
.fht{display:flex;flex-direction:column;justify-content:space-between;padding:104px var(--p) 80px 2.5vw}
.fhk{display:flex;justify-content:space-between;font:500 0.75rem/1.2 "Bricolage Grotesque",sans-serif}.fhk b{font-weight:900}
.loc{display:block;margin-bottom:8px;font:400 0.75rem/1.2 "Bricolage Grotesque",sans-serif;text-transform:uppercase}.loc b{font-weight:900}
/* trims d'origine de la fiche : h1 −11px, h2 0 */
.fh h1{font-size:3.25rem;line-height:1.2;margin:-11px 0 -11px var(--om,-1px)}
.fhb p{margin-top:8px}
.fp h2,.fx h2,.fgo h2{margin:0}
.pr{display:flex;justify-content:space-between;margin-top:24px;font:400 1.5rem/1.2 "Bricolage Grotesque",sans-serif}.pr strong{font-weight:500}
/* lien dossier | fiche technique + texte */
.fd{display:grid;grid-template-columns:1fr 1fr;padding:80px var(--p)}
.fd .cta{margin-top:10px}
/* lignes de 56px, contenu centré (valeurs sur 1 ou 2 lignes) */
.spec div{display:grid;grid-template-columns:205px 1fr;align-items:center;height:56px;border-top:1px solid var(--g)}.spec div:last-child{height:57px;border-bottom:1px solid var(--g)}
/* l'original trace en #222 les traits des 3e et 4e lignes */
.spec div:nth-child(3),.spec div:nth-child(4){border-top-color:#222}
.spec dt{font:700 1.13rem/1.2 "Bricolage Grotesque",sans-serif}
.fd p{margin-top:32px}
/* performances */
.fp{padding:80px var(--p)}
.fp .it{margin-top:8px;font-style:italic}.fp .nt{margin-top:32px;color:rgba(20,31,25,.7)}
.stats.s3{grid-template-columns:repeat(3,1fr);margin-top:24px}.s3 p+p{padding-left:32px}.s3 p:not(:last-child){padding-right:32px}
/* infrastructure : cadre et colonnes séparés par des traits sable */
.fx{padding:80px 0}
.fxa{border-top:1px solid var(--sand)}.fxc{border-block:1px solid var(--sand)}
.fxt{margin:0 var(--p);padding:32px 16px;border-right:1px solid var(--sand)}
.fxt p{margin-top:8px}.fxt .cta{margin-top:28px}
.fxg{display:grid;grid-template-columns:repeat(var(--n,4),1fr);margin:0 var(--p)}
.fx.pb0{padding-bottom:0}
.fxg>div{display:flex;flex-direction:column;justify-content:space-between;height:var(--ch,264px);padding:32px 16px}.fxg>div:not(:last-child){border-right:1px solid var(--sand)}
.fxg h3{font:500 1.5rem/1.2 "Bricolage Grotesque",sans-serif}
/* grande image, bloc stewardship, mosaïque */
.fg{padding-top:80px}
.fgw{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:center bottom}
/* bas à 84px : le bouton d'origine mesure ~33px de haut contre 29px ici */
.fgo{display:grid;grid-template-columns:1fr 1fr;padding:80px var(--p) 84px}.fgo .cta{margin-top:28px}
.mos{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mos>div{display:flex;flex-direction:column;gap:8px}
.mos img{width:100%;height:401px;object-fit:cover;object-position:center bottom}.mos>div:last-child img{flex:1;height:auto;min-height:0;object-position:center}
/* citation centrée (Casa Amacor) ; second paragraphe en italique du bloc titre | texte */
.fq{padding:80px var(--p)}.fq p{max-width:900px;margin:0 auto;font-size:1.5rem;text-align:center}
.fgo .it{margin-top:20px;font-style:italic}
/* Arboreto : tableau des disponibilités (lignes 79/108px, traits verts) + aperçu photo qui suit le curseur */
.fav .cta{margin-top:28px}
.fav{padding-bottom:103px}.fdoc{padding-bottom:44px}
.avw{margin-top:42px;overflow-x:auto}
.avl{width:100%;border-collapse:collapse;table-layout:fixed;text-align:left}
.avl tr{border-top:1px solid var(--g)}.avl tr:last-child{border-bottom:1px solid var(--g)}
.avl col{width:220px}.avl col:last-child{width:196px}
.avl th,.avl td{height:108px;padding:0;vertical-align:middle}.avl tr:first-child>*{height:79px}
.avl th{font:700 1.13rem/1.2 "Bricolage Grotesque",sans-serif}
.avl td{letter-spacing:-.01em;cursor:pointer}.avl td span{display:block}.avl td span+span{margin-top:6px}.avl td b{font-weight:600;color:#5E775C}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hvp{position:fixed;left:0;top:0;z-index:60;pointer-events:none;opacity:0;transition:opacity .25s}
.hvp img{width:250px;height:150px;object-fit:cover;border-radius:12px;transform:scale(.8) rotate(-5deg);transition:transform .45s cubic-bezier(.34,1.56,.64,1)}
.hvp.on{opacity:1}.hvp.on img{transform:none}
/* Coco Haven : phases sous le texte, dernière section (bouton d'origine ~33px) */
.phs{list-style:none;margin-top:21px}.phs li+li{margin-top:21.3px}.phs b{font-weight:700}
.fgo:last-child{padding-bottom:84px}
/* plan des parcelles : carte (légende + SVG) | panneau 420px (détails + photo 38 %) */
.pm{padding:80px 0}
.avn{display:none}
.pms{height:100%}
.pmw{display:flex;gap:32px;height:calc(100svh - 160px);min-height:560px;overflow:hidden;background:#131F19;border-block:1px solid var(--g)}
.pmm{position:relative;flex:1;min-width:0;padding:32px 0 32px 5vw}
.pml{position:absolute;top:32px;left:5vw;right:32px;z-index:1;display:flex;flex-wrap:wrap;align-items:center;gap:10px 32px;font:600 1.25rem "Afacad",sans-serif;color:#EFE8D8;pointer-events:none}
.pml span{display:flex;align-items:center;gap:12px}.pml i{width:14px;height:14px;border-radius:7px}.pml .ln{width:36px;height:0;border-radius:0;border-top:3px dashed #969696}
.pmm svg{display:block;width:100%;height:100%;outline:none;-webkit-tap-highlight-color:transparent}.pmm svg:focus-visible{outline:2px solid #c46a2c;outline-offset:-2px}
.pc{cursor:pointer;outline:none}.pc .ov{fill-opacity:0;transition:fill-opacity .2s ease}.pc.hv .ov{fill-opacity:.55}.pc.on .ov{fill-opacity:.8}
.bd{transform-box:fill-box;transform-origin:center;transition:transform .2s ease}.bd.on{transform:scale(1.18)}.bd text{font:600 1.125rem "Afacad",sans-serif;fill:#EFE8D8}
.pmp{flex:0 0 min(420px,42%);max-width:50%;display:flex;flex-direction:column;background:#EFE7D8;color:#131F19}
.pmc{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;padding:28px 5vw 0 32px}.pmc.g{padding-bottom:32px}
.pmh{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:16px;border-bottom:1px solid #131F19}
.pmh h3{font:700 2rem/1.1 "Bricolage Grotesque",sans-serif}.pmh>div{display:flex;gap:8px}
.pmb{display:flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;border-radius:17px;border:1px solid #131F19;background:none;color:#131F19;cursor:pointer;touch-action:manipulation}
.pmb svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pmr div{display:flex;align-items:flex-start;gap:12px;padding:18px 0;border-bottom:1px solid #131F19}
.pmr dt{flex:none;width:38%;font:700 1.0625rem "Bricolage Grotesque",sans-serif}
.pmr dd{min-width:0;font:400 0.9375rem/1.35 "Bricolage Grotesque",sans-serif;overflow-wrap:anywhere}.pmr dd b,.pmr dd span{display:block}.pmr dd b{font-weight:700}
.pmr.f{animation:pmf .2s}@keyframes pmf{from{opacity:0}}
.pmg{flex:1;min-height:0;margin-top:24px;position:relative;overflow:hidden}.pmg img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.pmi{flex:0 0 38%;position:relative;overflow:hidden}.pmi img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .25s}
/* Advisory Insights : grille de cartes (colonnes 374px, traits sable) */
.aig{padding-bottom:80px}
.air{display:grid;grid-template-columns:repeat(3,374px) 1fr;padding-left:var(--p);border-bottom:1px solid var(--sand)}.air:first-child{border-top:1px solid var(--sand)}
.air>*{border-left:1px solid var(--sand)}
.air a{display:flex;flex-direction:column;align-items:flex-start;padding:25px 15px 26px;transition:background-color .3s}
.air small{font:400 1rem/1.2rem "Afacad",sans-serif;text-transform:uppercase;margin-bottom:6px}
.air h4{font-size:1.5rem;line-height:1.8rem;margin-bottom:16px}.air .t8 h4{margin-bottom:8px}
.air p{margin-bottom:auto;padding-bottom:12px}.air a:hover .cta:before{transform:scaleX(1)}
/* article : en-tête encadré (841px) | corps décalé de 18vw, traits sable */
.arh{padding-top:64px;border-bottom:1px solid var(--sand)}
.arhb{width:842px;max-width:calc(100% - var(--p));margin-left:var(--p);padding:32px 24px 24px;border-right:1px solid var(--sand)}
.arhb small{display:block;margin-bottom:10px;font:400 1rem/1.2rem "Afacad",sans-serif;text-transform:uppercase}
.arhb h1{max-width:560px;font-size:3.25rem;line-height:1.2;margin:-6px 0 -6px var(--om,-1px)}
.arhb p{margin-top:9px;font-style:italic}
.arb{padding:0 var(--p) 0 calc(var(--p) + 18vw);border-bottom:1px solid var(--sand)}
.arbi{padding:80px 0 80px 24px;border-left:1px solid var(--sand)}
.ah{font:600 1.5rem/1.2 "Afacad",sans-serif;margin:80px 0 0}.ah:first-child{margin-top:0}.ah+p{margin-top:8px}
.ad{padding:80px var(--p)}.ad p{margin-top:8px}.ad .cta{margin-top:28px}.ad:last-child{padding-bottom:82px}.ad.c20 .cta{margin-top:20px}
/* Our Philosophy : séquence (conteneur 250vh, intérieur collant) — état final si pas de JS */
.ps{height:250vh}
.psk{position:sticky;top:0;height:100vh;overflow:hidden}
.psw{position:absolute;top:50%;left:50%;z-index:10;display:flex;align-items:center;transform:translate(-50%,-50%);font-weight:400;color:#000;white-space:nowrap}
.pwl,.pwr{display:flex;align-items:center}.pwm{display:block;overflow:hidden}.pwc{padding:0 30px 30px 0;margin:0 -30px -30px 0}
.pwm>span{display:inline-block;line-height:1.1}.pwl .pwm>span{font:400 clamp(2.2rem,6vw,3.25rem)/1.1 "Bricolage Grotesque",sans-serif}.pwr .script{font-size:clamp(2.8rem,8vw,4.25rem)}
.psb{position:absolute;top:50%;left:50%;z-index:5;width:100vw;height:100vh;overflow:hidden;transform:translate(-50%,-50%)}
.psm{width:100%;height:100%;max-width:none;object-fit:cover}
.pss{position:absolute;inset:0;pointer-events:none;opacity:0}
.psl,.psr{position:absolute;top:0;height:100%;overflow:hidden}.psl{left:0;width:60%}.psr{right:0;width:40%}
.psl img,.psr img{position:absolute;top:0;width:100vw;height:100vh;max-width:none;object-fit:cover}.psl img{left:0}.psr img{right:0}
/* Our Philosophy : le volet droit monte avec le défilement — animation liée au défilement gérée par le navigateur (fluide sur mobile),
   0 → 40 % du parcours de la section (même courbe que l'ancien calcul JS) ; navigateurs sans cette fonction : JS (main.js) — 30/10/2026 */
.psr{will-change:transform}
@keyframes psrise{from{transform:translate3d(0,100vh,0)}to{transform:none}}
.sdt .ps{view-timeline:--ps block}
.sdt .psr{animation:psrise linear both;animation-timeline:--ps;animation-range:contain 0% contain 40%}
.psg{position:absolute;inset:0;z-index:1;background:rgba(20,16,12,.62) radial-gradient(ellipse at center,rgba(10,7,4,.35) 0%,rgba(10,7,4,0) 75%);-webkit-backdrop-filter:blur(10px) brightness(.65) saturate(1.1);backdrop-filter:blur(10px) brightness(.65) saturate(1.1)}
.psp{position:absolute;top:50%;left:calc(60% + 32px);right:5%;z-index:2;transform:translateY(-50%)}.psp p{color:#333}
.psn{position:absolute;inset:0;z-index:15;display:flex;align-items:center;justify-content:center;pointer-events:none}
.psni{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start;width:90%;pointer-events:auto;color:var(--c)}
.pst{overflow:hidden;padding-bottom:10px}.psni h2{margin:0;font-size:2rem;line-height:1.2;text-shadow:0 2px 24px rgba(0,0,0,.35)}.psni p{text-shadow:0 1px 16px rgba(0,0,0,.35)}
.js .psw .pwm>span{transform:translateY(120%)}.js .psb{width:0;height:0;left:43.5%;opacity:0;border-radius:8px}.js .psm{transform:scale(1.35);filter:blur(14px)}
.js .psg,.js .psn{opacity:0}.js .psp p{opacity:0;transform:translateY(20vh)}
/* équipe : texte 35 % | 2 colonnes de rôles (traits #222) */
.tm{display:grid;grid-template-columns:35% 1fr;gap:32px;align-items:start;padding:80px var(--p)}
.tmg{display:grid;grid-template-columns:1fr 1fr;gap:64px 32px}.tmg>div{padding-top:16px;border-top:1px solid #222}
.tmg h3{font:400 1.5rem/1.2 "Bricolage Grotesque",sans-serif}.tmg p{margin-top:7px}
/* Portfolio Performance : titre | accroche ; chiffres sur fond sable ; cartes Airbnb (sans survol, sans lien) */
.pfh{display:grid;grid-template-columns:1fr 1fr;align-items:end;padding:144px var(--p) 80px}
.pfh h1{font-size:3.25rem;line-height:1.1}.pfh>div{padding-left:32px}.pfh .ld{font:700 1.13rem/1.2 "Bricolage Grotesque",sans-serif}.pfh .ld+p{margin-top:6px;max-width:540px}
.pfm{padding:80px var(--p);text-align:center;background:var(--sand)!important}.pfm h2,.pfa h2{margin:0}.pfm .it,.pfa .it{font-style:italic}
.stats.s4c{grid-template-columns:repeat(4,1fr);margin-top:65px;text-align:left}.s4c>div{display:flex;justify-content:center;padding:0 32px}.s4c>div:first-child{padding-left:0}.s4c>div:last-child{padding-right:0}.s4c p{width:fit-content}
.pfa{padding:80px var(--p)}.pfa .cta{margin-top:20px}
.abg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:66px}
.abc{position:relative;height:396px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;color:#EFE7D8}
.abc>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.abc:after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,0) 40%,rgba(0,0,0,.85) 81%)}
.abc>div{position:relative;z-index:1;display:flex;flex-direction:column;gap:8px;padding:16px}
.abc .loc{margin:0}.abc h3{margin:-8px 0 3px;font:700 1.5rem/1.2 "Bricolage Grotesque",sans-serif}
.abr{display:flex;align-items:center;gap:9px;margin-top:0;font:400 1rem/1.2 "Bricolage Grotesque",sans-serif}
.abs{display:flex;align-items:center;gap:4px;flex:none}.abs b{font-weight:700}.abst{width:16px;height:16px;margin:4px 0;fill:#EFE7D8}
.abv{flex:1;display:flex;align-items:center;gap:4px;min-width:0}.abd{color:#808080}.abp{font-weight:200;white-space:pre}.abr.nb{height:27px}
.abb{flex:none;padding:4px 8px;border-radius:1000px;background:rgba(255,255,255,.39);-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px);font-size:0.88rem}
/* pages légales : blocs de section espacés de 64px, titres 16px au-dessus du texte */
.lgl{padding:144px var(--p) 80px}.lgl.lgp{padding-bottom:91px}.lgb+.lgb{margin-top:64px}
.lgl h1{font-size:3.25rem;line-height:1.2;margin:0 0 16px}.lgl h1+p{font:400 1.5rem/1.2 "Bricolage Grotesque",sans-serif}
.lgl h2{font:700 2rem/1.2 "Bricolage Grotesque",sans-serif;margin:0 0 16px}
.lgl strong{font-weight:700}.lgl a{text-decoration:underline}
.lgl ul{list-style:none}.lgl li{position:relative;padding-left:18.83px}.lgl li:before{content:"•";position:absolute;left:0}
/* Portfolio : bouton dans la case libre à droite de Villa Ker Azul, en bas à gauche */
.abx{display:flex;align-items:flex-end;padding:16px}
/* ===== formulaire de contact (js/contact.js) : plein écran depuis un bouton, ou intégré à /contact-form/ ===== */
.cfm{display:flex;flex-direction:column;background:var(--c);color:var(--g)}
.cfo-m{position:fixed;inset:0;z-index:1000;opacity:0;transition:opacity .3s}.cfo-m.on{opacity:1}
.cftop{position:relative;flex:none;display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 var(--p);box-shadow:inset 0 -1px rgba(20,31,25,.08)}
.cfbr{display:flex;align-items:baseline;gap:5px;font:400 1.125rem/1 "Bricolage Grotesque",sans-serif}.cfbr .script{font-size:1.5rem}
/* barre de progression : commence après l'image (40 %) pour rester visible */
.cfpb{position:absolute;left:0;right:0;bottom:0;height:1px;background:transparent}.cfpb i{display:block;width:calc(40% + 60% * var(--pr,0));height:100%;background:var(--g);transition:width .7s cubic-bezier(.22,1,.36,1)}
.cfsc{flex:1;min-height:0;overflow:hidden}
/* cadre : 90 % de large, haut à 96px (64 + 32), image 35 % | formulaire (défile seul) */
/* cadre : image collée en haut, en bas et à gauche (35 %) | formulaire (haut à 96px, boutons en bas à droite) */
/* image 40 % | 5vw | formulaire | 5vw — contenu centré dans sa colonne */
.cffr{display:flex;gap:var(--p);height:calc(100svh - 64px);min-height:480px}
.cfim{flex:0 0 40%;height:100%}.cfim img{width:100%;height:100%;max-width:none;object-fit:cover}
/* apparition de l'image de gauche à droite, comme le hero des fiches (+.3s, .8s) */
.cfim img{animation:cfmr .8s cubic-bezier(.44,0,.56,1) .3s both}@keyframes cfmr{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
/* tailles resserrées : chaque étape tient sans défilement (1280×720 et plus) */
.cfin{flex:1;min-width:0;height:100%;overflow-y:auto;display:flex;flex-direction:column;padding:64px var(--p) 64px 0}
.cfw{flex:1;display:flex;flex-direction:column;width:100%;max-width:720px;margin:0 auto}
.cfw{transition:opacity .25s,transform .25s}.cfw.out{opacity:0;transform:translateY(8px)}
.cfo{font:400 0.75rem/1.2 "Afacad",sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--m)}
.cft{margin:16px 0 0;font:400 clamp(1.625rem,3.6vh,2.125rem)/1.15 "Bricolage Grotesque",sans-serif;letter-spacing:-.01em;outline:0}
.cfs{max-width:620px;margin-top:4px;font-size:1.0625rem;line-height:1.4;opacity:.7}
.cfo b{font-weight:700}
.cfg{display:grid;gap:clamp(6px,1.1vh,10px);margin-top:clamp(14px,2.6vh,28px)}
/* étape 1 : cartes empilées, titre sur une ligne */
.cf3{display:flex;flex-direction:column}.cf3 .cf3 .cfc b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cf3 .cfc i{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* étapes 2 et 3 : choix empilés */
.cf4{display:flex;flex-direction:column}
.cfc{position:relative;display:block;cursor:pointer}.cfc input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.cfc span{position:relative;display:flex;flex-direction:column;justify-content:center;gap:8px;height:100%;min-height:calc(2*clamp(9px,1.2vh,16px) + 49px);padding:clamp(9px,1.2vh,16px) 20px;border:1px solid rgba(20,31,25,.14);border-radius:4px;transition:background-color .35s cubic-bezier(.22,1,.36,1),border-color .35s cubic-bezier(.22,1,.36,1)}
/* indicateur rond, de la couleur de la bordure, visible seulement quand la carte est choisie */
.cfc span{gap:4px}.cfc b{font:500 1.125rem/1.25 "Bricolage Grotesque",sans-serif;letter-spacing:-.005em}.cfc i{font:italic 400 0.9375rem/1.35 "Afacad",sans-serif;opacity:.65}
.cfc:hover span{border-color:rgba(20,31,25,.45);background:rgba(214,199,182,.22)}
/* apparition échelonnée des choix à chaque étape */
.cfg .cfc{animation:cfu .6s cubic-bezier(.22,1,.36,1) both}.cfg .cfc:nth-child(2){animation-delay:.05s}.cfg .cfc:nth-child(3){animation-delay:.1s}.cfg .cfc:nth-child(4){animation-delay:.15s}.cfg .cfc:nth-child(5){animation-delay:.2s}.cfg .cfc:nth-child(6){animation-delay:.25s}
@keyframes cfu{from{opacity:0;transform:translateY(10px)}}
/* élément choisi : fond sable à toutes les étapes */
.cfc input:checked+span{background:var(--sand);border-color:var(--g)}
.cfc input:focus-visible+span,.cfl input:focus-visible+span{outline:2px solid #c46a2c;outline-offset:2px}
.cfn{display:flex;align-items:center;justify-content:flex-end;gap:32px;margin-top:auto;padding-top:clamp(16px,3vh,32px)}
/* Previous / Continue / Initiate : style des boutons CTA du site (trait 1×32px au survol) */
.cfp,.cfb{position:relative;display:inline-flex;align-items:center;gap:8px;padding:0 0 10px;background:none;border:0;color:var(--g);font:700 1rem/1.2rem "Afacad",sans-serif;text-transform:uppercase;cursor:pointer;transition:opacity .25s}
.cfp:before,.cfb:before{content:"";position:absolute;left:0;bottom:0;width:32px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.cfp:hover:before,.cfp:focus-visible:before,.cfb:not(:disabled):hover:before,.cfb:focus-visible:before{transform:scaleX(1)}.cfb:disabled{opacity:.4;cursor:default}
.cfnt{padding:0;background:none;border:0;color:inherit;font:400 1rem/1.2 "Afacad",sans-serif;opacity:.7;cursor:pointer}.cfnt:hover{opacity:1;text-decoration:underline}
/* étape 4 : champs empilés */
.cff{display:grid;grid-template-columns:1fr;gap:32px;margin-top:32px}
.cfi{display:flex;flex-direction:column;gap:8px;min-width:0;border:0}
.cfi>label,.cfi legend{font:700 0.75rem/1.2 "Afacad",sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--m)}.cfi legend{margin-bottom:10px}
.cfi input,.cfi textarea{width:100%;padding:8px 0;border:0;border-bottom:1px solid rgba(20,31,25,.22);border-radius:0;background:none;color:var(--g);font:400 1.13rem/1.3 "Afacad",sans-serif;outline:0;transition:border-color .3s}
.cfi input:focus,.cfi textarea:focus{border-color:var(--g)}.cfi input::placeholder,.cfi textarea::placeholder{color:rgba(20,31,25,.4)}
.cfi.bad input{border-bottom-color:#9F4A1A}
.cfe{color:#9F4A1A;font:400 0.875rem/1.3 "Afacad",sans-serif}.cfe:empty{display:none}
/* erreurs des champs sur la ligne du libellé (pas de hauteur ajoutée) */
.cfi{position:relative}.cfi>.cfe{position:absolute;top:0;right:0;font-size:0.8125rem;line-height:1.2}
.cfl{display:flex;flex-wrap:wrap;gap:8px}.cfl label{position:relative;cursor:pointer}.cfl input{position:absolute;opacity:0}
.cfl span{display:block;padding:9px 18px;border:1px solid rgba(20,31,25,.22);border-radius:999px;font:400 0.875rem/1 "Afacad",sans-serif;letter-spacing:.04em;transition:background-color .3s,color .3s,border-color .3s}.cfl label:hover span{border-color:rgba(20,31,25,.5)}
.cfl input:checked+span{background:var(--sand);border-color:var(--g);color:var(--g)}
.cfx{grid-column:1/-1;align-items:flex-start}.cfx>div{width:100%}/* note : 5 lignes */
.cfx textarea{display:none;height:calc(5*1.3em + 22px);min-height:calc(3*1.3em + 22px);padding:10px 12px;border:1px solid rgba(20,31,25,.35);border-radius:8px;resize:vertical}.cfx.on textarea{display:block;animation:cfa .3s}
@keyframes cfa{from{opacity:0;transform:translateY(-6px)}}
.cfk{grid-column:1/-1;display:grid;grid-template-columns:18px 1fr;gap:6px 12px;align-items:start}.cfk input{width:18px;height:18px;margin-top:2px;accent-color:#141F19}
.cfk label{font:400 0.9375rem/1.35 "Afacad",sans-serif}.cfk a{text-decoration:underline}.cfk .cfe{grid-column:2}
.cfh{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cfr{grid-column:1/-1}.cfr a{text-decoration:underline}
.cff .iti{width:100%}
.cfpage{padding-top:64px}.cfpage .cftop{height:2px;padding:0}.cfpage .cfbr{display:none}.cfpage .cffr{height:calc(100svh - 66px)}
/* bouton de la galerie */
.gal{background:var(--g)}
.gb{display:flex;justify-content:space-between;align-items:center;width:90%;padding:8px 16px;background:none;border:0;color:var(--c);font:400 1rem/1 "Afacad",sans-serif;cursor:pointer;transition:transform .2s}.gb b{font-weight:700}
.gb:hover{transform:scale(.99)}.gb:active{transform:scale(.97)}
/* visionneuse plein écran */
.lb{position:fixed;inset:0;z-index:999;display:flex;flex-direction:column;align-items:center;padding:48px 40px 24px;background:var(--g);color:var(--c);opacity:0;transition:opacity .3s}
.lb.on{opacity:1}.lb:focus{outline:0}
.lb .x{position:fixed;top:16px;right:40px;z-index:10;padding:1px 6px;background:none;border:0;color:var(--c);font-size:1.5rem;cursor:pointer}
.lbc{display:flex;flex-direction:column;gap:16px;width:100%;max-width:1200px;height:100%;min-height:0;margin:auto}
.lbi{display:flex;flex:1;gap:8px;min-height:0}
.lbm{position:relative;flex:1;aspect-ratio:16/9;max-width:100%;max-height:100%;min-height:0;margin:0 auto;overflow:hidden;background:rgba(255,255,255,.05)}
.lbm img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:lbin .3s}
@keyframes lbin{from{opacity:0;transform:scale(.98)}}
.lbs{position:relative;flex:none;width:128px}
.lbt{position:absolute;top:0;left:0;width:120px;height:100%;display:flex;flex-direction:column;gap:8px;overflow:hidden auto;scrollbar-width:none}.lbt::-webkit-scrollbar{display:none}
.lbt button{flex:none;display:block;width:100%;aspect-ratio:1;padding:0;overflow:hidden;background:none;border:2px solid transparent;opacity:.5;cursor:pointer;transition:opacity .2s,border .2s}
.lbt button[aria-current]{opacity:1;border-color:var(--c)}
.lbt img{width:100%;height:100%;object-fit:cover;pointer-events:none}
.lbr{position:absolute;top:0;right:0;width:2px;height:100%;background:rgba(239,232,216,.15)}
.lbr i{position:absolute;left:0;width:100%;height:40px;background:var(--c);transition:top .1s ease-out}
.lbb{flex:none;display:flex;gap:8px;align-items:flex-start;height:100px}
.lbx{flex:1;display:flex;flex-direction:column;gap:8px}
.lbx p{font:400 1rem/1.3 "Bricolage Grotesque",sans-serif;letter-spacing:-.02em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.lbx span{font:400 0.75rem/1.3 "Afacad",sans-serif;letter-spacing:.02em;opacity:.7}
.lbn{display:flex;justify-content:center;gap:16px;width:120px;margin-right:10px}
.lbn button{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:rgba(239,232,216,.1);border:1px solid rgba(239,232,216,.2);color:var(--c);cursor:pointer;transition:background .2s}
.lbn button:hover{background:rgba(239,232,216,.2)}
/* fondu unique l'un après l'autre (fiche technique) */
.js [data-fi]{opacity:0;transition:opacity .8s cubic-bezier(.44,0,.56,1)}.js [data-fi].in{opacity:1}
/* apparition en fondu (rejouée à chaque passage, seuil 50 %) */
.js [data-ap]{opacity:0;transition:opacity .8s cubic-bezier(.44,0,.56,1)}.js [data-ap].in{opacity:1}
/* The Curated Collection : grille 2 colonnes, cartes 500px */
.cards{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:16px var(--p) 80px;background:#EFE7D8!important}
.cards .card{height:500px}
/* bloc « off-market » : titre | texte + bouton (colonne droite à 50 % + 32px) */
.off{display:grid;grid-template-columns:1fr 1fr;padding:80px var(--p)}
.off>div{padding-left:32px}.off p{max-width:545px}.off .cta{margin-top:28px}
/* The Private Advisory Desk */
.pd{background:var(--sand);padding:80px 0}
.pd .pdi{width:90%;margin:0 auto}
.pd p{margin:8px 0 19px}
/* ===== responsive ===== */
/* écrans très bas (≤ 740px) : encore un peu plus compact, sans toucher aux écarts demandés */
@media(max-height:740px) and (min-width:768px){.cft{font-size:1.375rem}.cfl span{padding:5px 12px}.cfk label{line-height:1.2}.cfm .cfn{padding-top:0}.cfm .cfi input{padding:1px 0}.cfk{position:relative}.cfk>.cfe{position:absolute;left:0;top:100%;margin-top:4px}}
/* formulaire sur écrans peu hauts : plus compact pour éviter tout défilement */
@media(max-height:820px) and (min-width:768px){.cft{font-size:clamp(1.375rem,3.4vh,1.75rem)}.cfs{margin-top:4px;font-size:0.9375rem}.cfo{font-size:0.6875rem}.cfin{padding-top:64px}.cfn{padding-top:12px}.cfc span{padding:7px 16px;gap:2px;min-height:57px}.cfc b{font-size:1rem}.cfc i{font-size:0.875rem}.cfg{gap:6px;margin-top:12px}.cfi{gap:4px}.cfi input{padding:5px 0}.cfi>label,.cfi legend{font-size:0.6875rem}.cfi legend{margin-bottom:6px}.cfl span{padding:7px 14px}.cfk label{font-size:0.875rem}.cfn{padding-top:8px}.cfi{gap:2px}.cfi input{padding:3px 0}.cfx{gap:4px}.cfk{row-gap:2px}.cfk .cfe{font-size:0.8125rem}}
@media(max-width:1100px){.slide .tx{grid-template-columns:1fr 1fr}.slide .cta{grid-column:1;justify-self:start}.arts{grid-template-columns:repeat(3,minmax(0,1fr))}.arts:after{display:none}.stats{grid-template-columns:repeat(2,1fr);row-gap:32px}.ft .cols{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:809.98px){
.ct,.card{flex-basis:78vw}.col{height:auto;min-height:100svh}
.ph{flex-direction:column;align-items:flex-start;padding-top:110px}
.js .dv .stk{padding:0 0 40px}.js .dv .im{min-height:250px;margin-bottom:24px}
.dv .dh{flex-direction:column;gap:8px}.dv .st4{flex-direction:column;gap:16px}
/* mobile : étapes en accordéon */
.dv .pw{display:grid;grid-template-rows:0fr;opacity:0;margin-top:0;transition:grid-template-rows .3s,opacity .3s}.dv .s.act .pw{grid-template-rows:1fr;opacity:1;margin-top:12px}.dv .pw p{overflow:hidden}}
@media(max-width:809.98px){.hero .txt,.band,.mc,.ft .cols,.slide .tx,.stats,.arts{grid-template-columns:1fr}.hero{min-height:620px}.hero h1{font-size:2.375rem}.hero h1 .script{font-size:3.125rem}.bt{padding:48px var(--p)}.pi{min-height:60vw}.ft{position:relative;height:auto;padding-bottom:96px}.ft .fine{position:static;margin-top:40px;padding-top:24px;flex-wrap:wrap;gap:12px}.arts a{border-left:0;border-top:1px solid var(--sand)}.arts{padding-left:0}.ft .cols>*{margin-bottom:28px}.ph h1{font-size:2.375rem}.cf3,.cff{grid-template-columns:1fr}.cfsc{overflow-y:auto}.cffr{display:block;width:auto;height:auto;min-height:0;margin:0}.cfim{display:none}.cfpb i{width:calc(100% * var(--pr,0))}.cfin{height:auto;overflow:visible;padding:40px 16px 64px}.cfn{padding-top:40px}.cft{font-size:1.875rem}.cftop{padding:0 16px}.lgl{padding-top:110px}.lgl h1{font-size:2.375rem}.lgl h2{font-size:1.625rem}.pfh,.abg{grid-template-columns:1fr}.pfh>div{padding:24px 0 0}.pfh h1{font-size:2.375rem}.stats.s4c{grid-template-columns:1fr 1fr;row-gap:32px}.s4c>div,.s4c>div:first-child,.s4c>div:last-child{padding:0;justify-content:flex-start}.psl{width:20%}.psr{width:80%}.psp{left:calc(20% + 24px)}.psni{grid-template-columns:1fr;gap:16px}.tm,.tmg{grid-template-columns:1fr}.cards,.off{grid-template-columns:1fr}.off>div{padding:24px 0 0}
.fh{height:auto;grid-template-columns:1fr}.fhi{height:70vw}.fht{padding:32px var(--p) 48px;gap:48px}.fh h1{font-size:2.375rem}
.fd,.fgo,.mos{grid-template-columns:1fr}.avl{width:1100px}.fav,.fdoc{padding-bottom:48px}.fd>div+div,.fgo>div{margin-top:24px}.spec div{grid-template-columns:40% 1fr}
.stats.s3{grid-template-columns:1fr;row-gap:32px}.s3 p+p,.s3 p:not(:last-child){padding:0}
.fxg{grid-template-columns:1fr}.fxg>div{height:auto;gap:24px}.fxg>div:not(:last-child){border-right:0;border-bottom:1px solid var(--sand)}
.mos img{height:60vw}.lb{padding:56px 16px 16px}.lbi{flex-direction:column}.lbm{flex:none;width:100%}.lbs{width:100%;height:72px}.lbt{flex-direction:row;width:100%;height:64px}.lbt button{width:64px;height:64px}.lbr{display:none}.lb .x{right:16px}}
@media(max-width:719px){.pmw{flex-direction:column;gap:0;height:auto;min-height:0;overflow:visible}.pmm{padding:16px}.pml{position:static;gap:8px 24px;margin-bottom:12px;font-size:1rem}
.pmm svg{height:auto;aspect-ratio:975/670}.bd circle{r:26px}.bd text{font-size:1.4375rem}.pmp{flex:none;max-width:100%}.pmc{padding:20px 16px 0;overflow:visible}.pmc.g{padding-bottom:24px}
.pmh{padding-bottom:14px}.pmh h3{font-size:1.625rem}.pmb{width:40px;height:40px;border-radius:20px}.pmr div{padding:14px 0}.pmr dt{width:40%;font-size:1rem}.pmi{flex:none;aspect-ratio:16/10;margin-top:20px}.pmg{flex:none;aspect-ratio:4/3;margin-top:16px}}
@media(max-width:479px){.pml{gap:6px 16px;font-size:0.875rem}.pml span{gap:8px}.pml i{width:12px;height:12px}.pml .ln{width:24px}}
/* ===== Tablette (810–1199px) et téléphone (< 810px) : valeurs relevées sur les variantes tablette/téléphone de l'original (mêmes seuils) ===== */
/* accueil < 1200px : diaporama « Core divisions » = 1 geste par diapo, aimanté par main.js (points d'arrêt : diapos 1-2-3 puis collection) — demandes du 29/10/2026 */
@media(max-width:1199.98px){.js .slides{height:calc(100svh + (var(--n) - 1)*30svh)}
.vid i{opacity:.55}
/* zones tactiles ≥ 44×44 (recommandation Apple ; WCAG 2.5.8 exige 24×24 au minimum) sans changer le dessin */
.mc .lang{gap:0;margin-left:-14px}.mc .lang a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.lang [aria-current]{border-bottom:0;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.mc .row>a:not(:last-child){display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:0 -10px}
.ft .row>a:not(:last-child){min-height:44px;align-items:center}}
@media(min-width:810px) and (max-width:1199.98px){
.hero .txt{grid-template-columns:1fr;gap:18px}
.slide .tx{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:20px}.slide .cta{grid-column:auto;justify-self:end}
.ct{flex-basis:350px}.col .card{flex-basis:350px}.col{height:auto;min-height:0}.scr{flex:none;height:max(340px,calc((100svh - 216px)/2))}
.stats{grid-template-columns:24.7vw 20.7vw 27.7vw 1fr;row-gap:0}.stats p:nth-child(2)>span{max-width:100px}
.arts{grid-template-columns:repeat(3,28.33vw) 1fr}.arts:after{display:block}.arts small{margin-bottom:8px}.arts h4{margin-bottom:17px}.arts p{padding-bottom:18px}
.ft{height:auto;padding:100px 62px 94px}.ft .cols{grid-template-columns:1fr}.ft .tag{max-width:none}
.ft ul{padding-top:10px}.ft ul a.u,.ft .cols>div:last-child>a.u{line-height:1.582rem}.ft li{margin-bottom:30.7px}.ft li:last-child{margin-bottom:18.7px}
.ft .cols>div:last-child{padding-top:0}.ft .row{margin-top:33px}.ft .row>a:not(:last-child){display:flex;justify-content:center;width:44px}
.ft .fine{position:static;margin-top:44px;padding-top:59px}
}
@media(max-width:809.98px){
.mc{row-gap:0}.hi{height:80px}.brand{display:block;line-height:1.35rem}.brand .script{display:block;line-height:1.8rem}.logo{top:16px}.mb .roll{display:none}.mb{margin-right:-16px;padding:16px}
h2{font-size:1.8rem}
.hero .txt{gap:8px;padding-bottom:167px}.hero p{margin-bottom:27px}.hero h1{font-size:2.75rem;line-height:1}.hero h1 .script{font-size:3.75rem;line-height:1}
.intro .tx{width:90%}.intro .lux{font-size:1.63rem}
.col{height:auto;min-height:0}
.scr{display:grid;grid-auto-flow:column;grid-auto-columns:max-content;grid-template-rows:auto 508px;column-gap:8px;row-gap:24px}
.ct{grid-row:1;grid-column:1/span 4;position:sticky;left:0;width:calc(100vw - 2*var(--p));scroll-snap-align:none}
.col .card{grid-row:2;width:300px;height:auto}.scr:after{grid-row:2;width:calc(var(--p) - 8px)}
.stats{grid-template-columns:1fr 1fr;column-gap:34px;row-gap:32px;margin-top:66px}.slide .cta{margin-top:36px}
.band>.pi{order:2;min-height:119vw}.bt{padding-top:80px}
.arts a{padding:24px 20px 27px;min-height:0}.arts{border-top:0}.arts a:nth-child(2) h4{margin-bottom:15px}
/* pied de page collant aussi sur téléphone (demande du 29/10/2026) : version resserrée pour tenir dans l'écran */
.ft{position:sticky;padding:56px 34px 32px}.ft .cols>*{margin-bottom:0}.ft .tag{max-width:none;font-size:1rem;line-height:1.6rem}
.ft ul{padding-top:16px}.ft ul a.u,.ft .cols>div:last-child>a.u{line-height:1.582rem}.ft li,.ft li:last-child{margin-bottom:18.7px}
.ft .cols>div:last-child{padding-top:0}.ft .row{margin-top:16px}.ft .row>a:not(:last-child){display:flex;justify-content:center;width:44px}.ft .row{gap:25px}.ft .row .cta{flex:none}
.ft .fine{display:block;margin-top:16px;padding-top:24px}.ft .fine nav{justify-content:space-between;flex-wrap:wrap;gap:4px 16px;margin-top:16px}
}
/* pied de page 768–1199px : liens | Portfolio + contacts sur 2 colonnes (demande du 29/10/2026) */
@media(min-width:768px) and (max-width:1199.98px){.ft .cols{grid-template-columns:1fr 1fr}.ft .cols>div:first-child{grid-column:1/-1}.ft .row{margin-top:29px}.ft li:last-child{margin-bottom:0}}
@media(min-width:768px) and (max-width:809.98px){.ft .cols>div:last-child{padding-top:16px}.ft .fine{display:flex;margin-top:32px;padding-top:32px}.ft .fine nav{margin-top:0;justify-content:flex-start}}
@media(min-width:810px) and (max-width:1199.98px){.ft .cols>div:last-child{padding-top:10px}}
.ft.tall{position:relative}
/* Core Divisions — téléphone (< 810px) : version mobile de l'original (en-tête empilé, accordéon « 01 TITRE », seule l'étape active en vert),
   image de hauteur fixe (demande du 30/10/2026) ; tablette (810–1199px) : disposition du bureau (demande du 30/10/2026), voir main.js proc() */
@media(max-width:809.98px){
.ph:has(+.dv){flex-direction:column;align-items:flex-start;gap:30px;padding-top:150px}.ph:has(+.dv) h1{font-size:2.75rem;line-height:3.3rem}
.js .dv .stk{padding:0 0 40px}.js .dv .im{flex:none;min-height:0;height:max(160px,calc(100svh - var(--cdh,520px)));margin-bottom:24px}.js .dv .dh{margin-bottom:17px}
.dv .dh{flex-direction:column;gap:8px}.dv h2,.pd h2{font-size:2rem;line-height:2.4rem}
.dv .st4,.dv~.dv .st4{flex-direction:column;gap:0}
.dv .s{display:flex;flex-wrap:wrap;align-items:baseline;padding-top:15px}
.dv .s .n{display:inline-block;width:26px;margin:0;opacity:1}.dv .s h3{font-size:0.7875rem;line-height:0.945rem;margin:0}
.dv .b{flex:0 0 100%;height:1px;margin-top:12px}.dv .s.act .b{height:2px}
.dv .pw{flex:0 0 100%;display:grid;grid-template-rows:0fr;opacity:0;margin-top:0;transition:grid-template-rows .3s,opacity .3s}
.dv .s.act .pw{grid-template-rows:1fr;opacity:1;margin-top:8px}.dv .pw p{overflow:hidden}.dv .s.act .pw p{padding-bottom:10px}}
@media(min-width:810px) and (max-width:1199.98px){.dv .pw{margin-top:8px}.dv .b i{transition:width .4s cubic-bezier(.44,0,.56,1)}.dv .pw{transition:opacity .4s,transform .4s}.dv .s .n,.dv .s h3{transition:color .3s}}
/* < 1200px : « Inquire with our team » du pied de page calé à droite de sa ligne, texte centré sur les icônes (demandes du 30/10/2026) */
@media(max-width:1199.98px){.ft .row .cta{margin-left:auto}.ft .row>a:not(:last-child){margin-bottom:10px}
/* menu : mêmes espacements que la ligne du pied de page (icônes 44px, écart 25px téléphone / 32px tablette) — demande du 30/10/2026 */
.mc .row>a:not(:last-child){width:44px;margin:0 0 10px}}
@media(max-width:809.98px){.mc .row{gap:25px}}
/* The Curated Collection < 1200px (l'original y bascule en mobile dès 1200px) : en-tête empilé h1 44px, cartes sur 1 colonne, bloc off-market empilé (h2 28,8px) */
@media(max-width:1199.98px){
.ph:has(+.cards){flex-direction:column;align-items:flex-start;gap:32px;padding-top:144px}.ph:has(+.cards) h1{font-size:2.75rem;line-height:2.75rem}
.cards{grid-template-columns:1fr;padding-top:0}
.off{grid-template-columns:1fr;padding-top:0}.off h2{font-size:1.8rem;line-height:2.16rem}.off>div{padding:8px 0 0}.off p{max-width:none}}
/* Fiches des biens < 1200px (l'original y bascule en mobile dès 1200px) : texte du hero puis image, fiche technique, texte, bouton, sections empilées (h2 28,8px) */
@media(max-width:1199.98px){
.fh{height:auto;min-height:100svh;display:flex;flex-direction:column}.fht{order:1;justify-content:flex-start;gap:0;padding:104px var(--p) 32px}.fhb{margin-top:72px}
.fh h1{font-size:2.75rem;line-height:3.3rem}.fhi{order:2;width:100%;flex:1 1 auto;height:auto;min-height:200px}
.fd{display:flex;flex-direction:column;padding:39px var(--p) 80px}.fp{padding-top:0}.fq{padding-top:0}.fd>div:first-child{order:2}.fd>div+div{margin-top:0}
.spec div{grid-template-columns:130px 1fr}
.fp h2,.fx h2,.fgo h2{font-size:1.8rem;line-height:2.16rem}
.stats.s3{grid-template-columns:1fr 1fr;column-gap:64px;row-gap:32px}.s3 p+p,.s3 p:not(:last-child){padding:0}
.fx{padding:0 0 80px}.fxa{border-top:1px solid var(--sand)}.fxt{border-left:1px solid var(--sand)}
.fxg{grid-template-columns:1fr}.fxg>div{height:auto;gap:30px;justify-content:flex-start;border-left:1px solid var(--sand);border-right:1px solid var(--sand)}.fxg>div:not(:last-child){border-bottom:1px solid var(--sand);border-right:1px solid var(--sand)}
.fg{padding-top:0}.fg>img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}main:has(.fq) .fg>img{aspect-ratio:390/224}main:has(.fav) .fg>img{aspect-ratio:16/9}main:has(.fav) .spec div{height:81px}main:has(.pm) .spec div{grid-template-columns:180px 1fr}
.avl{width:896px;table-layout:auto}.avl col,.avl col:last-child{width:auto}.avl th{width:108px;min-width:108px}.avl td{width:160px;min-width:160px}.avl td:first-of-type{width:148px;min-width:148px}.avn{display:flex;padding-right:0}main:has(.pm) .fxg>div{gap:13px}.pm{padding-bottom:0}.fav{padding-bottom:104px}.fgo.fdoc>div{margin-top:8px}.fgo.fdoc{padding-bottom:122px}
.fgo{grid-template-columns:1fr;padding:80px var(--p)}.fgo>div{margin-top:0}
.mos{grid-template-columns:1fr}.mos>div:first-child img{height:47.18vw}.mos>div:last-child img{flex:none;height:86.15vw}
/* boutons : boîte de 44px, texte centré verticalement (comme l'original) */
.fd .cta,.fxt .cta,.fgo .cta{min-height:44px;padding-bottom:0;margin-top:16px}.fd .cta{margin-top:32px}}
/* 768–1199px (iPad mini compris, demande du 30/10/2026) : chiffres sur une ligne, caractéristiques en grille 2 colonnes */
@media(min-width:768px) and (max-width:1199.98px){main:has(.pm) .fxg>div{min-height:265px;justify-content:space-between}
/* demandes du 30/10/2026 : chiffres sur une ligne ; caractéristiques en grille 2 colonnes (traits sans doublon) */
.stats.s3{grid-template-columns:repeat(3,1fr)}
.fxg{grid-template-columns:1fr 1fr}.fxg>div,.fxg>div:not(:last-child){border-left:0;border-right:1px solid var(--sand);border-bottom:0}.fxg>div:nth-child(odd){border-left:1px solid var(--sand)}.fxg>div:nth-last-child(n+3){border-bottom:1px solid var(--sand)}
}
/* plan des parcelles 720–1199px (demandes du 30/10/2026) : plan en pleine largeur en haut (marges internes 64px haut/bas), puis panneau dessous = infos à gauche | photo à droite */
@media(min-width:720px) and (max-width:1199.98px){
.pmw{flex-direction:column;gap:0;height:auto;min-height:0}.pmm{padding:64px var(--p)}.pml{top:32px}.pmm svg{height:auto;aspect-ratio:975/670}
.pmp{flex:none;max-width:none;flex-direction:row}.pmc{flex:1;overflow:visible;padding:28px 32px 32px var(--p)}.pmi{flex:0 0 45%;min-height:300px}}
@media(min-width:810px) and (max-width:1199.98px){.mos>div:first-child img{height:237px}.mos>div:last-child img{height:442px}}
/* galerie plein écran < 1200px (demande du 30/10/2026) : image en haut (3:2) avec les flèches sur ses bords, légende juste dessous, vignettes en bande horizontale qui défile au doigt */
@media(max-width:1199.98px){
.lb{padding:56px 16px 24px}.lb .x{right:16px}
.lbc{position:relative;height:auto;margin:auto 0;gap:16px;max-width:900px}
.lbi{display:contents}
.lbm{order:1;flex:none;width:100%;max-height:62svh;aspect-ratio:3/2;margin:0}
.lbb{order:2;flex:none;height:112px;overflow:hidden;align-items:stretch}.lbx{height:100%}.lbx span{margin-top:auto}.lbs{margin-top:-8px}.lbx p{-webkit-line-clamp:4}
.lbn{position:absolute;top:0;left:0;width:100%;max-height:62svh;aspect-ratio:3/2;margin:0;padding:0 12px;justify-content:space-between;align-items:center;pointer-events:none}
.lbn button{pointer-events:auto;background:rgba(20,31,25,.55);border-color:rgba(239,232,216,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.lbs{order:3;width:100%;height:auto}.lbr{display:none}
.lbt{position:static;flex-direction:row;width:100%;height:auto;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.lbt button{width:72px;height:72px}}
@media(min-width:810px) and (max-width:1199.98px){.lb{padding:64px 40px 32px}.lbt button{width:96px;height:96px}}
@media(max-width:1199.98px){.fq p{text-align:left}}
/* plan des parcelles téléphone (demandes du 30/10/2026) : +32px de marge interne haut/bas dans la zone verte ; panneau d'infos : marge basse = marge haute */
/* (plein écran retiré le 30/10/2026 à la demande de l'utilisatrice) ; zone verte : marge interne haute 32px ; pas de trait vert sous le panneau */
@media(max-width:719px){.pmh h3{flex:1;min-width:0;white-space:nowrap}.pmm{padding:32px 16px 48px}.pmc{padding-bottom:20px}.pmw{border-bottom:0}}
/* Advisory Insights < 768px : en-tête empilé h1 44px, cartes sur 1 colonne, un seul trait de 1px sous l'en-tête ; iPad (≥ 768px) = mise en page du bureau (demande du 30/10/2026) */
@media(max-width:767.98px){.air:first-child>a:first-child,.air+.air>a:first-child{border-top:0}
.ph:has(+.aig){flex-direction:column;align-items:flex-start;gap:30px;padding-top:144px}.ph:has(+.aig) h1{font-size:2.75rem;line-height:3.3rem}
.air{grid-template-columns:1fr;padding:0}.air>span{display:none}.air>*{border-left:0;border-top:1px solid var(--sand)}
.air a{padding:25px var(--p) 24px}.air small{margin-bottom:8px}.air .t8 h4{margin-bottom:16px}}
/* Articles Advisory Insights < 768px : en-tête sans cadre (h1 44px), corps en pleine largeur sans décalage, h2 28,8px, bloc « Private Advisory Desk » sur fond sable ; iPad = bureau (demande du 30/10/2026) */
@media(max-width:767.98px){.arb+.ad{background:var(--sand)!important}
.arh{border-bottom:0}.arhb{width:auto;max-width:none;margin:0 var(--p);padding:32px 0 0;border-right:0}.arhb h1{max-width:none;font-size:2.75rem;line-height:3.3rem}.arhb p{margin-top:30px}
.arb{padding:0 var(--p)}.arbi{padding:103px 0 80px;border-left:0}/* écart chapô → 1re section : 103px comme 4 articles sur 5 de l'original (« Structuring foreign capital » y fait exception avec 80px) */.ah{margin-top:80px}
.ad h2{font-size:1.8rem;line-height:2.16rem}}
/* Advisory Insights sur iPad (768–1199px) : disposition du bureau, colonnes de cartes fluides ; en-tête de la liste en ligne même entre 768 et 809px */
@media(min-width:768px) and (max-width:1199.98px){.air{grid-template-columns:repeat(3,28.33vw) 1fr}}
/* tablette : en-tête de la liste empilé comme The Curated Collection (demande du 30/10/2026) */
@media(min-width:768px) and (max-width:1199.98px){.ph:has(+.aig){flex-direction:column;align-items:flex-start;gap:32px;padding-top:144px}.ph:has(+.aig) h1{font-size:2.75rem;line-height:2.75rem}}
/* tablette, accueil (« Documented Yield ») et Portfolio (demandes du 30/10/2026) : 2 colonnes × 2 lignes ; chaque bloc chiffre + libellé a la même largeur
   (162px = le plus large des chiffres, « Superhost », pour qu'aucun ne déborde), centré dans sa colonne, texte aligné à gauche */
@media(min-width:768px) and (max-width:1199.98px){
.head .stats,.stats.s4c{grid-template-columns:1fr 1fr;column-gap:16px;row-gap:24px;text-align:left}
.s4c p{width:162px;margin:0 auto}.head .stats>p{width:162px;margin:0}/* accueil : blocs calés à gauche de leur colonne, alignés sur le titre (demande du 30/10/2026) */.head .stats p>span,.s4c p>span,.head .stats p:nth-child(2)>span{max-width:none;margin-left:0;margin-right:0}
.s4c>div,.s4c>div:first-child,.s4c>div:last-child{justify-content:center;padding:0}}
/* Portfolio, téléphone : titre « Global portfolio metrics » et sa phrase alignés à gauche (demande du 30/10/2026) */
@media(max-width:767.98px){.pfm{text-align:left}}
/* iPad mini (768–809px, où l'accueil a encore la disposition empilée) — demandes du 30/10/2026 :
   « Local Pedigree » : marge haute du texte −16px, image 2× moins haute ; « Advisory Insights » : cartes en 3 colonnes comme sur ordinateur */
@media(min-width:768px) and (max-width:809.98px){
.bt{padding-top:64px}.band>.pi{min-height:59.5vw}
.arts{grid-template-columns:repeat(3,28.33vw) 1fr;padding-left:var(--p);border-top:1px solid var(--sand)}.arts:after{display:block}
.arts a{padding:24px 16px 27px;min-height:270px;border-top:0;border-left:1px solid var(--sand)}.arts small{margin-bottom:8px}.arts h4,.arts a:nth-child(2) h4{margin-bottom:17px}.arts p{padding-bottom:18px}}
/* Portfolio, téléphone : section « Global portfolio metrics » avec 8px de moins en marge haute (demande du 30/10/2026) */
@media(max-width:767.98px){.pfm{padding-top:72px}}
/* Our Philosophy < 1200px (l'original y bascule en mobile dès 1200px) : paragraphe d'ouverture calé en haut à mi-écran (16px sur téléphone),
   équipe sur 1 colonne, « The Fiduciary Standard » à 80px de l'équipe (h2 28,8px) */
@media(max-width:1199.98px){.psp{transform:none}.tm,.tmg{grid-template-columns:1fr}.tm{padding-bottom:0}.ad.c20 h2{font-size:1.8rem;line-height:2.16rem}}
@media(max-width:809.98px){.psp p,.psni p{font-size:1rem;line-height:1.2rem}.psni h2{font-size:1.7rem;line-height:2.04rem}}
/* tailles de titres de l'original < 1200px (audit du 30/10/2026) : Portfolio h1 44px/1.1 ; pages légales h1 44px, h2 28,8px */
/* Portfolio et pages légales < 1200px (l'original y bascule en mobile dès 1200px) : en-tête empilé, h2 28,8px, cartes Airbnb sur 1 colonne en 500px de haut */
@media(max-width:1199.98px){.pfh{grid-template-columns:1fr;align-items:start}.pfh h1{font-size:2.75rem;line-height:3.025rem;margin:0}.pfh>div{padding:32px 0 0}.pfh .ld+p{margin-top:8px;max-width:none}
.pfm h2,.pfa h2{font-size:1.8rem;line-height:2.16rem}.pfa .cta{margin-top:29px}.abg{grid-template-columns:1fr}.abc{height:500px}.abx{padding:32px 0 0;align-items:flex-start}
.lgl{padding-top:144px}.lgl h1{font-size:2.75rem;line-height:3.3rem}.lgl h2{font-size:1.8rem;line-height:2.16rem}}
/* formulaire, téléphone : descriptions des cartes sur plusieurs lignes au lieu d'être coupées par « … » */
@media(max-width:809.98px){.cfw .cfc b,.cfw .cfc i{white-space:normal;overflow:visible;text-overflow:clip}}
/* formulaire (demandes du 30/10/2026) — téléphone : boutons ← Previous / Continue → en space-between (Continue seul reste à droite) ;
   iPad mini (768–809px, disposition empilée) : la colonne occupe tout l'écran, les boutons restent calés en bas quelle que soit la hauteur de l'étape */
@media(max-width:767.98px){.cfn{justify-content:space-between}.cfn .cfb{margin-left:auto}}
@media(min-width:768px) and (max-width:809.98px){.cfin{min-height:calc(100svh - 64px)}.cfpage .cfin{min-height:calc(100svh - 82px)}}
/* page 404 < 1200px : titre, texte et bouton empilés et groupés (au lieu de 3 colonnes ou d'éléments étirés) */
@media(max-width:1199.98px){.ph:has(>.cta){flex-direction:column;align-items:flex-start;justify-content:center;gap:24px;padding-top:144px}.ph:has(>.cta)>*{flex:none}.ph:has(>.cta) h1{font-size:2.75rem;line-height:3.3rem}.ph:has(>.cta) p{max-width:560px}.ph:has(>.cta) .cta{margin-top:8px}}
/* demandes du 30/10/2026 —
   pied de page < 1200px : logo → phrase −4px ; phrase → liens = trait → texte des mentions (25px téléphone, 33px iPad mini, 60px tablette)
   accueil, diaporama « Core divisions » en tablette : titre sur une ligne, puis paragraphe (même écart que « The Curated Collection » + son texte), bouton dessous
   accueil, « Local Pedigree » sur téléphone : marge haute = marge basse (48px) */
@media(max-width:1199.98px){.ft .tag{margin-top:4px}}
@media(max-width:767.98px){.ft ul{padding-top:22px}.bt{padding-top:48px}}
@media(min-width:768px) and (max-width:809.98px){.ft ul,.ft .cols>div:last-child{padding-top:30px}}
@media(min-width:810px) and (max-width:1199.98px){.ft ul,.ft .cols>div:last-child{padding-top:57px}}
@media(min-width:768px) and (max-width:1199.98px){.slide h3 br{display:none}.slide .tx{grid-template-columns:1fr}.slide p{margin-top:2px}.slide .cta{grid-column:1;justify-self:start;margin-top:36px}}
/* versions FR / ES (30/10/2026) : ligne note · avis des cartes Airbnb — la pastille passe à la ligne si le texte traduit est plus long */
.abr{flex-wrap:wrap;row-gap:6px}.abv{flex:1 0 auto}.abd{white-space:nowrap}
/* film de présentation en bas de la fiche Coco Haven (30/10/2026) : vignette + bouton « Watch the film », lecture avec son et commandes au clic */
.fvid{padding:0 var(--p) 80px}
.fvw{position:relative;aspect-ratio:16/9;background:var(--g);overflow:hidden}
.fvw video{display:block;width:100%;height:100%}
.fvo{display:none;position:absolute;inset:0;padding:0;border:0;background:var(--g);cursor:pointer;transition:opacity .5s}
.js .fvo{display:block}.fvw.on .fvo{opacity:0;pointer-events:none}
.fvo img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.22,1,.36,1)}.fvo:hover img{transform:scale(1.02)}
.fvo span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:12px;padding:16px 28px 16px 22px;border-radius:999px;background:var(--c);color:var(--g);font:700 1rem/1.2rem "Afacad",sans-serif;text-transform:uppercase;white-space:nowrap;box-shadow:0 8px 32px rgba(20,31,25,.25);transition:background .3s}
.fvo:hover span,.fvo:focus-visible span{background:var(--sand)}
.fvo i{width:0;height:0;border-style:solid;border-width:7px 0 7px 12px;border-color:transparent transparent transparent currentColor}
.fvo small{font-weight:400;opacity:.7}
@media(max-width:809.98px){.fvid{padding-bottom:48px}.fvo span{padding:12px 20px 12px 16px}}
/* bannière de consentement (cookies) — 30/10/2026 */
[data-ckset][hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){.ck{transition:none}}
.ck{position:fixed;left:24px;bottom:24px;z-index:1100;width:min(440px,calc(100vw - 48px));max-height:calc(100svh - 48px);overflow:auto;padding:24px 24px 14px;background:var(--c);color:var(--g);border:1px solid rgba(20,31,25,.18);border-radius:8px;box-shadow:0 12px 40px rgba(20,31,25,.18);opacity:0;transform:translateY(16px);transition:opacity .6s cubic-bezier(.44,0,.56,1),transform .6s cubic-bezier(.44,0,.56,1)}
.ck.on{opacity:1;transform:none}
.cko{display:block;font:700 0.75rem/1rem "Afacad",sans-serif;letter-spacing:.18em;text-transform:uppercase}
.ck p{margin-top:12px;font:400 1rem/1.4rem "Afacad",sans-serif}
.ck p a{text-decoration:underline;text-underline-offset:3px}
.ckp{display:none;margin-top:16px;border-top:1px solid rgba(20,31,25,.18)}.ck.pf .ckp{display:block}
.ckr{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid rgba(20,31,25,.18)}
.ckr label{flex:1;cursor:pointer}.ckr b{display:block;font:700 1rem/1.25rem "Afacad",sans-serif}.ckr span{display:block;margin-top:2px;font:400 0.875rem/1.2rem "Afacad",sans-serif;color:var(--m)}
.ckr input{appearance:none;-webkit-appearance:none;flex:none;position:relative;width:40px;height:22px;margin:0;border-radius:11px;background:rgba(20,31,25,.22);cursor:pointer;transition:background .25s}
.ckr input:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:var(--c);transition:transform .25s}
.ckr input:checked{background:var(--g)}.ckr input:checked:after{transform:translateX(18px)}.ckr input:disabled{opacity:.45;cursor:default}
.ckr input:focus-visible{outline:2px solid var(--g);outline-offset:2px}
.ckb{display:flex;flex-wrap:wrap;align-items:center;gap:8px 32px;margin-top:20px}
.ckb .cta,.ckl{min-height:44px;padding-top:10px;background:none;border:0;color:inherit;cursor:pointer}
.ckb [data-ck="save"],.ck.pf [data-ck="prefs"]{display:none}.ck.pf .ckb [data-ck="save"]{display:inline-flex}
.ckl{margin-left:auto;padding-bottom:10px;font:400 1rem/1.2rem "Afacad",sans-serif;text-decoration:underline;text-underline-offset:3px}
@media(max-width:809.98px){.ck{left:12px;bottom:12px;width:calc(100vw - 24px);max-height:calc(100svh - 24px);padding:20px 20px 10px}.ckb{gap:4px 24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.vid,.vid i,.rv,.js .slide,.js .slide.on>img,.menu,.roll span,.bg i,[data-ap],[data-fi],.card:before,.card:after,.card .d,[data-mr]>*,.cfim img,.lb,.lbm img,.gb,.hvp,.hvp img,.pc .ov,.bd,.pmr,.pmi img,.cfo-m,.cfw,.cfpb i,.cfx textarea,.cfc span,.cfg .cfc,.cfp:before,.cfb:before{animation:none!important;transition:none!important}}
