/* ===========================
   POC 学習ループセクション
   【最終版・構造修正済み】
   =========================== */

/* セクション全体 */
.poc-loop-section {
  display: flex;
  justify-content: center;
  background: #dfeef8;
  padding: 80px 0;
}

/* ✅ 白い枠（カード） */
.process-card {
  background: #fff;
  border-radius: 24px;
  padding: 48px 56px 56px;
  width: 1100px;
  max-width: calc(100% - 40px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
}

/* ✅ タイトル：カードの中の最上段 */
.process-title {
  text-align: center;
  margin-bottom: 40px;
}

.process-title h2 {
  font-size: 24px;
  font-weight: 700;
  color: #0b1f44;
  margin-bottom: 12px;
}

.process-title p {
  font-size: 14px;
  color: #5f6f86;
  line-height: 1.7;
}

/* ---- 回転ループ ---- */

.poc-loop-circle-wrapper {
  text-align: center;
  margin-bottom: 40px;
}

.poc-loop-circle {
  position: relative;
  width: 180px;
  height: 180px;
  margin: 0 auto 12px;
  filter: drop-shadow(0 14px 30px rgba(15, 56, 120, 0.18));
}

.poc-loop-svg {
  width: 100%;
  height: 100%;
  animation: poc-loop-spin 14s linear infinite;
  transform-origin: 50% 50%;
}

@keyframes poc-loop-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

.poc-loop-label {
  position: absolute;
  inset: 32px;
  border-radius: 999px;
  background: radial-gradient(circle at 30% 0%, #ffffff, #e3f1ff);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.poc-loop-label-main {
  font-size: 11px;
  font-weight: 700;
  color: #27508f;
  line-height: 1.4;
  text-align: center;
}

.poc-loop-label-sub {
  margin-top: 4px;
  font-size: 11px;
  color: #4b6584;
}

.poc-loop-caption-main {
  font-size: 15px;
  font-weight: 700;
  color: #14386b;
  margin-bottom: 4px;
}

.poc-loop-caption-sub {
  font-size: 11px;
  color: #6b7a96;
}

/* ---- 中央ループ（回転アニメーション） ---- */

.poc-loop-image-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 20px 0;
}

.improvement-loop {
  width: 190px;
  height: 190px;
  filter: drop-shadow(0 8px 20px rgba(79, 172, 254, 0.25));
}

.improvement-loop svg {
  width: 100%;
  height: 100%;
}

.loop-rotate {
  transform-origin: 50% 50%;
  animation: rotateLoop 6s linear infinite;
}

@keyframes rotateLoop {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .improvement-loop {
    width: 160px;
    height: 160px;
  }
}

/* ==================================================
   2カラムレイアウト強制無効化
   他のCSSファイルによる横並びレイアウトを完全に上書き
   ================================================== */

/* グリッド・フレックスレイアウトを完全に無効化 */
#poc-loop .poc-cards,
#poc-loop .process-layout,
#poc-loop .poc-layout,
.poc-loop-section .poc-cards,
.poc-loop-section .process-layout,
.poc-loop-section .poc-layout {
  display: block !important;
  grid-template-columns: none !important;
  flex-direction: column !important;
}

/* カラムを100%幅に */
#poc-loop .poc-column,
#poc-loop .process-title,
#poc-loop .process-content,
.poc-loop-section .poc-column,
.poc-loop-section .process-title,
.poc-loop-section .process-content {
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
}

/* ---- ブロック共通 ---- */

.poc-loop-block {
  margin-top: 20px;
}

.poc-loop-block-header {
  margin-bottom: 16px;
}

.poc-loop-block-label {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px 5px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.poc-loop-block-label-problem {
  background: rgba(248, 113, 113, 0.08);
  color: #b91c1c;
}

.poc-loop-block-label-solution {
  background: rgba(56, 189, 248, 0.06);
  color: #0369a1;
}

/* ---- POC課題：横並びカード ---- */

.poc-loop-problem-row {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.poc-loop-problem-card {
  flex: 1 1 220px;
  min-width: 220px;
  padding: 16px 16px 18px;
  border-radius: 18px;
  background: #ffffff;
  border: 1px solid rgba(248, 113, 113, 0.25);
  box-shadow: 0 6px 16px rgba(148, 27, 40, 0.08);
}

.poc-loop-problem-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: #ef4444;
  color: #ffffff;
  font-size: 11px;
  font-weight: 700;
  margin-bottom: 8px;
}

.poc-loop-problem-card h3 {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 6px;
  color: #1f2937;
}

.poc-loop-problem-card p {
  font-size: 11px;
  line-height: 1.6;
  color: #4b5563;
}

/* ---- 最適化ソリューション：PDCA矢印 ---- */

.poc-loop-solution-row {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.poc-loop-solution-step {
  position: relative;
  flex: 1 1 220px;
  min-width: 220px;
  padding: 14px 18px 16px 18px;
  border-radius: 16px;
  background: linear-gradient(90deg, #e0f2fe, #f5f3ff);
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.12);
  color: #0f172a;
  overflow: hidden;
}

/* 矢印化 */
.poc-loop-solution-step::after {
  content: "";
  position: absolute;
  top: 0;
  right: -18px;
  width: 36px;
  height: 100%;
  background: inherit;
  transform: skewX(-30deg);
}

/* 色バリエーション（P/D/C/A） */
.poc-loop-solution-step-plan {
  background: linear-gradient(90deg, #dbeafe, #bfdbfe);
}

.poc-loop-solution-step-do {
  background: linear-gradient(90deg, #e0f2fe, #a5f3fc);
}

.poc-loop-solution-step-check {
  background: linear-gradient(90deg, #dcfce7, #bbf7d0);
}

.poc-loop-solution-step-act {
  background: linear-gradient(90deg, #fef9c3, #fed7aa);
}

.poc-loop-solution-step-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.poc-loop-solution-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.15);
  color: #0f172a;
  font-size: 11px;
  font-weight: 700;
}

.poc-loop-solution-step-title {
  font-size: 12px;
  font-weight: 700;
}

.poc-loop-solution-step p {
  font-size: 11px;
  line-height: 1.5;
}

/* フッターメモ */
.poc-loop-solution-footnote {
  margin-top: 16px;
  font-size: 11px;
  color: #6b7280;
}

/* ---- スマホ対応 ---- */

@media (max-width: 768px) {
  .poc-loop-inner {
    padding: 32px 20px 40px;
  }

  .poc-loop-problem-row,
  .poc-loop-solution-row {
    flex-direction: column;
  }

  .poc-loop-solution-step::after {
    display: none; /* モバイルでは矢印をシンプルに */
  }
}
