/* =========================================================
   IMBOX V2 — Design system premium / marketplace
   Plus d'espace, type plus premium, ombres douces.
   Display: Bricolage Grotesque · Texte: Manrope
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,600;12..96,700;12..96,800&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{
  --navy:#152348;
  --navy-deep:#0d1830;
  --navy-700:#27396a;
  --navy-500:#5b6c92;
  --orange:#f4671f;
  --orange-dark:#dd560f;
  --orange-soft:#fef0e6;
  --ia:#5b54e6;
  --ia-soft:#edecff;

  --bg:#ffffff;
  --bg-2:#f7f8fb;
  --surface:#ffffff;
  --line:#e9edf3;
  --line-2:#f1f4f9;
  --ink:#101b34;
  --body:#48566f;
  --muted:#8390a6;

  --green:#16a06a;
  --green-soft:#e4f6ed;

  --r:18px;--r-sm:12px;--r-lg:26px;
  --sh-sm:0 1px 2px rgba(16,27,52,.05);
  --sh:0 10px 30px -12px rgba(16,27,52,.18);
  --sh-lg:0 30px 70px -24px rgba(16,27,52,.30);
  --maxw:1240px;--gut:24px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Manrope',system-ui,sans-serif;color:var(--body);background:var(--bg);
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
h1,h2,h3,h4{font-family:'Bricolage Grotesque',system-ui,sans-serif;color:var(--ink);line-height:1.08;
  letter-spacing:-.02em;margin:0;font-weight:700;text-wrap:balance}
h1{font-size:clamp(2.2rem,4.6vw,3.5rem);font-weight:800}
h2{font-size:clamp(1.7rem,3vw,2.5rem)}
h3{font-size:1.2rem}
p{margin:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.section{padding:90px 0}
section{scroll-margin-top:88px}
.lead{font-size:1.18rem;color:var(--body);max-width:60ch;text-wrap:pretty}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:'Bricolage Grotesque',sans-serif;
  font-weight:600;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--orange)}
.eyebrow .dot{width:7px;height:7px;border-radius:50%;background:currentColor}
.eyebrow--navy{color:var(--navy-500)}
.eyebrow--ia{color:var(--ia)}
.center{text-align:center;margin-inline:auto}
.sec-head{max-width:760px;margin-bottom:46px}
.sec-head h2{margin:14px 0}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:'Bricolage Grotesque',sans-serif;
  font-weight:600;font-size:1rem;padding:14px 24px;border-radius:12px;border:1.5px solid transparent;
  transition:transform .14s,box-shadow .2s,background .2s,border-color .2s;white-space:nowrap;line-height:1}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--orange);color:#fff;box-shadow:0 8px 20px -6px rgba(244,103,31,.5)}
.btn-primary:hover{background:var(--orange-dark);box-shadow:0 12px 26px -6px rgba(244,103,31,.55)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-deep)}
.btn-ghost{background:#fff;color:var(--navy);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--navy)}
.btn-soft{background:var(--bg-2);color:var(--navy);border-color:transparent}
.btn-soft:hover{background:#eef1f6}
.btn-ia{background:var(--ia);color:#fff}.btn-ia:hover{filter:brightness(1.06)}
.btn-lg{padding:17px 30px;font-size:1.05rem;border-radius:14px}
.btn-sm{padding:10px 16px;font-size:.9rem;border-radius:10px}
.btn-block{width:100%}
.btn svg{width:18px;height:18px}
.alink{display:inline-flex;align-items:center;gap:7px;font-family:'Bricolage Grotesque',sans-serif;font-weight:600;color:var(--navy)}
.alink svg{width:18px;height:18px;transition:transform .2s}
.alink:hover svg{transform:translateX(4px)}

/* ---- Badges ---- */
.badge{display:inline-flex;align-items:center;gap:6px;font-family:'Bricolage Grotesque',sans-serif;font-weight:600;
  font-size:.74rem;padding:5px 11px;border-radius:999px}
.badge-dispo{background:var(--green-soft);color:var(--green)}
.badge-dispo .dot{width:7px;height:7px;border-radius:50%;background:var(--green)}
.badge-louer{background:var(--orange-soft);color:var(--orange-dark)}
.badge-vendre{background:#e7eefc;color:#2c52a8}
.badge-soon{background:var(--bg-2);color:var(--muted)}
.badge-ia{background:var(--ia-soft);color:var(--ia)}
.tag{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;color:var(--body);
  background:var(--bg-2);padding:6px 12px;border-radius:999px}

/* ---- Header (marketplace) ---- */
.hd{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.9);backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid var(--line)}
.hd-in{display:flex;align-items:center;gap:18px;height:76px}
.brand{display:flex;align-items:center;gap:10px}
.brand .mark{height:38px}.brand .word{height:20px}
.hd-nav{display:flex;align-items:center;gap:2px;margin:0 auto}
.hd-nav a{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:.98rem;color:var(--ink);
  padding:10px 16px;border-radius:10px;transition:background .15s,color .15s}
