/* ====== ParisVices — Cards Agenda (Bootstrap 5 friendly) ====== */
.pv-card {
  border: none;
  border-radius: 16px;
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease;
}
.pv-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 28px rgba(0,0,0,.18);
}

/* Image wrapper: hauteur responsive et crop propre pour portraits */
/* wrapper piloté par aspect-ratio */
.pv-thumb {
  aspect-ratio: 4 / 4;         /* desktop par défaut */
  width: 100%;
  position: relative;
  overflow: hidden;
}

/* l’image continue à remplir le wrapper */
.pv-thumb img,
.pv-thumb picture img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* mobile : on passe en ratio plus vertical */
@media (max-width: 767.98px) {
  .pv-thumb {
    aspect-ratio: 4 / 4;        /* ou 3 / 4 si tu préfères encore plus haut */
  }
}




/* Teaser limité pour uniformiser les hauteurs avec effet fade */
.pv-lineclamp {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
  overflow: hidden;
  margin-bottom: 18px;

  -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 80%, rgba(0,0,0,0));
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,1) 80%, rgba(0,0,0,0));
}

/* Bouton dégradé ParisVices collé en bas */
.pv-card .card-body {
  display: flex;
  flex-direction: column;
}
.btn.btn-primary {
  align-self: flex-start;
  margin-top: auto;
  /*background: linear-gradient(45deg, #ff48c4, #2bd1fc);*/
  border: none;
  border-radius: 999px;
  font-weight: 700;
  padding: .55rem 1rem;
}
.btn.btn-primary:hover {
  filter: brightness(.95);
}

/* Titre punchy */
.pv-card .card-title {
  color: #2e3a56;
  font-weight: 800;
  font-size: 1.15rem;
}