
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=Italiana&display=swap');
:root{--bg:#070707;--bg2:#0d0d0d;--ivory:#efece4;--white:#f6f3ed;--ink:#0c0c0c;--muted:#99958d;--line:rgba(255,255,255,.13);--serif:'Italiana',serif;--sans:'DM Sans',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--white);font-family:var(--sans);font-weight:300}a{color:inherit;text-decoration:none}.wrap{max-width:1360px;margin:auto}.nav{position:fixed;z-index:30;top:0;left:0;right:0;height:82px;padding:0 38px;display:flex;align-items:center;justify-content:space-between;background:rgba(7,7,7,.78);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.brand{display:flex;flex-direction:column}.brand b{font:30px var(--serif);line-height:.9}.brand span{font-size:7px;letter-spacing:.3em;margin-top:6px}.nav nav{display:flex;align-items:center;gap:26px;font-size:12px;color:#c9c5bd}.outline{border:1px solid var(--line);padding:10px 15px}.staff-link{opacity:.55}.hero{min-height:100vh;padding:120px 5vw 60px;display:grid;grid-template-columns:1fr 300px;gap:50px;align-items:center;position:relative;overflow:hidden}.rings:before,.rings:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.055);border-radius:50%;right:-120px;top:50%;transform:translateY(-50%)}.rings:before{width:850px;height:850px}.rings:after{width:560px;height:560px;right:25px}.hero-copy{position:relative;z-index:2}.eyebrow{font-size:10px;letter-spacing:.3em;color:#8f8a82}.eyebrow.dark{color:#6e6961}.hero h1{font:clamp(86px,13vw,190px)/.74 var(--serif);letter-spacing:-.05em;margin:22px 0}.hero h1 span{display:block}.hero h1 span+span{margin-left:11vw;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.62)}.tagline{font:clamp(30px,4vw,49px)/1 var(--serif);margin:45px 0 18px}.lead{color:#aaa49c}.actions{display:flex;gap:12px;margin-top:28px}.btn{border:1px solid var(--line);padding:14px 19px;font-size:11px}.light{background:var(--white);color:#111;border-color:var(--white)}.private-card{height:520px;border:1px solid var(--line);padding:20px;position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between}.smallline,.card-bottom{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.18em;color:#777}.card-logo{font:72px var(--serif);text-align:center}.ivory{background:var(--ivory);color:var(--ink)}.manifesto,.service-section,.section,.reservation{padding:120px 5vw}.three{display:grid;grid-template-columns:70px 1fr .8fr;gap:55px}.number{font:20px var(--serif);color:#827c73}h2{font:clamp(46px,6vw,82px)/.95 var(--serif);font-weight:400;letter-spacing:-.035em;margin:14px 0}.prose{color:#58534c;line-height:1.8;padding-top:35px}.section-head{display:grid;grid-template-columns:1fr 420px;gap:55px;align-items:end;margin-bottom:62px}.section-head>p{color:#918c84;line-height:1.7}.dark-head>p{color:#5c5750}.formulas{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line)}.formulas article{min-height:430px;padding:32px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between}.formulas article:last-child{border-right:0}.formulas span{font-size:9px;letter-spacing:.23em;color:#7d7871}.formulas h3{font:43px/1 var(--serif);font-weight:400}.formulas p{color:#99948c;line-height:1.7}.formulas a{font-size:10px;letter-spacing:.15em;border-bottom:1px solid;width:max-content;padding-bottom:5px}.formulas .featured{background:var(--ivory);color:#111;transform:translateY(-10px);box-shadow:0 30px 80px #000}.formulas .featured p{color:#57524b}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(0,0,0,.15);border-left:1px solid rgba(0,0,0,.15)}.service-grid div{min-height:120px;padding:28px;border-right:1px solid rgba(0,0,0,.15);border-bottom:1px solid rgba(0,0,0,.15);font:27px var(--serif);display:flex;align-items:flex-end}.custom{position:relative;overflow:hidden}.two{display:grid;grid-template-columns:1fr 1fr;gap:90px}.custom-prose{color:#99948c}.reservation{background:#050505}.booking-copy>p{color:#969087;max-width:430px;line-height:1.7}.contact{border-top:1px solid var(--line);margin-top:50px;padding-top:20px;display:flex;flex-direction:column}.contact span,form label,legend{font-size:9px;letter-spacing:.19em;text-transform:uppercase;color:#777}.contact strong{font:38px var(--serif);margin:10px 0}.row{display:grid;grid-template-columns:1fr 1fr;gap:24px}form{border:1px solid var(--line);padding:34px}form label{display:block;margin-bottom:24px}input,select,textarea{display:block;width:100%;margin-top:8px;background:transparent;border:0;border-bottom:1px solid var(--line);color:#fff;padding:11px 0;outline:none;font:14px var(--sans);text-transform:none;letter-spacing:0}select option{color:#111}fieldset{border:0;border-top:1px solid var(--line);padding:18px 0;margin:0 0 22px}.checks{display:grid;grid-template-columns:repeat(2,1fr);gap:3px 20px;margin-top:14px}.checks label{font-size:11px;letter-spacing:0;text-transform:none;color:#aaa;margin:0}.checks input{display:inline;width:auto;margin-right:7px}.submit{width:100%;background:var(--white);color:#111;border:0;padding:16px 19px;display:flex;justify-content:space-between;cursor:pointer}.result{padding-top:12px;color:#b8b2a9}footer{display:grid;grid-template-columns:1fr 1fr 1fr;padding:55px 5vw;border-top:1px solid var(--line);gap:50px;align-items:end;color:#aaa;font-size:12px}.footer-logo{font:76px var(--serif);color:#fff}footer b{font-size:8px;letter-spacing:.22em;color:#666}
@media(max-width:900px){.nav nav a:not(.outline):not(.staff-link){display:none}.hero{grid-template-columns:1fr}.private-card{height:300px}.three,.two,.section-head{grid-template-columns:1fr}.formulas{grid-template-columns:1fr}.formulas article{border-right:0;border-bottom:1px solid var(--line);min-height:300px}.formulas .featured{transform:none}.service-grid{grid-template-columns:1fr 1fr}.row{grid-template-columns:1fr}footer{grid-template-columns:1fr}.number{display:none}}
@media(max-width:560px){.nav{padding:0 18px}.hero,.manifesto,.service-section,.section,.reservation{padding-left:18px;padding-right:18px}.hero h1{font-size:70px}.hero h1 span+span{margin-left:0}.service-grid{grid-template-columns:1fr}.checks{grid-template-columns:1fr}form{padding:23px 18px}}


/* ===== DND HERO FIX + MAP PLANNER ===== */
html,body{overflow-x:hidden}
.hero{
  min-height:100vh;
  padding:120px 5vw 70px;
  display:block;
  position:relative;
  overflow:hidden
}
.hero-inner{
  width:min(1380px,100%);
  min-height:calc(100vh - 190px);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) 330px;
  gap:70px;
  align-items:center;
  position:relative;
  z-index:2
}
.hero-copy{min-width:0}
.hero h1{
  margin:26px 0 0;
  font:clamp(76px,9.5vw,150px)/.78 var(--serif);
  letter-spacing:-.055em;
  max-width:920px
}
.hero h1 span{display:block;white-space:nowrap}
.hero h1 span+span{
  margin-left:7vw;
  color:transparent;
  -webkit-text-stroke:1px rgba(255,255,255,.62)
}
.tagline{
  font:clamp(31px,3.4vw,51px)/1.04 var(--serif);
  margin:42px 0 18px;
  max-width:650px
}
.private-card{
  width:100%;
  height:560px;
  min-width:0;
  border:1px solid var(--line);
  padding:22px;
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.008))
}
.card-logo{font:76px var(--serif);text-align:center}
.card-quote{
  font:28px/1.08 var(--serif);
  border-top:1px solid var(--line);
  padding-top:24px
}

