{"id":197,"date":"2026-05-29T10:30:35","date_gmt":"2026-05-29T08:30:35","guid":{"rendered":"https:\/\/gaelo-h5s7cqtzmf.live-website.com\/?page_id=197"},"modified":"2026-06-19T15:24:18","modified_gmt":"2026-06-19T13:24:18","slug":"dicom-data-orchestration","status":"publish","type":"page","link":"https:\/\/gaelo.fr\/en\/software\/dicom-data-orchestration\/","title":{"rendered":"GaelO-Flow"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"197\" class=\"elementor elementor-197\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4903ca3 e-con-full e-flex e-con e-parent\" data-id=\"4903ca3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-85292de elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"85292de\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\n================================================================\nGaelO Flow \u2014 PAGE PRODUIT \u2014 EN \u2014 Medical Imaging Data Orchestration\nURL : \/en\/software\/dicom-data-orchestration\/\nFor Elementor Pro HTML widget \u2014 Full Width container\nBrand : Pixilib \/ GaelO Flow\n================================================================\n\nSEO :\n  Title (60c) : GaelO Flow \u2014 Medical Imaging Data Orchestration\n  Meta Desc (155c) : Automate DICOM workflows, integrate AI pipelines and\n    unlock high-level data analytics in clinical research with GaelO Flow,\n    a research-grade PACS for Real World Evidence studies.\n\nStyle : \"Elementor Pro premium\" \u2014 same architecture as GaelO page.\n  Accent color shifted from teal to INDIGO (#353275) for brand consistency\n  with the GaelO Flow product within the Pixilib ecosystem.\n  Hero stays dark on desktop, light glacier-blue on mobile (\u2264900px).\n\nStructure (1 H1 \/ 8 H2 \/ N H3) :\n  H1  : Advanced Medical Imaging Data Orchestration: GaelO Flow   [hero]\n  H2  : Beyond Storage: A New Era for Real World Evidence\u2026        [intro sticky + checklist]\n  H2  : Why GaelO Flow is built for research data orchestration   [counters + tabs]\n        [TABS] 4\u00d7 H3 : Orchestrate \/ Store \/ Deidentification \/ Interoperability\n  H2  : Empowering Data Analytics in Clinical Research            [6 icon boxes]\n  H2  : GaelO Flow Features                                       [12 icon boxes]\n  H2  : Deploy your way \u2014 On-premise or Cloud                     [2 deployment cards]\n  H2  : Supported imaging modalities                              [5 image boxes \/ photos]\n  H2  : The GaelO Ecosystem                                       [3 product image-boxes]\n  H2  : Ready to orchestrate\u2026                                     [final CTA]\n\nMaillage interne :\n  - \"GaelO platform\" (H3 Orchestrate)             \u2192 \/en\/software\/clinical-trial-imaging-platform\/\n  - \"data analytics in clinical research\" (sub)   \u2192 \/en\/algorithms\/medical-imaging-segmentation\/\n  - GaelO (eco card)                              \u2192 \/en\/software\/clinical-trial-imaging-platform\/\n  - AI Segmentation (eco + callout)               \u2192 \/en\/algorithms\/medical-imaging-segmentation\/\n  - DICOM Viewer (Integrated Viewer feature)      \u2192 \/en\/software\/dicom-viewer\/\n\nLiens externes (Wikipedia \/ NEMA) :\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 \"Talk to Our Team\" et \"Request a Demo\" \u2192 #contact (\u00e0 remplacer)\n  - JS minimal natif (no jQuery) : tabs, counters, reveal, scroll progress, lightbox\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  \/* GaelO Flow palette : indigo is the dominant accent (was teal on GaelO).\n     We override --teal* to point to indigo values so every component\n     (buttons, eyebrows, hovers, eco cards, etc.) inherits the right brand\n     color without rewriting all selectors. Teal stays available via\n     --teal-real* for the few spots where the GaelO teal is still useful\n     (e.g. the hero title gradient that pairs nicely with indigo). *\/\n  --teal:#353275;\n  --teal-bright:#7773C8;\n  --teal-dark:#2a2860;\n  --teal-soft:rgba(53,50,117,.10);\n  \/* the original GaelO teal, kept for ponctual use *\/\n  --teal-real:#0495A0;\n  --teal-real-bright:#5DD0DA;\n  --teal-real-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);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,#5DD0DA,#78E08F);\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.gaelo-product .hero-sub a{\n  color:#fff;\n  text-decoration:underline;\n  text-decoration-color:rgba(255,255,255,.4);\n  text-underline-offset:3px;\n  text-decoration-thickness:1px;\n  transition:text-decoration-color .2s var(--ease);\n}\n.gaelo-product .hero-sub a:hover{text-decoration-color:#fff}\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-real-bright);\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:block;\n  padding:16px 18px 16px 20px;\n  background:var(--bg-soft);\n  border-radius:12px;\n  border-left:3px solid var(--teal);\n  font-size:.96rem;color:var(--text);line-height:1.55;\n  transition:background .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease),border-color .25s var(--ease);\n}\n.gaelo-product .ep-list li:hover{\n  background:var(--white);\n  box-shadow:0 4px 18px rgba(49,64,83,.08);\n  border-left-color:var(--teal-bright);\n  transform:translateX(2px);\n}\n\/* Terme en gras sur sa propre ligne, description dessous : alignement propre et homog\u00e8ne *\/\n.gaelo-product .ep-list li > strong:first-of-type{\n  display:block;\n  color:var(--slate);\n  font-weight:700;font-size:1.01rem;\n  margin-bottom:3px;letter-spacing:-.01em;\n}\n\/* L'ancienne pastille check n'est plus utilis\u00e9e dans ce design *\/\n.gaelo-product .ep-list-check{display:none}\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 \"Read more\" toggle (mobile\/tablet only \u2264900px)\n   ============================================================ *\/\n\/* Collapse toggle button \u2014 visible on ALL screens BUT\n   intro toggles (no data-collapse-target) are hidden 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.gaelo-product .collapsible{\n  max-height:9999px;opacity:1;\n  transition:max-height .45s var(--ease),opacity .3s var(--ease);\n}\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.gaelo-product .collapse-wrap{\n  display:flex;flex-direction:column;align-items:center;\n  margin-top:14px;\n}\n@media (max-width:900px){\n  .gaelo-product .iconbox.is-extra-mobile{display:none}\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(4,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-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)}\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: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}\n@media (max-width:860px){\n  .gaelo-product .tabs-panel-inner{padding:24px}\n  .gaelo-product .tabs-nav{max-width:none;justify-content:flex-start;overflow-x:auto}\n  .gaelo-product .tabs-btn{flex-shrink:0}\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 Core Features\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\/* Empowering Data Analytics : 5 cards \u2192 3 + 2 centered last row *\/\n.gaelo-product .iconbox-grid.analytics-grid{\n  grid-template-columns:repeat(6,1fr);\n}\n.gaelo-product .iconbox-grid.analytics-grid .iconbox{grid-column:span 2}\n.gaelo-product .iconbox-grid.analytics-grid .iconbox:nth-child(4){grid-column:2 \/ span 2}\n.gaelo-product .iconbox-grid.analytics-grid .iconbox:nth-child(5){grid-column:4 \/ span 2}\n@media (max-width:920px){\n  .gaelo-product .iconbox-grid.analytics-grid{grid-template-columns:repeat(2,1fr)}\n  .gaelo-product .iconbox-grid.analytics-grid .iconbox,\n  .gaelo-product .iconbox-grid.analytics-grid .iconbox:nth-child(4),\n  .gaelo-product .iconbox-grid.analytics-grid .iconbox:nth-child(5){grid-column:auto}\n}\n@media (max-width:600px){\n  .gaelo-product .iconbox-grid.analytics-grid{grid-template-columns:1fr}\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   REASONS \u2014 \"Why choose GaelO Flow\" cards\n   Grid of 5 items : 3 on row 1, 2 centered on row 2\n   ============================================================ *\/\n.gaelo-product .reasons-grid{\n  display:grid;grid-template-columns:repeat(6,1fr);\n  gap:22px;max-width:1100px;margin:0 auto 48px;\n}\n.gaelo-product .reason-card{\n  grid-column:span 2;\n  background:var(--white);\n  border:1px solid var(--border);\n  border-radius:var(--radius-md);\n  padding:26px 26px 24px;\n  display:flex;flex-direction:column;gap:12px;\n  transition:all .3s var(--ease);\n  position:relative;overflow:hidden;\n}\n.gaelo-product .reason-card::before{\n  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;\n  background:var(--teal);transform:scaleY(0);transform-origin:top;\n  transition:transform .35s var(--ease);\n}\n.gaelo-product .reason-card:hover{\n  transform:translateY(-3px);\n  box-shadow:var(--shadow-md);\n  border-color:var(--teal);\n}\n.gaelo-product .reason-card:hover::before{transform:scaleY(1)}\n.gaelo-product .reason-card-head{\n  display:flex;align-items:flex-start;gap:14px;\n}\n.gaelo-product .reason-card-check{\n  flex-shrink:0;width:30px;height:30px;border-radius:50%;\n  background:var(--teal);color:#fff;\n  display:flex;align-items:center;justify-content:center;\n  margin-top:2px;\n}\n.gaelo-product .reason-card-check svg{width:14px;height:14px}\n.gaelo-product .reason-card h3{\n  font-size:1.05rem;font-weight:700;letter-spacing:-.01em;\n  margin:0;color:var(--text);line-height:1.3;\n}\n.gaelo-product .reason-card p{\n  font-size:.94rem;line-height:1.6;color:var(--muted);margin:0;\n}\n\/* center the last 2 cards on the second row *\/\n.gaelo-product .reason-card:nth-child(4){grid-column:2 \/ span 2}\n.gaelo-product .reason-card:nth-child(5){grid-column:4 \/ span 2}\n@media (max-width:920px){\n  .gaelo-product .reasons-grid{grid-template-columns:repeat(2,1fr)}\n  .gaelo-product .reason-card,\n  .gaelo-product .reason-card:nth-child(4),\n  .gaelo-product .reason-card:nth-child(5){grid-column:auto}\n}\n@media (max-width:600px){\n  .gaelo-product .reasons-grid{grid-template-columns:1fr}\n}\n\n\/* ============================================================\n   DEPLOYMENT \u2014 on-premise vs cloud comparative cards\n   ============================================================ *\/\n.gaelo-product .deploy-grid{\n  display:grid;grid-template-columns:repeat(2,1fr);gap:26px;\n  max-width:1000px;margin:0 auto;\n}\n.gaelo-product .deploy-card{\n  position:relative;\n  display:flex;flex-direction:column;\n  padding:38px 34px 34px;\n  border-radius:var(--radius-lg);\n  background:var(--white);\n  border:1px solid var(--border);\n  transition:all .35s var(--ease);\n  overflow:hidden;\n}\n.gaelo-product .deploy-card::before{\n  content:'';position:absolute;top:0;left:0;right:0;height:4px;\n  background:var(--deploy-accent,var(--teal));\n}\n.gaelo-product .deploy-card:hover{\n  transform:translateY(-5px);\n  box-shadow:var(--shadow-lg);\n  border-color:var(--deploy-accent,var(--teal));\n}\n.gaelo-product .deploy-card.on-prem{--deploy-accent:var(--teal)}    \/* indigo on Flow (teal var = indigo) *\/\n.gaelo-product .deploy-card.cloud{--deploy-accent:var(--teal-real)} \/* the original teal for contrast *\/\n.gaelo-product .deploy-card-head{margin-bottom:24px}\n.gaelo-product .deploy-card-tag{\n  display:inline-block;\n  font-family:var(--font-mono);font-size:.68rem;font-weight:600;\n  color:var(--deploy-accent,var(--teal));\n  letter-spacing:.16em;text-transform:uppercase;\n  margin-bottom:14px;\n}\n.gaelo-product .deploy-card-icon{\n  width:56px;height:56px;border-radius:14px;\n  background:var(--bg-soft);\n  border:1px solid var(--border);\n  color:var(--deploy-accent,var(--teal));\n  display:flex;align-items:center;justify-content:center;\n  margin-bottom:18px;\n  transition:all .3s var(--ease);\n}\n.gaelo-product .deploy-card:hover .deploy-card-icon{\n  background:var(--deploy-accent,var(--teal));color:#fff;\n}\n.gaelo-product .deploy-card-icon svg{width:26px;height:26px}\n.gaelo-product .deploy-card h3{\n  font-size:1.3rem;font-weight:700;letter-spacing:-.015em;\n  margin:0 0 10px;color:var(--text);\n}\n.gaelo-product .deploy-card-head p{\n  font-size:.98rem;line-height:1.6;color:var(--muted);margin:0;\n}\n.gaelo-product .deploy-list{margin:0;gap:11px}\n.gaelo-product .deploy-list li{font-size:.94rem;color:var(--text);line-height:1.5}\n@media (max-width:760px){\n  .gaelo-product .deploy-grid{grid-template-columns:1fr}\n  .gaelo-product .deploy-card{padding:28px 22px 24px}\n}\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  object-position:top center;\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@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\": \"\/en\/software\/dicom-data-orchestration\/#software\",\n      \"name\": \"GaelO Flow\",\n      \"applicationCategory\": \"MedicalApplication\",\n      \"operatingSystem\": \"Web-based, on-premise or cloud\",\n      \"url\": \"\/en\/software\/dicom-data-orchestration\/\",\n      \"description\": \"Research-grade PACS to orchestrate medical imaging data: DICOM query\/retrieve, batch de-identification, AI inference pipelines, integrated DICOM viewer and seamless data exports for Real World Evidence studies.\",\n      \"publisher\": {\n        \"@type\": \"Organization\",\n        \"name\": \"Pixilib\",\n        \"url\": \"\/\"\n      },\n      \"featureList\": [\n        \"Research PACS with unlimited DICOM storage\",\n        \"Auto-Retrieve from production PACS\",\n        \"Batch de-identification and anonymization\",\n        \"Integrated full-feature DICOM viewer\",\n        \"AI inference pipelines (FDG, PSMA, DOTATOC, CT)\",\n        \"Role-based access control with isolated datasets\",\n        \"RESTful API for full ecosystem integration\",\n        \"On-premise or cloud deployment\"\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 Flow \u2014 Medical Imaging Data Orchestration\", \"item\": \"\/en\/software\/dicom-data-orchestration\/\" }\n      ]\n    }\n  ]\n}\n<\/script>\n\n<article class=\"gaelo-product\" lang=\"en\">\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        DICOM Data Orchestration \u00b7 Research PACS\n      <\/span>\n\n      <h1 class=\"hero-title\">\n        <span class=\"word w1\">Advanced<\/span>\n        <span class=\"word w2\">Medical<\/span>\n        <span class=\"word w3\">Imaging<\/span>\n        <span class=\"word w4 accent\">Data<\/span>\n        <span class=\"word w5\">Orchestration:<\/span>\n        <span class=\"word w6 accent-o\">GaelO<\/span>\n        <span class=\"word w7 accent-o\">Flow<\/span>\n      <\/h1>\n\n      <p class=\"hero-sub\">Automate your imaging workflows, integrate AI pipelines, and unlock high-level <a href=\"\/en\/algorithms\/\">data analytics in clinical research<\/a>.<\/p>\n\n      <div class=\"hero-actions\">\n        <a href=\"\/en\/contact\/\" class=\"btn btn-primary-light\">\n          Request a Demo\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\">Explore Features<\/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 flow \u00b7 query-retrieve<\/div>\n        <\/div>\n        <img fetchpriority=\"high\"\n          src=\"\/wp-content\/uploads\/2026\/04\/dicom-data-query-retrieve-search-1.webp\"\n          alt=\"GaelO Flow DICOM Query\/Retrieve interface listing hundreds of imaging series for research.\"\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 : Make Medical Imaging a decisional endpoint\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\">Our Vision<\/span>\n            <h2 id=\"intro-title\">Beyond Storage: A New Era for Real World Evidence and Medical Imaging Data<\/h2>\n            <blockquote class=\"intro-quote\">\"Your institution already generates thousands of DICOM studies every year. Your clinical routine helps to treat each day \u2014 and can help to treat patients even better tomorrow.\"<\/blockquote>\n          <\/div>\n          <button class=\"collapse-toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"intro-more\" data-collapse-label-more=\"Read more\" data-collapse-label-less=\"Show less\">\n            <span class=\"collapse-label\">Read more<\/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>We believe that new treatment options and better patient selection for treatment can be found on existing data already sitting in hospitals. With GaelO Flow we want to empower <a href=\"https:\/\/en.wikipedia.org\/wiki\/Real_world_evidence\" target=\"_blank\" rel=\"noopener nofollow\">Real World Evidence<\/a> studies and accelerate <strong>data analytics in clinical research<\/strong>.<\/p>\n          <p>GaelO Flow is built to orchestrate your medical imaging data flow, constitute clean datasets of images, and provide the tools to extract meaningful analyses and quantifications \u2014 without the work burden of data plumbing.<\/p>\n          <p>Whether you operate from a single hospital or a multi-site research network, GaelO Flow gives you the infrastructure to:<\/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              Retrieve thousands of studies from your production PACS \u2014 automatically, outside working hours\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              Build secure, labeled datasets with granular role-based access for every research project\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              Run AI inference pipelines on demand or automatically via the integrated auto-router\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              Visualize, segment and extract radiomics features through the natively integrated DICOM viewer\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 : Why GaelO is the Standard\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\">Built for research<\/span>\n        <h2 id=\"why-title\">A Research-grade <span class=\"accent\">PACS<\/span> for Medical Imaging Data Orchestration<\/h2>\n        <p>GaelO Flow is the orchestrator for your research ecosystem. Retrieve, store, de-identify and reuse DICOM data at scale \u2014 with all the tools to extract meaningful analyses, segmentations and quantifications from existing images.<\/p>\n      <\/div>\n\n      <!-- Counters -->\n      <div class=\"counters reveal reveal-d1\" style=\"margin-bottom:48px\">\n        <div class=\"counter\">\n          <div class=\"counter-num\">\u221e<\/div>\n          <div class=\"counter-label\">DICOM storage<\/div>\n        <\/div>\n        <div class=\"counter\">\n          <div class=\"counter-num\">REST<\/div>\n          <div class=\"counter-label\">Full API access<\/div>\n        <\/div>\n        <div class=\"counter\">\n          <div class=\"counter-num\">2<\/div>\n          <div class=\"counter-label\">Deployment modes<\/div>\n        <\/div>\n        <div class=\"counter\">\n          <div class=\"counter-num\">9<\/div>\n          <div class=\"counter-label\">Imaging modalities<\/div>\n        <\/div>\n      <\/div>\n\n      <!-- Tabs -->\n      <div class=\"tabs reveal reveal-d2\">\n        <div class=\"tabs-nav\" role=\"tablist\" aria-label=\"Why GaelO Flow features\">\n          <button class=\"tabs-btn\" role=\"tab\" id=\"tab-1\" aria-controls=\"panel-1\" aria-selected=\"true\" data-tab=\"1\">\n            <span class=\"tabs-btn-num\">01<\/span> Orchestrate\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            <span class=\"tabs-btn-num\">02<\/span> Store &amp; Secure\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            <span class=\"tabs-btn-num\">03<\/span> De-identify\n          <\/button>\n          <button class=\"tabs-btn\" role=\"tab\" id=\"tab-4\" aria-controls=\"panel-4\" aria-selected=\"false\" tabindex=\"-1\" data-tab=\"4\">\n            <span class=\"tabs-btn-num\">04<\/span> Interoperate\n          <\/button>\n        <\/div>\n\n        <div class=\"tabs-panels\">\n\n          <!-- PANEL 1 \u2014 Orchestrate -->\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>Orchestrate Medical Imaging Data through your institution<\/h3>\n                <p>GaelO Flow acts as the orchestrator for your research ecosystem. The \"Auto-Retrieve\" feature lets you search and retrieve large batches of DICOM studies from your clinical PACS \u2014 query, filter, select resources of interest, and GaelO Flow handles retrieval outside working hours to spare your healthcare infrastructure.<\/p>\n                <p>GaelO Flow is itself a Research PACS able to store unlimited amounts of medical imaging data \u2014 even dozens of terabytes. Don't worry about infrastructure: just focus on your research.<\/p>\n                <p>From GaelO Flow you can also curate and forward DICOM to any endpoint: another DICOM modality, a filesystem, another GaelO Flow server, or the <a href=\"\/en\/software\/\">GaelO platform<\/a> for clinical trials. GaelO Flow acts as a DICOM <a href=\"https:\/\/en.wikipedia.org\/wiki\/Extract,_transform,_load\" target=\"_blank\" rel=\"noopener nofollow\">Extract-Transform-Load<\/a> engine \u2014 and much more.<\/p>\n              <\/div>\n              <figure class=\"tabs-panel-visual\">\n                <img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/04\/dicom-data-query-retrieve-search-1.webp\" alt=\"DICOM Query\/Retrieve search interface on the GaelO Flow platform.\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"450\">\n              <\/figure>\n            <\/div>\n          <\/div>\n\n          <!-- PANEL 2 \u2014 Store & Secure -->\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>Store your datasets with dedicated secured access<\/h3>\n                <p>As a Research <a href=\"https:\/\/en.wikipedia.org\/wiki\/Picture_archiving_and_communication_system\" target=\"_blank\" rel=\"noopener nofollow\">PACS<\/a>, GaelO Flow stores all image datasets of your research projects. It handles very large medical imaging datasets and delivers massive performance in terms of data availability and speed.<\/p>\n                <p>Access is restricted by user authentication. Each user is assigned a role that can be customized to provide one or several services. You can grant restricted read-only access to a dataset to one user and give full access to another \u2014 control what's available, adjust permissions in the blink of an eye.<\/p>\n              <\/div>\n              <figure class=\"tabs-panel-visual\">\n                <img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/04\/gaelo-flow-login-interface.webp\" alt=\"Secure login page for the GaelO Flow DICOM management platform.\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"450\">\n              <\/figure>\n            <\/div>\n          <\/div>\n\n          <!-- PANEL 3 \u2014 De-identify -->\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>Easy to use and efficient Deidentification of Medical Imaging Data<\/h3>\n                <p>De-identification and anonymization are a required step for nearly all research projects. We value patient privacy \u2014 we want patient data to accelerate research without ever compromising identity.<\/p>\n                <p>GaelO Flow integrates a user-friendly de-identification module that handles large datasets in batch, following the <a href=\"https:\/\/dicom.nema.org\/medical\/dicom\/current\/output\/chtml\/part15\/chapter_e.html\" target=\"_blank\" rel=\"noopener nofollow\">NEMA guidelines for PHI removal<\/a>. It can even anonymize parts of the image itself (e.g. faces in head scans), eliminating the risk of patient identity compromission.<\/p>\n              <\/div>\n              <figure class=\"tabs-panel-visual\">\n                <img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/04\/batch-dicom-de-identification.webp\" alt=\"Batch DICOM anonymization module with de-identification profiles.\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"450\">\n              <\/figure>\n            <\/div>\n          <\/div>\n\n          <!-- PANEL 4 \u2014 Interoperate -->\n          <div class=\"tabs-panel\" id=\"panel-4\" role=\"tabpanel\" aria-labelledby=\"tab-4\" hidden>\n            <div class=\"tabs-panel-inner\">\n              <div class=\"tabs-panel-text\">\n                <h3>Full interoperability for Research Data<\/h3>\n                <p>We built an intuitive, beautiful user interface to make research user-friendly, pleasant and accessible to all researchers.<\/p>\n                <p>But if you have the technical skills and want to drive GaelO Flow from a script or another software, you can: all GaelO Flow services are accessible through documented <strong>RESTful APIs<\/strong>.<\/p>\n                <p>GaelO Flow can be fully orchestrated from custom code, a Python script or another software \u2014 extending your research data management ecosystem to medical imaging without any friction.<\/p>\n              <\/div>\n            <\/div>\n          <\/div>\n\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- ============================================================\n       SECTION \u2014 EMPOWERING DATA ANALYTICS (5 icon boxes)\n       H2 : Empowering Data Analytics in Clinical Research\n       ============================================================ -->\n  <section class=\"ep-section bg-white\" aria-labelledby=\"analytics-title\">\n    <div class=\"container\">\n      <div class=\"ep-head center reveal\">\n        <span class=\"ep-eyebrow\">Data Analytics<\/span>\n        <h2 id=\"analytics-title\">Empowering Data Analytics in Clinical Research<\/h2>\n        <p>Orchestrating DICOM data is the first step \u2014 once data is in hand, it's time to treat its content. After building a clean image dataset, GaelO Flow gives physicians and researchers all the tools to extract data, features and biomarkers that can change tomorrow's healthcare.<\/p>\n      <\/div>\n\n      <div class=\"iconbox-grid analytics-grid reveal reveal-d1\">\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=\"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>Integrated Full Featured Viewer for Data Analytics<\/h3>\n          <p>A professional-grade, web-based DICOM viewer designed for the high-intensity demands of data analytics in clinical research. Navigate through massive datasets with zero latency, perform 3D reconstructions, multi-modal fusions (PET\/CT, PET\/MRI) and advanced annotations \u2014 directly in the browser.<\/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\"><rect x=\"6\" y=\"6\" width=\"12\" height=\"12\" rx=\"1\"\/><line x1=\"9\" y1=\"2\" x2=\"9\" y2=\"6\"\/><line x1=\"15\" y1=\"2\" x2=\"15\" y2=\"6\"\/><line x1=\"9\" y1=\"18\" x2=\"9\" y2=\"22\"\/><line x1=\"15\" y1=\"18\" x2=\"15\" y2=\"22\"\/><line x1=\"2\" y1=\"9\" x2=\"6\" y2=\"9\"\/><line x1=\"2\" y1=\"15\" x2=\"6\" y2=\"15\"\/><line x1=\"18\" y1=\"9\" x2=\"22\" y2=\"9\"\/><line x1=\"18\" y1=\"15\" x2=\"22\" y2=\"15\"\/><rect x=\"9\" y=\"9\" width=\"6\" height=\"6\" rx=\".5\"\/><\/svg><\/div>\n          <h3>AI Algorithmes Integration<\/h3>\n          <p>GaelO Flow integrates execution pipelines to run our algorithms for image feature extraction \u2014 especially segmentations:<\/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>PET imaging<\/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>CT scanning<\/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\"><polyline points=\"3 17 9 11 13 15 21 7\"\/><polyline points=\"14 7 21 7 21 14\"\/><\/svg><\/div>\n          <h3>Radiomics &amp; Quantitative Feature Extraction<\/h3>\n          <p>Built-in tools to empower radiomics extraction and accelerate imaging biomarker development. Segment images, extract the data your research needs, and export to <a href=\"https:\/\/brainder.org\/2015\/04\/03\/the-nifti-2-file-format\/\" target=\"_blank\" rel=\"noopener nofollow\">NIfTI<\/a> for source images and <strong>DICOM SEG<\/strong> for segmentation labelmaps \u2014 fully standardized, ready for downstream pipelines.<\/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\"><rect x=\"4\" y=\"3\" width=\"16\" height=\"18\" rx=\"2\"\/><line x1=\"8\" y1=\"9\" x2=\"16\" y2=\"9\"\/><line x1=\"8\" y1=\"13\" x2=\"16\" y2=\"13\"\/><line x1=\"8\" y1=\"17\" x2=\"13\" y2=\"17\"\/><\/svg><\/div>\n          <h3>Customizable CRFs<\/h3>\n          <p>Create your own eCRF for any research topic and collect data in a standardized manner. Build a CRF in minutes and use it to generate standardized image feature extraction \u2014 clean dataset, standardized analysis, research-ready data in weeks instead of years.<\/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\"><circle cx=\"12\" cy=\"5\" r=\"2.5\"\/><circle cx=\"5\" cy=\"19\" r=\"2.5\"\/><circle cx=\"19\" cy=\"19\" r=\"2.5\"\/><circle cx=\"12\" cy=\"12\" r=\"2.5\"\/><line x1=\"12\" y1=\"7.5\" x2=\"12\" y2=\"9.5\"\/><line x1=\"10\" y1=\"13.5\" x2=\"6.5\" y2=\"16.8\"\/><line x1=\"14\" y1=\"13.5\" x2=\"17.5\" y2=\"16.8\"\/><line x1=\"7.5\" y1=\"19\" x2=\"16.5\" y2=\"19\"\/><\/svg><\/div>\n          <h3>Collaborative ecosystem<\/h3>\n          <p>We build and improve our tools every time a research project raises a challenge we can address. Solving one challenge today brings new ideas to another researcher tomorrow \u2014 an evolutive ecosystem where every project performed in GaelO and GaelO Flow pushes the whole research infrastructure forward.<\/p>\n        <\/article>\n\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- ============================================================\n       SECTION \u2014 GAELO FLOW FEATURES (12 icon boxes)\n       H2 : GaelO Flow Features\n       ============================================================ -->\n  <section class=\"ep-section bg-soft\" id=\"features\" aria-labelledby=\"features-title\">\n    <div class=\"container\">\n      <div class=\"ep-head center reveal\">\n        <span class=\"ep-eyebrow\">Core Features<\/span>\n        <h2 id=\"features-title\">GaelO Flow Features<\/h2>\n        <p>A complete toolkit for medical imaging data orchestration in clinical research \u2014 from research-grade storage to AI inference, from batch anonymization to legacy CD burning when you need it.<\/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\"><ellipse cx=\"12\" cy=\"5\" rx=\"9\" ry=\"3\"\/><path d=\"M3 5v6c0 1.66 4 3 9 3s9-1.34 9-3V5\"\/><path d=\"M3 11v6c0 1.66 4 3 9 3s9-1.34 9-3v-6\"\/><\/svg><\/div>\n          <h3>Research PACS Storage<\/h3>\n          <p>A research Picture archiving and communication system separating research data from clinical data \u2014 scales with your needs, stores massive amounts of medical images. Keep full control of your imaging research data in a safe place.<\/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\"><circle cx=\"11\" cy=\"11\" r=\"7\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><\/svg><\/div>\n          <h3>Query \/ Retrieve other DICOM modalities<\/h3>\n          <p>As any PACS, query, retrieve or push images to remote DICOM modalities. GaelO Flow integrates seamlessly with your existing DICOM network in a few minutes.<\/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\"><polyline points=\"23 4 23 10 17 10\"\/><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\"\/><polyline points=\"1 20 1 14 7 14\"\/><\/svg><\/div>\n          <h3>Automatic retrieval of DICOMs from production PACS<\/h3>\n          <p>Automation is essential when dealing with data life cycles. GaelO Flow integrates a pipeline to automatically retrieve thousands of medical imaging studies from your PACS \u2014 researchers focus on data analysis instead of losing hundreds of hours on manual requests.<\/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\"><circle cx=\"6\" cy=\"6\" r=\"3\"\/><circle cx=\"18\" cy=\"18\" r=\"3\"\/><circle cx=\"18\" cy=\"6\" r=\"3\"\/><line x1=\"9\" y1=\"6\" x2=\"15\" y2=\"6\"\/><line x1=\"18\" y1=\"9\" x2=\"18\" y2=\"15\"\/><\/svg><\/div>\n          <h3>DICOM Auto Router<\/h3>\n          <p>A real orchestrator integrates a DICOM auto-router. Our event-based system lets you automatically act on your DICOM traffic \u2014 define your rules and let GaelO Flow drive data to its correct destination.<\/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=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg><\/div>\n          <h3>Batch Anonymization \/ Deidentification<\/h3>\n          <p>Anonymization is a complex and critical task. We designed our tools to be:<\/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>Simple<\/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>Secure<\/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>Efficient<\/strong><\/li>\n          <\/ul>\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=\"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>Batch Export<\/h3>\n          <p>Once constituted you may need to transfer your data to a third-party tool or collaborator. Batch export is integrated \u2014 GaelO Flow is designed to orchestrate both incoming and outgoing data.<\/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=\"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>Role Based Access Control<\/h3>\n          <p>An innovative role-based access control: each user is assigned a role with one or several allowed features, plus a set of \"labels\" identifying cohorts. No more shared logins compromising data security \u2014 see who accessed what, update policies in seconds.<\/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=\"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z\"\/><line x1=\"7\" y1=\"7\" x2=\"7.01\" y2=\"7\"\/><\/svg><\/div>\n          <h3>Isolated Datasets of Medical Imaging<\/h3>\n          <p>Each DICOM resource can be assigned to one or several \"labels\" to identify your imaging cohorts. Create clean and separated datasets with dedicated access for a restricted set of users \u2014 full granularity on datasets and access policies.<\/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\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"5\"\/><line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"23\"\/><\/svg><\/div>\n          <h3>Integrated Viewer<\/h3>\n          <p>Orchestrating DICOM data is not enough \u2014 you'll want to actually process your data. Our Pixilib <a href=\"\/en\/software\/dicom-viewer\/\">DICOM viewer<\/a> is natively integrated in GaelO Flow: a full DICOM workstation in your browser, not a basic preview.<\/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\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M8 8h.01M16 8h.01M9 16s1.5 1 3 1 3-1 3-1\"\/><\/svg><\/div>\n          <h3>AI algorithmes Inference Pipeline<\/h3>\n          <p>AI in research has never been easier. Inference can be triggered on demand or automatically via our auto-router. We integrate Pixilib's algorithms for automated segmentation of CT and PET-CT \u2014 and we're ready to expand.<\/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\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><circle cx=\"12\" cy=\"12\" r=\"3\"\/><\/svg><\/div>\n          <h3>CD Burner Management<\/h3>\n          <p>Yes \u2014 we haven't buried legacy technologies yet. We integrate management of CD\/DVD burners (Epson, Primera) because some users still need them. We value freedom and answered the request.<\/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=\"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z\"\/><\/svg><\/div>\n          <h3>In premise or cloud installation<\/h3>\n          <p>GaelO Flow is a standalone platform: install it locally in your institution for full isolation and infrastructure control, or in the cloud for scalability and a lighter IT footprint. Your choice, your freedom \u2014 we support both scenarios.<\/p>\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 MODALITIES (image boxes)\n       H2 : Supported Imaging Modalities\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\">Supported Imaging Modalities<\/h2>\n        <p>GaelO is a multi-modal platform capable of managing the full spectrum of medical imaging used in modern research. Every modality is handled with protocol-specific precision.<\/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=\"Multiplanar reconstruction of a chest and abdominal CT scan within the reading platform.\" loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"400\"><\/div>\n          <div class=\"mod-card-body\"><h3>Radiology<\/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>Nuclear Medicine<\/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>Radiotherapy<\/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>Pathology<\/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>Optical Imaging &amp; Video<\/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) \u2014 AI inference\n       ============================================================ -->\n  <section class=\"ep-section bg-white\" aria-label=\"AI inference pipeline\">\n    <div class=\"container\">\n      <div class=\"callout reveal\">\n        <div class=\"callout-content\">\n          <h2>AI inference, made simple<\/h2>\n          <p>Trigger Pixilib's AI algorithms on demand or automatically through the auto-router \u2014 automated segmentation for FDG, PSMA, DOTATOC tracers on PET, anatomical segmentation on CT, all with human-in-the-loop validation. Our pipelines are ready, and they're easy to extend.<\/p>\n        <\/div>\n        <div class=\"callout-actions\">\n          <a href=\"\/en\/algorithms\/\" class=\"btn btn-primary-light\">\n            Explore AI algorithms\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=\"\/en\/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 DEPLOYMENT (on-premise vs cloud)\n       H2 : Deploy your way\n       ============================================================ -->\n  <section class=\"ep-section bg-soft\" aria-labelledby=\"deploy-title\">\n    <div class=\"container\">\n      <div class=\"ep-head center reveal\">\n        <span class=\"ep-eyebrow\">The Pixilib advantage<\/span>\n        <h2 id=\"deploy-title\">Why Choose GaelO Flow for Your Research?<\/h2>\n        <p>From PACS integration to deployment freedom, GaelO Flow gives researchers everything they need to turn medical imaging data into meaningful clinical research outcomes.<\/p>\n      <\/div>\n\n      <div class=\"reasons-grid reveal reveal-d1\">\n\n        <article class=\"reason-card\">\n          <div class=\"reason-card-head\">\n            <span class=\"reason-card-check\" aria-hidden=\"true\">\n              <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>\n            <\/span>\n            <h3>Integration with existing infrastructure<\/h3>\n          <\/div>\n          <p>Just set up GaelO Flow in your environment, we connect to your PACS and work directly with your medical imaging data.<\/p>\n        <\/article>\n\n        <article class=\"reason-card\">\n          <div class=\"reason-card-head\">\n            <span class=\"reason-card-check\" aria-hidden=\"true\">\n              <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>\n            <\/span>\n            <h3>Easiness of use<\/h3>\n          <\/div>\n          <p>Clinical research should not be restricted to technically aware physicians \u2014 GaelO Flow is built to be user friendly.<\/p>\n        <\/article>\n\n        <article class=\"reason-card\">\n          <div class=\"reason-card-head\">\n            <span class=\"reason-card-check\" aria-hidden=\"true\">\n              <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>\n            <\/span>\n            <h3>Give value to your Real World Evidence data<\/h3>\n          <\/div>\n          <p>You have plenty of data \u2014 time to give it meaning and contribute to the research effort.<\/p>\n        <\/article>\n\n        <article class=\"reason-card\">\n          <div class=\"reason-card-head\">\n            <span class=\"reason-card-check\" aria-hidden=\"true\">\n              <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>\n            <\/span>\n            <h3>Extract meaningful data from medical imaging<\/h3>\n          <\/div>\n          <p>Visualization, qualitative and quantitative interpretation, advanced segmentation \u2014 the most efficient sandbox for research.<\/p>\n        <\/article>\n\n        <article class=\"reason-card\">\n          <div class=\"reason-card-head\">\n            <span class=\"reason-card-check\" aria-hidden=\"true\">\n              <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>\n            <\/span>\n            <h3>Keep control of your data<\/h3>\n          <\/div>\n          <p>Run GaelO Flow on your own local or cloud infrastructure. Full control of your data and infrastructure. Your choice, your freedom.<\/p>\n        <\/article>\n\n      <\/div>\n\n      <div class=\"deploy-grid reveal reveal-d1\">\n\n        <article class=\"deploy-card on-prem\">\n          <header class=\"deploy-card-head\">\n            <span class=\"deploy-card-tag\">Deployment<\/span>\n            <div class=\"deploy-card-icon\" aria-hidden=\"true\">\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\"\/><line x1=\"2\" y1=\"9\" x2=\"22\" y2=\"9\"\/><line x1=\"9\" y1=\"21\" x2=\"15\" y2=\"21\"\/><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"\/><\/svg>\n            <\/div>\n            <h3>On-premise installation<\/h3>\n            <p>Install GaelO Flow locally in your institution for maximum data sovereignty and full infrastructure control.<\/p>\n          <\/header>\n          <ul class=\"ep-list deploy-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>Full isolation of imaging data within your network<\/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>Direct integration with your production PACS<\/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>Compliant with strict institutional security policies<\/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>Predictable infrastructure costs for long-term projects<\/li>\n          <\/ul>\n        <\/article>\n\n        <article class=\"deploy-card cloud\">\n          <header class=\"deploy-card-head\">\n            <span class=\"deploy-card-tag\">Deployment<\/span>\n            <div class=\"deploy-card-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=\"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z\"\/><\/svg>\n            <\/div>\n            <h3>Cloud deployment<\/h3>\n            <p>Run GaelO Flow on a managed cloud infrastructure for instant scalability and a lighter IT footprint.<\/p>\n          <\/header>\n          <ul class=\"ep-list deploy-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>Elastic storage that scales with your imaging volumes<\/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>No hardware to procure, install or maintain<\/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>Always up to date with the latest GaelO Flow release<\/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>Faster time-to-value for new research projects<\/li>\n          <\/ul>\n        <\/article>\n\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- ============================================================\n       SECTION \u2014 ECOSYSTEM (product image-boxes)\n       H2 : The GaelO Ecosystem\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\">The GaelO Ecosystem<\/span>\n        <h2 id=\"ecosystem-title\">A unified <span class=\"accent\">infrastructure<\/span> for medical imaging research<\/h2>\n        <p>From clinical trial centralization to research PACS and AI segmentation \u2014 three complementary products covering the full lifecycle of medical imaging in clinical research.<\/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\">Clinical Trials<\/span>\n            <h3>GaelO<\/h3>\n            <p>Collection and centralized reading of clinical trials. From DICOM upload to Blind Independent Central Review with disease-specific criteria \u2014 GDPR\/HIPAA compliant, fully auditable.<\/p>\n            <a href=\"\/en\/software\/\" class=\"eco-link\">Discover 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\">Research PACS \u00b7 RWE<\/span>\n            <h3>GaelO Flow<\/h3>\n            <p>Research PACS for retrospective and Real World Evidence studies. Orchestrate <strong>medical imaging data<\/strong>: query\/retrieve, batch de-identification, AI inference pipelines and seamless export.<\/p>\n            <a href=\"#features\" class=\"eco-link\">Explore Flow features<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\/06\/wp-contentuploadsgaelo-sharedai-segmentation-card.jpg\" 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\">AI \u00b7 Segmentation<\/span>\n            <h3>AI Segmentation Algorithms<\/h3>\n            <p>FDG, PSMA, DOTATOC. Automated PET segmentation to extract <strong>Total Metabolic Tumor Volume (TMTV)<\/strong> human-in-the-loop, 100% medically validated, regulatory-ready.<\/p>\n            <a href=\"\/en\/algorithms\/\" class=\"eco-link\">Explore AI algorithms<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\">Ready to orchestrate your medical imaging data?<\/h2>\n      <p class=\"final-cta-sub\">From production PACS connection to AI inference pipelines and standardized exports \u2014 let's build the right research infrastructure together.<\/p>\n      <div class=\"final-cta-actions\">\n        <a href=\"\/en\/contact\/\" class=\"btn btn-primary-light\">\n          Request a Demo\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=\"\/en\/contact\/\" class=\"btn btn-ghost-light\">Talk to Our Team<\/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 \"Read more\" \/ \"Show less\" (mobile\/tablet only) \u2500\u2500\u2500\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||'Read more')\n        :(toggle.dataset.collapseLabelLess||'Show less');\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\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  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 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=\"Close 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<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>DICOM Data Orchestration \u00b7 Research PACS Advanced Medical Imaging Data Orchestration: GaelO Flow Automate your imaging workflows, integrate AI pipelines, and unlock high-level data analytics in clinical research. Request a Demo Explore Features gaelo.fr \u00b7 flow \u00b7 query-retrieve Scroll Our Vision Beyond Storage: A New Era for Real World Evidence and Medical Imaging Data &#8220;Your [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":182,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-197","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/gaelo.fr\/en\/wp-json\/wp\/v2\/pages\/197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gaelo.fr\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gaelo.fr\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gaelo.fr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gaelo.fr\/en\/wp-json\/wp\/v2\/comments?post=197"}],"version-history":[{"count":41,"href":"https:\/\/gaelo.fr\/en\/wp-json\/wp\/v2\/pages\/197\/revisions"}],"predecessor-version":[{"id":785,"href":"https:\/\/gaelo.fr\/en\/wp-json\/wp\/v2\/pages\/197\/revisions\/785"}],"up":[{"embeddable":true,"href":"https:\/\/gaelo.fr\/en\/wp-json\/wp\/v2\/pages\/182"}],"wp:attachment":[{"href":"https:\/\/gaelo.fr\/en\/wp-json\/wp\/v2\/media?parent=197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}