:root {
  --brand: #2f6fed;
  --text: #1f2330;
}
body { color: var(--text); }

/* HERO */
.hero {
  background: url('/assets/img/hero.png?v=1') center/cover no-repeat;
  min-height: 48vh;
}
@media (min-width: 992px) {
  .hero { min-height: 60vh; }
}
.hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.35));
}

/* Cartes catégorie */
.cat-card {
  display:block; position:relative; border-radius:1rem; overflow:hidden;
  background:#fff; border:1px solid #eaeaea; text-decoration:none; color:inherit;
}
.cat-card img { width:100%; height:180px; object-fit:cover; display:block; }
.cat-card .cat-fallback {
  height:180px; display:grid; place-items:center; background:#f5f7fb; font-size:2rem;
}
.cat-card span {
  position:absolute; left:0; right:0; bottom:0; 
  padding:.6rem .9rem; background:rgba(0,0,0,.5); color:#fff; font-weight:600;
}

/* Cartes annonce */
.ad-card {
  display:block; border:1px solid #eaeaea; border-radius:1rem; background:#fff; text-decoration:none; color:inherit;
  transition: transform .15s ease, box-shadow .15s ease;
}
.ad-card:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,.06); }

/* Hauteur homogène des cartes du carrousel */
.carousel-card { border-radius: 1rem; min-height: 320px; }
@media (min-width: 992px) { .carousel-card { min-height: 360px; } }

/* Images utilitaires */
.object-fit-cover { object-fit: cover; }