.hero-campaign { display:flex; flex-direction:column; overflow:hidden; border:1px solid #dce5d2; background:#edf1e2; height:560px; }
.campaign-stage { position:relative; flex:1; min-height:0; overflow:hidden; touch-action:pan-y; }
.campaign-slide { --campaign-tone:#edf1e2; --campaign-accent:#718d43; --campaign-line:#d9e2c9; position:absolute; inset:0; display:flex; flex-direction:column; padding:28px 34px 12px; background:var(--campaign-tone); isolation:isolate; }
.campaign-slide[hidden] { display:none; }
.campaign-seeds { --campaign-tone:#f4efdf; --campaign-accent:#9b7835; --campaign-line:#e5dcc5; }
.campaign-irrigation { --campaign-tone:#e8f0ec; --campaign-accent:#4d8071; --campaign-line:#d5e2d9; }
.campaign-slide::before { content:''; position:absolute; z-index:-1; width:520px; height:320px; right:-150px; bottom:-120px; border:1px solid var(--campaign-line); border-radius:50%; transform:rotate(-22deg); box-shadow:0 0 0 20px var(--campaign-tone),0 0 0 21px var(--campaign-line),0 0 0 41px var(--campaign-tone),0 0 0 42px var(--campaign-line),0 0 0 62px var(--campaign-tone),0 0 0 63px var(--campaign-line); pointer-events:none; }

/* Grand numéro en filigrane (décoratif), derrière le texte et les produits */
.campaign-num { position:absolute; z-index:-1; right:22px; top:58px; font-size:170px; line-height:1; font-weight:800; letter-spacing:-8px; color:var(--campaign-accent); opacity:.1; pointer-events:none; user-select:none; font-variant-numeric:tabular-nums; }

/* Entrée en cascade : chaque bloc arrive de la gauche, l’un après l’autre */
.campaign-in { opacity:0; transform:translateX(-34px); transition:opacity .7s ease,transform .9s cubic-bezier(.2,.75,.2,1); }
.campaign-slide.is-active .campaign-in { opacity:1; transform:none; transition-delay:calc(var(--d,0) * 80ms + 260ms); }
.campaign-slide.is-leaving .campaign-in { opacity:0; transform:translateX(60px); transition-delay:0s; transition-duration:.6s; }

.campaign-topline { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.campaign-tag { font-size:10px; line-height:1.6; letter-spacing:1.15px; font-weight:750; padding:5px 11px; border:1px solid #244b352b; border-radius:30px; white-space:nowrap; color:#244b35; }
.campaign-edition { font-size:9px; letter-spacing:1px; color:#6b7864; white-space:nowrap; }
.campaign-slide .campaign-title { font-size:40px; line-height:1.1; letter-spacing:-1.4px; font-weight:600; margin:20px 0 8px; color:#244b35; }
.campaign-slide .campaign-title em { font-style:normal; color:var(--campaign-accent); }
.campaign-description { font-size:14px; line-height:1.65; color:#65745e; margin:0; }
.campaign-products {
  display:grid;
  flex:1;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1.22fr) minmax(0, 1fr);
  grid-template-rows:minmax(0, 1fr);
  align-items:end;
  gap:16px;
  min-height:0;
  padding:12px 2px 8px;
}

/* Le fond blanc des emballages se fond dans la carte (multiply) : appliqué sur le bouton lui-même */
.campaign-product { position:relative; min-width:0; min-height:0; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; border:0; padding:0; background:transparent; color:#244b35; cursor:pointer; mix-blend-mode:multiply; }
.campaign-product::before { content:''; position:absolute; z-index:-1; left:10%; right:10%; bottom:34px; height:14px; border-radius:50%; background:radial-gradient(closest-side,#00000026,#0000); filter:blur(2px); pointer-events:none; }
.campaign-product img { display:block; width:100%; height:calc(100% - 40px); max-height:190px; min-height:0; object-fit:contain; object-position:50% 100%; transition:translate .3s ease; animation:campaign-float 6s ease-in-out infinite; animation-delay:calc(var(--d,3) * -1.3s); }
.campaign-product-main img { max-height:214px; }
.campaign-product span { display:block; flex-shrink:0; font-size:12px; line-height:1.35; text-align:center; margin-top:8px; }
.campaign-product small { display:block; color:#596c50; font-size:10px; }
.campaign-product-main strong { font-weight:800; }
.campaign-product:hover img { translate:0 -6px; }
@keyframes campaign-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-6px); } }

.campaign-link { align-self:flex-start; display:inline-flex; align-items:center; justify-content:space-between; gap:20px; min-height:44px; flex-shrink:0; font-size:13.5px; font-weight:700; color:#244b35; padding:4px 0; text-decoration:none; border-bottom:1px solid #82996d; }
.campaign-link svg { width:18px; height:18px; }

.campaign-controls { flex-shrink:0; min-height:64px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 22px 0 26px; border-top:1px solid #244b3514; background:#fafbf6; }
.campaign-controls[hidden] { display:none; }
.campaign-position,.campaign-dots,.campaign-arrows { display:flex; align-items:center; }
.campaign-position { min-width:0; }

/* Onglets 01 / 02 / 03 : la barre se remplit pendant le temps d’affichage de la gamme */
.campaign-dots { gap:22px; }
.campaign-dots button { flex:0 1 92px; min-width:0; display:block; padding:12px 0; background:none; border:0; cursor:pointer; text-align:left; color:#718065; font:inherit; }
.campaign-dots .tab-n { display:block; font-size:10px; line-height:1.4; letter-spacing:1px; font-weight:700; margin-bottom:6px; white-space:nowrap; }
.campaign-dots .tab-t { margin-left:6px; font-size:12px; font-weight:600; letter-spacing:0; }
.campaign-dots i { display:block; position:relative; overflow:hidden; height:3px; border-radius:3px; background:#d6dfcb; }
.campaign-dots i::after { content:''; position:absolute; inset:0; background:#315b3e; transform:scaleX(0); transform-origin:left; }
.campaign-dots [aria-current=true] { color:#244b35; }
.hero-campaign.is-timing .campaign-dots [aria-current=true] i::after { animation:campaign-fill var(--banner-interval,6500ms) linear forwards; }
@keyframes campaign-fill { to { transform:scaleX(1); } }

.campaign-arrows { gap:6px; }
.campaign-control { display:grid; place-items:center; width:42px; height:42px; padding:0; border:1px solid #dce5d3; border-radius:50%; background:transparent; color:#315b3e; cursor:pointer; transition:background .2s,border-color .2s; }
.campaign-control:hover { background:#eaf0e0; border-color:#a5b795; }
.campaign-control svg { width:17px; height:17px; }
.campaign-previous svg { transform:rotate(180deg); }
.hero-campaign :focus-visible { outline:2px solid #315b3e; outline-offset:3px; }

/* Les gammes glissent vers la droite : la nouvelle arrive de la gauche */
.campaign-slide.is-entering { animation:campaign-enter 1.15s cubic-bezier(.65,.05,.2,1) both; z-index:2; }
.campaign-slide.is-leaving { animation:campaign-leave 1.15s cubic-bezier(.65,.05,.2,1) both; z-index:1; }
@keyframes campaign-enter { from { transform:translateX(var(--enter-x,-100%)); } to { transform:translateX(0); } }
@keyframes campaign-leave { from { transform:translateX(0); } to { transform:translateX(var(--exit-x,100%)); } }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

@media(max-width:1040px) and (min-width:801px) { .campaign-num { display:none; } }
@media(max-width:1100px) and (min-width:801px) { .hero-campaign { height:500px; }.campaign-product-main { flex-grow:1.2; }.campaign-product img { max-height:200px; }.campaign-product-main img { max-height:232px; }.campaign-slide { padding:24px 24px 12px; }.campaign-slide .campaign-title { font-size:33px; margin:18px 0 6px; }.campaign-description { font-size:12.5px; }.campaign-edition { display:none; }.campaign-num { font-size:120px; top:64px; right:16px; letter-spacing:-6px; }.campaign-products { gap:10px; }.campaign-controls { padding:0 14px 0 18px; }.campaign-dots { gap:14px; }.campaign-dots button { flex-basis:78px; }.campaign-dots .tab-t { display:none; } }
@media(max-width:800px) { .hero-campaign { height:510px; }.campaign-slide { padding-left:28px; padding-right:28px; }.campaign-slide .campaign-title { font-size:38px; }.campaign-num { font-size:150px; top:64px; }.campaign-product img { max-height:184px; }.campaign-product-main img { max-height:204px; } }
@media(max-width:520px) { .hero-campaign { height:440px; }.campaign-slide { padding:20px 20px 8px; }.campaign-edition,.campaign-description { display:none; }.campaign-slide .campaign-title { font-size:29px; line-height:1.13; letter-spacing:-.9px; margin:14px 0 2px; }.campaign-num { font-size:110px; top:62px; right:14px; letter-spacing:-5px; }.campaign-products { gap:8px; padding:8px 0 6px; }.campaign-product::before { bottom:28px; }.campaign-product img { max-height:148px; }.campaign-product-main img { max-height:176px; }.campaign-product span { font-size:9.5px; margin-top:6px; }.campaign-link { font-size:13px; min-height:42px; }.campaign-controls { padding:0 12px 0 16px; min-height:60px; gap:6px; }.campaign-dots { gap:10px; }.campaign-dots button { flex-basis:64px; }.campaign-dots .tab-t { display:none; }.campaign-arrows { gap:4px; }.campaign-control { width:38px; height:40px; } }
@media(max-width:360px) { .campaign-slide { padding-left:16px; padding-right:16px; }.campaign-slide .campaign-title { font-size:26px; }.campaign-num { font-size:92px; }.campaign-tag { font-size:9px; }.campaign-controls { padding-left:12px; padding-right:8px; }.campaign-dots { gap:6px; }.campaign-dots button { flex-basis:56px; }.campaign-arrows { gap:2px; }.campaign-control { width:36px; } }
@media(max-width:520px) {
 .campaign-product span { font-size:11px; }
 .campaign-product small { font-size:10px; }
}

@media(prefers-reduced-motion:reduce) {
 .campaign-slide.is-entering,.campaign-slide.is-leaving { animation:none; }
 .campaign-in,.campaign-slide.is-active .campaign-in,.campaign-slide.is-leaving .campaign-in { transition:none; transition-delay:0s; transform:none; }
 .campaign-product img { animation:none; transition:none; }
 .campaign-product:hover img { translate:none; }
 .hero-campaign.is-timing .campaign-dots [aria-current=true] i::after { animation:none; transform:scaleX(1); }
 .campaign-dots [aria-current=true] i::after { transform:scaleX(1); }
}
