/* Native text and CSS icons share the botanical reference's coordinates.
   Canvas is the 1700 × 1000 content crop of the 2560 × 1200 reference. */
#research-solutions.fw-tree {
  --fw-section-padding: clamp(12px, 1vw, 20px);
  display: block;
  margin: 0;
  padding: var(--fw-section-padding) 0;
  background: #fff;
  color: #081a35;
  scroll-margin-top: 112px;
}
#research-solutions.fw-tree::before, #research-solutions.fw-tree::after { display: none; }
#research-solutions .fw-tree-shell {
  width: min(1720px, calc(100% - max(24px, var(--arotec-content-left, 0px)) - max(24px, var(--arotec-content-right, 0px))));
  margin: 0 auto;
}
#research-solutions .fw-tree-canvas { position: relative; width: 100%; aspect-ratio: 17 / 10; container-type: inline-size; isolation: isolate; }
#research-solutions .fw-artwork { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
#research-solutions .fw-botanical-art { position: absolute; z-index: -1; left: -25.88235%; top: -10%; width: 150.58824%; height: 120%; max-width: none; pointer-events: none; object-fit: fill; }
#research-solutions .fw-tree-shell { overflow: hidden; }
#research-solutions .fw-text { margin: 0 !important; padding: 0; font: var(--fw-weight, 500) var(--fw-size, 1cqw)/var(--fw-leading, 1.2) var(--site-font, "DM Sans", sans-serif) !important; letter-spacing: var(--fw-tracking, 0) !important; text-transform: none !important; color: inherit; text-shadow: none; }
#research-solutions .fw-masthead { position: absolute; left: 2.5%; top: 3.8%; width: 43%; text-align: left; }
#research-solutions .fw-title { --fw-size: 1.9cqw; --fw-weight: 750; --fw-leading: 1.15; }
#research-solutions .fw-brand { display: block; font-size: 3.4cqw; line-height: 1.05; font-weight: 800; letter-spacing: -.05em; }
#research-solutions .fw-subtitle { --fw-size: 1.3cqw; margin-top: .3cqw !important; }
#research-solutions .fw-stage { position: absolute; inset: 0; pointer-events: none; }
#research-solutions .fw-stage-heading { position: absolute; left: var(--heading-x); top: var(--heading-y); width: var(--heading-width, 30%); transform: translateX(-50%); text-align: center; }
#research-solutions .fw-stage-number { --fw-size: 3.05cqw; --fw-weight: 750; --fw-leading: 1; color: #099eb3; }
#research-solutions .fw-stage-title { --fw-size: 1.95cqw; --fw-weight: 750; --fw-leading: 1.1; margin-top: .15cqw !important; }
#research-solutions .fw-stage-caption { --fw-size: 1.15cqw; --fw-weight: 600; --fw-tracking: .025em; margin-top: .25cqw !important; }
#research-solutions .fw-seeds { position: absolute; inset: 0; }
#research-solutions .fw-seed { position: absolute; top: var(--y); left: var(--x); width: var(--w); transform: translateY(-50%); text-align: var(--align); color: #102747; text-decoration: none; pointer-events: auto; --fw-size: 1.04cqw; --fw-weight: 600; --fw-leading: 1.2; border-radius: 5px; transition: color 160ms ease, background-color 160ms ease; }
#research-solutions .fw-seed:hover { color: #008c99; background: rgb(229 249 246 / .75); }
#research-solutions .fw-seed:focus-visible { outline: 2px solid #008c99; outline-offset: 5px; background: #eefbf8; }
#research-solutions .fw-translation-steps { list-style: none; padding: 0; margin: 0; position: absolute; inset: 0; }
#research-solutions .fw-translation-steps::before { content: ""; position: absolute; left: 47.90588%; top: 30.08%; width: .68cqw; height: 59.4%; transform: translateX(-50%); background: #0b3052; border-radius: 8px; }
#research-solutions .fw-translation-step { position: absolute; left: 47.90588%; top: var(--y); display: flex; align-items: center; width: 14.2%; gap: .55cqw; transform: translate(-2.1cqw, -50%); }
#research-solutions .fw-step-badge { display: grid; place-items: center; flex: 0 0 4.2cqw; width: 4.2cqw; height: 4.2cqw; border: 1.5px solid #103c5b; border-radius: 50%; background: #fff; }
#research-solutions .fw-step-badge .fw-icon { font-size: 2.65cqw; }
#research-solutions .fw-step-label { --fw-size: 1cqw; --fw-leading: 1.15; --fw-weight: 600; }
#research-solutions .fw-outcomes { position: absolute; inset: 0; list-style: none; padding: 0; margin: 0; }
#research-solutions .fw-outcome { position: absolute; left: var(--x); top: var(--y); width: var(--d); aspect-ratio: 1; transform: translate(-50%, -50%); display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .36cqw; padding: .5cqw; box-sizing: border-box; border: 1.5px solid #164a65; border-radius: 50%; background: rgb(255 255 255 / .97); text-align: center; }
#research-solutions .fw-outcome .fw-icon { font-size: 3.8cqw; flex: 0 0 1em; }
#research-solutions .fw-outcome-label { --fw-size: .9cqw; --fw-weight: 600; --fw-leading: 1.08; }
#research-solutions .fw-journey { position: absolute; left: 7%; right: 5%; top: 93.5%; display: grid; grid-template-columns: auto 1fr auto 1fr auto; align-items: center; gap: 1.4cqw; color: #0b3052; }
#research-solutions .fw-journey .fw-text { --fw-size: 1.3cqw; --fw-weight: 700; white-space: nowrap; }
#research-solutions .fw-journey-arrow { height: 2px; background: #23a7b5; position: relative; }
#research-solutions .fw-journey-arrow::after { content: ""; position: absolute; right: 0; top: 50%; width: .65cqw; height: .65cqw; border-top: 2px solid #23a7b5; border-right: 2px solid #23a7b5; transform: translateY(-50%) rotate(45deg); }

