/* ============================================================
   LURE TRIATHLON — Équipements : Le marché de l'occasion
   Complète style.css (variables --bleu, --marine, --rouge, --jaune,
   --gris, --light déjà définies là-bas) et reserve.css (pages
   réservées : dépôt, mes annonces).
   ============================================================ */

.occasions-header {
  max-width: 900px;
  margin: 0 auto;
  padding: calc(var(--nav-height, 64px) + 3rem) 1.5rem 1rem;
  text-align: center;
}

.occasions-header h1 { color: var(--marine); font-size: 2rem; margin: .5rem 0 1rem; }
.occasions-header .accent { color: var(--bleu); }
.occasions-header-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin-top: 1rem; }

.produits-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 2rem;
  max-width: 1200px;
  margin: 2rem auto;
  padding: 0 1.5rem 4rem;
}

.produit-card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,.08);
  transition: transform .3s, box-shadow .3s;
  display: flex;
  flex-direction: column;
}
.produit-card:hover { transform: translateY(-6px); box-shadow: 0 12px 40px rgba(0,0,0,.15); }

.produit-photo { width: 100%; height: 200px; object-fit: cover; display: block; background: var(--light); }

.produit-body { padding: 1.25rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.produit-body h3 { color: var(--marine); font-size: 1.1rem; }

.produit-prix {
  display: inline-block; align-self: flex-start;
  background: var(--bleu); color: #fff;
  font-size: .8rem; font-weight: 700;
  padding: .25rem .75rem; border-radius: 20px;
}

.produit-description {
  color: #444; font-size: .9rem; line-height: 1.4;
  display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}

.produit-footer { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: .75rem; }

.produit-footer .btn-contact-sec { background: var(--bleu); color: #fff; }
.produit-footer .btn-contact-sec:hover { background: var(--marine); }

.produit-signaler { font-size: .75rem; color: var(--gris); text-decoration: none; }
.produit-signaler:hover { color: var(--rouge); text-decoration: underline; }
button.produit-signaler { background: none; border: none; padding: 0; font-family: inherit; line-height: inherit; cursor: pointer; }

.occasions-vide { text-align: center; color: var(--gris); padding: 3rem 1.5rem; }

/* Bandeaux de confirmation/erreur — mêmes valeurs que reserve.css (pages réservées),
   dupliquées ici car occasions.php ne charge pas reserve.css. */
.reserve-message { padding: .75rem 1rem; border-radius: 6px; margin-bottom: 1rem; font-weight: 600; }
.reserve-message-ok { background: #eaf7e6; color: #2e7d32; }
.reserve-message-erreur { background: #fdecea; color: #b3261e; }

/* --- Formulaire de dépôt (deposer-annonce.php) --- */
.annonce-form-photo-apercu {
  display: none; max-width: 200px; border-radius: 8px; margin-top: .5rem;
}
.annonce-form-photo-apercu.is-visible { display: block; }

.reserve-auth-form textarea {
  padding: .65rem .8rem; border: 1px solid #ccc; border-radius: 6px;
  font-size: 1rem; font-family: inherit; resize: vertical;
}

/* --- Mes annonces (mes-annonces.php) --- */
.mes-annonces-liste { display: flex; flex-direction: column; gap: 1rem; }
.mes-annonce-item {
  display: flex; align-items: center; gap: 1rem;
  background: var(--light); border-radius: 10px; padding: 1rem;
}
.mes-annonce-item img { width: 64px; height: 64px; object-fit: cover; border-radius: 6px; flex-shrink: 0; }
.mes-annonce-item .infos { flex: 1; }
.mes-annonce-item .infos h3 { font-size: 1rem; color: var(--marine); }

/* --- Contacter le vendeur (contacter-annonce.php) --- */
.contacter-annonce-resume {
  background: var(--light); border-radius: 10px; padding: 1rem 1.25rem; margin-bottom: 1.5rem;
}

@media (max-width: 600px) {
  .produits-grid { grid-template-columns: 1fr; }
}
