/* ── Bannière post-tunnel ─────────────────────────────────── */
.catalogue-banniere {
  background: linear-gradient(135deg, var(--green-900), var(--green-700));
  color: var(--white); padding: 36px 0;
}
.banniere-content {
  display: flex; gap: 36px; align-items: center;
}
.banniere-score {
  display: flex; align-items: center; gap: 16px; flex-shrink: 0;
}
.score-cercle {
  width: 72px; height: 72px; border-radius: 50%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  border: 3px solid rgba(255,255,255,.4); flex-shrink: 0;
}
.score-cercle.score-tres_chaud { background: rgba(239,68,68,.3); border-color: #FCA5A5; }
.score-cercle.score-chaud      { background: rgba(245,158,11,.3); border-color: #FCD34D; }
.score-cercle.score-tiede      { background: rgba(59,130,246,.3); border-color: #93C5FD; }
.score-cercle.score-froid      { background: rgba(107,114,128,.3); border-color: #D1D5DB; }
.score-val  { font-size: 1.375rem; font-weight: 800; line-height: 1; }
.score-max  { font-size: .75rem; opacity: .7; }
.score-label strong { display: block; font-size: 1rem; font-weight: 700; }
.score-label span   { font-size: .875rem; opacity: .8; }
.banniere-texte h2 { font-size: 1.375rem; font-weight: 700; margin-bottom: 8px; }
.banniere-texte p  { opacity: .88; font-size: .9375rem; margin-bottom: 16px; line-height: 1.6; }

/* ── Filtres ──────────────────────────────────────────────── */
.catalogue-main { padding: 48px 0 80px; }
.catalogue-filtres {
  display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 36px;
  padding-bottom: 24px; border-bottom: 1px solid var(--gray-200);
}
.filtre-btn {
  padding: 7px 16px; border-radius: 50px;
  border: 1.5px solid var(--gray-200); font-size: .8125rem; font-weight: 600;
  color: var(--gray-600); transition: all .18s ease; cursor: pointer;
}
.filtre-btn:hover  { border-color: var(--green-600); color: var(--green-700); background: var(--green-100); }
.filtre-btn.active { background: var(--green-800); color: var(--white); border-color: var(--green-800); }

/* ── En-tête ──────────────────────────────────────────────── */
.catalogue-entete { margin-bottom: 32px; }
.catalogue-entete h1 { font-size: 1.75rem; font-weight: 700; margin-bottom: 6px; }
.catalogue-entete p  { color: var(--gray-500); font-size: 1rem; }

/* ── Grille solutions ─────────────────────────────────────── */
.solutions-catalogue-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 24px;
}
.sol-card {
  background: var(--white); border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-lg); padding: 28px; position: relative;
  display: flex; flex-direction: column; gap: 12px;
  transition: all .2s ease;
}
.sol-card:hover { border-color: var(--green-500); box-shadow: var(--shadow-lg); transform: translateY(-2px); }
.sol-card-top   { border-color: var(--green-600); box-shadow: 0 0 0 3px var(--green-200); }
.sol-top-badge {
  position: absolute; top: -12px; left: 20px;
  background: var(--green-700); color: var(--white);
  font-size: .75rem; font-weight: 700; padding: 3px 12px; border-radius: 50px;
}
.sol-promo-badge {
  position: absolute; top: -12px; right: 20px;
  background: var(--accent); color: var(--white);
  font-size: .75rem; font-weight: 700; padding: 3px 12px; border-radius: 50px;
}
.sol-domaine-chip {
  display: inline-block; font-size: .75rem; font-weight: 700;
  padding: 3px 10px; border-radius: 50px; align-self: flex-start;
}
.sol-nom    { font-size: 1.0625rem; font-weight: 700; line-height: 1.3; }
.sol-accroche { font-size: .9375rem; color: var(--green-700); font-weight: 500; }
.sol-desc   { font-size: .875rem; color: var(--gray-600); line-height: 1.6; }
.sol-features {
  list-style: none; display: flex; flex-direction: column; gap: 5px;
}
.sol-features li { font-size: .875rem; color: var(--gray-700); }
.sol-prix {
  display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
  padding: 10px 0; border-top: 1px solid var(--gray-200); margin-top: 4px;
}
.prix-barre  { font-size: .875rem; color: var(--gray-400); text-decoration: line-through; }
.prix-promo  { font-size: 1.125rem; font-weight: 800; color: var(--accent); }
.prix-normal { font-size: .9375rem; font-weight: 600; color: var(--gray-700); }
.prix-unite  { font-size: .8125rem; color: var(--gray-400); }
.sol-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.sol-detail  { margin-top: 8px; }
.sol-detail-inner {
  background: var(--gray-100); border-radius: var(--radius); padding: 16px;
  font-size: .875rem;
}
.sol-detail-inner h4 { font-size: .875rem; font-weight: 700; margin-bottom: 8px; }
.sol-detail-inner p  { color: var(--gray-600); line-height: 1.6; }
.sol-meta { margin-top: 10px; font-size: .8125rem; color: var(--gray-600); }

/* ── État vide ──────────────────────────────────────────── */
.catalogue-vide {
  text-align: center; padding: 80px 20px;
}
.vide-icon { font-size: 3rem; margin-bottom: 16px; }
.catalogue-vide h3 { font-size: 1.25rem; font-weight: 700; margin-bottom: 8px; }
.catalogue-vide p  { color: var(--gray-500); margin-bottom: 24px; }

/* ── CTA bas de page ─────────────────────────────────────── */
.catalogue-cta-bottom { margin-top: 56px; }
.cta-box-inline {
  background: var(--green-900); color: var(--white);
  border-radius: var(--radius-xl); padding: 36px 40px;
  display: flex; align-items: center; justify-content: space-between; gap: 32px;
}
.cta-box-inline h3 { font-size: 1.25rem; font-weight: 700; margin-bottom: 6px; }
.cta-box-inline p  { opacity: .8; font-size: .9375rem; }

@media (max-width: 640px) {
  .banniere-content { flex-direction: column; }
  .cta-box-inline   { flex-direction: column; }
  .solutions-catalogue-grid { grid-template-columns: 1fr; }
}