@media (min-width: 1001px) and (max-width: 1399px) {
  #research-solutions .fw-title { --fw-size: 22px; }
  #research-solutions .fw-subtitle { --fw-size: 13px; }
  #research-solutions .fw-seed, #research-solutions .fw-step-label { --fw-size: 11px; }
  #research-solutions .fw-outcome-label { --fw-size: 10.5px; --fw-leading: 1.03; }
  #research-solutions .fw-outcome .fw-icon { font-size: 2.8cqw; }
}

/* Let the existing artwork extend into the full-width backdrop while keeping
   the image, energy paths and live labels on the same fitted desktop plane. */
@media (min-width: 1001px) {
  #research-solutions.fw-tree { min-height: 0; overflow: hidden; }
  #research-solutions .fw-tree-shell { width: 100%; }
  #research-solutions .fw-tree-canvas {
    width: min(calc(100% - 32px), calc((100svh - 112px - var(--fw-section-padding) - var(--fw-section-padding)) * 1.7));
    margin-inline: auto;
  }
  /* A short desktop window can have a smaller diagram than its viewport width
     suggests. Fit typography to the actual canvas, including the outcome rings. */
  @container (max-width: 1000px) {
    #research-solutions .fw-title { --fw-size: clamp(16px, 2.1cqw, 21px); }
    #research-solutions .fw-subtitle { --fw-size: clamp(10px, 1.3cqw, 13px); }
    #research-solutions .fw-seed,
    #research-solutions .fw-step-label { --fw-size: clamp(10px, 1.1cqw, 11px); }
    #research-solutions .fw-outcome { gap: .2cqw; padding: .35cqw; }
    #research-solutions .fw-outcome .fw-icon { font-size: 2.8cqw; }
    #research-solutions .fw-outcome-label { --fw-size: clamp(9px, 1.05cqw, 10.5px); --fw-leading: 1.05; }
  }
}

