/* Référence commune des rails panier des offres saisonnières et du réassort.
   Chaque écran conserve son habillage et utilise ces classes pour la mise en page. */
.floating-cart-layout,
.floating-cart-layout__main {
  min-width: 0;
}

@media (min-width:1320px) {
  .floating-cart-layout {
    width:min(var(--floating-cart-layout-max,1600px),calc(100vw - 32px));
    margin:var(--floating-cart-layout-margin-top,28px) 0 0 50%;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(var(--floating-cart-rail-min,360px),var(--floating-cart-rail-width,420px));
    align-items:start;
    gap:var(--floating-cart-layout-gap,24px);
    transform:translateX(-50%);
  }
  .floating-cart-layout__main { grid-column:1; grid-row:1; }
  .floating-cart-layout > .floating-cart-rail[hidden] + .floating-cart-layout__main {
    grid-column:1 / -1;
  }
  .floating-cart-layout > .floating-cart-rail {
    position:sticky;
    grid-column:2;
    grid-row:1;
    align-self:start;
    top:24px;
    right:auto;
    bottom:auto;
    width:100%;
    max-height:calc(100vh - 48px);
    margin:0;
    overflow-y:auto;
    overscroll-behavior:contain;
  }
}

@media (min-width:781px) and (max-width:1319px) {
  .floating-cart-layout > .floating-cart-rail {
    position:static;
    top:auto;
    right:auto;
    bottom:auto;
    width:100%;
    max-height:none;
    margin:18px 0 24px;
    overflow:visible;
  }
}

@media (max-width:780px) {
  .floating-cart-layout > .floating-cart-rail {
    position:static;
    right:auto;
    bottom:auto;
    width:100%;
    max-height:none;
    margin:16px 0 20px;
    overflow:visible;
  }
}

.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:1319px) {
  .season-floating-cart { 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 { padding:12px; }
  .season-floating-cart__header strong { font-size:1.08rem; }
  .season-floating-cart__line dt, .season-floating-cart__line dd { font-size:.82rem; }
}
