.index-page .pain-section-v3 > .container { max-width: 1320px; }
.challenge-map { position: relative; display: grid; grid-template-columns: 1fr 1.15fr 1fr; grid-template-rows: repeat(3, minmax(130px, auto)) auto; gap: 42px 56px; align-items: center; padding: 30px 0 10px; }
.challenge-visual { grid-column: 2; grid-row: 1 / 4; position: relative; align-self: center; margin: 0; border: 1px solid #168bba; border-radius: 50% 50% 24px 24px; background: #031322; box-shadow: 0 0 70px #069cda20; }
.challenge-visual img { display: block; width: 100%; height: auto; border-radius: inherit; }
.challenge-visual figcaption { position: absolute; bottom: 16px; left: 12px; right: 12px; padding: 12px; border-radius: 12px; background: #031322eb; color: #a9c5d6; text-align: center; font: 500 14px/1.5 Inter, Arial, sans-serif; }
.challenge-visual strong { display: block; color: #eef8ff; font-size: 20px; }
.challenge-points { display: contents; list-style: none; margin: 0; padding: 0; }
.challenge-point { position: relative; display: flex; align-items: center; gap: 14px; min-width: 0; min-height: 108px; padding: 20px 18px; border: 1px solid #167bab80; border-radius: 16px; background: linear-gradient(135deg, #09283eee, #041423f5); box-shadow: 0 12px 30px #0003; pointer-events: auto; animation: challenge-float 5s ease-in-out infinite; transition: border-color .25s, box-shadow .25s; }
.challenge-point:nth-child(odd) { grid-column: 1; }
.challenge-point:nth-child(even) { grid-column: 3; }
.challenge-point:nth-child(1), .challenge-point:nth-child(2) { grid-row: 1; align-self: start; }
.challenge-point:nth-child(3), .challenge-point:nth-child(4) { grid-row: 2; animation-delay: -.8s; }
.challenge-point:nth-child(5), .challenge-point:nth-child(6) { grid-row: 3; align-self: end; animation-delay: -1.6s; }
.challenge-point:nth-child(7) { grid-column: 2; grid-row: 4; animation-delay: -2.4s; }
.challenge-point::after { content: ''; position: absolute; top: 50%; left: 100%; width: 56px; height: 2px; background: linear-gradient(90deg, #159ccb55, #36c3ff); transform-origin: left center; }
.challenge-point:nth-child(even)::after { left: auto; right: 100%; transform-origin: right center; background: linear-gradient(90deg, #36c3ff, #159ccb55); }
.challenge-point:nth-child(1)::after { width: 86px; transform: rotate(38deg); }
.challenge-point:nth-child(2)::after { width: 86px; transform: rotate(-38deg); }
.challenge-point:nth-child(5)::after { width: 86px; transform: rotate(-38deg); }
.challenge-point:nth-child(6)::after { width: 86px; transform: rotate(38deg); }
.challenge-point:nth-child(7)::after { top: -43px; left: 50%; right: auto; width: 2px; height: 42px; background: linear-gradient(#36c3ff, #159ccb55); }
.challenge-point > i { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 12px; background: #11a9ed16; color: #36c3ff; font-size: 22px; }
.challenge-point span { display: block; color: #43c2f5; font: 700 10px/1.5 Inter, Arial, sans-serif; letter-spacing: .1em; margin-bottom: 6px; }
.challenge-point p { margin: 0; color: #e1eef7; font: 600 14px/1.55 Inter, Arial, sans-serif; overflow-wrap: anywhere; text-align: left; }
.challenge-point:hover { border-color: #3bc4ff; box-shadow: 0 0 24px #13aaf52e; animation-play-state: paused; }
@keyframes challenge-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@media (max-width: 991px) {
  .challenge-map { display: flex; flex-direction: column; gap: 30px; }
  .challenge-visual { width: min(100%, 420px); margin: 0; }
  .challenge-points { display: grid; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
  .challenge-points .challenge-point { grid-column: auto; grid-row: auto; }
  .challenge-point:nth-child(7) { grid-column: 1 / -1; }
  .challenge-point::after { display: none; }
}
@media (max-width: 575px) {
  .challenge-map { padding: 8px 8px 0; }
  .challenge-points { grid-template-columns: 1fr; gap: 16px; }
  .challenge-point { min-height: 100px; padding: 18px 16px; }
  .challenge-point p { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .challenge-point { animation: none; transition: none; }
}