/* Stack readable stages on compact screens, with the botanical overview intact. */
@media (max-width: 1000px) {
  #research-solutions.fw-tree { padding: 20px 0; scroll-margin-top: 96px; }
  #research-solutions .fw-tree-shell { width: calc(100% - 40px); overflow: visible; }
  #research-solutions .fw-tree-canvas { display: grid; aspect-ratio: auto; gap: 28px; }
  #research-solutions .fw-masthead { position: static; width: 100%; grid-row: 1; }
  #research-solutions .fw-title { --fw-size: clamp(22px, 4.5cqw, 34px); }
  #research-solutions .fw-brand { font-size: 42px; }
  #research-solutions .fw-subtitle { --fw-size: 16px; margin-top: 8px !important; }
  #research-solutions .fw-artwork { grid-row: 2; position: relative; inset: auto; z-index: auto; aspect-ratio: 1700 / 770; overflow: hidden; }
  #research-solutions .fw-botanical-art { position: absolute; z-index: 0; left: -25.88235%; top: -42.85714%; width: 150.58824%; height: 155.84416%; max-width: none; }
  #research-solutions .fw-stage { position: relative; inset: auto; pointer-events: auto; }
  #research-solutions .fw-stage-heading { position: static; width: 100%; transform: none; text-align: left; margin-bottom: 22px; }
  #research-solutions .fw-stage-number { --fw-size: 34px; }
  #research-solutions .fw-stage-title { --fw-size: 26px; margin-top: 4px !important; }
  #research-solutions .fw-stage-caption { --fw-size: 13px; margin-top: 8px !important; }
  #research-solutions .fw-seeds { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
  #research-solutions .fw-seed { position: static; width: auto; transform: none; text-align: left; --fw-size: 15px; display: flex; align-items: center; min-height: 58px; border-bottom: 1px solid #dae9e5; border-radius: 0; }
  #research-solutions .fw-seed br { display: none; }
  #research-solutions .fw-translation-steps { position: relative; display: grid; gap: 16px; }
  #research-solutions .fw-translation-steps::before { left: 24px; top: 0; bottom: 0; height: auto; width: 4px; }
  #research-solutions .fw-translation-step { position: relative; top: auto; left: auto; width: 100%; transform: none; gap: 18px; }
  #research-solutions .fw-step-badge { flex-basis: 48px; width: 48px; height: 48px; }
  #research-solutions .fw-step-badge .fw-icon { font-size: 30px; }
  #research-solutions .fw-step-label { --fw-size: 16px; }
  #research-solutions .fw-step-label br { display: none; }
  #research-solutions .fw-outcomes { position: static; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; justify-items: center; }
  #research-solutions .fw-outcome { position: static; transform: none; width: 100%; max-width: 190px; padding: 10px; gap: 8px; }
  #research-solutions .fw-outcome .fw-icon { font-size: clamp(30px, 6cqw, 48px); }
  #research-solutions .fw-outcome-label { --fw-size: clamp(12px, 2cqw, 16px); }
  #research-solutions .fw-journey { position: static; gap: 12px; grid-template-columns: 1fr; text-align: center; justify-items: center; margin-top: 8px; }
  #research-solutions .fw-journey .fw-text { --fw-size: 14px; }
  #research-solutions .fw-journey-arrow { width: 2px; height: 22px; }
  #research-solutions .fw-journey-arrow::after { top: auto; bottom: 0; width: 7px; height: 7px; right: 50%; transform: translateX(50%) rotate(135deg); }
}
@media (max-width: 560px) {
  #research-solutions .fw-outcomes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  #research-solutions .fw-outcome:last-child { grid-column: 1 / -1; width: calc((100% - 16px) / 2); }
  #research-solutions .fw-outcome .fw-icon { font-size: clamp(40px, 16cqw, 48px); }
  #research-solutions .fw-outcome-label { --fw-size: 12px; }
}
/* Light and movement follow the research-to-solution story without moving
   the botanical artwork or changing the diagram's coordinate system. */
