Mentions légales

Informations
éditeur & hébergeur.

Les mentions légales du site RS — l'éditeur, l'hébergeur, et les coordonnées à utiliser pour toute demande officielle relative au contenu publié en ligne.

Éditeur du site

RS Cosmetics

Raison sociale : RS Cosmetics — [À compléter]. Forme juridique : [À compléter]. Capital social : [À compléter]. Siège social : [À compléter]. Numéro SIRET : [À compléter]. Numéro TVA intracommunautaire : [À compléter]. Directeur de la publication : [À compléter].

Pour toute demande relative au site, vous pouvez écrire à rs@polsia.app — nous répondons en français, sous 24 h ouvrées.

Hébergement

Hébergeur du site

Le site est hébergé par Render Services, Inc., situé au 525 Brannan Street, San Francisco, CA 94107, États-Unis — render.com. Les données applicatives sont stockées sur une base PostgreSQL gérée par Neon, Inc.

Propriété intellectuelle

Contenu du site

L'ensemble des contenus présents sur le site RS — textes, photographies, recettes de soins, fiches produit — est protégé par le droit d'auteur. Toute reproduction, intégrale ou partielle, sans autorisation écrite préalable de RS Cosmetics est interdite. Les produits du Sahel mis en valeur sur le site (karité, moringa, baobab, argile) sont nommés dans le respect des savoir-faire artisanaux qui les portent.

Contact

Signaler un contenu

Si vous constatez un contenu inapproprié, une erreur ou une omission, merci de nous en informer à rs@polsia.app. Nous traiterons votre signalement dans les meilleurs délais.

. 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; } })();