/*
|--------------------------------------------------------------------------
| Progress Timeline
|--------------------------------------------------------------------------
*/

.progress-timeline {
    position: relative;

    min-height: 790px;

    overflow: hidden;

    padding:
        135px
        0
        95px;

    background:
        #292929;
}


/*
|--------------------------------------------------------------------------
| Background
|--------------------------------------------------------------------------
*/

.progress-timeline__background {
    position: absolute;

    top: 3px;
    left: 0;
    right: 0;

    height: 430px;

    z-index: 0;

    background-position:
        center top;

    background-repeat:
        no-repeat;

    background-size:
        cover;

    opacity: .32;

    pointer-events: none;
}


/*
|--------------------------------------------------------------------------
| Intro
|--------------------------------------------------------------------------
*/

.progress-timeline__intro {
    position: relative;

    z-index: 2;

    max-width: 780px;

    margin-bottom: 80px;
}


.progress-timeline__eyebrow {
    margin-bottom: 22px;

    color:
        var(--color-gold);

    font-size: var(--font-size-text-small);
    font-weight: 700;

    text-transform: uppercase;
}


.progress-timeline__title {
    display: flex;
    align-items: baseline;

    gap: 16px;

    margin:
        0
        0
        18px;

    color:
        var(--color-white);

    font-family:
        var(--font-primary);

    font-size: var(--font-size-h1);

    font-weight: 700;

    line-height: 1.1;

    text-transform: uppercase;
}


.progress-timeline__years {
    flex-shrink: 0;

    font-family:
        var(--font-title);

        font-size: var(--font-size-h1);

    font-weight: 400;
}

.progress-timeline__tag {
    font-size:35px;
}


.progress-timeline__description {
    max-width: 720px;

    margin: 0;

    color:
        #dedede;

    font-size: var(--font-size-text-small);
    font-weight: 300;

    line-height: 1.5;
}


/*
|--------------------------------------------------------------------------
| Track
|--------------------------------------------------------------------------
*/

.progress-timeline__track {
    position: relative;

    z-index: 2;

    width: 100%;

    overflow: hidden;
}


/*
|--------------------------------------------------------------------------
| Timeline Base Line
|--------------------------------------------------------------------------
*/

.progress-timeline__line {
    position: absolute;

    top: 15px;
    left: 0;
    right: 0;

    z-index: 1;

    height: 2px;

    background:
        rgba(197, 173, 134, .24);

    pointer-events: none;
}


/*
|--------------------------------------------------------------------------
| Timeline Active Line
|--------------------------------------------------------------------------
*/

.progress-timeline__line-fill {
    position: absolute;

    top: 15px;
    left: 0;

    z-index: 2;

    width: 0;
    height: 2px;

    background:
        var(--color-gold);

    pointer-events: none;

    transition:
        width .45s
        cubic-bezier(.22, .61, .36, 1);
}


/*
|--------------------------------------------------------------------------
| Swiper
|--------------------------------------------------------------------------
*/

.progress-timeline__swiper {
    position: relative;

    z-index: 3;

    overflow: visible;

    padding-left:
        var(--container-padding);

    padding-right:
        var(--container-padding);
}


.progress-timeline__swiper
.swiper-wrapper {
    align-items: flex-start;
}


/*
|--------------------------------------------------------------------------
| Milestone
|--------------------------------------------------------------------------
*/

.progress-milestone {
    position: relative;

    width: 300px;

    padding-top: 58px;

    opacity: 1;

    cursor: pointer;
}


/*
|--------------------------------------------------------------------------
| Marker
|--------------------------------------------------------------------------
*/

.progress-milestone__marker {
    position: absolute;

    /*
     * Inactive marker is smaller but remains
     * vertically centred with the line.
     */
    top: 5px;
    left: 0;

    z-index: 10;

    width: 20px;
    height: 20px;

    display: flex;
    align-items: center;
    justify-content: center;

    transform-origin:
        center center;

    transition:
        width .3s ease,
        height .3s ease,
        top .3s ease,
        left .3s ease;
}


.progress-milestone__marker img {
    display: block;

    width: 100%;
    height: 100%;

    opacity: 1;
}


/*
|--------------------------------------------------------------------------
| Active Marker
|--------------------------------------------------------------------------
*/

.progress-milestone.is-active
.progress-milestone__marker {
    top: 0;
    left: -5px;

    width: 30px;
    height: 30px;
}


/*
|--------------------------------------------------------------------------
| Milestone Content
|--------------------------------------------------------------------------
*/

.progress-milestone__content {
    max-width: 300px;
}


/*
|--------------------------------------------------------------------------
| Year
|--------------------------------------------------------------------------
*/

.progress-milestone__year {
    margin-bottom: 4px;

    color:
        rgba(197, 173, 134, .42);

    font-family:
        var(--font-title);

    font-size: var(--font-size-h2);
    font-weight: 400;

    line-height: 1;

    transition:
        color .3s ease;
}


/*
|--------------------------------------------------------------------------
| Label
|--------------------------------------------------------------------------
*/

.progress-milestone__label {
    margin-bottom: 8px;

    color:
        rgba(197, 173, 134, .40);

    font-size: var(--font-size-text-xsmall);
    font-weight: 700;

    line-height: 1.2;

    text-transform: uppercase;

    transition:
        color .3s ease;
}


/*
|--------------------------------------------------------------------------
| Description
|--------------------------------------------------------------------------
*/

.progress-milestone__description {
    max-width: 290px;

    margin: 0;

    color:
        rgba(255, 255, 255, .30);

    font-size: var(--font-size-text-xsmall);
    font-weight: 700;

    line-height: 1.5;

    transition:
        color .3s ease;
}