.custom-layout{
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:72px;
  align-items:start
}
.custom-copy-block{
  position:sticky;
  top:125px
}
.map-planner{
  border:1px solid var(--line);
  background:#0d0d0d;
  padding:18px
}
.map-planner-head{
  min-height:82px;
  padding:4px 4px 16px;
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:20px
}
.map-planner-head span,.map-route-title span{
  font-size:8px;
  letter-spacing:.25em;
  color:#6e6a64
}
.map-planner-head h3{
  margin:6px 0 0;
  font:34px/1 var(--serif);
  font-weight:400
}
.map-planner-head button{
  background:transparent;
  border:1px solid var(--line);
  color:#aaa49d;
  padding:9px 12px;
  cursor:pointer;
  font-size:10px
}
.map-shell{
  position:relative;
  width:100%;
  aspect-ratio:1 / 1;
  overflow:hidden;
  background:#111;
  cursor:crosshair;
  border:1px solid rgba(255,255,255,.08)
}
.map-shell img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:grayscale(1) contrast(1.12) brightness(.63);
  transition:.25s ease
}
.map-shell:hover img{filter:grayscale(1) contrast(1.08) brightness(.72)}
.map-markers{
  position:absolute;
  inset:0;
  pointer-events:none
}
.map-marker{
  position:absolute;
  width:31px;
  height:31px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:#f3f0e9;
  color:#111;
  border:3px solid #111;
  box-shadow:0 0 0 1px #fff,0 8px 24px rgba(0,0,0,.45);
  display:grid;
  place-items:center;
  font-size:11px;
  font-weight:600
}
.map-marker:after{
  content:"";
  position:absolute;
  width:1px;
  height:14px;
  background:#f3f0e9;
  top:28px
}
.map-help{
  position:absolute;
  left:14px;
  bottom:14px;
  background:rgba(6,6,6,.78);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.12);
  color:#c5c0b8;
  padding:9px 11px;
  font-size:10px
}
.map-route{padding:18px 4px 4px}
.map-route-title{
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--line);
  padding-bottom:12px
}
.map-route-title strong{font-size:11px;font-weight:400;color:#bdb7af}
#routeList{
  margin:0;
  padding:0;
  list-style:none
}
#routeList li{
  display:grid;
  grid-template-columns:34px 1fr auto;
  align-items:center;
  gap:10px;
  min-height:50px;
  border-bottom:1px solid var(--line);
  font-size:11px;
  color:#aaa59d
}
#routeList li .route-no{
  font:18px var(--serif);
  color:#f0ece5
}
#routeList li button{
  background:transparent;
  border:0;
  color:#777;
  cursor:pointer;
  font-size:16px
}
#routeList li.empty-route{
  display:block;
  padding:17px 0;
  color:#65615c
}

