/* Référence commune des paniers flottants des offres saisonnières.
   Chaque offre ne paramètre que les variables --season-cart-* sur sa page. */
.season-floating-cart {
  position: fixed; box-sizing: border-box; right: clamp(12px, 2vw, 28px);
  bottom: clamp(12px, 2vw, 24px); z-index: 40;
  width: min(420px, calc(100vw - 24px)); padding: 20px;
  border: 1px solid var(--season-cart-border, rgba(74,118,79,.28));
  border-radius: 14px; color: var(--season-cart-ink, #173f2c);
  background: rgba(255,255,255,.94); box-shadow: 0 16px 36px var(--season-cart-shadow, rgba(14,42,27,.2));
  backdrop-filter: blur(10px);
  pointer-events: none;
}
.season-floating-cart__header { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:16px; padding-bottom:14px; border-bottom:1px solid var(--season-cart-rule, rgba(74,118,79,.16)); }
.season-floating-cart__header span { font-size:1rem; font-weight:850; text-transform:uppercase; }
.season-floating-cart__header strong { font-size:1.28rem; white-space:nowrap; }
.season-floating-cart__lines { display:grid; gap:0; margin:0; }
.season-floating-cart__line { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; padding:8px 0; }
.season-floating-cart__line dt, .season-floating-cart__line dd { margin:0; }
.season-floating-cart__line dt { display:flex; align-items:center; gap:8px; min-width:0; color:var(--season-cart-ink, #173f2c); font-size:.9rem; font-weight:800; }
.season-floating-cart__line dd { color:var(--season-cart-muted, rgba(23,63,44,.76)); font-size:.9rem; font-weight:760; text-align:right; white-space:nowrap; }
.season-floating-cart__status { width:15px; height:15px; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; border:1.5px solid currentColor; border-radius:999px; color:var(--season-cart-ink, #173f2c); font-size:.66rem; font-weight:900; }
.season-floating-cart__line.is-done .season-floating-cart__status { color:#fff; border-color:var(--season-cart-accent, #d1aa50); background:var(--season-cart-accent, #d1aa50); }
.season-floating-cart__line.is-unused { opacity:.58; }
.season-floating-cart__progress { position:relative; height:6px; overflow:hidden; margin-top:12px; border-radius:999px; background:var(--season-cart-track, rgba(74,118,79,.16)); }
.season-floating-cart__progress > span { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--season-cart-ink,#173f2c),var(--season-cart-accent,#d1aa50)); transition:width .2s ease; }
.season-floating-cart__hint { display:block; margin-top:7px; color:var(--season-cart-muted, rgba(23,63,44,.72)); font-size:.75rem; font-weight:650; }
.season-floating-cart__action { width:100%; margin-top:16px; padding:12px; border:0; border-radius:10px; background:var(--season-cart-ink,#173f2c); color:#fff; font:inherit; font-size:.9rem; font-weight:850; cursor:pointer; pointer-events:auto; }
.season-floating-cart__action:hover { filter:brightness(.86); }
@media (min-width:781px) and (max-width:1180px) {
  .season-floating-cart { position:sticky; top:12px; right:auto; bottom:auto; width:100%; margin:18px 0 24px; padding:14px 16px; border-radius:12px; }
  .season-floating-cart__lines { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
  .season-floating-cart__line { grid-template-columns:1fr; gap:4px; padding:6px 0; }
  .season-floating-cart__line dd { text-align:left; }
}
@media (max-width:780px) {
  .season-floating-cart { position:static; width:100%; margin:16px 0 20px; padding:12px; }
  .season-floating-cart__header strong { font-size:1.08rem; }
  .season-floating-cart__line dt, .season-floating-cart__line dd { font-size:.82rem; }
}
