/* Mosaïque responsive, gaps 2px — fidèle au layout Lovable */
.masonry{column-count:1;column-gap:2px;}
@media (min-width:768px){.masonry{column-count:2;}}
@media (min-width:1024px){.masonry{column-count:3;}}
.masonry-item{break-inside:avoid;margin-bottom:2px;cursor:pointer;}
.cat-nav{display:flex;flex-wrap:wrap;gap:.5rem;max-width:80rem;margin:0 auto;padding:2rem 1.5rem 0;}
@media (min-width:768px){.cat-nav{padding:2.5rem 4rem 0;}}
.cat-link{display:inline-block;padding:.4rem .8rem;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:oklch(45% .015 65);border:1px solid oklch(88% .01 75);text-decoration:none;transition:border-color .3s,color .3s,background-color .3s;}
.cat-link:hover{border-color:oklch(18% .01 60 / .6);color:oklch(18% .01 60);}
.cat-link.is-active{background:oklch(18% .01 60);color:oklch(98.5% .005 80);border-color:oklch(18% .01 60);}

/* Badge de disponibilité (haut-gauche de l'image) */
.pdispo{position:absolute;top:.6rem;left:.6rem;z-index:5;display:inline-flex;align-items:center;gap:.4rem;
  padding:.3rem .6rem;font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;
  background:rgba(255,255,255,.92);color:#1c1b18;border-radius:999px;backdrop-filter:blur(4px);
  box-shadow:0 1px 4px rgba(0,0,0,.12);}
.pdispo .pdot{width:7px;height:7px;border-radius:50%;background:#9aa0a6;}
.pdispo-dispo .pdot{background:#1f9d55;}
.pdispo-vendu{color:#fff;background:rgba(176,0,32,.92);}
.pdispo-vendu .pdot{background:#fff;}
.pdispo-new{color:#fff;background:rgba(28,27,24,.92);}
.pdispo-new .pdot{background:#e9c46a;}