@media(max-width:1050px){
  .hero-inner{grid-template-columns:1fr;gap:35px}
  .private-card{height:300px}
  .hero h1 span+span{margin-left:0}
  .custom-layout{grid-template-columns:1fr}
  .custom-copy-block{position:static}
  .map-planner{max-width:820px}
}
@media(max-width:560px){
  .hero{padding-left:18px;padding-right:18px}
  .hero h1{font-size:66px}
  .hero h1 span{white-space:normal}
  .private-card{height:260px}
  .map-planner{padding:10px}
  .map-planner-head{align-items:flex-start;flex-direction:column}
}


/* ===== V7 — CARTE SUR MESURE NAVIGABLE ===== */
.map-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:0 0 12px;
  color:#77716a;
  font-size:9px;
  letter-spacing:.08em
}
.map-tool-group{
  display:flex;
  gap:7px;
  flex-wrap:wrap
}
.map-tool-group button{
  min-width:40px;
  height:38px;
  border:1px solid var(--line);
  background:#111;
  color:#ddd8d0;
  cursor:pointer;
  padding:0 12px
}
.map-tool-group button:hover{background:#1a1a1a;color:#fff}
.map-shell{
  position:relative;
  width:100%;
  aspect-ratio:1/1;
  overflow:hidden;
  background:#080808;
  cursor:crosshair;
  touch-action:none;
  user-select:none
}
.map-viewport{
  position:absolute;
  inset:0;
  transform-origin:0 0;
  will-change:transform;
  cursor:grab
}
.map-viewport.is-dragging{cursor:grabbing}
.map-viewport img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none
}
.map-markers{
  position:absolute;
  inset:0;
  pointer-events:none
}
.map-marker{
  position:absolute;
  width:34px;
  height:34px;
  transform:translate(-50%,-100%);
  border-radius:50% 50% 50% 0;
  rotate:-45deg;
  background:#f3f0e9;
  color:#111;
  border:2px solid #111;
  box-shadow:0 0 0 1px #fff,0 8px 25px rgba(0,0,0,.55);
  display:grid;
  place-items:center
}
.map-marker span{
  rotate:45deg;
  font-size:11px;
  font-weight:700
}
.map-marker.selected{
  background:#fff;
  box-shadow:0 0 0 2px #fff,0 8px 28px rgba(0,0,0,.65)
}
.map-help{
  z-index:8;
  pointer-events:none
}
.map-route li{
  cursor:default
}
.route-location{
  min-width:0
}
.route-location strong{
  display:block;
  color:#ddd8d0;
  font-weight:500;
  margin-bottom:2px
}
.route-location small{
  color:#66615b
}
.route-actions{
  display:flex;
  gap:5px
}
.route-actions button{
  min-width:34px;
  min-height:34px;
  border:1px solid var(--line)!important
}
.route-actions .focus-point{
  color:#ddd!important
}
@media(max-width:700px){
  .map-toolbar{align-items:flex-start;flex-direction:column}
  .map-toolbar>span{line-height:1.45}
}


