/* =========================================================
   Section: Approach / Capabilities (#approach)
   Numbered steps grid — row on desktop, stacked on mobile.
   Scoped under #approach; uses global tokens only.
   ========================================================= */

#approach .approach-head {
  max-width: 720px;
  margin-bottom: clamp(40px, 6vw, 64px);
}

#approach .approach-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  counter-reset: approach;
}

#approach .approach-step {
  display: flex;
  flex-direction: column;
  padding-top: 34px;
  overflow: hidden;
}

/* Gradient accent bar along the top of each step */
#approach .approach-step::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--grad);
  opacity: .55;
  transition: opacity .3s ease;
}
#approach .approach-step:hover::before { opacity: 1; }

#approach .step-num {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 2.4rem;
  line-height: 1;
  letter-spacing: -.03em;
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin-bottom: 8px;
}

#approach .approach-step .icon {
  margin-bottom: 16px;
}

#approach .approach-step h3 {
  font-size: 1.18rem;
  margin-bottom: .5rem;
}

#approach .approach-step p {
  color: var(--muted);
  font-size: .97rem;
  margin: 0;
}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 1024px) {
  #approach .approach-steps { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 620px) {
  #approach .approach-steps { grid-template-columns: 1fr; }
  #approach .step-num { font-size: 2.1rem; }
}
