#zp_timeline_content {
    background-color: var(--bg-grey);
}

#zp_timeline_content .zp_container {
    display: flex;
    gap: 200px;
}

#zp_timeline_content .zp_container .left_main {
    width: 100%;
    max-width: 435px;
    position: relative;
}

#zp_timeline_content .zp_container .left_main ul {
    border-radius: 24px;
    border: 1px solid rgba(3, 19, 37, 0.20);
    background: var(--bg-white-second);
    list-style: none;
    max-height: 650px;
    padding: 2rem;
    overflow: auto;
    position: relative;
}
/*
.timeline-container-parent::after {
    content: "";
    width: 100%;
    height: 2rem;
    display: block;
    position: absolute;
    left: 0;
    bottom: 0;
    border-radius: 0 0 24px 24px;
    z-index: 999;
    background-color: var(--bg-white);
    border: 1px solid rgba(3, 19, 37, 0.20);
    border-top: none !important;
}
*/
.timeline-container-parent {
    height: 650px;
    overflow: hidden;

    top: 50px;
}

#zp_timeline_content .zp_container .left_main ul {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

#zp_timeline_content .zp_container .left_main ul::-webkit-scrollbar {
    width: 0;
    height: 0;
}

.timeline-container {
    position: relative;
    max-height: 550px;
}

.custom-scrollbar {
    position: absolute;
    right: 20px;
    top: 50px;
    width: 12px;
    height: 100%;
    background: var(--btn-ligh-blue);
    border-radius: 20px;
    z-index: 100;
}

.scroll-button {
    position: absolute;
    width: 100%;
    height: 22px;
    background: var(--btn-ligh-blue);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
    user-select: none;
}

.scroll-button.up {
    top: 0;
    border-radius: 20px 20px 0 0;
}

.scroll-button.down {
    bottom: 0;
    border-radius: 0 0 20px 20px;
}

.scroll-button svg {
    width: 8px;
    height: 8px;
    fill: var(--text-blue);
    pointer-events: none;
}

.scroll-track {
    position: absolute;
    top: 22px;
    bottom: 22px;
    width: 100%;
    background: var(--btn-ligh-blue);
}

.scroll-thumb {
    position: absolute;
    width: 80%;
    background: var(--bg-white);
    border-radius: 10px;
    cursor: grab;
    transition: background 0.15s;
    left: 50%;
    transform: translateX(-50%);
}

/* ── Left timeline list items ─────────────────────────────────── */

#zp_timeline_content .zp_container .left_main ul li {
    position: relative;
    margin-bottom: 18px;
}

#zp_timeline_content .zp_container .left_main ul li:last-child {
    margin-bottom: 0;
}

/* dashed connector line */
#zp_timeline_content .zp_container .left_main ul li::after {
    content: '';
    position: absolute;
    left: 9px;
    width: 2px;
    height: calc(100% + 18px);
    border-left: 2px dashed var(--text-blue);
    z-index: 1;
}

#zp_timeline_content .zp_container .left_main ul li:last-child::after {
    display: none;
}

/* the year link + its dot */
#zp_timeline_content .zp_container .left_main ul li a {
    color: var(--text-blue);
    font-family: var(--font-primary);
    font-size: var(--fs-18);
    font-style: normal;
    font-weight: var(--font-regular);
    line-height: var(--lh-45);
    text-decoration: none;
    padding-left: 30px;
    display: inline-block;
    position: relative;
}

#zp_timeline_content .zp_container .left_main ul li a::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    background-color: var(--text-grey);
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 2;
}

/* active state — driven by the .here class toggled in JS */
#zp_timeline_content .zp_container .left_main ul li.here a::before {
    background-color: var(--text-blue);
    animation: timeline-ripple 1.5s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

@keyframes timeline-ripple {
    0% {
        box-shadow: 0 0 0 0 rgba(1, 56, 119, 0.4);
    }
    70% {
        box-shadow: 0 0 0 10px rgba(1, 56, 119, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(1, 56, 119, 0);
    }
}

/* decade header — no dot, no connector line */
#zp_timeline_content .zp_container .left_main ul li.decade {
    color: var(--text-blue);
    font-family: var(--font-primary);
    font-size: var(--fs-30);
    font-style: normal;
    font-weight: var(--font-bold);
    line-height: var(--lh-40);
}

#zp_timeline_content .zp_container .left_main ul li.decade::after {
    display: none;
}

/* ── Right content column ─────────────────────────────────────── */

#zp_timeline_content .right {
    display: flex;
    flex-direction: column;
    gap: 60px;
    width: 100%;
}

#zp_timeline_content .right.first_right {
    height: 650px;          
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 1rem;    
    scroll-behavior: smooth;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
}

#zp_timeline_content .right img {
    border-radius: 20px;
    width: 315px;
    height: 245px;
    object-fit: contain;
}

#zp_timeline_content .block .date {
    font-family: var(--font-primary);
    color: var(--bg-blue);
    font-size: var(--fs-72);
    font-style: normal;
    font-weight: var(--font-light);
    line-height: var(--lh-80);
    width: fit-content;
}

