/* ===================================
   Strengths page: One-stop circular diagram
   =================================== */


/* Strengths page: One-stop circle diagram */
.strengths-one-stop {
  position: relative;
  width: 100%;
  height: 100%;
  /* default for lg (1024px〜1279px) */
  --one-stop-radius: 190px;
  --one-stop-node-size: 100px;
}

.strengths-one-stop::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 80%;
  height: 80%;
  border-radius: 50%;
  border: 2px dotted #7fd0ff;
  transform: translate(-50%, -50%);
}

.strengths-one-stop-center {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 45%;
  height: 45%;
  transform: translate(-50%, -50%);
  border-radius: 9999px;
  background: radial-gradient(circle at 30% 20%, #9fe5ff 0%, #1ca9ff 45%, #0a6ad8 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.strengths-one-stop-ring {
  position: absolute;
  inset: 0;
  transform-origin: 50% 50%;
  animation: strengths-one-stop-rotate 80s linear infinite;
}

/* Node container positioned at center; each node is placed around circle via rotate/translate */
.strengths-one-stop-node {
  position: absolute;
  left: 50%;
  top: 50%;
  transform-origin: 0 0;
}

.strengths-one-stop-node-inner {
  position: absolute;
  width: var(--one-stop-node-size);
  height: var(--one-stop-node-size);
  margin-left: calc(-0.5 * var(--one-stop-node-size));
  margin-top: calc(-0.5 * var(--one-stop-node-size));
  border-radius: 9999px;
  background: #ffffff;
  border: 2px dotted #7fd0ff;
  box-shadow: 0 0 12px rgba(12, 116, 212, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: 600;
  color: #0463fe;
}

/* Counter-rotate so text stays upright (same logic as test.html circle1–circle5) */
.strengths-one-stop-node-1 .strengths-one-stop-node-inner {
  animation: 80s linear strengths-circle1 infinite;
}
.strengths-one-stop-node-2 .strengths-one-stop-node-inner {
  animation: 80s linear strengths-circle2 infinite;
}
.strengths-one-stop-node-3 .strengths-one-stop-node-inner {
  animation: 80s linear strengths-circle3 infinite;
}
.strengths-one-stop-node-4 .strengths-one-stop-node-inner {
  animation: 80s linear strengths-circle4 infinite;
}
.strengths-one-stop-node-5 .strengths-one-stop-node-inner {
  animation: 80s linear strengths-circle5 infinite;
}

/* 5 nodes evenly spaced around a circle (radius ~220px) */
.strengths-one-stop-node-1 {
  transform: rotate(-90deg) translateX(var(--one-stop-radius));
}

.strengths-one-stop-node-2 {
  transform: rotate(-18deg) translateX(var(--one-stop-radius));
}

.strengths-one-stop-node-3 {
  transform: rotate(54deg) translateX(var(--one-stop-radius));
}

.strengths-one-stop-node-4 {
  transform: rotate(126deg) translateX(var(--one-stop-radius));
}

.strengths-one-stop-node-5 {
  transform: rotate(198deg) translateX(var(--one-stop-radius));
}

@media (max-width: 1023px) {
  .strengths-one-stop {
    --one-stop-radius: 150px;
    --one-stop-node-size: 100px;
  }
}

@media (min-width: 1280px) {
  .strengths-one-stop {
    --one-stop-radius: 220px;
    --one-stop-node-size: 132px;
  }
}

@keyframes strengths-one-stop-rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* Counter-rotation keyframes so text is not rotated (match test.html circle1–circle5) */
@keyframes strengths-circle1 {
  0%   { transform: rotate(90deg); }
  100% { transform: rotate(-270deg); }
}
@keyframes strengths-circle2 {
  0%   { transform: rotate(17deg); }
  100% { transform: rotate(-343deg); }
}
@keyframes strengths-circle3 {
  0%   { transform: rotate(304deg); }
  100% { transform: rotate(-56deg); }
}
@keyframes strengths-circle4 {
  0%   { transform: rotate(235deg); }
  100% { transform: rotate(-125deg); }
}
@keyframes strengths-circle5 {
  0%   { transform: rotate(163deg); }
  100% { transform: rotate(-197deg); }
}
