{"id":353,"date":"2026-06-03T10:36:22","date_gmt":"2026-06-03T08:36:22","guid":{"rendered":"https:\/\/gaelo-h5s7cqtzmf.live-website.com\/?page_id=353"},"modified":"2026-06-19T15:27:35","modified_gmt":"2026-06-19T13:27:35","slug":"about","status":"publish","type":"page","link":"https:\/\/gaelo.fr\/en\/about\/","title":{"rendered":"About"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"353\" class=\"elementor elementor-353\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6dd106d e-con-full e-flex e-con e-parent\" data-id=\"6dd106d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-196c9cb elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"196c9cb\" 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(255,255,255,.35);\n  background:rgba(255,255,255,.14);\n  color:#fff;\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  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);\n}\n.gaelo-product .hero-badge-dot{\n  width:6px;height:6px;border-radius:50%;background:#fff;\n  box-shadow:0 0 12px rgba(255,255,255,.7);\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\/* Placeholder : empty mockup body when the actual image isn't ready yet *\/\n.gaelo-product .hero-mockup-placeholder-body{\n  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;\n  aspect-ratio:16\/9;\n  background:\n    repeating-linear-gradient(135deg,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 14px,transparent 14px,transparent 28px),\n    linear-gradient(160deg,#243846 0%,#1a2a36 100%);\n  color:rgba(255,255,255,.6);\n  font-family:var(--font-mono);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;\n}\n.gaelo-product .hero-mockup-placeholder-body svg{width:42px;height:42px;opacity:.5}\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   DICOM VIEWER PAGE \u2014 Core Features rich rows\n   3 large H3 sections, alternating text\/image\n   ============================================================ *\/\n.gaelo-product .viewer-feature-grid{\n  display:flex;flex-direction:column;gap:clamp(28px,4vw,52px);\n  max-width:1180px;margin:0 auto;\n}\n.gaelo-product .viewer-feature{\n  background:var(--white);\n  border:1px solid var(--border);\n  border-radius:var(--radius-lg);\n  padding:clamp(32px,4vw,48px);\n  display:flex;flex-direction:column;gap:24px;\n  box-shadow:var(--shadow-sm);\n}\n.gaelo-product .viewer-feature.viewer-feature-image{\n  display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(28px,3.5vw,44px);\n  align-items:center;\n}\n.gaelo-product .viewer-feature-text{display:flex;flex-direction:column;gap:14px}\n.gaelo-product .viewer-feature-num{\n  display:none;\n}\n.gaelo-product .viewer-feature h3{\n  font-size:clamp(1.35rem,2.2vw,1.7rem);font-weight:800;\n  letter-spacing:-.015em;color:var(--text);margin:0;line-height:1.2;\n}\n.gaelo-product .viewer-feature p{\n  font-size:.98rem;line-height:1.7;color:var(--muted);margin:0;\n}\n.gaelo-product .viewer-feature p + p{margin-top:6px}\n.gaelo-product .viewer-feature .ep-list{margin-top:6px;gap:10px}\n.gaelo-product .viewer-feature .ep-list li{font-size:.95rem;color:var(--slate)}\n.gaelo-product .viewer-feature-visual{\n  position:relative;border-radius:var(--radius-md);overflow:hidden;\n  background:#0d1b2a;border:1px solid var(--border);\n  aspect-ratio:4\/3;\n}\n.gaelo-product .viewer-feature-visual img{\n  width:100%;height:100%;object-fit:cover;display:block;\n  transition:transform .5s var(--ease);\n}\n.gaelo-product .viewer-feature-visual:hover img{transform:scale(1.03)}\n@media (max-width:860px){\n  .gaelo-product .viewer-feature.viewer-feature-image{grid-template-columns:1fr}\n}\n\n\/* ============================================================\n   LESION PLACEHOLDER \u2014 temporary gray block awaiting the\n   lesion zoom image (SUVmax \/ Volume label) on the FDG page\n   ============================================================ *\/\n.gaelo-product .lesion-placeholder{\n  margin:24px 0 0;\n  border-radius:var(--radius-md);\n  overflow:hidden;\n  border:1px dashed var(--border-strong);\n  background:\n    repeating-linear-gradient(135deg,rgba(0,0,0,.025) 0,rgba(0,0,0,.025) 14px,transparent 14px,transparent 28px),\n    var(--bg-soft);\n}\n.gaelo-product .lesion-placeholder-body{\n  aspect-ratio:21\/9;\n  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;\n  color:var(--muted);\n  padding:24px;\n}\n.gaelo-product .lesion-placeholder-body svg{width:48px;height:48px;opacity:.45}\n.gaelo-product .lesion-placeholder-label{\n  font-family:var(--font-mono);font-size:.78rem;font-weight:600;\n  letter-spacing:.12em;text-transform:uppercase;color:var(--slate);\n}\n.gaelo-product .lesion-placeholder-sub{\n  font-size:.78rem;font-style:italic;color:var(--muted);\n}\n\n\/* ============================================================\n   SERVICES PAGE \u2014 Custom widgets\n   ============================================================ *\/\n\n\/* CRO Service cards (4 cards in the intro\/manifesto) *\/\n.gaelo-product .cro-services-cards{\n  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;\n  max-width:1180px;margin:clamp(28px,3.5vw,40px) auto 0;\n}\n.gaelo-product .cro-service-card{\n  background:var(--white);\n  border:1px solid var(--border);\n  border-radius:var(--radius-md);\n  padding:26px 24px;\n  display:flex;flex-direction:column;gap:12px;\n  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);\n  position:relative;overflow:hidden;\n}\n.gaelo-product .cro-service-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 .cro-service-card:hover{\n  transform:translateY(-4px);\n  box-shadow:var(--shadow-md);\n  border-color:var(--teal);\n}\n.gaelo-product .cro-service-card:hover::before{transform:scaleY(1)}\n.gaelo-product .cro-service-icon{\n  width:42px;height:42px;border-radius:10px;\n  display:flex;align-items:center;justify-content:center;\n  background:var(--teal-soft);color:var(--teal-dark);\n}\n.gaelo-product .cro-service-icon svg{width:22px;height:22px}\n.gaelo-product .cro-service-card h3{\n  font-size:1.08rem;font-weight:700;letter-spacing:-.01em;\n  color:var(--text);margin:0;line-height:1.25;\n}\n.gaelo-product .cro-service-card h4{\n  font-size:1.08rem;font-weight:700;letter-spacing:-.01em;\n  color:var(--text);margin:0;line-height:1.25;\n}\n.gaelo-product .cro-service-card p{\n  font-size:.88rem;line-height:1.55;color:var(--muted);margin:0;flex:1;\n}\n.gaelo-product .cro-service-link{\n  display:inline-flex;align-items:center;gap:6px;\n  font-family:var(--font-mono);font-size:.72rem;font-weight:600;\n  letter-spacing:.12em;text-transform:uppercase;\n  color:var(--teal-dark);text-decoration:none;\n  margin-top:6px;\n}\n.gaelo-product .cro-service-link svg{width:13px;height:13px;transition:transform .25s var(--ease)}\n.gaelo-product .cro-service-link:hover svg{transform:translateX(3px)}\n@media (max-width:1080px){\n  .gaelo-product .cro-services-cards{grid-template-columns:repeat(2,1fr)}\n}\n@media (max-width:540px){\n  .gaelo-product .cro-services-cards{grid-template-columns:1fr}\n}\n.gaelo-product .ep-lead{\n  font-size:1.05rem;line-height:1.7;color:var(--slate);\n  max-width:980px;margin:clamp(24px,3vw,36px) auto 0;text-align:center;\n}\n.gaelo-product .ep-outro{\n  font-size:1.05rem;line-height:1.7;color:var(--slate);\n  max-width:980px;margin:clamp(32px,4vw,48px) auto 0;text-align:center;\n  padding:clamp(20px,2.5vw,28px);\n  background:var(--bg-soft);\n  border-left:3px solid var(--teal);\n  border-radius:0 var(--radius-md) var(--radius-md) 0;\n}\n\n\/* CRO data flow banner (image: Site \u2192 GaelO \u2192 QC \u2192 Review \u2192 Export) *\/\n.gaelo-product .cro-flow-banner{\n  max-width:1180px;margin:0 auto;\n  border-radius:var(--radius-lg);overflow:hidden;\n  background:var(--white);border:1px solid var(--border);\n  box-shadow:0 18px 50px rgba(13,27,42,.10);\n}\n.gaelo-product .cro-flow-banner img{\n  width:100%;height:auto;display:block;\n  transition:transform .6s var(--ease);\n}\n.gaelo-product .cro-flow-banner:hover img{transform:scale(1.01)}\n.gaelo-product .cro-flow-banner figcaption{\n  padding:14px 22px;\n  background:var(--bg-soft);\n  border-top:1px solid var(--border);\n  font-size:.85rem;color:var(--muted);text-align:center;font-style:italic;\n}\n\n\/* ============================================================\n   SERVICE TIMELINE \u2014 8 steps horizontal (Specifications \u2192 Contract End)\n   Reconstruction of the boss's screenshot in pure CSS\n   ============================================================ *\/\n.gaelo-product .service-timeline-wrap{\n  margin:clamp(36px,4vw,52px) 0 0;\n  padding:clamp(28px,3.5vw,44px) clamp(8px,2vw,24px) clamp(28px,3.5vw,44px);\n  background:var(--white);\n  border:1px solid var(--border);\n  border-radius:var(--radius-lg);\n}\n.gaelo-product .service-timeline-title{\n  text-align:center;\n  font-family:var(--font-mono);font-size:.78rem;font-weight:600;\n  letter-spacing:.18em;text-transform:uppercase;\n  color:var(--slate);\n  margin-bottom:clamp(28px,3.5vw,40px);\n}\n.gaelo-product .service-timeline{\n  position:relative;\n  width:100%;\n  \/* Reserve vertical space for top labels + axis + bottom labels.\n     Top half hosts 1\/3\/5\/7 (with their labels above), bottom half hosts 2\/4\/6\/8 *\/\n  min-height:380px;\n}\n\/* Central axis (the dark horizontal line) *\/\n.gaelo-product .service-tl-axis{\n  position:absolute;\n  left:0;right:0;\n  top:50%;\n  height:6px;border-radius:3px;\n  background:linear-gradient(90deg,#1A3A52 0%,#205B6E 50%,#1A4458 100%);\n  transform:translateY(-50%);\n  box-shadow:0 2px 6px rgba(13,27,42,.18);\n}\n\/* Each step is absolutely positioned along the axis (left:% via inline style) *\/\n.gaelo-product .service-tl-step{\n  position:absolute;\n  top:0;bottom:0;\n  width:0; \/* anchor; children are absolutely positioned around it *\/\n  display:flex;flex-direction:column;align-items:center;\n}\n\/* The teardrop pin *\/\n.gaelo-product .service-tl-pin{\n  position:absolute;\n  left:50%;transform:translateX(-50%);\n  width:56px;height:78px;\n  display:flex;align-items:flex-start;justify-content:center;\n  pointer-events:none;\n}\n.gaelo-product .service-tl-pin::before{\n  \/* The \"tail\" stem that connects to the axis *\/\n  content:'';\n  position:absolute;\n  left:50%;transform:translateX(-50%);\n  width:3px;\n  background:currentColor;\n  opacity:.7;\n}\n.gaelo-product .service-tl-pin-circle{\n  position:relative;\n  width:46px;height:46px;border-radius:50%;\n  background:#fff;\n  color:#353275; \/* indigo number color, like the screenshot *\/\n  display:flex;align-items:center;justify-content:center;\n  font-family:var(--font-mono);font-weight:800;font-size:1.25rem;\n  box-shadow:0 4px 14px rgba(13,27,42,.22);\n  z-index:2;\n}\n\/* Top steps : orange ring around white circle with indigo number *\/\n.gaelo-product .service-tl-step.is-top .service-tl-pin-circle{\n  border:5px solid #FFBA4D;\n}\n\/* Bottom steps : teal ring around white circle with indigo number *\/\n.gaelo-product .service-tl-step.is-bottom .service-tl-pin-circle{\n  border:5px solid #0495A0;\n}\n\/* TOP variant : pin above the axis, label above the pin *\/\n.gaelo-product .service-tl-step.is-top{color:#FFBA4D}\n.gaelo-product .service-tl-step.is-top .service-tl-pin{\n  bottom:50%;\n  margin-bottom:6px; \/* small gap above the axis *\/\n  flex-direction:column-reverse;\n  align-items:center;\n}\n.gaelo-product .service-tl-step.is-top .service-tl-pin::before{\n  bottom:0;height:18px; \/* short stem from pin down to the axis *\/\n}\n\/* BOTTOM variant : pin below the axis, label below the pin *\/\n.gaelo-product .service-tl-step.is-bottom{color:#0495A0}\n.gaelo-product .service-tl-step.is-bottom .service-tl-pin{\n  top:50%;\n  margin-top:6px;\n}\n.gaelo-product .service-tl-step.is-bottom .service-tl-pin::before{\n  top:0;height:18px;\n}\n\/* Labels *\/\n.gaelo-product .service-tl-label{\n  position:absolute;\n  left:50%;transform:translateX(-50%);\n  width:170px;text-align:center;\n  display:flex;flex-direction:column;gap:2px;\n  color:var(--text);\n}\n.gaelo-product .service-tl-step.is-top .service-tl-label{\n  bottom:calc(50% + 90px); \/* above the pin *\/\n}\n.gaelo-product .service-tl-step.is-bottom .service-tl-label{\n  top:calc(50% + 90px); \/* below the pin *\/\n}\n.gaelo-product .service-tl-label strong{\n  font-size:.95rem;font-weight:700;letter-spacing:-.01em;\n  color:var(--text);\n}\n.gaelo-product .service-tl-label span{\n  font-size:.82rem;line-height:1.4;color:var(--muted);\n}\n\/* Mobile \u2014 fall back to a vertical timeline *\/\n@media (max-width:920px){\n  .gaelo-product .service-timeline{\n    min-height:auto;\n    display:flex;flex-direction:column;gap:32px;\n    padding-left:24px;\n    border-left:3px solid var(--teal);\n  }\n  .gaelo-product .service-tl-axis{display:none}\n  .gaelo-product .service-tl-step{\n    position:static;\n    width:100%;\n    display:flex;flex-direction:row;align-items:flex-start;gap:16px;\n  }\n  .gaelo-product .service-tl-pin{\n    position:static;transform:none;\n    width:auto;height:auto;\n    flex-shrink:0;\n  }\n  .gaelo-product .service-tl-pin::before{display:none}\n  .gaelo-product .service-tl-pin-circle{\n    width:42px;height:42px;font-size:1.1rem;\n  }\n  .gaelo-product .service-tl-label{\n    position:static;transform:none;\n    text-align:left;width:auto;\n    margin-left:0;\n  }\n  .gaelo-product .service-tl-step.is-top .service-tl-label,\n  .gaelo-product .service-tl-step.is-bottom .service-tl-label{\n    top:auto;bottom:auto;\n  }\n}\n\n\/* ============================================================\n   ABOUT PAGE \u2014 Utility cards (Partners \/ Publications \/ Contact)\n   ============================================================ *\/\n.gaelo-product .about-utility-grid{\n  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;\n  max-width:1180px;margin:0 auto;\n}\n.gaelo-product .about-utility-card{\n  background:var(--white);\n  border:1px solid var(--border);\n  border-radius:var(--radius-md);\n  padding:32px 28px;\n  display:flex;flex-direction:column;gap:14px;\n  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);\n  position:relative;overflow:hidden;\n}\n.gaelo-product .about-utility-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 .about-utility-card:hover{\n  transform:translateY(-4px);\n  box-shadow:var(--shadow-md);\n  border-color:var(--teal);\n}\n.gaelo-product .about-utility-card:hover::before{transform:scaleY(1)}\n.gaelo-product .about-utility-icon{\n  width:52px;height:52px;border-radius:12px;\n  display:flex;align-items:center;justify-content:center;\n  background:var(--teal-soft);color:var(--teal-dark);\n}\n.gaelo-product .about-utility-icon svg{width:26px;height:26px}\n.gaelo-product .about-utility-card h3{\n  font-size:1.25rem;font-weight:800;letter-spacing:-.015em;\n  color:var(--text);margin:0;line-height:1.2;\n}\n.gaelo-product .about-utility-card p{\n  font-size:.94rem;line-height:1.65;color:var(--muted);margin:0;flex:1;\n}\n.gaelo-product .about-utility-card a:not(.about-utility-link){\n  color:var(--teal-dark);font-weight:600;\n  text-decoration:underline;text-decoration-color:rgba(4,149,160,.25);text-underline-offset:3px;\n}\n.gaelo-product .about-utility-card a:not(.about-utility-link):hover{text-decoration-color:var(--teal-dark)}\n.gaelo-product .about-utility-link{\n  display:inline-flex;align-items:center;gap:6px;\n  font-family:var(--font-mono);font-size:.72rem;font-weight:600;\n  letter-spacing:.12em;text-transform:uppercase;\n  color:var(--teal-dark);text-decoration:none !important;\n  margin-top:auto;padding-top:8px;\n}\n.gaelo-product .about-utility-link svg{width:13px;height:13px;transition:transform .25s var(--ease)}\n.gaelo-product .about-utility-link:hover svg{transform:translateX(3px)}\n@media (max-width:900px){\n  .gaelo-product .about-utility-grid{grid-template-columns:1fr;max-width:600px}\n}\n\n\/* ============================================================\n   ALGO BANNER \u2014 large image below the intro on the Algorithms page\n   Split-screen showing raw DICOM vs AI segmentation overlay\n   ============================================================ *\/\n.gaelo-product .algo-banner{\n  margin:clamp(48px,6vw,72px) auto 0;\n  max-width:1180px;\n  border-radius:var(--radius-lg);\n  overflow:hidden;\n  background:#0d1b2a;\n  border:1px solid var(--border);\n  box-shadow:0 18px 50px rgba(13,27,42,.12);\n}\n.gaelo-product .algo-banner img{\n  width:100%;height:auto;display:block;\n  transition:transform .6s var(--ease);\n}\n.gaelo-product .algo-banner:hover img{transform:scale(1.02)}\n.gaelo-product .algo-banner figcaption{\n  padding:14px 22px;\n  background:var(--white);\n  border-top:1px solid var(--border);\n  font-size:.85rem;color:var(--muted);text-align:center;\n  font-style:italic;\n}\n\n\/* ============================================================\n   INTEGRATION CARDS \u2014 Native integration in our products (3 cards)\n   ============================================================ *\/\n.gaelo-product .integration-grid{\n  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;\n  max-width:1180px;margin:0 auto;\n}\n.gaelo-product .integration-card{\n  background:var(--white);\n  border:1px solid var(--border);\n  border-radius:var(--radius-md);\n  padding:clamp(26px,3vw,34px);\n  display:flex;flex-direction:column;gap:14px;\n  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);\n  position:relative;overflow:hidden;\n}\n.gaelo-product .integration-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 .integration-card:hover{\n  transform:translateY(-4px);\n  box-shadow:var(--shadow-md);\n  border-color:var(--teal);\n}\n.gaelo-product .integration-card:hover::before{transform:scaleY(1)}\n.gaelo-product .integration-card-head{display:flex;flex-direction:column;gap:10px;align-items:flex-start}\n.gaelo-product .integration-card-tag{\n  font-family:var(--font-mono);font-size:.65rem;font-weight:600;\n  letter-spacing:.16em;text-transform:uppercase;\n  padding:6px 12px;border-radius:50px;\n}\n.gaelo-product .integration-card h3{\n  font-size:1.35rem;font-weight:800;letter-spacing:-.015em;\n  color:var(--text);margin:0;line-height:1.2;\n}\n.gaelo-product .integration-card p{\n  font-size:.94rem;line-height:1.65;color:var(--muted);margin:0;\n}\n.gaelo-product .integration-card a{color:var(--teal-dark);font-weight:600;text-decoration:underline;text-decoration-color:rgba(4,149,160,.25);text-underline-offset:3px}\n.gaelo-product .integration-card a:hover{text-decoration-color:var(--teal-dark)}\n@media (max-width:920px){\n  .gaelo-product .integration-grid{grid-template-columns:1fr;max-width:640px}\n}\n\n\/* ============================================================\n   REASON CARD WIDE \u2014 \"Multiple Device Support\" with image below\n   Used on DICOM Viewer & Algorithms : N normal cards then 1 wide card\n   ============================================================ *\/\n\/* By default in has-wide mode, normal cards take span 3 (so 2 per row) *\/\n.gaelo-product .reasons-grid.has-wide .reason-card{grid-column:span 3}\n\/* Variant : when there are 3+1 cards, normal cards span 2 so 3 fit per row *\/\n.gaelo-product .reasons-grid.has-wide-3 .reason-card{grid-column:span 2}\n.gaelo-product .reason-card-wide{\n  grid-column:1 \/ -1 !important;\n  display:flex;flex-direction:column;\n}\n.gaelo-product .reason-card-visual{\n  margin:18px -26px -24px;\n  border-top:1px solid var(--border);\n  border-radius:0 0 var(--radius-md) var(--radius-md);\n  overflow:hidden;\n  aspect-ratio:21\/9;\n  background:#0d1b2a;\n}\n.gaelo-product .reason-card-visual img{\n  width:100%;height:100%;object-fit:cover;display:block;\n  transition:transform .5s var(--ease);\n}\n.gaelo-product .reason-card-wide:hover .reason-card-visual img{transform:scale(1.03)}\n@media (max-width:920px){\n  .gaelo-product .reasons-grid.has-wide .reason-card,\n  .gaelo-product .reason-card-wide{grid-column:auto !important}\n  .gaelo-product .reason-card-visual{aspect-ratio:16\/9}\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  <!-- ============================================================\n       HERO\n       ============================================================ -->\n  <!-- ============================================================\n       HERO\n       ============================================================ -->\n  <!-- ============================================================\n       HERO\n       ============================================================ -->\n  <!-- ============================================================\n       HERO\n       ============================================================ -->\n  <!-- ============================================================\n       HERO\n       ============================================================ -->\n  <!-- HERO -->\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    <div class=\"hero-content\">\n      <span class=\"hero-badge\">\n        <span class=\"hero-badge-dot\"><\/span>\n        Our Project \u00b7 Our Vision \u00b7 Our Commitments\n      <\/span>\n      <h1 class=\"hero-title\">\n        <span class=\"word w1\">The<\/span>\n        <span class=\"word w2 accent\">GaelO<\/span>\n        <span class=\"word w3 accent\">Project:<\/span>\n        <span class=\"word w4\">A<\/span>\n        <span class=\"word w5\">New<\/span>\n        <span class=\"word w6 accent-o\">Era<\/span>\n        <span class=\"word w7\">for<\/span>\n        <span class=\"word w7 accent-o\">Clinical Trial Imaging<\/span>\n      <\/h1>\n      <p class=\"hero-sub\">Innovation, scientific rigor, and digital excellence at the heart of clinical trial imaging.<\/p>\n      <div class=\"hero-actions\">\n        <a href=\"\/en\/contact\/\" class=\"btn btn-primary-light\">Get in Touch<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        <a href=\"#vision\" class=\"btn btn-ghost-light\">Discover Our Vision<\/a>\n      <\/div>\n      <figure class=\"hero-mockup hero-mockup-placeholder\" aria-label=\"GaelO project overview (visual coming soon)\">\n        <div class=\"hero-mockup-bar\"><span><\/span><span><\/span><span><\/span><div class=\"hero-mockup-url\">gaelo.fr \u00b7 about \u00b7 the-gaelo-project<\/div><\/div>\n        <div class=\"hero-mockup-placeholder-body\">\n          <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"\/><polyline points=\"21 15 16 10 5 21\"\/><\/svg>\n          <span>The GaelO Project \u2014 visual coming soon<\/span>\n        <\/div>\n      <\/figure>\n    <div class=\"hero-scroll\" aria-hidden=\"true\"><div class=\"hero-scroll-dot\"><\/div>Scroll<\/div>\n    <\/div>\n  <\/header>\n\n\n  <!-- H2 : Our Vision : Bridging the Gap in CRO Clinical Research -->\n  <section class=\"ep-section bg-white\" id=\"vision\" aria-labelledby=\"vision-title\">\n    <div class=\"container\">\n      <div class=\"intro-grid\">\n        <div class=\"intro-sticky reveal\">\n          <div class=\"intro-card\">\n            <span class=\"ep-eyebrow\">Our Vision<\/span>\n            <h2 id=\"vision-title\">Our Vision: Bridging the Gap in CRO Clinical Research<\/h2>\n            <blockquote class=\"intro-quote\">\"By automating the 'data plumbing,' we allow researchers to focus on what matters most: scientific discovery and patient outcomes.\"<\/blockquote>\n          <\/div>\n          <button class=\"collapse-toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"vision-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        <div class=\"intro-text reveal reveal-d1 collapsible\" id=\"vision-more\">\n          <p>The GaelO project was our first project, born from a simple observation: traditional CRO clinical research often struggles with the technical complexity of medical imaging. Manual data transfers, inconsistent de-identification, and fragmented workflows lead to delays and data integrity risks.<\/p>\n          <p>We have seen too many studies not centralizing medical imaging, relying on unqualified local review or centralizing data using CD\/DVD exchanges. We wanted to remove all these inefficient processes and create an infrastructure to make the most of medical imaging capabilities.<\/p>\n          <p>We created the GaelO platform Imaging CRO model by placing a powerful, cloud-native technological core at the service of medical expertise. We believe that by automating the \"data plumbing,\" we allow researchers to focus on what matters most: scientific discovery and patient outcomes.<\/p>\n          <p>Then we completed the ecosystem with <a href=\"\/en\/software\/dicom-data-orchestration\/\">GaelO-Flow for Real World Evidence<\/a>. With GaelO-Flow we wanted to bring image management and processing tools where the medical images lie \u2014 in healthcare institutions, to promote Real World Evidence research and accelerate medical imaging research even more.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- H2 : A New Breed of Solutions for Clinical Trial Imaging -->\n  <section class=\"ep-section bg-soft\" aria-labelledby=\"solutions-title\">\n    <div class=\"container\">\n      <div class=\"ep-head center reveal\">\n        <span class=\"ep-eyebrow\">Our Ecosystem<\/span>\n        <h2 id=\"solutions-title\">A New Breed of Solutions for Clinical Trial Imaging<\/h2>\n        <p>We build more than software platforms. We created a rich ecosystem designed to meet the evolving needs of modern clinical trials. As a tech-driven Imaging CRO, we provide a unified solution \u2014 and a full chain of <a href=\"\/en\/services\/\">imaging CRO services<\/a> behind it \u2014 for:<\/p>\n      <\/div>\n\n      <div class=\"reasons-grid reveal reveal-d1\" style=\"grid-template-columns:repeat(2,1fr);max-width:1080px\">\n        <article class=\"reason-card\" style=\"grid-column:span 1\">\n          <div class=\"reason-card-head\"><span class=\"reason-card-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><h3>Seamless Orchestration<\/h3><\/div>\n          <p>Centralizing imaging data from global sites into a single, secure environment.<\/p>\n        <\/article>\n        <article class=\"reason-card\" style=\"grid-column:span 1\">\n          <div class=\"reason-card-head\"><span class=\"reason-card-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><h3>Regulatory Peace of Mind<\/h3><\/div>\n          <p>Built-in compliance (GDPR, HIPAA, 21 CFR Part 11) to secure every byte of your CRO clinical research data.<\/p>\n        <\/article>\n        <article class=\"reason-card\" style=\"grid-column:span 1\">\n          <div class=\"reason-card-head\"><span class=\"reason-card-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><h3>Advanced Analytics<\/h3><\/div>\n          <p>Integrating AI and Radiomics directly into the clinical workflow to move beyond traditional qualitative reading and implement new imaging biomarkers in medical research.<\/p>\n        <\/article>\n        <article class=\"reason-card\" style=\"grid-column:span 1\">\n          <div class=\"reason-card-head\"><span class=\"reason-card-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><h3>Human expertise in the loop<\/h3><\/div>\n          <p>We want to create the perfect union between software, AI and medical experts to deliver the most of medical imaging capabilities.<\/p>\n        <\/article>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- H2 : Our Commitments: Innovation, Rigor, and Collaboration (3 H3) -->\n  <section class=\"ep-section bg-white\" aria-labelledby=\"commit-title\">\n    <div class=\"container\">\n      <div class=\"ep-head center reveal\">\n        <span class=\"ep-eyebrow\">Our Commitments<\/span>\n        <h2 id=\"commit-title\">Our Commitments: Innovation, Rigor, and Collaboration<\/h2>\n        <p>Three principles that shape every product we build, every service we deliver and every partnership we engage in.<\/p>\n      <\/div>\n\n      <div class=\"viewer-feature-grid reveal reveal-d1\">\n\n        <article class=\"viewer-feature\">\n          <div class=\"viewer-feature-text\">\n            <span class=\"viewer-feature-num\">01<\/span>\n            <h3>Scientific Integrity<\/h3>\n            <p>We are convinced that technology is only as powerful as the science behind it. In every clinical trial imaging project we support, we maintain the \"Human in the loop\" principle. Our AI algorithms \u2014 including our <a href=\"\/en\/algorithms\/pet-segmentation\/fdg\/\">automated TMTV engine<\/a> \u2014 act as high-performance assistants, but final validation always remains in the hands of medical experts, ensuring 100% accurate results.<\/p>\n          <\/div>\n        <\/article>\n\n        <article class=\"viewer-feature\">\n          <div class=\"viewer-feature-text\">\n            <span class=\"viewer-feature-num\">02<\/span>\n            <h3>Contributor of the medical imaging infrastructure<\/h3>\n            <p>At Pixilib we built our solution by collaborating with major open source software projects to which we contribute with funding and code contributions.<\/p>\n            <p>We knew from the beginning that we wouldn't be able to build this full infrastructure alone \u2014 so we joined major projects such as <a href=\"https:\/\/www.orthanc-server.com\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Orthanc<\/a> and <a href=\"https:\/\/ohif.org\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">OHIF<\/a> to construct a strong ecosystem we can rely on and that will benefit the whole medical imaging research and industry.<\/p>\n          <\/div>\n        <\/article>\n\n        <article class=\"viewer-feature\">\n          <div class=\"viewer-feature-text\">\n            <span class=\"viewer-feature-num\">03<\/span>\n            <h3>Collaborative Research Ecosystem<\/h3>\n            <p>Whether we are working with Academic Institutes, Hospitals, or global players in the CRO clinical research sector, we continuously evolve our tools to address the unique challenges of every research project.<\/p>\n            <p>We are ready to be challenged by new projects, we are ready to participate in research and create new innovative usages of medical images in research. Solving one challenge today brings new ideas to another researcher tomorrow, pushing the whole scientific knowledge to a higher level.<\/p>\n          <\/div>\n        <\/article>\n\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- H2 : Partners \/ Publications \/ Contact \u2014 bottom utility section -->\n  <section class=\"ep-section bg-soft\" aria-labelledby=\"utility-title\">\n    <div class=\"container\">\n      <div class=\"ep-head center reveal\">\n        <span class=\"ep-eyebrow\">Get involved<\/span>\n        <h2 id=\"utility-title\">Partners, Publications &amp; Contact<\/h2>\n        <p>The GaelO project exists thanks to its partners, scientific contributors and the researchers who challenge us every day.<\/p>\n      <\/div>\n\n      <div class=\"about-utility-grid reveal reveal-d1\">\n\n        <article class=\"about-utility-card\">\n          <div class=\"about-utility-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=\"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>\n          <\/div>\n          <h3>Partners<\/h3>\n          <p>The GaelO project is supported by leading academic groups and scientific consortia, including <a href=\"https:\/\/experts-recherche-lymphome.org\/lysa\/\" target=\"_blank\" rel=\"noopener noreferrer\">LYSA \u2014 Lymphoma Study Association<\/a>.<\/p>\n          <a href=\"https:\/\/experts-recherche-lymphome.org\/lysa\/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"about-utility-link\">Discover LYSA <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        <\/article>\n\n        <article class=\"about-utility-card\">\n          <div class=\"about-utility-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=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"\/><path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"\/><\/svg>\n          <\/div>\n          <h3>Publications<\/h3>\n          <p>Our team contributes regularly to peer-reviewed journals, validating our algorithms and methodologies for the broader medical imaging research community.<\/p>\n          <a href=\"\/en\/contact\/\" class=\"about-utility-link\">See publications <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        <\/article>\n\n        <article class=\"about-utility-card\">\n          <div class=\"about-utility-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=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\/><polyline points=\"22,6 12,13 2,6\"\/><\/svg>\n          <\/div>\n          <h3>Contact<\/h3>\n          <p>Got an imaging research challenge, a collaboration idea, or just questions about our platforms? We'd love to hear from you.<\/p>\n          <a href=\"\/en\/contact\/\" class=\"about-utility-link\">Get in touch <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        <\/article>\n\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- ECOSYSTEM -->\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      <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\" 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\" 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=\"\/en\/software\/dicom-data-orchestration\/\" class=\"eco-link\">Discover GaelO Flow<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a>\n          <\/div>\n        <\/article>\n        <article class=\"eco-card algo\">\n          <div class=\"eco-visual cover\"><img loading=\"lazy\" src=\"\/wp-content\/uploads\/2026\/06\/wp-contentuploadsgaelo-sharedai-segmentation-card.jpg\" alt=\"AI segmentation algorithms\" 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 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  <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\">Let's shape the future of clinical trial imaging together<\/h2>\n      <p class=\"final-cta-sub\">Researcher, sponsor, hospital or academic group \u2014 if your project involves medical imaging, we'd love to talk.<\/p>\n      <div class=\"final-cta-actions\">\n        <a href=\"\/en\/contact\/\" class=\"btn btn-primary-light\">Get in Touch<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        <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<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>Our Project \u00b7 Our Vision \u00b7 Our Commitments The GaelO Project: A New Era for Clinical Trial Imaging Innovation, scientific rigor, and digital excellence at the heart of clinical trial imaging. Get in Touch Discover Our Vision gaelo.fr \u00b7 about \u00b7 the-gaelo-project The GaelO Project \u2014 visual coming soon Scroll Our Vision Our Vision: Bridging [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-353","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/gaelo.fr\/en\/wp-json\/wp\/v2\/pages\/353","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=353"}],"version-history":[{"count":16,"href":"https:\/\/gaelo.fr\/en\/wp-json\/wp\/v2\/pages\/353\/revisions"}],"predecessor-version":[{"id":830,"href":"https:\/\/gaelo.fr\/en\/wp-json\/wp\/v2\/pages\/353\/revisions\/830"}],"wp:attachment":[{"href":"https:\/\/gaelo.fr\/en\/wp-json\/wp\/v2\/media?parent=353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}