Journal

Confidences d'atelier, sur le Sahel.

Récoltes, gestes artisanaux et lectures du terroir — le journal éditorial de la maison RS. Ce qui pousse au Mali avant que la formule n'arrive dans vos mains, saison après saison.

Le terroir du Sahel, là où tout commence.

Le terroir du Sahel, là où tout commence.

Lecture du terroir · Sahel

Avant d'être un flacon, un soin RS est un lieu — une bande de terre sahélienne, une saison, un geste transmis. Cet article inaugural ouvre n…

Lire l'article →

Pour aller plus loin…

Les rituels compagnons et les fiches produits vous attendent — gestes, étapes et provenance de chaque soin.

Lettre du Sahel
. window.rsHasConsent = function(category) { try { var raw = localStorage.getItem(STORAGE_KEY); if (!raw) return false; var c = JSON.parse(raw); if (!c || c.v !== VERSION) return false; return !!c[category]; } catch (e) { return false; } }; window.rsLoadAnalytics = function() { var slug = window.__rsAnalyticsSlug || ''; if (!slug) return; var vid; try { vid = localStorage.getItem('polsia_vid'); if (!vid) { vid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random() * 16 | 0; return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16); }); localStorage.setItem('polsia_vid', vid); } } catch (e) { return; } new Image().src = 'https://polsia.com/api/beacon/pixel?s=' + encodeURIComponent(slug) + '&v=' + encodeURIComponent(vid); document.dispatchEvent(new CustomEvent('rs:analytics-loaded')); }; window.rsOpenCookieSettings = function() { openBanner(); }; var lastOpener = null; function announce(msg) { if (live) live.textContent = msg; } function persist(state) { var payload = Object.assign({ analytics: false, marketing: false, ts: new Date().toISOString(), v: VERSION }, state); try { localStorage.setItem(STORAGE_KEY, JSON.stringify(payload)); } catch (e) {} document.dispatchEvent(new CustomEvent('rs:consent', { detail: payload })); return payload; } function closeBanner() { if (!banner) return; banner.hidden = true; banner.setAttribute('aria-hidden', 'true'); if (panel) { panel.setAttribute('aria-hidden', 'true'); } if (customizeBtn) customizeBtn.setAttribute('aria-expanded', 'false'); if (notice) notice.hidden = true; if (lastOpener && typeof lastOpener.focus === 'function') { try { lastOpener.focus(); } catch (e) {} } } function openBanner(opener) { if (!banner) return; lastOpener = opener || null; banner.hidden = false; banner.setAttribute('aria-hidden', 'false'); if (notice) notice.hidden = false; if (acceptBtn) acceptBtn.focus(); } function acceptAll() { persist({ analytics: true, marketing: true }); announce('Choix enregistré : tout accepter.'); if (analyticsToggle) analyticsToggle.checked = true; if (marketingToggle) marketingToggle.checked = true; closeBanner(); if (window.rsLoadAnalytics) window.rsLoadAnalytics(); } function rejectAll() { persist({ analytics: false, marketing: false }); announce('Choix enregistré : tout refuser.'); if (analyticsToggle) analyticsToggle.checked = false; if (marketingToggle) marketingToggle.checked = false; closeBanner(); } function savePreferences() { var aN = analyticsToggle ? analyticsToggle.checked : false; var mN = marketingToggle ? marketingToggle.checked : false; persist({ analytics: !!aN, marketing: !!mN }); announce('Choix enregistré.'); closeBanner(); if (aN && window.rsLoadAnalytics) window.rsLoadAnalytics(); } function togglePanel() { if (!panel || !customizeBtn) return; var expanded = customizeBtn.getAttribute('aria-expanded') === 'true'; var next = !expanded; customizeBtn.setAttribute('aria-expanded', next ? 'true' : 'false'); panel.setAttribute('aria-hidden', next ? 'false' : 'true'); if (next) { panel.scrollIntoView({ block: 'nearest', behavior: 'smooth' }); } } if (acceptBtn) acceptBtn.addEventListener('click', acceptAll); if (rejectBtn) rejectBtn.addEventListener('click', rejectAll); if (customizeBtn) customizeBtn.addEventListener('click', togglePanel); if (saveBtn) saveBtn.addEventListener('click', savePreferences); if (banner) { document.addEventListener('keydown', function(e) { if (!banner || banner.hidden) return; if (e.key === 'Escape') { e.preventDefault(); rejectAll(); } }); } // First-load: synchronous reveal BEFORE first paint so there is no flash. // The partial ships with hidden=true; we remove it inline. try { var raw = localStorage.getItem(STORAGE_KEY); var existing = raw ? JSON.parse(raw) : null; if (!existing || existing.v !== VERSION) { banner.hidden = false; banner.setAttribute('aria-hidden', 'false'); if (notice) notice.hidden = false; } else { // Existing choice: still wire up so toggles reflect stored state if user reopens settings. if (analyticsToggle) analyticsToggle.checked = !!existing.analytics; if (marketingToggle) marketingToggle.checked = !!existing.marketing; } } catch (e) { banner.hidden = false; banner.setAttribute('aria-hidden', 'false'); if (notice) notice.hidden = false; } })();