{"id":4362,"date":"2026-07-19T16:34:40","date_gmt":"2026-07-19T15:34:40","guid":{"rendered":"https:\/\/www.prismia.ch\/?page_id=4362"},"modified":"2026-07-20T09:57:31","modified_gmt":"2026-07-20T08:57:31","slug":"anonymisation-donnees","status":"publish","type":"page","link":"https:\/\/www.prismia.ch\/en\/solutions\/anonymisation-donnees\/","title":{"rendered":"Data Anonymisation (EN)"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4362\" class=\"elementor elementor-4362 elementor-4330\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-da02b48 e-flex e-con-full pia-wrap pia-nav e-con e-parent\" data-id=\"da02b48\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-288e89d elementor-widget elementor-widget-html\" data-id=\"288e89d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n\/* ============================================================\n   PrismIA \u2014 mockup-v2 \u00b7 Design system \"sharp & clair\"\n   Tokens \u2192 base \u2192 composants \u2192 sections \u2192 responsive\n============================================================ *\/\n\n:root {\n  \/* Couleurs charte *\/\n  --p: #1929DD;          \/* primaire *\/\n  --a: #2C55FB;          \/* accent *\/\n  --lav: #91B1FF;        \/* secondaire lavande *\/\n  --dark: #04071b;       \/* navy hero\/footer *\/\n  --deep: #0A1240;\n  --ink: #0A0F2E;        \/* texte *\/\n  --muted: #4E5A85;      \/* texte secondaire *\/\n  --faint: #8B95BC;\n  --border: #E4E9F7;\n  --pale: #F7F9FF;       \/* fond section altern\u00e9 *\/\n  --pale2: #EEF1FF;      \/* fond section soutenu *\/\n  --white: #ffffff;\n\n  \/* Typo *\/\n  --sans: \"Plus Jakarta Sans\", system-ui, -apple-system, \"Segoe UI\", sans-serif;\n  --mono: \"Geist Mono\", ui-monospace, \"Cascadia Code\", Consolas, monospace;\n\n  \/* Layout *\/\n  --container: 1200px;\n  --radius-card: 10px;  \/* 16\u219210 le 12\/07 (Fran\u00e7ois : rendu plus pro\/action) *\/\n  --radius-btn: 8px;    \/* 12\u21928 idem *\/\n\n  \/* Ombres (teint\u00e9es bleu, jamais gris) *\/\n  --sh-sm: 0 2px 10px rgba(10, 18, 64, .06);\n  --sh-md: 0 10px 30px rgba(10, 18, 64, .10);\n  --sh-hover: 0 18px 44px rgba(25, 41, 221, .14);\n  --sh-cta: 0 10px 28px rgba(25, 41, 221, .28);\n}\n\n\/* ---------- Base ---------- *\/\n* { box-sizing: border-box; margin: 0; padding: 0; }\nhtml { scroll-behavior: smooth; }\n[id] { scroll-margin-top: 110px; } \/* les ancres atterrissent sous la nav fixe *\/\nbody {\n  font-family: var(--sans);\n  color: var(--ink);\n  background: var(--white);\n  line-height: 1.6;\n  font-size: 17px;\n  -webkit-font-smoothing: antialiased;\n}\nimg { max-width: 100%; display: block; }\na { color: inherit; }\n::selection { background: rgba(44, 85, 251, .18); }\n\n.container { max-width: var(--container); margin: 0 auto; padding: 0 28px; }\n\n\/* ---------- Typo helpers ---------- *\/\n.overline {\n  font-family: var(--mono);\n  font-size: 12.5px;\n  font-weight: 500;\n  letter-spacing: .14em;\n  text-transform: uppercase;\n  color: var(--a);\n  display: flex;\n  align-items: center;\n  gap: 9px;\n  margin-bottom: 16px;\n}\n\/* triangle-prisme d\u00e9grad\u00e9 (signature PrismIA, remplace le \"\/\" h\u00e9rit\u00e9) *\/\n.overline::before {\n  content: \"\"; width: 10px; height: 9px; flex: 0 0 auto;\n  background: linear-gradient(120deg, var(--p), var(--a) 55%, var(--lav));\n  clip-path: polygon(50% 0, 100% 100%, 0 100%);\n}\n\nh2 {\n  font-size: clamp(30px, 3.6vw, 44px);\n  font-weight: 750;\n  letter-spacing: -0.015em;\n  line-height: 1.12;\n  text-wrap: balance;\n  color: var(--ink);\n}\nh2 em, h1 em { font-style: italic; font-weight: 700; color: var(--a); }\nh3 { font-size: 21px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }\n.lead { color: var(--muted); font-size: 18px; max-width: 62ch; }\n\n.section { padding: 112px 0; }\n.section-head { max-width: 760px; margin-bottom: 56px; }\n.section-head p { margin-top: 18px; }\n\n\/* ---------- Boutons (sharp & modernes) ---------- *\/\n.btn {\n  display: inline-flex; align-items: center; gap: 10px;\n  font-family: var(--sans); font-weight: 700; font-size: 15.5px;\n  padding: 15px 26px; border-radius: var(--radius-btn);\n  text-decoration: none; cursor: pointer; border: 0;\n  transition: transform .2s ease, box-shadow .25s ease, background .2s ease, color .2s ease, border-color .2s ease;\n}\n.btn svg { transition: transform .2s ease; flex: 0 0 auto; }\n.btn:hover svg { transform: translateX(4px); }\n\n.btn-primary { background: var(--p); color: #fff; box-shadow: var(--sh-cta); }\n.btn-primary:hover { background: var(--a); transform: translateY(-2px); box-shadow: 0 16px 36px rgba(25, 41, 221, .38); }\n\n.btn-light { background: #fff; color: var(--p); box-shadow: 0 10px 28px rgba(4, 7, 27, .35); }\n.btn-light:hover { background: var(--pale2); transform: translateY(-2px); }\n\n.btn-ghost { background: transparent; color: var(--ink); border: 1.5px solid var(--border); }\n.btn-ghost:hover { border-color: var(--a); color: var(--a); transform: translateY(-2px); }\n\n\/* CTA Maturity Assessment : \u00ab prisme vivant \u00bb (2026-07-13, remplace la rotation conique 2 tons)\n   Signature IA multi-couleur : le spectre COULE le long du liser\u00e9 (translation, jamais de\n   rotation), une aurora multicolore respire sous le bouton, une \u00e9tincelle scintille avant\n   le label. Boucle exacte : 1re et derni\u00e8re teinte identiques + glissement d'un multiple\n   entier de tuile (300%). *\/\n.btn-maturity {\n  position: relative; isolation: isolate;\n  background: #fff; color: var(--p); border: 0;\n  animation: pia-aurora 5.6s ease-in-out infinite;\n}\n.btn-maturity::before { \/* liser\u00e9 : flux spectral 6 teintes *\/\n  content: \"\"; position: absolute; inset: 0; border-radius: inherit; padding: 2px;\n  background: linear-gradient(90deg,\n    #2C55FB, #7B5CFF, #E14FF6, #FF6B5B, #F5A524, #37C8F5, #2C55FB) 0 50% \/ 300% 100%;\n  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n  -webkit-mask-composite: xor; mask-composite: exclude;\n  pointer-events: none; z-index: -1;\n  animation: pia-flow 7s linear infinite;\n  transition: filter .25s ease;\n}\n\/* Ic\u00f4ne PODIUM anim\u00e9e (span .podium + 3 <i> dans les 3 boutons maturit\u00e9) :\n   cycle 6.5s partag\u00e9 par tous les \u00e9l\u00e9ments (synchro par pourcentages) \u2014\n   intro : les 3 marches jaillissent du sol en cascade (gauche, droite,\n   centre) puis l'\u00e9toile dor\u00e9e surgit du sol en tournoyant et rebondit ;\n   ~3s o\u00f9 seule l'\u00e9toile tourne lentement ; outro : \u00e9toile en vrille +\n   marches qui redescendent ; courte pause avant de reboucler. *\/\n.btn-maturity .podium {\n  position: relative; width: 22px; height: 25px; flex: 0 0 auto;\n  overflow: hidden; \/* les \u00e9l\u00e9ments \"sous le sol\" sont r\u00e9ellement invisibles *\/\n}\n.btn-maturity .podium i {\n  position: absolute; bottom: 0; width: 6px;\n  border-radius: 1.5px 1.5px 0 0;\n  background: linear-gradient(180deg, #5B84FF, #2C55FB); \/* bleu satur\u00e9, plus de lavande blanch\u00e2tre *\/\n  transform: scaleY(0); transform-origin: bottom;\n}\n.btn-maturity .podium i:nth-child(1) { left: 0;    height: 10px; animation: pia-pod-g 6.5s infinite; }\n.btn-maturity .podium i:nth-child(2) { left: 8px;  height: 14px; animation: pia-pod-c 6.5s infinite; } \/* centre : sort en dernier, 2px sous l'\u00e9toile *\/\n.btn-maturity .podium i:nth-child(3) { left: 16px; height: 12px; animation: pia-pod-d 6.5s infinite; }\n.btn-maturity .podium::before { \/* \u00e9toile dor\u00e9e *\/\n  content: \"\"; position: absolute; top: 0; left: 50%; margin-left: -4.5px;\n  width: 9px; height: 9px;\n  background: linear-gradient(135deg, #FFC24B, #F5A524);\n  -webkit-mask: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1.8l3 6.4 7 .8-5.2 4.8 1.4 6.9-6.2-3.5-6.2 3.5 1.4-6.9L2 9l7-.8 3-6.4z'\/%3E%3C\/svg%3E\") center \/ contain no-repeat;\n  mask: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1.8l3 6.4 7 .8-5.2 4.8 1.4 6.9-6.2-3.5-6.2 3.5 1.4-6.9L2 9l7-.8 3-6.4z'\/%3E%3C\/svg%3E\") center \/ contain no-repeat;\n  transform: translateY(28px) rotate(-160deg) scale(.4);\n  animation: pia-pod-star 6.5s infinite;\n}\n.btn-maturity:hover { transform: translateY(-2px); }\n.btn-maturity:hover::before { filter: brightness(1.22) saturate(1.25); }\n.btn-maturity:hover .podium { filter: brightness(1.15); }\n.btn-maturity.on-dark { background: rgba(6,12,44,.36); color: #fff; backdrop-filter: blur(8px); } \/* vitre bleut\u00e9e, moins noire *\/\n.btn-maturity.on-dark .podium i { background: linear-gradient(180deg, #B8CCFF, #6E93FF); } \/* barres \u00e9claircies : contraste sur la vitre sombre *\/\n\n\/* Aurora : les teintes du halo \u00e9changent leurs places (d\u00e9rive, pas de rotation) *\/\n@keyframes pia-aurora {\n  0%, 100% { box-shadow: -22px 12px 42px -6px rgba(44,85,251,.62), 0 14px 44px -4px rgba(225,79,246,.42), 22px 12px 42px -6px rgba(245,165,36,.52); }\n  33%      { box-shadow: -22px 12px 42px -6px rgba(245,165,36,.54), 0 14px 44px -4px rgba(44,85,251,.58), 22px 12px 42px -6px rgba(225,79,246,.50); }\n  66%      { box-shadow: -22px 12px 42px -6px rgba(225,79,246,.52), 0 14px 44px -4px rgba(245,165,36,.40), 22px 12px 42px -6px rgba(44,85,251,.62); }\n}\n@keyframes pia-flow { to { background-position: 300% 50%; } }\n\/* Podium \u2014 cycle 6.5s : intro 0-36% (2.3s) \u00b7 \u00e9toile seule qui tourne 36-82% (~3s) \u00b7\n   outro 82-92% \u00b7 pause 92-100%. D\u00e9passement \u00e9lastique (1.18) \u00e0 chaque mont\u00e9e. *\/\n@keyframes pia-pod-g { \/* marche gauche *\/\n  0%, 3% { transform: scaleY(0); }\n  9%     { transform: scaleY(1.18); }\n  13%, 82% { transform: scaleY(1); }\n  88%, 100% { transform: scaleY(0); }\n}\n@keyframes pia-pod-d { \/* marche droite *\/\n  0%, 9% { transform: scaleY(0); }\n  15%    { transform: scaleY(1.18); }\n  19%, 84% { transform: scaleY(1); }\n  90%, 100% { transform: scaleY(0); }\n}\n@keyframes pia-pod-c { \/* marche centrale (la plus haute, sort en dernier) *\/\n  0%, 15% { transform: scaleY(0); }\n  22%     { transform: scaleY(1.2); }\n  26%, 86% { transform: scaleY(1); }\n  92%, 100% { transform: scaleY(0); }\n}\n@keyframes pia-pod-star { \/* surgit du sol en tournoyant, rebond, rotation lente, vrille de sortie *\/\n  0%, 26% { transform: translateY(28px) rotate(-160deg) scale(.4); }\n  32%     { transform: translateY(-2.5px) rotate(12deg) scale(1.18); } \/* rebond au-dessus du perchoir *\/\n  36%     { transform: translateY(0) rotate(0deg) scale(1); }\n  59%     { transform: translateY(0) rotate(180deg) scale(1.08); }     \/* rotation lente + micro-pulse *\/\n  82%     { transform: translateY(0) rotate(360deg) scale(1); }\n  90%, 100% { transform: translateY(3px) rotate(540deg) scale(0); }    \/* vrille de sortie *\/\n}\n@media (prefers-reduced-motion: reduce) {\n  .btn-maturity, .btn-maturity::before,\n  .btn-maturity .podium i, .btn-maturity .podium::before { animation: none; }\n  .btn-maturity { box-shadow: 0 12px 36px -10px rgba(124,92,255,.40); }\n  .btn-maturity::before { background-size: 100% 100%; } \/* spectre complet visible en statique *\/\n  \/* podium fig\u00e9 \u00e0 l'\u00e9tat final (les transforms de base cachent tout sinon) *\/\n  .btn-maturity .podium i { transform: scaleY(1); }\n  .btn-maturity .podium::before { transform: none; }\n}\n\n.link-arrow {\n  display: inline-flex; align-items: center; gap: 8px;\n  font-weight: 700; font-size: 15.5px; color: var(--p); text-decoration: none;\n}\n.link-arrow svg { transition: transform .2s ease; }\n.link-arrow:hover svg { transform: translateX(4px); }\n.link-arrow:hover { color: var(--a); }\n\n\/* ============================================================\n   NAV\n============================================================ *\/\n.nav {\n  position: fixed; inset: 0 0 auto 0; z-index: 100;\n  transition: background .3s ease, box-shadow .3s ease;\n}\n.nav-inner {\n  max-width: 1320px; margin: 0 auto; padding: 14px 28px;\n  display: flex; align-items: center; gap: 34px;\n}\n.nav-logo img { height: 34px; width: auto; filter: brightness(0) invert(1); transition: filter .3s ease; }\n.nav-links { display: flex; align-items: center; gap: 6px; margin-left: auto; }\n.nav-link {\n  display: flex; align-items: center; gap: 7px;\n  color: rgba(255,255,255,.88); text-decoration: none;\n  font-weight: 600; font-size: 15px; padding: 10px 14px; border-radius: 10px;\n  transition: color .2s ease, background .2s ease;\n  background: none; border: 0; cursor: pointer; font-family: var(--sans);\n}\n.nav-link:hover { color: #fff; background: rgba(255,255,255,.08); }\n.nav-toggle-symbol {\n  font-weight: 500; font-size: 16px; line-height: 1;\n  transition: transform .25s ease; display: inline-block;\n}\n.nav-item.open .nav-toggle-symbol { transform: rotate(45deg); }\n.nav-lang {\n  font-family: var(--mono); font-size: 11.5px; letter-spacing: .06em;\n  color: rgba(255,255,255,.65); padding: 7px 12px;\n  border: 1px solid rgba(255,255,255,.22); border-radius: 999px;\n  margin: 0 6px; white-space: nowrap; transition: color .3s ease, border-color .3s ease;\n}\n.nav-lang b { color: #fff; font-weight: 600; }\n.nav-cta { margin-left: 4px; padding: 12px 22px; font-size: 14.5px; }\n\n\/* \u00e9tat scroll\u00e9 : fond blanc *\/\n.nav.is-scrolled { background: rgba(255,255,255,.92); backdrop-filter: blur(14px); box-shadow: 0 1px 0 var(--border), var(--sh-sm); }\n.nav.is-scrolled .nav-logo img { filter: none; }\n.nav.is-scrolled .nav-link { color: var(--ink); }\n.nav.is-scrolled .nav-link:hover { color: var(--p); background: var(--pale2); }\n.nav.is-scrolled .nav-lang { color: var(--muted); border-color: var(--border); }\n.nav.is-scrolled .nav-lang b { color: var(--ink); }\n\n\/* dropdowns *\/\n.nav-item { position: relative; }\n.dropdown {\n  position: absolute; top: calc(100% + 12px); left: 50%; transform: translateX(-50%) translateY(8px);\n  background: #fff; border: 1px solid var(--border); border-radius: 18px;\n  box-shadow: 0 24px 60px rgba(10, 18, 64, .18);\n  padding: 28px; display: flex; gap: 36px;\n  opacity: 0; visibility: hidden; pointer-events: none;\n  transition: opacity .22s ease, transform .22s ease, visibility .22s;\n}\n.nav-item.open .dropdown { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0); }\n.dd-group { min-width: 185px; }\n.dd-tag {\n  font-family: var(--mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase;\n  color: var(--faint); margin-bottom: 14px;\n}\n.dd-links { display: flex; flex-direction: column; gap: 3px; }\n.dd-links a {\n  color: var(--ink); text-decoration: none; font-size: 14.5px; font-weight: 600;\n  padding: 7px 10px; margin: 0 -10px; border-radius: 8px;\n  transition: background .15s ease, color .15s ease;\n}\n.dd-links a:hover { background: var(--pale2); color: var(--p); }\n.dd-links .dd-more { color: var(--a); margin-top: 6px; }\n.dd-desc {\n  width: 250px; background: var(--pale); border-radius: 14px; padding: 20px;\n  font-size: 13.5px; color: var(--muted); display: flex; flex-direction: column; gap: 14px;\n}\n.dd-desc .link-arrow { font-size: 14px; }\n\n\/* burger mobile *\/\n.nav-burger {\n  display: none; margin-left: auto; background: none; border: 0; cursor: pointer;\n  width: 44px; height: 44px; border-radius: 10px; position: relative;\n}\n.nav-burger span {\n  position: absolute; left: 11px; right: 11px; height: 2px; border-radius: 2px;\n  background: #fff; transition: transform .25s ease, opacity .2s ease, background .3s ease;\n}\n.nav.is-scrolled .nav-burger span, .nav.menu-open .nav-burger span { background: var(--ink); }\n.nav-burger span:nth-child(1) { top: 16px; }\n.nav-burger span:nth-child(2) { top: 22px; }\n.nav-burger span:nth-child(3) { top: 28px; }\n.nav.menu-open .nav-burger span:nth-child(1) { transform: translateY(6px) rotate(45deg); }\n.nav.menu-open .nav-burger span:nth-child(2) { opacity: 0; }\n.nav.menu-open .nav-burger span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }\n\n.mobile-menu {\n  display: none; position: fixed; inset: 62px 0 0 0; z-index: 99;\n  background: #fff; overflow-y: auto; padding: 24px 28px 48px;\n}\n.nav.menu-open ~ .mobile-menu { display: block; }\n.mm-group { border-bottom: 1px solid var(--border); padding: 14px 0; }\n.mm-group > .mm-title { font-weight: 700; font-size: 17px; padding: 8px 0; }\n.mm-links { display: flex; flex-direction: column; }\n.mm-links a { text-decoration: none; color: var(--muted); font-size: 15.5px; padding: 9px 0 9px 14px; }\n.mm-links a:active { color: var(--p); }\n.mobile-menu .btn { margin-top: 22px; width: 100%; justify-content: center; }\n\n\/* ============================================================\n   HERO\n============================================================ *\/\n.hero {\n  position: relative; min-height: 100svh; background: var(--dark);\n  display: flex; align-items: center; justify-content: center; overflow: hidden;\n}\n.hero canvas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 1.2s ease; }\n.hero canvas.on { opacity: 1; }\n.hero::after {\n  content: \"\"; position: absolute; left: -5%; right: -5%; bottom: -40px; height: 130px;\n  background: linear-gradient(180deg, rgba(255,255,255,0), #fafeff 55%, #fff);\n  filter: blur(15px); pointer-events: none; z-index: 2;\n}\n.hero-inner { position: relative; z-index: 3; text-align: center; padding: 140px 28px 170px; max-width: 1260px; }\n.hero h1 {\n  color: #fff; font-weight: 800; line-height: 1.12; letter-spacing: -0.02em;\n  font-size: clamp(36px, 4.7vw, 66px); text-wrap: balance;\n  \/* lisibilit\u00e9 sur le c\u0153ur clair du halo *\/\n  text-shadow: 0 2px 30px rgba(4, 7, 27, .60), 0 1px 4px rgba(4, 7, 27, .45);\n}\n\/* em du hero : blanc (lisible quel que soit l'\u00e9tat du halo\/souris),\n   l'accent lavande passe dans un glow autour des lettres *\/\n.hero h1 em {\n  color: #fff;\n  text-shadow:\n    0 0 22px rgba(145, 177, 255, .55),\n    0 0 44px rgba(145, 177, 255, .30),\n    0 2px 30px rgba(4, 7, 27, .60),\n    0 1px 4px rgba(4, 7, 27, .45);\n}\n.hero .lead {\n  color: rgba(255,255,255,.87); margin: 26px auto 0; max-width: 640px; font-size: 18px;\n  text-shadow: 0 1px 18px rgba(4, 7, 27, .55), 0 1px 3px rgba(4, 7, 27, .4);\n}\n.hero .btn { margin-top: 38px; }\n\n\/* ============================================================\n   PAGES INT\u00c9RIEURES\n============================================================ *\/\n.page-hero {\n  background:\n    radial-gradient(55% 75% at 88% -25%, rgba(145,177,255,.28), transparent 70%),\n    radial-gradient(45% 60% at 8% -15%, rgba(44,85,251,.12), transparent 70%),\n    var(--pale);\n  padding: 168px 0 72px;\n}\n.page-hero .crumb { font-family: var(--mono); font-size: 12px; color: var(--faint); margin-bottom: 20px; display: block; letter-spacing: .04em; }\n.page-hero .crumb a { color: var(--muted); text-decoration: none; }\n.page-hero .crumb a:hover { color: var(--p); }\n.page-hero h1 { font-size: clamp(34px, 4.2vw, 54px); font-weight: 800; letter-spacing: -0.02em; line-height: 1.08; text-wrap: balance; color: var(--ink); }\n.page-hero .lead { margin-top: 20px; }\n.page-hero .btn { margin-top: 30px; }\n.badges { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }\n.badge {\n  font-family: var(--mono); font-size: 12.5px; color: var(--p);\n  background: #fff; border: 1px solid var(--border); border-radius: 999px; padding: 8px 16px;\n}\n.check-list { display: grid; gap: 13px; padding: 0; list-style: none; }\n.check-list li { display: flex; gap: 12px; color: var(--muted); font-size: 15.5px; line-height: 1.55; }\n.check-list li::before {\n  content: \"\u2713\"; flex: 0 0 22px; height: 22px; border-radius: 7px;\n  display: grid; place-items: center; font-size: 12px; font-weight: 700;\n  background: var(--pale2); color: var(--p); margin-top: 2px;\n}\n.prose { max-width: 72ch; }\n.prose p + p { margin-top: 16px; }\n.prose h3 { margin: 32px 0 12px; }\n.prose { color: var(--muted); font-size: 16.5px; }\n.prose strong { color: var(--ink); }\n\n\/* ============================================================\n   SECTIONS\n============================================================ *\/\n\n\/* --- Services : 3 cards --- *\/\n.services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\n.card {\n  background: #fff; border: 1px solid var(--border); border-radius: var(--radius-card);\n  padding: 32px 30px; display: flex; flex-direction: column; gap: 14px;\n  text-decoration: none;\n  transition: transform .25s cubic-bezier(.2,.7,.3,1), box-shadow .25s ease, border-color .25s ease;\n}\n.card:hover { transform: translateY(-4px); box-shadow: var(--sh-hover); border-color: rgba(44,85,251,.35); }\n.card p { color: var(--muted); font-size: 15.5px; flex: 1; }\n.card .link-arrow { margin-top: 4px; }\n\n\/* --- Cards \u00ab facettes \u00bb du trio services (home + services, 2026-07-13) ---\n   Remplace les blocs froids : ar\u00eate spectrale au sommet (signature prisme),\n   picto par service dans une tuile d\u00e9grad\u00e9e, lueur d'angle ; au hover la\n   tuile s'embrase (d\u00e9grad\u00e9 + picto blanc) et l'ar\u00eate s'allume. *\/\n.card-svc { padding: 36px 32px 30px; gap: 16px; overflow: hidden; }\n.card-svc::before, .skill-card::before { \/* ar\u00eate de lumi\u00e8re spectrale *\/\n  content: \"\"; position: absolute; top: 0; left: 0; right: 0; height: 2.5px;\n  background: linear-gradient(90deg, var(--p), var(--a) 42%, var(--lav) 74%, #E14FF6);\n  opacity: .5; transition: opacity .3s ease;\n}\n.card-svc::after, .skill-card::after { \/* lueur d'angle haut-droite, PROPORTIONNELLE \u00e0 la carte\n  (une taille fixe lavait enti\u00e8rement les petites cartes, ex. \u00e9quipe d'\u00e0-propos) *\/\n  content: \"\"; position: absolute; inset: 0;\n  background: radial-gradient(circle at 100% 0, rgba(145,177,255,.20), transparent 46%);\n  pointer-events: none;\n}\n.card-svc h3 { font-size: 22px; }\n.card-svc:hover::before, .skill-card:hover::before { opacity: 1; }\n.svc-icon, .skill-icon {\n  width: 54px; height: 54px; border-radius: 14px; flex: 0 0 auto;\n  display: grid; place-items: center; margin-bottom: 4px;\n  background: linear-gradient(135deg, var(--pale2), #fff);\n  border: 1px solid var(--border); color: var(--p);\n  transition: background .3s ease, color .3s ease, transform .3s ease,\n              border-color .3s ease, box-shadow .3s ease;\n}\n.svc-icon svg, .skill-icon svg { width: 25px; height: 25px; display: block; }\n.card-svc:hover .svc-icon, .skill-card:hover .skill-icon {\n  background: linear-gradient(135deg, var(--p), var(--a));\n  color: #fff; border-color: transparent;\n  transform: scale(1.07) rotate(-4deg);\n  box-shadow: 0 10px 24px rgba(25, 41, 221, .30);\n}\n\/* m\u00e9ta formation : dur\u00e9e + niveau (+ tag populaire) *\/\n.fmeta { display: flex; flex-wrap: wrap; gap: 7px; margin: -2px 0 2px; }\n.fmeta span {\n  font-family: var(--mono); font-size: 11.5px; letter-spacing: .02em;\n  color: var(--p); background: var(--pale); border: 1px solid var(--border);\n  border-radius: 999px; padding: 4px 11px;\n}\n.fmeta .hot { color: #fff; background: var(--p); border-color: var(--p); }\n\/* bulle de d\u00e9tail formation (hover) *\/\n.fpop {\n  position: absolute; left: -1px; right: -1px; top: -1px; z-index: 6;\n  min-height: calc(100% + 2px); \/* couvre toute la card (les cards ont grandi avec les ic\u00f4nes) *\/\n  background: #fff; border: 1.5px solid rgba(44,85,251,.35); border-radius: var(--radius-card);\n  box-shadow: 0 26px 60px rgba(10,18,64,.22);\n  padding: 24px; display: flex; flex-direction: column; gap: 12px;\n  opacity: 0; visibility: hidden; transform: translateY(6px);\n  transition: opacity .2s ease, transform .2s ease, visibility .2s;\n  pointer-events: none;\n}\n.card:hover .fpop, .card:focus-within .fpop {\n  opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto;\n}\n.fpop strong { font-size: 17px; letter-spacing: -0.01em; }\n.fpop .fformat { font-size: 12.5px; color: var(--faint); font-family: var(--mono); line-height: 1.5; }\n.fpop .check-list { gap: 9px; }\n.fpop .check-list li { font-size: 13.5px; }\n.fpop .btn { padding: 11px 18px; font-size: 14px; margin-top: auto; align-self: flex-start; } \/* bouton ancr\u00e9 en bas de la bulle *\/\n@media (hover: none) { .fpop { display: none; } }\n\n\/* --- Ic\u00f4nes des cards formations (logo outil ou pictogramme th\u00e8me) --- *\/\n.ficon {\n  width: 48px; height: 48px; border-radius: 12px; flex: 0 0 auto;\n  display: grid; place-items: center; margin-bottom: 2px;\n  background: var(--pale); border: 1px solid var(--border);\n}\n.ficon svg { width: 26px; height: 26px; display: block; }\n.ficon-pia { color: var(--p); }        \/* pictos maison : bleu charte *\/\n.ficon-openai { color: #0A0F2E; }      \/* knot OpenAI : encre *\/\n.ficon-hero { width: 56px; height: 56px; background: #fff; margin-bottom: 20px; }\n.ficon-hero svg { width: 30px; height: 30px; }\n\n\/* --- Chips dur\u00e9e \/ niveau : ic\u00f4nes int\u00e9gr\u00e9es, scan visuel --- *\/\n.fmeta span { display: inline-flex; align-items: center; gap: 6px; }\n.fmeta span::before {\n  content: \"\"; width: 11px; height: 11px; flex: 0 0 auto; background: currentColor;\n  -webkit-mask: var(--chipicon) center \/ contain no-repeat;\n  mask: var(--chipicon) center \/ contain no-repeat;\n}\n\/* chip 1 = dur\u00e9e (horloge) *\/\n.fmeta span:nth-child(1) { --chipicon: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='8.6'\/%3E%3Cpath d='M12 7.4v4.6l3 1.9'\/%3E%3C\/svg%3E\"); }\n\/* chip 2 = niveau (jauge) : fond soutenu pour se distinguer d'un \u0153il *\/\n.fmeta span:nth-child(2) {\n  --chipicon: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='black'%3E%3Crect x='3' y='14' width='4.6' height='7' rx='1'\/%3E%3Crect x='9.7' y='9' width='4.6' height='12' rx='1'\/%3E%3Crect x='16.4' y='4' width='4.6' height='17' rx='1'\/%3E%3C\/svg%3E\");\n  background: var(--pale2); border-color: rgba(44,85,251,.18);\n}\n\n\/* --- \u00ab La plus demand\u00e9e \u00bb : \u00e9toile discr\u00e8te en coin de card --- *\/\n.card { position: relative; }\n.fstar {\n  position: absolute; top: 16px; right: 16px; z-index: 2;\n  width: 30px; height: 30px; border-radius: 999px;\n  display: grid; place-items: center; cursor: help;\n  background: #fff; border: 1px solid var(--border); box-shadow: var(--sh-sm);\n  color: #F5A524;\n}\n.fstar svg { width: 15px; height: 15px; display: block; }\n.fpop .fstar { box-shadow: none; }\n\n\/* --- Valeur ajout\u00e9e : 4 cards num\u00e9rot\u00e9es --- *\/\n.bg-pale { background: var(--pale); }\n.bg-pale2 { background: var(--pale2); }\n.valeur-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }\n.valeur-card {\n  background: #fff; border: 1px solid var(--border); border-radius: var(--radius-card);\n  padding: 30px 26px;\n  transition: transform .25s cubic-bezier(.2,.7,.3,1), box-shadow .25s ease;\n}\n.valeur-card:hover { transform: translateY(-4px); box-shadow: var(--sh-hover); }\n.valeur-num {\n  font-family: var(--mono); font-weight: 500; font-size: 15px;\n  background: linear-gradient(120deg, var(--p), var(--a) 55%, var(--lav));\n  -webkit-background-clip: text; background-clip: text; color: transparent;\n  margin-bottom: 18px; display: block;\n}\n.valeur-card h3 { font-size: 19px; margin-bottom: 10px; }\n.valeur-card p { color: var(--muted); font-size: 14.5px; }\n\n\/* --- Split (formation \/ audit \/ int\u00e9gration \/ cabinet) --- *\/\n.split { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }\n.split.rev .split-media { order: -1; }\n.split-media img { border-radius: 20px; box-shadow: var(--sh-md); width: 100%; object-fit: cover; }\n.split .btn { margin-top: 30px; }\n.split p + p { margin-top: 14px; }\n.split .lead { font-size: 16.5px; }\n\n\/* --- \u00c9quipes apprennent : 3 cards ic\u00f4nes \u2014 align\u00e9es sur les \u00ab facettes \u00bb\n   du trio services (ar\u00eate spectrale, tuile p\u00e2le -> embras\u00e9e au hover, lueur\n   d'angle : r\u00e8gles partag\u00e9es avec .card-svc\/.svc-icon plus haut) --- *\/\n.skills-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\n.skill-card {\n  position: relative; overflow: hidden;\n  background: #fff; border: 1px solid var(--border); border-radius: var(--radius-card);\n  padding: 36px 32px 30px;\n  transition: transform .25s cubic-bezier(.2,.7,.3,1), box-shadow .25s ease, border-color .25s ease;\n}\n.skill-card:hover { transform: translateY(-4px); box-shadow: var(--sh-hover); border-color: rgba(44,85,251,.35); }\n.skill-icon { margin-bottom: 20px; }\n.skill-card h3 { font-size: 19px; margin-bottom: 10px; }\n.skill-card p { color: var(--muted); font-size: 14.5px; }\n\n\/* --- Outils : bandeau de chips (centr\u00e9, logos officiels 2026-07-13) --- *\/\n.tools-band { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }\n.tool-chip {\n  display: inline-flex; align-items: center; gap: 9px;\n  font-family: var(--mono); font-size: 14px; font-weight: 500; color: var(--p);\n  background: #fff; border: 1px solid var(--border); border-radius: 999px;\n  padding: 11px 20px; transition: border-color .2s ease, background .2s ease, transform .2s ease, box-shadow .2s ease;\n}\n.tool-chip img { width: 17px; height: 17px; display: block; flex: 0 0 auto; }\n.band-break { flex-basis: 100%; height: 0; } \/* rupture de ligne : \u00e9quilibre 5 + 4 *\/\n.tool-chip:hover { border-color: rgba(44,85,251,.4); background: var(--pale2); transform: translateY(-2px); box-shadow: var(--sh-sm); }\n\n\/* --- Outils : grille 3\u00d73 (h\u00e9rit\u00e9e, plus utilis\u00e9e sur la home) --- *\/\n.tools-grid {\n  display: grid; grid-template-columns: repeat(3, 1fr);\n  border: 1px solid var(--border); border-radius: var(--radius-card); overflow: hidden;\n}\n.tool-cell {\n  padding: 26px 26px 28px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border);\n  transition: background .2s ease;\n}\n.tool-cell:nth-child(3n) { border-right: 0; }\n.tool-cell:nth-child(n+7) { border-bottom: 0; }\n.tool-cell:hover { background: var(--pale2); }\n.tool-name { font-family: var(--mono); font-size: 14px; font-weight: 500; color: var(--p); margin-bottom: 10px; }\n.tool-desc { font-size: 13.5px; color: var(--muted); line-height: 1.55; }\n.tools-footer { margin-top: 32px; }\n\n\/* --- CTA interm\u00e9diaire (panneau dark) --- *\/\n.cta-panel {\n  position: relative; overflow: hidden;\n  background: var(--dark); border-radius: 28px;\n  padding: 84px 40px; text-align: center; color: #fff;\n}\n.cta-panel canvas {\n  position: absolute; inset: 0; width: 100%; height: 100%;\n  opacity: 0; transition: opacity 1.2s ease;\n}\n.cta-panel canvas.on { opacity: 1; }\n.cta-panel > *:not(canvas) { position: relative; z-index: 2; }\n.cta-panel h2 { color: #fff; }\n\/* m\u00eame recette que le hero : l'em accent se noyait dans le halo -> blanc + lueur lavande *\/\n.cta-panel h2 em {\n  color: #fff;\n  text-shadow: 0 0 22px rgba(145,177,255,.55), 0 0 44px rgba(145,177,255,.30),\n               0 2px 30px rgba(4,7,27,.60), 0 1px 4px rgba(4,7,27,.45);\n}\n.cta-panel p { color: rgba(255,255,255,.82); margin: 16px auto 0; max-width: 56ch; }\n.cta-panel .btn { margin-top: 34px; }\n\n\/* --- M\u00e9thodologie : timeline 4 \u00e9tapes --- *\/\n.method-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; position: relative; }\n.method-step { position: relative; padding-top: 26px; }\n.method-step::before {\n  content: \"\"; position: absolute; top: 0; left: 0; right: -32px; height: 2px;\n  background: linear-gradient(90deg, var(--a), var(--lav));\n  opacity: .35;\n}\n.method-step:last-child::before { right: 0; }\n.method-step::after {\n  content: \"\"; position: absolute; top: -4px; left: 0; width: 10px; height: 10px;\n  border-radius: 50%; background: var(--a);\n  box-shadow: 0 0 0 5px rgba(44,85,251,.15);\n}\n.method-num { font-family: var(--mono); font-size: 13px; color: var(--a); display: block; margin-bottom: 12px; }\n.method-step h3 { font-size: 20px; margin-bottom: 10px; }\n.method-step p { color: var(--muted); font-size: 14.5px; }\n\n\/* --- FAQ --- *\/\n.faq-wrap { max-width: 820px; margin: 0 auto; }\n.faq-item { border-bottom: 1px solid var(--border); }\n.faq-item summary {\n  list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 20px;\n  padding: 22px 4px; font-weight: 700; font-size: 17px;\n  transition: color .2s ease;\n}\n.faq-item summary::-webkit-details-marker { display: none; }\n.faq-item summary:hover { color: var(--p); }\n.faq-plus {\n  flex: 0 0 auto; width: 26px; height: 26px; border-radius: 8px;\n  position: relative; border: 1.5px solid var(--border);\n  transition: transform .25s ease, background .2s ease, border-color .2s ease;\n}\n.faq-plus::before, .faq-plus::after {\n  content: \"\"; position: absolute; top: 50%; left: 50%;\n  background: var(--a); border-radius: 1px;\n  transition: background .2s ease;\n}\n.faq-plus::before { width: 11px; height: 2px; transform: translate(-50%, -50%); }\n.faq-plus::after { width: 2px; height: 11px; transform: translate(-50%, -50%); }\n.faq-item[open] .faq-plus { transform: rotate(45deg); background: var(--p); border-color: var(--p); }\n.faq-item[open] .faq-plus::before, .faq-item[open] .faq-plus::after { background: #fff; }\n.faq-item .faq-a { padding: 0 44px 24px 4px; color: var(--muted); font-size: 15.5px; }\n\n\/* --- Newsletters --- *\/\n.news-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 48px; }\n.news-count {\n  font-family: var(--mono); font-size: 12.5px; color: var(--p);\n  background: #fff; border: 1px solid var(--border); border-radius: 999px; padding: 9px 16px;\n  white-space: nowrap;\n}\n.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }\n.news-card {\n  background: #fff; border: 1px solid var(--border); border-radius: var(--radius-card);\n  padding: 28px; text-decoration: none; display: flex; flex-direction: column; gap: 14px;\n  transition: transform .25s cubic-bezier(.2,.7,.3,1), box-shadow .25s ease, border-color .25s ease;\n}\n.news-card:hover { transform: translateY(-4px); box-shadow: var(--sh-hover); border-color: rgba(44,85,251,.35); }\n.news-badge {\n  font-family: var(--mono); font-size: 12px; color: var(--a);\n  background: var(--pale2); border-radius: 8px; padding: 6px 10px; align-self: flex-start;\n}\n.news-card h3 { font-size: 19px; }\n.news-card p { color: var(--muted); font-size: 14.5px; flex: 1; }\n\n\/* Cards avec vignette (visuels des \u00e9ditions, servis depuis prismia.ch) *\/\n.news-card.has-thumb { padding: 0; overflow: hidden; gap: 0; }\n.news-thumb { display: block; overflow: hidden; background: var(--pale2); aspect-ratio: 1 \/ 1; }\n.news-thumb img {\n  width: 100%; height: 100%; object-fit: cover; display: block;\n  transition: transform .45s cubic-bezier(.2,.7,.3,1);\n}\n.news-card:hover .news-thumb img { transform: scale(1.05); }\n.news-body { display: flex; flex-direction: column; gap: 14px; padding: 20px 22px 24px; flex: 1; }\n.news-meta-line { display: flex; align-items: center; justify-content: space-between; gap: 10px; }\n.news-date { font-family: var(--mono); font-size: 12px; color: var(--faint); white-space: nowrap; }\n\n\/* Grille archive : les 24 \u00e9ditions sur la page newsletters *\/\n.news-grid.news-archive { grid-template-columns: repeat(4, 1fr); gap: 20px; }\n.news-archive .news-body { padding: 15px 16px 17px; gap: 0; }\n@media (max-width: 1024px) { .news-grid.news-archive { grid-template-columns: repeat(3, 1fr); } }\n@media (max-width: 820px) { .news-grid.news-archive { grid-template-columns: repeat(2, 1fr); gap: 14px; } }\n\n\/* Popover sommaire au survol des cards newsletters (m\u00eame esprit que .fpop formations) *\/\n.news-card.has-thumb { position: relative; }\n.npop {\n  position: absolute; inset: -1px; z-index: 6; overflow: hidden;\n  display: flex; flex-direction: column; gap: 10px;\n  background: #fff; border: 1px solid rgba(44,85,251,.35); border-radius: var(--radius-card);\n  padding: 18px 18px 15px; box-shadow: var(--sh-hover);\n  opacity: 0; visibility: hidden; transform: translateY(4px);\n  transition: opacity .22s ease, transform .22s ease, visibility 0s linear .22s;\n}\n.news-card:hover .npop, .news-card:focus-visible .npop {\n  opacity: 1; visibility: visible; transform: translateY(0);\n  transition: opacity .22s ease, transform .22s ease;\n}\n.npop-t { font-family: var(--mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--a); }\n.npop-list { display: flex; flex-direction: column; gap: 5px; }\n.npop-list > span { display: block; font-size: 11px; line-height: 1.38; color: var(--muted); padding-left: 12px; position: relative; }\n.npop-list > span::before {\n  content: \"\"; position: absolute; left: 0; top: 5px; width: 5px; height: 5px;\n  border-radius: 2px; background: var(--lav);\n}\n.npop-list > .npop-more { color: var(--faint); font-style: italic; }\n.npop-list > .npop-more::before { background: transparent; }\n@media (hover: none) { .npop { display: none; } }\n\n\/* ============================================================\n   FOOTER (\u00e9quivalent hero : dark + canvas)\n============================================================ *\/\n.footer {\n  position: relative; background: var(--dark); color: #fff; overflow: hidden;\n  margin-top: 120px;\n}\n.footer::before {\n  content: \"\"; position: absolute; left: -5%; right: -5%; top: -40px; height: 130px; z-index: 2;\n  background: linear-gradient(0deg, rgba(255,255,255,0), #fafeff 55%, #fff);\n  filter: blur(15px); pointer-events: none;\n}\n\/* voile sombre : assombrit l\u00e9g\u00e8rement tout le footer (lisibilit\u00e9 sur le halo) *\/\n.footer::after {\n  content: \"\"; position: absolute; inset: 0; z-index: 1; pointer-events: none;\n  background: linear-gradient(180deg, rgba(4,7,27,.42) 0%, rgba(4,7,27,.18) 45%, rgba(4,7,27,.55) 100%);\n}\n.footer canvas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 1.2s ease; }\n.footer canvas.on { opacity: 1; }\n.footer-inner { position: relative; z-index: 3; padding: 150px 0 0; }\n\n.footer-nl { max-width: 640px; }\n.footer-nl h2 { color: #fff; font-size: clamp(26px, 3vw, 36px); }\n.footer-nl h2 em { color: var(--lav); }\n.nl-form { display: flex; gap: 12px; margin-top: 28px; flex-wrap: wrap; }\n.nl-form input[type=\"email\"] {\n  flex: 1 1 280px; font-family: var(--sans); font-size: 15px; color: #fff;\n  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.22);\n  border-radius: var(--radius-btn); padding: 14px 18px; outline: none;\n  transition: border-color .2s ease, background .2s ease;\n}\n.nl-form input[type=\"email\"]::placeholder { color: rgba(255,255,255,.5); }\n.nl-form input[type=\"email\"]:focus { border-color: var(--lav); background: rgba(255,255,255,.12); }\n.nl-consent {\n  display: flex; gap: 10px; align-items: flex-start; margin-top: 16px;\n  font-size: 13px; color: rgba(255,255,255,.65); max-width: 560px;\n}\n.nl-consent a { color: #fff; }\n.nl-consent input { margin-top: 3px; accent-color: var(--a); width: 18px; height: 18px; flex: 0 0 auto; } \/* cible tactile confortable *\/\n\n.footer-cols {\n  display: grid; grid-template-columns: repeat(5, 1fr) 1.3fr; gap: 32px;\n  margin-top: 72px; padding-top: 48px; border-top: 1px solid rgba(255,255,255,.12);\n}\n.fcol .dd-tag { color: var(--lav); opacity: .85; }\n.fcol a {\n  display: block; color: rgba(255,255,255,.82); text-decoration: none;\n  font-size: 14.5px; padding: 5px 0; transition: color .2s ease;\n}\n.fcol a:hover { color: var(--lav); }\n.fcontact { display: flex; flex-direction: column; gap: 10px; font-size: 14.5px; color: rgba(255,255,255,.85); }\n.fcontact a { color: rgba(255,255,255,.85); text-decoration: none; }\n.fcontact a:hover { color: var(--lav); }\n.fcontact .btn { margin-top: 14px; align-self: flex-start; }\n.footer .btn-light, .fcontact a.btn-light { color: var(--p); }\n\n.footer-bottom {\n  display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap;\n  margin-top: 56px; padding: 26px 0 34px; border-top: 1px solid rgba(255,255,255,.12);\n}\n.footer-bottom img { height: 30px; width: auto; filter: brightness(0) invert(1); opacity: .92; }\n.footer-bottom .copy { font-size: 12.5px; color: rgba(255,255,255,.55); }\n\n\/* --- Variantes de grilles par page (remplacent des styles inline NON responsives) --- *\/\n.services-grid.grid-2cols { grid-template-columns: 1fr 1fr; }\n.valeur-grid.valeur-3 { grid-template-columns: repeat(3, 1fr); }\n.check-list.check-2col { display: grid; grid-template-columns: 1fr 1fr; column-gap: 32px; }\n.form-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }\n@media (max-width: 1080px) {\n  .services-grid.grid-2cols, .valeur-grid.valeur-3 { grid-template-columns: 1fr 1fr; }\n}\n@media (max-width: 640px) {\n  .services-grid.grid-2cols, .valeur-grid.valeur-3, .check-list.check-2col, .form-grid-2 { grid-template-columns: 1fr; }\n}\n\n\/* ============================================================\n   RESPONSIVE\n============================================================ *\/\n@media (max-width: 1080px) {\n  .section { padding: 88px 0; }\n  .services-grid, .skills-grid { grid-template-columns: 1fr 1fr; }\n  .valeur-grid { grid-template-columns: 1fr 1fr; row-gap: 24px; }\n  .method-grid { grid-template-columns: 1fr 1fr; row-gap: 44px; }\n  .method-step::before { right: 0; }\n  .footer-cols { grid-template-columns: repeat(3, 1fr); }\n  .fcontact { grid-column: span 3; }\n}\n\n@media (max-width: 900px) {\n  .nav-links { display: none; }\n  .nav-burger { display: block; }\n  .split { grid-template-columns: 1fr; gap: 36px; }\n  .split-media { order: -1; }\n  .tools-grid { grid-template-columns: 1fr 1fr; }\n  .tool-cell:nth-child(3n) { border-right: 1px solid var(--border); }\n  .tool-cell:nth-child(2n) { border-right: 0; }\n  .tool-cell:nth-child(n+7) { border-bottom: 1px solid var(--border); }\n  .tool-cell:nth-child(n+8) { border-bottom: 0; }\n}\n\n@media (max-width: 640px) {\n  body { font-size: 16px; }\n  .section { padding: 64px 0; }\n  .container { padding: 0 20px; }\n  .section-head { margin-bottom: 36px; }\n  .services-grid, .skills-grid, .valeur-grid, .news-grid, .method-grid { grid-template-columns: 1fr; }\n  .tools-grid { grid-template-columns: 1fr; }\n  .tool-cell { border-right: 0 !important; border-bottom: 1px solid var(--border) !important; }\n  .tool-cell:last-child { border-bottom: 0 !important; }\n  .cta-panel { padding: 60px 24px; border-radius: 20px; }\n  .hero-inner { padding: 120px 20px 150px; }\n  .footer-cols { grid-template-columns: 1fr 1fr; }\n  .fcontact { grid-column: span 2; }\n  .footer-inner { padding-top: 120px; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  * { transition: none !important; scroll-behavior: auto !important; }\n}\n\n\/* ---------- Reveals au scroll + entr\u00e9e hero (2026-07-13) ----------\n   Classes pos\u00e9es par app.js (z\u00e9ro HTML modifi\u00e9 ; sans JS rien n'est masqu\u00e9).\n   .rv est retir\u00e9e par app.js en fin de transition : les hovers des cards\n   (transform) reprennent leurs droits, aucune collision de cascade. *\/\n.rv { opacity: 0; transform: translateY(22px); }\n.rv.in {\n  opacity: 1; transform: translateY(0);\n  transition: opacity .65s ease, transform .75s cubic-bezier(.16, 1, .3, 1);\n  transition-delay: var(--rvd, 0s);\n}\n@media (prefers-reduced-motion: reduce) { .rv { opacity: 1; transform: none; } }\n\/* ============================================================\n   ADAPTATIONS ELEMENTOR (pages de test r\u00e9plication maquette v2)\n   Elementor 4.x pilote les containers via des variables PHYSIQUES\n   (--display, --padding-top\u2026) pos\u00e9es par un CSS g\u00e9n\u00e9r\u00e9 par \u00e9l\u00e9ment\n   (sp\u00e9cificit\u00e9 0,3,0). On gagne avec des propri\u00e9t\u00e9s simples plac\u00e9es\n   apr\u00e8s dans l'ordre, + !important sur le display des grilles.\n============================================================ *\/\n.e-con.pia-wrap { padding: 0; gap: 0; max-width: 100%; --width: 100%; --content-width: 100%; }\n.pia-wrap .elementor-widget { margin-block-end: 0; width: 100%; }\n.elementor-widget-html .elementor-widget-container { width: 100%; }\n.e-con.section { max-width: 100%; --width: 100%; --content-width: 100%; gap: 0; }\n.e-con.container { width: 100%; max-width: 1200px; margin-inline: auto; gap: 0; }\n.e-con.services-grid, .e-con.method-grid, .e-con.valeur-grid { display: grid !important; padding: 0; width: 100%; max-width: 100%; }\na.e-con.card { display: flex !important; }\n.e-con.card, .e-con.valeur-card, .e-con.method-step { width: 100%; max-width: 100%; }\n.e-con.method-step { padding: 26px 0 0 0; }\n.e-con.valeur-card { padding: 30px 26px; }\n.card .e-con-inner { display: flex; flex-direction: column; flex: 1; width: 100%; max-width: 100%; }\n.valeur-card .e-con-inner, .method-step .e-con-inner { width: 100%; max-width: 100%; }\n.card .elementor-widget-text-editor { display: flex; flex: 1; }\n.card .elementor-widget-text-editor .elementor-widget-container { display: flex; flex-direction: column; gap: 14px; flex: 1; width: 100%; }\n.valeur-card .elementor-widget-container, .method-step .elementor-widget-container { width: 100%; }\n.elementor-widget-text-editor h2, .elementor-widget-text-editor h3, .elementor-widget-text-editor p { margin: 0; }\n.section.pt0 { padding-top: 0; }\n.e-con.section.pt0 { padding-top: 0 !important; }\nbody.admin-bar .nav { top: 32px; }\nbody.admin-bar .mobile-menu { inset: 94px 0 0 0; }\nh2,h3,.hero h1{margin:0}\n.hero-inner{margin:0 auto}\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-64b262e elementor-widget elementor-widget-html\" data-id=\"64b262e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;0,600;0,700;0,800;1,700&family=Geist+Mono:wght@500&display=swap\" rel=\"stylesheet\">\n\n<header class=\"nav\" id=\"nav\" data-solid>\n  <div class=\"nav-inner\">\n    <a href=\"https:\/\/www.prismia.ch\/en\/\" class=\"nav-logo\" aria-label=\"PrismIA, home\">\n      <img decoding=\"async\" src=\"https:\/\/www.prismia.ch\/wp-content\/uploads\/2024\/11\/PRISMIA_logo_couleur_20241105.svg\" alt=\"PrismIA\">\n    <\/a>\n\n    <nav class=\"nav-links\" aria-label=\"Main navigation\">\n      <div class=\"nav-item\" data-dd>\n        <button class=\"nav-link\" aria-expanded=\"false\">Services <span class=\"nav-toggle-symbol\">+<\/span><\/button>\n        <div class=\"dropdown\">\n          <div class=\"dd-group\">\n            <div class=\"dd-tag\">What we do<\/div>\n            <div class=\"dd-links\">\n              <a href=\"https:\/\/www.prismia.ch\/en\/ai-training\/\">AI training<\/a>\n              <a href=\"https:\/\/www.prismia.ch\/en\/audit-consulting\/\">Audit &amp; consulting<\/a><a href=\"https:\/\/www.prismia.ch\/en\/audit-consulting\/journey-to-ai\/\" class=\"dd-sub\">Journey to AI&nbsp;<span class=\"nav-star\" aria-hidden=\"true\">\u2605<\/span><\/a>\n              <a href=\"https:\/\/www.prismia.ch\/en\/integration\/\">Integration<\/a>\n              <a class=\"dd-more\" href=\"https:\/\/www.prismia.ch\/en\/services\/\">All our services \u2192<\/a>\n            <\/div>\n          <\/div>\n          <div class=\"dd-group\">\n            <div class=\"dd-tag\">AI training<\/div>\n            <div class=\"dd-links\">\n              <a href=\"https:\/\/www.prismia.ch\/en\/ai-training\/\">AI Initiate<\/a>\n              <a href=\"https:\/\/www.prismia.ch\/en\/ai-training\/\">C-Level Coaching<\/a>\n              <a href=\"https:\/\/www.prismia.ch\/en\/ai-training\/\">Microsoft Copilot Advanced&nbsp;<span class=\"nav-star\" aria-hidden=\"true\">\u2605<\/span><\/a>\n              <a href=\"https:\/\/www.prismia.ch\/en\/formation\/chatgpt-advanced\/\">ChatGPT Advanced<\/a>\n              <a href=\"https:\/\/www.prismia.ch\/en\/ai-training\/\">Claude Advanced<\/a>\n              <a class=\"dd-more\" href=\"https:\/\/www.prismia.ch\/en\/ai-training\/\">All our training courses \u2192<\/a>\n            <\/div>\n          <\/div>\n          <div class=\"dd-group\">\n            <div class=\"dd-tag\">Turnkey solutions<\/div>\n            <div class=\"dd-links\">\n              <a href=\"https:\/\/www.prismia.ch\/en\/solutions\/voice-ai-agent\/\">Voice AI<\/a>\n              <a href=\"https:\/\/www.prismia.ch\/en\/solutions\/advanced-local-transcription\/\">Local Transcription<\/a>\n              <a href=\"https:\/\/www.prismia.ch\/en\/solutions\/veille-ia-agentique\/\">AI-augmented sector watch<\/a>\n              <a href=\"https:\/\/www.prismia.ch\/en\/solutions\/newsletter-augmentee\/\">Augmented Newsletter<\/a>\n              <a href=\"https:\/\/www.prismia.ch\/en\/solutions\/anonymisation-donnees\/\">AI Anonymisation<\/a>\n              <a class=\"dd-more\" href=\"https:\/\/www.prismia.ch\/en\/solutions\/\">All our solutions \u2192<\/a>\n            <\/div>\n          <\/div>\n          <div class=\"dd-desc\">\n            <span>PrismIA is an AI consulting firm and training organisation based in Geneva. Strategic advice and hands-on training for Swiss companies.<\/span>\n            <a class=\"link-arrow\" href=\"https:\/\/www.prismia.ch\/en\/contact\/\">Book a free 30-minute consultation\n              <svg width=\"15\" height=\"15\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 8h10M9 4l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n            <\/a>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <a class=\"nav-link\" href=\"https:\/\/www.prismia.ch\/en\/newsletter\/\">Newsletter<\/a>\n\n      <div class=\"nav-item\" data-dd>\n        <button class=\"nav-link\" aria-expanded=\"false\">Our Lab <span class=\"nav-toggle-symbol\">+<\/span><\/button>\n        <div class=\"dropdown\">\n          <div class=\"dd-group\">\n            <div class=\"dd-tag\">Free tools<\/div>\n            <div class=\"dd-links\">\n              <a href=\"https:\/\/www.prismia.ch\/en\/bullshitometer\/\">Bullshitometer<\/a>\n              <a href=\"https:\/\/www.prismia.ch\/en\/local-pii-filter\/\">Local PII Filter<\/a>\n            <\/div>\n          <\/div>\n          <div class=\"dd-desc\">\n            <span>Our interactive tools are designed to help you explore AI safely. Try them for free, straight from your browser.<\/span>\n            <a class=\"link-arrow\" href=\"https:\/\/www.prismia.ch\/en\/contact\/\">Discuss a custom project\n              <svg width=\"15\" height=\"15\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 8h10M9 4l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n            <\/a>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <a class=\"nav-link\" href=\"https:\/\/www.prismia.ch\/en\/about-us\/\">About us<\/a>\n      <span class=\"nav-lang\"><b>EN<\/b> \/ FR<\/span>\n      <a class=\"btn btn-light nav-cta\" href=\"https:\/\/www.prismia.ch\/en\/contact\/\">Contact us<\/a>\n    <\/nav>\n\n    <button class=\"nav-burger\" id=\"burger\" aria-label=\"Menu\" aria-expanded=\"false\">\n      <span><\/span><span><\/span><span><\/span>\n    <\/button>\n  <\/div>\n<\/header>\n\n<div class=\"mobile-menu\" id=\"mobileMenu\">\n  <div class=\"mm-group\">\n    <div class=\"mm-title\">Services<\/div>\n    <div class=\"mm-links\">\n      <a href=\"https:\/\/www.prismia.ch\/en\/ai-training\/\">AI training<\/a>\n      <a href=\"https:\/\/www.prismia.ch\/en\/audit-consulting\/\">Audit &amp; consulting<\/a><a href=\"https:\/\/www.prismia.ch\/en\/audit-consulting\/journey-to-ai\/\" class=\"dd-sub\">Journey to AI&nbsp;<span class=\"nav-star\" aria-hidden=\"true\">\u2605<\/span><\/a>\n      <a href=\"https:\/\/www.prismia.ch\/en\/integration\/\">Integration<\/a>\n      <a href=\"https:\/\/www.prismia.ch\/en\/solutions\/\">Turnkey solutions<\/a>\n    <\/div>\n  <\/div>\n  <div class=\"mm-group\">\n    <div class=\"mm-title\">Our Lab<\/div>\n    <div class=\"mm-links\">\n      <a href=\"https:\/\/www.prismia.ch\/en\/bullshitometer\/\">Bullshitometer<\/a>\n      <a href=\"https:\/\/www.prismia.ch\/en\/local-pii-filter\/\">Local PII Filter<\/a>\n    <\/div>\n  <\/div>\n  <div class=\"mm-group\">\n    <div class=\"mm-links\">\n      <a href=\"https:\/\/www.prismia.ch\/en\/newsletter\/\">Newsletter<\/a>\n      <a href=\"https:\/\/www.prismia.ch\/en\/about-us\/\">About us<\/a>\n    <\/div>\n  <\/div>\n  <a class=\"btn btn-primary\" href=\"https:\/\/www.prismia.ch\/en\/contact\/\">Contact us<\/a>\n<\/div>\n<script>\n(function(){var L=document.querySelectorAll('.nav-lang');if(!L.length)return;var cur=(document.documentElement.lang||'fr').slice(0,2).toLowerCase();var o=cur==='en'?'fr':'en';var alt=document.querySelector('link[rel=\"alternate\"][hreflang^=\"'+o+'\"]');if(!alt)return;L.forEach(function(e){e.innerHTML='<b>'+cur.toUpperCase()+'<\/b> \/ <a href=\"'+alt.href+'\" hreflang=\"'+o+'\" style=\"color:inherit;text-decoration:none\">'+o.toUpperCase()+'<\/a>';});})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d8810a6 e-flex e-con-full pia-wrap pia-hero e-con e-parent\" data-id=\"d8810a6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3b4537c elementor-widget elementor-widget-html\" data-id=\"3b4537c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}.hero-actions .btn{margin-top:0}<\/style><section class='page-hero'><div class='container'><span class='crumb'><a href='https:\/\/www.prismia.ch\/en\/'>Home<\/a> \/ <a href='https:\/\/www.prismia.ch\/en\/solutions\/'>Solutions<\/a> \/ Data Anonymisation<\/span><h1>Use AI <em>without exposing your sensitive data<\/em><\/h1><p class='lead'>PrismIA deploys anonymisation that masks your sensitive data before it reaches an AI, processing everything locally: nothing leaves your environment. Adapted to your data types and integrated into your tools. Test the principle with our free tool, then let\u2019s move to a version tailored to your organisation.<\/p><div class='badges'><span class='badge'>100% local processing<\/span><span class='badge'>nLPD<\/span><span class='badge'>Tailored<\/span><\/div><div class='hero-actions'><a class='btn btn-primary' href='https:\/\/www.prismia.ch\/en\/contact\/'>Protect your data, let\u2019s talk <svg width='16' height='16' viewBox='0 0 16 16' fill='none' aria-hidden='true'><path d='M3 8h10M9 4l4 4-4 4' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/><\/svg><\/a><a class='btn btn-ghost' href='https:\/\/www.prismia.ch\/en\/local-pii-filter\/'>Try the free tool \u2197<\/a><\/div><\/div><\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a435b2d e-flex e-con-full pia-wrap pia-intro e-con e-parent\" data-id=\"a435b2d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-60dc1d6 elementor-widget elementor-widget-html\" data-id=\"60dc1d6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class='section' id='fonctionnement'><div class='container'><div class='split'><div><span class='overline'>The solution<\/span><h2>Nothing sensitive <em>leaves your environment<\/em><\/h2><p class='lead' style='margin-top:18px'>Your teams want to use AI, but your client and internal data must not end up on a third-party server. Our anonymisation masks sensitive information before it is sent to the AI, and does so where your data already sits: nothing raw travels.<\/p><ul class='check-list' style='margin-top:24px'><li>Detection and masking of sensitive data: names, addresses, identifiers, amounts and more<\/li><li>100% local processing: the text is not sent to any server<\/li><li>Only the anonymised version is passed to the AI<\/li><li>Adapted to your own data types and your rules<\/li><li>Integrable with your tools and workflows<\/li><\/ul><\/div><div class='split-media'><img src='https:\/\/www.prismia.ch\/wp-content\/uploads\/2026\/07\/solution-anonymisation-donnees.jpg' alt='Illustration: local anonymisation of sensitive data before it is sent to an AI, nothing leaves your environment' width='1376' height='768' loading='lazy'><\/div><\/div><\/div><\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c115361 e-flex e-con-full pia-wrap pia-prestations e-con e-parent\" data-id=\"c115361\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5822802 elementor-widget elementor-widget-html\" data-id=\"5822802\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class='section bg-pale'><div class='container'><div class='section-head'><span class='overline'>Use cases<\/span><h2>When sensitive data <em>meets AI<\/em><\/h2><\/div><div class='skills-grid'><div class='skill-card'><div class='skill-icon'><svg viewBox='0 0 24 24' fill='none' width='26' height='26'><circle cx='12' cy='12' r='9' stroke='currentColor' stroke-width='1.6'\/><\/svg><\/div><h3>Teams <em>using AI<\/em><\/h3><p>Let your teams use ChatGPT or Copilot on real documents, without exposing client data.<\/p><\/div><div class='skill-card'><div class='skill-icon'><svg viewBox='0 0 24 24' fill='none' width='26' height='26'><rect x='4' y='4' width='16' height='16' rx='3' stroke='currentColor' stroke-width='1.6'\/><\/svg><\/div><h3>Regulated <em>sectors<\/em><\/h3><p>Legal, healthcare, finance, HR: work on sensitive files with AI while keeping control of the data.<\/p><\/div><div class='skill-card'><div class='skill-icon'><svg viewBox='0 0 24 24' fill='none' width='26' height='26'><path d='M4 17l6-6 4 4 6-8' stroke='currentColor' stroke-width='1.6' stroke-linecap='round'\/><\/svg><\/div><h3>nLPD <em>compliance<\/em><\/h3><p>Any organisation that wants to move forward on AI without taking risks on data protection.<\/p><\/div><\/div><\/div><\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-50fbb1f e-flex e-con-full pia-wrap pia-opportunites e-con e-parent\" data-id=\"50fbb1f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d35dea9 elementor-widget elementor-widget-html\" data-id=\"d35dea9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class='section'><div class='container'><div class='section-head'><span class='overline'>Implementation<\/span><h2>From the free tool <em>to your tailored solution<\/em><\/h2><\/div><div class='method-grid'><div class='method-step'><div class='method-num'>01<\/div><h3>Scoping<\/h3><p>We identify your sensitive data, your internal rules and the tools where anonymisation must fit in.<\/p><\/div><div class='method-step'><div class='method-num'>02<\/div><h3>Adaptation and integration<\/h3><p>We adapt the anonymisation to your data types and connect it to your workflows.<\/p><\/div><div class='method-step'><div class='method-num'>03<\/div><h3>Training and autonomy<\/h3><p>Your teams use it day to day; your technical teams can internalise its management.<\/p><\/div><\/div><\/div><\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ed6e766 e-flex e-con-full pia-wrap pia-restitution e-con e-parent\" data-id=\"ed6e766\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-30e3d1a elementor-widget elementor-widget-html\" data-id=\"30e3d1a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class='section bg-pale2'><div class='container'><div class='section-head'><span class='overline'>Frequently asked questions<\/span><h2>Before you <em>get started<\/em><\/h2><\/div><div class='faq-wrap'><details class='faq-item'><summary>Where does our data go? <span class='faq-plus'><\/span><\/summary><div class='faq-a'>Nowhere: the anonymisation processing is local, the sensitive text is not sent to any server. Only the anonymised version is then passed to the AI of your choice.<\/div><\/details><details class='faq-item'><summary>Does this make us nLPD compliant? <span class='faq-plus'><\/span><\/summary><div class='faq-a'>It is a strong aid to compliance, by reducing data exposure, but not a legal guarantee on its own: it fits into your overall approach.<\/div><\/details><details class='faq-item'><summary>Which data types are covered? <span class='faq-plus'><\/span><\/summary><div class='faq-a'>Several standard families (names, addresses, identifiers, amounts\u2026) and custom rules for your specific data.<\/div><\/details><details class='faq-item'><summary>Can it be integrated into our tools? <span class='faq-plus'><\/span><\/summary><div class='faq-a'>Yes. Beyond the freely available tool, the tailored version integrates into your workflows.<\/div><\/details><\/div><\/div><\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-bacf3f5 e-flex e-con-full pia-wrap pia-cta e-con e-parent\" data-id=\"bacf3f5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ac44a2d elementor-widget elementor-widget-html\" data-id=\"ac44a2d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class='section' style='padding-top:64px'><div class='container'><div class='cta-panel'><canvas id='glCta' aria-hidden='true'><\/canvas><span class='overline' style='color:var(--lav)'>Let\u2019s talk<\/span><h2>Your data deserves <em>to stay with you<\/em><\/h2><p>Test the free tool, then let\u2019s talk about tailored anonymisation for your organisation. With no commitment.<\/p><a class='btn btn-light' href='https:\/\/www.prismia.ch\/en\/contact\/'>Protect your data, let\u2019s talk<\/a><\/div><\/div><\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9acabe3 e-flex e-con-full pia-wrap pia-footer e-con e-parent\" data-id=\"9acabe3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-72efef7 elementor-widget elementor-widget-html\" data-id=\"72efef7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<footer class=\"footer\">\n  <canvas id=\"glFooter\" aria-hidden=\"true\"><\/canvas>\n  <div class=\"footer-inner\">\n    <div class=\"container\">\n\n      <div class=\"footer-nl\">\n        <span class=\"overline\" style=\"color:var(--lav)\">Newsletter<\/span>\n        <h2>With <em>\u00ab\u00a0Plongez dans le grand bAIn\u00a0\u00bb<\/em>, stay on top of AI news every month.<\/h2>\n        <form class=\"nl-form\" action=\"https:\/\/www.prismia.ch\/#newsletter\" method=\"post\" novalidate>\n          <input type=\"email\" name=\"email\" placeholder=\"your@email.com\" aria-label=\"Email address for the newsletter\" required>\n          <button type=\"submit\" class=\"btn btn-light\">Subscribe<\/button>\n        <\/form>\n        <label class=\"nl-consent\">\n          <input type=\"checkbox\" name=\"consent\" required>\n          <span>I agree to the processing of this data in accordance with the <a href=\"https:\/\/www.prismia.ch\/en\/privacy-policy\/\" target=\"_blank\" rel=\"noopener\">Privacy Statement<\/a>.<\/span>\n        <\/label>\n      <\/div>\n\n      <div class=\"footer-cols\">\n        <div class=\"fcol\">\n          <div class=\"dd-tag\">Services<\/div>\n          <a href=\"https:\/\/www.prismia.ch\/en\/ai-training\/\">AI training<\/a>\n          <a href=\"https:\/\/www.prismia.ch\/en\/audit-consulting\/\">Audit &amp; consulting<\/a>\n          <a href=\"https:\/\/www.prismia.ch\/en\/integration\/\">Integration<\/a>\n        <\/div>\n        <div class=\"fcol\">\n          <div class=\"dd-tag\">PrismIA<\/div>\n          <a href=\"https:\/\/www.prismia.ch\/en\/about-us\/\">About us<\/a>\n          <a href=\"https:\/\/www.prismia.ch\/en\/about-us\/#equipe\">Our team<\/a>\n          <a href=\"https:\/\/www.prismia.ch\/en\/contact\/\">Contact<\/a>\n        <\/div>\n        <div class=\"fcol\">\n          <div class=\"dd-tag\">AI tools<\/div>\n          <a href=\"https:\/\/www.prismia.ch\/en\/bullshitometer\/\">Bullshitometer<\/a>\n          <a href=\"https:\/\/www.prismia.ch\/en\/local-pii-filter\/\">Local PII Filter<\/a>\n        <\/div>\n        <div class=\"fcol\">\n          <div class=\"dd-tag\">Insights<\/div>\n          <a href=\"https:\/\/www.prismia.ch\/en\/newsletter\/\">Newsletters<\/a>\n          <a href=\"https:\/\/www.prismia.ch\/en\/webinars\/\">Webinars<\/a>\n        <\/div>\n        <div class=\"fcol\">\n          <div class=\"dd-tag\">Legal<\/div>\n          <a href=\"https:\/\/www.prismia.ch\/en\/privacy-policy\/\">Privacy<\/a>\n        <\/div>\n        <div class=\"fcontact\">\n          <div class=\"dd-tag\">Contact<\/div>\n          <span>PrismIA S\u00e0rl<br>Ch. Frank-Thomas 32, 1208 Geneva<br>Rue de l'Avenir 28, 1020 Renens<br>Switzerland<\/span>\n          <a href=\"tel:+41225669400\">+41 22 566 94 00<\/a>\n          <a href=\"mailto:info@prismia.ch\">info@prismia.ch<\/a>\n          <a href=\"https:\/\/www.linkedin.com\/company\/prismia-ch\" target=\"_blank\" rel=\"noopener\">LinkedIn<\/a>\n          <a class=\"btn btn-light\" href=\"https:\/\/www.prismia.ch\/en\/contact\/\">Contact us<\/a>\n        <\/div>\n      <\/div>\n\n      <div class=\"footer-bottom\">\n        <img decoding=\"async\" src=\"https:\/\/www.prismia.ch\/wp-content\/uploads\/2024\/11\/PRISMIA_logo_couleur_20241105.svg\" alt=\"PrismIA\">\n        <span class=\"copy\">\u00a9 2026 PrismIA S\u00e0rl, all rights reserved \u00b7 Made with care in Geneva<\/span>\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/footer>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-30c2b03 elementor-widget elementor-widget-html\" data-id=\"30c2b03\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n.nl-form input.nl-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}\n\/* le th\u00e8me arrondit trop les <button> submit : on force le radius de la charte (2026-07-16) *\/\n.footer-nl .nl-form button,.footer-nl .nl-form .btn{border-radius:var(--radius-btn)!important}\n.nl-form.nl-shake{animation:nlShake .4s}\n@keyframes nlShake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}\n\/* --- feedback rouge doux (champ fautif) --- *\/\n.nl-form input.nl-err{border-color:#ff7a68!important;color:#ffb4a8}\n.nl-form input.nl-err::placeholder{color:#ff9d90}\n.nl-emsg{display:none;color:#ff9d90;font-size:12.5px;margin-top:9px;font-family:\"Plus Jakarta Sans\",system-ui,sans-serif}\n.nl-emsg.show{display:block}\n.footer-nl .nl-consent.nl-err,.footer-nl .nl-consent.nl-err a{color:#ff9d90}\n.footer-nl .nl-consent.nl-err input{outline:1.5px solid #ff7a68;outline-offset:2px;border-radius:4px;accent-color:#ff7a68}\n.footer-nl.nl-done .nl-emsg{display:none!important}\n\/* --- confirmation d'inscription (animation sobre) --- *\/\n.footer-nl.nl-done .nl-form,.footer-nl.nl-done .nl-consent{opacity:0;transform:translateY(-6px);height:0;margin:0;overflow:hidden;pointer-events:none;transition:opacity .35s ease,transform .35s ease}\n.nlx{display:none;flex-direction:column;align-items:flex-start;gap:11px;margin-top:6px;max-width:52ch}\n.footer-nl.nl-done .nlx{display:flex}\n.nlx-line{width:58px;height:2px;border-radius:2px;background:linear-gradient(90deg,#2C55FB,#7B5CFF 55%,#91B1FF);transform:scaleX(0);transform-origin:left;animation:nlxLine .55s .05s forwards cubic-bezier(.2,.8,.2,1)}\n.nlx-over{display:inline-flex;align-items:center;gap:9px;font-family:\"Geist Mono\",ui-monospace,monospace;font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#91B1FF;opacity:0;transform:translateY(8px);animation:nlxIn .5s .16s forwards cubic-bezier(.2,.8,.2,1)}\n.nlx-over svg{width:15px;height:15px;flex:0 0 auto;fill:none;stroke:#91B1FF;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24;animation:nlxDraw .5s .34s forwards ease}\n@keyframes nlxDraw{to{stroke-dashoffset:0}}\n.nlx-title{font-family:\"Plus Jakarta Sans\",system-ui,sans-serif;font-size:20px;font-weight:800;line-height:1.2;letter-spacing:-.01em;color:#fff;margin:0;opacity:0;transform:translateY(8px);animation:nlxIn .5s .28s forwards cubic-bezier(.2,.8,.2,1)}\n.nlx-title em{font-style:normal;color:#91B1FF}\n.nlx-sub{font-family:\"Plus Jakarta Sans\",system-ui,sans-serif;font-size:14px;line-height:1.55;color:rgba(255,255,255,.72);opacity:0;transform:translateY(8px);animation:nlxIn .5s .40s forwards cubic-bezier(.2,.8,.2,1)}\n@keyframes nlxLine{to{transform:scaleX(1)}}\n@keyframes nlxIn{to{opacity:1;transform:none}}\n@media (prefers-reduced-motion:reduce){.nlx-line,.nlx-over,.nlx-over svg,.nlx-title,.nlx-sub{animation:none!important}.nlx-line{transform:none}.nlx-over,.nlx-title,.nlx-sub{opacity:1;transform:none}.nlx-over svg{stroke-dashoffset:0}}\n<\/style>\n<script>\n(function(){\nfunction boot(){\n var form=document.querySelector('.nl-form'); if(!form||form.dataset.piaNl) return; form.dataset.piaNl='1';\n var wrap=form.closest('.footer-nl')||form.parentElement;\n var hp=document.createElement('input');hp.type='text';hp.name='website';hp.className='nl-hp';hp.tabIndex=-1;hp.autocomplete='off';hp.setAttribute('aria-hidden','true');form.appendChild(hp);\n var inp=form.querySelector('input[type=email]');\n var lbl=wrap.querySelector('.nl-consent');\n var cons=wrap.querySelector('input[name=consent]');\n var emsg=document.createElement('div');emsg.className='nl-emsg';emsg.textContent='Please enter a valid email address.';\n if(form.parentNode)form.parentNode.insertBefore(emsg,form.nextSibling);\n var s=document.createElement('div');s.className='nlx';\n s.innerHTML='<span class=\"nlx-line\"><\/span><span class=\"nlx-over\"><svg viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10.5l4 4 8-9\"\/><\/svg>Subscription confirmed<\/span><strong class=\"nlx-title\">Welcome to the grand b<em>AI<\/em>n.<\/strong><span class=\"nlx-sub\">Your next edition is on its way \u2014 once or twice a month, no spam.<\/span>';\n wrap.appendChild(s);\n var EP=window.PIA_NL_ENDPOINT||'\/wp-json\/prismia\/v1\/newsletter';var MODE=window.PIA_NL_MODE||'live';\n function shake(){form.classList.remove('nl-shake');void form.offsetWidth;form.classList.add('nl-shake');}\n function clrEmail(){if(inp)inp.classList.remove('nl-err');emsg.classList.remove('show');}\n function clrCons(){if(lbl)lbl.classList.remove('nl-err');}\n if(inp)inp.addEventListener('input',clrEmail);\n if(cons)cons.addEventListener('change',function(){if(cons.checked)clrCons();});\n form.addEventListener('submit',function(e){\n  e.preventDefault();\n  clrEmail();clrCons();\n  var email=inp?inp.value.trim():'';var bad=false;\n  if(!\/^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$\/.test(email)){if(inp)inp.classList.add('nl-err');emsg.classList.add('show');bad=true;}\n  if(cons&&!cons.checked){if(lbl)lbl.classList.add('nl-err');bad=true;}\n  if(bad){shake();if(inp&&inp.classList.contains('nl-err'))inp.focus();return;}\n  if(hp.value)return;\n  var ok=function(){wrap.classList.add('nl-done');};\n  if(MODE==='demo'){setTimeout(ok,300);return;}\n  var btn=form.querySelector('button');if(btn)btn.disabled=true;\n  fetch(EP,{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify({email:email,consent:cons?cons.checked:true,website:hp.value})})\n   .then(function(r){return r.ok?r.json():Promise.reject();}).then(ok)\n   .catch(function(){if(btn)btn.disabled=false;alert('Oops, please try again in a moment.');});\n });\n}\nif(document.readyState==='loading')document.addEventListener('DOMContentLoaded',boot);else boot();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2efc4fb elementor-widget elementor-widget-html\" data-id=\"2efc4fb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\/* 2026-07-15 \u2014 interligne de la ligne de consentement newsletter (le bloc .nl-consent du CSS principal n'avait pas de line-height, d'o\u00f9 2 lignes coll\u00e9es). Fond corrig\u00e9 dans styles.css source. *\/\n.footer-nl .nl-consent{line-height:1.55}<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-bba3054 e-flex e-con-full pia-wrap pia-js e-con e-parent\" data-id=\"bba3054\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5a8a8bd elementor-widget elementor-widget-html\" data-id=\"5a8a8bd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\nfunction __piaBoot(){\n\/* PrismIA mockup-v2 \u2014 nav + shader hero\/footer (maison, ~13 KB)\n   Shader \"Grille maquette\" (variante F valid\u00e9e) : halo central + trame\n   halftone en grille, statique. Interactions souris uniquement :\n   illumination + micro-relief des points, orbe discr\u00e8te sur la ligne\n   de transition (taille r\u00e9active \u00e0 la proximit\u00e9), inertie 0.042.\n   2026-07-13 (feedback Fran\u00e7ois) : champ recentr\u00e9 sur le bleu PrismIA\n   #2C55FB (l'ancienne base indigo #0E1880 + dominante #1929DD rendait\n   un bleu roi \u00ab Mister-IA \u00bb) ; rayon des dots r\u00e9duit de 20 %. *\/\n(function () {\n  \"use strict\";\n\n  \/* ---------------- NAV ---------------- *\/\n  var nav = document.getElementById(\"nav\");\n  var burger = document.getElementById(\"burger\");\n\n  function onScroll() {\n    if (nav.hasAttribute(\"data-solid\")) { nav.classList.add(\"is-scrolled\"); return; }\n    if (window.scrollY > 40) nav.classList.add(\"is-scrolled\");\n    else if (!nav.classList.contains(\"menu-open\")) nav.classList.remove(\"is-scrolled\");\n  }\n  window.addEventListener(\"scroll\", onScroll, { passive: true });\n  onScroll();\n\n  \/\/ dropdowns (hover desktop + clic)\n  document.querySelectorAll(\"[data-dd]\").forEach(function (item) {\n    var btn = item.querySelector(\".nav-link\");\n    var closeTimer = null;\n    function open() {\n      clearTimeout(closeTimer);\n      document.querySelectorAll(\"[data-dd].open\").forEach(function (o) { if (o !== item) o.classList.remove(\"open\"); });\n      item.classList.add(\"open\");\n      btn.setAttribute(\"aria-expanded\", \"true\");\n    }\n    function close() {\n      closeTimer = setTimeout(function () {\n        item.classList.remove(\"open\");\n        btn.setAttribute(\"aria-expanded\", \"false\");\n      }, 180);\n    }\n    item.addEventListener(\"mouseenter\", open);\n    item.addEventListener(\"mouseleave\", close);\n    btn.addEventListener(\"click\", function (e) {\n      e.preventDefault();\n      if (item.classList.contains(\"open\")) { item.classList.remove(\"open\"); btn.setAttribute(\"aria-expanded\", \"false\"); }\n      else open();\n    });\n  });\n  document.addEventListener(\"click\", function (e) {\n    if (!e.target.closest(\"[data-dd]\")) {\n      document.querySelectorAll(\"[data-dd].open\").forEach(function (o) { o.classList.remove(\"open\"); });\n    }\n  });\n\n  \/\/ burger mobile\n  if (burger) {\n    burger.addEventListener(\"click\", function () {\n      var open = nav.classList.toggle(\"menu-open\");\n      burger.setAttribute(\"aria-expanded\", open ? \"true\" : \"false\");\n      if (open) nav.classList.add(\"is-scrolled\");\n      document.body.style.overflow = open ? \"hidden\" : \"\";\n      if (!open) onScroll();\n    });\n  }\n\n  var reducedMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n  \/* ---------------- REVEALS AU SCROLL (2026-07-13) ----------------\n     Fade-up discret sur les blocs de section, cascade sur les enfants de\n     grilles. Z\u00e9ro HTML modifi\u00e9 : les classes .rv\/.in sont pos\u00e9es ici (sans\n     JS, rien n'est masqu\u00e9) puis RETIR\u00c9ES en fin de transition pour ne pas\n     interf\u00e9rer avec les transforms de hover des cards. *\/\n  if (!reducedMotion && \"IntersectionObserver\" in window) {\n    var rvItems = [];\n    document.querySelectorAll(\".section-head, .faq-item, .cta-panel, .tools-band\").forEach(function (el) {\n      rvItems.push([el, 0]);\n    });\n    document.querySelectorAll(\".services-grid, .valeur-grid, .skills-grid, .news-grid, .method-grid, .split\").forEach(function (g) {\n      Array.prototype.forEach.call(g.children, function (el, i) { rvItems.push([el, Math.min(i, 5) * 90]); });\n    });\n    var rvClean = function (el, delay) {\n      setTimeout(function () { el.classList.remove(\"rv\", \"in\"); el.style.removeProperty(\"--rvd\"); }, 950 + delay);\n    };\n    var rvIO = new IntersectionObserver(function (entries) {\n      entries.forEach(function (en) {\n        if (!en.isIntersecting) return;\n        rvIO.unobserve(en.target);\n        en.target.classList.add(\"in\");\n        rvClean(en.target, parseFloat(en.target.style.getPropertyValue(\"--rvd\") || 0) * 1000);\n      });\n    }, { rootMargin: \"0px 0px -8% 0px\", threshold: 0.08 });\n    rvItems.forEach(function (it) {\n      var el = it[0];\n      if (el.closest(\".hero\")) return;                                  \/\/ le hero a sa propre entr\u00e9e\n      if (el.getBoundingClientRect().top < window.innerHeight * 0.85) return; \/\/ d\u00e9j\u00e0 visible : ne pas masquer\n      if (it[1]) el.style.setProperty(\"--rvd\", it[1] \/ 1000 + \"s\");\n      el.classList.add(\"rv\");\n      rvIO.observe(el);\n    });\n\n    \/* entr\u00e9e du hero : cascade titre -> lead -> CTA *\/\n    var heroKids = document.querySelectorAll(\".hero-inner > *\");\n    heroKids.forEach(function (el, i) {\n      el.style.setProperty(\"--rvd\", 0.12 + i * 0.14 + \"s\");\n      el.classList.add(\"rv\");\n    });\n    requestAnimationFrame(function () {\n      requestAnimationFrame(function () {\n        heroKids.forEach(function (el) { el.classList.add(\"in\"); rvClean(el, 800); });\n      });\n    });\n  }\n\n  \/* ---------------- SCROLL INERTIEL (2026-07-13) ----------------\n     Molette desktop uniquement (pointer:fine) : lissage exponentiel -> le\n     d\u00e9filement d\u00e9c\u00e9l\u00e8re progressivement. Tactile, clavier, scrollbar et\n     ancres restent natifs (resynchro via l'event scroll). *\/\n  if (!reducedMotion && window.matchMedia(\"(pointer: fine)\").matches) {\n    (function () {\n      var target = window.scrollY, cur = target, active = false, self = false;\n      function maxScroll() { return document.documentElement.scrollHeight - window.innerHeight; }\n      function step() {\n        cur += (target - cur) * 0.085;\n        if (Math.abs(target - cur) < 0.6) { cur = target; active = false; }\n        self = true;\n        window.scrollTo({ top: Math.round(cur), behavior: \"instant\" }); \/\/ \"instant\" : ne pas d\u00e9clencher scroll-behavior:smooth\n        requestAnimationFrame(function () { self = false; });\n        if (active) requestAnimationFrame(step);\n      }\n      window.addEventListener(\"wheel\", function (e) {\n        if (e.ctrlKey || e.defaultPrevented) return;                       \/\/ zoom navigateur\n        if (Math.abs(e.deltaX) > Math.abs(e.deltaY)) return;               \/\/ d\u00e9filement horizontal natif\n        if (document.body.style.overflow === \"hidden\") return;             \/\/ menu mobile ouvert\n        e.preventDefault();\n        var d = e.deltaY * (e.deltaMode === 1 ? 33 : e.deltaMode === 2 ? window.innerHeight : 1);\n        target = Math.max(0, Math.min(maxScroll(), target + d));\n        if (!active) { active = true; requestAnimationFrame(step); }\n      }, { passive: false });\n      window.addEventListener(\"scroll\", function () {\n        if (!self && !active) { cur = target = window.scrollY; }           \/\/ clavier\/scrollbar\/ancres : resynchro\n      }, { passive: true });\n    })();\n  }\n\n  \/* ---------------- SHADER (variante F) ---------------- *\/\n  var VS = \"attribute vec2 aP;void main(){gl_Position=vec4(aP,0.,1.);}\";\n  var FS = [\n    \"precision highp float;\",\n    \"uniform vec2 uRes;uniform vec2 uM;uniform float uFlip;uniform float uCy;uniform float uDim;uniform float uDots;uniform float uTop;uniform float uOrb;\",\n    \"float h21(vec2 p){p=fract(p*vec2(123.34,456.21));p+=dot(p,p+45.32);return fract(p.x*p.y);}\",\n    \"void main(){\",\n    \"  vec2 frag=gl_FragCoord.xy;\",\n    \"  vec2 uv=frag\/uRes;\",\n    \"  vec2 p=(frag-0.5*uRes)\/uRes.y;\",\n    \"  p.y*=uFlip;\",\n    \"  uv.y=mix(uv.y,1.0-uv.y,step(uFlip,0.0));\",\n    \"  vec2 m=vec2(uM.x,uM.y*uFlip);\",\n    \"  vec3 cDark=vec3(0.016,0.028,0.106);\",\n    \"  vec3 cP=vec3(0.098,0.161,0.867);\",\n    \"  vec3 cA=vec3(0.173,0.333,0.984);\",\n    \"  vec3 cL=vec3(0.569,0.694,1.0);\",\n    \"  vec3 cW=vec3(0.918,0.941,1.0);\",\n    \"  vec2 gc=(p-vec2(0.0,uCy))*vec2(0.95,1.3);\",\n    \"  float g0=exp(-dot(gc,gc)*2.6);\",\n    \"  vec3 col=mix(cDark,cA*0.60,0.42+0.30*g0*uDim);\", \/\/ plancher ambiant bleu releve (0.34->0.42 le 13\/07 : encore moins de noir)\n    \"  col+=cP*g0*0.45*uDim;\", \/\/ 1929DD riche en B : pousse vers le bleu vif sans virer periwinkle\n    \"  col+=cA*g0*0.80*uDim;\", \/\/ dominante accent : le champ tire vers #2C55FB, pas vers le bleu roi\n    \"  col+=cA*pow(g0,2.0)*0.85*uDim;\",\n    \"  col+=mix(cA,cW,0.8)*pow(g0,7.0)*0.62*uDim;\", \/\/ pic blanc du halo l\u00e9g\u00e8rement att\u00e9nu\u00e9 (lisibilit\u00e9 du titre)\n    \"  vec2 pm=p-m;\",\n    \"  float mprox=exp(-dot(pm,pm)*24.0);\",\n    \"  vec2 pd=p-pm*0.07*mprox;\",\n    \"  float den=52.0;\", \/\/ 105 -> 74 -> 52 : -75% de dots par surface au total (2026-07-13, diff\u00e9renciation Mister-IA)\n    \"  vec2 g=pd*den+vec2(den*0.5);\",\n    \"  vec2 cell=floor(g);vec2 f=fract(g);\",\n    \"  float d=length(f-0.5);\",\n    \"  float rv=h21(cell);\",\n    \"  vec2 gc2=(pd-vec2(0.0,uCy))*vec2(0.95,1.3);\",\n    \"  float gf=exp(-dot(gc2,gc2)*2.6);\",\n    \"  float band=smoothstep(0.03,0.25,gf)*(1.0-smoothstep(0.45,0.8,gf));\",\n    \"  float amp=band*(0.65+0.35*rv)+mprox*(0.4+0.4*band);\",\n    \"  float rad=0.024+0.080*min(amp,1.0)*(1.0+0.35*mprox);\", \/\/ rayon re-scal\u00e9 x0.707 a chaque baisse de den : taille pixel des points inchang\u00e9e\n    \"  float dm=smoothstep(rad,rad*0.68,d);\",\n    \"  vec3 dc=mix(cL*0.9,cW,clamp(gf*0.8+0.6*mprox,0.0,1.0));\",\n    \"  col+=dc*dm*min(amp,1.1)*0.3*uDots;\",\n    \"  col=mix(col,vec3(0.031,0.056,0.20),smoothstep(0.55,1.0,uv.y)*0.42*uTop);\", \/\/ fondu haut vers bleu profond, encore adouci (0.9 -> 0.55 -> 0.42)\n    \"  float mxx=clamp(m.x,-0.66,0.66);\",\n    \"  vec2 C=vec2(mxx,-0.475);\",\n    \"  float md=length(m-C);\",\n    \"  float sz=mix(0.050,0.105,exp(-md*1.9));\",\n    \"  vec2 po=p-C;po.x*=0.82;\",\n    \"  float r2=dot(po,po);\",\n    \"  float orb=exp(-r2\/(sz*sz));\",\n    \"  float halo=exp(-r2\/(sz*sz*9.0))*0.20;\",\n    \"  col+=cL*halo*uOrb;\",\n    \"  col+=vec3(1.0,0.995,0.98)*orb*0.8*uOrb;\",\n    \"  col*=1.0-0.16*smoothstep(0.75,1.35,length(p));\", \/\/ vignette allegee (0.30 -> 0.22 -> 0.16)\n    \"  col=1.0-exp(-col*1.35);\",\n    \"  float lum=dot(col,vec3(0.299,0.587,0.114));\", \/\/ boost de saturation post-tonemap (13\/07) :\n    \"  col=clamp(mix(vec3(lum),col,1.30),0.0,1.0);\", \/\/ le tonemap compresse B et delave le champ -> on re-sature (blancs intacts)\n    \"  gl_FragColor=vec4(col,1.0);\",\n    \"}\"\n  ].join(\"\\n\");\n\n  function initScene(canvas, host, flip, cy, dim, dots, top, orb) {\n    var reduced = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n    var gl = canvas.getContext(\"webgl\", { antialias: false, alpha: false, powerPreference: \"low-power\" });\n    if (!gl) {\n      host.style.background =\n        \"radial-gradient(60% 55% at 50% \" + (flip > 0 ? \"62%\" : \"38%\") + \", rgba(44,85,251,.55), transparent 72%),\" +\n        \"linear-gradient(180deg,#04071b,#0A1240 50%,#04071b)\";\n      return;\n    }\n    function sh(type, src) {\n      var s = gl.createShader(type); gl.shaderSource(s, src); gl.compileShader(s);\n      if (!gl.getShaderParameter(s, gl.COMPILE_STATUS)) console.error(gl.getShaderInfoLog(s));\n      return s;\n    }\n    var prog = gl.createProgram();\n    gl.attachShader(prog, sh(gl.VERTEX_SHADER, VS));\n    gl.attachShader(prog, sh(gl.FRAGMENT_SHADER, FS));\n    gl.linkProgram(prog); gl.useProgram(prog);\n    var buf = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, buf);\n    gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1, -1, 3, -1, -1, 3]), gl.STATIC_DRAW);\n    var loc = gl.getAttribLocation(prog, \"aP\");\n    gl.enableVertexAttribArray(loc); gl.vertexAttribPointer(loc, 2, gl.FLOAT, false, 0, 0);\n    var uRes = gl.getUniformLocation(prog, \"uRes\");\n    var uM = gl.getUniformLocation(prog, \"uM\");\n    var uFlip = gl.getUniformLocation(prog, \"uFlip\");\n    var uCy = gl.getUniformLocation(prog, \"uCy\");\n    var uDim = gl.getUniformLocation(prog, \"uDim\");\n    var uDots = gl.getUniformLocation(prog, \"uDots\");\n    var uTop = gl.getUniformLocation(prog, \"uTop\");\n    var uOrb = gl.getUniformLocation(prog, \"uOrb\");\n\n    var DPR = Math.min(window.devicePixelRatio || 1, 1.5);\n    function resize() {\n      var w = host.clientWidth, h = host.clientHeight;\n      canvas.width = Math.round(w * DPR); canvas.height = Math.round(h * DPR);\n      gl.viewport(0, 0, canvas.width, canvas.height);\n    }\n    resize(); window.addEventListener(\"resize\", resize);\n\n    var mx = 0, my = 0, tx = 0, ty = 0;\n    host.addEventListener(\"mousemove\", function (e) {\n      var r = host.getBoundingClientRect();\n      tx = ((e.clientX - r.left) - r.width * 0.5) \/ r.height;\n      ty = -(((e.clientY - r.top) - r.height * 0.5) \/ r.height);\n    });\n\n    var running = true, inView = true;\n    document.addEventListener(\"visibilitychange\", function () { running = !document.hidden; });\n    if (\"IntersectionObserver\" in window) {\n      new IntersectionObserver(function (en) { inView = en[0].isIntersecting; }, { threshold: 0.02 }).observe(host);\n    }\n\n    function draw() {\n      gl.uniform2f(uRes, canvas.width, canvas.height);\n      mx += (tx - mx) * 0.042; my += (ty - my) * 0.042;\n      gl.uniform2f(uM, mx, my);\n      gl.uniform1f(uFlip, flip);\n      gl.uniform1f(uCy, cy);\n      gl.uniform1f(uDim, dim);\n      gl.uniform1f(uDots, dots);\n      gl.uniform1f(uTop, top);\n      gl.uniform1f(uOrb, orb);\n      gl.drawArrays(gl.TRIANGLES, 0, 3);\n    }\n\n    var FPS = 30, frameMs = 1000 \/ FPS, last = 0;\n    function loop(now) {\n      requestAnimationFrame(loop);\n      if (!running || !inView) return;\n      if (now - last < frameMs) return;\n      last = now; draw();\n    }\n    draw(); \/\/ premier rendu imm\u00e9diat, m\u00eame hors viewport (\u00e9vite un canvas noir avant le scroll)\n    if (reduced) { canvas.classList.add(\"on\"); }\n    else {\n      requestAnimationFrame(loop);\n      requestAnimationFrame(function () { canvas.classList.add(\"on\"); });\n    }\n  }\n\n  var heroCanvas = document.getElementById(\"glHero\");\n  \/\/ cy -0.18 : halo descendu sous le bloc titre (contraste du h1 lavande sur bleu profond)\n  if (heroCanvas) initScene(heroCanvas, heroCanvas.parentElement, 1.0, -0.18, 1.0, 1.0, 1.0, 1.0);\n  var footCanvas = document.getElementById(\"glFooter\");\n  if (footCanvas) initScene(footCanvas, footCanvas.parentElement, -1.0, -0.28, 0.42, 0.7, 1.0, 1.0);\n  var ctaCanvas = document.getElementById(\"glCta\");\n  \/\/ dim 0.35 -> 0.60 (2026-07-13, Fran\u00e7ois) : halo plus large, moins de sombre aux bords du panneau\n  if (ctaCanvas) initScene(ctaCanvas, ctaCanvas.parentElement, 1.0, -0.12, 0.60, 0.5, 0.0, 0.0);\n})();\n}\nif(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',__piaBoot);}else{__piaBoot();}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Services + What we do AI training Audit &amp; consulting Integration All our services \u2192 AI training AI Initiate C-Level Coaching Microsoft Copilot Essentials Microsoft Copilot Advanced ChatGPT Advanced Claude Advanced All our training courses \u2192 Turnkey solutions Voice AI Agent Local Transcription Super Researcher Agentic AI Watch All our solutions \u2192 PrismIA is an [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":2214,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_yoast_wpseo_focuskw":"data anonymisation for AI","_yoast_wpseo_title":"Data anonymisation for safe AI use | PrismIA","_yoast_wpseo_metadesc":"Mask sensitive data before it reaches an AI, processed 100% locally: nothing leaves your environment. Adapted to your data types, integrated into your tools. Free tool available, then a tailored version.","_yoast_wpseo_linkdex":"","_yoast_wpseo_content_score":"","_elementor_version":"4.1.5","_elementor_pro_version":"4.1.3","_elementor_css":null,"footnotes":""},"class_list":["post-4362","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Data anonymisation for safe AI use | PrismIA<\/title>\n<meta name=\"description\" content=\"Mask sensitive data before it reaches an AI, processed 100% locally: nothing leaves your environment. Adapted to your data types, integrated into your tools. Free tool available, then a tailored version.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.prismia.ch\/en\/solutions\/anonymisation-donnees\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Data anonymisation for safe AI use | PrismIA\" \/>\n<meta property=\"og:description\" content=\"Mask sensitive data before it reaches an AI, processed 100% locally: nothing leaves your environment. Adapted to your data types, integrated into your tools. Free tool available, then a tailored version.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.prismia.ch\/en\/solutions\/anonymisation-donnees\/\" \/>\n<meta property=\"og:site_name\" content=\"PrismIA\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-20T08:57:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.prismia.ch\/wp-content\/uploads\/2026\/07\/prismia-og-default.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/solutions\\\/anonymisation-donnees\\\/\",\"url\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/solutions\\\/anonymisation-donnees\\\/\",\"name\":\"Data anonymisation for safe AI use | PrismIA\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/solutions\\\/anonymisation-donnees\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/solutions\\\/anonymisation-donnees\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.prismia.ch\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/PRISMIA_logo_couleur_20241105.svg\",\"datePublished\":\"2026-07-19T15:34:40+00:00\",\"dateModified\":\"2026-07-20T08:57:31+00:00\",\"description\":\"Mask sensitive data before it reaches an AI, processed 100% locally: nothing leaves your environment. Adapted to your data types, integrated into your tools. Free tool available, then a tailored version.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/solutions\\\/anonymisation-donnees\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.prismia.ch\\\/en\\\/solutions\\\/anonymisation-donnees\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/solutions\\\/anonymisation-donnees\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.prismia.ch\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/PRISMIA_logo_couleur_20241105.svg\",\"contentUrl\":\"https:\\\/\\\/www.prismia.ch\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/PRISMIA_logo_couleur_20241105.svg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/solutions\\\/anonymisation-donnees\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/home\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Our Products\",\"item\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/solutions\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Data Anonymisation (EN)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/\",\"name\":\"PrismIA\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Organization\",\"ProfessionalService\"],\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/#organization\",\"name\":\"PrismIA S\u00e0rl\",\"url\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.prismia.ch\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/PIA_logo_415x90-e1739004471809.webp\",\"contentUrl\":\"https:\\\/\\\/www.prismia.ch\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/PIA_logo_415x90-e1739004471809.webp\",\"width\":200,\"height\":43,\"caption\":\"PrismIA S\u00e0rl\"},\"image\":{\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"description\":\"PrismIA est une agence d'intelligence artificielle bas\u00e9e \u00e0 Gen\u00e8ve. Nous accompagnons les PME et grandes entreprises suisses dans l'adoption responsable de l'IA : conseil strat\u00e9gique, formations sur mesure, audit et int\u00e9gration de solutions.\",\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"Chemin Frank-Thomas 32\",\"postalCode\":\"1208\",\"addressLocality\":\"Gen\u00e8ve\",\"addressRegion\":\"GE\",\"addressCountry\":\"CH\"},\"telephone\":\"+41 22 566 94 00\",\"email\":\"info@prismia.ch\",\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":46.203807649278424,\"longitude\":6.1732832963451445},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/company\\\/prismia-ch\"],\"areaServed\":[{\"@type\":\"Country\",\"name\":\"Switzerland\"},{\"@type\":\"AdministrativeArea\",\"name\":\"Suisse romande\"},{\"@type\":\"AdministrativeArea\",\"name\":\"Vaud\"},{\"@type\":\"City\",\"name\":\"Gen\u00e8ve\"},{\"@type\":\"City\",\"name\":\"Lausanne\"}],\"location\":[{\"@type\":\"Place\",\"name\":\"PrismIA Gen\u00e8ve\",\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"Chemin Frank-Thomas 32\",\"postalCode\":\"1208\",\"addressLocality\":\"Gen\u00e8ve\",\"addressRegion\":\"GE\",\"addressCountry\":\"CH\"}},{\"@type\":\"Place\",\"name\":\"PrismIA Renens\",\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"Rue de l'Avenir 28\",\"postalCode\":\"1020\",\"addressLocality\":\"Renens\",\"addressRegion\":\"VD\",\"addressCountry\":\"CH\"}}],\"knowsAbout\":[\"Intelligence artificielle\",\"Formation IA\",\"Audit IA\",\"Int\u00e9gration IA\",\"Conseil IA\",\"Gouvernance IA\",\"IA g\u00e9n\u00e9rative\",\"Strat\u00e9gie IA\",\"IA en entreprise\",\"IA responsable\"],\"priceRange\":\"$$\",\"openingHoursSpecification\":{\"@type\":\"OpeningHoursSpecification\",\"dayOfWeek\":[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\"],\"opens\":\"09:00\",\"closes\":\"18:00\"},\"foundingDate\":\"2024\",\"slogan\":\"B\u00e2tissez le futur de votre entreprise avec des solutions IA s\u00e9curis\u00e9es\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Data anonymisation for safe AI use | PrismIA","description":"Mask sensitive data before it reaches an AI, processed 100% locally: nothing leaves your environment. Adapted to your data types, integrated into your tools. Free tool available, then a tailored version.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.prismia.ch\/en\/solutions\/anonymisation-donnees\/","og_locale":"en_US","og_type":"article","og_title":"Data anonymisation for safe AI use | PrismIA","og_description":"Mask sensitive data before it reaches an AI, processed 100% locally: nothing leaves your environment. Adapted to your data types, integrated into your tools. Free tool available, then a tailored version.","og_url":"https:\/\/www.prismia.ch\/en\/solutions\/anonymisation-donnees\/","og_site_name":"PrismIA","article_modified_time":"2026-07-20T08:57:31+00:00","og_image":[{"url":"https:\/\/www.prismia.ch\/wp-content\/uploads\/2026\/07\/prismia-og-default.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.prismia.ch\/en\/solutions\/anonymisation-donnees\/","url":"https:\/\/www.prismia.ch\/en\/solutions\/anonymisation-donnees\/","name":"Data anonymisation for safe AI use | PrismIA","isPartOf":{"@id":"https:\/\/www.prismia.ch\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.prismia.ch\/en\/solutions\/anonymisation-donnees\/#primaryimage"},"image":{"@id":"https:\/\/www.prismia.ch\/en\/solutions\/anonymisation-donnees\/#primaryimage"},"thumbnailUrl":"https:\/\/www.prismia.ch\/wp-content\/uploads\/2024\/11\/PRISMIA_logo_couleur_20241105.svg","datePublished":"2026-07-19T15:34:40+00:00","dateModified":"2026-07-20T08:57:31+00:00","description":"Mask sensitive data before it reaches an AI, processed 100% locally: nothing leaves your environment. Adapted to your data types, integrated into your tools. Free tool available, then a tailored version.","breadcrumb":{"@id":"https:\/\/www.prismia.ch\/en\/solutions\/anonymisation-donnees\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.prismia.ch\/en\/solutions\/anonymisation-donnees\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.prismia.ch\/en\/solutions\/anonymisation-donnees\/#primaryimage","url":"https:\/\/www.prismia.ch\/wp-content\/uploads\/2024\/11\/PRISMIA_logo_couleur_20241105.svg","contentUrl":"https:\/\/www.prismia.ch\/wp-content\/uploads\/2024\/11\/PRISMIA_logo_couleur_20241105.svg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.prismia.ch\/en\/solutions\/anonymisation-donnees\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.prismia.ch\/en\/home\/"},{"@type":"ListItem","position":2,"name":"Our Products","item":"https:\/\/www.prismia.ch\/en\/solutions\/"},{"@type":"ListItem","position":3,"name":"Data Anonymisation (EN)"}]},{"@type":"WebSite","@id":"https:\/\/www.prismia.ch\/en\/#website","url":"https:\/\/www.prismia.ch\/en\/","name":"PrismIA","description":"","publisher":{"@id":"https:\/\/www.prismia.ch\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.prismia.ch\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Organization","ProfessionalService"],"@id":"https:\/\/www.prismia.ch\/en\/#organization","name":"PrismIA S\u00e0rl","url":"https:\/\/www.prismia.ch\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.prismia.ch\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.prismia.ch\/wp-content\/uploads\/2024\/11\/PIA_logo_415x90-e1739004471809.webp","contentUrl":"https:\/\/www.prismia.ch\/wp-content\/uploads\/2024\/11\/PIA_logo_415x90-e1739004471809.webp","width":200,"height":43,"caption":"PrismIA S\u00e0rl"},"image":{"@id":"https:\/\/www.prismia.ch\/en\/#\/schema\/logo\/image\/"},"description":"PrismIA est une agence d'intelligence artificielle bas\u00e9e \u00e0 Gen\u00e8ve. Nous accompagnons les PME et grandes entreprises suisses dans l'adoption responsable de l'IA : conseil strat\u00e9gique, formations sur mesure, audit et int\u00e9gration de solutions.","address":{"@type":"PostalAddress","streetAddress":"Chemin Frank-Thomas 32","postalCode":"1208","addressLocality":"Gen\u00e8ve","addressRegion":"GE","addressCountry":"CH"},"telephone":"+41 22 566 94 00","email":"info@prismia.ch","geo":{"@type":"GeoCoordinates","latitude":46.203807649278424,"longitude":6.1732832963451445},"sameAs":["https:\/\/www.linkedin.com\/company\/prismia-ch"],"areaServed":[{"@type":"Country","name":"Switzerland"},{"@type":"AdministrativeArea","name":"Suisse romande"},{"@type":"AdministrativeArea","name":"Vaud"},{"@type":"City","name":"Gen\u00e8ve"},{"@type":"City","name":"Lausanne"}],"location":[{"@type":"Place","name":"PrismIA Gen\u00e8ve","address":{"@type":"PostalAddress","streetAddress":"Chemin Frank-Thomas 32","postalCode":"1208","addressLocality":"Gen\u00e8ve","addressRegion":"GE","addressCountry":"CH"}},{"@type":"Place","name":"PrismIA Renens","address":{"@type":"PostalAddress","streetAddress":"Rue de l'Avenir 28","postalCode":"1020","addressLocality":"Renens","addressRegion":"VD","addressCountry":"CH"}}],"knowsAbout":["Intelligence artificielle","Formation IA","Audit IA","Int\u00e9gration IA","Conseil IA","Gouvernance IA","IA g\u00e9n\u00e9rative","Strat\u00e9gie IA","IA en entreprise","IA responsable"],"priceRange":"$$","openingHoursSpecification":{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday"],"opens":"09:00","closes":"18:00"},"foundingDate":"2024","slogan":"B\u00e2tissez le futur de votre entreprise avec des solutions IA s\u00e9curis\u00e9es"}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.prismia.ch\/en\/wp-json\/wp\/v2\/pages\/4362","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.prismia.ch\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.prismia.ch\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.prismia.ch\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.prismia.ch\/en\/wp-json\/wp\/v2\/comments?post=4362"}],"version-history":[{"count":5,"href":"https:\/\/www.prismia.ch\/en\/wp-json\/wp\/v2\/pages\/4362\/revisions"}],"predecessor-version":[{"id":4488,"href":"https:\/\/www.prismia.ch\/en\/wp-json\/wp\/v2\/pages\/4362\/revisions\/4488"}],"up":[{"embeddable":true,"href":"https:\/\/www.prismia.ch\/en\/wp-json\/wp\/v2\/pages\/2214"}],"wp:attachment":[{"href":"https:\/\/www.prismia.ch\/en\/wp-json\/wp\/v2\/media?parent=4362"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}