// /**
//  * Copyright © Magento, Inc. All rights reserved.
//  * See COPYING.txt for license details.
//  */

//
//  Variables
//  _____________________________________________

@nav__background-color: @color-white-fog;
@nav__border-color: @color-gray89;
@nav__indent-right: 1.5rem;

@nav-bar__color: @color-brownie;
@nav-bar__font-size: 1.2rem;
@nav-bar__height__base: @btn__base__font-size * @base__line-height + @btn__base__font-size * @btn__base__padding-top + @btn__base__font-size * @btn__base__padding-bottom;
@nav-bar__indent-top: 3rem;
@nav-bar__min-height: 5.8rem;

@nav-bar-bullet-wrap__background-color: @color-gray84;
@nav-bar-bullet-wrap__border-bottom-color: @color-gray85;
@nav-bar-bullet-wrap__border-top-color: @color-gray75;

@nav-bar-dot__size: 2.2rem;
@nav-bar-dot__border-width: .1rem;
@nav-bar-items__indent-bottom: 1.7rem;
@nav-bar-item__color: @color-gray65;

@nav-bar-point__border-width: .4rem;
@nav-bar-point__size: .7rem;

@nav-bar-step__width: 10.3rem;

//
//  Styles
//  _____________________________________________

//
//  Navigation
//  ---------------------------------------------

.nav {
    &:extend(.abs-clearer all);
    background-color: @nav__background-color;
    border-bottom: 1px solid @nav__border-color;
    border-top: 1px solid @nav__border-color;
    display: none;
    margin-bottom: @nav-bar__indent-top;
    padding: @nav-bar-dot__size @nav__indent-right 0 0;
}

//  Buttons panel
.nav .btn-group,
.nav-bar-outer-actions {
    float: right;
    margin-bottom: @nav-bar-items__indent-bottom;

    .btn-wrap {
        float: right;
        margin-left: .5rem;
        margin-right: .5rem;

        .btn {
            padding-left: .5rem;
            padding-right: .5rem;
        }
    }
}

.nav-bar-outer-actions {
    margin-top: -(@nav-bar__indent-top + @nav-bar__min-height + @nav-bar-items__indent-bottom + .1rem);
    padding-right: @nav__indent-right;
}

.btn-wrap-try-again {
    width: 9.5rem;
}

.btn-wrap-prev,
.btn-wrap-next {
    width: 8.5rem;
}

//
//  Progress bar
//  ---------------------------------------------

