/* process.css */
.process-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: var(--sp-8);
  position: relative;
}
.process-grid::before {
  content: '';
  position: absolute;
  top: 32px; left: 15%; right: 15%;
  height: 2px;
  background: var(--gray-100);
  z-index: 0;
}
@media (max-width: 768px) {
  .process-grid { grid-template-columns: 1fr 1fr; }
  .process-grid::before { display: none; }
}
.process-step { text-align: center; position: relative; z-index: 1; }
.step-circle {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: var(--primary-bg);
  border: 2px solid var(--primary-20);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto var(--sp-4);
  font-size: 26px;
  position: relative;
}
.step-num {
  position: absolute;
  bottom: -4px; right: -4px;
  width: 20px; height: 20px;
  background: var(--primary);
  color: white;
  border-radius: 50%;
  font-size: 11px;
  font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  border: 2px solid white;
}
.step-title { font-family: var(--font-heading); font-size: var(--text-base); font-weight: 700; margin-bottom: var(--sp-2); }
.step-desc  { font-size: var(--text-sm); color: var(--gray-500); line-height: var(--leading-relaxed); }
