/* Page publique « Nos projets » et aperçu dans le panneau admin.
   Couleur d'accent : variable du thème si elle existe, sinon le tan ACAPSE. */
.nos-projets { --np-accent: var(--primary-color, #C9A88A); --np-texte: #1f2a24; --np-gris: #6b7280; --np-fond: #fff; --np-ligne: #e5e7eb; }
.nos-projets--vide { text-align: center; color: var(--np-gris); padding: 32px 0; }
.np-section { margin: 0 0 36px; }
.np-section-titre { font-size: 1.35rem; margin: 0 0 14px; color: var(--np-texte); }
.np-liste { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 16px; }
.np-carte { background: var(--np-fond); border: 1px solid var(--np-ligne); border-radius: 12px; padding: 18px 18px 16px; box-shadow: 0 1px 3px rgba(0,0,0,.05); }
.np-titre { font-size: 1.08rem; line-height: 1.35; margin: 0 0 14px; color: var(--np-texte); }
.np-frise { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); position: relative; }
.np-etape { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; position: relative; font-size: .78rem; color: var(--np-gris); }
.np-etape + .np-etape::before { content: ""; position: absolute; top: 13px; right: 50%; width: 100%; height: 3px; background: var(--np-ligne); z-index: 0; }
.np-etape--fait + .np-etape::before, .np-etape--fait + .np-etape--actuel::before { background: var(--np-accent); }
.np-pastille { position: relative; z-index: 1; width: 28px; height: 28px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: .8rem; background: #fff; border: 3px solid var(--np-ligne); color: var(--np-gris); }
.np-etape--fait .np-pastille { background: var(--np-accent); border-color: var(--np-accent); color: #fff; }
.np-etape--actuel .np-pastille { border-color: var(--np-accent); color: var(--np-texte); box-shadow: 0 0 0 4px color-mix(in srgb, var(--np-accent) 25%, transparent); }
.np-etape--actuel .np-libelle { color: var(--np-texte); font-weight: 700; }