/*
|--------------------------------------------------------------------------
| Active Milestone
|--------------------------------------------------------------------------
*/

.progress-milestone.is-active
.progress-milestone__year {
    color:
        var(--color-gold);
}


.progress-milestone.is-active
.progress-milestone__label {
    color:
        var(--color-gold);
}


.progress-milestone.is-active
.progress-milestone__description {
    color:
        var(--color-white);
}


/*
|--------------------------------------------------------------------------
| Controls
|--------------------------------------------------------------------------
*/

.progress-timeline__controls {
    position: relative;

    z-index: 4;

    display: flex;
    align-items: center;

    gap: 24px;

    margin-top: 40px;
}


/*
|--------------------------------------------------------------------------
| Arrows
|--------------------------------------------------------------------------
*/

.progress-timeline__arrow {
    width: 64px;
    height: 64px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    padding: 0;

    border:
        1px solid
        rgba(255, 255, 255, .22);

    border-radius: 50%;

    background:
        transparent;

    cursor: pointer;

    transition:
        background-color .25s ease,
        border-color .25s ease,
        opacity .25s ease;
}


.progress-timeline__arrow img {
    display: block;

    width: 20px;
    height: 20px;

    transition:
        filter .25s ease,
        opacity .25s ease;
}


/*
|--------------------------------------------------------------------------
| Arrow Hover
|--------------------------------------------------------------------------
*/

.progress-timeline__arrow:not(:disabled):hover {
    background:
        var(--color-white);

    border-color:
        var(--color-white);
}


.progress-timeline__arrow:not(:disabled):hover img {
    filter:
        brightness(0);
}


/*
|--------------------------------------------------------------------------
| Disabled Arrow
|--------------------------------------------------------------------------
*/

.progress-timeline__arrow:disabled {
    opacity: .32;

    cursor: default;
}


/*
|--------------------------------------------------------------------------
| Counter
|--------------------------------------------------------------------------
*/

.progress-timeline__counter {
    display: flex;
    align-items: center;

    gap: 7px;

    margin-left: 2px;

    color:
        #888;

    font-size: 15px;
    font-weight: 400;
}


.progress-timeline__counter-separator {
    color:
        #555;
}


/*
|--------------------------------------------------------------------------
| Focus
|--------------------------------------------------------------------------
*/

.progress-milestone:focus-visible,
.progress-timeline__arrow:focus-visible {
    outline:
        2px solid
        var(--color-gold);

    outline-offset: 4px;
}


/*
|--------------------------------------------------------------------------
| Responsive - Large
|--------------------------------------------------------------------------
*/

@media (max-width: 1399px) {

    .progress-timeline {
        min-height: 750px;

        padding:
            110px
            0
            85px;
    }


    .progress-timeline__intro {
        margin-bottom: 70px;
    }


    .progress-milestone {
        width: 285px;
    }

}


/*
|--------------------------------------------------------------------------
| Responsive - Desktop / Tablet
|--------------------------------------------------------------------------
*/

@media (max-width: 1199px) {

    .progress-timeline {
        min-height: 710px;
    }


    .progress-timeline__background {
        height: 400px;
    }


    .progress-timeline__intro {
        max-width: 700px;
    }


    .progress-timeline__description {
        font-size: 18px;
    }


    .progress-milestone {
        width: 270px;
    }


    .progress-milestone__year {
        font-size: 44px;
    }

}


/*
|--------------------------------------------------------------------------
| Responsive - Tablet
|--------------------------------------------------------------------------
*/

@media (max-width: 991px) {

    .progress-timeline {
        min-height: auto;

        padding:
            80px
            0
            70px;
    }


    .progress-timeline__background {
        top: 3px;

        height: 350px;
    }


    .progress-timeline__intro {
        margin-bottom: 55px;
    }


    .progress-timeline__title {
        display: block;
    }


    .progress-timeline__years {
        display: block;

        margin-bottom: 5px;
    }


    .progress-milestone {
        width: 250px;
    }


    .progress-timeline__controls {
        margin-top: 35px;
    }

}


/*
|--------------------------------------------------------------------------
| Responsive - Mobile
|--------------------------------------------------------------------------
*/

@media (max-width: 767px) {

    .progress-timeline {
        padding:
            65px
            0
            55px;
    }


    .progress-timeline__background {
        height: 300px;

        opacity: .25;
    }


    .progress-timeline__eyebrow {
        margin-bottom: 15px;

        font-size: 14px;
    }


    .progress-timeline__title {
        font-size: 30px;
    }


    .progress-timeline__years {
        font-size: 54px;
    }


    .progress-timeline__description {
        font-size: 17px;
    }


    .progress-timeline__intro {
        margin-bottom: 45px;
    }


    .progress-timeline__line,
    .progress-timeline__line-fill {
        top: 13px;
    }


    .progress-milestone {
        width: 235px;

        padding-top: 50px;
    }


    .progress-milestone__marker {
        top: 4px;

        width: 18px;
        height: 18px;
    }


    .progress-milestone.is-active
    .progress-milestone__marker {
        top: 0;
        left: -4px;

        width: 26px;
        height: 26px;
    }


    .progress-milestone__year {
        font-size: 40px;
    }


    .progress-milestone__description {
        font-size: 15px;
    }


    .progress-timeline__arrow {
        width: 54px;
        height: 54px;
    }


    .progress-timeline__arrow img {
        width: 17px;
        height: 17px;
    }

}