/* ═══════════════════════════════════════════════
   BY GALERIE — premium minimal
   Palette charte : rouge #D31818 · noir #000 · blanc #fff · gris #DBDBDB
   Type : Inter Variable
═══════════════════════════════════════════════ */

:root{
  --red:#D31818;
  --black:#000000;
  --white:#FFFFFF;
  --grey:#DBDBDB;
  --ink:#0a0a0a;
  --mute:#8a8a8a;
  --line:#e9e9e9;
  --paper:#fafafa;

  --ease:cubic-bezier(.19,1,.22,1);
  --ease-out:cubic-bezier(.16,1,.3,1);

  --pad: clamp(20px, 6vw, 110px);
  --maxw: 1680px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
html.lenis,html.lenis body{height:auto}
body{
  font-family:"Inter",system-ui,sans-serif;
  background:var(--white);
  color:var(--ink);
  overflow-x:hidden;
  font-size:17px;
  line-height:1.6;
  cursor:none;
}
@media (hover:none){ body{cursor:auto} }

img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none}
::selection{background:var(--red);color:#fff}

/* ───── utilitaires typo ───── */
.section-tag{
  display:inline-flex;align-items:center;gap:10px;
  font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--mute);
}
.section-tag i{width:26px;height:1px;background:var(--red);display:inline-block}
.section-tag--light{color:rgba(255,255,255,.55)}
.section-tag--light i{background:var(--red)}

.accent{color:var(--red)}
.accent-w{color:var(--red)}

/* ═══════════ CURSEUR ═══════════ */
.cursor{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;mix-blend-mode:difference}
.cursor__dot{position:fixed;width:6px;height:6px;border-radius:50%;background:#fff;
  transform:translate(-50%,-50%);transition:width .25s,height .25s,opacity .25s}
.cursor__ring{position:fixed;width:44px;height:44px;border:1px solid rgba(255,255,255,.6);border-radius:50%;
  transform:translate(-50%,-50%);transition:width .3s var(--ease),height .3s var(--ease),opacity .3s,background .3s}
