/*
 * Process steps (Flux-only block). Each step's top rule takes the next colour of
 * the five-step band, so five steps read hot to cold, left to right (B3 patterns).
 */
.flux-process-steps {
  padding: 88px 0;
}

.flux-process-steps__intro {
  max-width: 760px;
  margin-bottom: 48px;
}

.flux-process-steps__intro > :first-child {
  margin-top: 0;
}

.flux-process-steps__intro > :last-child {
  margin-bottom: 0;
}

.flux-process-steps__list {
  display: grid;
  grid-template-columns: repeat(var(--flux-steps, 5), minmax(0, 1fr));
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: none;
}

.flux-process-steps__list--count-1 { --flux-steps: 1; }
.flux-process-steps__list--count-2 { --flux-steps: 2; }
.flux-process-steps__list--count-3 { --flux-steps: 3; }
.flux-process-steps__list--count-4 { --flux-steps: 4; }
.flux-process-steps__list--count-5 { --flux-steps: 5; }

.flux-process-steps__step {
  min-width: 0;
  padding-top: 20px;
  border-top: 8px solid var(--flux-step-colour, var(--flux-ink));
}

.flux-process-steps__step:nth-child(1) { --flux-step-colour: var(--flux-band-1); }
.flux-process-steps__step:nth-child(2) { --flux-step-colour: var(--flux-band-2); }
/* Band step 3 is Chalk, which vanishes on a Chalk ground, so it is ruled in Mist instead. */
.flux-process-steps__step:nth-child(3) { --flux-step-colour: var(--flux-mist); }
.flux-process-steps__step:nth-child(4) { --flux-step-colour: var(--flux-band-4); }
.flux-process-steps__step:nth-child(5) { --flux-step-colour: var(--flux-band-5); }

.flux-process-steps__marker {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.flux-process-steps__number {
  font-family: var(--rui-font-mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
}

.flux-process-steps__icon {
  width: 28px;
  height: 28px;
}

.flux-process-steps__title {
  margin: 0 0 12px;
  font-size: 22px;
  font-weight: 800;
  font-stretch: 112%;
  line-height: 1.15;
}

.flux-process-steps__content > :first-child {
  margin-top: 0;
}

.flux-process-steps__content > :last-child {
  margin-bottom: 0;
}

.flux-process-steps__content h3 {
  margin-bottom: 8px;
  font-family: var(--rui-font-body);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

.flux-process-steps__content p,
.flux-process-steps__content li {
  color: var(--flux-text-secondary);
}

.flux-process-steps__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 40px;
}

/* Stacked layout: one step per row, number and title on the left, copy on the right. */
.flux-process-steps--stacked .flux-process-steps__list {
  grid-template-columns: minmax(0, 1fr);
  gap: 40px;
}

.flux-process-steps--stacked .flux-process-steps__step {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  column-gap: 48px;
  align-items: start;
}

.flux-process-steps--stacked .flux-process-steps__marker,
.flux-process-steps--stacked .flux-process-steps__title {
  grid-column: 1;
}

.flux-process-steps--stacked .flux-process-steps__title {
  font-size: var(--rui-heading-font-size);
}

.flux-process-steps--stacked .flux-process-steps__content {
  grid-column: 2;
  grid-row: 1 / span 2;
}

@media (max-width: 1024px) {
  .flux-process-steps--stacked .flux-process-steps__step {
    grid-template-columns: minmax(0, 1fr);
  }

  .flux-process-steps--stacked .flux-process-steps__content {
    grid-column: 1;
    grid-row: auto;
  }

  .flux-process-steps:not(.flux-process-steps--stacked) .flux-process-steps__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .flux-process-steps {
    padding: 56px 0;
  }

  .flux-process-steps__list {
    grid-template-columns: minmax(0, 1fr);
  }

  .flux-process-steps__buttons {
    flex-direction: column;
    align-items: stretch;
  }
}