/* ===== V8 — ONGLET MUSIQUES DANS LES DEMANDES ===== */
.request-tabs{
  display:flex;
  border-bottom:1px solid var(--line);
  margin:8px 0 24px
}
.request-tab{
  border:0;
  border-bottom:1px solid transparent;
  background:transparent;
  color:#77716a;
  padding:12px 18px 12px 0;
  margin-right:22px;
  cursor:pointer;
  font-size:10px;
  letter-spacing:.17em;
  text-transform:uppercase
}
.request-tab.active{
  color:#fff;
  border-bottom-color:#fff
}
.request-tab-panel{display:none}
.request-tab-panel.active{display:block}
.music-request-head{
  border-left:1px solid rgba(255,255,255,.22);
  padding-left:18px;
  margin-bottom:25px
}
.music-request-head span{
  display:block;
  font-size:8px;
  letter-spacing:.24em;
  color:#66615b
}
.music-request-head strong{
  display:block;
  font:27px var(--serif);
  font-weight:400;
  margin:8px 0
}
.music-request-head p{
  margin:0;
  color:#807a72;
  font-size:12px;
  line-height:1.6;
  text-transform:none;
  letter-spacing:0
}


/* ===== V10 — FIX CARTE / REPÈRES ===== */
.map-shell{
  isolation:isolate;
  overflow:hidden!important;
  background:#080808!important
}
.map-viewport{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  transform-origin:0 0!important;
  z-index:1
}
.map-viewport #gtaMap{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
  pointer-events:none!important;
  user-select:none!important;
  filter:grayscale(1) contrast(1.08) brightness(.68)!important
}
.map-viewport .map-markers{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  z-index:4!important;
  pointer-events:none!important
}
.map-marker{
  position:absolute!important;
  width:34px!important;
  height:34px!important;
  transform:translate(-50%,-100%) rotate(-45deg)!important;
  transform-origin:center!important;
  border-radius:50% 50% 50% 0!important;
  background:#f5f2eb!important;
  color:#111!important;
  border:2px solid #111!important;
  box-shadow:0 0 0 2px rgba(255,255,255,.9),0 8px 24px rgba(0,0,0,.65)!important;
  z-index:5!important;
  display:grid!important;
  place-items:center!important
}
.map-marker span{
  display:grid!important;
  place-items:center!important;
  width:100%!important;
  height:100%!important;
  transform:rotate(45deg)!important;
  font-size:11px!important;
  font-weight:700!important;
  color:#111!important
}
.map-marker.selected{
  background:#fff!important;
  box-shadow:0 0 0 3px #fff,0 8px 28px rgba(0,0,0,.75)!important
}
.map-help{
  position:absolute!important;
  left:12px!important;
  bottom:12px!important;
  z-index:10!important;
  pointer-events:none!important
}


