/* SystemMap from the Zvendor design system bundle. */
/* ---------- SystemMap (Solutions page network) ---------- */
.zv-sysmap{position:relative;box-sizing:border-box;width:100%;height:var(--zv-sysmap-h,700px);overflow:hidden;font-family:var(--font-sans,Arial,Helvetica,sans-serif);
  background:radial-gradient(circle at 48% 45%,rgba(0,111,196,.34),transparent 38%),radial-gradient(circle at 80% 22%,rgba(0,81,159,.25),transparent 35%),linear-gradient(135deg,#041c54 0%,#03265d 42%,var(--panel-end,#020b25) 100%)}
.zv-sysmap *,.zv-sysmap *::before{box-sizing:border-box}
.zv-sysmap canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 14%,#000 86%,transparent),linear-gradient(to bottom,transparent,#000 14%,#000 86%,transparent);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent,#000 14%,#000 86%,transparent),linear-gradient(to bottom,transparent,#000 14%,#000 86%,transparent);mask-composite:intersect}
.zv-sysmap__bg{z-index:0}.zv-sysmap__links{z-index:1}
.zv-sysmap__nodes{list-style:none;margin:0;padding:0}
.zv-sysmap__node{--x:50%;--y:50%;--scale:1;position:absolute;z-index:12;left:0;top:0;transform:translate3d(calc(var(--x) - 50%),calc(var(--y) - 50%),0) scale(var(--scale));
  border-radius:var(--radius-pill,999px);color:#eaffff;border:1px solid rgba(1,234,252,.72);
  background:radial-gradient(circle at 35% 25%,rgba(1,234,252,.24),rgba(0,46,104,.82) 62%,rgba(1,18,60,.92));
  box-shadow:0 0 0 5px rgba(1,234,252,.045),0 0 25px rgba(1,234,252,.22),inset 0 0 18px rgba(1,234,252,.09);
  padding:13px 23px;min-width:150px;min-height:66px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:default;
  transition:border-color .22s ease;backface-visibility:hidden;-webkit-font-smoothing:antialiased;will-change:transform}
.zv-sysmap__node strong{font-size:18px;line-height:1.05;font-weight:700;letter-spacing:-.01em}
.zv-sysmap__node small{font-size:12px;line-height:1.3;color:#9eeef6;margin-top:5px;max-width:165px}
.zv-sysmap__node::before{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:var(--synapse,#01eafc);box-shadow:0 0 14px 5px rgba(1,234,252,.45);left:-5px;top:50%;transform:translateY(-50%)}
.zv-sysmap__node:hover,.zv-sysmap__node:focus-visible,.zv-sysmap__node.is-active{outline:none;z-index:30;border-color:#bdfbff;box-shadow:0 0 0 7px rgba(1,234,252,.07),0 0 38px rgba(1,234,252,.38),inset 0 0 22px rgba(1,234,252,.13)}
.zv-sysmap__node:focus-visible{outline:2px solid var(--sky,#a8d6ff);outline-offset:4px}
.zv-sysmap__node--center{z-index:15;min-width:190px;min-height:82px;border-width:2px;background:radial-gradient(circle at 40% 25%,rgba(1,234,252,.31),rgba(0,49,111,.9) 64%,rgba(1,14,53,.96))}
.zv-sysmap__node--center strong{font-size:20px;text-transform:uppercase}
.zv-sysmap__node--benefit{z-index:6;min-width:0;min-height:0;padding:8px 14px;font-size:12px;font-weight:800;color:#bdfbff;background:rgba(1,38,88,.76);border-color:rgba(1,234,252,.38);box-shadow:0 0 15px rgba(1,234,252,.10)}
.zv-sysmap__node--benefit::before{width:5px;height:5px;left:-3px}
/* Mobile map: narrow containers keep the network as a vertical zig-zag */
.zv-sysmap.is-mobile canvas{-webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent),linear-gradient(to bottom,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent),linear-gradient(to bottom,transparent,#000 4%,#000 96%,transparent)}
.zv-sysmap.is-mobile .zv-sysmap__node{min-height:0}
.zv-sysmap.is-mobile .zv-sysmap__node--center{width:min(78%,280px);min-height:76px}
.zv-sysmap.is-mobile .zv-sysmap__node--tool{width:min(60%,236px);min-width:0;min-height:68px;padding:11px 18px}
.zv-sysmap.is-mobile .zv-sysmap__node--tool strong{font-size:17px}
.zv-sysmap.is-mobile .zv-sysmap__node small{max-width:none;font-size:12px}
.zv-sysmap.is-mobile .zv-sysmap__node--benefit{max-width:44%;padding:8px 12px;line-height:1.25}
/* Stacked: narrow containers, or before the script runs */
.zv-sysmap.is-stacked,.zv-sysmap:not(.is-ready){height:auto;padding:28px 16px}
.zv-sysmap.is-stacked canvas,.zv-sysmap:not(.is-ready) canvas{display:none}
.zv-sysmap.is-stacked .zv-sysmap__nodes,.zv-sysmap:not(.is-ready) .zv-sysmap__nodes{display:grid;gap:12px}
.zv-sysmap.is-stacked .zv-sysmap__node,.zv-sysmap:not(.is-ready) .zv-sysmap__node{position:static;transform:none!important;width:100%;min-width:0;filter:none!important;opacity:1!important}
.zv-sysmap.is-stacked .zv-sysmap__node small{font-size:14px;max-width:none}
.zv-sysmap.is-stacked .zv-sysmap__node--benefit{font-size:14px;order:2}
@media (prefers-reduced-motion:reduce){.zv-sysmap__node{transition:none}}
