/* ===============================
   SproutSong Advantage – Infinity
================================ */
.advantage-infinity {
  padding: 70px 0 90px;
  background: #fff;
}

.infinity-wrap {
  position: relative;
  max-width: 1000px;
  margin: 0 auto;
  height: 420px;
}

.infinity-wrap svg {
  width: 100%;
  height: 100%;
}

/* Smooth flow */
.flow {
  animation: dashMove 30s linear infinite;
}

@keyframes dashMove {
  from { stroke-dashoffset: 0; }
  to   { stroke-dashoffset: -2000; }
}

/* Node base */
.node {
  position: absolute;
  left: calc(var(--x) * 1%);
  top:  calc(var(--y) * 1%);
  transform: translate(-50%, -50%);
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
}

/* Icon */
.icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(0,0,0,0.06);
}

.icon svg {
  width: 22px;
  height: 22px;
}

/* Colors */
.blue   { background:#eef4ff; color:#2563eb; }
.green  { background:#ecfdf5; color:#16a34a; }
.orange { background:#fff4e5; color:#f97316; }
.yellow { background:#fffbea; color:#facc15; }

/* Layout rules */
.node-top {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.node-bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.node-left {
  display: flex;
  align-items: center;
  gap: 10px;
  text-align: right;
}

.node-right {
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Caption */
.path-caption {
  margin-top: 24px;
  text-align: center;
  font-size: 14px;
  color: #64748b;
}

.flow {
  animation: flowMove 2.5s linear infinite;
}

.flow-back {
  stroke-dashoffset: 0;
  opacity: 0.5;
}

.flow-front {
  stroke-dashoffset: 40; /* phase shift */
}

@keyframes flowMove {
  to {
    stroke-dashoffset: -40;
  }
}