.nav-bar {
    counter-reset: i;
    float: left;
    margin: 0 1rem @nav-bar-items__indent-bottom 0;
    padding: 0;
    position: relative;
    white-space: nowrap;

    //  Progress line tunnel
    &:before {
        .lib-background-gradient( @_background-gradient: true, @_background-gradient-direction: vertical, @_background-gradient-color-start: @color-gray82, @_background-gradient-color-end: @color-gray83 );
        border-bottom: 1px solid @nav-bar-bullet-wrap__border-bottom-color;
        border-top: 1px solid @nav-bar-bullet-wrap__border-top-color;
        content: '';
        height: 1rem;
        left: @nav-bar-step__width / 2;
        position: absolute;
        right: @nav-bar-step__width / 2;
        top: @nav-bar-point__size;
    }

    //  Step link wrap
    > li {
        display: inline-block;
        font-size: 0;
        position: relative;
        vertical-align: top;
        width: @nav-bar-step__width;

        //  Discard progress line for first item
        &:first-child {
            &:after {
                display: none;
            }
        }

        //  Progress line
        &:after {
            background-color: @nav-bar__color;
            content: '';
            height: .5rem;
            left: ~'calc(-50% + .25rem)';
            position: absolute;
            right: ~'calc(50% + .7rem)';
            top: .9rem;
        }

        //  Disabled state
        &.disabled,
        &.ui-state-disabled {
            &:before {
                bottom: 0;
                content: '';
                left: 0;
                position: absolute;
                right: 0;
                top: 0;
                z-index: 1;
            }
        }

        //  Active step link wrap
        &.active,
        &.ui-state-active {
            //  Not visited
            ~ li {
                //  Not visited progress line (discard)
                &:after {
                    display: none;
                }

                a {
                    //  Not visited step link bullet
                    &:after {
                        background-color: transparent;
                        border-color: transparent;
                        color: @nav-bar-item__color;
                    }
                }
            }

            //  Active link
            a {
                color: darken(@nav-bar__color, 30%);

                &:hover {
                    cursor: default;
                }

                //  Active step link bullet
                &:after {
                    background-color: @color-white;
                    content: '';
                }
            }
        }
    }

    //  Visited step link
    a {
        color: @nav-bar__color;
        display: block;
        font-size: @nav-bar__font-size;
        font-weight: @font-weight__semibold;
        line-height: 1.2;
        overflow: hidden;
        padding: 3rem .5em 0;
        position: relative;
        text-align: center;
        text-overflow: ellipsis;

        &:hover {
            text-decoration: none;
        }

        //  Visited step link bullet
        &:after {
            background-color: @nav-bar__color;
            border: .4rem solid @nav-bar__color;
            border-radius: 100%;
            color: @color-white;
            content: counter(i);
            counter-increment: i;
            height: @nav-bar-point__size + @nav-bar-point__border-width * 2;
            left: 50%;
            line-height: .6;
            margin-left: -@nav-bar-point__size - .1;
            position: absolute;
            right: auto;
            text-align: center;
            top: @nav-bar-dot__size / 2 - (@nav-bar-point__size / 2) - @nav-bar-point__border-width + .05;
            width: @nav-bar-point__size + @nav-bar-point__border-width * 2;
        }

        //  Visited step link bullet wrap
        &:before {
            background-color: @nav-bar-bullet-wrap__background-color;
            border: 1px solid transparent;
            border-bottom-color: @nav-bar-bullet-wrap__border-bottom-color;
            border-radius: 100%;
            border-top-color: @nav-bar-bullet-wrap__border-top-color;
            content: '';
            height: @nav-bar-dot__size + @nav-bar-dot__border-width * 2 - @nav-bar-dot__border-width;
            left: 50%;
            line-height: 1;
            margin-left: -(@nav-bar-dot__size / 2) - @nav-bar-dot__border-width;
            position: absolute;
            top: 0;
            width: @nav-bar-dot__size + @nav-bar-dot__border-width * 2 - @nav-bar-dot__border-width;
        }
    }
}

//
//  Desktop
//  _____________________________________________

.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__l) {
    .nav {
        padding-bottom: @nav-bar__height__base + @nav-bar-items__indent-bottom;
        padding-left: 1.5rem;
        text-align: center;
    }

    .nav-bar {
        display: inline-block;
        float: none;
        margin-right: 0;
        vertical-align: top;
    }

    .nav .btn-group,
    .nav-bar-outer-actions {
        display: inline-block;
        float: none;
        margin-top: -(@nav-bar__indent-top + @nav-bar__height__base + @nav-bar-items__indent-bottom + .1rem);
        text-align: center;
        vertical-align: top;
        width: 100%;
    }

    .nav-bar-outer-actions {
        padding-right: 0;
        .outer-actions-inner-wrap {
            display: inline-block;
        }
    }
}

//
//  Mobile
//  _____________________________________________

.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
    .nav {
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
    }

    .nav-bar-outer-actions {
        margin-top: 0;
    }

    .nav-bar {
        &:extend(.abs-clearer-mobile all);
        display: block;
        margin-bottom: 0;
        margin-left: auto;
        margin-right: auto;
        width: @nav-bar-step__width * 3;

        &:before {
            display: none;
        }

        > li {
            float: left;
            min-height: 9rem;

            &:after {
                display: none;
            }

            &:nth-child(4n) {
                clear: both;
            }
        }

        a {
            line-height: 1.4;
        }
    }
}

.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__xs) {
    .nav-bar {
        width: @nav-bar-step__width * .75 * 3;

        > li {
            width: @nav-bar-step__width * .75;
        }
    }

    .nav .btn-group,
    .nav-bar-outer-actions {
        .btn-wrap-try-again {
            clear: both;
            display: block;
            float: none;
            margin-left: auto;
            margin-right: auto;
            margin-top: 1rem;
            padding-top: 1rem;
        }
    }
}
