/* Chat-Dé Partage : reprend les couleurs et la police du site (Elementor / Ohio), y compris le mode sombre. */
.cds {
	--cds-accent: var(--cds-accent-src, var(--e-global-color-primary, #7a1f3d));
	--cds-on-accent: #fff;
	--cds-surface: #fff;
	--cds-line: #ddd5d8;
	--cds-btn: 40px;
	position: relative;
	margin: 32px 0 0;
	color: inherit;
	font-family: inherit;
}
@supports (color: color-mix(in srgb, red 50%, blue)) {
	.cds { --cds-line: color-mix(in srgb, currentColor 25%, transparent); }
}
.cds, .cds *, .cds *::before, .cds *::after { box-sizing: border-box; }
.cds-size-s { --cds-btn: 34px; }
.cds-size-m { --cds-btn: 42px; }
.cds-size-l { --cds-btn: 52px; }

.cds .cds-title { margin: 0 0 12px; font-size: .8em; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; opacity: .7; }
.cds .cds-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.cds .cds-list li { margin: 0; padding: 0; list-style: none; }
.cds .cds-list li[hidden] { display: none; }
.cds-align-center .cds-list, .cds-align-center .cds-title { justify-content: center; text-align: center; }
.cds-align-right .cds-list, .cds-align-right .cds-title { justify-content: flex-end; text-align: right; }

.cds .cds-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: var(--cds-btn); height: var(--cds-btn); margin: 0; padding: 0; border: 1px solid transparent; border-radius: 50%; background: var(--cds-brand, #6b7280); color: #fff; font: inherit; font-size: .88em; font-weight: 600; line-height: 1; text-decoration: none; cursor: pointer; transition: transform .15s, background .15s, border-color .15s, color .15s; -webkit-appearance: none; appearance: none; }
.cds .cds-btn:hover { transform: translateY(-2px); color: #fff; }
.cds .cds-btn:focus-visible { outline: 2px solid var(--cds-accent); outline-offset: 3px; }
.cds .cds-ico { display: block; flex: none; width: calc(var(--cds-btn) * .46); height: calc(var(--cds-btn) * .46); margin: 0; }
.cds .cds-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Formes */
.cds-shape-square .cds-btn { border-radius: 12px; }
.cds-shape-pill .cds-btn, .cds-has-labels .cds-btn { width: auto; padding: 0 16px; border-radius: 999px; }
.cds-shape-square.cds-has-labels .cds-btn { border-radius: 12px; }
.cds-has-labels .cds-label { position: static; width: auto; height: auto; overflow: visible; clip: auto; }
.cds-shape-pill .cds-label { position: static; width: auto; height: auto; overflow: visible; clip: auto; }

/* Icônes : blanches sur la couleur du réseau, même si le thème impose ses propres couleurs de lien */
.cds .cds-ico-fill path { fill: currentColor; }
.cds .cds-ico-stroke, .cds .cds-ico-stroke * { fill: none; stroke: currentColor; }
.cds-color-brand .cds-btn, .cds-color-brand .cds-btn:hover, .cds-color-brand .cds-btn:focus, .cds-color-brand .cds-btn:visited { color: #fff !important; }
.cds-color-brand .cds-btn .cds-label { color: #fff !important; }

/* Couleurs */
.cds-color-brand .cds-x, .cds-color-brand .cds-threads { border-color: var(--cds-line); background: #111; }
.cds-color-accent .cds-btn { background: var(--cds-accent); color: var(--cds-on-accent); }
.cds-color-accent .cds-btn:hover { color: var(--cds-on-accent); filter: brightness(1.1); }
.cds-color-mono .cds-btn { background: transparent; border-color: var(--cds-line); color: inherit; }
.cds-color-mono .cds-btn:hover { border-color: var(--cds-accent); color: var(--cds-accent); }

.cds .cds-toast { position: absolute; left: 0; bottom: calc(100% + 6px); padding: 7px 12px; border-radius: 8px; background: #1f1a1c; color: #fff; font-size: .82em; line-height: 1.3; opacity: 0; transform: translateY(4px); pointer-events: none; transition: opacity .2s, transform .2s; white-space: nowrap; max-width: 90vw; }
.cds-align-center .cds-toast { left: 50%; transform: translate(-50%, 4px); }
.cds-align-center .cds-toast.is-on { transform: translate(-50%, 0); }
.cds-align-right .cds-toast { left: auto; right: 0; }
.cds .cds-toast.is-on { opacity: 1; transform: translateY(0); }
.cds-align-center .cds-toast.is-on { transform: translate(-50%, 0); }

/* Barre fixe : reste visible pendant le défilement.
   Petit écran ou fenêtre moyenne : barre horizontale en bas, centrée. Très grand écran : colonne à gauche. */
.cds-float { position: fixed; left: 0; right: 0; bottom: calc(14px + env(safe-area-inset-bottom, 0px)); z-index: 9990; width: max-content; max-width: calc(100vw - 16px); margin: 0 auto; padding: 8px 10px; border: 1px solid var(--cds-line); border-radius: 999px; background: var(--cds-surface); box-shadow: 0 10px 30px rgba(0, 0, 0, .2); overflow-x: auto; scrollbar-width: none; }
.cds-float::-webkit-scrollbar { display: none; }
.cds-float .cds-title { display: none; }
.cds-float .cds-list { flex-wrap: nowrap; gap: 6px; }
.cds-float .cds-btn, .cds-float.cds-has-labels .cds-btn, .cds-float.cds-shape-pill .cds-btn { width: var(--cds-btn); padding: 0; border-radius: 50%; }
.cds-float.cds-shape-square .cds-btn { border-radius: 12px; }
.cds-float .cds-label, .cds-float.cds-has-labels .cds-label, .cds-float.cds-shape-pill .cds-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.cds-float .cds-toast { position: fixed; left: 50%; right: auto; bottom: calc(84px + env(safe-area-inset-bottom, 0px)); top: auto; transform: translateX(-50%) translateY(6px); }
.cds-float .cds-toast.is-on { transform: translateX(-50%) translateY(0); }
/* Une fois le script chargé : la barre apparaît quand on commence à lire et s'efface près du bas de la page. */
.cds-float.cds-js { opacity: 0; visibility: hidden; transition: opacity .25s, visibility .25s; }
.cds-float.cds-js.is-visible { opacity: 1; visibility: visible; }
@media (min-width: 1400px) {
	.cds-float { left: 18px; right: auto; top: 0; bottom: 0; width: auto; height: max-content; max-height: calc(100vh - 40px); margin: auto 0; padding: 10px 8px; border-radius: 999px; overflow-x: visible; overflow-y: auto; }
	.cds-float .cds-list { flex-direction: column; }
}
@media (max-width: 767px) {
	.cds .cds-list { gap: 6px; }
	.cds-size-l { --cds-btn: 46px; }
	.cds-float { --cds-btn: 36px; padding: 7px 9px; }
}
@media print { .cds { display: none; } }
@media (prefers-reduced-motion: reduce) { .cds * { transition: none !important; } }
