.bandeau{background:var(--riviere);color:var(--blanc);text-align:center;padding:5rem 1.2rem 4rem}
.bandeau .eyebrow{display:inline-block;background:var(--soleil);color:var(--nuit);font-weight:700;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;padding:.35rem .9rem;border-radius:4px;margin-bottom:1rem}
.bandeau h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:800;margin:0 auto .8rem;max-width:22ch}
.bandeau p{max-width:58ch;margin:0 auto;opacity:.92;font-size:1.1rem}

.btn--contour{background:transparent;color:var(--laterite);border:2px solid var(--laterite)}
.btn--contour:hover{background:rgba(176,62,23,.07)}

/* Campagne vedette */
.vedette{background:var(--blanc);border-radius:20px;box-shadow:0 12px 40px rgba(32,36,29,.1);overflow:hidden;display:grid;grid-template-columns:1.1fr 1fr}
.vedette-img{background-size:cover;background-position:center;min-height:340px}
.vedette-contenu{padding:2.6rem}
.badge{display:inline-block;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:.3rem .85rem;margin-bottom:1rem}
.badge--encours{background:rgba(46,94,78,.12);color:var(--riviere)}
.badge--completee{background:rgba(240,177,43,.2);color:#8a6210}
.badge--avenir{background:rgba(61,139,181,.14);color:#26576f}
.vedette h2{font-size:clamp(1.5rem,2.8vw,2.1rem);font-weight:800;margin-bottom:.7rem}
.vedette p{opacity:.85;margin-bottom:1.4rem}
.jauge{position:relative;height:22px;background:rgba(32,36,29,.1);border-radius:999px;overflow:hidden;margin-bottom:.6rem}
.jauge-eau{position:absolute;inset:0;width:var(--progres, 0%);border-radius:999px;background:linear-gradient(90deg,var(--eau),#5fb3da);animation:remplir 1.6s ease-out}
.jauge-eau--or{background:linear-gradient(90deg,var(--soleil),#f5c65e)}
.jauge-eau--vert{background:linear-gradient(90deg,var(--riviere),#3f7a66)}
@keyframes remplir{from{width:0}}
@media (prefers-reduced-motion:reduce){.jauge-eau{animation:none}}
.jauge-infos{display:flex;justify-content:space-between;font-size:.95rem;margin-bottom:1.6rem}
.jauge-infos strong{font-family:'Bricolage Grotesque',sans-serif;color:var(--laterite);font-size:1.15rem}
.vedette-actions{display:flex;gap:.8rem;flex-wrap:wrap}

/* Grille des autres campagnes */
.campagnes-grille{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:2.5rem}
.camp-carte{background:var(--blanc);border:1px solid rgba(32,36,29,.1);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}
.camp-carte:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(32,36,29,.12)}
.camp-carte .visuel{height:190px;background:linear-gradient(135deg,var(--riviere),var(--nuit));display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.55);font-weight:700;font-size:.9rem;letter-spacing:.05em}
.camp-carte .visuel img{width:100%;height:100%;object-fit:cover}
.camp-corps{padding:1.6rem;display:flex;flex-direction:column;gap:.6rem;flex-grow:1}
.camp-corps h3{font-size:1.2rem}
.camp-corps p{font-size:.95rem;opacity:.8;flex-grow:1}
.camp-corps .jauge{height:14px;margin-bottom:.4rem}
.camp-corps .jauge-infos{margin-bottom:1rem;font-size:.88rem}

.note-zeffy{background:rgba(240,177,43,.14);border-left:4px solid var(--soleil);border-radius:0 10px 10px 0;padding:1rem 1.2rem;font-size:.95rem;margin-top:2.5rem}

@media (max-width:820px){.vedette{grid-template-columns:1fr}.campagnes-grille{grid-template-columns:1fr}}