#research-solutions .fw-masthead { isolation: isolate; }
#research-solutions .fw-masthead::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -30% -8% -30% -6%;
  background: radial-gradient(ellipse at 24% 45%, rgb(38 167 170 / .12), transparent 68%);
  pointer-events: none;
}
#research-solutions .fw-masthead::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -12px;
  width: clamp(64px, 7cqw, 110px);
  height: 3px;
  border-radius: 3px;
  background: linear-gradient(90deg, #0b3052, #159c9c 70%, #a3d5b0);
  transform-origin: left;
  pointer-events: none;
}
#research-solutions .fw-brand { color: #096b78; }
@supports (background-clip: text) or (-webkit-background-clip: text) {
  #research-solutions .fw-brand,
  #research-solutions .fw-title-line {
    background: linear-gradient(110deg, #081a35 10%, #096b78 36%, #168b84 48%, #0b3052 62%, #081a35 85%);
    background-size: 240% 100%;
    background-position: 100% 50%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
}
#research-solutions .fw-step-badge,
#research-solutions .fw-outcome {
  box-shadow: 0 3px 12px rgb(11 48 82 / .07);
}
#research-solutions .fw-seed {
  transition: color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}
#research-solutions .fw-seed:is(:hover, :focus-visible) {
  color: #006d78;
  background: #e5f6f1;
  box-shadow: 0 0 0 5px #e5f6f1, 0 6px 18px rgb(13 111 113 / .14);
}
@media (max-width: 1000px) {
  #research-solutions .fw-masthead::before { inset: -18px 0 -24px; }
}

@media (prefers-reduced-motion: no-preference) {
  /* Content is fully visible if JavaScript or IntersectionObserver is absent. */
  #research-solutions.fw-effects-ready .fw-reveal {
    opacity: 0;
    translate: 0 12px;
    transition: opacity 650ms ease, translate 650ms cubic-bezier(.2, .65, .3, 1);
    transition-delay: var(--fw-reveal-delay, 0ms);
  }
  #research-solutions.fw-effects-ready .fw-reveal.is-visible,
  #research-solutions.fw-effects-ready .fw-reveal:focus-within {
    opacity: 1;
    translate: 0 0;
  }
  #research-solutions.fw-effects-ready .fw-reveal:focus-within { transition: none; }
  #research-solutions.fw-effects-ready .fw-seed:is(:hover, :focus-visible) {
    opacity: 1;
    translate: 0 0;
    transition-delay: 0ms;
  }
  #research-solutions .fw-masthead.is-visible .fw-brand,
  #research-solutions .fw-masthead.is-visible .fw-title-line {
    animation: fw-title-shine 6s ease-in-out infinite alternate;
  }
  #research-solutions .fw-masthead.is-visible::after {
    animation: fw-accent-reveal 900ms 200ms cubic-bezier(.2, .65, .3, 1) both;
  }
  #research-solutions .fw-translation-step.is-visible .fw-step-badge,
  #research-solutions .fw-outcome.is-visible {
    animation: fw-node-glow 4.8s ease-in-out infinite;
    animation-delay: calc(var(--fw-reveal-delay, 0ms) + 300ms);
  }
  #research-solutions .fw-journey.is-visible .fw-journey-arrow {
    background: linear-gradient(90deg, #23a7b5 30%, #a3e2cd 50%, #23a7b5 70%);
    background-size: 240% 100%;
    animation: fw-title-shine 3s linear infinite;
  }
}
@keyframes fw-title-shine {
  from { background-position: 100% 50%; }
  to { background-position: 0% 50%; }
}
@keyframes fw-accent-reveal {
  from { opacity: 0; transform: scaleX(.15); }
  to { opacity: 1; transform: scaleX(1); }
}
@keyframes fw-node-glow {
  0%, 100% { box-shadow: 0 3px 12px rgb(11 48 82 / .07); }
  45% { box-shadow: 0 0 0 7px rgb(38 167 170 / .15), 0 7px 28px rgb(38 167 170 / .28); }
}

