:root{--bsa-vert:#3d6b2f;--bsa-vert-f:#2e5323;--bsa-creme:#f5f7f2;--bsa-texte:#1f2a1b;--bsa-gris:#6b7466}

.bsa-btn{display:inline-block;background:var(--bsa-vert);color:#fff!important;text-decoration:none!important;border-radius:6px;padding:11px 22px;font-weight:700;border:2px solid var(--bsa-vert);line-height:1.2}
.bsa-btn:hover{background:var(--bsa-vert-f);border-color:var(--bsa-vert-f)}
.bsa-btn--ghost{background:transparent;color:var(--bsa-vert)!important}
.bsa-btn--ghost:hover{background:var(--bsa-vert);color:#fff!important}

/* Bandeau de saison */
.bsa-saison{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;align-items:center;border-radius:12px;padding:28px;margin:24px 0;background:var(--bsa-creme);border-left:6px solid var(--bsa-vert)}
.bsa-saison--printemps{background:#eef7e6;border-color:#6aa84f}
.bsa-saison--ete{background:#fff6dc;border-color:#e0a800}
.bsa-saison--automne{background:#fbeee2;border-color:#c0661f}
.bsa-saison--hiver{background:#eaf1f7;border-color:#4a7aa3}
.bsa-saison__kicker{font-size:.9em;text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin:0 0 6px;color:var(--bsa-gris)}
.bsa-saison__lead{font-size:1.25em;line-height:1.4;margin:0 0 16px;color:var(--bsa-texte)}
.bsa-saison__actions{display:flex;flex-wrap:wrap;gap:10px;margin:0}
.bsa-saison__img img{width:100%;height:220px;object-fit:cover;border-radius:8px;display:block}
@media(max-width:720px){.bsa-saison{grid-template-columns:1fr;padding:20px}}

/* Filtres */
.bsa-filtres{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.bsa-filtre{background:#fff;border:1px solid #c9d3c4;border-radius:999px;padding:7px 16px;cursor:pointer;font:inherit;color:var(--bsa-texte)}
.bsa-filtre.is-active,.bsa-filtre:hover{background:var(--bsa-vert);border-color:var(--bsa-vert);color:#fff}

/* Grille */
.bsa-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px}
.bsa-carte{background:#fff;border:1px solid #e3e8df;border-radius:10px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s}
.bsa-carte:hover{box-shadow:0 6px 20px rgba(0,0,0,.08)}
.bsa-carte[hidden]{display:none}
.bsa-carte__img{display:block;aspect-ratio:4/3;background:var(--bsa-creme);overflow:hidden}
.bsa-carte__img img{width:100%;height:100%;object-fit:cover;display:block}
.bsa-carte__noimg{display:flex;align-items:center;justify-content:center;height:100%;font-size:48px}
.bsa-carte__body{padding:14px 16px 18px}
.bsa-carte__titre{font-size:1.1em;margin:6px 0 4px;line-height:1.3}
.bsa-carte__titre a{color:var(--bsa-texte);text-decoration:none}
.bsa-carte__titre a:hover{color:var(--bsa-vert)}
.bsa-carte__date{font-size:.85em;color:var(--bsa-gris);margin:0 0 8px}
.bsa-carte__extrait{font-size:.95em;margin:0;color:#333}
.bsa-badges{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.bsa-badge{font-size:.75em;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--bsa-creme);color:var(--bsa-texte)}
.bsa-badge--printemps{background:#dff0d0}
.bsa-badge--ete{background:#ffeaa8}
.bsa-badge--automne{background:#f6d6b8}
.bsa-badge--hiver{background:#d3e3f0}
.bsa-badge--int{background:#fff;border:1px solid #c9d3c4;font-weight:600}
.bsa-empty{padding:20px;background:var(--bsa-creme);border-radius:8px}

/* Bas d'article */
.bsa-foot{margin:40px 0 10px;padding-top:24px;border-top:1px solid #e3e8df}
.bsa-foot__cta{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;background:var(--bsa-creme);padding:18px 20px;border-radius:10px;margin-bottom:18px}
.bsa-foot__cta p{margin:0}
.bsa-share{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.bsa-share__lbl{font-weight:700;margin-right:4px}
.bsa-share__btn{display:inline-block;padding:7px 14px;border-radius:6px;border:1px solid #c9d3c4;background:#fff;color:var(--bsa-texte)!important;text-decoration:none!important;font:inherit;font-size:.9em;cursor:pointer}
.bsa-share__btn--fb{background:#1877f2;border-color:#1877f2;color:#fff!important}
.bsa-share__btn--wa{background:#25d366;border-color:#25d366;color:#fff!important}
.bsa-follow{margin-top:14px;font-size:.95em}
