/* Shared chronological sequences. Ordered-list semantics survive visual markers. */
.steps-block { background:var(--sand); border-radius:6px; padding:var(--panel-pad); margin-block:1.25rem 2.5rem; }
.steps-heading { margin-bottom:20px; }
.steps-block .steps { list-style:none; margin:0; padding:0; }
.steps-block .steps > .step { position:relative; display:grid; grid-template-columns:48px minmax(0,1fr); column-gap:24px; margin:0; padding:0 0 32px; }
.steps-block .steps > .step:last-child { padding-bottom:0; }
.step-num { position:relative; z-index:2; width:48px; height:48px; border-radius:50%; background:var(--navy); color:#fff; display:grid; place-items:center; font:700 22px/1 "Source Serif 4",Georgia,serif; }
.steps-block .step:not(:last-child)::after { content:""; position:absolute; left:23px; top:48px; bottom:0; width:2px; background:var(--teal); }
.steps-block .step:not(:last-child)::before { content:""; position:absolute; left:19px; top:calc(50% + 12px); width:8px; height:8px; border-right:2px solid var(--teal); border-bottom:2px solid var(--teal); transform:rotate(45deg); background:var(--sand); z-index:1; }
.steps-block .step-body h3 { margin:0 0 6px; font:600 19px/1.3 "Public Sans",system-ui,sans-serif; color:var(--navy); }
.steps-block .step-body p { margin:0; max-width:62ch; font-size:16px; color:var(--ink); }
.steps-block .steps-followup { margin:24px 0 0; }
.dual-crisis { background:var(--sand); border-radius:6px; padding:var(--panel-pad); }
.dual-crisis p { margin:0; }
.dual-crisis a,.steps-block a { color:var(--teal-dark); }
@media(max-width:899px) {
  .steps-block { padding:20px; }
  .steps-block .steps > .step { grid-template-columns:40px minmax(0,1fr); column-gap:16px; padding-bottom:24px; }
  .step-num { width:40px; height:40px; font-size:19px; }
  .steps-block .step:not(:last-child)::after { left:19px; top:40px; }
  .steps-block .step:not(:last-child)::before { left:15px; }
}
@media(min-width:1100px) {
  .steps-block--horizontal .steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
  .steps-block--horizontal .steps > .step { display:block; padding:0; }
  .steps-block--horizontal .step-num { margin-bottom:20px; }
  .steps-block--horizontal .step:not(:last-child)::after { left:48px; right:-24px; top:23px; bottom:auto; height:2px; width:auto; }
  .steps-block--horizontal .step:not(:last-child)::before { left:calc(50% + 12px); top:19px; transform:rotate(-45deg); }
}

.steps-block ol + p { margin-top:16px; }