/* The SVG shares the image's original coordinates at both breakpoints. */
#research-solutions .fw-energy-network {
  position: absolute;
  z-index: 1;
  left: -25.88235%;
  top: -10%;
  width: 150.58824%;
  height: 120%;
  max-width: none;
  pointer-events: none;
  overflow: visible;
}
#research-solutions .fw-energy-tracks,
#research-solutions .fw-energy-pulses { fill: none; stroke-linecap: round; }
#research-solutions .fw-energy-tracks { stroke: #27b8b2; stroke-width: 2; opacity: .18; }
#research-solutions .fw-energy-pulses { stroke: #78f4d6; stroke-width: 5; filter: drop-shadow(0 0 5px #19bfae); }
#research-solutions .fw-energy-pulses use { stroke-dasharray: 3 97; }
#research-solutions .fw-energy-sparks { fill: #8cf6d7; filter: drop-shadow(0 0 7px #20bdad); }
#research-solutions .fw-energy-dust { fill: #25a998; }
#research-solutions .fw-energy-sparks circle,
#research-solutions .fw-energy-dust circle { transform-box: fill-box; transform-origin: center; }
#research-solutions .fw-stage { z-index: 2; }
#research-solutions .fw-masthead, #research-solutions .fw-journey { z-index: 3; }
#research-solutions .fw-masthead::before {
  background: radial-gradient(ellipse at 24% 45%, rgb(38 167 170 / .22), transparent 70%);
}
#research-solutions .fw-tree-canvas::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(230px circle at var(--fw-pointer-x, 50%) var(--fw-pointer-y, 50%), rgb(31 194 178 / .18), transparent 75%);
  transition: opacity 250ms ease;
}
#research-solutions.fw-pointer-active .fw-tree-canvas::after { opacity: 1; }
#research-solutions .fw-step-badge { position: relative; }
#research-solutions .fw-outcome::before,
#research-solutions .fw-outcome::after,
#research-solutions .fw-step-badge::after {
  content: "";
  position: absolute;
  inset: -6px;
  border: 1px solid rgb(38 167 170 / .25);
  border-radius: 50%;
  pointer-events: none;
}
#research-solutions .fw-outcome::after {
  inset: -5px;
  border: 2px solid transparent;
  border-top-color: #25b4a6;
  border-right-color: rgb(37 180 166 / .3);
}
#research-solutions .fw-stage-number { text-shadow: 0 3px 16px rgb(38 167 170 / .2); }
#research-solutions .fw-motion-toggle {
  display: none;
  position: absolute;
  z-index: 5;
  top: 3.8%;
  right: 2.5%;
  align-items: center;
  gap: 8px;
  padding: 9px 13px;
  border: 1px solid #bdddd7;
  border-radius: 999px;
  background: rgb(246 253 251 / .95);
  color: #145b62;
  font: 600 12px/1.2 var(--site-font, sans-serif);
  cursor: pointer;
}
#research-solutions .fw-motion-toggle:hover { background: #e4f6ef; border-color: #269d91; }
#research-solutions .fw-motion-toggle:focus-visible { outline: 2px solid #008c99; outline-offset: 4px; }
#research-solutions .fw-motion-symbol { width: 9px; height: 10px; border-inline: 3px solid currentColor; box-sizing: border-box; }
#research-solutions.fw-motion-paused .fw-motion-symbol { width: 0; border: 5px solid transparent; border-right: 0; border-left: 8px solid currentColor; }

