/* Homepage audience band only. Shared grid slots keep tab changes stationary. */
.next-step { --journey-outer-gap: 74px; grid-template-columns: 280px minmax(0, 1fr); align-items: center; gap: var(--journey-outer-gap); min-height: 220px; padding-block: 40px; border-bottom: 2px solid var(--teal); }
.next-step-label { align-items: center; gap: 18px; padding-top: 0; }
.next-step-label .signal { flex: 0 0 28px; width: 28px; height: 8px; margin: 0; }
.next-step h2 { font-size: 28px; line-height: 1.28; font-weight: 650; }
.journey { display: grid; grid-template-columns: 176px minmax(0, 1fr); align-items: center; gap: 36px; min-width: 0; overflow-anchor: none; }
.journey-tabs { grid-area: 1 / 1; flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 10px; margin: 0; }
.journey-tabs button { min-height: 44px; padding: 11px 21px; font-size: 13px; line-height: 1.5; border-radius: 28px; }
.journey-panel { grid-area: 1 / 2; display: grid; grid-template-columns: minmax(0, 1fr) 200px; align-items: center; justify-content: normal; gap: var(--journey-outer-gap); min-width: 0; min-height: 100px; }
/* Reserve the taller state's space responsively; inactive content stays hidden
   and inert, including its links, rather than being removed from layout. */
.next-step .journey-panel[hidden] { display: grid !important; visibility: hidden; pointer-events: none; }
.journey-copy { display: grid; grid-template-rows: minmax(30px, auto) minmax(48px, auto); gap: 8px; min-width: 0; align-content: center; }
.journey-copy h3 { margin: 0; font-size: 23px; line-height: 1.3; }
.journey-copy p { max-width: 47ch; margin: 0; font-size: 14px; line-height: 1.7; }
.journey-actions { display: grid; grid-template-rows: 37px 20px; align-content: center; justify-items: start; gap: 8px; }
.journey-actions .arrow-link { grid-row: 1; width: 100%; font-size: 13px; }
.journey-actions .candidate-intro { grid-row: 2; width: auto; padding: 0; font-size: 12px; }
#specialisms { padding-top: 48px; }
#specialisms .section-heading { grid-template-columns: minmax(0, 1fr); align-items: start; gap: 16px; }
#specialisms .section-heading > p { max-width: none; text-wrap: pretty; }
@media (max-width: 1360px) {
  .next-step { --journey-outer-gap: 40px; }
}
@media (max-width: 1180px) {
  .next-step { grid-template-columns: 270px minmax(0, 1fr); gap: 32px; }
  .next-step h2 { font-size: 26px; }
  .journey { grid-template-columns: 176px minmax(0, 1fr); gap: 28px; }
  .journey-panel { grid-template-columns: minmax(0, 1fr); align-content: center; gap: 14px; }
  .journey-actions { width: 200px; }
}
@media (max-width: 860px) {
  .next-step { grid-template-columns: minmax(0, 1fr); gap: 26px; min-height: 0; padding-block: 32px; }
  .next-step-label { justify-content: center; }
  .next-step h2 br { display: none; }
  .journey { grid-template-columns: 190px minmax(0, 1fr); gap: 36px; }
  .journey-copy h3 { font-size: 22px; }
}
@media (max-width: 640px) {
  .next-step { gap: 26px; padding-block: 30px; }
  .next-step h2 { font-size: 26px; text-align: center; }
  .next-step-label { gap: 14px; }
  .journey { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .journey-tabs { grid-area: 1 / 1; width: min(100%, 240px); justify-self: center; }
  .journey-tabs button { padding-inline: 16px; font-size: 12px; }
  .journey-panel { grid-area: 2 / 1; text-align: center; gap: 16px; }
  .journey-copy p { margin-inline: auto; }
  .journey-actions { justify-self: center; justify-items: center; }
  #specialisms { padding-top: 32px; }
}
