/* ==========================================================================
   Réalisations — listing [rap_realisations] (#s-list)
   Tokens, boutons, cartes et bandeau CTA : voir common.css
   ========================================================================== */

/* ================= BANDEAU DE TÊTE ================= */
#s-list .rap-pagehead > .rap-wrap:first-child {
  padding-block: 104px 0;
}
#s-list .rap-pagehead h1 {
  color: var(--rap-navy) !important; /* le style Divi du module rend le H1 doré en préprod */
  font-size: clamp(38px, 5.4vw, 76px);
  line-height: 1.06;
  max-width: 16ch;
}
#s-list .rap-lead {
  --rap-lead-lines: 3;
  color: var(--rap-muted);
  font-size: 18px;
  line-height: 1.55;
  max-width: 100%;
  margin: 30px auto 0;
}
#s-list .rap-lead > * + * {
  margin-top: 12px;
}
/* replié par le JS (sans JS : texte complet) */
#s-list .rap-lead.is-clamped {
  max-height: calc(1.55em * var(--rap-lead-lines));
  overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent);
  mask-image: linear-gradient(180deg, #000 55%, transparent);
}
#s-list .rap-lead-more {
  margin-top: 10px;
  padding: 4px 0;
  background: none;
  border: 0;
  border-bottom: 1px solid var(--rap-navy);
  border-radius: 0;
  font: 500 13px/1.4 var(--rap-body);
  color: var(--rap-navy);
  cursor: pointer;
}

/* filtres — 2 niveaux : type (pastilles) puis zone (liens) */
#s-list .rap-filters .rap-wrap {
  padding-block: 44px 0;
}
#s-list .rap-lvl1 {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
#s-list .rap-lvl2 {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
  margin-top: 22px;
}
#s-list .rap-chip {
  border: 1px solid transparent;
  background: transparent;
  border-radius: 999px;
  padding: 9px 18px;
  font: 400 14px/1.4 var(--rap-body);
  color: var(--rap-muted);
  cursor: pointer;
  transition: color .2s, background .2s;
}
#s-list .rap-chip:hover {
  color: var(--rap-navy);
}
#s-list .rap-chip[aria-pressed="true"] {
  background: var(--rap-navy);
  color: #fff;
}
#s-list .rap-chip .rap-n {
  opacity: .45;
  margin-left: 5px;
  font-size: 12px;
}
#s-list .rap-zone {
  background: none;
  border: 0;
  border-bottom: 1px solid transparent;
  border-radius: 0;
  padding: 4px 0;
  font: 400 13px/1.4 var(--rap-body);
  color: var(--rap-muted);
  cursor: pointer;
  transition: color .2s, border-color .2s;
}
#s-list .rap-zone:hover {
  color: var(--rap-navy);
}
#s-list .rap-zone[aria-pressed="true"] {
  color: var(--rap-navy);
  border-bottom-color: var(--rap-navy);
}
#s-list .rap-rule {
  height: 1px;
  background: var(--rap-line);
  margin-top: 56px;
}

/* ---------- ligne de résultat / état vide ---------- */
#s-list .rap-resultline {
  padding-block: 40px 0;
  font-size: 13px;
  color: var(--rap-muted);
}
#s-list .rap-resultline b {
  font-weight: 500;
  color: var(--rap-navy);
}
#s-list .rap-vide {
  text-align: center;
  padding-block: 72px 96px;
  color: var(--rap-muted);
}
#s-list .rap-vide p {
  font-family: var(--rap-display);
  font-size: 24px;
  color: var(--rap-navy);
  margin-bottom: 20px;
}

/* ---------- grille ---------- */
#s-list .rap-grid {
  padding-block: 32px 72px;
}
#s-list .rap-card.is-hidden {
  display: none;
}
#s-list .rap-loadmore {
  text-align: center;
  padding-bottom: 72px;
}

/* ---------- responsive ---------- */
@media (max-width: 980px) {
  #s-list {
    padding-top: 60px;
  }
  #s-list .rap-pagehead > .rap-wrap:first-child {
    padding-block: 72px 0;
  }
}

@media (max-width: 640px) {
  #s-list .rap-pagehead > .rap-wrap:first-child {
    padding-block: 48px 0;
  }
  #s-list .rap-lead {
    --rap-lead-lines: 4;
    margin-inline: 0;
    font-size: 16px;
  }
  #s-list .rap-filters .rap-wrap {
    padding-top: 32px;
  }
  #s-list .rap-lvl1 {
    justify-content: flex-start;
    gap: 8px;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    margin-inline: -24px;
    padding-inline: 24px;
  }
  #s-list .rap-lvl1::-webkit-scrollbar {
    display: none;
  }
  #s-list .rap-lvl2 {
    justify-content: flex-start;
    gap: 18px;
    margin-top: 18px;
  }
  #s-list .rap-chip {
    white-space: nowrap;
    border-color: var(--rap-line);
  }
  #s-list .rap-resultline {
    padding-block: 28px 0;
  }
}
