{"id":7064,"date":"2026-06-16T14:58:55","date_gmt":"2026-06-16T12:58:55","guid":{"rendered":"https:\/\/pixilearn.fr\/?page_id=7064"},"modified":"2026-06-16T14:59:17","modified_gmt":"2026-06-16T12:59:17","slug":"gaelo-relatif-test","status":"publish","type":"page","link":"https:\/\/pixilearn.fr\/en\/gaelo-relatif-test\/","title":{"rendered":"Gaelo Relatif test"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"7064\" class=\"elementor elementor-7064\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3833a20 e-flex e-con-boxed e-con e-parent\" data-id=\"3833a20\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-674fed0 elementor-widget elementor-widget-html\" data-id=\"674fed0\" 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<!--\n================================================================\nGaelO \u2014 PAGE PRODUIT \u2014 EN \u2014 Clinical Trial Imaging Platform\nURL : \/fr\/logiciels\/plateforme-imagerie-essais-cliniques\/\nFor Elementor Pro HTML widget \u2014 Full Width container\nBrand : Pixilib \/ GaelO\n================================================================\n\nSEO :\n  Title (60c) : Plateforme de Gestion d'Imagerie pour Essais Cliniques : GaelO\n  Meta Desc (155c) : Centralize your medical imaging research with GaelO.\n    Orchestration DICOM s\u00e9curis\u00e9e, d\u00e9sidentification automatis\u00e9e et relecture centralis\u00e9e standardis\u00e9e pour les essais cliniques.\n\nVERSION 2 \u2014 Style \"Elementor Pro premium\" (pro designer feel)\n  Hero conserv\u00e9 \u00e0 l'identique. Corps refait en langage Elementor Pro :\n  sections \u00e0 fonds altern\u00e9s, eyebrow texts, shape dividers subtils,\n  compteurs anim\u00e9s, icon boxes, image boxes, feature lists (checkmarks),\n  CTA box mid-page. Palette + typos inchang\u00e9es.\n\nStructure (1 H1 \/ 8 H2 \/ N H3) :\n  H1  : Plateforme de Gestion d'Imagerie pour Essais Cliniques : GaelO   [hero]\n  H2  : Make medical imaging a decisional endpoint\u2026         [intro sticky + checklist]\n  H2  : Pourquoi GaelO is the standard\u2026                          [counters + tabs + criteria table]\n        [TABS] 3\u00d7 H3 \/ [TABLE] 1\u00d7 H3\n  H2  : Tout ce qu'il faut pour g\u00e9rer l'imagerie d'essais cliniques [10 cards]\n  H2  : Modalit\u00e9s d'imagerie support\u00e9es                        [5 cards \/ photos]\n  H2  : A new biomarker: TMTV                               [CTA box mid-page]\n  H2  : Is GaelO for you ?                                  [4 personas]\n  H2  : L'\u00e9cosyst\u00e8me GaelO                                 [3 product image-boxes]\n  H2  : Ready to centralize\u2026                                [final CTA]\n\nMaillage interne :\n  - \"dedicated DICOM viewer\"       \u2192 \/en\/software\/dicom-viewer\/\n  - GaelO Flow (eco card)          \u2192 \/en\/software\/dicom-data-orchestration\/\n  - AI Segmentation (eco + callout)\u2192 \/fr\/algorithmes\/segmentation-imagerie-medicale\/\n  - \"Imaging CRO\"                  \u2192 \/en\/services\/cro-services\/\n\nLiens externes (PubMed \/ NEMA \/ ICH) :\n  target=\"_blank\" rel=\"noopener nofollow\"  \u2014 pas de transmission de jus SEO\n\nNotes :\n  - Le H1 est inclus \u2192 d\u00e9sactiver tout H1 d'Elementor\n  - CTA \"Parler \u00e0 notre \u00e9quipe\" et \"Demander une d\u00e9mo\" \u2192 #contact (\u00e0 remplacer)\n  - JS minimal natif (no jQuery) : tabs, counters, reveal, scroll progress\n  - Mobile First, ARIA, prefers-reduced-motion respect\u00e9\n================================================================\n-->\n\n<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=Maven+Pro:wght@400;500;600;700;800&family=Roboto+Mono:wght@400;500;600&display=swap\" rel=\"stylesheet\">\n\n<style>\n\/* ============================================================\n   GaelO PRODUCT PAGE \u2014 Scoped Styles\n   All rules namespaced under .gaelo-product to avoid leaks.\n   ============================================================ *\/\n.gaelo-product{\n  --teal:#0495A0;\n  --teal-bright:#5DD0DA;\n  --teal-dark:#037a83;\n  --teal-soft:rgba(4,149,160,.12);\n  --orange:#FFBA4D;\n  --orange-soft:rgba(255,186,77,.14);\n  --indigo:#353275;\n  --indigo-bright:#5B57B8;\n  --indigo-soft:rgba(53,50,117,.12);\n  --green:#78E08F;\n  --green-soft:rgba(120,224,143,.14);\n  --slate:#314053;\n  --bg:#F8FAFB;\n  --bg-soft:#F1F4F7;\n  --bg-dark:#0d1b2a;\n  --bg-darker:#081421;\n  --white:#FFFFFF;\n  --text:#1A2332;\n  --muted:#6B7A8F;\n  --border:rgba(49,64,83,.10);\n  --border-strong:rgba(49,64,83,.18);\n  --shadow-sm:0 2px 12px rgba(49,64,83,.06);\n  --shadow-md:0 8px 40px rgba(49,64,83,.12);\n  --shadow-lg:0 24px 80px rgba(49,64,83,.18);\n  --radius-sm:10px;\n  --radius-md:18px;\n  --radius-lg:28px;\n  --radius-xl:36px;\n  --ease:cubic-bezier(.16,1,.3,1);\n  --max-width:1200px;\n  --font-display:'Maven Pro','Helvetica Neue',Arial,sans-serif;\n  --font-mono:'Roboto Mono','SF Mono','Menlo',monospace;\n  font-family:var(--font-display);\n  color:var(--text);\n  line-height:1.65;\n  font-size:17px;\n  -webkit-font-smoothing:antialiased;\n  -moz-osx-font-smoothing:grayscale;\n  \/* contain the full-bleed breakouts (hero \/ final CTA) so they never\n     create a horizontal overflow inside Elementor's HTML widget.\n     overflow-x:clip (not hidden) keeps position:sticky working. *\/\n  overflow-x:clip;\n  max-width:100%;\n}\n.gaelo-product *,\n.gaelo-product *::before,\n.gaelo-product *::after{box-sizing:border-box}\n.gaelo-product .container{\n  max-width:var(--max-width);\n  margin:0 auto;\n  padding:0 clamp(20px,4vw,40px);\n  position:relative;\n}\n\n\/* ============================================================\n   SCROLL PROGRESS BAR\n   ============================================================ *\/\n.gaelo-product .scroll-progress{\n  position:fixed;top:0;left:0;\n  height:2px;width:0%;\n  background:linear-gradient(90deg,var(--teal),var(--indigo),var(--orange));\n  z-index:9999;\n  transition:width .1s linear;\n  pointer-events:none;\n}\n\n\/* ============================================================\n   HERO \u2014 full-width edge-to-edge dark gradient\n   ============================================================ *\/\n.gaelo-product .hero{\n  position:relative;\n  width:100%;\n  margin-left:0;\n  margin-right:0;\n  min-height:90vh;\n  display:flex;flex-direction:column;\n  align-items:center;justify-content:center;\n  text-align:center;\n  overflow:hidden;\n  padding:clamp(100px,12vw,160px) clamp(20px,5vw,80px) clamp(80px,10vw,120px);\n  background:linear-gradient(160deg,#1A3A52 0%,#205B6E 45%,#1E4C5E 75%,#1A4458 100%);\n}\n.gaelo-product .hero-canvas{position:absolute;inset:0;overflow:hidden;pointer-events:none}\n.gaelo-product .hero-orb{\n  position:absolute;border-radius:50%;\n  filter:blur(90px);opacity:.30;\n  animation:gp-drift 18s ease-in-out infinite alternate;\n}\n.gaelo-product .hero-orb.o1{width:620px;height:620px;background:radial-gradient(circle,var(--teal),transparent 70%);top:-180px;left:-160px}\n.gaelo-product .hero-orb.o2{width:520px;height:520px;background:radial-gradient(circle,var(--indigo),transparent 70%);bottom:-150px;right:-140px;animation-duration:22s;animation-delay:-5s}\n.gaelo-product .hero-orb.o3{width:280px;height:280px;background:radial-gradient(circle,var(--orange),transparent 70%);top:25%;right:18%;opacity:.16;animation-duration:14s;animation-delay:-9s}\n@keyframes gp-drift{from{transform:translate(0,0) scale(1)}to{transform:translate(50px,40px) scale(1.12)}}\n\n.gaelo-product .hero-grid{\n  position:absolute;inset:0;pointer-events:none;\n  background-image:\n    linear-gradient(rgba(4,149,160,.07) 1px,transparent 1px),\n    linear-gradient(90deg,rgba(4,149,160,.07) 1px,transparent 1px);\n  background-size:64px 64px;\n  -webkit-mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black,transparent);\n  mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black,transparent);\n}\n\n.gaelo-product .hero-content{\n  position:relative;z-index:2;\n  max-width:1080px;width:100%;\n  margin-left:auto;margin-right:auto;\n  box-sizing:border-box;\n  display:flex;flex-direction:column;align-items:center;\n}\n\n.gaelo-product .hero-badge{\n  display:inline-flex;align-items:center;gap:10px;\n  padding:7px 18px;border-radius:50px;\n  border:1px solid rgba(4,149,160,.4);\n  background:rgba(4,149,160,.12);\n  color:var(--teal-bright);\n  font-family:var(--font-mono);font-size:.72rem;font-weight:500;\n  letter-spacing:.18em;text-transform:uppercase;\n  margin-bottom:32px;\n  animation:gp-fadeUp .9s var(--ease) .2s both;\n}\n.gaelo-product .hero-badge-dot{\n  width:6px;height:6px;border-radius:50%;background:var(--teal);\n  box-shadow:0 0 12px var(--teal);\n  animation:gp-pulse 2s ease infinite;\n}\n@keyframes gp-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.6);opacity:.5}}\n\n.gaelo-product .hero-title{\n  font-size:clamp(2.2rem,6vw,4.8rem);\n  font-weight:800;\n  line-height:1.1;\n  letter-spacing:-.035em;\n  color:var(--white);\n  margin:0 0 24px;\n  max-width:1000px;\n  margin-left:auto;margin-right:auto;\n}\n.gaelo-product .hero-title .word{\n  display:inline-block;\n  opacity:0;transform:translateY(40px);\n  animation:gp-titleUp .9s var(--ease) forwards;\n}\n.gaelo-product .hero-title .word.w1{animation-delay:.35s}\n.gaelo-product .hero-title .word.w2{animation-delay:.45s}\n.gaelo-product .hero-title .word.w3{animation-delay:.55s}\n.gaelo-product .hero-title .word.w4{animation-delay:.65s}\n.gaelo-product .hero-title .word.w5{animation-delay:.75s}\n.gaelo-product .hero-title .word.w6{animation-delay:.85s}\n.gaelo-product .hero-title .word.w7{animation-delay:.95s}\n@keyframes gp-titleUp{to{opacity:1;transform:translateY(0)}}\n.gaelo-product .hero-title .accent{\n  background:linear-gradient(90deg,var(--teal-bright),var(--green));\n  -webkit-background-clip:text;-webkit-text-fill-color:transparent;\n  background-clip:text;color:transparent;\n}\n.gaelo-product .hero-title .accent-o{color:var(--orange)}\n\n.gaelo-product .hero-sub{\n  font-size:clamp(1.05rem,1.5vw,1.25rem);\n  font-weight:300;color:rgba(255,255,255,.7);\n  max-width:680px;margin:0 auto 48px;\n  animation:gp-fadeUp .9s var(--ease) 1.1s both;\n}\n\n.gaelo-product .hero-actions{\n  display:flex;align-items:center;justify-content:center;\n  gap:14px;flex-wrap:wrap;margin-bottom:64px;\n  animation:gp-fadeUp .9s var(--ease) 1.3s both;\n}\n\n\/* hero mockup *\/\n.gaelo-product .hero-mockup{\n  position:relative;\n  max-width:920px;\n  width:100%;\n  margin:0 auto;\n  align-self:center;\n  border-radius:16px;\n  overflow:hidden;\n  box-shadow:0 40px 100px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.08);\n  animation:gp-mockup 1.2s var(--ease) 1.5s both;\n}\n@keyframes gp-mockup{from{opacity:0;transform:translateY(60px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}\n\/* Large screens : scale up the dashboard mockup so it doesn't look tiny on big monitors *\/\n@media (min-width:1900px){\n  .gaelo-product .hero-content{max-width:1400px}\n  .gaelo-product .hero-mockup{max-width:1280px}\n  .gaelo-product .hero-title{max-width:1200px;font-size:clamp(2.2rem,3.5vw,5.4rem)}\n  .gaelo-product .hero-sub{max-width:820px;font-size:1.35rem}\n}\n@media (min-width:2600px){\n  .gaelo-product .hero-content{max-width:1700px}\n  .gaelo-product .hero-mockup{max-width:1500px}\n  .gaelo-product .hero-title{max-width:1500px}\n}\n.gaelo-product .hero-mockup-bar{\n  display:flex;align-items:center;gap:8px;\n  padding:14px 18px;\n  background:#1a2332;\n  border-bottom:1px solid rgba(255,255,255,.06);\n}\n.gaelo-product .hero-mockup-bar span{\n  width:11px;height:11px;border-radius:50%;\n  background:rgba(255,255,255,.16);\n}\n.gaelo-product .hero-mockup-bar span:nth-child(1){background:#ff5f57}\n.gaelo-product .hero-mockup-bar span:nth-child(2){background:#febc2e}\n.gaelo-product .hero-mockup-bar span:nth-child(3){background:#28c840}\n.gaelo-product .hero-mockup-url{\n  margin-left:18px;\n  padding:5px 14px;\n  background:rgba(255,255,255,.05);\n  border-radius:6px;\n  font-family:var(--font-mono);font-size:.72rem;\n  color:rgba(255,255,255,.45);\n  flex:1;text-align:center;max-width:340px;\n}\n\/* Mobile : hide the URL text in the mockup bar to keep things clean on small screens *\/\n@media (max-width:680px){\n  .gaelo-product .hero-mockup-url{display:none}\n}\n.gaelo-product .hero-mockup img{\n  display:block;width:100%;height:auto;\n}\n\n.gaelo-product .hero-scroll{\n  \/* In normal flow inside .hero-content : guarantees same horizontal center axis\n     as every other hero element (badge, h1, mockup) without scrollbar bugs *\/\n  margin:clamp(36px,5vw,64px) auto 0;\n  display:flex;flex-direction:column;align-items:center;gap:10px;\n  color:rgba(255,255,255,.4);font-family:var(--font-mono);\n  font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;\n  z-index:2;\n  animation:gp-fadeUp 1s var(--ease) 1.8s both;\n}\n.gaelo-product .hero-scroll-dot{\n  width:22px;height:34px;\n  border:1.5px solid rgba(255,255,255,.25);\n  border-radius:20px;position:relative;\n}\n.gaelo-product .hero-scroll-dot::after{\n  content:'';position:absolute;top:6px;left:50%;\n  transform:translateX(-50%);\n  width:4px;height:4px;border-radius:50%;\n  background:var(--teal);\n  animation:gp-scrollDown 2s ease infinite;\n}\n@keyframes gp-scrollDown{0%{top:6px;opacity:1}80%{top:18px;opacity:0}100%{top:6px;opacity:0}}\n\n\/* ============================================================\n   BUTTONS\n   ============================================================ *\/\n.gaelo-product .btn{\n  display:inline-flex;align-items:center;gap:10px;\n  padding:14px 30px;border-radius:50px;\n  font-size:.95rem;font-weight:600;font-family:inherit;\n  text-decoration:none;cursor:pointer;border:none;\n  transition:all .25s var(--ease);\n  line-height:1;\n}\n.gaelo-product .btn:hover{text-decoration:none}\n.gaelo-product .btn svg{width:16px;height:16px;transition:transform .3s var(--ease);flex-shrink:0}\n.gaelo-product .btn:hover svg{transform:translateX(5px)}\n.gaelo-product .btn-primary-light{background:var(--white);color:var(--bg-dark)}\n.gaelo-product .btn-primary-light:hover{\n  background:var(--teal);color:var(--white);transform:translateY(-2px);\n  box-shadow:0 12px 30px rgba(4,149,160,.4);\n}\n.gaelo-product .btn-ghost-light{\n  background:rgba(255,255,255,.06);color:rgba(255,255,255,.92);\n  border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px);\n}\n.gaelo-product .btn-ghost-light:hover{\n  background:rgba(255,255,255,.15);transform:translateY(-2px);color:var(--white);\n}\n.gaelo-product .btn-primary{background:var(--teal);color:var(--white)}\n.gaelo-product .btn-primary:hover{\n  background:var(--teal-dark);transform:translateY(-2px);\n  box-shadow:0 12px 30px rgba(4,149,160,.4);color:var(--white);\n}\n.gaelo-product .btn-secondary{\n  background:transparent;color:var(--text);\n  border:1.5px solid var(--border-strong);\n}\n.gaelo-product .btn-secondary:hover{\n  background:var(--text);color:var(--white);transform:translateY(-2px);border-color:var(--text);\n}\n\n\n\/* ============================================================\n   ELEMENTOR-PRO STYLE BODY \u2014 sections, icon boxes, counters,\n   image boxes, feature lists, shape dividers, CTA boxes.\n   Built on top of the existing hero + design tokens.\n   ============================================================ *\/\n\n\/* ---- Section scaffolding (Elementor \"section\" feel) ---- *\/\n.gaelo-product .ep-section{\n  position:relative;\n  padding:clamp(64px,8vw,110px) 0;\n}\n.gaelo-product .ep-section.bg-white{background:var(--white)}\n.gaelo-product .ep-section.bg-soft{background:var(--bg-soft)}\n.gaelo-product .ep-section.bg-tint{\n  background:linear-gradient(180deg,var(--bg-soft),var(--white));\n}\n.gaelo-product .ep-section.bg-dark{\n  background:linear-gradient(160deg,#0d1b2a 0%,#13283a 60%,#102433 100%);\n  color:var(--white);\n}\n.gaelo-product .ep-section.has-divider-top{padding-top:clamp(90px,10vw,140px)}\n.gaelo-product .ep-section.has-divider-bottom{padding-bottom:clamp(90px,10vw,140px)}\n\n\/* ---- Eyebrow \/ heading kit (Elementor heading widget look) ---- *\/\n.gaelo-product .ep-head{\n  max-width:760px;\n  margin-bottom:clamp(40px,5vw,60px);\n}\n.gaelo-product .ep-head.center{\n  margin-left:auto;margin-right:auto;text-align:center;\n}\n.gaelo-product .ep-eyebrow{\n  display:inline-flex;align-items:center;gap:10px;\n  font-family:var(--font-mono);\n  font-size:.74rem;font-weight:600;\n  letter-spacing:.16em;text-transform:uppercase;\n  color:var(--teal);\n  margin-bottom:16px;\n}\n.gaelo-product .ep-section.bg-dark .ep-eyebrow{color:var(--teal-bright)}\n.gaelo-product .ep-eyebrow::before{\n  content:'';width:28px;height:2px;border-radius:2px;background:currentColor;\n}\n.gaelo-product .ep-head.center .ep-eyebrow{justify-content:center}\n.gaelo-product .ep-head h2{\n  font-size:clamp(1.9rem,3.6vw,2.85rem);\n  font-weight:800;line-height:1.12;letter-spacing:-.025em;\n  margin:0 0 18px;\n}\n.gaelo-product .ep-section.bg-dark .ep-head h2{color:var(--white)}\n.gaelo-product .ep-head p{\n  font-size:1.06rem;line-height:1.65;color:var(--muted);margin:0;\n}\n.gaelo-product .ep-section.bg-dark .ep-head p{color:rgba(255,255,255,.7)}\n.gaelo-product .ep-head .accent{color:var(--teal)}\n\n\/* Inline text links (NEMA, DICOM viewer, ICH, Imaging CRO\u2026) \u2014 discreet *\/\n.gaelo-product .intro-text a,\n.gaelo-product .tabs-panel-text a,\n.gaelo-product .iconbox p a,\n.gaelo-product .persona p a{\n  color:var(--teal-dark);\n  text-decoration:underline;\n  text-decoration-color:rgba(3,122,131,.35);\n  text-underline-offset:2px;\n  text-decoration-thickness:1px;\n  transition:color .2s var(--ease),text-decoration-color .2s var(--ease);\n}\n.gaelo-product .intro-text a:hover,\n.gaelo-product .tabs-panel-text a:hover,\n.gaelo-product .iconbox p a:hover,\n.gaelo-product .persona p a:hover{\n  color:var(--teal);\n  text-decoration-color:var(--teal);\n}\n\n\/* ============================================================\n   INTRO \/ MANIFESTO \u2014 two-column with sticky media card\n   ============================================================ *\/\n.gaelo-product .intro-grid{\n  display:grid;\n  grid-template-columns:0.95fr 1.05fr;\n  gap:clamp(32px,5vw,72px);\n  align-items:start;\n}\n.gaelo-product .intro-sticky{position:sticky;top:90px}\n.gaelo-product .intro-card{\n  background:var(--white);\n  border:1px solid var(--border);\n  border-radius:var(--radius-lg);\n  padding:clamp(28px,3.5vw,44px);\n  box-shadow:var(--shadow-md);\n}\n.gaelo-product .intro-card .ep-eyebrow{margin-bottom:18px}\n.gaelo-product .intro-card h2{\n  font-size:clamp(1.7rem,3vw,2.4rem);\n  font-weight:800;line-height:1.15;letter-spacing:-.025em;\n  margin:0 0 22px;color:var(--text);\n}\n.gaelo-product .intro-quote{\n  margin:0;padding:22px 26px;\n  background:var(--teal-soft);\n  border-left:3px solid var(--teal);\n  border-radius:0 var(--radius-sm) var(--radius-sm) 0;\n  font-size:1rem;font-style:italic;color:var(--slate);line-height:1.6;\n}\n.gaelo-product .intro-text > p{\n  font-size:1.04rem;line-height:1.72;margin:0 0 18px;color:var(--slate);\n}\n.gaelo-product .intro-text > p:first-child{\n  font-size:1.16rem;color:var(--text);font-weight:500;\n}\n\/* feature list with checkmarks (Elementor icon-list) *\/\n.gaelo-product .ep-list{\n  list-style:none;padding:0;margin:28px 0 0;\n  display:grid;gap:14px;\n}\n.gaelo-product .ep-list li{\n  display:flex;align-items:flex-start;gap:14px;\n  font-size:.99rem;color:var(--text);line-height:1.5;\n}\n.gaelo-product .ep-list-check{\n  flex-shrink:0;width:26px;height:26px;border-radius:50%;\n  background:var(--teal);color:#fff;\n  display:flex;align-items:center;justify-content:center;\n  margin-top:1px;\n}\n.gaelo-product .ep-list-check svg{width:13px;height:13px}\n@media (max-width:860px){\n  .gaelo-product .intro-grid{grid-template-columns:1fr;gap:36px}\n  .gaelo-product .intro-sticky{position:static}\n}\n\n\/* ============================================================\n   COLLAPSIBLE \u2014 \"Lire la suite\" toggle (mobile\/tablet only \u2264900px)\n   The collapse-toggle button is hidden on desktop. On smaller\n   screens, the JS replies content + reveals the button so users\n   don't scroll forever.\n   ============================================================ *\/\n\/* Collapse toggle button \u2014 visible on ALL screens BUT\n   intro toggles (no data-collapse-target) are hidden on desktop\n   since the intro text is fully expanded on desktop. *\/\n.gaelo-product .collapse-toggle{\n  display:inline-flex;align-items:center;gap:8px;\n  margin:14px auto 0;\n  padding:10px 20px;border-radius:50px;\n  background:transparent;border:1px solid var(--border-strong);\n  font-family:inherit;font-size:.9rem;font-weight:600;\n  color:var(--teal-dark);cursor:pointer;\n  transition:all .2s var(--ease);\n  -webkit-tap-highlight-color:transparent;\n}\n\/* hide intro toggles (not grid toggles) on desktop *\/\n.gaelo-product .collapse-toggle:not([data-collapse-target=\"grid\"]){display:none}\n@media (max-width:900px){\n  .gaelo-product .collapse-toggle:not([data-collapse-target=\"grid\"]){display:inline-flex}\n}\n.gaelo-product .collapse-toggle:hover,\n.gaelo-product .collapse-toggle:focus-visible{\n  background:var(--teal-soft);border-color:var(--teal);color:var(--teal-dark);\n  outline:none;\n}\n.gaelo-product .collapse-toggle svg{\n  width:14px;height:14px;\n  transition:transform .25s var(--ease);\n}\n.gaelo-product .collapse-toggle[aria-expanded=\"true\"] svg{transform:rotate(180deg)}\n\/* Generic collapsible (used for the intro text \u2014 mobile only) *\/\n.gaelo-product .collapsible{\n  max-height:9999px;opacity:1;\n  transition:max-height .45s var(--ease),opacity .3s var(--ease);\n}\n\/* Grid items hidden by default \u2014 revealed when grid has data-extended=\"true\" *\/\n.gaelo-product .iconbox.is-extra{display:none}\n.gaelo-product .iconbox-grid[data-extended=\"true\"] .iconbox.is-extra,\n.gaelo-product .iconbox-grid[data-extended=\"true\"] .iconbox.is-extra-mobile{\n  display:flex;\n  animation:gp-fadeUp .4s var(--ease) both;\n}\n\/* wrapper that centers the toggle button under its content *\/\n.gaelo-product .collapse-wrap{\n  display:flex;flex-direction:column;align-items:center;\n  margin-top:14px;\n}\n@media (max-width:900px){\n  \/* on mobile, hide one more card (is-extra-mobile) so we have 5 visible + 7 hidden *\/\n  .gaelo-product .iconbox.is-extra-mobile{display:none}\n  \/* The intro-text collapsible animation kicks in on mobile only *\/\n  .gaelo-product .collapsible[data-collapsed=\"true\"]{\n    max-height:0;overflow:hidden;opacity:0;\n    margin-top:0;margin-bottom:0;\n    transition:max-height .35s var(--ease),opacity .25s var(--ease);\n  }\n}\n\n\/* ============================================================\n   COUNTERS strip (Elementor counter widgets)\n   ============================================================ *\/\n.gaelo-product .counters{\n  display:grid;\n  grid-template-columns:repeat(5,1fr);\n  gap:1px;\n  background:var(--border);\n  border:1px solid var(--border);\n  border-radius:var(--radius-lg);\n  overflow:hidden;\n}\n.gaelo-product .counter{\n  background:var(--white);\n  padding:clamp(26px,3vw,40px) clamp(20px,2.5vw,32px);\n  text-align:center;\n}\n.gaelo-product .ep-section.bg-dark .counters{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.14)}\n.gaelo-product .ep-section.bg-dark .counter{background:transparent}\n.gaelo-product .counter-icon{\n  display:flex;align-items:center;justify-content:center;\n  width:38px;height:38px;border-radius:10px;\n  background:var(--teal-soft);\n  color:var(--teal-dark);\n  flex-shrink:0;\n}\n.gaelo-product .counter-icon svg{width:20px;height:20px}\n\/* Variant A : chiffre + ic\u00f4ne sur la m\u00eame ligne *\/\n.gaelo-product .counters-a .counter-row{\n  display:flex;align-items:center;justify-content:center;gap:14px;\n}\n\/* Variant B : ic\u00f4ne tout en bas *\/\n.gaelo-product .counter-icon-bottom{\n  margin:14px auto 0;\n}\n.gaelo-product .counter-num{\n  font-size:clamp(2.1rem,4vw,3rem);\n  font-weight:800;line-height:1;letter-spacing:-.03em;\n  color:var(--teal);\n  font-variant-numeric:tabular-nums;\n}\n.gaelo-product .ep-section.bg-dark .counter-num{color:var(--teal-bright)}\n.gaelo-product .counter-num .suffix{color:var(--orange);margin-left:.18em}\n.gaelo-product .counter-label{\n  margin-top:10px;\n  font-family:var(--font-mono);\n  font-size:.72rem;font-weight:500;\n  letter-spacing:.08em;text-transform:uppercase;\n  color:var(--muted);\n}\n.gaelo-product .ep-section.bg-dark .counter-label{color:rgba(255,255,255,.6)}\n@media (max-width:1080px){\n  .gaelo-product .counters{grid-template-columns:repeat(3,1fr)}\n}\n@media (max-width:680px){\n  .gaelo-product .counters{grid-template-columns:repeat(2,1fr)}\n}\n\n\/* ============================================================\n   TABS (kept, restyled a touch toward Elementor tabs widget)\n   ============================================================ *\/\n.gaelo-product .tabs{margin-top:8px}\n.gaelo-product .tabs-nav{\n  display:flex;gap:6px;margin-bottom:28px;padding:6px;\n  background:var(--white);border-radius:50px;border:1px solid var(--border);\n  box-shadow:var(--shadow-sm);flex-wrap:wrap;\n  max-width:fit-content;margin-left:auto;margin-right:auto;\n}\n.gaelo-product .tabs-btn{\n  border:none;background:transparent;padding:12px 24px;border-radius:50px;\n  font-family:inherit;font-size:.92rem;font-weight:600;color:var(--muted);\n  cursor:pointer;transition:all .3s var(--ease);\n  display:inline-flex;align-items:center;gap:10px;white-space:nowrap;\n}\n.gaelo-product .tabs-btn:hover{color:var(--text)}\n.gaelo-product .tabs-btn[aria-selected=\"true\"]{\n  background:var(--teal);color:var(--white);box-shadow:0 4px 14px rgba(4,149,160,.3);\n}\n.gaelo-product .tabs-btn-num{font-family:var(--font-mono);font-size:.7rem;opacity:.7}\n.gaelo-product .tabs-panel{display:none;animation:gp-tabFade .5s var(--ease)}\n.gaelo-product .tabs-panel.is-active{display:block}\n@keyframes gp-tabFade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}\n.gaelo-product .tabs-panel-inner{\n  display:flex;flex-direction:column;gap:clamp(20px,3vw,36px);\n  background:var(--white);border-radius:var(--radius-lg);\n  padding:clamp(26px,3.5vw,48px);box-shadow:var(--shadow-sm);border:1px solid var(--border);\n}\n.gaelo-product .tabs-panel-text{max-width:900px;margin:0 auto;width:100%;text-align:left}\n.gaelo-product .tabs-panel h3{font-size:clamp(1.35rem,2.4vw,1.8rem);margin-bottom:16px}\n.gaelo-product .tabs-panel-text p{font-size:.98rem;line-height:1.7}\n.gaelo-product .tabs-panel-text p + p{margin-top:14px}\n.gaelo-product .tabs-panel-visual{\n  position:relative;border-radius:var(--radius-md);overflow:hidden;\n  background:#0d1b2a;border:1px solid var(--border);\n  width:100%;\n}\n.gaelo-product .tabs-panel-visual img{\n  width:100%;height:auto;display:block;\n  \/* show the screenshot at its natural ratio, not cropped *\/\n}\n@media (max-width:860px){\n  .gaelo-product .tabs-panel-inner{padding:24px}\n  .gaelo-product .tabs-nav{\n    max-width:none;\n    flex-direction:column;\n    align-items:stretch;\n    border-radius:14px;\n    padding:8px;\n    gap:4px;\n  }\n  .gaelo-product .tabs-btn{\n    flex-shrink:0;\n    border-radius:10px;\n    width:100%;\n    justify-content:center;\n    padding:12px 18px;\n    white-space:normal;\n    text-align:center;\n  }\n}\n\n\/* ============================================================\n   CRITERIA BLOCK + TABLE\n   ============================================================ *\/\n.gaelo-product .criteria-block{\n  margin-top:48px;padding:clamp(28px,4vw,48px);\n  background:var(--white);border-radius:var(--radius-lg);\n  border:1px solid var(--border);box-shadow:var(--shadow-sm);\n  scroll-margin-top:80px;\n}\n.gaelo-product .criteria-block-head{max-width:680px;margin-bottom:28px}\n.gaelo-product .criteria-block-title{\n  font-size:clamp(1.3rem,2.4vw,1.65rem);font-weight:700;letter-spacing:-.02em;\n  margin:8px 0 12px;color:var(--text);\n}\n.gaelo-product .criteria-block-sub{font-size:1rem;line-height:1.65;color:var(--muted);margin:0}\n.gaelo-product .criteria-table{\n  background:var(--white);border-radius:var(--radius-md);overflow:hidden;\n  border:1px solid var(--border);\n}\n.gaelo-product .criteria-table table{width:100%;border-collapse:collapse;font-size:.95rem}\n.gaelo-product .criteria-table thead th{\n  text-align:left;padding:16px 22px;\n  background:linear-gradient(135deg,var(--teal),var(--teal-dark));color:var(--white);\n  font-family:var(--font-mono);font-weight:600;font-size:.76rem;\n  letter-spacing:.1em;text-transform:uppercase;\n}\n.gaelo-product .criteria-table tbody td{padding:18px 22px;border-top:1px solid var(--border);vertical-align:top}\n.gaelo-product .criteria-table tbody tr:hover{background:rgba(4,149,160,.03)}\n.gaelo-product .criteria-table .topic{font-weight:700;color:var(--text);white-space:nowrap}\n.gaelo-product .criteria-list{display:flex;flex-wrap:wrap;gap:8px}\n.gaelo-product .criteria-link{\n  display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:50px;\n  background:var(--teal-soft);color:var(--teal-dark);font-size:.85rem;font-weight:600;\n  text-decoration:none;transition:all .25s var(--ease);border:1px solid transparent;\n}\n.gaelo-product .criteria-link:hover{\n  background:var(--teal);color:var(--white);text-decoration:none;\n  transform:translateY(-1px);box-shadow:0 6px 14px rgba(4,149,160,.3);\n}\n.gaelo-product .criteria-link svg{width:11px;height:11px;opacity:.7}\n@media (max-width:700px){\n  .gaelo-product .criteria-block{padding:22px 16px}\n  .gaelo-product .criteria-table{font-size:.88rem}\n  .gaelo-product .criteria-table thead th,\n  .gaelo-product .criteria-table tbody td{padding:13px 14px}\n  .gaelo-product .criteria-table .topic{white-space:normal}\n}\n\n\/* ============================================================\n   ICON BOXES grid (Elementor icon-box widget) \u2014 Fonctionnalit\u00e9s cl\u00e9s\n   ============================================================ *\/\n.gaelo-product .iconbox-grid{\n  display:grid;\n  grid-template-columns:repeat(3,1fr);\n  gap:24px;\n}\n.gaelo-product .iconbox{\n  background:var(--white);\n  border:1px solid var(--border);\n  border-radius:var(--radius-md);\n  padding:32px 28px;\n  transition:all .3s var(--ease);\n  position:relative;\n  display:flex;flex-direction:column;\n}\n.gaelo-product .iconbox:hover{\n  border-color:var(--teal);\n  box-shadow:var(--shadow-md);\n  transform:translateY(-4px);\n}\n.gaelo-product .iconbox-icon{\n  width:56px;height:56px;border-radius:14px;\n  background:var(--teal-soft);color:var(--teal);\n  display:flex;align-items:center;justify-content:center;\n  margin-bottom:20px;transition:all .3s var(--ease);\n}\n.gaelo-product .iconbox:hover .iconbox-icon{\n  background:var(--teal);color:var(--white);\n  transform:scale(1.05);\n}\n.gaelo-product .iconbox-icon svg{width:26px;height:26px}\n.gaelo-product .iconbox h3{\n  font-size:1.12rem;font-weight:700;letter-spacing:-.01em;\n  margin:0 0 12px;color:var(--text);\n}\n.gaelo-product .iconbox p{\n  font-size:.94rem;line-height:1.62;color:var(--muted);margin:0;\n}\n.gaelo-product .iconbox .ep-list{margin-top:16px;gap:9px}\n.gaelo-product .iconbox .ep-list li{font-size:.9rem;color:var(--slate);gap:10px}\n.gaelo-product .iconbox .ep-list-check{width:20px;height:20px}\n.gaelo-product .iconbox .ep-list-check svg{width:10px;height:10px}\n.gaelo-product .iconbox-media{\n  margin:18px -28px -32px;border-top:1px solid var(--border);\n  border-radius:0 0 var(--radius-md) var(--radius-md);overflow:hidden;\n}\n.gaelo-product .iconbox-media img{display:block;width:100%;height:auto}\n@media (max-width:920px){\n  .gaelo-product .iconbox-grid{grid-template-columns:repeat(2,1fr)}\n}\n@media (max-width:600px){\n  .gaelo-product .iconbox-grid{grid-template-columns:1fr}\n}\n\n\/* ============================================================\n   USER ROLES \u2014 carousel : 3 portrait cards visible at a time,\n   navigate with left\/right arrows (matches the old site).\n   ============================================================ *\/\n.gaelo-product .roles-wrap{\n  max-width:1280px;margin:0 auto;\n  padding:clamp(20px,3vw,32px) clamp(16px,2vw,28px);\n  position:relative;\n}\n.gaelo-product .roles-viewport{\n  position:relative;\n  overflow:hidden;\n  padding:0 clamp(40px,5vw,72px);\n}\n.gaelo-product .roles-track{\n  display:flex;\n  gap:24px;\n  transition:transform .55s cubic-bezier(.65,.05,.36,1);\n  will-change:transform;\n}\n.gaelo-product .role-card{\n  position:relative;\n  flex:0 0 calc((100% - 48px) \/ 3);\n  background:var(--white);\n  border:1px solid var(--border);\n  border-radius:var(--radius-md);\n  overflow:hidden;\n  display:flex;flex-direction:column;\n  transition:background .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease);\n  min-height:520px;\n  box-shadow:var(--shadow-sm);\n}\n.gaelo-product .role-card::before{\n  content:'';position:absolute;top:0;left:0;right:0;height:4px;\n  background:var(--role-accent,var(--teal));\n  z-index:2;\n}\n.gaelo-product .role-card:hover{\n  border-color:var(--role-accent,var(--teal));\n  box-shadow:var(--shadow-md);\n  transform:translateY(-3px);\n}\n.gaelo-product .role-card.investigator{--role-accent:#FFBA4D}\n.gaelo-product .role-card.controller{--role-accent:#5DD0DA}\n.gaelo-product .role-card.reviewer{--role-accent:#9B97D9}\n.gaelo-product .role-card.supervisor{--role-accent:#7773C8}\n.gaelo-product .role-card.monitor{--role-accent:#6FCC85}\n.gaelo-product .role-card-visual{\n  background:rgb(150,146,205);\n  height:260px;\n  display:flex;align-items:center;justify-content:center;\n  overflow:hidden;\n}\n.gaelo-product .role-card-visual img{\n  max-width:78%;max-height:210px;\n  width:auto;height:auto;object-fit:contain;\n  transition:transform .5s var(--ease);\n}\n.gaelo-product .role-card:hover .role-card-visual img{transform:scale(1.04)}\n.gaelo-product .role-card-body{\n  padding:30px 28px 32px;\n  display:flex;flex-direction:column;\n  flex:1;text-align:center;\n}\n.gaelo-product .role-card-label{\n  font-family:var(--font-mono);font-size:.65rem;font-weight:600;\n  color:var(--role-accent,var(--teal));\n  letter-spacing:.16em;text-transform:uppercase;\n  margin-bottom:10px;\n}\n.gaelo-product .role-card h3{\n  font-size:1.35rem;font-weight:700;letter-spacing:-.01em;\n  margin:0 0 18px;color:var(--text);\n}\n.gaelo-product .role-card p{\n  font-size:.92rem;line-height:1.6;color:var(--muted);margin:0;\n}\n\/* Navigation arrows *\/\n.gaelo-product .roles-nav{\n  position:absolute;top:50%;transform:translateY(-50%);\n  width:44px;height:44px;border-radius:50%;\n  background:var(--white);\n  border:1px solid var(--border-strong);\n  color:var(--slate);\n  cursor:pointer;\n  display:flex;align-items:center;justify-content:center;\n  transition:all .25s var(--ease);\n  z-index:5;\n  box-shadow:var(--shadow-sm);\n  -webkit-tap-highlight-color:transparent;\n}\n.gaelo-product .roles-nav:hover{\n  background:var(--teal-soft);\n  border-color:var(--teal);\n  color:var(--teal-dark);\n}\n.gaelo-product .roles-nav:disabled{\n  opacity:.40;cursor:not-allowed;\n}\n.gaelo-product .roles-nav svg{width:18px;height:18px}\n.gaelo-product .roles-nav-prev{left:clamp(8px,1vw,18px)}\n.gaelo-product .roles-nav-next{right:clamp(8px,1vw,18px)}\n\/* Pagination dots *\/\n.gaelo-product .roles-dots{\n  display:flex;gap:8px;justify-content:center;\n  margin-top:28px;\n}\n.gaelo-product .roles-dot{\n  width:8px;height:8px;border-radius:50%;\n  background:rgba(13,27,42,.22);\n  cursor:pointer;border:none;padding:0;\n  transition:all .25s var(--ease);\n  -webkit-tap-highlight-color:transparent;\n}\n.gaelo-product .roles-dot.is-active{\n  background:var(--teal);width:24px;border-radius:4px;\n}\n\/* Tablet : 2 cards visible *\/\n@media (max-width:980px){\n  .gaelo-product .role-card{flex:0 0 calc((100% - 24px) \/ 2);min-height:480px}\n  .gaelo-product .roles-viewport{padding:0 56px}\n}\n\/* Mobile : 1 card visible *\/\n@media (max-width:640px){\n  .gaelo-product .role-card{flex:0 0 100%;min-height:440px}\n  .gaelo-product .roles-viewport{padding:0 48px}\n  .gaelo-product .roles-wrap{padding:32px 12px}\n  .gaelo-product .role-card-visual{height:220px}\n  .gaelo-product .role-card-body{padding:24px 22px 26px}\n}\n\n\/* ============================================================\n   DATA STRUCTURE \u2014 3 design options to compare (A \/ B \/ C)\n   ============================================================ *\/\n\n\/* \u2500\u2500\u2500 OPTION A : Cards + arrows \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.gaelo-product .ds-cards{\n  display:flex;align-items:stretch;justify-content:center;\n  gap:14px;flex-wrap:nowrap;\n  max-width:1180px;margin:0 auto;\n}\n.gaelo-product .ds-card{\n  flex:1 1 0;min-width:0;\n  padding:24px 18px 26px;\n  border-radius:var(--radius-md);\n  color:#fff;\n  display:flex;flex-direction:column;align-items:center;justify-content:center;\n  text-align:center;gap:6px;\n  min-height:150px;\n  box-shadow:0 8px 24px rgba(13,27,42,.10);\n  transition:transform .3s var(--ease),box-shadow .3s var(--ease);\n}\n.gaelo-product .ds-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(13,27,42,.18)}\n.gaelo-product .ds-card-1{background:#037a83}\n.gaelo-product .ds-card-2{background:#353275}\n.gaelo-product .ds-card-3{background:#FFBA4D;color:#1a1a1a}\n.gaelo-product .ds-card-4{background:#2c3e54}\n.gaelo-product .ds-card-5{background:#3aa256}\n.gaelo-product .ds-card-title{\n  font-size:1.1rem;font-weight:800;letter-spacing:-.01em;line-height:1.15;\n}\n.gaelo-product .ds-card-sub{\n  font-size:.78rem;line-height:1.4;opacity:.92;font-weight:400;margin-top:4px;\n}\n.gaelo-product .ds-arrow{\n  display:flex;align-items:center;justify-content:center;\n  color:var(--muted);flex-shrink:0;\n}\n.gaelo-product .ds-arrow svg{width:22px;height:22px}\n@media (max-width:860px){\n  .gaelo-product .ds-cards{flex-direction:column;gap:8px}\n  .gaelo-product .ds-arrow{transform:rotate(90deg);padding:4px 0}\n}\n\n\/* ============================================================\n   MODALITIES \u2014 image boxes (photo cards)\n   ============================================================ *\/\n.gaelo-product .modalities-grid{\n  display:grid;grid-template-columns:repeat(6,1fr);\n  gap:26px;\n  max-width:1080px;margin-left:auto;margin-right:auto;\n}\n\/* 3 per row : each card spans 2 of the 6 columns *\/\n.gaelo-product .modalities-grid .mod-card{grid-column:span 2}\n\/* last row has 2 cards (4 & 5) \u2192 center them: card 4 starts col 2, card 5 starts col 4 *\/\n.gaelo-product .modalities-grid .mod-card:nth-child(4){grid-column:2 \/ span 2}\n.gaelo-product .modalities-grid .mod-card:nth-child(5){grid-column:4 \/ span 2}\n@media (max-width:860px){\n  .gaelo-product .modalities-grid{grid-template-columns:repeat(2,1fr);max-width:none}\n  .gaelo-product .modalities-grid .mod-card,\n  .gaelo-product .modalities-grid .mod-card:nth-child(4),\n  .gaelo-product .modalities-grid .mod-card:nth-child(5){grid-column:auto}\n}\n@media (max-width:560px){\n  .gaelo-product .modalities-grid{grid-template-columns:1fr}\n}\n.gaelo-product .mod-card{\n  background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);\n  transition:all .35s var(--ease);position:relative;overflow:hidden;\n  display:flex;flex-direction:column;\n}\n.gaelo-product .mod-card::after{\n  content:'';position:absolute;top:0;left:0;width:100%;height:3px;\n  background:linear-gradient(90deg,var(--teal),var(--teal-bright));\n  transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease);z-index:3;\n}\n.gaelo-product .mod-card:hover{border-color:var(--teal);transform:translateY(-4px);box-shadow:var(--shadow-md)}\n.gaelo-product .mod-card:hover::after{transform:scaleX(1)}\n.gaelo-product .mod-card-media{position:relative;aspect-ratio:16\/10;overflow:hidden;background:#0d1b2a}\n.gaelo-product .mod-card-media img{\n  width:100%;height:100%;object-fit:cover;display:block;\n  transition:transform .6s var(--ease),filter .4s var(--ease);filter:saturate(.95);\n}\n.gaelo-product .mod-card:hover .mod-card-media img{transform:scale(1.06);filter:saturate(1.1)}\n.gaelo-product .mod-card-media::after{\n  content:'';position:absolute;inset:0;pointer-events:none;\n  background:linear-gradient(180deg,transparent 55%,rgba(13,27,42,.35));\n}\n.gaelo-product .mod-card-body{padding:22px 24px 24px;flex:1;display:flex;flex-direction:column}\n.gaelo-product .mod-card h3{font-size:1.1rem;margin:0 0 8px;letter-spacing:-.01em;color:var(--text)}\n.gaelo-product .mod-card p{font-size:.92rem;line-height:1.55;color:var(--muted);margin:0}\n\n\/* ============================================================\n   PERSONAS \u2014 icon boxes with accent border\n   ============================================================ *\/\n.gaelo-product .personas-grid{\n  display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px;\n}\n.gaelo-product .persona{\n  position:relative;padding:30px 28px;border-radius:var(--radius-md);\n  background:var(--white);border:1px solid var(--border);\n  transition:all .35s var(--ease);overflow:hidden;\n}\n.gaelo-product .persona::before{\n  content:'';position:absolute;top:0;left:0;right:0;height:4px;\n  background:var(--accent,var(--teal));\n}\n.gaelo-product .persona:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:var(--accent,var(--teal))}\n.gaelo-product .persona.pharma{--accent:var(--teal)}\n.gaelo-product .persona.medtech{--accent:var(--indigo)}\n.gaelo-product .persona.academic{--accent:var(--orange)}\n.gaelo-product .persona.cro{--accent:#3aa256}\n.gaelo-product .persona-icon{\n  width:50px;height:50px;border-radius:12px;background:var(--bg-soft);\n  border:1px solid var(--border);color:var(--accent,var(--teal));\n  display:flex;align-items:center;justify-content:center;margin-bottom:18px;\n}\n.gaelo-product .persona-icon svg{width:23px;height:23px}\n.gaelo-product .persona-label{\n  font-family:var(--font-mono);font-size:.68rem;font-weight:600;\n  color:var(--accent,var(--teal));letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px;\n}\n.gaelo-product .persona h3{font-size:1.12rem;margin:0 0 10px;color:var(--text)}\n.gaelo-product .persona p{font-size:.93rem;line-height:1.6;color:var(--muted);margin:0}\n.gaelo-product .persona p a{color:var(--accent,var(--teal));font-weight:600;text-decoration:underline}\n\n\/* ============================================================\n   ECOSYSTEM \u2014 product image-boxes\n   ============================================================ *\/\n.gaelo-product .eco-grid{\n  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;\n}\n.gaelo-product .eco-card{\n  position:relative;display:flex;flex-direction:column;\n  background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);\n  overflow:hidden;transition:all .4s var(--ease);\n}\n.gaelo-product .eco-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--eco-accent,var(--teal))}\n.gaelo-product .eco-card.gaelo{--eco-accent:var(--teal);--eco-accent-soft:var(--teal-soft);--eco-deep:#037a83;--eco-grad:linear-gradient(150deg,#0495A0 0%,#037a83 55%,#02666d 100%)}\n.gaelo-product .eco-card.flow{--eco-accent:var(--indigo);--eco-accent-soft:var(--indigo-soft);--eco-deep:#2a2860;--eco-grad:linear-gradient(150deg,#3f3c86 0%,#353275 55%,#2a2860 100%)}\n.gaelo-product .eco-card.algo{--eco-accent:#cc8200;--eco-accent-soft:var(--orange-soft);--eco-deep:#b5760a;--eco-grad:linear-gradient(150deg,#FFBA4D 0%,#f0a52f 100%)}\n.gaelo-product .eco-visual{\n  position:relative;display:flex;align-items:center;justify-content:center;height:190px;\n  background:var(--eco-grad,linear-gradient(150deg,var(--teal),var(--teal-dark)));\n  overflow:hidden;\n}\n\/* subtle tech grid texture over the colored band \u2014 discreet, not kitsch *\/\n.gaelo-product .eco-visual::before{\n  content:'';position:absolute;inset:0;pointer-events:none;\n  background-image:\n    linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),\n    linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);\n  background-size:26px 26px;\n  -webkit-mask-image:radial-gradient(ellipse 75% 75% at 30% 25%,black,transparent 80%);\n  mask-image:radial-gradient(ellipse 75% 75% at 30% 25%,black,transparent 80%);\n}\n\/* soft light bloom in a corner for depth *\/\n.gaelo-product .eco-visual::after{\n  content:'';position:absolute;top:-40%;right:-20%;\n  width:70%;height:140%;border-radius:50%;pointer-events:none;\n  background:radial-gradient(circle,rgba(255,255,255,.18),transparent 65%);\n}\n.gaelo-product .eco-visual img{\n  position:relative;z-index:1;\n  max-width:80%;max-height:110px;width:auto;height:auto;object-fit:contain;\n  transition:transform .5s var(--ease);\n  \/* render brand logos in white over the colored band *\/\n  filter:brightness(0) invert(1);\n}\n.gaelo-product .eco-card:hover .eco-visual img{transform:scale(1.04)}\n\/* AI card keeps the real photo \u2014 colored veil from the charter (orange) for cohesion *\/\n.gaelo-product .eco-visual.cover{background:#0d1b2a}\n.gaelo-product .eco-visual.cover::before{display:none}\n.gaelo-product .eco-visual.cover::after{\n  content:'';position:absolute;inset:0;top:auto;right:auto;width:100%;height:100%;border-radius:0;\n  background:linear-gradient(180deg,rgba(255,186,77,.12) 0%,transparent 35%,rgba(13,27,42,.55) 100%);\n}\n.gaelo-product .eco-visual.cover img{\n  max-width:none;max-height:none;width:100%;height:100%;object-fit:cover;\n  filter:none;\n}\n.gaelo-product .eco-body{padding:26px 28px 28px;display:flex;flex-direction:column;flex:1}\n.gaelo-product .eco-tag{\n  display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);\n  font-size:.68rem;font-weight:600;color:var(--eco-accent,var(--teal));\n  letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px;\n}\n.gaelo-product .eco-tag::before{content:'';width:18px;height:2px;border-radius:2px;background:var(--eco-accent,var(--teal))}\n.gaelo-product .eco-card h3{font-size:1.2rem;margin:0 0 14px;letter-spacing:-.015em;color:var(--text)}\n.gaelo-product .eco-card p{font-size:.95rem;line-height:1.6;color:var(--muted);margin:0 0 22px;flex:1}\n.gaelo-product .eco-link{\n  display:inline-flex;align-items:center;gap:8px;align-self:flex-start;\n  padding:11px 20px;border-radius:50px;background:var(--eco-accent-soft,var(--teal-soft));\n  color:var(--eco-accent,var(--teal));font-size:.88rem;font-weight:600;\n  text-decoration:none;transition:all .25s var(--ease);border:1px solid transparent;\n}\n.gaelo-product .eco-link:hover{background:var(--eco-accent,var(--teal));color:var(--white);text-decoration:none;transform:translateX(3px)}\n.gaelo-product .eco-link svg{width:13px;height:13px;transition:transform .25s var(--ease)}\n.gaelo-product .eco-link:hover svg{transform:translateX(3px)}\n@media (max-width:920px){.gaelo-product .eco-grid{grid-template-columns:1fr;gap:18px}}\n\n\/* ============================================================\n   CALLOUT BOX (Elementor CTA box) \u2014 mid-page conversion\n   ============================================================ *\/\n.gaelo-product .callout{\n  display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:clamp(28px,4vw,56px);\n  background:linear-gradient(135deg,var(--teal),var(--teal-dark));\n  border-radius:var(--radius-xl);padding:clamp(36px,5vw,64px);\n  color:var(--white);position:relative;overflow:hidden;\n}\n.gaelo-product .callout::before{\n  content:'';position:absolute;inset:0;pointer-events:none;\n  background:radial-gradient(ellipse 50% 80% at 100% 0%,rgba(255,255,255,.14),transparent);\n}\n.gaelo-product .callout-content{position:relative;z-index:1}\n.gaelo-product .callout h2{font-size:clamp(1.6rem,3vw,2.3rem);font-weight:800;color:var(--white);letter-spacing:-.025em;margin:0 0 14px;line-height:1.15}\n.gaelo-product .callout p{color:rgba(255,255,255,.85);font-size:1.02rem;line-height:1.6;margin:0}\n.gaelo-product .callout-actions{position:relative;z-index:1;display:flex;flex-direction:column;gap:12px}\n@media (max-width:820px){\n  .gaelo-product .callout{grid-template-columns:1fr;gap:24px}\n  .gaelo-product .callout-actions{flex-direction:row;flex-wrap:wrap}\n}\n\n\/* ============================================================\n   FINAL CTA \u2014 full-width edge-to-edge\n   ============================================================ *\/\n.gaelo-product .final-cta{\n  position:relative;overflow:hidden;width:100vw;\n  margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);\n  padding:clamp(80px,10vw,130px) clamp(20px,5vw,80px);\n  background:linear-gradient(135deg,var(--indigo),#1d1a5e,#0d2a42);\n  text-align:center;color:var(--white);\n}\n.gaelo-product .final-cta-glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 60% at 50% 100%,rgba(4,149,160,.28),transparent)}\n.gaelo-product .final-cta-grid-overlay{\n  position:absolute;inset:0;pointer-events:none;\n  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);\n  background-size:50px 50px;\n  -webkit-mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black,transparent);\n  mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black,transparent);\n}\n.gaelo-product .final-cta-content{position:relative;z-index:1;max-width:680px;margin:0 auto}\n.gaelo-product .final-cta h2{font-size:clamp(2rem,4vw,3rem);font-weight:800;letter-spacing:-.03em;line-height:1.08;color:var(--white);margin-bottom:18px}\n.gaelo-product .final-cta-sub{color:rgba(255,255,255,.65);font-weight:300;font-size:1.05rem;margin-bottom:38px;max-width:520px;margin-left:auto;margin-right:auto}\n.gaelo-product .final-cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}\n\n\/* ============================================================\n   LIGHTBOX \u2014 click any image to enlarge (sober, not fullscreen)\n   ============================================================ *\/\n.gaelo-product .zoomable{\n  cursor:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round'%3E%3Ccircle cx='13' cy='13' r='8' fill='rgba(4,149,160,0.35)'\/%3E%3Cline x1='19' y1='19' x2='27' y2='27'\/%3E%3Cline x1='13' y1='10' x2='13' y2='16'\/%3E%3Cline x1='10' y1='13' x2='16' y2='13'\/%3E%3C\/g%3E%3C\/svg%3E\") 13 13, zoom-in;\n}\n.gp-lightbox{\n  position:fixed;inset:0;z-index:99999;\n  display:flex;align-items:center;justify-content:center;\n  padding:clamp(20px,5vw,64px);\n  background:rgba(13,27,42,.82);\n  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);\n  opacity:0;visibility:hidden;\n  transition:opacity .3s cubic-bezier(.16,1,.3,1),visibility .3s;\n  cursor:zoom-out;\n}\n.gp-lightbox.is-open{opacity:1;visibility:visible}\n.gp-lightbox-img{\n  max-width:min(1100px,92vw);max-height:86vh;\n  width:auto;height:auto;\n  border-radius:10px;\n  box-shadow:0 30px 90px rgba(0,0,0,.5);\n  transform:scale(.96);\n  transition:transform .3s cubic-bezier(.16,1,.3,1);\n  background:#0d1b2a;\n  cursor:zoom-out;\n}\n\/* large screens : let the zoomed image grow to actually fill the screen *\/\n@media (min-width:1900px){\n  .gp-lightbox-img{max-width:min(1600px,92vw);max-height:88vh}\n}\n@media (min-width:2600px){\n  .gp-lightbox-img{max-width:min(2200px,92vw);max-height:90vh}\n}\n.gp-lightbox.is-open .gp-lightbox-img{transform:scale(1)}\n.gp-lightbox-close{\n  position:absolute;top:clamp(16px,3vw,28px);right:clamp(16px,3vw,28px);\n  width:44px;height:44px;border-radius:50%;\n  border:1px solid rgba(255,255,255,.25);\n  background:rgba(255,255,255,.1);color:#fff;\n  display:flex;align-items:center;justify-content:center;cursor:pointer;\n  transition:all .2s ease;\n}\n.gp-lightbox-close:hover{background:rgba(255,255,255,.2);transform:rotate(90deg)}\n.gp-lightbox-close svg{width:20px;height:20px}\n.gp-lightbox-cap{\n  position:absolute;bottom:clamp(16px,3vw,28px);left:0;right:0;\n  text-align:center;color:rgba(255,255,255,.7);\n  font-family:var(--font-mono);font-size:.78rem;\n  padding:0 24px;pointer-events:none;\n}\n@media (prefers-reduced-motion:reduce){\n  .gp-lightbox,.gp-lightbox-img{transition:none}\n}\n\n\/* ============================================================\n   REVEAL ON SCROLL\n   ============================================================ *\/\n.gaelo-product .reveal{\n  opacity:0;transform:translateY(32px);\n  transition:opacity .9s var(--ease),transform .9s var(--ease);\n}\n.gaelo-product .reveal.is-visible{opacity:1;transform:none}\n.gaelo-product .reveal-d1{transition-delay:.08s}\n.gaelo-product .reveal-d2{transition-delay:.16s}\n.gaelo-product .reveal-d3{transition-delay:.24s}\n.gaelo-product .reveal-d4{transition-delay:.32s}\n\n@keyframes gp-fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}\n\n\/* ============================================================\n   RESPONSIVE\n   ============================================================ *\/\n@media (max-width:900px){\n  .gaelo-product{font-size:16px}\n  .gaelo-product .hero{min-height:auto;padding:80px 20px 60px}\n  .gaelo-product .hero-scroll{display:none}\n  .gaelo-product .hero-mockup{margin-top:8px}\n  \/* hide the platform badge on mobile \u2014 leave more room for the H1 *\/\n  .gaelo-product .hero-badge{display:none}\n}\n@media (max-width:640px){\n  .gaelo-product .hero-actions{flex-direction:column;width:100%;align-items:stretch}\n  .gaelo-product .hero-actions .btn{justify-content:center;width:100%}\n  .gaelo-product .final-cta-actions{flex-direction:column;width:100%;align-items:stretch}\n  .gaelo-product .final-cta-actions .btn{justify-content:center}\n}\n@media (prefers-reduced-motion:reduce){\n  .gaelo-product *,\n  .gaelo-product *::before,\n  .gaelo-product *::after{\n    animation-duration:.01ms!important;\n    animation-iteration-count:1!important;\n    transition-duration:.01ms!important;\n  }\n}\n<\/style>\n\n<!-- ===== JSON-LD : SoftwareApplication + BreadcrumbList ===== -->\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@graph\": [\n    {\n      \"@type\": \"SoftwareApplication\",\n      \"@id\": \"\/fr\/logiciels\/plateforme-imagerie-essais-cliniques\/#software\",\n      \"name\": \"GaelO\",\n      \"applicationCategory\": \"MedicalApplication\",\n      \"operatingSystem\": \"Web-based\",\n      \"url\": \"\/fr\/logiciels\/plateforme-imagerie-essais-cliniques\/\",\n      \"description\": \"Clinical trial imaging management platform for secure DICOM orchestration, automated de-identification, and standardized central imaging review.\",\n      \"publisher\": {\n        \"@type\": \"Organization\",\n        \"name\": \"Pixilib\",\n        \"url\": \"\/\"\n      },\n      \"featureList\": [\n        \"DICOM data collection and de-identification\",\n        \"Central imaging review with disease-specific criteria\",\n        \"Relecture centralis\u00e9e ind\u00e9pendante en aveugle (BICR)\",\n        \"Contr\u00f4le qualit\u00e9 en temps r\u00e9el\",\n        \"Piste d'audit conforme \u00e0 ICH E6(R3)\",\n        \"Conformit\u00e9 RGPD et HIPAA\",\n        \"Support d'imagerie multi-modalit\u00e9s (TDM, IRM, TEP, RT, Pathologie)\"\n      ]\n    },\n    {\n      \"@type\": \"BreadcrumbList\",\n      \"itemListElement\": [\n        { \"@type\": \"ListItem\", \"position\": 1, \"name\": \"Home\", \"item\": \"\/en\/\" },\n        { \"@type\": \"ListItem\", \"position\": 2, \"name\": \"Software\", \"item\": \"\/en\/software\/\" },\n        { \"@type\": \"ListItem\", \"position\": 3, \"name\": \"GaelO \u2014 Clinical Trial Imaging Platform\", \"item\": \"\/fr\/logiciels\/plateforme-imagerie-essais-cliniques\/\" }\n      ]\n    }\n  ]\n}\n<\/script>\n\n<article class=\"gaelo-product\" lang=\"fr\">\n\n  <!-- Scroll progress bar -->\n  <div class=\"scroll-progress\" aria-hidden=\"true\"><\/div>\n\n  <!-- ============================================================\n       HERO\n       ============================================================ -->\n  <header class=\"hero\" role=\"banner\">\n    <div class=\"hero-canvas\" aria-hidden=\"true\">\n      <div class=\"hero-orb o1\"><\/div>\n      <div class=\"hero-orb o2\"><\/div>\n      <div class=\"hero-orb o3\"><\/div>\n      <div class=\"hero-grid\"><\/div>\n    <\/div>\n\n    <div class=\"hero-content\">\n      <span class=\"hero-badge\">\n        <span class=\"hero-badge-dot\"><\/span>\n        Clinical Trial Imaging Platform\n      <\/span>\n\n      <h1 class=\"hero-title\">\n        <span class=\"word w1\">Plateforme<\/span>\n        <span class=\"word w2\">de Gestion<\/span>\n        <span class=\"word w3 accent\">d'Imagerie<\/span>\n        <span class=\"word w4\">pour<\/span>\n        <span class=\"word w5\">Essais Cliniques :<\/span>\n        <span class=\"word w6 accent-o\">GaelO<\/span>\n      <\/h1>\n\n      <p class=\"hero-sub\">La solution tout-en-un pour l'orchestration s\u00e9curis\u00e9e d'imagerie m\u00e9dicale et la relecture centralis\u00e9e standardis\u00e9e.<\/p>\n\n      <div class=\"hero-actions\">\n        <a href=\"#contact\" class=\"btn btn-primary-light\">\n          Demander une d\u00e9mo\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg>\n        <\/a>\n        <a href=\"#features\" class=\"btn btn-ghost-light\">D\u00e9couvrir les fonctionnalit\u00e9s<\/a>\n      <\/div>\n\n      <figure class=\"hero-mockup\">\n        <div class=\"hero-mockup-bar\">\n          <span><\/span><span><\/span><span><\/span>\n          <div class=\"hero-mockup-url\">gaelo.fr \u00b7 clinical-trial-dashboard<\/div>\n        <\/div>\n        <img fetchpriority=\"high\"\n          src=\"\/wp-content\/uploads\/2026\/04\/clinical-trial-dashboard-gaelo.webp\"\n          alt=\"GaelO dashboard displaying clinical trial progress and study statistics.\"\n          width=\"1600\" height=\"1000\"\n          fetchpriority=\"high\" decoding=\"async\">\n      <\/figure>\n\n    <div class=\"hero-scroll\" aria-hidden=\"true\">\n      <div class=\"hero-scroll-dot\"><\/div>\n      Scroll\n    <\/div>\n    <\/div>\n  <\/header>\n\n  <!-- ============================================================\n       SECTION \u2014 INTRO \/ MANIFESTO (sticky media + checklist)\n       H2 : Faire de l'imagerie m\u00e9dicale un crit\u00e8re d\u00e9cisionnel\u2026\n       ============================================================ -->\n  <section class=\"ep-section bg-white\" aria-labelledby=\"intro-title\">\n    <div class=\"container\">\n      <div class=\"intro-grid\">\n\n        <div class=\"intro-sticky reveal\">\n          <div class=\"intro-card\">\n            <span class=\"ep-eyebrow\">Notre vision<\/span>\n            <h2 id=\"intro-title\">Faire de l'imagerie m\u00e9dicale un crit\u00e8re d\u00e9cisionnel pour b\u00e2tir des essais cliniques innovants<\/h2>\n            <blockquote class=\"intro-quote\">\"L'imagerie m\u00e9dicale est \u00e0 tort per\u00e7ue comme une modalit\u00e9 complexe \u00e0 int\u00e9grer dans les essais cliniques et n'a donc pas encore atteint sa vraie place : un outil de diagnostic et de pronostic sur lequel construire la m\u00e9decine personnalis\u00e9e.\"<\/blockquote>\n          <\/div>\n          <button class=\"collapse-toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"intro-more\" data-collapse-label-more=\"Lire la suite\" data-collapse-label-less=\"Voir moins\">\n            <span class=\"collapse-label\">Lire la suite<\/span>\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg>\n          <\/button>\n        <\/div>\n\n        <div class=\"intro-text reveal reveal-d1 collapsible\" id=\"intro-more\">\n          <p>Dans les essais cliniques, l'imagerie est trop souvent non centralis\u00e9e \u2014 les donn\u00e9es d'imagerie reposent sur une interpr\u00e9tation locale soumise \u00e0 de multiples biais (r\u00e9ponse non standardis\u00e9e, manque d'expertise, mauvaise classification\u2026).<\/p>\n          <p>At Pixilib we want to unlock the capabilities of medical imaging, building tools to seamlessly integrate medical imaging in clinical trials and develop new image quantifications to build new <strong>imaging biomarkers<\/strong>. Our goal is to provide clinically relevant image biomarkers to tailor new treatment strategies and push personalized therapy to the next level.<\/p>\n          <p>Dans les essais cliniques actuels, nous n'utilisons qu'une part tr\u00e8s limit\u00e9e des capacit\u00e9s de l'imagerie m\u00e9dicale, restreinte aux crit\u00e8res \"standards\" connus depuis des d\u00e9cennies. Utiliser des crit\u00e8res valid\u00e9s et connus est bon (et nous les supportons) \u2014 mais cr\u00e9er de nouveaux biomarqueurs et b\u00e2tir des usages innovants de l'imagerie m\u00e9dicale est encore mieux.<\/p>\n          <p>Notre objectif est de b\u00e2tir un \u00e9cosyst\u00e8me pour lib\u00e9rer la puissance de l'imagerie m\u00e9dicale et aider les chercheurs \u00e0 construire :<\/p>\n\n          <ul class=\"ep-list\">\n            <li>\n              <span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span>\n              New prognostic group identification for per-patient treatment adaptation\n            <\/li>\n            <li>\n              <span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span>\n              Integration of new biomarkers based on medical imaging alone or combined with biology and pathology\n            <\/li>\n            <li>\n              <span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span>\n              New imaging technologies in clinical trials: new devices, new tracers\n            <\/li>\n            <li>\n              <span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span>\n              Accelerate innovative trials using medical imaging as a decisional endpoint to deliver the most accurate treatment to carefully selected patients\n            <\/li>\n          <\/ul>\n        <\/div>\n\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- ============================================================\n       SECTION \u2014 WHY GAELO (counters + tabs + criteria table)\n       H2 : Pourquoi GaelO est la r\u00e9f\u00e9rence\u2026\n       ============================================================ -->\n  <section class=\"ep-section bg-soft\" aria-labelledby=\"why-title\">\n    <div class=\"container\">\n      <div class=\"ep-head center reveal\">\n        <span class=\"ep-eyebrow\">The Standard<\/span>\n        <h2 id=\"why-title\">Pourquoi GaelO est la r\u00e9f\u00e9rence pour l'<span class=\"accent\">imagerie centralis\u00e9e<\/span> et l'imagerie d'essais cliniques<\/h2>\n        <p>Dans le d\u00e9veloppement de m\u00e9dicaments moderne, l'imagerie m\u00e9dicale est un crit\u00e8re d\u00e9cisif \u2014 elle constitue la plupart du temps les crit\u00e8res objectifs de r\u00e9ponse pour l'\u00e9valuation du traitement. Les donn\u00e9es d'imagerie collect\u00e9es doivent \u00eatre standardis\u00e9es, auditables et valid\u00e9es.<\/p>\n      <\/div>\n\n      <!-- Counters -->\n      <div class=\"counters counters-a reveal reveal-d1\" style=\"margin-bottom:48px\">\n        <div class=\"counter\">\n          <div class=\"counter-row\">\n            <div class=\"counter-num\">4.2<span class=\"suffix\">\/5<\/span><\/div>\n            <div class=\"counter-icon\" aria-hidden=\"true\">\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg>\n            <\/div>\n          <\/div>\n          <div class=\"counter-label\">User satisfaction<\/div>\n        <\/div>\n        <div class=\"counter\">\n          <div class=\"counter-row\">\n            <div class=\"counter-num\">20<\/div>\n            <div class=\"counter-icon\" aria-hidden=\"true\">\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><\/svg>\n            <\/div>\n          <\/div>\n          <div class=\"counter-label\">Clinical studies<\/div>\n        <\/div>\n        <div class=\"counter\">\n          <div class=\"counter-row\">\n            <div class=\"counter-num\">10,000<\/div>\n            <div class=\"counter-icon\" aria-hidden=\"true\">\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polygon points=\"12 2 2 7 12 12 22 7 12 2\"\/><polyline points=\"2 17 12 22 22 17\"\/><polyline points=\"2 12 12 17 22 12\"\/><\/svg>\n            <\/div>\n          <\/div>\n          <div class=\"counter-label\">DICOM studies<\/div>\n        <\/div>\n        <div class=\"counter\">\n          <div class=\"counter-row\">\n            <div class=\"counter-num\">160<\/div>\n            <div class=\"counter-icon\" aria-hidden=\"true\">\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"\/><circle cx=\"12\" cy=\"10\" r=\"3\"\/><\/svg>\n            <\/div>\n          <\/div>\n          <div class=\"counter-label\">Centres investigateurs<\/div>\n        <\/div>\n        <div class=\"counter\">\n          <div class=\"counter-row\">\n            <div class=\"counter-num\">400<\/div>\n            <div class=\"counter-icon\" aria-hidden=\"true\">\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"\/><circle cx=\"12\" cy=\"7\" r=\"4\"\/><\/svg>\n            <\/div>\n          <\/div>\n          <div class=\"counter-label\">Active users<\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Tabs -->\n      <div class=\"tabs reveal reveal-d2\">\n        <div class=\"tabs-nav\" role=\"tablist\" aria-label=\"Pourquoi GaelO features\">\n          <button class=\"tabs-btn\" role=\"tab\" id=\"tab-1\" aria-controls=\"panel-1\" aria-selected=\"true\" data-tab=\"1\">\n            Collecte et d\u00e9sidentification DICOM\n          <\/button>\n          <button class=\"tabs-btn\" role=\"tab\" id=\"tab-2\" aria-controls=\"panel-2\" aria-selected=\"false\" tabindex=\"-1\" data-tab=\"2\">\n            Relecture centralis\u00e9e\n          <\/button>\n          <button class=\"tabs-btn\" role=\"tab\" id=\"tab-3\" aria-controls=\"panel-3\" aria-selected=\"false\" tabindex=\"-1\" data-tab=\"3\">\n            Collecte de donn\u00e9es auditable\n          <\/button>\n        <\/div>\n\n        <div class=\"tabs-panels\">\n          <!-- PANEL 1 -->\n          <div class=\"tabs-panel is-active\" id=\"panel-1\" role=\"tabpanel\" aria-labelledby=\"tab-1\">\n            <div class=\"tabs-panel-inner\">\n              <div class=\"tabs-panel-text\">\n                <h3>Seamless DICOM Data Collection &amp; De-identification<\/h3>\n                <p>GaelO simplifie la collecte de toutes les modalit\u00e9s d'imagerie m\u00e9dicale (TDM, IRM, TEP\u2026) depuis les centres investigateurs internationaux. Cela inclut la radiologie et la m\u00e9decine nucl\u00e9aire mais aussi la radioth\u00e9rapie, la pathologie digitale, l'imagerie optique ou la vid\u00e9o-endoscopie.<\/p>\n                <p>Les centres recruteurs n'ont besoin que d'un navigateur pour envoyer leurs images. Aucun logiciel \u00e0 installer sur leur ordinateur ou leur infrastructure \u2014 un utilisateur peut habituellement utiliser GaelO en quelques minutes.<\/p>\n                <p>\u00c0 l'upload, notre moteur automatis\u00e9 efface les informations de sant\u00e9 prot\u00e9g\u00e9es (PHI) <a href=\"https:\/\/dicom.nema.org\/medical\/dicom\/current\/output\/chtml\/part15\/chapter_e.html\" target=\"_blank\" rel=\"noopener nofollow\">selon les recommandations NEMA<\/a> pour garantir une pleine conformit\u00e9 RGPD et HIPAA de votre d\u00e9p\u00f4t d'<strong>imagerie centralis\u00e9e<\/strong>.<\/p>\n              <\/div>\n              <figure class=\"tabs-panel-visual\">\n                <img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/04\/dicom-upload-deidentification.webp\" alt=\"Secure DICOM upload interface with de-identification progress bar.\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"450\">\n              <\/figure>\n            <\/div>\n          <\/div>\n\n          <!-- PANEL 2 -->\n          <div class=\"tabs-panel\" id=\"panel-2\" role=\"tabpanel\" aria-labelledby=\"tab-2\" hidden>\n            <div class=\"tabs-panel-inner\">\n              <div class=\"tabs-panel-text\">\n                <h3>Relecture centralis\u00e9e &amp; Disease-Specific Criteria<\/h3>\n                <p>GaelO offre aux relecteurs experts des environnements de relecture standardis\u00e9s. Chaque expert peut relire l'imagerie m\u00e9dicale via notre <a href=\"\/fr\/logiciels\/visualiseur-dicom\/\">visualiseur DICOM d\u00e9di\u00e9<\/a> avec des fonctionnalit\u00e9s de visualisation et de quantification avanc\u00e9es.<\/p>\n                <p>Selon les sp\u00e9cifications de chaque essai clinique, la plateforme int\u00e8gre les crit\u00e8res d'\u00e9valuation adapt\u00e9s, avec des eCRFs d\u00e9di\u00e9s et personnalisables. GaelO supporte les relectures uniques ou multiples, les relectures ouvertes ou en aveugle avec adjudication de d\u00e9cision en cas de discordance de lecture.<\/p>\n                <p>Our platform already supports the most used criteria in global <strong>clinical trial imaging<\/strong> research, in their latest version \u2014 see the table below.<\/p>\n              <\/div>\n              <figure class=\"tabs-panel-visual\">\n                <img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/04\/rano-evaluation-criteria-ecrf.webp\" alt=\"GaelO eCRF form featuring RANO evaluation criteria for meningioma.\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"450\">\n              <\/figure>\n            <\/div>\n          <\/div>\n\n          <!-- PANEL 3 -->\n          <div class=\"tabs-panel\" id=\"panel-3\" role=\"tabpanel\" aria-labelledby=\"tab-3\" hidden>\n            <div class=\"tabs-panel-inner\">\n              <div class=\"tabs-panel-text\">\n                <h3>Auditable data capture<\/h3>\n                <p>La plateforme GaelO garde en m\u00e9moire chaque mise \u00e0 jour de donn\u00e9e. Pour chaque action, nous tra\u00e7ons l'horodatage, la modification de donn\u00e9e et l'utilisateur d'origine \u2014 d\u00e9livrant une piste d'audit compl\u00e8te pr\u00eate \u00e0 \u00eatre audit\u00e9e.<\/p>\n                <p>La piste d'audit sauvegarde tout l'historique de votre essai, de la premi\u00e8re inclusion \u00e0 la derni\u00e8re relecture, d\u00e9livrant un suivi complet des changements pr\u00eat \u00e0 \u00eatre audit\u00e9 \u00e0 tout moment.<\/p>\n                <p>Cette chronologie inalt\u00e9rable fournit des preuves solides de coh\u00e9rence des donn\u00e9es et la conformit\u00e9 r\u00e9glementaire aux plus hauts standards internationaux pour l'<strong>Electronic Data Capture<\/strong> en recherche clinique.<\/p>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Criteria block -->\n      <div class=\"criteria-block reveal\" id=\"criteria\">\n        <div class=\"criteria-block-head\">\n          <span class=\"ep-eyebrow\">Evaluation Criteria<\/span>\n          <h3 class=\"criteria-block-title\">Crit\u00e8res d'essais cliniques support\u00e9s, dans leurs versions les plus r\u00e9centes<\/h3>\n          <p class=\"criteria-block-sub\">Each criterion links to its reference publication. GaelO int\u00e8gre ces crit\u00e8res sous forme d'eCRFs personnalisables au sein de l'interface de relecture \u2014 garantissant une collecte de donn\u00e9es standardis\u00e9e entre les centres et les relecteurs.<\/p>\n        <\/div>\n\n        <div class=\"criteria-table\">\n          <table>\n            <caption class=\"sr-only\" style=\"position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0\">Supported evaluation criteria per clinical trial topic, with links to peer-reviewed references.<\/caption>\n            <thead>\n              <tr><th scope=\"col\">Clinical Trial Topics<\/th><th scope=\"col\">Evaluation Criteria<\/th><\/tr>\n            <\/thead>\n            <tbody>\n              <tr>\n                <td class=\"topic\">General Oncology<\/td>\n                <td><div class=\"criteria-list\">\n                  <a class=\"criteria-link\" href=\"https:\/\/pubmed.ncbi.nlm.nih.gov\/19097774\/\" target=\"_blank\" rel=\"noopener nofollow\">RECIST 1.1<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg><\/a>\n                  <a class=\"criteria-link\" href=\"https:\/\/pubmed.ncbi.nlm.nih.gov\/28271869\/\" target=\"_blank\" rel=\"noopener nofollow\">iRECIST<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg><\/a>\n                  <a class=\"criteria-link\" href=\"https:\/\/pmc.ncbi.nlm.nih.gov\/articles\/PMC4976461\/\" target=\"_blank\" rel=\"noopener nofollow\">PERCIST<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg><\/a>\n                <\/div><\/td>\n              <\/tr>\n              <tr>\n                <td class=\"topic\">Lymphoma<\/td>\n                <td><div class=\"criteria-list\">\n                  <a class=\"criteria-link\" href=\"https:\/\/pubmed.ncbi.nlm.nih.gov\/25113753\/\" target=\"_blank\" rel=\"noopener nofollow\">Lugano<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg><\/a>\n                  <a class=\"criteria-link\" href=\"https:\/\/pubmed.ncbi.nlm.nih.gov\/19544140\/\" target=\"_blank\" rel=\"noopener nofollow\">Deauville<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg><\/a>\n                  <a class=\"criteria-link\" href=\"https:\/\/pubmed.ncbi.nlm.nih.gov\/28379322\/\" target=\"_blank\" rel=\"noopener nofollow\">RECIL<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg><\/a>\n                  <a class=\"criteria-link\" href=\"https:\/\/pubmed.ncbi.nlm.nih.gov\/21518924\/\" target=\"_blank\" rel=\"noopener nofollow\">DeltaSUVmax<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg><\/a>\n                  <a class=\"criteria-link\" href=\"https:\/\/pubmed.ncbi.nlm.nih.gov\/34379496\/\" target=\"_blank\" rel=\"noopener nofollow\">TMTV<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg><\/a>\n                <\/div><\/td>\n              <\/tr>\n              <tr>\n                <td class=\"topic\">Neuro Oncology<\/td>\n                <td><div class=\"criteria-list\">\n                  <a class=\"criteria-link\" href=\"https:\/\/ascopubs.org\/doi\/10.1200\/JCO.23.01059\" target=\"_blank\" rel=\"noopener nofollow\">RANO<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg><\/a>\n                <\/div><\/td>\n              <\/tr>\n              <tr>\n                <td class=\"topic\">Myeloma<\/td>\n                <td><div class=\"criteria-list\">\n                  <a class=\"criteria-link\" href=\"https:\/\/pubmed.ncbi.nlm.nih.gov\/19544140\/\" target=\"_blank\" rel=\"noopener nofollow\">Deauville<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg><\/a>\n                <\/div><\/td>\n              <\/tr>\n              <tr>\n                <td class=\"topic\">Prostate Cancer<\/td>\n                <td><div class=\"criteria-list\">\n                  <a class=\"criteria-link\" href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S0302283823025745\" target=\"_blank\" rel=\"noopener nofollow\">Promise v2<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg><\/a>\n                  <a class=\"criteria-link\" href=\"https:\/\/pubs.rsna.org\/doi\/10.1148\/radiol.222148\" target=\"_blank\" rel=\"noopener nofollow\">RECIP<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg><\/a>\n                  <a class=\"criteria-link\" href=\"https:\/\/jnm.snmjournals.org\/content\/61\/5\/678\" target=\"_blank\" rel=\"noopener nofollow\">PPP<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg><\/a>\n                  <a class=\"criteria-link\" href=\"https:\/\/pmc.ncbi.nlm.nih.gov\/articles\/PMC4872347\/\" target=\"_blank\" rel=\"noopener nofollow\">PCWG3<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7 17L17 7M7 7h10v10\"\/><\/svg><\/a>\n                <\/div><\/td>\n              <\/tr>\n            <\/tbody>\n          <\/table>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- ============================================================\n       SECTION \u2014 CORE FEATURES (icon boxes)\n       H2 : Fonctionnalit\u00e9s cl\u00e9s for Clinical Trial Imaging\u2026\n       ============================================================ -->\n  <section class=\"ep-section bg-white\" id=\"features\" aria-labelledby=\"features-title\">\n    <div class=\"container\">\n      <div class=\"ep-head center reveal\">\n        <span class=\"ep-eyebrow\">Fonctionnalit\u00e9s cl\u00e9s<\/span>\n        <h2 id=\"features-title\">Fonctionnalit\u00e9s cl\u00e9s pour l'imagerie d'essais cliniques et l'imagerie centralis\u00e9e<\/h2>\n        <p>La plateforme GaelO est con\u00e7ue avec un ensemble complet de fonctionnalit\u00e9s d\u00e9di\u00e9es \u00e0 une gestion fluide des donn\u00e9es d'imagerie m\u00e9dicale dans les essais cliniques.<\/p>\n      <\/div>\n\n      <div class=\"iconbox-grid reveal reveal-d1\" id=\"features-grid\">\n\n        <article class=\"iconbox\">\n          <div class=\"iconbox-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M3 9h18M9 21V9\"\/><\/svg><\/div>\n          <h3>Une structure de donn\u00e9es claire pour votre essai clinique<\/h3>\n          <p>We store medical imaging data in a clean, efficient structure built around three clear entities:<\/p>\n          <ul class=\"ep-list\">\n            <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>Patients<\/strong><\/li>\n            <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>Visites<\/strong><\/li>\n            <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>Relectures<\/strong><\/li>\n          <\/ul>\n        <\/article>\n\n        <article class=\"iconbox\">\n          <div class=\"iconbox-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg><\/div>\n          <h3>Un contr\u00f4le d'acc\u00e8s par r\u00f4le d\u00e9di\u00e9 aux collaborateurs de recherche<\/h3>\n          <p>Un r\u00f4le d\u00e9di\u00e9 \u00e0 chaque acteur de votre essai \u2014 Investigateurs, Contr\u00f4leurs, Moniteurs, Relecteurs et Superviseurs \u2014 chacun avec des fonctionnalit\u00e9s adapt\u00e9es pour garantir une collecte de donn\u00e9es fluide et qualifi\u00e9e.<\/p>\n        <\/article>\n\n        <article class=\"iconbox\">\n          <div class=\"iconbox-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><polyline points=\"17 8 12 3 7 8\"\/><line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\"\/><\/svg><\/div>\n          <h3>Plateforme web sans installation pour la collecte de donn\u00e9es d'imagerie m\u00e9dicale<\/h3>\n          <p>Envoyer l'imagerie est aussi simple qu'un glisser-d\u00e9poser \u2014 sans compromettre la s\u00e9curit\u00e9. Aucune installation, d\u00e9sidentification automatis\u00e9e, v\u00e9rifications de coh\u00e9rence des donn\u00e9es et upload chiffr\u00e9 haute vitesse. Aucune formation n\u00e9cessaire.<\/p>\n        <\/article>\n\n        <article class=\"iconbox\">\n          <div class=\"iconbox-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><polyline points=\"22 4 12 14.01 9 11.01\"\/><\/svg><\/div>\n          <h3>Contr\u00f4le qualit\u00e9 (QC) en temps r\u00e9el pour l'imagerie d'essais cliniques<\/h3>\n          <p>\u00c0 la r\u00e9ception des images, les contr\u00f4leurs effectuent des v\u00e9rifications qualit\u00e9 imm\u00e9diates pour v\u00e9rifier le respect du protocole. Les donn\u00e9es non conformes d\u00e9clenchent une requ\u00eate corrective en un clic vers le centre \u2014 r\u00e9duisant les requ\u00eates co\u00fbteuses plus tard dans l'essai.<\/p>\n        <\/article>\n\n        <article class=\"iconbox\">\n          <div class=\"iconbox-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"20\" x2=\"18\" y2=\"10\"\/><line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"4\"\/><line x1=\"6\" y1=\"20\" x2=\"6\" y2=\"14\"\/><\/svg><\/div>\n          <h3>Suivi d'essai clinique en temps r\u00e9el<\/h3>\n          <p>Suivez la progression de l'\u00e9tude \u00e0 tout moment : centralisation des donn\u00e9es, progression QC, d\u00e9cisions de relecture. Les outils de communication int\u00e9gr\u00e9s vous permettent d'envoyer des rappels pour maintenir chaque centre en phase avec vos jalons.<\/p>\n          <div class=\"iconbox-media\">\n            <img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/04\/clinical-visit-status-repartition.webp\" alt=\"Distribution charts of visit statuses for a clinical trial study.\" loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"700\">\n          <\/div>\n        <\/article>\n\n        <article class=\"iconbox is-extra-mobile\">\n          <div class=\"iconbox-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg><\/div>\n          <h3>Visualisation et traitement d'imagerie m\u00e9dicale en imagerie centralis\u00e9e<\/h3>\n          <p>Un visualiseur complet tournant enti\u00e8rement dans le navigateur, avec les CRFs int\u00e9gr\u00e9s directement dans le visualiseur. Toutes les modalit\u00e9s, tous les outils de visualisation (MPR, MIP, colormaps), quantification, recalage et workflows avanc\u00e9s comme le Metabolic Tumor Volume.<\/p>\n        <\/article>\n\n        <article class=\"iconbox is-extra\">\n          <div class=\"iconbox-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7z\"\/><circle cx=\"12\" cy=\"12\" r=\"2.5\"\/><\/svg><\/div>\n          <h3>Relecture centralis\u00e9e ind\u00e9pendante en aveugle (BICR)<\/h3>\n          <p>D'une lecture qualitative unique \u00e0 des relectures multiples en aveugle sur un crit\u00e8re composite. Les eCRFs personnalis\u00e9s et auto-explicatifs v\u00e9rifient la coh\u00e9rence \u00e0 chaque \u00e9tape, avec une \u00e9tape d'adjudication int\u00e9gr\u00e9e en cas de discordance.<\/p>\n        <\/article>\n\n        <article class=\"iconbox is-extra\">\n          <div class=\"iconbox-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><polyline points=\"9 12 11 14 15 10\"\/><\/svg><\/div>\n          <h3>Piste d'audit pour la conformit\u00e9 r\u00e9glementaire<\/h3>\n          <p>Each modification is written to a non-alterable audit trail as required by the <a href=\"https:\/\/database.ich.org\/sites\/default\/files\/ICH_E6%28R3%29_Step4_FinalGuideline_2025_0106.pdf\" target=\"_blank\" rel=\"noopener nofollow\">ICH E6(R3) Guideline<\/a> \u2014 action, user and exact time. A fully auditable data timeline for your auditors.<\/p>\n        <\/article>\n\n        <article class=\"iconbox is-extra\">\n          <div class=\"iconbox-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\/><polyline points=\"7 10 12 15 17 10\"\/><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"\/><\/svg><\/div>\n          <h3>Disponibilit\u00e9 des donn\u00e9es, partout, \u00e0 tout moment<\/h3>\n          <p>Les donn\u00e9es vous appartiennent. Les exports standardis\u00e9s, d\u00e9j\u00e0 cur\u00e9s au moment de la collecte, sont g\u00e9n\u00e9r\u00e9s en quelques secondes et enti\u00e8rement pr\u00eats pour l'analyse statistique \u2014 accessibles aux utilisateurs identifi\u00e9s selon leurs permissions.<\/p>\n        <\/article>\n\n        <article class=\"iconbox is-extra\">\n          <div class=\"iconbox-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"23 4 23 10 17 10\"\/><polyline points=\"1 20 1 14 7 14\"\/><path d=\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"\/><\/svg><\/div>\n          <h3>R\u00e9utilisation des donn\u00e9es collect\u00e9es dans des \u00e9tudes ancillaires<\/h3>\n          <p>L'imagerie m\u00e9dicale est une donn\u00e9e \u00e0 haute valeur. Ouvrez une \u00e9tude ancillaire \u00e0 la fin d'un essai \u2014 ou en parall\u00e8le \u2014 et r\u00e9utilisez tout ou partie du dataset original avec de nouveaux CRFs personnalis\u00e9s, dans des espaces de travail enti\u00e8rement isol\u00e9s.<\/p>\n          <ul class=\"ep-list\">\n            <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>Isolated workspaces<\/strong><\/li>\n            <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>Customized eCRFs<\/strong><\/li>\n            <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>Instant dataset cloning<\/strong><\/li>\n          <\/ul>\n        <\/article>\n\n        <article class=\"iconbox is-extra\">\n          <div class=\"iconbox-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg><\/div>\n          <h3>Infrastructure s\u00e9curis\u00e9e et certifi\u00e9e<\/h3>\n          <p>Clinical trial data requires the highest level of protection. GaelO est h\u00e9berg\u00e9 sur une infrastructure cloud hautement s\u00e9curis\u00e9e, de niveau m\u00e9dical, conforme aux r\u00e9glementations internationales sur les donn\u00e9es de sant\u00e9. Concentrez-vous sur votre science pendant que nous g\u00e9rons la souverainet\u00e9 des donn\u00e9es.<\/p>\n          <ul class=\"ep-list\">\n            <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>HDS Certified<\/strong><\/li>\n            <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>Conforme HIPAA<\/strong><\/li>\n            <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>256-bit encryption<\/strong><\/li>\n          <\/ul>\n        <\/article>\n\n        <article class=\"iconbox is-extra\">\n          <div class=\"iconbox-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"16 18 22 12 16 6\"\/><polyline points=\"8 6 2 12 8 18\"\/><line x1=\"13\" y1=\"4\" x2=\"11\" y2=\"20\"\/><\/svg><\/div>\n          <h3>Interop\u00e9rabilit\u00e9 et architecture API-first<\/h3>\n          <p>GaelO ne fonctionne pas en isolement. Notre plateforme propose une API REST robuste et s\u00e9curis\u00e9e con\u00e7ue pour se connecter sans effort \u00e0 votre \u00e9cosyst\u00e8me d'essais cliniques existant. Synchronisez votre workflow d'imagerie avec vos outils actuels sans friction.<\/p>\n          <ul class=\"ep-list\">\n            <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>EDC &amp; CTMS synchronization<\/strong><\/li>\n            <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>Automated triggers<\/strong><\/li>\n            <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>Formats standardis\u00e9s<\/strong><\/li>\n          <\/ul>\n        <\/article>\n\n      <\/div>\n\n      <div class=\"collapse-wrap\">\n        <button class=\"collapse-toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"features-grid\" data-collapse-target=\"grid\" data-collapse-label-more=\"See all features\" data-collapse-label-less=\"Show fewer\">\n          <span class=\"collapse-label\">See all features<\/span>\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg>\n        <\/button>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- ============================================================\n       SECTION \u2014 USER ROLES + DATA STRUCTURE schema\n       Visual enrichment of two Fonctionnalit\u00e9s cl\u00e9s H3 :\n       \"A role based access control\" + \"A clean data structure\"\n       ============================================================ -->\n  <section class=\"ep-section bg-soft\" aria-labelledby=\"roles-title\">\n    <div class=\"container\">\n      <div class=\"ep-head center reveal\">\n        <span class=\"ep-eyebrow\">R\u00f4les utilisateurs &amp; Data Architecture<\/span>\n        <h2 id=\"roles-title\">Un r\u00f4le d\u00e9di\u00e9 \u00e0 chaque acteur d'essai clinique<\/h2>\n        <p>GaelO d\u00e9finit un r\u00f4le pr\u00e9cis pour chaque acteur d'un essai clinique, garantissant une collecte de donn\u00e9es fluide et qualifi\u00e9e \u2014 et structure chaque \u00e9tude autour d'un mod\u00e8le de donn\u00e9es clair et auditable.<\/p>\n      <\/div>\n\n      <div class=\"roles-wrap reveal reveal-d1\">\n        <button class=\"roles-nav roles-nav-prev\" type=\"button\" aria-label=\"Previous role\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"15 18 9 12 15 6\"\/><\/svg>\n        <\/button>\n        <button class=\"roles-nav roles-nav-next\" type=\"button\" aria-label=\"Next role\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg>\n        <\/button>\n        <div class=\"roles-viewport\">\n          <div class=\"roles-track\">\n\n        <article class=\"role-card investigator\">\n          <div class=\"role-card-visual\">\n            <img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/05\/gaelo-role-investigator-dicom-upload-1.png\" alt=\"Illustration representing an investigator importing medical imaging data and full-web DICOM files into GaelO.\" loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"280\">\n          <\/div>\n          <div class=\"role-card-body\">\n            <span class=\"role-card-label\">R\u00f4le 01<\/span>\n            <h3>Investigateurs<\/h3>\n            <p>Upload DICOM images and associated information through customizable CRFs \u2014 full-web, no installation required.<\/p>\n          <\/div>\n        <\/article>\n\n        <article class=\"role-card controller\">\n          <div class=\"role-card-visual\">\n            <img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/05\/gaelo-role-controller-quality-control.png\" alt=\"Illustration representing a data controller running real-time quality control checks on clinical trials.\" loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"280\">\n          <\/div>\n          <div class=\"role-card-body\">\n            <span class=\"role-card-label\">R\u00f4le 02<\/span>\n            <h3>Contr\u00f4leurs<\/h3>\n            <p>Effectuent le contr\u00f4le qualit\u00e9 en temps r\u00e9el sur les donn\u00e9es re\u00e7ues et envoient des requ\u00eates correctives en un clic aux centres recruteurs quand n\u00e9cessaire.<\/p>\n          <\/div>\n        <\/article>\n\n        <article class=\"role-card reviewer\">\n          <div class=\"role-card-visual\">\n            <img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/05\/gaelo-role-reviewer-dicom-viewer.png\" alt=\"Illustration representing a medical expert reviewing clinical imaging using the embedded viewer and eCRF.\" loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"280\">\n          <\/div>\n          <div class=\"role-card-body\">\n            <span class=\"role-card-label\">R\u00f4le 03<\/span>\n            <h3>Relecteurs<\/h3>\n            <p>Experts m\u00e9dicaux effectuant la relecture centralis\u00e9e via un visualiseur DICOM complet avec eCRFs personnalisables \u2014 lectures multiples en aveugle et adjudication support\u00e9es.<\/p>\n          <\/div>\n        <\/article>\n\n        <article class=\"role-card supervisor\">\n          <div class=\"role-card-visual\">\n            <img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/05\/gaelo-role-supervisor-monitoring-dashboard-2.png\" alt=\"Illustration representing a clinical trial supervisor tracking study progress and system audit trails.\" loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"280\">\n          <\/div>\n          <div class=\"role-card-body\">\n            <span class=\"role-card-label\">R\u00f4le 04<\/span>\n            <h3>Superviseurs<\/h3>\n            <p>Gestionnaires d'essais cliniques avec un acc\u00e8s complet \u00e0 l'imagerie, aux CRFs, \u00e0 la piste d'audit et \u00e0 la gestion des utilisateurs \u2014 ils peuvent d\u00e9bloquer des donn\u00e9es, modifier des r\u00f4les et envoyer des rappels.<\/p>\n          <\/div>\n        <\/article>\n\n        <article class=\"role-card monitor\">\n          <div class=\"role-card-visual\">\n            <img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/05\/gaelo-role-monitor-site-inspection-2.png\" alt=\"Illustration representing a clinical monitor auditing data consistency and site compliance with a magnifying glass.\" loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"280\">\n          <\/div>\n          <div class=\"role-card-body\">\n            <span class=\"role-card-label\">R\u00f4le 05<\/span>\n            <h3>Moniteurs<\/h3>\n            <p>R\u00f4le en lecture seule pour suivre l'activit\u00e9 et la coh\u00e9rence des donn\u00e9es d'un ou plusieurs centres participants.<\/p>\n          <\/div>\n        <\/article>\n\n          <\/div>\n        <\/div>\n        <div class=\"roles-dots\" role=\"tablist\" aria-label=\"Role pagination\"><\/div>\n      <\/div>\n\n      <div class=\"ep-head center reveal\" style=\"margin-top:clamp(56px,7vw,90px);margin-bottom:0\">\n        <span class=\"ep-eyebrow\">Data Architecture<\/span>\n        <h2 style=\"font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:14px\">Une structure de donn\u00e9es claire pour votre essai clinique<\/h2>\n        <p>Chaque \u00e9tude GaelO suit un mod\u00e8le de donn\u00e9es clair et hi\u00e9rarchique \u2014 rendant l'analyse statistique en aval et l'auditabilit\u00e9 radicalement plus simples.<\/p>\n      <\/div>\n\n      <!-- ===================== Cards + arrows ===================== -->\n      <div class=\"ds-cards reveal reveal-d1\" role=\"img\" aria-label=\"Structure de donn\u00e9es d'essai clinique : une \u00e9tude contient N patients, chacun avec N visites (images DICOM et formulaires investigateurs), menant chacune \u00e0 N relectures (lectures en aveugle et adjudication) et enfin une conclusion.\">\n        <div class=\"ds-card ds-card-1\">\n          <div class=\"ds-card-title\">\u00c9tude<\/div>\n        <\/div>\n        <div class=\"ds-arrow\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div>\n        <div class=\"ds-card ds-card-2\">\n          <div class=\"ds-card-title\">N-Patients<\/div>\n        <\/div>\n        <div class=\"ds-arrow\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div>\n        <div class=\"ds-card ds-card-3\">\n          <div class=\"ds-card-title\">N-Visits<\/div>\n          <div class=\"ds-card-sub\">DICOM images<br>Investigator forms<\/div>\n        <\/div>\n        <div class=\"ds-arrow\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div>\n        <div class=\"ds-card ds-card-4\">\n          <div class=\"ds-card-title\">N-Reviews<\/div>\n          <div class=\"ds-card-sub\">Blind reads<br>Adjudication<\/div>\n        <\/div>\n        <div class=\"ds-arrow\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/div>\n        <div class=\"ds-card ds-card-5\">\n          <div class=\"ds-card-title\">Conclusion<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- ============================================================\n       SECTION \u2014 MODALITIES (image boxes)\n       H2 : Modalit\u00e9s d'imagerie support\u00e9es\n       ============================================================ -->\n  <section class=\"ep-section bg-soft\" aria-labelledby=\"modalities-title\">\n    <div class=\"container\">\n      <div class=\"ep-head center reveal\">\n        <span class=\"ep-eyebrow\">Multi-Modal<\/span>\n        <h2 id=\"modalities-title\">Modalit\u00e9s d'imagerie support\u00e9es<\/h2>\n        <p>GaelO est une plateforme multi-modale capable de g\u00e9rer le spectre complet de l'imagerie m\u00e9dicale utilis\u00e9e en recherche moderne. Chaque modalit\u00e9 est g\u00e9r\u00e9e avec une pr\u00e9cision sp\u00e9cifique au protocole.<\/p>\n      <\/div>\n\n      <div class=\"modalities-grid reveal reveal-d1\">\n        <article class=\"mod-card\">\n          <div class=\"mod-card-media\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/05\/radiology-ct-scan-multiplanar-reconstruction.jpg\" alt=\"Reconstruction multiplanaire d'un examen TDM thoracique et abdominal au sein de la plateforme de relecture.\" loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"400\"><\/div>\n          <div class=\"mod-card-body\"><h3>Radiologie<\/h3><p>Radiography, Ultrasound, Computed Tomography, Magnetic Resonance Imaging.<\/p><\/div>\n        <\/article>\n        <article class=\"mod-card\">\n          <div class=\"mod-card-media\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/05\/PixiLearn-PET-medecine-nucleaire.jpg\" alt=\"PET brain scan analysis displaying metabolic activity within the medical imaging interface.\" loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"400\"><\/div>\n          <div class=\"mod-card-body\"><h3>M\u00e9decine nucl\u00e9aire<\/h3><p>Planar scintigraphy, SPECT, Positron Emission Tomography (PET\/CT).<\/p><\/div>\n        <\/article>\n        <article class=\"mod-card\">\n          <div class=\"mod-card-media\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/05\/radiotherapy-treatment-planning-contouring.png\" alt=\"Radiotherapy treatment planning showing tumoral contouring and radiation dose distribution curves within the GaelO interface.\" loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"400\"><\/div>\n          <div class=\"mod-card-body\"><h3>Radioth\u00e9rapie<\/h3><p>RTSTRUCT, RTDOSE, RTPLAN \u2014 full support of treatment planning data.<\/p><\/div>\n        <\/article>\n        <article class=\"mod-card\">\n          <div class=\"mod-card-media\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/05\/digital-pathology-whole-slide-imaging.jpg\" alt=\"High-resolution view of a digital pathology whole slide image managed in DICOM format.\" loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"400\"><\/div>\n          <div class=\"mod-card-body\"><h3>Anatomopathologie<\/h3><p>DICOMized Whole Slide Images for digital pathology workflows.<\/p><\/div>\n        <\/article>\n        <article class=\"mod-card\">\n          <div class=\"mod-card-media\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/05\/optical-imaging-fundus-photography-3.jpg\" alt=\"Ophthalmic optical imaging displaying a fundus photograph for clinical trial evaluation.\" loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"400\"><\/div>\n          <div class=\"mod-card-body\"><h3>Imagerie optique &amp; vid\u00e9o<\/h3><p>Endoscopy, dermatoscopy, ophthalmology \u2014 in DICOM format.<\/p><\/div>\n        <\/article>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- ============================================================\n       SECTION \u2014 MID-PAGE CALLOUT (CTA box) + TMTV mention\n       ============================================================ -->\n  <section class=\"ep-section bg-white\" aria-label=\"Total Metabolic Tumor Volume\">\n    <div class=\"container\">\n      <div class=\"callout reveal\">\n        <div class=\"callout-content\">\n          <h2>Un nouveau biomarqueur dans les essais cliniques : le Total Metabolic Tumor Volume<\/h2>\n          <p>GaelO se sp\u00e9cialise dans l'extraction automatis\u00e9e du TMTV \u00e0 partir de la TEP \u2014 une \u00e9valuation volum\u00e9trique de l'ensemble de la charge tumorale active, prouv\u00e9e dans le lymphome et le cancer de la prostate. Que votre \u00e9tude utilise le 18F-FDG, le PSMA ou des traceurs sp\u00e9cialis\u00e9s, notre IA Human in the Loop d\u00e9livre des donn\u00e9es robustes, reproductibles et pr\u00eates pour la r\u00e9glementation.<\/p>\n        <\/div>\n        <div class=\"callout-actions\">\n          <a href=\"\/fr\/algorithmes\/segmentation-imagerie-medicale\/\" class=\"btn btn-primary-light\">\n            Explorer les algorithmes IA\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg>\n          <\/a>\n          <a href=\"#contact\" class=\"btn btn-ghost-light\">Talk to our team<\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- ============================================================\n       SECTION \u2014 PERSONAS (GaelO est-il fait pour vous ?)\n       ============================================================ -->\n  <section class=\"ep-section bg-soft\" aria-labelledby=\"personas-title\">\n    <div class=\"container\">\n      <div class=\"ep-head center reveal\">\n        <span class=\"ep-eyebrow\">For Every Stakeholder<\/span>\n        <h2 id=\"personas-title\">GaelO est-il fait pour vous ?<\/h2>\n        <p>Une plateforme polyvalente et \u00e9volutive con\u00e7ue pour tout l'\u00e9cosyst\u00e8me de la recherche clinique \u2014 de la recherche en phase pr\u00e9coce \u00e0 la surveillance post-commercialisation.<\/p>\n      <\/div>\n\n      <div class=\"personas-grid reveal reveal-d1\">\n        <article class=\"persona pharma\">\n          <div class=\"persona-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 2L2 7l10 5 10-5-10-5z\"\/><path d=\"M2 17l10 5 10-5\"\/><path d=\"M2 12l10 5 10-5\"\/><\/svg><\/div>\n          <div class=\"persona-label\">Pharma \u00b7 Biotech<\/div>\n          <h3>Industrie pharmaceutique<\/h3>\n          <p>Acteurs pharma \u00e0 grande \u00e9chelle g\u00e9rant des essais de phase III internationaux \u2014 notre solution s'adapte \u00e0 vos ambitions.<\/p>\n        <\/article>\n        <article class=\"persona medtech\">\n          <div class=\"persona-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"\/><\/svg><\/div>\n          <div class=\"persona-label\">Innovation<\/div>\n          <h3>Startups MedTech<\/h3>\n          <p>Fast-growing MedTech startups bringing new devices and tracers into clinical research with agility.<\/p>\n        <\/article>\n        <article class=\"persona academic\">\n          <div class=\"persona-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 10v6M2 10l10-5 10 5-10 5z\"\/><path d=\"M6 12v5c0 2 4 3 6 3s6-1 6-3v-5\"\/><\/svg><\/div>\n          <div class=\"persona-label\">Research<\/div>\n          <h3>H\u00f4pitaux universitaires et acad\u00e9miques<\/h3>\n          <p>Centralisez les essais initi\u00e9s par investigateurs (IITs) tout en garantissant la confidentialit\u00e9 des donn\u00e9es patient et la rigueur scientifique.<\/p>\n        <\/article>\n        <article class=\"persona cro\">\n          <div class=\"persona-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg><\/div>\n          <div class=\"persona-label\">Partenaires de services<\/div>\n          <h3>CROs et Imaging CROs<\/h3>\n          <p>Renforcez votre offre <a href=\"\/fr\/services\/imaging-cro\/\">Imaging CRO<\/a> avec des workflows automatis\u00e9s et des outils de relecture centralis\u00e9e standardis\u00e9s.<\/p>\n        <\/article>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- ============================================================\n       SECTION \u2014 ECOSYSTEM (product image-boxes)\n       H2 : L'\u00e9cosyst\u00e8me GaelO\n       ============================================================ -->\n  <section class=\"ep-section bg-white\" aria-labelledby=\"ecosystem-title\">\n    <div class=\"container\">\n      <div class=\"ep-head center reveal\">\n        <span class=\"ep-eyebrow\">L'\u00e9cosyst\u00e8me GaelO<\/span>\n        <h2 id=\"ecosystem-title\">Une <span class=\"accent\">infrastructure unifi\u00e9e<\/span> pour la recherche en imagerie m\u00e9dicale<\/h2>\n        <p>De la centralisation d'essais cliniques au PACS de recherche et \u00e0 la segmentation IA \u2014 trois produits compl\u00e9mentaires couvrant tout le cycle de vie de l'imagerie m\u00e9dicale en recherche clinique.<\/p>\n      <\/div>\n\n      <div class=\"eco-grid reveal reveal-d1\">\n        <article class=\"eco-card gaelo\">\n          <div class=\"eco-visual\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/03\/Logo-Gaelo-1-scaled.png\" alt=\"GaelO logo \u2014 clinical trial imaging platform\" loading=\"lazy\" decoding=\"async\" width=\"280\" height=\"88\"><\/div>\n          <div class=\"eco-body\">\n            <span class=\"eco-tag\">Essais Cliniques<\/span>\n            <h3>GaelO<\/h3>\n            <p>Collecte et relecture centralis\u00e9e d'essais cliniques. De l'upload DICOM \u00e0 la relecture centralis\u00e9e ind\u00e9pendante en aveugle avec crit\u00e8res sp\u00e9cifiques aux pathologies \u2014 conforme RGPD\/HIPAA, enti\u00e8rement auditable.<\/p>\n            <a href=\"#features\" class=\"eco-link\">Explorer les fonctionnalit\u00e9s GaelO<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a>\n          <\/div>\n        <\/article>\n        <article class=\"eco-card flow\">\n          <div class=\"eco-visual\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/04\/Logo-gaelo-flow.png\" alt=\"GaelO Flow logo \u2014 research PACS for retrospective and Real World Evidence studies\" loading=\"lazy\" decoding=\"async\" width=\"280\" height=\"88\"><\/div>\n          <div class=\"eco-body\">\n            <span class=\"eco-tag\">PACS Recherche \u00b7 RWE<\/span>\n            <h3>GaelO Flow<\/h3>\n            <p>PACS de recherche pour les \u00e9tudes r\u00e9trospectives et de Real World Evidence. Orchestrez les <strong>donn\u00e9es d'imagerie m\u00e9dicale<\/strong> : query\/retrieve, d\u00e9sidentification par lot, pipelines d'inf\u00e9rence IA et exports fluides.<\/p>\n            <a href=\"\/fr\/logiciels\/orchestration-donnees-dicom\/\" class=\"eco-link\">D\u00e9couvrir GaelO Flow<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a>\n          <\/div>\n        <\/article>\n        <article class=\"eco-card algo\">\n          <div class=\"eco-visual cover\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/04\/ai-dicom-segmentation-split-screen.webp\" alt=\"AI segmentation algorithms \u2014 FDG, PSMA, DOTATOC tracers for medical imaging\" loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"280\"><\/div>\n          <div class=\"eco-body\">\n            <span class=\"eco-tag\">IA \u00b7 Segmentation<\/span>\n            <h3>Algorithmes de segmentation IA<\/h3>\n            <p>FDG, PSMA, DOTATOC. Segmentation TEP automatis\u00e9e pour extraire le <strong>Total Metabolic Tumor Volume (TMTV)<\/strong> \u2014 Human in the Loop, 100 % valid\u00e9e m\u00e9dicalement, pr\u00eate pour la r\u00e9glementation.<\/p>\n            <a href=\"\/fr\/algorithmes\/segmentation-imagerie-medicale\/\" class=\"eco-link\">Explorer les algorithmes IA<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a>\n          <\/div>\n        <\/article>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- ============================================================\n       FINAL CTA\n       ============================================================ -->\n  <aside class=\"final-cta\" id=\"contact\" aria-labelledby=\"final-title\">\n    <div class=\"final-cta-glow\" aria-hidden=\"true\"><\/div>\n    <div class=\"final-cta-grid-overlay\" aria-hidden=\"true\"><\/div>\n    <div class=\"final-cta-content\">\n      <h2 id=\"final-title\">Pr\u00eat \u00e0 centraliser l'imagerie de vos essais cliniques ?<\/h2>\n      <p class=\"final-cta-sub\">Des essais multicentriques de phase III aux crit\u00e8res d'imagerie sur mesure \u2014 concevons ensemble la bonne infrastructure.<\/p>\n      <div class=\"final-cta-actions\">\n        <a href=\"#contact\" class=\"btn btn-primary-light\">\n          Demander une d\u00e9mo\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg>\n        <\/a>\n        <a href=\"#contact\" class=\"btn btn-ghost-light\">Parler \u00e0 notre \u00e9quipe<\/a>\n      <\/div>\n    <\/div>\n  <\/aside>\n\n<\/article>\n\n<!-- ============================================================\n     JS \u2014 reveal + scroll progress + tabs + smooth anchor scroll\n     Pure vanilla, no dependencies.\n     ============================================================ -->\n<script>\n(function(){\n  var root=document.querySelector('.gaelo-product');\n  if(!root)return;\n\n  \/\/ \u2500\u2500\u2500 REVEAL ON SCROLL \u2500\u2500\u2500\n  if(typeof IntersectionObserver!=='undefined'){\n    var revealEls=root.querySelectorAll('.reveal');\n    var revealIO=new IntersectionObserver(function(entries){\n      entries.forEach(function(e){\n        if(e.isIntersecting){\n          e.target.classList.add('is-visible');\n          revealIO.unobserve(e.target);\n        }\n      });\n    },{rootMargin:'0px 0px -10% 0px',threshold:.1});\n    revealEls.forEach(function(el){revealIO.observe(el)});\n  }\n\n  \/\/ \u2500\u2500\u2500 SCROLL PROGRESS BAR \u2500\u2500\u2500\n  var bar=root.querySelector('.scroll-progress');\n  function updateProgress(){\n    if(!bar)return;\n    var max=document.documentElement.scrollHeight-window.innerHeight;\n    var p=max>0?(window.scrollY\/max)*100:0;\n    bar.style.width=p+'%';\n  }\n  window.addEventListener('scroll',updateProgress,{passive:true});\n  updateProgress();\n\n  \/\/ \u2500\u2500\u2500 TABS \u2500\u2500\u2500\n  var tabsContainer=root.querySelector('.tabs');\n  if(tabsContainer){\n    var tabBtns=tabsContainer.querySelectorAll('.tabs-btn');\n    var tabPanels=tabsContainer.querySelectorAll('.tabs-panel');\n\n    function activateTab(idx){\n      tabBtns.forEach(function(b,i){\n        var active=i===idx;\n        b.setAttribute('aria-selected',active?'true':'false');\n        b.setAttribute('tabindex',active?'0':'-1');\n      });\n      tabPanels.forEach(function(p,i){\n        var active=i===idx;\n        p.classList.toggle('is-active',active);\n        if(active){p.removeAttribute('hidden')}\n        else{p.setAttribute('hidden','')}\n      });\n    }\n\n    tabBtns.forEach(function(btn,idx){\n      btn.addEventListener('click',function(){activateTab(idx)});\n      btn.addEventListener('keydown',function(e){\n        var newIdx=null;\n        if(e.key==='ArrowRight'){newIdx=(idx+1)%tabBtns.length;e.preventDefault()}\n        else if(e.key==='ArrowLeft'){newIdx=(idx-1+tabBtns.length)%tabBtns.length;e.preventDefault()}\n        else if(e.key==='Home'){newIdx=0;e.preventDefault()}\n        else if(e.key==='End'){newIdx=tabBtns.length-1;e.preventDefault()}\n        if(newIdx!==null){activateTab(newIdx);tabBtns[newIdx].focus()}\n      });\n    });\n  }\n\n  \/\/ \u2500\u2500\u2500 COUNTERS (count-up on first view) \u2500\u2500\u2500\n  var counters=root.querySelectorAll('.counter-num');\n  if(counters.length && typeof IntersectionObserver!=='undefined'){\n    var cIO=new IntersectionObserver(function(entries){\n      entries.forEach(function(e){\n        if(!e.isIntersecting)return;\n        cIO.unobserve(e.target);\n        var el=e.target;\n        var full=el.textContent;\n        var m=full.match(\/(\\d+)\/);\n        if(!m){return}\n        var target=parseInt(m[1],10);\n        var prefix=full.slice(0,m.index);\n        var suffixSpan=el.querySelector('.suffix');\n        var suffix=suffixSpan?suffixSpan.outerHTML:full.slice(m.index+m[1].length);\n        var dur=1100,start=null;\n        function step(ts){\n          if(!start)start=ts;\n          var prog=Math.min(1,(ts-start)\/dur);\n          var eased=1-Math.pow(1-prog,3);\n          var val=Math.round(target*eased);\n          el.innerHTML=prefix+val+suffix;\n          if(prog<1){requestAnimationFrame(step)}\n        }\n        requestAnimationFrame(step);\n      });\n    },{threshold:.4});\n    counters.forEach(function(c){cIO.observe(c)});\n  }\n\n  \/\/ \u2500\u2500\u2500 COLLAPSE TOGGLES \u2014 \"Lire la suite\" \/ \"Voir moins\" (mobile\/tablet only) \u2500\u2500\u2500\n  \/\/ Two patterns supported:\n  \/\/  1) toggle controls a .collapsible element via aria-controls (intro)\n  \/\/  2) toggle has data-collapse-target=\"grid\" and toggles data-extended on the grid (features)\n  \/\/ On screens >900px the buttons are hidden via CSS so the JS still wires up but is a no-op.\n  var toggles=root.querySelectorAll('.collapse-toggle');\n  var mql=window.matchMedia('(max-width:900px)');\n\n  function applyCollapsedState(toggle,target,collapsed){\n    toggle.setAttribute('aria-expanded',collapsed?'false':'true');\n    var label=toggle.querySelector('.collapse-label');\n    if(label){\n      label.textContent=collapsed\n        ?(toggle.dataset.collapseLabelMore||'Lire la suite')\n        :(toggle.dataset.collapseLabelLess||'Voir moins');\n    }\n    if(toggle.dataset.collapseTarget==='grid'){\n      if(collapsed)target.removeAttribute('data-extended');\n      else target.setAttribute('data-extended','true');\n    } else {\n      target.setAttribute('data-collapsed',collapsed?'true':'false');\n    }\n  }\n  function syncToggle(toggle){\n    var id=toggle.getAttribute('aria-controls');\n    if(!id)return;\n    var target=document.getElementById(id);\n    if(!target)return;\n    \/\/ Grid toggle (features list) : always start collapsed, on every screen size\n    if(toggle.dataset.collapseTarget==='grid'){\n      applyCollapsedState(toggle,target,true);\n      return;\n    }\n    \/\/ Generic collapsible (intro text) : collapsed only on mobile\n    if(mql.matches){\n      applyCollapsedState(toggle,target,true);\n    } else {\n      applyCollapsedState(toggle,target,false);\n    }\n  }\n  toggles.forEach(function(toggle){\n    syncToggle(toggle);\n    toggle.addEventListener('click',function(){\n      var id=toggle.getAttribute('aria-controls');\n      var target=document.getElementById(id);\n      if(!target)return;\n      var currentlyCollapsed=toggle.getAttribute('aria-expanded')!=='true';\n      applyCollapsedState(toggle,target,!currentlyCollapsed);\n    });\n  });\n  \/\/ re-sync when viewport crosses 900px\n  if(mql.addEventListener)mql.addEventListener('change',function(){toggles.forEach(syncToggle)});\n  else if(mql.addListener)mql.addListener(function(){toggles.forEach(syncToggle)});\n\n  \/\/ \u2500\u2500\u2500 ROLES CAROUSEL \u2014 slide 1 card at a time, show 3 cards on desktop \u2500\u2500\u2500\n  (function(){\n    var wrap=root.querySelector('.roles-wrap');\n    if(!wrap)return;\n    var track=wrap.querySelector('.roles-track');\n    var cards=track.querySelectorAll('.role-card');\n    var prevBtn=wrap.querySelector('.roles-nav-prev');\n    var nextBtn=wrap.querySelector('.roles-nav-next');\n    var dotsWrap=wrap.querySelector('.roles-dots');\n    var total=cards.length;\n    var index=0;\n\n    function getVisible(){\n      var w=window.innerWidth;\n      if(w<=640)return 1;\n      if(w<=980)return 2;\n      return 3;\n    }\n    function maxIndex(){return Math.max(0,total-getVisible())}\n\n    function update(){\n      var visible=getVisible();\n      var card=cards[0];\n      if(!card)return;\n      var cardWidth=card.getBoundingClientRect().width;\n      var gap=24;\n      var offset=index*(cardWidth+gap);\n      track.style.transform='translateX(-'+offset+'px)';\n      prevBtn.disabled=(index<=0);\n      nextBtn.disabled=(index>=maxIndex());\n      \/\/ rebuild dots based on number of slide positions\n      dotsWrap.innerHTML='';\n      var slides=maxIndex()+1;\n      for(var i=0;i<slides;i++){\n        var d=document.createElement('button');\n        d.type='button';\n        d.className='roles-dot'+(i===index?' is-active':'');\n        d.setAttribute('aria-label','Go to slide '+(i+1));\n        d.dataset.target=i;\n        d.addEventListener('click',function(e){\n          index=parseInt(e.currentTarget.dataset.target,10);\n          update();\n        });\n        dotsWrap.appendChild(d);\n      }\n    }\n    prevBtn.addEventListener('click',function(){\n      if(index>0){index--;update()}\n    });\n    nextBtn.addEventListener('click',function(){\n      if(index<maxIndex()){index++;update()}\n    });\n    \/\/ keyboard support\n    wrap.addEventListener('keydown',function(e){\n      if(e.key==='ArrowLeft'&&index>0){index--;update()}\n      else if(e.key==='ArrowRight'&&index<maxIndex()){index++;update()}\n    });\n    \/\/ re-sync on resize\n    var rt;\n    window.addEventListener('resize',function(){\n      clearTimeout(rt);\n      rt=setTimeout(function(){\n        if(index>maxIndex())index=maxIndex();\n        update();\n      },120);\n    });\n    \/\/ initial sync after layout\n    setTimeout(update,50);\n  })();\n\n  \/\/ \u2500\u2500\u2500 LIGHTBOX (click any content image to enlarge) \u2500\u2500\u2500\n  \/\/ Exclude brand logos (decorative) inside .eco-visual that are NOT cover photos.\n  var imgs=root.querySelectorAll('img');\n  var box=null,boxImg=null,boxCap=null,lastFocus=null;\n\n  function buildBox(){\n    box=document.createElement('div');\n    box.className='gp-lightbox';\n    box.setAttribute('role','dialog');\n    box.setAttribute('aria-modal','true');\n    box.setAttribute('aria-label','Image preview');\n    box.innerHTML=''\n      +'<button class=\"gp-lightbox-close\" type=\"button\" aria-label=\"Fermer image preview\">'\n      +'<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>'\n      +'<\/button>'\n      +'<img class=\"gp-lightbox-img\" alt=\"\">'\n      +'<div class=\"gp-lightbox-cap\"><\/div>';\n    document.body.appendChild(box);\n    boxImg=box.querySelector('.gp-lightbox-img');\n    boxCap=box.querySelector('.gp-lightbox-cap');\n    box.addEventListener('click',function(e){\n      \/\/ clicking the backdrop, the close button, OR the image itself closes it\n      closeBox();\n    });\n  }\n  function openBox(src,alt){\n    if(!box)buildBox();\n    lastFocus=document.activeElement;\n    boxImg.src=src;boxImg.alt=alt||'';\n    boxCap.textContent=alt||'';\n    \/\/ force reflow then open for the transition\n    box.offsetHeight;\n    box.classList.add('is-open');\n    document.body.style.overflow='hidden';\n    box.querySelector('.gp-lightbox-close').focus();\n  }\n  function closeBox(){\n    if(!box)return;\n    box.classList.remove('is-open');\n    document.body.style.overflow='';\n    if(lastFocus&&lastFocus.focus)lastFocus.focus();\n  }\n  document.addEventListener('keydown',function(e){\n    if(e.key==='Escape'&&box&&box.classList.contains('is-open'))closeBox();\n  });\n\n  imgs.forEach(function(img){\n    var inLogo=img.closest('.eco-visual')&&!img.closest('.eco-visual.cover');\n    if(inLogo)return;                 \/\/ skip decorative brand logos\n    if(img.closest('.hero-mockup-bar'))return;\n    img.classList.add('zoomable');\n    img.setAttribute('tabindex','0');\n    img.setAttribute('role','button');\n    img.addEventListener('click',function(){openBox(img.currentSrc||img.src,img.alt)});\n    img.addEventListener('keydown',function(e){\n      if(e.key==='Enter'||e.key===' '){e.preventDefault();openBox(img.currentSrc||img.src,img.alt)}\n    });\n  });\n\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Clinical Trial Imaging Platform Plateforme de Gestion d&#8217;Imagerie pour Essais Cliniques : GaelO La solution tout-en-un pour l&#8217;orchestration s\u00e9curis\u00e9e d&#8217;imagerie m\u00e9dicale et la relecture centralis\u00e9e standardis\u00e9e. Demander une d\u00e9mo D\u00e9couvrir les fonctionnalit\u00e9s gaelo.fr \u00b7 clinical-trial-dashboard Scroll Notre vision Faire de l&#8217;imagerie m\u00e9dicale un crit\u00e8re d\u00e9cisionnel pour b\u00e2tir des essais cliniques innovants &#8220;L&#8217;imagerie m\u00e9dicale est \u00e0 [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-7064","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>Gaelo Relatif test - PixiLearn<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/pixilearn.fr\/en\/gaelo-relatif-test\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gaelo Relatif test - PixiLearn\" \/>\n<meta property=\"og:description\" content=\"Clinical Trial Imaging Platform Plateforme de Gestion d&#8217;Imagerie pour Essais Cliniques : GaelO La solution tout-en-un pour l&#8217;orchestration s\u00e9curis\u00e9e d&#8217;imagerie m\u00e9dicale et la relecture centralis\u00e9e standardis\u00e9e. Demander une d\u00e9mo D\u00e9couvrir les fonctionnalit\u00e9s gaelo.fr \u00b7 clinical-trial-dashboard Scroll Notre vision Faire de l&#8217;imagerie m\u00e9dicale un crit\u00e8re d\u00e9cisionnel pour b\u00e2tir des essais cliniques innovants &#8220;L&#8217;imagerie m\u00e9dicale est \u00e0 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/pixilearn.fr\/en\/gaelo-relatif-test\/\" \/>\n<meta property=\"og:site_name\" content=\"PixiLearn\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-16T12:59:17+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/pixilearn.fr\\\/en\\\/gaelo-relatif-test\\\/\",\"url\":\"https:\\\/\\\/pixilearn.fr\\\/en\\\/gaelo-relatif-test\\\/\",\"name\":\"Gaelo Relatif test - PixiLearn\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pixilearn.fr\\\/en\\\/#website\"},\"datePublished\":\"2026-06-16T12:58:55+00:00\",\"dateModified\":\"2026-06-16T12:59:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/pixilearn.fr\\\/en\\\/gaelo-relatif-test\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/pixilearn.fr\\\/en\\\/gaelo-relatif-test\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/pixilearn.fr\\\/en\\\/gaelo-relatif-test\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/pixilearn.fr\\\/en\\\/home\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Gaelo Relatif test\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/pixilearn.fr\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/pixilearn.fr\\\/en\\\/\",\"name\":\"PixiLearn\",\"description\":\"Formation int&eacute;ractive en imagerie m&eacute;dicale\",\"publisher\":{\"@id\":\"https:\\\/\\\/pixilearn.fr\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/pixilearn.fr\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/pixilearn.fr\\\/en\\\/#organization\",\"name\":\"PixiLearn\",\"url\":\"https:\\\/\\\/pixilearn.fr\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/pixilearn.fr\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/pixilearn.fr\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/cropped-PixiLearn-favicon-1.png\",\"contentUrl\":\"https:\\\/\\\/pixilearn.fr\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/cropped-PixiLearn-favicon-1.png\",\"width\":512,\"height\":512,\"caption\":\"PixiLearn\"},\"image\":{\"@id\":\"https:\\\/\\\/pixilearn.fr\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/company\\\/pixilib\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Gaelo Relatif test - PixiLearn","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:\/\/pixilearn.fr\/en\/gaelo-relatif-test\/","og_locale":"en_US","og_type":"article","og_title":"Gaelo Relatif test - PixiLearn","og_description":"Clinical Trial Imaging Platform Plateforme de Gestion d&#8217;Imagerie pour Essais Cliniques : GaelO La solution tout-en-un pour l&#8217;orchestration s\u00e9curis\u00e9e d&#8217;imagerie m\u00e9dicale et la relecture centralis\u00e9e standardis\u00e9e. Demander une d\u00e9mo D\u00e9couvrir les fonctionnalit\u00e9s gaelo.fr \u00b7 clinical-trial-dashboard Scroll Notre vision Faire de l&#8217;imagerie m\u00e9dicale un crit\u00e8re d\u00e9cisionnel pour b\u00e2tir des essais cliniques innovants &#8220;L&#8217;imagerie m\u00e9dicale est \u00e0 [&hellip;]","og_url":"https:\/\/pixilearn.fr\/en\/gaelo-relatif-test\/","og_site_name":"PixiLearn","article_modified_time":"2026-06-16T12:59:17+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/pixilearn.fr\/en\/gaelo-relatif-test\/","url":"https:\/\/pixilearn.fr\/en\/gaelo-relatif-test\/","name":"Gaelo Relatif test - PixiLearn","isPartOf":{"@id":"https:\/\/pixilearn.fr\/en\/#website"},"datePublished":"2026-06-16T12:58:55+00:00","dateModified":"2026-06-16T12:59:17+00:00","breadcrumb":{"@id":"https:\/\/pixilearn.fr\/en\/gaelo-relatif-test\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/pixilearn.fr\/en\/gaelo-relatif-test\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/pixilearn.fr\/en\/gaelo-relatif-test\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/pixilearn.fr\/en\/home\/"},{"@type":"ListItem","position":2,"name":"Gaelo Relatif test"}]},{"@type":"WebSite","@id":"https:\/\/pixilearn.fr\/en\/#website","url":"https:\/\/pixilearn.fr\/en\/","name":"PixiLearn","description":"Formation int&eacute;ractive en imagerie m&eacute;dicale","publisher":{"@id":"https:\/\/pixilearn.fr\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pixilearn.fr\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/pixilearn.fr\/en\/#organization","name":"PixiLearn","url":"https:\/\/pixilearn.fr\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/pixilearn.fr\/en\/#\/schema\/logo\/image\/","url":"https:\/\/pixilearn.fr\/wp-content\/uploads\/2025\/10\/cropped-PixiLearn-favicon-1.png","contentUrl":"https:\/\/pixilearn.fr\/wp-content\/uploads\/2025\/10\/cropped-PixiLearn-favicon-1.png","width":512,"height":512,"caption":"PixiLearn"},"image":{"@id":"https:\/\/pixilearn.fr\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/pixilib"]}]}},"_links":{"self":[{"href":"https:\/\/pixilearn.fr\/en\/wp-json\/wp\/v2\/pages\/7064","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pixilearn.fr\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/pixilearn.fr\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/pixilearn.fr\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/pixilearn.fr\/en\/wp-json\/wp\/v2\/comments?post=7064"}],"version-history":[{"count":4,"href":"https:\/\/pixilearn.fr\/en\/wp-json\/wp\/v2\/pages\/7064\/revisions"}],"predecessor-version":[{"id":7070,"href":"https:\/\/pixilearn.fr\/en\/wp-json\/wp\/v2\/pages\/7064\/revisions\/7070"}],"wp:attachment":[{"href":"https:\/\/pixilearn.fr\/en\/wp-json\/wp\/v2\/media?parent=7064"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}