{"id":4547,"date":"2026-07-20T22:37:17","date_gmt":"2026-07-20T21:37:17","guid":{"rendered":"https:\/\/www.prismia.ch\/case-studies\/"},"modified":"2026-07-21T13:48:48","modified_gmt":"2026-07-21T12:48:48","slug":"case-studies","status":"publish","type":"page","link":"https:\/\/www.prismia.ch\/en\/case-studies\/","title":{"rendered":"Case studies"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4547\" class=\"elementor elementor-4547 elementor-4518\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-eh10001 e-flex e-con-full pia-wrap pia-nav e-con e-parent\" data-id=\"eh10001\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ew10001 elementor-widget elementor-widget-html\" data-id=\"ew10001\" 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-ew10002 elementor-widget elementor-widget-html\" data-id=\"ew10002\" 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\/local-pii-filter\/\">Local PII Filter<\/a>\n              <a href=\"https:\/\/www.prismia.ch\/en\/bullshitometer\/\">Bullshitometer<\/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\/case-studies\/\">Case studies<\/a><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\/local-pii-filter\/\">Local PII Filter<\/a>\n      <a href=\"https:\/\/www.prismia.ch\/en\/bullshitometer\/\">Bullshitometer<\/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\/case-studies\/\">Case studies<\/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-eh10002 e-flex e-con-full pia-wrap pia-hero e-con e-parent\" data-id=\"eh10002\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ew10003 elementor-widget elementor-widget-html\" data-id=\"ew10003\" 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=\"page-hero\">\n  <div class=\"container\">\n    <span class=\"crumb\"><a href=\"https:\/\/www.prismia.ch\/en\/\">Home<\/a> \/ Case studies<\/span>\n    <h1>Case studies: <em>AI at work, with our clients<\/em><\/h1>\n    <p class=\"lead\">Our projects, told as they actually happened: the context, what we did, what came out of it.<\/p>\n  <\/div>\n<\/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-eh10003 e-flex e-con-full pia-wrap pia-grid e-con e-parent\" data-id=\"eh10003\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ew10004 elementor-widget elementor-widget-html\" data-id=\"ew10004\" 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.rz-filters{display:flex;flex-direction:column;gap:10px;margin-bottom:clamp(20px,2.2vw,30px)}\n.rz-frow{display:flex;flex-wrap:wrap;align-items:center;gap:8px}\n.rz-flabel{font-family:var(--mono,monospace);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);min-width:78px}\n.rz-fbtn{font-family:var(--mono,monospace);font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);background:#fff;border:1px solid var(--border);border-radius:999px;padding:6px 12px;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease}\n.rz-fbtn:hover{border-color:var(--a,#2C55FB);color:var(--a,#2C55FB)}\n.rz-fbtn.is-active{background:var(--a,#2C55FB);border-color:var(--a,#2C55FB);color:#fff}\n.rz-count{font-family:var(--mono,monospace);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 16px}\n.rz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.6vw,22px)}\n@media(max-width:1024px){.rz-grid{grid-template-columns:repeat(2,1fr)}}\n@media(max-width:600px){.rz-grid{grid-template-columns:1fr}}\n.rz-card{display:flex;flex-direction:column;gap:12px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-card,18px);padding:22px 22px 24px;text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}\na.rz-card:hover{transform:translateY(-3px);border-color:var(--a,#2C55FB);box-shadow:0 14px 30px -16px rgba(25,41,221,.26)}\n.rz-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:26px}\n.rz-card img.rz-card-logo{height:26px;width:auto;max-width:150px;display:block}\n.rz-card-arrow{color:var(--a,#2C55FB);display:inline-flex;transition:transform .2s ease}\na.rz-card:hover .rz-card-arrow{transform:translateX(4px)}\n.rz-card-tags{display:flex;flex-wrap:wrap;gap:6px}\n.rz-tag{font-family:var(--mono,monospace);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);background:var(--pale);border:1px solid var(--border);border-radius:999px;padding:4px 9px}\n.rz-card-title{font-size:clamp(16px,1.5vw,18.5px);font-weight:800;color:var(--ink);margin:2px 0 0;line-height:1.25}\n.rz-card-desc{font-size:13.5px;line-height:1.55;color:var(--muted);margin:0}\n.rz-card-cta{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--a,#2C55FB);font-size:13.5px;margin-top:auto}\n.rz-card-soon{background:var(--pale,#f5f7ff)}\n.rz-soon-foot{font-family:var(--mono,monospace);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:auto}\n.rz-cta{text-align:center;margin-top:clamp(28px,3vw,40px)}\n.rz-cta a{display:inline-flex;align-items:center;gap:9px;font-weight:700;color:var(--a,#2C55FB);font-size:15px;text-decoration:none}\n<\/style>\n<section class=\"section rz-realisations\" id=\"cases\">\n  <div class=\"container\">\n    <div class=\"rz-filters\"><div class=\"rz-frow\"><span class=\"rz-flabel\">Sector<\/span><button class=\"rz-fbtn is-active\" data-f=\"secteur\" data-v=\"all\" aria-pressed=\"true\">All<\/button><button class=\"rz-fbtn\" data-f=\"secteur\" data-v=\"cybersecurite\" aria-pressed=\"false\">Cybersecurity<\/button><button class=\"rz-fbtn\" data-f=\"secteur\" data-v=\"family-office\" aria-pressed=\"false\">Family office<\/button><button class=\"rz-fbtn\" data-f=\"secteur\" data-v=\"public\" aria-pressed=\"false\">Public sector<\/button><button class=\"rz-fbtn\" data-f=\"secteur\" data-v=\"asso\" aria-pressed=\"false\">Association & federation<\/button><button class=\"rz-fbtn\" data-f=\"secteur\" data-v=\"culture\" aria-pressed=\"false\">Culture<\/button><button class=\"rz-fbtn\" data-f=\"secteur\" data-v=\"communication\" aria-pressed=\"false\">Communication<\/button><\/div><div class=\"rz-frow\"><span class=\"rz-flabel\">Service<\/span><button class=\"rz-fbtn is-active\" data-f=\"prest\" data-v=\"all\" aria-pressed=\"true\">All<\/button><button class=\"rz-fbtn\" data-f=\"prest\" data-v=\"journey-to-ai\" aria-pressed=\"false\">Journey to AI<\/button><button class=\"rz-fbtn\" data-f=\"prest\" data-v=\"ai-foundation\" aria-pressed=\"false\">AI Foundation<\/button><button class=\"rz-fbtn\" data-f=\"prest\" data-v=\"adoption\" aria-pressed=\"false\">Adoption programme<\/button><button class=\"rz-fbtn\" data-f=\"prest\" data-v=\"formation\" aria-pressed=\"false\">Training<\/button><button class=\"rz-fbtn\" data-f=\"prest\" data-v=\"integration\" aria-pressed=\"false\">Integration<\/button><button class=\"rz-fbtn\" data-f=\"prest\" data-v=\"video\" aria-pressed=\"false\">Video<\/button><\/div><\/div><p class=\"rz-count\" aria-live=\"polite\"><\/p>\n    <div class=\"rz-grid\"><a class=\"rz-card\" href=\"https:\/\/www.prismia.ch\/en\/case-studies\/kyos-journey-to-ai\/\" data-secteur=\"cybersecurite\" data-prestation=\"journey-to-ai\"><div class=\"rz-card-top\"><img decoding=\"async\" class=\"rz-card-logo\" src=\"https:\/\/www.prismia.ch\/wp-content\/uploads\/2026\/07\/kyos-logo-noir-officiel.png\" alt=\"Logo Kyos\" width=\"120\" height=\"40\"><span class=\"rz-card-arrow\"><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><\/span><\/div><div class=\"rz-card-tags\"><span class=\"rz-tag\">Cybersecurity<\/span><span class=\"rz-tag\">Geneva<\/span><span class=\"rz-tag\">Journey to AI<\/span><\/div><h2 class=\"rz-card-title\">A vision, but how do you get there with AI?<\/h2><p class=\"rz-card-desc\">From scattered AI initiatives to a prioritised roadmap: around a hundred opportunities identified, fifteen quick wins started, 340+ processes already automated.<\/p><span class=\"rz-card-cta\">Read the case study <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><\/span><\/a><div class=\"rz-card rz-card-soon\" data-secteur=\"cybersecurite\" data-prestation=\"ai-foundation\"><div class=\"rz-card-tags\"><span class=\"rz-tag\">Cybersecurity<\/span><span class=\"rz-tag\">AI Foundation<\/span><\/div><h3 class=\"rz-card-title\">Industrialising AI after the framing<\/h3><p class=\"rz-card-desc\">AI governance, on premise local agents and document RAG: moving from roadmap to scale.<\/p><span class=\"rz-soon-foot\">Case study coming<\/span><\/div><div class=\"rz-card rz-card-soon\" data-secteur=\"family-office\" data-prestation=\"journey-to-ai\"><div class=\"rz-card-tags\"><span class=\"rz-tag\">Family office<\/span><span class=\"rz-tag\">Journey to AI<\/span><\/div><h3 class=\"rz-card-title\">Framing AI for a family office<\/h3><p class=\"rz-card-desc\">From a shared vision to a prioritised AI roadmap.<\/p><span class=\"rz-soon-foot\">Case study coming<\/span><\/div><div class=\"rz-card rz-card-soon\" data-secteur=\"family-office\" data-prestation=\"ai-foundation\"><div class=\"rz-card-tags\"><span class=\"rz-tag\">Family office<\/span><span class=\"rz-tag\">AI Foundation<\/span><\/div><h3 class=\"rz-card-title\">Structuring AI for a single family office<\/h3><p class=\"rz-card-desc\">Setting up lasting AI governance at the scale of a wealth structure.<\/p><span class=\"rz-soon-foot\">Case study coming<\/span><\/div><div class=\"rz-card rz-card-soon\" data-secteur=\"family-office\" data-prestation=\"formation\"><div class=\"rz-card-tags\"><span class=\"rz-tag\">Family office<\/span><span class=\"rz-tag\">Training<\/span><\/div><h3 class=\"rz-card-title\">Training a family office's teams<\/h3><p class=\"rz-card-desc\">Getting confident with everyday AI uses.<\/p><span class=\"rz-soon-foot\">Case study coming<\/span><\/div><div class=\"rz-card rz-card-soon\" data-secteur=\"family-office\" data-prestation=\"formation\"><div class=\"rz-card-tags\"><span class=\"rz-tag\">Family office<\/span><span class=\"rz-tag\">Business and technical training<\/span><\/div><h3 class=\"rz-card-title\">Equipping business and technical teams<\/h3><p class=\"rz-card-desc\">Microsoft Copilot for everyone, AI assisted IT administration for technical profiles.<\/p><span class=\"rz-soon-foot\">Case study coming<\/span><\/div><div class=\"rz-card rz-card-soon\" data-secteur=\"public\" data-prestation=\"journey-to-ai\"><div class=\"rz-card-tags\"><span class=\"rz-tag\">Public sector<\/span><span class=\"rz-tag\">Journey to AI<\/span><\/div><h3 class=\"rz-card-title\">A tailored Journey to AI for the public sector<\/h3><p class=\"rz-card-desc\">Prioritising a public body's AI uses, with its constraints in mind.<\/p><span class=\"rz-soon-foot\">Case study coming<\/span><\/div><div class=\"rz-card rz-card-soon\" data-secteur=\"public\" data-prestation=\"adoption\"><div class=\"rz-card-tags\"><span class=\"rz-tag\">Public sector<\/span><span class=\"rz-tag\">Adoption programme<\/span><\/div><h3 class=\"rz-card-title\">Rolling out AI in a public service<\/h3><p class=\"rz-card-desc\">Copilot training and business analysis to equip teams at scale.<\/p><span class=\"rz-soon-foot\">Case study coming<\/span><\/div><div class=\"rz-card rz-card-soon\" data-secteur=\"public\" data-prestation=\"journey-to-ai\"><div class=\"rz-card-tags\"><span class=\"rz-tag\">Public sector<\/span><span class=\"rz-tag\">AI support<\/span><\/div><h3 class=\"rz-card-title\">Guiding a public institution towards AI<\/h3><p class=\"rz-card-desc\">Establishing first AI uses in a demanding setting.<\/p><span class=\"rz-soon-foot\">Case study coming<\/span><\/div><div class=\"rz-card rz-card-soon\" data-secteur=\"public\" data-prestation=\"journey-to-ai\"><div class=\"rz-card-tags\"><span class=\"rz-tag\">Public administration<\/span><span class=\"rz-tag\">Journey to AI<\/span><\/div><h3 class=\"rz-card-title\">A municipality adopts AI<\/h3><p class=\"rz-card-desc\">A tailored framing to prioritise use cases and bring teams on board.<\/p><span class=\"rz-soon-foot\">Case study coming<\/span><\/div><div class=\"rz-card rz-card-soon\" data-secteur=\"asso\" data-prestation=\"formation\"><div class=\"rz-card-tags\"><span class=\"rz-tag\">Association<\/span><span class=\"rz-tag\">Training and workshops<\/span><\/div><h3 class=\"rz-card-title\">Equipping a non profit's managers<\/h3><p class=\"rz-card-desc\">Copilot Advanced and building first business assistants in workshops.<\/p><span class=\"rz-soon-foot\">Case study coming<\/span><\/div><div class=\"rz-card rz-card-soon\" data-secteur=\"asso\" data-prestation=\"integration\"><div class=\"rz-card-tags\"><span class=\"rz-tag\">Association<\/span><span class=\"rz-tag\">Integration<\/span><\/div><h3 class=\"rz-card-title\">Integrating an AI driven business application<\/h3><p class=\"rz-card-desc\">Project management, AI expertise and business analysis for a non profit.<\/p><span class=\"rz-soon-foot\">Case study coming<\/span><\/div><div class=\"rz-card rz-card-soon\" data-secteur=\"culture\" data-prestation=\"journey-to-ai\"><div class=\"rz-card-tags\"><span class=\"rz-tag\">Culture<\/span><span class=\"rz-tag\">AI support<\/span><\/div><h3 class=\"rz-card-title\">AI for a cultural institution<\/h3><p class=\"rz-card-desc\">Exploring concrete uses, from back office to audience relations.<\/p><span class=\"rz-soon-foot\">Case study coming<\/span><\/div><div class=\"rz-card rz-card-soon\" data-secteur=\"asso\" data-prestation=\"integration\"><div class=\"rz-card-tags\"><span class=\"rz-tag\">Professional federation<\/span><span class=\"rz-tag\">E-learning AI project<\/span><\/div><h3 class=\"rz-card-title\">Designing an AI augmented online course<\/h3><p class=\"rz-card-desc\">Building and integrating an e-learning programme enriched with AI.<\/p><span class=\"rz-soon-foot\">Case study coming<\/span><\/div><div class=\"rz-card rz-card-soon\" data-secteur=\"communication\" data-prestation=\"video\"><div class=\"rz-card-tags\"><span class=\"rz-tag\">Communication<\/span><span class=\"rz-tag\">AI video<\/span><\/div><h3 class=\"rz-card-title\">Producing a video with AI end to end<\/h3><p class=\"rz-card-desc\">Our turnkey AI video solution, from script to edit.<\/p><span class=\"rz-soon-foot\">Case study coming<\/span><\/div><\/div>\n    <div class=\"rz-cta\"><a href=\"https:\/\/www.prismia.ch\/en\/contact\/\">Discuss your project <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><\/a><\/div>\n  <\/div>\n<\/section>\n<script>\n(function(){\n  var root=document.querySelector('.rz-realisations');\n  if(!root)return;\n  var state={secteur:'all',prest:'all'};\n  var btns=root.querySelectorAll('.rz-fbtn');\n  var cards=root.querySelectorAll('.rz-grid > .rz-card');\n  var count=root.querySelector('.rz-count');\n  function label(n){ return n===0?'No case study for this filter':(n+(n>1?' case studies':' case study')); }\n  function apply(){\n    var n=0;\n    cards.forEach(function(c){\n      var okS=state.secteur==='all'||c.getAttribute('data-secteur')===state.secteur;\n      var okP=state.prest==='all'||c.getAttribute('data-prestation')===state.prest;\n      var show=okS&&okP; c.style.display=show?'':'none'; if(show)n++;\n    });\n    if(count)count.textContent=label(n);\n  }\n  btns.forEach(function(b){\n    b.addEventListener('click',function(){\n      var f=b.getAttribute('data-f'),v=b.getAttribute('data-v'); state[f]=v;\n      root.querySelectorAll('.rz-fbtn[data-f=\"'+f+'\"]').forEach(function(x){\n        var on=x===b; x.classList.toggle('is-active',on); x.setAttribute('aria-pressed',on?'true':'false');\n      });\n      apply();\n    });\n  });\n  apply();\n})();\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-eh10004 e-flex e-con-full pia-wrap pia-footer e-con e-parent\" data-id=\"eh10004\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ef10000 elementor-widget elementor-widget-html\" data-id=\"ef10000\" 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\/case-studies\/\">Case studies<\/a>\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\/local-pii-filter\/\">Local PII Filter<\/a>\n          <a href=\"https:\/\/www.prismia.ch\/en\/bullshitometer\/\">Bullshitometer<\/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-ef10001 elementor-widget elementor-widget-html\" data-id=\"ef10001\" 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-ef10002 elementor-widget elementor-widget-html\" data-id=\"ef10002\" 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-eh10005 e-flex e-con-full pia-wrap pia-js e-con e-parent\" data-id=\"eh10005\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ew10009 elementor-widget elementor-widget-html\" data-id=\"ew10009\" 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":"","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_yoast_wpseo_focuskw":"AI case studies","_yoast_wpseo_title":"AI case studies: our client projects in Switzerland | PrismIA","_yoast_wpseo_metadesc":"PrismIA's AI case studies: real projects with Swiss organisations, from diagnosis to implementation. No overselling.","_yoast_wpseo_linkdex":"","_yoast_wpseo_content_score":"","_elementor_version":"4.2.0","_elementor_pro_version":"4.2.0","_elementor_css":null,"footnotes":""},"class_list":["post-4547","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>AI case studies: our client projects in Switzerland | PrismIA<\/title>\n<meta name=\"description\" content=\"PrismIA&#039;s AI case studies: real projects with Swiss organisations, from diagnosis to implementation. No overselling.\" \/>\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\/case-studies\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AI case studies: our client projects in Switzerland | PrismIA\" \/>\n<meta property=\"og:description\" content=\"PrismIA&#039;s AI case studies: real projects with Swiss organisations, from diagnosis to implementation. No overselling.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.prismia.ch\/en\/case-studies\/\" \/>\n<meta property=\"og:site_name\" content=\"PrismIA\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-21T12:48:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.prismia.ch\/wp-content\/uploads\/2026\/07\/prismia-og-default.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/case-studies\\\/\",\"url\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/case-studies\\\/\",\"name\":\"AI case studies: our client projects in Switzerland | PrismIA\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/#website\"},\"datePublished\":\"2026-07-20T21:37:17+00:00\",\"dateModified\":\"2026-07-21T12:48:48+00:00\",\"description\":\"PrismIA's AI case studies: real projects with Swiss organisations, from diagnosis to implementation. No overselling.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/case-studies\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.prismia.ch\\\/en\\\/case-studies\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/case-studies\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/home\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Case studies\"}]},{\"@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":"AI case studies: our client projects in Switzerland | PrismIA","description":"PrismIA's AI case studies: real projects with Swiss organisations, from diagnosis to implementation. No overselling.","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\/case-studies\/","og_locale":"en_US","og_type":"article","og_title":"AI case studies: our client projects in Switzerland | PrismIA","og_description":"PrismIA's AI case studies: real projects with Swiss organisations, from diagnosis to implementation. No overselling.","og_url":"https:\/\/www.prismia.ch\/en\/case-studies\/","og_site_name":"PrismIA","article_modified_time":"2026-07-21T12:48:48+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.prismia.ch\/wp-content\/uploads\/2026\/07\/prismia-og-default.png","type":"image\/png"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.prismia.ch\/en\/case-studies\/","url":"https:\/\/www.prismia.ch\/en\/case-studies\/","name":"AI case studies: our client projects in Switzerland | PrismIA","isPartOf":{"@id":"https:\/\/www.prismia.ch\/en\/#website"},"datePublished":"2026-07-20T21:37:17+00:00","dateModified":"2026-07-21T12:48:48+00:00","description":"PrismIA's AI case studies: real projects with Swiss organisations, from diagnosis to implementation. No overselling.","breadcrumb":{"@id":"https:\/\/www.prismia.ch\/en\/case-studies\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.prismia.ch\/en\/case-studies\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.prismia.ch\/en\/case-studies\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.prismia.ch\/en\/home\/"},{"@type":"ListItem","position":2,"name":"Case studies"}]},{"@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\/4547","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=4547"}],"version-history":[{"count":1,"href":"https:\/\/www.prismia.ch\/en\/wp-json\/wp\/v2\/pages\/4547\/revisions"}],"predecessor-version":[{"id":4549,"href":"https:\/\/www.prismia.ch\/en\/wp-json\/wp\/v2\/pages\/4547\/revisions\/4549"}],"wp:attachment":[{"href":"https:\/\/www.prismia.ch\/en\/wp-json\/wp\/v2\/media?parent=4547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}