/* ===== V11 — CARTE ENTIÈRE VISIBLE AU ZOOM MINIMUM ===== */
.map-shell{
  /* The GTA map asset is taller than the old square viewport.
     Let the viewport follow the actual image proportions instead of cropping it. */
  aspect-ratio:auto!important;
  height:min(72vh, 820px)!important;
  min-height:560px!important;
}
.map-viewport #gtaMap{
  object-fit:contain!important;
  background:#080808!important;
}

/* The interactive coordinate plane follows the contained image itself.
   JS calculates the exact displayed image rectangle. */
.map-markers{
  overflow:visible!important;
}
@media(max-width:900px){
  .map-shell{
    height:70vh!important;
    min-height:460px!important;
  }
}


/* ===== V12 — MAP QUALITY ===== */
.map-viewport #gtaMap{
  image-rendering:auto!important;
  filter:grayscale(1) contrast(1.03) brightness(.78)!important;
  backface-visibility:hidden;
  transform:translateZ(0)
}


/* ===== V14 — GTA V Leaflet tiled map ===== */
.leaflet-map-shell{
  position:relative;
  border:1px solid var(--line);
  background:#080808;
  overflow:hidden
}
.gta-leaflet-map{
  width:100%;
  height:680px;
  background:#080808;
  z-index:1
}
.gta-leaflet-map .leaflet-tile{
  filter:grayscale(1) contrast(1.03) brightness(.78)
}
.gta-leaflet-map .leaflet-control-zoom{
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:none!important
}
.gta-leaflet-map .leaflet-control-zoom a{
  background:#0b0b0b!important;
  color:#eee!important;
  border-color:#292929!important
}
.gta-leaflet-map .leaflet-control-zoom a:hover{
  background:#171717!important
}
.dnd-leaflet-marker-wrap{
  background:transparent!important;
  border:0!important
}
.dnd-leaflet-marker{
  width:34px;
  height:34px;
  transform:rotate(-45deg);
  border-radius:50% 50% 50% 0;
  background:#f4f1ea;
  border:2px solid #111;
  box-shadow:0 0 0 2px rgba(255,255,255,.9),0 7px 20px rgba(0,0,0,.55);
  display:grid;
  place-items:center
}
.dnd-leaflet-marker span{
  transform:rotate(45deg);
  color:#111;
  font-size:11px;
  font-weight:700
}
.dnd-leaflet-marker.selected{
  background:#fff;
  box-shadow:0 0 0 3px #fff,0 8px 24px rgba(0,0,0,.7)
}
.gta-leaflet-map .leaflet-tooltip{
  background:#0a0a0a;
  color:#eee;
  border:1px solid #333;
  box-shadow:none;
  font:11px var(--sans)
}
.gta-leaflet-map .leaflet-tooltip:before{
  border-top-color:#333
}
.map-help{
  z-index:500!important
}
@media(max-width:900px){
  .gta-leaflet-map{height:560px}
}
@media(max-width:560px){
  .gta-leaflet-map{height:460px}
}