#zp_timeline_content .block .title {
    font-family: var(--font-primary);
    color: var(--text-dark-blue);
    font-size: var(--fs-24);
    font-style: normal;
    font-weight: var(--font-regular);
    line-height: var(--lh-32);
    margin: 0.5rem 0;
}

#zp_timeline_content .block .text p {
    font-family: var(--font-secondary);
    color: var(--text-dark-blue);
    font-size: var(--fs-18px);
    font-style: normal;
    font-weight: var(--font-thin);
    line-height: var(--lh-24);
    margin: 1rem 0;
}

#zp_timeline_content .block .sub {
    font-family: var(--font-secondary);
    color: var(--btn-semi-light-blue);
    font-size: var(--fs-24);
    font-style: normal;
    font-weight: var(--font-thin);
    line-height: var(--lh-32);
    text-align: center;
    margin-top: 1.5rem;
}

#zp_timeline_content .block .block_here {
    padding: 2rem;
    border-radius: 20px;
    display: flex;
    align-items: center;
    gap: 40px;
    justify-content: space-between;
}

#zp_timeline_content .block.white .block_here {
    background-color: var(--bg-white);
}

#zp_timeline_content .block.blue .block_here {
    flex-direction: row-reverse;
    background-color: var(--bg-light-blue-second);
}

#zp_timeline_content .block .block_here .block {
    display: flex;
    gap: 40px;
    justify-content: space-between;
    align-items: center;
}

#zp_timeline_content .block .block_here .left {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 500px;
}

#zp_timeline_content .block.white .date {
    margin: auto auto 1.5rem 0;
}

#zp_timeline_content .block.blue .date {
    margin: auto 0 1.5rem auto;
}

#zp_timeline_content .block .block_here .right {
    width: fit-content !important;
}

#zp_timeline_content .zp_container .left_main .timeline-dropdown {
    display: none;
}

.timeline-dropdown {
    position: relative;
}

.timeline-toggle {
    display: none;
    width: 100%;
    padding: 15px 0px;
    background: transparent;
    border: none;
    border-bottom: 2px solid var(--text-blue) !important;
    cursor: pointer;
    color: var(--text-blue);
    font-family: var(--font-primary);
    font-size: var(--fs-18);
    font-style: normal;
    font-weight: var(--font-regular);
    line-height: var(--lh-24px);
    text-align: left;
}

@media (min-width: 1401px) and (max-width: 1600px) {
    #zp_timeline_content .zp_container {
        gap: 150px;
    }
    #zp_timeline_content .zp_container .left_main {
        max-width: 400px;
    }
}

@media (min-width: 1201px) and (max-width: 1400px) {
    #zp_timeline_content .zp_container {
        gap: 100px;
    }
    #zp_timeline_content .zp_container .left_main {
        max-width: 350px;
    }
    #zp_timeline_content .right img {
        width: 215px;
        height: 100%;
    }
}

@media (min-width: 1001px) and (max-width: 1200px) {
    #zp_timeline_content .zp_container {
        gap: 50px;
    }
    #zp_timeline_content .zp_container .left_main {
        max-width: 250px;
    }
    #zp_timeline_content .right img {
        width: 215px;
        height: 100%;
    }
}

@media (max-width: 1000px) {
    #zp_timeline_content .zp_container .left_main ul li::after {
        left: 23px;
    }

    #zp_timeline_content .zp_container {
        flex-direction: column;
        gap: 2rem;
    }
    #zp_timeline_content .zp_container .left_main .timeline-dropdown {
        display: block;
    }
    .timeline-container-parent {
        display: none;
    }
    #zp_timeline_content .zp_container .left_main {
        max-width: 100%;
    }
    .timeline-toggle {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    #zp_timeline_content .zp_container .left_main .timeline-dates {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        border-radius: 20px;
        max-height: 200px;
        overflow-y: auto;
        z-index: 10;
        overscroll-behavior-y: contain;
        -webkit-overflow-scrolling: touch;
    }

    #zp_timeline_content .zp_container .left_main .timeline-dates.open {
        display: block;
    }

    .timeline-dates li {
        padding: 8px 14px;
    }

    #zp_timeline_content .block .block_here {
        flex-direction: column;
    }
    #zp_timeline_content .block.blue .block_here {
        flex-direction: column;
    }
    #zp_timeline_content .block .date {
        font-size: var(--fs-40);
        line-height: var(--lh-40);
        width: fit-content;
    }
    #zp_timeline_content .block .title {
        font-size: var(--fs-20);
        line-height: var(--lh-24);
    }
    #zp_timeline_content .block .text p {
        font-size: var(--fs-16px);
        line-height: var(--lh-24px);
    }
    #zp_timeline_content .block .sub {
        font-size: var(--fs-20);
        line-height: var(--lh-18);
        text-align: center;
        margin-top: 1.5rem;
    }
    #zp_timeline_content .right img {
        max-width: 700px;
        margin: auto;
        width: 100%;
        height: auto;
    }
}