.cursor__label{position:fixed;transform:translate(-50%,-50%);color:#fff;font-size:13px;font-weight:600;opacity:0;transition:opacity .2s}
body.cur-link .cursor__ring{width:64px;height:64px;background:rgba(255,255,255,.08)}
body.cur-link .cursor__dot{opacity:0}
body.cur-link .cursor__label{opacity:1}
@media (hover:none){.cursor{display:none}}

/* ═══════════ LOADER ═══════════ */
.loader{position:fixed;inset:0;z-index:9000;background:var(--white);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px}
.loader__mark{font-weight:800;font-size:clamp(34px,7vw,72px);letter-spacing:-.02em;position:relative;display:flex;align-items:flex-start}
.loader__by{font-size:.32em;font-weight:700;color:var(--red);transform:translateY(.15em);margin-right:.06em}
.loader__word{color:var(--ink)}
.loader__bar{width:min(240px,52vw);height:1px;background:var(--grey);overflow:hidden}
.loader__bar span{display:block;height:100%;width:0;background:var(--red)}
.loader__count{font-size:12px;font-weight:600;letter-spacing:.2em;color:var(--mute)}
.loader.is-done{transform:translateY(-101%);transition:transform 1s var(--ease)}

/* ═══════════ NAV ═══════════ */
.nav{
  position:fixed;top:12px;left:14px;right:14px;
  max-width:1240px;margin:0 auto;z-index:800;
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 8px 8px 26px;
  border-radius:100px;
  color:#fff;
  box-shadow:none;
  transition:box-shadow .5s var(--ease),transform .5s var(--ease-out),color .4s var(--ease);
}
/* backdrop sur ::before — évite de créer un containing-block pour les enfants fixed */
.nav::before{
  content:'';position:absolute;inset:0;border-radius:100px;z-index:-1;
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(10px) saturate(120%);
  -webkit-backdrop-filter:blur(10px) saturate(120%);
  border:1px solid rgba(255,255,255,.18);
  transition:background .45s var(--ease),border-color .45s var(--ease);
}
.nav.is-solid{color:var(--ink);box-shadow:0 4px 28px rgba(0,0,0,.09)}
.nav.is-solid::before{
  background:rgba(218,218,218,.90);
  backdrop-filter:saturate(160%) blur(22px);
  -webkit-backdrop-filter:saturate(160%) blur(22px);
  border-color:rgba(0,0,0,.06);
}
.nav.is-hidden{transform:translateY(calc(-100% - 14px))}
.nav__logo{font-weight:800;font-size:20px;letter-spacing:-.02em;display:flex;align-items:flex-start;color:inherit;transition:color .4s var(--ease)}
.nav__by{font-size:.5em;font-weight:700;color:inherit;transform:translateY(.1em);margin-right:.1em}
.nav.is-solid .nav__logo{color:var(--red)}
.nav__links{display:flex;align-items:center;gap:32px}
.nav__links a{font-size:13px;font-weight:500;letter-spacing:.02em;position:relative;color:inherit}
.nav__links a:not(.nav__cta)::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:1px;background:currentColor;transition:width .4s var(--ease)}
.nav__links a:not(.nav__cta):hover::after{width:100%}
.nav__cta{
  background:rgba(255,255,255,.14);color:inherit!important;
  padding:10px 22px;border-radius:100px;font-weight:600;font-size:13px;letter-spacing:.01em;
  border:1px solid rgba(255,255,255,.32);
  transition:background .4s var(--ease),border-color .4s var(--ease),transform .3s var(--ease);
}
.nav.is-solid .nav__cta{background:var(--ink);color:#fff!important;border-color:transparent}
.nav__cta:hover{transform:scale(1.04)}
.nav__home{display:none}
.nav__burger{display:none;background:none;border:none;flex-direction:column;gap:5px;cursor:none;padding:8px;color:inherit;transition:color .4s var(--ease)}
.nav__burger span{width:22px;height:1.5px;background:currentColor;display:block;transition:transform .4s var(--ease)}
.nav.is-solid .nav__burger{color:var(--red)}
.nav.is-open .nav__burger{color:var(--ink)!important}

/* ─── Language switcher ─── */
.nav__lang{display:flex;align-items:center;gap:4px}
.nav__lang a{opacity:.4;transition:opacity .2s}
.nav__lang a::after{display:none!important}
.nav__lang a:hover,.nav__lang a[aria-current]{opacity:1}
.nav__lang a[aria-current]{text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:3px}
.nav__lang span{opacity:.25;font-size:.8em}
@media(min-width:721px){
  .nav__lang a{font-size:11px!important;font-weight:600!important;letter-spacing:.1em;text-transform:uppercase}
  .nav > .nav__lang{display:none}
}
@media(max-width:720px){
  .nav__links .nav__lang{display:none!important}
  .nav > .nav__lang{display:flex;margin-right:6px}
  .nav > .nav__lang a{font-size:11px!important;font-weight:600!important;letter-spacing:.08em;text-transform:uppercase}
}

/* ─── Nav dropdown ─── */
.nav__dropdown{position:relative}
.nav__drop-caret{display:inline-block;vertical-align:middle;margin-left:3px;transition:transform .22s var(--ease);pointer-events:none}
.nav__drop-menu{
  position:absolute;top:calc(100% + 14px);left:50%;
  transform:translateX(-50%) translateY(-6px);
  /* état transparent (hero) — dark glass comme le nav */
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(10px) saturate(120%);-webkit-backdrop-filter:blur(10px) saturate(120%);
  border:1px solid rgba(255,255,255,.18);
  border-radius:14px;
  padding:6px;display:flex;flex-direction:column;
  min-width:190px;
  opacity:0;pointer-events:none;
  transition:opacity .2s var(--ease),transform .2s var(--ease),background .45s var(--ease),border-color .45s var(--ease);
  box-shadow:none;
}
/* état solid — gris givré comme le nav */
.nav.is-solid .nav__drop-menu{
  background:rgba(218,218,218,.92);
  backdrop-filter:saturate(160%) blur(22px);-webkit-backdrop-filter:saturate(160%) blur(22px);
  border-color:rgba(0,0,0,.06);
  box-shadow:0 6px 24px rgba(0,0,0,.09);
}
.nav__drop-menu::before{content:'';position:absolute;bottom:100%;left:0;right:0;height:16px}
@media(hover:hover){
  .nav__dropdown:hover .nav__drop-caret{transform:rotate(180deg)}
  .nav__dropdown:hover .nav__drop-menu{opacity:1;pointer-events:all;transform:translateX(-50%) translateY(0)}
}
.nav__drop-menu a{
  display:block;padding:10px 14px;
  font-size:13px!important;font-weight:500!important;letter-spacing:0!important;
  border-radius:9px;color:inherit!important;
  white-space:nowrap;transition:background .18s var(--ease);
}
.nav__drop-menu a::after{display:none!important}
.nav__drop-menu a:hover{background:rgba(128,128,128,.15)}
.nav.is-solid .nav__drop-menu a:hover{background:rgba(0,0,0,.06)}
.nav__drop-menu a[aria-current]{font-weight:700!important}

/* ═══════════ HERO ═══════════ */
.hero{position:relative;height:100svh;min-height:600px;overflow:hidden;display:flex;align-items:flex-end}
.hero__media{position:absolute;inset:0;z-index:0}
.hero__video{width:100%;height:100%;object-fit:cover;transform:scale(1.05)}
.hero__veil{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.34) 0%,rgba(0,0,0,.05) 32%,rgba(0,0,0,.15) 62%,rgba(0,0,0,.72) 100%)}
.hero__content{position:relative;z-index:2;color:#fff;padding:0 var(--pad) clamp(60px,11vh,130px);width:100%}
.hero__eyebrow{font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;margin-bottom:26px;opacity:.92}
.hero__title{
  font-weight:800;
  font-size:clamp(31px,6.65vw,105px);
  letter-spacing:-.04em;
  display:flex;flex-direction:column;align-items:flex-start;gap:0;
  margin-bottom:20px;overflow:visible;
}
.hero__title .hw{display:block;line-height:.78}
.hero__title .accent{color:var(--red)}
.hero__base{margin-top:0;max-width:440px;font-size:clamp(15px,1.4vw,19px);line-height:1.55;color:rgba(255,255,255,.85);font-weight:500}

.hero__scroll{position:absolute;right:var(--pad);bottom:clamp(60px,11vh,130px);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:14px;color:#fff}
.hero__scroll-txt{font-size:10px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;writing-mode:vertical-rl}
.hero__scroll-line{width:1px;height:60px;background:rgba(255,255,255,.4);position:relative;overflow:hidden}
.hero__scroll-line::after{content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;background:#fff;animation:scrolldn 2s var(--ease) infinite}
@keyframes scrolldn{0%{top:-100%}60%,100%{top:100%}}
.hero__corner{position:absolute;z-index:3;color:rgba(255,255,255,.6);font-size:11px;font-weight:600;letter-spacing:.12em}
.hero__corner--bl{left:var(--pad);bottom:26px}
.hero__corner--br{right:var(--pad);top:96px}

/* ═══════════ reveals ═══════════ */
.reveal-line{overflow:hidden}
.reveal-line>span,.reveal-word>span{display:inline-block;transform:translateY(110%);transition:transform 1s var(--ease)}
.reveal-line.in>span,.reveal-word.in>span{transform:translateY(0)}

.rw{display:inline-block;opacity:0;transform:translateY(.4em);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.rw.in{opacity:1;transform:none}
.rw--mute{color:var(--mute)}

/* ═══════════ MANIFESTO ═══════════ */
.manifesto{padding:clamp(110px,18vh,220px) var(--pad)}
.manifesto .section-tag{margin-bottom:46px}
.manifesto__text{
  font-weight:700;letter-spacing:-.025em;line-height:1.18;
  font-size:clamp(26px,4.4vw,60px);max-width:24ch;
}
/* lecture au scroll : chaque caractère s'allume individuellement */
.manifesto__text .mw{display:inline}
.manifesto__text .mw--red{color:var(--red)}
.manifesto__text .mc{display:inline;opacity:.12;transition:opacity .08s linear;will-change:opacity}
.manifesto__text .mc--space{display:inline}

/* ═══════════ INDEX interactif ═══════════ */
.index{padding:clamp(40px,7vh,90px) var(--pad) clamp(60px,9vh,120px);position:relative}
.index__head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:28px;
  border-bottom:1px solid var(--line);padding-bottom:38px;margin-bottom:8px}
.index__title{font-weight:800;font-size:clamp(30px,5vw,64px);line-height:1;letter-spacing:-.03em}
.index__list{position:relative}
.index__row{border-bottom:1px solid var(--line)}
.index__row a{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:24px;
  padding:clamp(22px,3.4vw,46px) 0;transition:padding-left .5s var(--ease),color .4s}
.index__num{font-size:13px;font-weight:600;color:var(--mute);letter-spacing:.1em}
.index__name{font-weight:800;font-size:clamp(28px,6vw,84px);letter-spacing:-.03em;line-height:1;
  transition:transform .5s var(--ease),opacity .4s;color:var(--ink)}
.index__role{font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--mute);text-transform:uppercase;justify-self:end}
/* hover state driven by JS .is-active */
.index__list.has-hover .index__row a{opacity:.32;transition:opacity .4s}
.index__row.is-active a{opacity:1}
.index__row.is-active a{padding-left:clamp(16px,2.5vw,48px)}
.index__row.is-active .index__name{color:var(--red)}
.index__row.is-active .index__num{color:var(--red)}

.index__float{position:fixed;top:0;left:0;width:clamp(220px,24vw,360px);height:clamp(280px,30vw,440px);
  z-index:500;pointer-events:none;opacity:0;overflow:hidden;border-radius:2px;
  transform:translate(-50%,-50%) scale(.9);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.index__float.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.index__float img{width:100%;height:100%;object-fit:cover}
@media (hover:none){.index__float{display:none}}

/* ═══════════ ESPACES (panneaux) ═══════════ */
/* ── SPACES : layout sticky ── */
.spaces{display:grid;grid-template-columns:1fr 1fr;
  border-top:1px solid var(--line)}
.spaces__track{border-right:1px solid var(--line)}
.spaces__imagery{padding:clamp(50px,13vh,120px) clamp(36px,7vw,90px)}
.space__panel-img{display:none}
.spaces__sticky{position:sticky;top:clamp(50px,13vh,120px);
  height:calc(100vh - clamp(100px,26vh,240px));
  background:var(--white);border-radius:clamp(28px,3.5vw,48px);overflow:hidden;
  -webkit-mask-image:-webkit-radial-gradient(white,black);transform:translateZ(0)}

/* Images empilées — états gérés par GSAP */
.space__media{position:absolute;inset:clamp(10px,1.4vw,18px);
  border-radius:clamp(18px,2.5vw,32px);overflow:hidden;background:var(--white);
  -webkit-mask-image:-webkit-radial-gradient(white,black);transform:translateZ(0)}
.space__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:blur(24px);opacity:0;
  transition:filter 1.2s var(--ease),opacity 1.2s var(--ease)}
.space__media img.loaded{filter:blur(0);opacity:1}

/* Panneau texte */
.space__panel{position:relative;display:flex;flex-direction:column;justify-content:center;
  padding:clamp(48px,7vw,120px) clamp(32px,6vw,110px);background:var(--white);
  min-height:100vh;border-bottom:1px solid var(--line)}
.space__panel:last-child{border-bottom:none}
.space__ghost{position:absolute;top:clamp(20px,4vw,60px);right:clamp(20px,4vw,60px);
  font-size:clamp(120px,18vw,300px);font-weight:800;line-height:.7;color:var(--paper);
  letter-spacing:-.05em;z-index:0;-webkit-text-stroke:1px var(--line);pointer-events:none}
.space__panel>*{position:relative;z-index:1}
.space__kicker{font-size:clamp(15px,1.6vw,21px);font-weight:600;color:var(--red);margin-bottom:22px}
.space__name{font-weight:800;font-size:clamp(40px,5.4vw,90px);line-height:.95;letter-spacing:-.035em;margin-bottom:28px}
.space__desc{font-size:clamp(15px,1.25vw,18px);line-height:1.65;color:#3a3a3a;max-width:46ch;margin-bottom:38px}
.space__specs{display:flex;flex-direction:column;gap:0;margin-bottom:44px;max-width:480px}
.space__specs li{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-top:1px solid var(--line);
  font-size:14px;color:var(--mute)}
.space__specs li:last-child{border-bottom:1px solid var(--line)}
.space__specs b{font-weight:600;color:var(--ink);font-size:11px;letter-spacing:.12em;text-transform:uppercase;flex-shrink:0;min-width:90px}

.link-cta{display:inline-flex;align-items:center;gap:12px;align-self:flex-start;
  font-weight:600;font-size:14px;letter-spacing:.02em;
  padding:15px 28px;border:1px solid var(--ink);border-radius:100px;
  position:relative;overflow:hidden;color:var(--ink);transition:color .5s var(--ease)}
.link-cta::after{content:"→";transition:transform .4s var(--ease)}
.link-cta::before{content:"";position:absolute;inset:0;background:var(--red);border-radius:100px;
  transform:scale(0);transform-origin:left;transition:transform .55s var(--ease);z-index:-1}
.link-cta{z-index:0}
.link-cta:hover{color:#fff;border-color:var(--red)}
.link-cta:hover::before{transform:scale(1)}
.link-cta:hover::after{transform:translateX(5px)}

/* ═══════════ GALERIE mosaïque ═══════════ */
.gallery{padding:clamp(110px,16vh,200px) var(--pad)}
.gallery__intro{margin-bottom:clamp(50px,7vh,90px)}
.gallery__intro .section-tag{margin-bottom:30px}
.gallery__title{font-weight:800;font-size:clamp(34px,6vw,92px);line-height:.98;letter-spacing:-.035em}
.mosaic{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(90px,auto);gap:clamp(14px,1.6vw,28px)}
.mosaic__item{position:relative;overflow:hidden;background:var(--paper);border-radius:2px}
.mosaic__item img{position:absolute;left:0;top:-6%;width:100%;height:112%;object-fit:cover;
  filter:blur(24px);opacity:0;will-change:transform,filter;
  transition:filter 1.2s var(--ease),opacity 1.2s var(--ease)}
.mosaic__item img.loaded{filter:blur(0);opacity:1}
.m1{grid-column:1/6;grid-row:span 7}
.m2{grid-column:6/10;grid-row:span 5}
.m3{grid-column:10/13;grid-row:span 7}
.m4{grid-column:6/10;grid-row:span 5}
.m5{grid-column:1/6;grid-row:span 5}

/* ═══════════ FACTS ═══════════ */
.facts{padding:clamp(60px,9vh,100px) clamp(20px,3vw,50px);background:var(--white);display:flex;justify-content:center}
.facts__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,3vw,44px);max-width:1200px;width:100%}
.fact{display:flex;flex-direction:column;gap:16px;min-width:0;align-items:center;text-align:center}
.fact__num{margin:0;display:flex;align-items:baseline;gap:.18em;line-height:1;flex-wrap:wrap;min-width:0;justify-content:center}
/* nombre — conteneur odometer */
.fact__count{font-weight:800;font-size:clamp(31px,3.85vw,56px);letter-spacing:-.04em;
  display:inline-flex;line-height:1}
/* odometer : colonnes de chiffres */
.odm-col{display:inline-block;overflow:hidden;height:1em;vertical-align:bottom}
.odm-inner{display:block;will-change:transform}
.odm-digit{display:block;height:1em;line-height:1}
/* unité — m² (plus petite, rouge) */
.fact__unit{font-weight:800;font-size:clamp(11px,1.4vw,21px);letter-spacing:-.03em;
  line-height:1;padding-bottom:.15em;color:var(--red);margin-left:.2em}
/* unité — espaces (même taille que le chiffre, rouge) */
.fact__unit--red{color:var(--red);font-size:clamp(11px,1.4vw,21px);
  letter-spacing:-.03em;line-height:1;padding-bottom:.15em;margin-left:.2em}
.fact__label{font-size:clamp(12px,1vw,15px);font-weight:500;color:var(--mute);
  line-height:1.55;margin-top:4px}

/* ═══════════ CONTACT ═══════════ */
.contact{background:var(--ink);color:#fff;padding:clamp(110px,16vh,200px) var(--pad) clamp(60px,9vh,110px)}
.contact__inner{max-width:var(--maxw);margin:0 auto}
.contact .section-tag{margin-bottom:40px}
.contact__title{font-weight:800;font-size:clamp(44px,9vw,150px);line-height:.92;letter-spacing:-.04em;margin-bottom:clamp(50px,8vh,90px)}
.contact__mail{display:inline-block;font-weight:700;font-size:clamp(22px,3.4vw,48px);letter-spacing:-.02em;
  padding-bottom:8px;border-bottom:2px solid rgba(255,255,255,.25);transition:border-color .4s,color .4s}
.contact__mail:hover{border-color:var(--red);color:var(--red)}
.contact__meta{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:clamp(60px,9vh,110px);
  border-top:1px solid rgba(255,255,255,.14);padding-top:44px}
.contact__col{display:flex;flex-direction:column;gap:10px}
.contact__lbl{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.4)}
.contact__col a,.contact__col span{font-size:clamp(16px,1.6vw,20px);font-weight:500}
.contact__col a{position:relative;width:fit-content}
.contact__col a::after{content:"";position:absolute;left:0;bottom:-3px;width:0;height:1px;background:var(--red);transition:width .4s var(--ease)}
.contact__col a:hover::after{width:100%}

/* ─── Localisation ─── */
.contact__loc{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,4vw,60px);
  margin-top:clamp(60px,9vh,110px);border-top:1px solid rgba(255,255,255,.14);
  padding-top:clamp(40px,6vh,70px);align-items:center}
.contact__map{border-radius:20px;overflow:hidden;width:100%;aspect-ratio:4/3;background:#1a1a1a;flex-shrink:0}
.contact__map iframe{width:100%;height:100%;display:block}
.contact__loc-info{display:flex;flex-direction:column;justify-content:flex-start;gap:0;padding-left:clamp(40px,8vw,120px)}
.loc-address{font-size:clamp(16px,1.4vw,20px);font-weight:500;line-height:1.6;margin-top:12px}
.loc-btns{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.loc-btn{
  display:inline-flex;align-items:center;gap:9px;
  padding:11px 20px;border-radius:100px;
  font-size:13px;font-weight:600;letter-spacing:.01em;
  border:1px solid rgba(255,255,255,.2);color:#fff;
  transition:background .2s var(--ease),border-color .2s var(--ease);
  width:fit-content}
.loc-btn:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.45)}

.footer{max-width:var(--maxw);margin:clamp(80px,12vh,140px) auto 0;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px;
  padding:34px 0;border-top:1px solid rgba(255,255,255,.14)}
.footer__logo{font-weight:800;font-size:20px;letter-spacing:-.02em;display:flex;align-items:flex-start}
.footer__by{font-size:.5em;font-weight:700;color:var(--red);transform:translateY(.1em);margin-right:.1em}
.footer__rights{font-size:12px;color:rgba(255,255,255,.45);font-weight:500}
.footer__top{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.footer__top:hover{color:#fff}

/* ═══════════ SITE FOOTER (nouveau) ═══════════ */
.site-footer{
  background:var(--white);
  border-top:1px solid var(--line);
  padding:64px var(--pad) 0;
}
.site-footer__inner{
  max-width:var(--maxw);margin:0 auto;
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:48px;
  padding-bottom:56px;
}
.sf-brand__logo{
  font-size:22px;font-weight:800;letter-spacing:-.02em;
  display:inline-flex;align-items:flex-start;margin-bottom:14px;
  color:var(--ink);
}
.sf-brand__by{font-size:.5em;font-weight:700;color:var(--red);transform:translateY(.1em);margin-right:.1em}
.sf-brand__desc{font-size:13px;color:var(--mute);line-height:1.65;margin-bottom:22px;max-width:260px}
.sf-brand__links{display:flex;flex-direction:column;gap:8px}
.sf-brand__links a{
  font-size:13px;color:var(--mute);
  display:flex;align-items:center;gap:7px;
  transition:color .2s;width:fit-content;
}
.sf-brand__links a:hover{color:var(--ink)}
.sf-col__title{
  font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink);margin-bottom:20px;
}
.sf-col__links{display:flex;flex-direction:column;gap:11px}
.sf-col__links a{font-size:14px;color:var(--mute);transition:color .2s;width:fit-content}
.sf-col__links a:hover{color:var(--ink)}
.sf-link-muted{font-size:14px;color:var(--mute);opacity:.45;cursor:default}
.sf-badge{
  font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  background:var(--line);color:var(--mute);border-radius:100px;
  padding:2px 7px;margin-left:6px;vertical-align:middle;
}
.site-footer__bar{
  max-width:var(--maxw);margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 0;border-top:1px solid var(--line);
}
.sf-bar__left{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.sf-bar__rights{font-size:12px;color:var(--mute)}
.sf-bar__cookies{font-size:12px;color:var(--mute);background:none;border:none;
  padding:0;cursor:pointer;font-family:inherit;text-decoration:underline;
  text-underline-offset:2px;transition:color .2s}
.sf-bar__cookies:hover{color:var(--ink)}
.sf-bar__top{
  font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink);display:flex;align-items:center;gap:5px;
  transition:opacity .2s;
}
.sf-bar__top:hover{opacity:.5}

/* ═══════════ RESPONSIVE ═══════════ */
@media (max-width:1000px){
  .site-footer__inner{grid-template-columns:1fr 1fr;gap:36px}
}
@media (max-width:600px){
  .site-footer__inner{grid-template-columns:1fr;gap:28px}
  .site-footer__bar{flex-direction:column;gap:10px;text-align:center}
}
@media (max-width:1000px){
  .space,.space--alt{grid-template-columns:1fr}
  .space__media{order:-1!important;min-height:60vh}
  .space--alt .space__media{order:-1}
  .space{min-height:auto}
  .m1{grid-column:1/8;grid-row:span 6}
  .m2{grid-column:8/13;grid-row:span 4}
  .m3{grid-column:8/13;grid-row:span 5}
  .m4{grid-column:1/8;grid-row:span 5}
  .m5{grid-column:1/13;grid-row:span 5}
}
@media (max-width:720px){
  body{font-size:16px}
  .nav__cta{background:var(--ink)!important;color:#fff!important;border-color:transparent!important;font-size:16px!important;padding:14px 36px!important;font-weight:700!important;margin-top:8px}
  .nav__drop-caret{display:none}
  .nav__dropdown>a{pointer-events:none;opacity:.5}
  .nav__drop-menu{
    display:none!important;position:static!important;transform:none!important;
    background:transparent!important;border:none!important;
    backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
    box-shadow:none!important;padding:4px 0 0!important;text-align:center!important;
    min-width:auto!important;opacity:1!important;pointer-events:all!important}
  .nav.is-open .nav__drop-menu{display:flex!important;flex-direction:column!important;gap:4px!important}
  .nav__drop-menu a{font-size:20px!important;font-weight:700!important;padding:4px 0!important}
  .spaces{display:block}
  .spaces__imagery{display:none}
  .spaces__track{border-right:none}
  .space__panel{min-height:auto;padding:clamp(40px,10vw,80px) var(--pad)}
  .space__panel-img{display:block;position:relative;width:100%;padding-top:62.5%;overflow:hidden;border-radius:12px;margin-bottom:28px;background:var(--paper)}
  .space__panel-img img:not(.panel-logo){position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(20px);opacity:0;transition:filter .6s,opacity .4s}
  .space__panel-img img.loaded{filter:blur(0);opacity:1}
  .space__panel-img .panel-logo{position:absolute;bottom:30%;left:14px;width:40%;height:auto;object-fit:unset;filter:none;opacity:1;z-index:3;transition:none}
  .nav__home{display:block}
  .nav{width:calc(100% - 28px);padding:6px 6px 6px 20px}
  .nav__links{position:fixed;inset:0;background:var(--white);color:var(--ink);
    flex-direction:column;align-items:center;justify-content:center;gap:30px;transform:translateY(-100%);
    transition:transform .6s var(--ease);border-radius:0;visibility:hidden;text-align:center}
  .nav.is-open .nav__links{transform:translateY(0);visibility:visible}
  .nav__links a{font-size:24px;font-weight:700;color:var(--ink)}
  .nav__links a[aria-current="page"],
  .nav__drop-menu a[aria-current]{
    color:var(--ink)!important;
    text-decoration:underline!important;
    text-decoration-color:var(--red)!important;
    text-underline-offset:5px!important;
    font-weight:700!important;
  }
  .nav__burger{display:flex;z-index:10}
  .nav.is-open .nav__burger span:first-child{transform:rotate(45deg) translate(3px,4px)}
  .nav.is-open .nav__burger span:last-child{transform:rotate(-45deg) translate(3px,-4px)}
  .hero__corner--br{display:none}
  .index__row a{grid-template-columns:40px 1fr;gap:14px}
  .index__role{display:none}
  .facts__grid{grid-template-columns:1fr;gap:40px}
  .contact__meta{grid-template-columns:1fr;gap:30px}
  .contact__loc{grid-template-columns:1fr}
  .contact__map{aspect-ratio:16/9}
  .space__specs b{min-width:auto}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
  .reveal-line>span,.reveal-word>span,.rw{transform:none;opacity:1}
}
