/* ── Process Section ──────────────────────────────────────── */
.process { padding: 6rem clamp(1.5rem,6vw,9rem); background: #020617; position: relative; overflow: hidden; }

/* Blurred background image */
.process-bg {
  position: absolute; inset: 0; z-index: 0; opacity: 0.3;
  transition: opacity 1s ease;
}
.process-bg-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  filter: blur(40px);
  opacity: 0;
  transition: opacity 1.5s ease;
}
.process-bg-img.active { opacity: 1; }
.process-bg-overlay {
  position: absolute; inset: 0;
  background: rgba(2,6,23,.6);
}

.process-inner { max-width: var(--max-w); margin: 0 auto; position: relative; z-index: 1; }
.process-header { margin-bottom: 4rem; text-align: center; }
.process-header h2 { font-size: clamp(2rem,4vw,3rem); font-weight: 700; margin-bottom: 1rem; }
.process-header p  { color: #94a3b8; max-width: 42rem; margin: 0 auto; font-size: 1.0625rem; }

.process-body {
  display: flex; flex-direction: column;
  gap: 3rem; align-items: center;
}

/* Step list */
.process-steps { width: 100%; display: flex; flex-direction: column; gap: 0.75rem; }
.process-step {
  position: relative; overflow: hidden;
  padding: 1.5rem;
  border-radius: 1rem;
  cursor: pointer;
  border: 1px solid transparent;
  transition: background 0.4s, border-color 0.4s;
}
.process-step.active {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.2);
  box-shadow: 0 0 30px rgba(255,255,255,.04);
}
.process-step:not(.active):hover { background: rgba(255,255,255,.05); }
.process-step-progress {
  position: absolute; top: 0; left: 0; bottom: 0;
  background: rgba(74,75,113,.15);
  width: 0%; transition: width 50ms linear;
  z-index: 0;
}
.process-step-inner {
  position: relative; z-index: 1;
  display: flex; align-items: flex-start; gap: 1.25rem;
}
.process-step-icon {
  width: 3rem; height: 3rem; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.4s;
}
.process-step.active   .process-step-icon { background: var(--dadi-blue); box-shadow: 0 0 15px rgba(59,130,246,.5); }
.process-step:not(.active) .process-step-icon { background: #1e293b; }
.process-step-icon svg { width: 1.25rem; height: 1.25rem; }
.process-step.active   .process-step-icon svg { color: #fff; }
.process-step:not(.active) .process-step-icon svg { color: #64748b; }
.process-step-meta { flex: 1; }
.process-step-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.25rem; }
.process-step-id {
  font-family: var(--font-mono); font-size: 0.8125rem; font-weight: 700;
  transition: color 0.4s;
}
.process-step.active .process-step-id { color: var(--dadi-blue); }
.process-step:not(.active) .process-step-id { color: #475569; }
.process-step-title {
  font-size: 1.125rem; font-weight: 700;
  transition: color 0.4s;
}
.process-step.active .process-step-title { color: #fff; }
.process-step:not(.active) .process-step-title { color: #64748b; }
.process-step-desc {
  max-height: 0; overflow: hidden; opacity: 0;
  transition: max-height 0.4s ease, opacity 0.4s ease, margin-top 0.4s ease;
  margin-top: 0;
}
.process-step.active .process-step-desc {
  max-height: 5rem; opacity: 1; margin-top: 0.5rem;
}
.process-step-desc p { color: #94a3b8; line-height: 1.65; font-size: 0.9375rem; }

/* Image viewport */
.process-visual {
  width: 100%;
  height: 20rem;
  border-radius: 1.5rem;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.1);
  box-shadow: 0 25px 50px rgba(0,0,0,.4);
  background: #0f172a;
  position: relative;
}
.process-visual-img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.05);
  filter: blur(10px);
  transition: opacity 0.8s ease, transform 0.8s ease, filter 0.8s ease;
}
.process-visual-img.active { opacity: 1; transform: scale(1); filter: blur(0); }
.process-visual-grad {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: linear-gradient(to top, rgba(2,6,23,.8), transparent);
  padding: 2rem;
}
.process-phase-badge {
  display: inline-flex; align-items: center; gap: 0.5rem;
  padding: 0.375rem 1rem;
  background: rgba(255,255,255,.1); backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 9999px;
  color: #fff; font-size: 0.8125rem; font-weight: 500;
}
.process-phase-dot {
  width: 0.5rem; height: 0.5rem; border-radius: 50%;
  background: var(--dadi-blue);
  animation: ping 1.5s ease-in-out infinite;
}

@media (min-width: 1024px) {
  .process-header { text-align: left; }
  .process-body { flex-direction: row; align-items: center; gap: 5rem; }
  .process-steps { width: 41.666%; }
  .process-visual { width: 58.333%; height: 70vh; min-height: 600px; }
}