/* ===== V19 — ÉQUIPE PUBLIQUE / DATING CARDS ===== */
.team-public-section{
  padding:120px 5vw;
  background:#080808;
  color:var(--white)
}
.team-public-head{
  margin-bottom:55px
}
.public-team-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px
}
.public-team-card{
  min-width:0;
  border:1px solid var(--line);
  background:#0d0d0d;
  overflow:hidden
}
.team-card-photo{
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
  background:#111
}
.team-card-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .5s ease
}
.public-team-card:hover .team-card-photo img{
  transform:scale(1.025)
}
.team-card-placeholder{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  font:76px var(--serif);
  color:#242424
}
.team-card-gradient{
  position:absolute;
  inset:35% 0 0;
  background:linear-gradient(transparent,rgba(0,0,0,.88))
}
.team-card-identity{
  position:absolute;
  left:22px;
  right:22px;
  bottom:20px;
  z-index:3
}
.team-card-identity span{
  font-size:8px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#bbb5ac
}
.team-card-identity h3{
  font:43px/1 var(--serif);
  font-weight:400;
  margin:7px 0 0
}
.team-card-bio{
  min-height:110px;
  padding:20px 22px 24px;
  color:#8e8981;
  line-height:1.65;
  font-size:13px
}
.team-photo-dots{
  position:absolute;
  z-index:5;
  top:12px;
  left:12px;
  right:12px;
  display:flex;
  gap:4px
}
.team-photo-dots i{
  height:2px;
  flex:1;
  background:rgba(255,255,255,.3)
}
.team-photo-dots i.active{
  background:#fff
}
.team-photo-prev,
.team-photo-next{
  position:absolute;
  top:0;
  bottom:0;
  z-index:4;
  width:25%;
  border:0;
  background:transparent;
  color:transparent;
  cursor:pointer
}
.team-photo-prev{left:0}
.team-photo-next{right:0}
.team-loading{
  grid-column:1/-1;
  color:#666;
  padding:45px 0;
  border-top:1px solid var(--line)
}
@media(max-width:1000px){
  .public-team-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:620px){
  .public-team-grid{grid-template-columns:1fr}
  .team-public-section{padding-left:18px;padding-right:18px}
}


/* ===== V21 — Identité visuelle DND ===== */
.brand{
  width:82px;
  height:66px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden
}
.brand img{
  width:92px;
  height:92px;
  object-fit:contain;
  display:block
}
.card-logo{
  display:flex;
  justify-content:center;
  align-items:center
}
.card-logo img{
  width:min(100%,230px);
  max-height:230px;
  object-fit:contain;
  display:block
}
.footer-logo{
  display:flex;
  align-items:center
}
.footer-logo img{
  width:155px;
  max-width:100%;
  object-fit:contain;
  display:block
}
@media(max-width:700px){
  .brand{width:62px}
  .brand img{width:74px;height:74px}
  .footer-logo img{width:120px}
}


/* ===== V22 — logo transparent + retour navbar DND texte ===== */
.brand{
  width:auto;
  height:auto;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  overflow:visible
}
.brand b{
  font:27px/1 var(--serif);
  font-weight:400;
  letter-spacing:.04em
}
.brand span{
  margin-top:5px;
  font-size:6px;
  letter-spacing:.28em;
  white-space:nowrap
}
.card-logo img,
.footer-logo img{
  object-fit:contain;
  background:transparent
}


