/* ============================================================
   07-process.css — 3-step build process
   Module: <section id="process">
   Animated journey: numbered steps + icon, dotted connector
   on desktop, vertical connector on mobile.
   Steps animate in on scroll using existing fade-up + delay-*
   from 16-animations.css.
   ============================================================ */

#process { background: var(--c-white); border-top: 1px solid var(--c-line); }

/* --- grid + dotted connector line --- */
.process-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s-5);
  position: relative;
}

/* Connector: runs between the centre of circle 1 and circle 3.
   32px = half the 64px circle, so the line sits at the vertical
   midpoint of every number badge. */
.process-grid::before {
  content: "";
  position: absolute;
  top: 32px;
  left: calc(16.67% + 12px);   /* starts just past first circle edge */
  right: calc(16.67% + 12px);  /* ends just before last circle edge */
  height: 2px;
  background: repeating-linear-gradient(
    90deg,
    var(--c-green) 0 8px,
    transparent 8px 20px
  );
  z-index: 0;
  opacity: 0.45;
}

/* --- individual step --- */
.proc-step {
  text-align: center;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Icon row above the number badge */
.proc-icon {
  font-size: 1.8rem;
  line-height: 1;
  margin-bottom: var(--s-2);
}

.proc-num {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  margin: 0 auto var(--s-4);
  background: var(--c-blue);
  color: var(--c-yellow);
  border-radius: 50%;
  font-family: var(--f-display);
  font-size: 1.6rem;
  font-weight: 900;
  border: 4px solid var(--c-white);
  box-shadow: 0 0 0 2px var(--c-line), 0 4px 16px rgba(30,58,95,0.14);
  /* slight lift so the dotted line visually passes behind */
  position: relative;
  z-index: 2;
}

.proc-step h3 {
  color: var(--c-ink);
  margin-bottom: var(--s-2);
}
.proc-step p {
  color: var(--c-muted);
  max-width: 300px;
  margin: 0 auto;
  font-size: 0.97rem;
  line-height: 1.6;
}

/* --- mobile: stack vertically with vertical connector --- */
@media (max-width: 800px) {
  .process-grid {
    grid-template-columns: 1fr;
    gap: 0;               /* connector strip provides spacing */
  }
  .process-grid::before { display: none; }

  /* vertical dotted line between steps */
  .proc-step:not(:last-child)::after {
    content: "";
    display: block;
    width: 2px;
    height: 40px;
    margin: var(--s-3) auto;
    background: repeating-linear-gradient(
      180deg,
      var(--c-green) 0 6px,
      transparent 6px 14px
    );
    opacity: 0.45;
  }
}