.hd-nav a:hover{background:var(--bg-2)}
.hd-nav a.active{color:var(--orange)}
.hd-right{display:flex;align-items:center;gap:8px}
.icon-btn{width:42px;height:42px;border-radius:11px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;position:relative}
.icon-btn:hover{border-color:var(--navy)}
.icon-btn svg{width:20px;height:20px;color:var(--navy)}
.icon-btn .dotc{position:absolute;top:8px;right:9px;width:7px;height:7px;border-radius:50%;background:var(--orange)}
.hd-login{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:.96rem;color:var(--navy);padding:10px 12px}
.hd-login:hover{color:var(--orange)}
.burger{display:none;width:42px;height:42px;border-radius:11px;border:1px solid var(--line);background:#fff;place-items:center}
.burger svg{width:22px;height:22px;color:var(--navy)}
.mnav{display:none}
@media(max-width:1080px){
  .hd-nav,.hd-login{display:none}
  .burger{display:grid}
  .mnav.open{display:block;border-top:1px solid var(--line);background:#fff;padding:12px var(--gut)}
  .mnav a{display:block;padding:13px 6px;font-family:'Bricolage Grotesque',sans-serif;font-weight:600;color:var(--navy);border-bottom:1px solid var(--line-2)}
}
/* mobile sticky deposit */
.fab-depose{display:none}
@media(max-width:760px){
  .fab-depose{display:flex;position:fixed;left:16px;right:16px;bottom:16px;z-index:55;justify-content:center}
}

/* ---- Image placeholders ---- */
.ph{position:relative;background:repeating-linear-gradient(135deg,#e1e7f0 0 13px,#eaeff6 13px 26px);
  display:flex;align-items:center;justify-content:center;overflow:hidden}
.ph::after{content:attr(data-label);font-family:'Bricolage Grotesque',monospace;font-size:.72rem;font-weight:600;
  color:#93a1bd;background:rgba(255,255,255,.78);padding:5px 10px;border-radius:7px;border:1px dashed #bcc7dc}
.ph--navy{background:repeating-linear-gradient(135deg,#1a2c52 0 13px,#213665 13px 26px)}
.ph--navy::after{color:#aebbd7;background:rgba(13,24,48,.5);border-color:rgba(255,255,255,.22)}

/* ---- Listing card (premium) ---- */
.grid{display:grid;gap:26px}
.g4{grid-template-columns:repeat(4,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g2{grid-template-columns:repeat(2,1fr)}
.lc{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;
  transition:transform .18s,box-shadow .22s,border-color .2s}
.lc:hover{transform:translateY(-5px);box-shadow:var(--sh);border-color:#dde3ee}
.lc .m{position:relative;aspect-ratio:4/3}
.lc .m .ph{position:absolute;inset:0}
.lc .m .cn{position:absolute;top:12px;left:12px;display:flex;gap:6px}
.lc .m .fav{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.94);
  border:none;display:grid;place-items:center;box-shadow:var(--sh-sm)}
.lc .m .fav svg{width:18px;height:18px;color:var(--navy-500)}
.lc .m .fav.on svg{color:var(--orange);fill:var(--orange)}
.lc .m .ph-count{position:absolute;bottom:12px;right:12px;background:rgba(13,24,48,.7);color:#fff;font-size:.76rem;
  font-weight:600;padding:4px 9px;border-radius:8px;display:flex;align-items:center;gap:5px}
.lc .b{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.lc .pr{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:1.45rem;color:var(--ink)}
.lc .pr .pe{font-size:.82rem;font-weight:600;color:var(--muted)}
.lc .ti{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:1.02rem;color:var(--ink)}
.lc .lo{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.9rem}
.lc .lo svg{width:15px;height:15px}
.lc .sp{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.lc .sp .t{font-size:.8rem;font-weight:600;color:var(--body);background:var(--bg-2);padding:5px 10px;border-radius:8px}
.lc .ft{margin-top:auto;padding-top:14px}

@media(max-width:980px){.g4,.g3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.g4,.g3,.g2{grid-template-columns:1fr}.section{padding:60px 0}}

/* Picto Nouveau/Exclusif */
.badge-new{background:linear-gradient(135deg,#c9a227,#e6c85c);color:#2b2308;font-weight:800;letter-spacing:.02em;box-shadow:0 2px 8px rgba(201,162,39,.45)}

/* ---- Listing cards — public site ---- */
.listing{position:relative;min-width:0;background:#fff;border:1px solid rgba(21,35,72,.09);border-radius:22px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 5px 18px rgba(21,35,72,.06);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.listing:hover{transform:translateY(-7px);border-color:rgba(244,103,31,.28);box-shadow:0 24px 60px -24px rgba(21,35,72,.38)}
.listing .media{position:relative;aspect-ratio:16/10;overflow:hidden;background:#dfe5ef}
.listing .media-link{position:absolute;inset:0;display:block;overflow:hidden}
.listing .media img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .35s ease}
.listing:hover .media img{transform:scale(1.055);filter:saturate(1.06) contrast(1.02)}
.listing .media-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,17,39,.04) 35%,rgba(7,17,39,.52) 100%);pointer-events:none}
.listing .corner{position:absolute;top:14px;left:14px;right:62px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;pointer-events:none}
.listing .corner .badge{backdrop-filter:blur(12px);box-shadow:0 5px 16px rgba(8,17,37,.12)}
.listing .fav{position:absolute;top:14px;right:14px;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.72);background:rgba(255,255,255,.92);color:var(--navy);display:grid;place-items:center;box-shadow:0 9px 24px rgba(8,17,37,.22);transition:transform .18s ease,background .18s ease,color .18s ease;z-index:2}
.listing .fav:hover{transform:scale(1.08);background:#fff;color:var(--orange)}
.listing .fav svg{width:20px;height:20px}
.listing .fav.on{background:var(--orange);color:#fff;border-color:var(--orange)}
.listing .fav.on svg{fill:#fff}
.listing .photo-note{position:absolute;left:14px;bottom:12px;color:rgba(255,255,255,.9);font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-shadow:0 1px 8px rgba(0,0,0,.7);pointer-events:none}
.listing .body{padding:20px 20px 18px;display:flex;flex-direction:column;gap:10px;flex:1}
.listing .price-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.listing .price{font-family:'Bricolage Grotesque',sans-serif;font-size:1.65rem;line-height:1;font-weight:800;letter-spacing:-.025em;color:var(--ink)}
.listing .price .per{font-family:'Manrope',sans-serif;font-size:.8rem;font-weight:700;letter-spacing:0;color:var(--muted);margin-left:4px}
.listing .tag{padding:5px 10px;font-size:.72rem;color:var(--navy);background:#f1f4f9;border:1px solid #e8ecf3}
.listing .title{font-family:'Bricolage Grotesque',sans-serif;font-size:1.09rem;line-height:1.3;font-weight:700;color:var(--ink);transition:color .15s ease}
.listing .title:hover{color:var(--orange-dark)}
.listing .loc{display:flex;align-items:flex-start;gap:7px;color:var(--muted);font-size:.86rem;line-height:1.45}
.listing .loc svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--orange)}
.listing .body .specs{display:flex;grid-template-columns:none;flex-wrap:wrap;gap:7px;margin:3px 0 0}
.listing .body .specs span{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid #e8ecf3;border-radius:9px;background:#f9fafc;color:#536078;font-size:.75rem;font-weight:700;line-height:1}
.listing .body .specs svg{width:14px;height:14px;color:var(--navy-500);flex:none}
.listing .foot{margin-top:auto;padding-top:15px;border-top:1px solid var(--line-2)}
.listing .card-link,.listing .card-visit{min-height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;gap:7px;font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:.88rem;transition:transform .15s ease,background .18s ease,border-color .18s ease,color .18s ease}
.listing .card-link{border:1.5px solid #dfe5ef;color:var(--navy);background:#fff}
.listing .card-link:hover{border-color:var(--navy);background:#f7f8fb}
.listing .card-link span{font-size:1.1rem;transition:transform .18s ease}
.listing .card-link:hover span{transform:translateX(3px)}
.listing .card-actions{display:grid;grid-template-columns:.9fr 1.1fr;gap:8px;border-top:0;padding-top:0}
.listing .card-actions .card-link{border-color:#e3e8f1}
.listing .card-visit{border:1.5px solid var(--navy);background:var(--navy);color:#fff;padding:0 10px}
.listing .card-visit:hover{background:var(--navy-deep);border-color:var(--navy-deep);transform:translateY(-1px)}
@media(max-width:600px){
  .listing{border-radius:18px}
  .listing .media{aspect-ratio:16/9}
  .listing .body{padding:18px}
}
