/**
 * Materialize Stepper - A little plugin that implements a stepper to Materializecss framework.
 * @version v3.1.0
 * @author Igor Marcossi (Kinark) <igormarcossi@gmail.com>.
 * @link https://github.com/Kinark/Materialize-stepper
 * 
 * Licensed under the MIT License (https://github.com/Kinark/Materialize-stepper/blob/master/LICENSE).
 */

.card-content ul.stepper {
    margin: 1em -24px;
    padding: 0 24px;
}

@media only screen and (min-width: 993px) {
    .card-content ul.stepper.horizontal {
        margin-left: -24px;
        margin-right: -24px;
        padding-left: 24px;
        padding-right: 24px;
    }

        .card-content ul.stepper.horizontal:first-child {
            margin-top: -24px;
        }

        .card-content ul.stepper.horizontal .step.step-content {
            padding-left: 40px;
            padding-right: 40px;
        }

            .card-content ul.stepper.horizontal .step.step-content .step-actions {
                padding-left: 40px;
                padding-right: 40px;
            }
}

ul.stepper {
    counter-reset: section;
    overflow-y: auto;
    overflow-x: hidden;
}

    ul.stepper .wait-feedback {
        left: 0;
        right: 0;
        top: 0;
        z-index: 2;
        position: absolute;
        width: 100%;
        height: 100%;
        text-align: center;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    ul.stepper .step {
        position: relative;
        transition: height 400ms cubic-bezier(0.4, 0, 0.2, 1), padding-bottom 400ms cubic-bezier(0.4, 0, 0.2, 1);
    }

        ul.stepper .step .step-title {
            margin: 0 -24px;
            cursor: pointer;
            padding: 15.5px 44px 24px 64px;
            display: block;
        }

            ul.stepper .step .step-title:hover {
                background-color: rgba(0, 0, 0, 0.06);
            }

            ul.stepper .step .step-title::after {
                content: attr(data-step-label);
                display: block;
                position: absolute;
                font-size: 12.8px;
                font-size: 0.8rem;
                color: #424242;
                font-weight: 400;
            }

        ul.stepper .step .step-content {
            position: relative;
            display: none;
            height: 0;
            transition: height 400ms cubic-bezier(0.4, 0, 0.2, 1);
            width: inherit;
            overflow: visible;
            margin-left: 41px;
            margin-right: 24px;
        }

            ul.stepper .step .step-content .step-actions {
                padding-top: 16px;
                padding-bottom: 4px;
                display: flex;
                justify-content: flex-start;
            }

                ul.stepper .step .step-content .step-actions .btn:not(:last-child), ul.stepper .step .step-content .step-actions .btn-flat:not(:last-child), ul.stepper .step .step-content .step-actions .btn-large:not(:last-child) {
                    margin-right: 5px;
                }

            ul.stepper .step .step-content .row {
                margin-bottom: 7px;
            }

        ul.stepper .step::before {
            position: absolute;
            counter-increment: section;
            content: counter(section);
            height: 26px;
            width: 26px;
            color: white;
            background-color: #B2B2B2;
            border-radius: 50%;
            text-align: center;
            line-height: 26px;
            font-weight: 400;
            transition: background-color 400ms cubic-bezier(0.4, 0, 0.2, 1);
            font-size: 14px;
            left: 1px;
            top: 13px;
        }

        ul.stepper .step.active .step-title {
            font-weight: 500;
        }

        ul.stepper .step.active .step-content {
            height: auto;
            display: block;
            margin-left: 25px;
            margin-right: 0px;
        }

        ul.stepper .step.active::before, ul.stepper .step.done::before {
            background-color: #02A119;
        }

        ul.stepper .step.done::before {
            content: '\e5ca';
            font-size: 16px;
            font-family: 'Material Icons';
        }

        ul.stepper .step.wrong::before {
            content: '\e001';
            font-size: 24px;
            font-family: 'Material Icons';
            background-color: red;
        }

        ul.stepper .step.feedbacking .step-content > *:not(.wait-feedback) {
            opacity: 0.1;
        }

        ul.stepper .step:not(:last-of-type)::after {
            content: '';
            position: absolute;
            top: 52px;
            left: 13.5px;
            width: 1px;
            height: 40%;
            height: calc(100% - 52px);
            background-color: rgba(0, 0, 0, 0.1);
            transition: height 400ms cubic-bezier(0.4, 0, 0.2, 1);
        }

        ul.stepper .step:not(:last-of-type).active {
            padding-bottom: 36px;
        }

    ul.stepper > li:not(:last-of-type) {
        padding-bottom: 10px;
    }

@media only screen and (min-width: 993px) {
    ul.stepper.horizontal {
        position: relative;
        display: flex;
        justify-content: space-between;
        min-height: 458px;
        overflow: hidden;
    }

        ul.stepper.horizontal::before {
            content: '';
            background-color: transparent;
            width: 100%;
            min-height: 84px;
            box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
            position: absolute;
            left: 0;
        }

        ul.stepper.horizontal .step {
            position: static;
            padding: 0 !important;
            width: 100%;
            display: flex;
            align-items: center;
            height: 84px;
        }

            ul.stepper.horizontal .step::before {
                content: none;
            }

            ul.stepper.horizontal .step:last-of-type {
                width: auto !important;
            }

            ul.stepper.horizontal .step:not(:last-of-type)::after, ul.stepper.horizontal .step.active:not(:last-of-type)::after {
                content: '';
                position: static;
                display: inline-block;
                width: 100%;
                height: 1px;
            }

            ul.stepper.horizontal .step .step-title {
                line-height: 84px;
                height: 84px;
                margin: 0;
                padding: 0 25px 0 65px;
                display: inline-block;
                max-width: 220px;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
                flex-shrink: 0;
            }

                ul.stepper.horizontal .step .step-title::before {
                    position: absolute;
                    counter-increment: section;
                    content: counter(section);
                    height: 26px;
                    width: 26px;
                    color: white;
                    background-color: #B2B2B2;
                    border-radius: 50%;
                    text-align: center;
                    line-height: 26px;
                    font-weight: 400;
                    transition: background-color 400ms cubic-bezier(0.4, 0, 0.2, 1);
                    font-size: 14px;
                    left: 1px;
                    top: 28.5px;
                    left: 19px;
                }

                ul.stepper.horizontal .step .step-title::after {
                    top: 15px;
                }

            ul.stepper.horizontal .step.active ~ .step .step-content {
                left: 100%;
            }

            ul.stepper.horizontal .step.active .step-content {
                left: 0 !important;
            }

            ul.stepper.horizontal .step.active .step-title::before, ul.stepper.horizontal .step.done .step-title::before {
                background-color: #02A119;
            }

            ul.stepper.horizontal .step.done .step-title::before {
                content: '\e5ca';
                font-size: 16px;
                font-family: 'Material Icons';
            }

            ul.stepper.horizontal .step.wrong .step-title::before {
                content: '\e001';
                font-size: 24px;
                font-family: 'Material Icons';
                background-color: red;
            }

            ul.stepper.horizontal .step .step-content {
                position: absolute;
                height: 100%;
                top: 60px;
                bottom: 60px;
                display: block;
                left: -100%;
                width: 100%;
                overflow-y: visible;
                overflow-x: visible;
                margin: 1px 1px 1px 1px;
                padding: 20px 20px 20px 20px;
                transition: left 400ms cubic-bezier(0.4, 0, 0.2, 1);
            }

                ul.stepper.horizontal .step .step-content .step-actions {
                    position: absolute;
                    bottom: 0;
                    left: 0;
                    width: 100%;
                    padding: 20px;
                    background-color: transparent;
                    flex-direction: row-reverse;
                }

                    ul.stepper.horizontal .step .step-content .step-actions .btn:not(:last-child), ul.stepper.horizontal .step .step-content .step-actions .btn-flat:not(:last-child), ul.stepper.horizontal .step .step-content .step-actions .btn-large:not(:last-child) {
                        margin-left: 5px;
                        margin-right: 0;
                    }

    }

