/* A functional progress indicator, shared by category selection and the form. */
.dx-access .dx-journey { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin: 0 0 28px; padding: 0; list-style: none; }
.dx-journey .dx-journey-step { display: flex; align-items: center; gap: 12px; min-width: 0; margin: 0; padding: 12px; border-radius: 14px; }
.dx-journey .dx-journey-step[data-state="current"] { background: var(--dx-brand-soft); }
.dx-journey .dx-journey-symbol { position: relative; display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; border: 1px solid var(--dx-border); border-radius: 14px; background: var(--dx-surface); color: var(--dx-text-soft); }
.dx-journey .dx-journey-symbol > svg:not(.dx-journey-ring) { width: 21px; height: 21px; }
.dx-journey [data-state="current"] .dx-journey-symbol { background: var(--dx-brand); color: var(--dx-gold); border-color: transparent; }
.dx-journey [data-state="complete"] .dx-journey-symbol { background: var(--dx-brand-soft); color: var(--dx-brand); border-color: transparent; }
.dx-journey .dx-journey-ring { position: absolute; inset: -3px; width: 48px; height: 48px; overflow: visible; transform: rotate(-90deg); pointer-events: none; }
.dx-journey .dx-journey-ring circle { fill: none; stroke: var(--dx-gold); stroke-width: 2; stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: calc(100 - var(--journey-progress,0)); }
.dx-journey [data-state="complete"] .dx-journey-ring { display: none; }
.dx-journey .dx-journey-check { display: none; position: absolute; right: -4px; bottom: -4px; width: 18px; height: 18px; padding: 1px; border: 2px solid var(--dx-surface); border-radius: 50%; background: var(--dx-brand); color: #fff; }
.dx-journey [data-state="complete"] .dx-journey-check { display: block; }
.dx-journey .dx-journey-check svg { display: block; width: 100%; height: 100%; }
.dx-journey .dx-journey-copy { display: grid; gap: 4px; min-width: 0; }
.dx-journey .dx-journey-copy strong { font: 500 14px/1.35 var(--dx-font-body); color: var(--dx-text); }
.dx-journey .dx-journey-copy > span { font: 400 12px/1.45 var(--dx-font-body); color: var(--dx-text-soft); }
.dx-journey [data-state="current"] .dx-journey-copy strong { font-weight: 600; color: var(--dx-brand); }
@media (prefers-reduced-motion: no-preference) { .dx-journey .dx-journey-ring circle { transition: stroke-dashoffset 220ms ease; } }
@media (max-width: 960px) { .dx-access .dx-journey { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; } }
@media (max-width: 520px) {
  .dx-journey .dx-journey-step { align-items: flex-start; gap: 10px; padding: 10px 6px; }
  .dx-journey .dx-journey-symbol { width: 36px; height: 36px; flex-basis: 36px; border-radius: 12px; }
  .dx-journey .dx-journey-symbol > svg:not(.dx-journey-ring) { width: 18px; height: 18px; }
  .dx-journey .dx-journey-ring { width: 40px; height: 40px; }
  .dx-journey .dx-journey-copy strong { font-size: 13px; }
}
