{"id":4548,"date":"2026-07-20T22:35:51","date_gmt":"2026-07-20T21:35:51","guid":{"rendered":"https:\/\/www.prismia.ch\/case-studies\/kyos-journey-to-ai\/"},"modified":"2026-07-21T11:43:02","modified_gmt":"2026-07-21T10:43:02","slug":"kyos-journey-to-ai","status":"publish","type":"page","link":"https:\/\/www.prismia.ch\/en\/case-studies\/kyos-journey-to-ai\/","title":{"rendered":"Kyos: a vision, but how do you get there with AI?"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4548\" class=\"elementor elementor-4548 elementor-4519\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ek10001 e-flex e-con-full pia-wrap pia-nav e-con e-parent\" data-id=\"ek10001\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ez10001 elementor-widget elementor-widget-html\" data-id=\"ez10001\" 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-ez10002 elementor-widget elementor-widget-html\" data-id=\"ez10002\" 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-ek10002 e-flex e-con-full pia-wrap pia-hero e-con e-parent\" data-id=\"ek10002\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ez10003 elementor-widget elementor-widget-html\" data-id=\"ez10003\" 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.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}\n.hero-actions .btn{margin-top:0}\n.rz-hero-grid{display:grid;grid-template-columns:2fr 1fr;gap:clamp(24px,3vw,52px);align-items:center;margin-top:22px}\n@media(max-width:900px){.rz-hero-grid{grid-template-columns:1fr;gap:28px}}\n.rz-client-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:clamp(32px,3vw,44px) 28px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;text-align:center;box-shadow:var(--sh-md,0 12px 32px -12px rgba(10,15,46,.12))}\n.rz-client-card .rz-client-lab{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--a,#2C55FB)}\n.rz-client-card img{width:100%;max-width:220px;height:auto;display:block}\n.rz-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:10px 0 36px}\n.rz-stat{background:#fff;border:1px solid var(--border);border-radius:var(--radius-card,16px);padding:20px 18px}\n.rz-num{font-family:var(--mono);font-size:clamp(24px,2.6vw,32px);font-weight:700;color:var(--p,#1929DD);letter-spacing:-.01em}\n.rz-lab{font-size:13px;color:var(--muted);margin-top:6px;line-height:1.45}\n@media(max-width:900px){.rz-stats{grid-template-columns:repeat(2,1fr)}}\n.rz-quote{border-left:3px solid var(--a,#2C55FB);background:var(--pale);border-radius:0 var(--radius-card,16px) var(--radius-card,16px) 0;padding:26px 30px;max-width:72ch}\n.rz-quote p{margin:0;font-size:17.5px;line-height:1.65;color:var(--ink)}\n<\/style>\n<section class=\"page-hero\">\n  <div class=\"container\">\n    <span class=\"crumb\"><a href=\"https:\/\/www.prismia.ch\/en\/\">Home<\/a> \/ Case studies \/ Kyos<\/span>\n    <div class=\"rz-hero-grid\">\n      <div>\n        <h1>Kyos: a vision, <em>but how do you get there with AI?<\/em><\/h1>\n        <p class=\"lead\">Kyos, a Geneva-based cybersecurity company of 70 people, had a clear strategy for 2030. AI is not the goal, but a lever serving that vision: evolving professions and ways of working to serve clients better. Initiatives already existed across the teams; they needed framing and prioritising. PrismIA ran an extended Journey to AI audit, with some fifteen interviews over three weeks: around a hundred opportunities identified and fifteen quick wins started immediately. Today, AI governance is in place, all 70 employees are trained, three structural projects are under way and more than 340 processes have already been automated across the IT system.<\/p>\n        <div class=\"badges\">\n          <span class=\"badge\">Cybersecurity \u00b7 Geneva<\/span>\n          <span class=\"badge\">70 employees<\/span>\n          <span class=\"badge\">Journey to AI, extended<\/span>\n          <span class=\"badge\">3 months<\/span>\n        <\/div>\n        <div class=\"hero-actions\">\n          <a class=\"btn btn-primary\" href=\"https:\/\/www.prismia.ch\/en\/audit-consulting\/journey-to-ai\/\">Discover Journey to AI <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\"><path d=\"M3 8h10M9 4l4 4-4 4\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/a>\n          <a class=\"btn btn-ghost\" href=\"#results\">See the results \u2193<\/a>\n        <\/div>\n      <\/div>\n      <aside class=\"rz-client-card\">\n        <span class=\"rz-client-lab\">Client case study<\/span>\n        <img decoding=\"async\" src=\"https:\/\/www.prismia.ch\/wp-content\/uploads\/2026\/07\/kyos-logo-noir-officiel.png\" alt=\"Kyos logo, cybersecurity company in Geneva\" width=\"220\" height=\"73\">\n      <\/aside>\n    <\/div>\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-ek10003 e-flex e-con-full pia-wrap pia-start e-con e-parent\" data-id=\"ek10003\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ez10004 elementor-widget elementor-widget-html\" data-id=\"ez10004\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"section\">\n  <div class=\"container\">\n    <div class=\"section-head\"><span class=\"overline\">The starting point<\/span><h2>A clear strategy, <em>initiatives to frame<\/em><\/h2><\/div>\n    <div class=\"split\">\n      <div>\n        <p class=\"lead\">The corporate strategy was set, the 2030 vision established. A broad vision in which AI is not the end but a lever: a way to evolve professions and ways of working, in service of one constant goal, the quality delivered to clients. Several AI initiatives were already running across the teams. What was missing: a shared framework to prioritise them, and dedicated expertise on the AI building blocks. With one non-negotiable requirement for a cybersecurity company: protecting sensitive information and data sovereignty, its own and its clients'.<\/p>\n        <ul class=\"check-list\" style=\"margin-top:24px\">\n          <li>A corporate strategy for 2030 already in place<\/li>\n          <li>AI seen as a lever for that vision, not an end in itself<\/li>\n          <li>AI initiatives running in the teams, without a shared framework<\/li>\n          <li>A need for expertise on the AI building blocks<\/li>\n          <li>Security and data sovereignty: a prerequisite, not an option<\/li>\n        <\/ul>\n      <\/div>\n      <div class=\"split-media\">\n        <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.prismia.ch\/wp-content\/uploads\/2026\/07\/kyos-priorisation.jpg\" alt=\"Prioritising the AI opportunities identified during Kyos' Journey to AI audit\" width=\"1408\" height=\"792\" loading=\"lazy\" style=\"border-radius:var(--radius-card,16px);border:1px solid var(--border);width:100%;height:auto\">\n      <\/div>\n    <\/div>\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-ek10004 e-flex e-con-full pia-wrap pia-mission e-con e-parent\" data-id=\"ek10004\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ez10005 elementor-widget elementor-widget-html\" data-id=\"ez10005\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"section bg-pale\">\n  <div class=\"container\">\n    <div class=\"section-head\"><span class=\"overline\">The engagement<\/span><h2>An extended Journey to AI, <em>calibrated to fit<\/em><\/h2><\/div>\n    <p class=\"lead\" style=\"max-width:72ch\">The engagement ran over three months: some fifteen interviews across three weeks, one month of analysis, then the final presentation built on the three deliverables of the approach (audit report, opportunity matrix, executive presentation).<\/p>\n    <div class=\"method-grid\" style=\"margin-top:34px\">\n      <div class=\"method-step\"><div class=\"method-num\">01<\/div><h3>Kickoff<\/h3><p>Scope, stakeholders and objectives, aligned with management.<\/p><\/div>\n      <div class=\"method-step\"><div class=\"method-num\">02<\/div><h3>Audit<\/h3><p>Some fifteen interviews over three weeks, in direct contact with the teams and their actual practices.<\/p><\/div>\n      <div class=\"method-step\"><div class=\"method-num\">03<\/div><h3>Evaluation<\/h3><p>One month of analysis: maturity assessed across six axes, opportunities scored, ROI estimated for each.<\/p><\/div>\n      <div class=\"method-step\"><div class=\"method-num\">04<\/div><h3>Presentation<\/h3><p>A prioritised roadmap, presented to management. Kyos then subscribed to the AI Foundation programme for implementation.<\/p><\/div>\n    <\/div>\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-ek10005 e-flex e-con-full pia-wrap pia-results e-con e-parent\" data-id=\"ek10005\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ez10006 elementor-widget elementor-widget-html\" data-id=\"ez10006\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"section\" id=\"results\">\n  <div class=\"container\">\n    <div class=\"section-head\"><span class=\"overline\">The results<\/span><h2>From deliverables <em>to action<\/em><\/h2><\/div>\n    <div class=\"rz-stats\">\n      <div class=\"rz-stat\"><div class=\"rz-num\">~100<\/div><div class=\"rz-lab\">opportunities identified and scored<\/div><\/div>\n      <div class=\"rz-stat\"><div class=\"rz-num\">15<\/div><div class=\"rz-lab\">quick wins started immediately<\/div><\/div>\n      <div class=\"rz-stat\"><div class=\"rz-num\">3<\/div><div class=\"rz-lab\">structural projects under way<\/div><\/div>\n      <div class=\"rz-stat\"><div class=\"rz-num\">340+<\/div><div class=\"rz-lab\">processes already automated<\/div><\/div>\n    <\/div>\n    <p style=\"max-width:72ch;font-size:14.5px;color:var(--muted);margin:0 0 26px\">Yes, more than 340: that figure is not a typo. Driven by the commitment of Kyos' teams, this automation effort has been moving steadily since the AI Foundation programme began; we will detail it in an upcoming case study.<\/p>\n    <p class=\"lead\" style=\"max-width:72ch\">Each opportunity was classified by maturity level, identified gaps and Kyos' strategic objectives, then assessed for feasibility and risk, including security and data protection. All are prioritised, with an estimated ROI: management decides on solid grounds and tracks implementation over time.<\/p>\n    <ul class=\"check-list\" style=\"margin-top:24px;max-width:72ch\">\n      <li>AI governance established from the first phase, with a regular cadence<\/li>\n      <li>70 employees trained on the tools in place, then on new tools and good practices<\/li>\n      <li>Coordinated implementation: technical teams trained to automate their own tasks, co-learning on real cases<\/li>\n      <li>Three structural projects under way, and more than 340 processes already automated across the IT system, notably with n8n<\/li>\n    <\/ul>\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-ek10006 e-flex e-con-full pia-wrap pia-diff e-con e-parent\" data-id=\"ek10006\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ez10007 elementor-widget elementor-widget-html\" data-id=\"ez10007\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"section bg-pale\">\n  <div class=\"container\">\n    <div class=\"section-head\"><span class=\"overline\">What made the difference<\/span><h2>A partnership, <em>not a siloed service<\/em><\/h2><\/div>\n    <div class=\"rz-quote\">\n      <p>Technical teams eager to learn, aware of what is at stake, carried by strong cross-team leadership. Kyos wanted to frame, share good practices and keep progressing: the success of this engagement owes as much to that commitment as to the method.<\/p>\n    <\/div>\n    <p class=\"lead\" style=\"max-width:72ch;margin-top:26px\">The other common ground: security. PrismIA designs its work with data sovereignty in mind: local tools where relevant, Swiss FADP compliance, technology choices also assessed on risk. For a company whose business is protecting its clients, this was not a sales argument; it was the entry condition.<\/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-ek10007 e-flex e-con-full pia-wrap pia-faq e-con e-parent\" data-id=\"ek10007\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ez10008 elementor-widget elementor-widget-html\" data-id=\"ez10008\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"section bg-pale2\">\n  <div class=\"container\">\n    <div class=\"section-head\"><span class=\"overline\">Frequently asked questions<\/span><h2>What this case <em>tells you<\/em><\/h2><\/div>\n    <div class=\"faq-wrap\">\n      <details class=\"faq-item\"><summary>How long does a Journey to AI audit take? <span class=\"faq-plus\"><\/span><\/summary><div class=\"faq-a\">The standard format takes 4 to 6 weeks. For Kyos, an extended version ran over 3 months with some fifteen interviews: the approach is calibrated to the size and needs of the organisation.<\/div><\/details>\n      <details class=\"faq-item\"><summary>What do you actually get? <span class=\"faq-plus\"><\/span><\/summary><div class=\"faq-a\">A prioritised roadmap, a matrix of scored opportunities with an estimated ROI for each, and an executive presentation for management.<\/div><\/details>\n      <details class=\"faq-item\"><summary>Is it suitable for an SME? <span class=\"faq-plus\"><\/span><\/summary><div class=\"faq-a\">Yes: Kyos is a 70-person SME, and the format adapts to smaller structures as well as larger organisations.<\/div><\/details>\n      <details class=\"faq-item\"><summary>What if we already use AI? <span class=\"faq-plus\"><\/span><\/summary><div class=\"faq-a\">That was exactly Kyos' case: the audit frames, prioritises and scales what already exists, without starting from scratch.<\/div><\/details>\n    <\/div>\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-ek10008 e-flex e-con-full pia-wrap pia-cta e-con e-parent\" data-id=\"ek10008\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ez10009 elementor-widget elementor-widget-html\" data-id=\"ez10009\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"section\" style=\"padding-top:64px\">\n  <div class=\"container\">\n    <div class=\"cta-panel\">\n      <canvas id=\"glCta\" aria-hidden=\"true\"><\/canvas>\n      <span class=\"overline\" style=\"color:var(--lav)\">And you?<\/span>\n      <h2>Your organisation has its own <em>AI roadmap to write<\/em><\/h2>\n      <p>Journey to AI: four to six weeks in standard format, tailored when your context requires it.<\/p>\n      <a class=\"btn btn-light\" href=\"https:\/\/www.prismia.ch\/en\/audit-consulting\/journey-to-ai\/\">Discover Journey to AI<\/a>\n    <\/div>\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-ek10009 e-flex e-con-full pia-wrap pia-footer e-con e-parent\" data-id=\"ek10009\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ez2000 elementor-widget elementor-widget-html\" data-id=\"ez2000\" 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-ez2001 elementor-widget elementor-widget-html\" data-id=\"ez2001\" 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-ez2002 elementor-widget elementor-widget-html\" data-id=\"ez2002\" 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-ek10010 e-flex e-con-full pia-wrap pia-js e-con e-parent\" data-id=\"ek10010\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ez10010 elementor-widget elementor-widget-html\" data-id=\"ez10010\" 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 class=\"elementor-element elementor-element-ez10011 elementor-widget elementor-widget-html\" data-id=\"ez10011\" 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 type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"FAQPage\", \"mainEntity\": [{\"@type\": \"Question\", \"name\": \"How long does a Journey to AI audit take?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"The standard format takes 4 to 6 weeks. For Kyos, an extended version ran over 3 months with some fifteen interviews: the approach is calibrated to the size and needs of the organisation.\"}}, {\"@type\": \"Question\", \"name\": \"What do you actually get?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"A prioritised roadmap, a matrix of scored opportunities with an estimated ROI for each, and an executive presentation for management.\"}}, {\"@type\": \"Question\", \"name\": \"Is it suitable for an SME?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Yes: Kyos is a 70-person SME, and the format adapts to smaller structures as well as larger organisations.\"}}, {\"@type\": \"Question\", \"name\": \"What if we already use AI?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"That was exactly Kyos' case: the audit frames, prioritises and scales what already exists, without starting from scratch.\"}}]}<\/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":4547,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_yoast_wpseo_focuskw":"AI audit case study","_yoast_wpseo_title":"Kyos case study: Journey to AI audit for a Geneva SME | PrismIA","_yoast_wpseo_metadesc":"How Kyos (cybersecurity, Geneva, 70 people) turned its 2030 vision into an AI roadmap: 100 opportunities, 15 quick wins, 340+ automated processes.","_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-4548","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>Kyos case study: Journey to AI audit for a Geneva SME | PrismIA<\/title>\n<meta name=\"description\" content=\"How Kyos (cybersecurity, Geneva, 70 people) turned its 2030 vision into an AI roadmap: 100 opportunities, 15 quick wins, 340+ automated processes.\" \/>\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\/kyos-journey-to-ai\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kyos case study: Journey to AI audit for a Geneva SME | PrismIA\" \/>\n<meta property=\"og:description\" content=\"How Kyos (cybersecurity, Geneva, 70 people) turned its 2030 vision into an AI roadmap: 100 opportunities, 15 quick wins, 340+ automated processes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.prismia.ch\/en\/case-studies\/kyos-journey-to-ai\/\" \/>\n<meta property=\"og:site_name\" content=\"PrismIA\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-21T10:43:02+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\\\/kyos-journey-to-ai\\\/\",\"url\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/case-studies\\\/kyos-journey-to-ai\\\/\",\"name\":\"Kyos case study: Journey to AI audit for a Geneva SME | PrismIA\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/#website\"},\"datePublished\":\"2026-07-20T21:35:51+00:00\",\"dateModified\":\"2026-07-21T10:43:02+00:00\",\"description\":\"How Kyos (cybersecurity, Geneva, 70 people) turned its 2030 vision into an AI roadmap: 100 opportunities, 15 quick wins, 340+ automated processes.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/case-studies\\\/kyos-journey-to-ai\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.prismia.ch\\\/en\\\/case-studies\\\/kyos-journey-to-ai\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/case-studies\\\/kyos-journey-to-ai\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/home\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Case studies\",\"item\":\"https:\\\/\\\/www.prismia.ch\\\/en\\\/case-studies\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Kyos: a vision, but how do you get there with AI?\"}]},{\"@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":"Kyos case study: Journey to AI audit for a Geneva SME | PrismIA","description":"How Kyos (cybersecurity, Geneva, 70 people) turned its 2030 vision into an AI roadmap: 100 opportunities, 15 quick wins, 340+ automated processes.","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\/kyos-journey-to-ai\/","og_locale":"en_US","og_type":"article","og_title":"Kyos case study: Journey to AI audit for a Geneva SME | PrismIA","og_description":"How Kyos (cybersecurity, Geneva, 70 people) turned its 2030 vision into an AI roadmap: 100 opportunities, 15 quick wins, 340+ automated processes.","og_url":"https:\/\/www.prismia.ch\/en\/case-studies\/kyos-journey-to-ai\/","og_site_name":"PrismIA","article_modified_time":"2026-07-21T10:43:02+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\/kyos-journey-to-ai\/","url":"https:\/\/www.prismia.ch\/en\/case-studies\/kyos-journey-to-ai\/","name":"Kyos case study: Journey to AI audit for a Geneva SME | PrismIA","isPartOf":{"@id":"https:\/\/www.prismia.ch\/en\/#website"},"datePublished":"2026-07-20T21:35:51+00:00","dateModified":"2026-07-21T10:43:02+00:00","description":"How Kyos (cybersecurity, Geneva, 70 people) turned its 2030 vision into an AI roadmap: 100 opportunities, 15 quick wins, 340+ automated processes.","breadcrumb":{"@id":"https:\/\/www.prismia.ch\/en\/case-studies\/kyos-journey-to-ai\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.prismia.ch\/en\/case-studies\/kyos-journey-to-ai\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.prismia.ch\/en\/case-studies\/kyos-journey-to-ai\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.prismia.ch\/en\/home\/"},{"@type":"ListItem","position":2,"name":"Case studies","item":"https:\/\/www.prismia.ch\/en\/case-studies\/"},{"@type":"ListItem","position":3,"name":"Kyos: a vision, but how do you get there with AI?"}]},{"@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\/4548","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=4548"}],"version-history":[{"count":1,"href":"https:\/\/www.prismia.ch\/en\/wp-json\/wp\/v2\/pages\/4548\/revisions"}],"predecessor-version":[{"id":4552,"href":"https:\/\/www.prismia.ch\/en\/wp-json\/wp\/v2\/pages\/4548\/revisions\/4552"}],"up":[{"embeddable":true,"href":"https:\/\/www.prismia.ch\/en\/wp-json\/wp\/v2\/pages\/4547"}],"wp:attachment":[{"href":"https:\/\/www.prismia.ch\/en\/wp-json\/wp\/v2\/media?parent=4548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}