/* ===== RESEARCH GUIDE RADIAL DIAGRAM ===== */
.rg-diagram-wrap {
  display: flex;
  justify-content: center;
  margin: 8px 0 40px;
}
.rg-diagram {
  position: relative;
  width: 320px;
  height: 320px;
  max-width: 100%;
}
.rg-diagram-center {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 118px;
  height: 118px;
  margin: -59px;
  border-radius: 50%;
  background: rgba(20,184,166,0.08);
  border: 1px solid rgba(20,184,166,0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 10px;
  z-index: 2;
  animation: rg-pulse 3.5s ease-in-out infinite;
}
.rg-diagram-center span {
  color: #F1F5F9;
  font-weight: 800;
  font-size: 13px;
  font-family: 'Sora', 'Inter', sans-serif;
  line-height: 1.2;
}
.rg-line {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1px;
  height: 140px;
  background: linear-gradient(to top, rgba(20,184,166,0.35), rgba(20,184,166,0));
  transform-origin: top center;
}
.rg-node-pos {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  opacity: 0;
  animation: rg-enter 0.6s ease-out forwards;
}
.rg-node {
  position: absolute;
  top: -26px;
  left: -26px;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #161b27;
  border: 1px solid rgba(20,184,166,0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #14B8A6;
  text-decoration: none;
}
.rg-node svg { width: 22px; height: 22px; }
.rg-node-label {
  position: absolute;
  top: 20px;
  left: -40px;
  width: 80px;
  text-align: center;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748B;
}
.rg-caption {
  text-align: center;
  color: #94A3B8;
  font-size: 0.9rem;
  max-width: 460px;
  margin: 4px auto 0;
}

@keyframes rg-enter {
  from { opacity: 0; transform: scale(0.4); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes rg-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(20,184,166,0.25); }
  50% { box-shadow: 0 0 0 10px rgba(20,184,166,0); }
}
@media (prefers-reduced-motion: no-preference) {
  .rg-node { animation: rg-bob 3.4s ease-in-out infinite; }
  .rg-node-label { animation: rg-bob 3.4s ease-in-out infinite; }
}
@keyframes rg-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}
@media (prefers-reduced-motion: reduce) {
  .rg-node-pos { opacity: 1; animation: none; }
}

@media (max-width: 480px) {
  .rg-diagram { width: 260px; height: 260px; transform: scale(0.85); }
}
