/* « Campagnes » (partials/campaign): banner, decor, badge, delivery line, cart rows, « Mon espace ». Every theme; the tokens of the feast (--cp-bg / --cp-ink: 4.5:1). */
.cp-bar{position:relative;z-index:41;background:var(--cp-bg);color:var(--cp-ink);font-family:var(--sans,inherit);text-transform:none;letter-spacing:0}
.cp-bar__in{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px 10px;max-width:1200px;margin:0 auto;padding:7px 16px;font-size:.88rem;font-weight:700;line-height:1.3;text-align:center}
.cp-bar__msg{min-width:0;overflow-wrap:anywhere}
.cp-bar__left{padding:1px 9px;border-radius:999px;background:var(--cp-ink);color:var(--cp-bg);font-size:.8rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.cp-bar.is-over .cp-bar__left{opacity:1}
.has-cp .bar{top:var(--cp-y,0px)}
.cp-bar::after{content:"";display:none;height:12px;background-color:var(--paper);background-repeat:repeat-x;background-position:0 0;background-size:48px 12px}
html[data-motion=medium] .cp-bar::after,html[data-motion=high] .cp-bar::after{display:block}
.cp-bar:not([class*="cp-bar--"])::after{display:none}
@media (prefers-reduced-motion:reduce){.cp-bar::after{display:none !important}}
.cp-bar--garland::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='12'%3E%3Cpath d='M0 2q12 7 24 0t24 0' fill='none' stroke='%23365314' stroke-width='1.4'/%3E%3Ccircle cx='12' cy='7.5' r='3' fill='%23dc2626'/%3E%3Ccircle cx='36' cy='7.5' r='3' fill='%23eab308'/%3E%3C/svg%3E")}
.cp-bar--crescent::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='12'%3E%3Cpath d='M9 1.5a4.5 4.5 0 1 0 5 6.5 3.6 3.6 0 1 1-5-6.5z' fill='%23d4a017'/%3E%3Cpath d='M33 3l.9 1.9 2.1.3-1.5 1.5.4 2.1-1.9-1-1.9 1 .4-2.1-1.5-1.5 2.1-.3z' fill='%23d4a017'/%3E%3C/svg%3E")}
.cp-bar--confetti::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='12'%3E%3Crect x='3' y='3' width='5' height='3' rx='1' fill='%23ef4444' transform='rotate(-20 5 4)'/%3E%3Crect x='17' y='6' width='5' height='3' rx='1' fill='%233b82f6' transform='rotate(25 19 7)'/%3E%3Ccircle cx='30' cy='4' r='1.8' fill='%23eab308'/%3E%3Crect x='39' y='5' width='5' height='3' rx='1' fill='%2310b981' transform='rotate(-35 41 6)'/%3E%3C/svg%3E")}
.cp-bar--hearts::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='12'%3E%3Cpath d='M12 10.5 7.6 6.3a2.6 2.6 0 0 1 4.4-2.6 2.6 2.6 0 0 1 4.4 2.6z' fill='%23e11d48'/%3E%3Cpath d='M36 9 33.2 6.3a1.7 1.7 0 0 1 2.8-1.8 1.7 1.7 0 0 1 2.8 1.8z' fill='%23f472b6'/%3E%3C/svg%3E")}
.cp-bar--flames::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='12'%3E%3Cpath d='M12 11c-3 0-4-2.2-3.2-4.2C9.6 5 11 4.4 11 2c2 1.2 4.2 3.6 4 6-.1 1.8-1.4 3-3 3z' fill='%23ea580c'/%3E%3Cpath d='M36 11c-2 0-2.8-1.5-2.2-2.9.5-1.2 1.5-1.6 1.5-3.3 1.4.8 2.9 2.5 2.8 4.2-.1 1.2-1 2-2.1 2z' fill='%23f59e0b'/%3E%3C/svg%3E")}
.cp-bar--gifts::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='12'%3E%3Crect x='8' y='4' width='8' height='7' rx='1' fill='%230f766e'/%3E%3Cpath d='M12 4v7M8 7h8' stroke='%23eab308' stroke-width='1.4'/%3E%3Crect x='32' y='5' width='7' height='6' rx='1' fill='%23dc2626'/%3E%3Cpath d='M35.5 5v6M32 8h7' stroke='%23fff' stroke-width='1.2'/%3E%3C/svg%3E")}
.benefits .cp-badge{background:var(--cp-bg);color:var(--cp-ink);box-shadow:none;font-weight:800}
.theme-frais .cp-badge--price,.theme-recolte .cp-badge--price{display:none}
/* The badge on a card (partials/cp-tag): a small pill in the top corner of the picture, never a band under the name. */
.cp-tag{position:absolute;z-index:2;top:8px;right:8px;display:inline-flex;align-items:center;max-width:calc(100% - 16px);padding:3px 9px;border-radius:999px;background:var(--cp-bg);color:var(--cp-ink);font-family:inherit;font-size:11px;font-weight:800;line-height:1.3;letter-spacing:.01em;text-transform:none;text-wrap:balance;box-shadow:0 1px 2px rgb(0 0 0 / .18),0 4px 10px -4px rgb(0 0 0 / .3);pointer-events:none}
@media (min-width:700px){.cp-tag{top:10px;right:10px;padding:4px 10px;font-size:12px}}
.theme-brut .cp-tag,.theme-journal .cp-tag,.theme-retro .cp-tag{border-radius:0;box-shadow:none}
.theme-brut .cp-tag{box-shadow:0 0 0 2px var(--ink)}
.uv-card .cp-tag{top:14px;right:14px}
/* Frais and Récolte already flag the campaign's price on the picture; Carnet stamps it (the pill stays for screen readers). */
.theme-frais .cp-tag--price,.theme-recolte .cp-tag--price{display:none}
.theme-carnet .cp-tag{position:absolute !important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;box-shadow:none}
.cp-line{display:inline-flex;align-items:center;gap:.4em;width:fit-content;max-width:100%;margin:8px 0 0;padding:.3em .9em;border-radius:999px;background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);font-family:var(--sans,inherit);font-size:.88rem;font-weight:650;line-height:1.25;letter-spacing:0;text-transform:none;text-align:left;overflow-wrap:anywhere}
.sheet .cp-line{display:flex;width:100%;margin:0 0 10px;border-radius:14px;background:var(--brand-soft);color:var(--soft-text);box-shadow:none}
.dp--product+.cp-line{margin:0 0 10px}
.line__price s{display:block;color:var(--muted);font-size:.8em;font-weight:500}
.sum .cp-row dt{color:var(--ink)}
.sum .cp-row dd{color:var(--accent-text);white-space:nowrap}
.sum .cp-fee s{margin-right:.4em;color:var(--muted);font-weight:500}
.cp-over,.cp-hint{margin:0 0 10px;padding:8px 12px;border-radius:12px;background:var(--brand-soft);color:var(--soft-text);font-size:.88rem;font-weight:650;line-height:1.3}
.cp-over[hidden],.cp-hint[hidden]{display:none}
.cp-space{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;margin:0 0 var(--s2,20px);padding:14px;border-radius:16px;background:var(--brand-soft);color:var(--soft-text)}
.cp-space__emoji{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--cp-bg);font-size:1.5rem}
.cp-space__main{min-width:0}
.cp-space__h{margin:0 0 4px;font-size:1rem;font-weight:800;color:inherit}
.cp-space__msg{margin:0 0 4px;overflow-wrap:anywhere}
.cp-space__until{margin:0 0 6px;font-size:.85rem;font-weight:650}
.cp-space__left{white-space:nowrap}
.theme-retro .cp-bar{z-index:42}