@media (prefers-reduced-motion: no-preference) {
  #research-solutions.fw-motion-ready .fw-motion-toggle { display: inline-flex; }
  #research-solutions .fw-energy-pulses use { animation: fw-energy-flow 5s linear infinite; }
  #research-solutions .fw-energy-pulses use:nth-child(2) { animation-delay: -2.5s; }
  #research-solutions .fw-energy-pulses use:nth-child(3) { animation-duration: 7s; animation-delay: -4s; }
  #research-solutions .fw-energy-sparks circle { animation: fw-spark-breathe 3s ease-in-out infinite; }
  #research-solutions .fw-energy-sparks circle:nth-child(2) { animation-delay: -1s; }
  #research-solutions .fw-energy-sparks circle:nth-child(3) { animation-delay: -2s; }
  #research-solutions .fw-energy-dust circle { animation: fw-dust-float 5s ease-in-out infinite alternate; }
  #research-solutions .fw-energy-dust circle:nth-child(even) { animation-delay: -3s; animation-duration: 7s; }
  #research-solutions .fw-outcome.is-visible::after { animation: fw-orbit 10s linear infinite; animation-delay: var(--fw-reveal-delay); }
  #research-solutions .fw-outcome.is-visible::before,
  #research-solutions .fw-translation-step.is-visible .fw-step-badge::after { animation: fw-ring-wave 3.8s ease-out infinite; animation-delay: var(--fw-reveal-delay); }
  #research-solutions .fw-outcome.is-visible .fw-icon { animation: fw-icon-float 4.5s ease-in-out infinite; animation-delay: var(--fw-reveal-delay); }
  #research-solutions .fw-translation-steps::before {
    background: linear-gradient(180deg, #0b3052 20%, #37cfbd 48%, #d0fff1 50%, #37cfbd 52%, #0b3052 80%);
    background-size: 100% 250%;
    animation: fw-spine-flow 4s linear infinite;
  }
}
/* Stop ambient work while offscreen, paused, or before initialization. */
#research-solutions:not(.fw-motion-running) *,
#research-solutions:not(.fw-motion-running) *::before,
#research-solutions:not(.fw-motion-running) *::after { animation-play-state: paused !important; }
@keyframes fw-energy-flow { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
@keyframes fw-spark-breathe { 0%, 100% { opacity: .25; scale: .65; } 50% { opacity: .9; scale: 1.25; } }
@keyframes fw-dust-float { from { opacity: .2; translate: 0 8px; } to { opacity: .85; translate: 4px -12px; } }
@keyframes fw-orbit { to { rotate: 360deg; } }
@keyframes fw-ring-wave { 0% { scale: .98; opacity: .65; } 80%, 100% { scale: 1.15; opacity: 0; } }
@keyframes fw-icon-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -3px; } }
@keyframes fw-spine-flow { from { background-position: 50% 100%; } to { background-position: 50% 0%; } }
@media (max-width: 1000px) {
  #research-solutions .fw-energy-network { top: -42.85714%; height: 155.84416%; }
  #research-solutions .fw-masthead { position: relative; left: auto; top: auto; }
  #research-solutions .fw-outcome { position: relative; left: auto; top: auto; }
  #research-solutions .fw-motion-toggle { top: 0; right: 0; }
  #research-solutions .fw-tree-canvas::after { display: none; }
  #research-solutions .fw-energy-pulses { stroke-width: 7; }
}
@media (prefers-reduced-motion: reduce), (forced-colors: active) {
  #research-solutions .fw-energy-network,
  #research-solutions .fw-tree-canvas::after,
  #research-solutions .fw-outcome::before,
  #research-solutions .fw-outcome::after,
  #research-solutions .fw-step-badge::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  #research-solutions *, #research-solutions *::before, #research-solutions *::after {
    animation: none !important;
    transition: none !important;
  }
  #research-solutions .fw-reveal { opacity: 1 !important; translate: none !important; }
}
@media (forced-colors: active) {
  #research-solutions .fw-brand,
  #research-solutions .fw-title-line { background: none; color: CanvasText; }
  #research-solutions .fw-masthead::after { background: CanvasText; }
}

/* Keep every translated outcome caption inside its curved ring without
   changing the original text, typography, icons, or ring coordinates. Natural
   balanced wrapping replaces the old forced breaks; desktop captions use the
   wider upper part of the circle with a smaller icon-to-caption gap. */
#research-solutions .fw-outcome-label {
  min-width: 0;
  max-width: 85%;
  overflow-wrap: anywhere;
  text-wrap: balance;
}
html[lang="en"] #research-solutions .fw-outcome-label { max-width: 90%; }
#research-solutions .fw-outcome-label br { display: none; }
@media (min-width: 1001px) {
  #research-solutions .fw-outcome {
    gap: .1cqw;
    padding: .5cqw .5cqw 1.1cqw;
    min-block-size: 0;
  }
}