/* ===== V24 — PAGE CONTACT ===== */
.contact-page{
  background:#070707
}
.contact-hero{
  padding:160px 5vw 100px;
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(circle at 80% 30%,rgba(255,255,255,.035),transparent 32%),
    #070707
}
.contact-hero-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:90px;
  align-items:end
}
.contact-hero h1{
  font:clamp(65px,9vw,135px)/.82 var(--serif);
  font-weight:400;
  letter-spacing:-.05em;
  margin:20px 0 0
}
.contact-hero-copy{
  padding-bottom:12px;
  color:#8d8880;
  line-height:1.8
}
.contact-hero-copy span{
  display:block;
  margin-top:28px;
  padding-top:18px;
  border-top:1px solid var(--line);
  font-size:9px;
  letter-spacing:.22em
}
.contact-team-section{
  padding:110px 5vw
}
.contact-section-head{
  display:grid;
  grid-template-columns:1fr 420px;
  gap:50px;
  align-items:end;
  margin-bottom:50px
}
.contact-section-head h2{
  font:clamp(45px,6vw,78px)/1 var(--serif);
  font-weight:400;
  margin:12px 0 0
}
.contact-section-head>p{
  color:#77716a;
  line-height:1.65
}
.contact-team-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px
}
.contact-person-card{
  display:grid;
  grid-template-columns:210px 1fr;
  border:1px solid var(--line);
  background:#0b0b0b;
  min-height:300px
}
.contact-person-photo{
  background:#111;
  overflow:hidden
}
.contact-person-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block
}
.contact-person-placeholder{
  width:100%;
  height:100%;
  min-height:300px;
  display:grid;
  place-items:center;
  font:55px var(--serif);
  color:#252525
}
.contact-person-info{
  padding:28px;
  display:flex;
  flex-direction:column
}
.contact-person-info>span{
  font-size:8px;
  letter-spacing:.2em;
  color:#777
}
.contact-person-info h3{
  font:38px/1 var(--serif);
  font-weight:400;
  margin:8px 0 13px
}
.contact-person-info>p{
  color:#858078;
  line-height:1.6;
  font-size:12px;
  margin:0 0 25px
}
.contact-phone{
  margin-top:auto;
  border-top:1px solid var(--line);
  padding-top:17px;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:end
}
.contact-phone small{
  grid-column:1/-1;
  font-size:7px;
  letter-spacing:.2em;
  color:#666;
  margin-bottom:5px
}
.contact-phone strong{
  font:23px var(--serif);
  font-weight:400
}
.contact-phone b{
  font-size:18px;
  font-weight:400
}
.contact-loading{
  grid-column:1/-1;
  border-top:1px solid var(--line);
  color:#666;
  padding:35px 0
}
.contact-main-cta{
  padding:70px 5vw;
  background:var(--ivory);
  color:#111
}
.contact-main-cta-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:end
}
.contact-main-cta span,
.contact-main-cta small{
  font-size:8px;
  letter-spacing:.22em;
  color:#6e6961
}
.contact-main-cta h2{
  font:64px/1 var(--serif);
  font-weight:400;
  margin:10px 0 3px
}
.contact-main-cta p{
  color:#625e57;
  margin:0
}
.contact-main-cta>a{
  border-top:1px solid rgba(0,0,0,.18);
  padding-top:18px;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:end
}
.contact-main-cta>a small{
  grid-column:1/-1;
  margin-bottom:7px
}
.contact-main-cta>a strong{
  font:38px var(--serif);
  font-weight:400
}
.contact-main-cta>a b{
  font-size:23px;
  font-weight:400
}
@media(max-width:1000px){
  .contact-hero-grid,
  .contact-section-head,
  .contact-main-cta-grid{
    grid-template-columns:1fr
  }
  .contact-team-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .contact-hero,
  .contact-team-section,
  .contact-main-cta{padding-left:18px;padding-right:18px}
  .contact-person-card{grid-template-columns:125px 1fr}
  .contact-person-info{padding:20px 16px}
  .contact-person-info h3{font-size:30px}
  .contact-phone strong{font-size:18px}
}


/* ===== V26 — numéros RP copiables ===== */
.contact-phone,
.copy-main-phone{
  font:inherit;
  cursor:pointer;
  text-align:left
}
button.contact-phone{
  width:100%;
  background:transparent;
  color:inherit;
  border:0;
  border-top:1px solid var(--line);
}
.contact-phone.copied{
  color:#fff
}
.contact-phone.copied small{
  color:#9fc3a6
}
.copy-main-phone{
  width:100%;
  border:0;
  border-top:1px solid rgba(0,0,0,.18);
  background:transparent;
  color:#111;
  padding:18px 0 0;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:end
}
.copy-main-phone small{
  grid-column:1/-1;
  margin-bottom:7px;
  font-size:8px;
  letter-spacing:.22em;
  color:#6e6961
}
.copy-main-phone strong{
  font:38px var(--serif);
  font-weight:400
}
.copy-main-phone b{
  font-size:23px;
  font-weight:400
}
.copy-main-phone.copied small{
  color:#4d7556
}

.inline-copy-phone{
  margin-top:4px;
  padding:0;
  border:0;
  background:transparent;
  color:#fff;
  font:18px var(--serif);
  cursor:pointer;
  text-align:left
}
.inline-copy-phone:hover{opacity:.75}
