/* SenRui SVG process flow: component-scoped; no framework or third-party assets */
.sr-flow {
  --sr-blue: #2774b9;
  --sr-ink: #17283d;
  --sr-muted: #6b7e92;
  width: 100%;
  max-width: 880px;
  margin: 0 auto;
  position: relative;
  min-width: 0;
  font-family: 'Microsoft YaHei', 'PingFang SC', 'Noto Sans CJK SC', system-ui, sans-serif;
}
.sr-flow__svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: hidden;
  outline: none;
}
.sr-flow__eyebrow {
  fill: #4a88bf;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 2.2px;
}
.sr-flow__heading { fill: #213c59; font-size: 26px; font-weight: 700; }
.sr-flow__accent { fill: #297cc0; }
.sr-flow__caption { fill: #7f91a5; font-size: 13px; }
.sr-flow__node { cursor: pointer; outline: none; }
.sr-flow__card {
  fill: rgba(255,255,255,.96);
  stroke: #d5e3f0;
  stroke-width: 1.45;
  filter: drop-shadow(0px 8px 14px rgba(26,69,110,.075));
  transition: fill .25s ease, stroke .25s ease, filter .25s ease;
}
.sr-flow__node:hover .sr-flow__card,
.sr-flow__node:focus-visible .sr-flow__card,
.sr-flow__node.is-active .sr-flow__card {
  fill: #f7fbff;
  stroke: #2c80c6;
  filter: drop-shadow(0px 8px 17px rgba(24,92,157,.16));
}
.sr-flow__node:focus-visible .sr-flow__card { stroke-width: 2.8; }
.sr-flow__num-pill { fill: #ebf4fd; }
.sr-flow__node.is-active .sr-flow__num-pill,
.sr-flow__node:hover .sr-flow__num-pill { fill: #d9eafb; }
.sr-flow__num { fill: #297abb; font-size: 14px; font-weight: 750; letter-spacing: .4px; }
.sr-flow__node-title { fill: var(--sr-ink); font-size: 23px; font-weight: 750; }
.sr-flow__node-copy { fill: #5b7088; font-size: 16px; font-weight: 400; }
.sr-flow__node-icon { stroke: #4689c2; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; fill: none; opacity: .78; }
.sr-flow__link { fill: none; stroke: #b7ccdd; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.sr-flow__link-moving { fill: none; stroke: #438dce; stroke-width: 2.8; stroke-linecap: round; stroke-dasharray: 4 10; animation: sr-flow-moving 2.5s linear infinite; }
.sr-flow__hub { fill: #fff; stroke: #4285c4; stroke-width: 2; }
.sr-flow__footer-line { stroke: #d7e7f3; stroke-width: 1; }
.sr-flow__footer-dot { fill: #3082c6; }
.sr-flow__footer { fill: #58748f; font-size: 15px; }
.sr-flow__branch-title { font-size: 21px; }
.sr-flow__branch-copy { font-size: 15px; }
@keyframes sr-flow-moving { to { stroke-dashoffset: -28; } }
@media (prefers-reduced-motion: reduce) {
  .sr-flow__link-moving { animation: none; }
  .sr-flow__card { transition: none; }
}

.sr-flow__footer--mobile { font-size: 13.5px; }

/* Frame is inside the same SVG viewBox as all content, preventing card overflow.
   Toggle with data-frame="on" or data-frame="off" on the root .sr-flow. */
.sr-flow__frame {
  fill: rgba(255,255,255,0.24);
  stroke: #d6e6f3;
  stroke-width: 1.4;
  filter: drop-shadow(0 8px 20px rgba(27, 91, 144, 0.045));
}
.sr-flow[data-frame="off"] .sr-flow__frame { display: none; }
.sr-flow__footer--mobile { font-size: 12px; }
