.timeline {
    padding: 0 0 60px 0;
    margin: 0 auto;
}

.timeline .title {
    border-top: 1px solid #D4D9E3;
    margin: 0 0 0 82px;
    padding: 20px 82px 0 0;
}

.timeline .container {
    border-radius: 5px;
    display: flex;
    padding: 40px 0;
    margin: -5px 82px 10px 82px;
}

.timeline .line {
    background-color: #0070C1;
    display: flex;
    height: 2px;
    margin: auto 0;
    position: relative;
    width: 100%;
}

.timeline .part {
    width: 100%;
}

.timeline .part.start {
    background-color: #FFFF;
    width: 110px;
}

.timeline .part.end {
    background-color: #FFFF;
    width: 18px;
}

.timeline .dot {
    background: transparent;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    height: 36px;
    margin: -18px 0 0 -18px;
    position: relative;
    transition: 0.1s;
    width: 36px;
}

.timeline .dot.pre-registered {
    background-image: url('/static/images/box-blue.svg');
}

.timeline .dot.pre-registered:hover {
    background-image: url('/static/images/box-orange.svg');
}

.timeline .dot.received-nl {
    background-image: url('/static/images/nl-blue.svg');
}

.timeline .dot.received-nl:hover {
    background-image: url('/static/images/nl-orange.svg');
}

.timeline .dot.cleared-shipment {
    background-image: url('/static/images/cleared-blue.svg');
}

.timeline .dot.cleared-shipment:hover {
    background-image: url('/static/images/cleared-orange.svg');
}

.timeline .dot.in-transfer {
    background-image: url('/static/images/plane-blue.svg');
    border-radius: 40px;
    height: 40px;
    margin: -20px 0 0 -20px;
    width: 40px;
}

.timeline .dot.in-transfer:hover {
    background-image: url('/static/images/plane-orange.svg');
}

.timeline .dot.received-locally {
    background-image: url('/static/images/island-blue.svg');
    border-radius: 40px;
    height: 40px;
    margin: -20px 0 0 -20px;
    width: 40px;
}

.timeline .dot.received-locally:hover {
    background-image: url('/static/images/island-orange.svg');
}

.timeline .dot.ready-for-pickup {
    background-image: url('/static/images/point-blue.svg');
}

.timeline .dot.ready-for-pickup:hover{
    background-image: url('/static/images/point-orange.svg');
}

.timeline .dot.delivered{
    background-image: url('/static/images/ready-blue.svg');
}

.timeline .dot.delivered:hover{
    background-image: url('/static/images/ready-orange.svg');
}

.timeline .part .desc {
    display: none;
    left: 0;
    margin: 10px 0 0 0;
    position: absolute;
    top: 22px;
    transform: translate(0);
}

.timeline .part:hover .desc{
    display: block;
    width: max-content;
}

.timeline .part:hover .desc .what {
    color: #282828;
    display: block;
    font-size: 15px;
    font-weight: 500;
    text-align: center;
    min-width: max-content;
}

.timeline .part:hover .desc .when {
    display: flex;
}

.timeline .part:hover .desc .when p {
    color: #888;
    display: block;
    font-size: 12px;
    font-weight: 500;
    margin: -4px 0 0 0;
    min-width: max-content;
    text-align: center;
    text-transform: uppercase;
}

/* Completed states */
.timeline .part.completed{
    background-color: #FF5F40;
}
.timeline .part:hover .what.completed {
    color: #282828;
}
.timeline .dot.pre-registered.completed {
    background-image: url('/static/images/box-orange.svg');
}
.timeline .dot.received-nl.completed {
    background-image: url('/static/images/nl-orange.svg');
}
.timeline .dot.cleared-shipment.completed {
    background-image: url('/static/images/cleared-orange.svg');
}
.timeline .dot.in-transfer.completed {
    background-image: url('/static/images/plane-orange.svg');
}
.timeline .dot.received-locally.completed {
    background-image: url('/static/images/island-orange.svg');
}
.timeline .dot.ready-for-pickup.completed {
    background-image: url('/static/images/point-orange.svg');
}
.timeline .dot.delivered.completed {
    background-image: url('/static/images/ready-orange.svg');
}

/* Current state */
.timeline .part .desc.current {
    display: block;
}

.timeline .part .desc .when {
    display: flex;
}

.timeline .part .desc.current .when p {
    color: #888;
    display: flex;
    font-size: 12px;
    font-weight: 500;
    margin: -4px 0 0 0;
    min-width: max-content;
    text-align: center;
    text-transform: uppercase;
}

.timeline .part .desc.current .what {
    color: #282828;
    display: block;
    font-size: 15px;
    font-weight: 500;
    margin: 0 0 2px 0;
    text-align: center;
    min-width: max-content;
}

.timeline .state-current {
    color: #FF5F40;
    margin: 0 0 -2px 0;
}

.timeline .state-past {
    color: #FF5F40;
    margin: 0 0 -2px 0;
}

.timeline .state-upcomming {
    color: #0070C1;
}

/* Hover state (js) */
.timeline .part.hover .desc.hide {
    display: block;
}

.timeline .part .current {
    display: block;
    transition: 0.2s;
}

.timeline .desc.current.hide {
    display: none;
    transition: 0.2s;
}

/* Package lost */
.lost-container {
    border-top: 1px solid #D4D9E3;
    margin: 0 0 0 82px;
    padding: 20px 82px 20px 0;
}

.lost-container .lost-message {
    display: flex;
    margin: 10px 0 0 0;
}

.lost-container .lost-message .lost-icon {
    background-image: url('/static/images/lost-blue.svg');
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    height: 28px;
    margin: 0 8px 0 0;
    position: relative;
    width: 28px;
}

.lost-container .lost-message p {
    margin: auto 0;
}


@media screen and (max-width: 900px) {
    .timeline {
        padding: 0 0 50px 0;
    }

    .timeline .title {
        margin: 0;
        padding: 18px 0 0 0;
    }
    .timeline .container {
        padding: 18px 0;
        margin: 18px 8px 36px 0;
    }

    .timeline .when {
        display: block;
    }

    .timeline .when p {
        display: block;
        margin: -5px 0 0 0;
    }
    .timeline .part.end .dec {
        text-align: right;
        margin: 0 18px 0 0;
    }
}

@media screen and (max-width: 600px) {
    .timeline .container {
        margin: 9px 8px 36px 0;
    }

    .timeline .line {
        height: 1.5px;
    }
    .timeline .dot {
        border-radius: 22px;
        height: 22px;
        margin: -11px 0 0 -11px;
        width: 22px;
    }

    .timeline .dot.in-transfer,
    .timeline .dot.received-locally {
        border-radius: 0;
        height: 24px;
        margin: -12px 0 0 -12px;
        width: 24px;
    }

    .timeline .part.hover .dot.in-transfer,
    .timeline .part.hover .dot.received-locally {
        border-radius: 0;
        height: 34px;
        margin: -17px 0 0 -17px;
        width: 34px;
    }

    .timeline .part.hover .dot {
        border-radius: 0;
        height: 32px;
        margin: -16px 0 0 -16px;
        width: 32px;
    }

    .timeline .part .desc {
        top: 15px;
    }

    .timeline .part.end .what,
    .timeline .part.end .when,
    .timeline .part.end .when p {
        text-align: right;
        margin: 0 18px 0 0;
    }
}
