/* =========================================================================
   components.css — Éléments réutilisables : chips, photos, dégradés de repli
   ========================================================================= */

/* Photos + repli dégradé quand l'image manque ou échoue (hors-ligne). */
.photo { width: 100%; height: 100%; object-fit: cover; background: var(--paper-2); }
.photo--failed {
  background: linear-gradient(135deg, var(--forest) 0%, #43654f 45%, var(--gold) 100%);
  min-height: 160px;
}
.photo--failed::after {
  content: "❉";
  display: flex; align-items: center; justify-content: center;
  height: 100%; color: rgba(255,255,255,.5); font-size: 2rem;
}

/* Chips (étiquettes) */
.chips { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.chip {
  display: inline-flex; align-items: center;
  font-size: .72rem; font-weight: 600;
  padding: .22rem .6rem; border-radius: 999px;
  letter-spacing: .02em;
}
.chip--cost { background: var(--forest); color: #fff; }
.chip--time { background: var(--paper-2); color: var(--ink-soft); }
/* Tarif étudiant : plein tarif barré + prix réduit + petit diplôme. */
.chip--student { gap: .34rem; padding-right: .5rem; }
.chip--student .chip__was { opacity: .62; font-weight: 500; text-decoration-thickness: 1px; }
.chip--student .chip__now { font-weight: 700; }
.chip--student .chip__edu { font-size: .82em; line-height: 1; filter: saturate(.85); }
.chip--tag {
  background: transparent; color: var(--ink-soft);
  border: 1px solid var(--line-strong);
  text-transform: capitalize; font-weight: 500;
}
.star { color: var(--gold); }
