section.steps { ol { display: flex; flex-direction: row; list-style: none; counter-reset: steps-counter; padding: 60px 0 0; &[data-active-step="download"], &[data-active-step="ssl"], &[data-active-step="certbot"], &[data-active-step="live"] { li.download { div { background-color: #000; border-color: #000; svg { stroke: #fff; } } } } &[data-active-step="ssl"], &[data-active-step="certbot"], &[data-active-step="live"] { li.ssl { div { background-color: #000; border-color: #000; svg { stroke: #fff; } } } } &[data-active-step="certbot"], &[data-active-step="live"] { li.certbot { div { background-color: #000; border-color: #000; svg { stroke: #fff; } } } } &[data-active-step="live"] { li.live { div { background-color: #000; border-color: #000; svg { stroke: #fff; } } } } &[data-active-step="ssl"] { li.download::after, li.ssl::before { background-color: #000; } } &[data-active-step="certbot"] { li.download::after, li.ssl::before, li.ssl::after, li.certbot::before { background-color: #000; } } &[data-active-step="live"] { li.download::after, li.ssl::before, li.ssl::after, li.certbot::before, li.certbot::after, li.live::before { background-color: #000; } } li { display: block; position: relative; flex: 1 1 auto; counter-increment: steps-counter; list-style-type: none; text-align: center; cursor: pointer; font-size: 0.9rem; @include media-breakpoint-up(sm) { font-size: inherit; } &::before, &::after { content: ''; display: block; height: 2px; width: 50%; position: absolute; top: -35px; background-color: #dee2e6; z-index: 0; transition: background-color 0.15s ease-in-out; } &::before { right: 50%; } &::after { left: 50%; } &:first-child::before, &:last-child::after { display: none; } .counter::before { content: counter(steps-counter) '. '; font-weight: 700; } .circle { position: absolute; z-index: 1; left: 50%; transform: translateX(-50%); top: -50px; width: 40px; height: 40px; border: 1px solid #dee2e6; border-radius: 50%; background-color: #f8f8f8; transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; @include media-breakpoint-up(sm) { top: -60px; width: 50px; height: 50px; } svg { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 60%; } } } } }