{"id":337,"date":"2026-06-03T10:34:29","date_gmt":"2026-06-03T08:34:29","guid":{"rendered":"https:\/\/gaelo-h5s7cqtzmf.live-website.com\/?page_id=337"},"modified":"2026-06-19T15:27:02","modified_gmt":"2026-06-19T13:27:02","slug":"services-scientific-expertise","status":"publish","type":"page","link":"https:\/\/gaelo.fr\/en\/services-scientific-expertise\/","title":{"rendered":"Medical Expertises"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"337\" class=\"elementor elementor-337\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8b030f5 e-con-full e-flex e-con e-parent\" data-id=\"8b030f5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f4d5b9b elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"f4d5b9b\" 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   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  <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        Protocol Design \u00b7 BICR \u00b7 Scientific Consulting\n      <\/span>\n      <h1 class=\"hero-title\">\n        <span class=\"word w1 accent\">Scientific<\/span>\n        <span class=\"word w2\">and<\/span>\n        <span class=\"word w3 accent\">Medical<\/span>\n        <span class=\"word w4 accent\">Expertise<\/span>\n        <span class=\"word w5\">for<\/span>\n        <span class=\"word w6 accent-o\">Clinical<\/span>\n        <span class=\"word w7 accent-o\">Imaging<\/span>\n      <\/h1>\n      <p class=\"hero-sub\">Bridge the gap between advanced imaging technology and clinical reality with our world-class Medical Expertise.<\/p>\n      <div class=\"hero-actions\">\n        <a href=\"\/en\/contact\/\" class=\"btn btn-primary-light\">Request a Consultation<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=\"#services\" class=\"btn btn-ghost-light\">Explore Services<\/a>\n      <\/div>\n\n      <!-- Hero image : scientific committee photo -->\n      <figure class=\"hero-mockup\">\n        <div class=\"hero-mockup-bar\"><span><\/span><span><\/span><span><\/span><div class=\"hero-mockup-url\">gaelo.fr \u00b7 services \u00b7 scientific-expertise<\/div><\/div>\n        <img fetchpriority=\"high\" src=\"\/wp-content\/uploads\/2026\/04\/gaelo-scientific-committee-experts-scaled.webp\"\n             alt=\"Pixilib scientific committee \u2014 medical experts collaborating around a workstation reviewing clinical imaging data.\"\n             loading=\"eager\" decoding=\"async\" width=\"1280\" height=\"720\">\n      <\/figure>\n\n      <div class=\"hero-scroll\" aria-hidden=\"true\"><div class=\"hero-scroll-dot\"><\/div>Scroll<\/div>\n    <\/div>\n  <\/header>\n\n\n  <!-- H2 : High-Level Medical Expertise for Your Imaging data -->\n  <section class=\"ep-section bg-white\" aria-labelledby=\"intro-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=\"intro-title\">High-Level Medical Expertise for Your Imaging data<\/h2>\n            <blockquote class=\"intro-quote\">\"Technology is only as powerful as the science behind it.\"<\/blockquote>\n          <\/div>\n          <button class=\"collapse-toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"intro-more\" data-collapse-label-more=\"Read more\" data-collapse-label-less=\"Show less\">\n            <span class=\"collapse-label\">Read more<\/span>\n            <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg>\n          <\/button>\n        <\/div>\n        <div class=\"intro-text reveal reveal-d1 collapsible\" id=\"intro-more\">\n          <p>At Pixilib, we believe that technology is only as powerful as the science behind it.<\/p>\n          <p>Our Medical Expertise services provide sponsors and CROs with the strategic guidance needed to design, execute, and analyze imaging-heavy clinical trials.<\/p>\n          <p>Our team of data scientists and medical experts ensures your study's imaging endpoints are scientifically sound and regulatory-compliant.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- H2 : Strategic Scientific Consulting Services (3 H3) -->\n  <section class=\"ep-section bg-soft\" id=\"services\" aria-labelledby=\"consulting-title\">\n    <div class=\"container\">\n      <div class=\"ep-head center reveal\">\n        <span class=\"ep-eyebrow\">Consulting<\/span>\n        <h2 id=\"consulting-title\">Strategic Scientific Consulting Services<\/h2>\n        <p>From protocol design and reader selection to discovery of new biomarkers \u2014 three pillars of scientific consulting built on real clinical research experience.<\/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>Imaging Protocol Design &amp; Optimization<\/h3>\n            <p>A successful trial starts with a robust protocol. We provide Scientific Medical Expertise to:<\/p>\n            <ul class=\"ep-list\">\n              <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>Define Imaging Endpoints<\/strong> selecting the most relevant biomarkers (RECIST, PERCIST, Volumetry, etc.)<\/li>\n              <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>Standardize Acquisition<\/strong> designing imaging charters that minimize variability across global investigator sites<\/li>\n              <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>Select Imaging Modalities<\/strong> expert advice on imaging modalities of interest (CT, MRI, US...), PET tracers (FDG, PSMA, F-DOPA) or acquisition protocols<\/li>\n            <\/ul>\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>Central Review Management (BICR)<\/h3>\n            <p>We oversee the entire independent review process, providing <a href=\"\/en\/software\/\">Centralized Review (BICR)<\/a> orchestration on the GaelO platform. Our <a href=\"https:\/\/pmc.ncbi.nlm.nih.gov\/articles\/PMC4501136\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Medical Expertise<\/a> ensures:<\/p>\n            <ul class=\"ep-list\">\n              <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>Reader Selection<\/strong> recruiting and training board-certified radiologists and nuclear physicians<\/li>\n              <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>Adjudication Oversight<\/strong> resolving discrepancies between readers with rigorous scientific criteria<\/li>\n              <li><span class=\"ep-list-check\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/span><strong>Standardized Reporting<\/strong> developing electronic Case Report Forms (eCRFs) tailored to specific therapeutic areas (Oncology, Neurology, Cardiology)<\/li>\n            <\/ul>\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>Discovery of new imaging biomarkers<\/h3>\n            <p>At Pixilib we are ready to work on new challenges. Explain to us what the unmet clinical need is and we will evaluate what medical imaging can bring to solve your problem.<\/p>\n            <p>We have a global vision on medical imaging \u2014 from imaging modalities availability &amp; capabilities, scientific knowledge, data life cycle, software tool and medical interpretation. We contribute to make research more performant and accurate, and we are always ready to innovate.<\/p>\n          <\/div>\n        <\/article>\n\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- H2 : Bridging Research and Clinical Practice -->\n  <section class=\"ep-section bg-white\" aria-labelledby=\"bridge-title\">\n    <div class=\"container\">\n      <div class=\"ep-head center reveal\">\n        <span class=\"ep-eyebrow\">Community<\/span>\n        <h2 id=\"bridge-title\">Bridging Research and Clinical Practice<\/h2>\n        <p>Our Medical Expertise isn't just theoretical. We actively participate in the scientific community through:<\/p>\n      <\/div>\n\n      <div class=\"reasons-grid reveal reveal-d1\" style=\"grid-template-columns:repeat(2,1fr);max-width:900px\">\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>Academic Collaborations<\/h3><\/div>\n          <p>Partnering with leading university hospitals on innovative imaging projects.<\/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>Scientific Publications<\/h3><\/div>\n          <p>Our experts contribute to peer-reviewed journals, validating our algorithms and methodologies.<\/p>\n        <\/article>\n      <\/div>\n    <\/div>\n  <\/section>\n\n\n  <!-- H2 : Why Leverage GaelO's Medical Expertise? -->\n  <section class=\"ep-section bg-soft\" aria-labelledby=\"why-title\">\n    <div class=\"container\">\n      <div class=\"ep-head center reveal\">\n        <span class=\"ep-eyebrow\">The Pixilib advantage<\/span>\n        <h2 id=\"why-title\">Why Leverage GaelO's Medical Expertise?<\/h2>\n        <p>Three reasons sponsors trust us with their imaging strategy.<\/p>\n      <\/div>\n\n      <div class=\"reasons-grid has-wide-3 reveal reveal-d1\">\n        <article class=\"reason-card\">\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>Multidisciplinary Team<\/h3><\/div>\n          <p>A unique blend of medical doctors, medical physicists, and data scientists.<\/p>\n        <\/article>\n        <article class=\"reason-card\">\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 Knowledge<\/h3><\/div>\n          <p>Deep understanding of EMA and FDA requirements for imaging endpoints.<\/p>\n        <\/article>\n        <article class=\"reason-card\">\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>Quality Assurance<\/h3><\/div>\n          <p>Scientific oversight at every stage of the data lifecycle to prevent bias and ensure data integrity.<\/p>\n        <\/article>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ECOSYSTEM -->\n  <section class=\"ep-section bg-soft\" 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\">Ready to put expert scientific guidance behind your imaging study?<\/h2>\n      <p class=\"final-cta-sub\">From protocol design to BICR oversight and discovery of new biomarkers \u2014 let's bring the right scientific minds to your project.<\/p>\n      <div class=\"final-cta-actions\">\n        <a href=\"\/en\/contact\/\" class=\"btn btn-primary-light\">Request a Consultation<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>Protocol Design \u00b7 BICR \u00b7 Scientific Consulting Scientific and Medical Expertise for Clinical Imaging Bridge the gap between advanced imaging technology and clinical reality with our world-class Medical Expertise. Request a Consultation Explore Services gaelo.fr \u00b7 services \u00b7 scientific-expertise Scroll Our Vision High-Level Medical Expertise for Your Imaging data &#8220;Technology is only as powerful as [&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-337","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/gaelo.fr\/en\/wp-json\/wp\/v2\/pages\/337","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=337"}],"version-history":[{"count":30,"href":"https:\/\/gaelo.fr\/en\/wp-json\/wp\/v2\/pages\/337\/revisions"}],"predecessor-version":[{"id":818,"href":"https:\/\/gaelo.fr\/en\/wp-json\/wp\/v2\/pages\/337\/revisions\/818"}],"wp:attachment":[{"href":"https:\/\/gaelo.fr\/en\/wp-json\/wp\/v2\/media?parent=337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}