@charset "UTF-8";

.toc-nav { margin-top: 40px; display: flex; justify-content: center; }
.toc-nav ul { display: flex; gap: 30px; flex-wrap: wrap; justify-content: center; }
.toc-nav a { font-size: 14px; font-weight: bold; color: var(--primary); border-bottom: 1px solid var(--primary); padding-bottom: 3px; }
.toc-nav a:hover { opacity: 0.7; }

.goukai-section { padding: 120px 0; }
#philosophy.goukai-section,
#vision.goukai-section { padding-bottom: 60px; }

.goukai-body h3 {
  font-size: 36px; font-weight: 900; line-height: 1.4; margin-bottom: 30px;
  border-left: 8px solid var(--primary); padding-left: 20px;
}
.bg-black .goukai-body h3 { color: #fff; }

.goukai-body p { font-size: 16px; line-height: 2.3; margin-bottom: 50px; }
.bg-black .goukai-body p { color: #ccc; }

/* 事業カード */
.business-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 30px; margin-bottom: 60px; }
.biz-card { background: #1a1a1a; border: 1px solid #333; border-top: 4px solid var(--primary); padding: 35px 25px; transition: 0.3s; }
.biz-card:hover { transform: translateY(-5px); box-shadow: 0 10px 30px rgba(0,0,0,0.4); }
.biz-num { font-family: "Oswald", sans-serif; font-size: 40px; font-weight: 700; color: var(--primary); display: block; margin-bottom: 12px; line-height: 1; }
.biz-card h4 { font-size: 18px; font-weight: 900; color: #fff; margin-bottom: 15px; }
.biz-card p { font-size: 14px; line-height: 1.9; color: #aaa; margin-bottom: 0; }

/* バーグラフ */
.goukai-chart-box { background: #111; border: 1px solid #333; padding: 40px; }
.goukai-chart-box h4 { font-family: "Oswald", sans-serif; font-size: 16px; color: var(--primary); letter-spacing: 0.15em; margin-bottom: 25px; }
.industrial-bar { margin-bottom: 20px; }
.industrial-bar .label { font-size: 14px; color: #ccc; margin-bottom: 8px; }
.bar-bg { background: #333; border-radius: 2px; height: 34px; overflow: hidden; }
.bar-in { height: 100%; background: linear-gradient(90deg, var(--primary), var(--primary-hover)); display: flex; align-items: center; padding-left: 12px; font-size: 13px; font-weight: bold; color: #fff; }
.caption { font-size: 12px; color: #666; margin-top: 15px; margin-bottom: 0; }

/* ロードマップ */
.road-steps { display: flex; align-items: center; margin-top: 50px; }
.road-item { flex: 1; background: var(--gray); padding: 30px 20px; text-align: center; border: 2px solid #e0e0e0; }
.road-item.active { background: var(--primary); color: #fff; border-color: var(--primary); transform: scale(1.05); position: relative; z-index: 1; }
.road-item.active p, .road-item.active strong { color: #fff; }
.phase { font-family: "Oswald", sans-serif; font-size: 13px; color: var(--primary); letter-spacing: 0.1em; display: block; margin-bottom: 8px; }
.road-item.active .phase { color: rgba(255,255,255,0.8); }
.road-item p { font-size: 14px; line-height: 1.7; margin-bottom: 0; color: #333; }
.road-arrow { width: 0; height: 0; border-top: 18px solid transparent; border-bottom: 18px solid transparent; border-left: 18px solid #e0e0e0; flex-shrink: 0; }

/* チーム数字 */
.spec-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 30px; margin-top: 50px; }
.spec-item { background: #1a1a1a; border: 1px solid #333; border-top: 4px solid var(--primary); padding: 35px 20px; text-align: center; }
.spec-item h4 { font-size: 14px; color: #888; margin-bottom: 15px; }
.spec-num { font-family: "Oswald", sans-serif; font-size: 50px; font-weight: 700; color: var(--primary); line-height: 1; }
.spec-num span { font-size: 18px; color: #ccc; margin-left: 4px; }

/* 価値観ピラー */
.value-pillars { display: grid; grid-template-columns: repeat(4,1fr); gap: 30px; }
.pillar { border: 2px solid var(--primary); padding: 40px 28px; text-align: center; transition: 0.3s; }
.pillar:hover { background: var(--primary); color: #fff; }
.pillar:hover p { color: rgba(255,255,255,0.9); }
.pillar-en { font-family: "Oswald", sans-serif; font-size: 26px; font-weight: 700; color: var(--primary); display: block; margin-bottom: 8px; }
.pillar:hover .pillar-en { color: #fff; }
.pillar h4 { font-size: 16px; font-weight: 900; margin-bottom: 15px; }
.pillar p { font-size: 14px; line-height: 1.9; color: #555; margin-bottom: 0; }

.final-action { text-align: center; margin-top: 60px; }
.final-action > p { font-size: 16px; font-weight: bold; margin-bottom: 25px; }

@media (max-width: 900px) {
  .goukai-section { padding: 80px 0; }
  .goukai-body h3 { font-size: 26px; }
  .business-cards, .spec-grid, .value-pillars { grid-template-columns: 1fr; }
  .road-steps { flex-direction: column; }
  .road-item { width: 100%; }
  .road-item.active { transform: scale(1); }
  .road-arrow { border-left: 18px solid transparent; border-right: 18px solid transparent; border-top: 18px solid #e0e0e0; border-bottom: none; }
  .toc-nav ul { gap: 15px; }
}
