/* ==========================================================================
   Catalogue public — « Les indispensables » et « Consommables »
   (en-tête, bandeau kits, barre de filtres, compteur, grille, encarts).
   ========================================================================== */

.catalogue-entete { padding-bottom: 0; }
.catalogue-entete .section-entete { margin-bottom: clamp(1.25rem, 3vw, 2rem); }
.catalogue-intro { font-size: 1.05rem; max-width: 40rem; }

/* ---------- Bandeau kits pédagogiques ---------- */
.catalogue-kits {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.4fr); gap: clamp(1.25rem, 3vw, 2.5rem); align-items: center;
  background: var(--surface); border: 1px solid var(--ligne); border-radius: var(--rayon-l); padding: clamp(1.25rem, 3vw, 2rem);
  margin-bottom: clamp(1.5rem, 4vw, 2.5rem); box-shadow: var(--ombre-1);
}
.catalogue-kits-texte p:last-child { margin-bottom: 0; }
.catalogue-kits-titre { font-size: clamp(1.35rem, 2.2vw, 1.7rem); margin-bottom: 0.4rem; }
.catalogue-kits-liste { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 1fr)); gap: 0.75rem; }
.catalogue-kit {
  display: flex; flex-direction: column; gap: 0.2rem; padding: 0.9rem 1rem; border-radius: var(--rayon); border: 1px solid var(--ligne);
  background: var(--surface-2); color: var(--encre); transition: border-color var(--transition), background var(--transition), transform var(--transition);
}
.catalogue-kit:hover { text-decoration: none; border-color: var(--sable); background: var(--sable-clair); transform: translateY(-1px); }
.catalogue-kit-nom { font-weight: 600; line-height: 1.3; }
.catalogue-kit-meta { font-size: var(--texte-xs); color: var(--encre-3); }

/* ---------- Barre de filtres ---------- */
.filtres { display: flex; flex-direction: column; gap: 1rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--ligne); }
.filtres-puces { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.puce-filtre-nombre { font-size: 0.72rem; font-variant-numeric: tabular-nums; opacity: 0.7; }
.filtres-form { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 1.5rem; }
.filtres-recherche { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; flex: 1 1 22rem; max-width: 36rem; }
.filtres-recherche .entree { flex: 1 1 12rem; }
.filtres-recherche .entree::-webkit-search-cancel-button { -webkit-appearance: none; }
.filtres-effacer { font-size: var(--texte-s); color: var(--encre-2); text-decoration: underline; text-underline-offset: 2px; }
.filtres-tri { display: flex; align-items: center; gap: 0.6rem; }
.filtres-tri-etiquette { font-size: var(--texte-s); font-weight: 600; white-space: nowrap; }
.filtres-tri .selection { width: auto; min-width: 11rem; }
.filtres-form.a-js .filtres-tri-bouton { display: none; }

/* ---------- Liste ---------- */
.catalogue-liste { padding-top: 1.5rem; }
.catalogue-compte { font-size: var(--texte-s); color: var(--encre-2); margin-bottom: 1.25rem; }
.catalogue-compte strong { color: var(--encre); font-variant-numeric: tabular-nums; }
.catalogue-grille { animation: catalogue-apparait 260ms ease-out both; }
@keyframes catalogue-apparait { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.catalogue-vide { background: var(--surface); border: 1px dashed var(--ligne-2); border-radius: var(--rayon-l); padding: clamp(2.5rem, 6vw, 4rem) 1.25rem; }
.catalogue-vide .vide-titre { font-size: clamp(1.35rem, 2.2vw, 1.7rem); }

/* ---------- Encarts de bas de page ---------- */
.catalogue-encart {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem 2rem;
  margin-top: clamp(2.5rem, 6vw, 4rem); padding: clamp(1.5rem, 3.5vw, 2.25rem); border-radius: var(--rayon-l);
  background: var(--surface-2); border: 1px solid var(--ligne);
}
.catalogue-encart > div:first-child { flex: 1 1 26rem; max-width: 44rem; }
.catalogue-encart p:last-child { margin-bottom: 0; }
.catalogue-encart-titre { font-size: clamp(1.25rem, 2vw, 1.55rem); margin-bottom: 0.4rem; }
.catalogue-encart-actions { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.catalogue-encart--reassort { background: var(--sable-clair); border-color: var(--sable); }
.catalogue-encart--reassort .texte-2 { color: var(--encre-2); }

/* ---------- Petits écrans ---------- */
@media (max-width: 900px) {
  .catalogue-kits { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .filtres-form { flex-direction: column; align-items: stretch; }
  .filtres-recherche { max-width: none; }
  .filtres-recherche .bouton { flex: 1 1 auto; }
  .filtres-tri { justify-content: space-between; }
  .filtres-tri .selection { flex: 1; }
  .catalogue-encart-actions { width: 100%; }
  .catalogue-encart-actions .bouton { flex: 1 1 auto; }
}
