.timeline-container-f66f2733 {
    padding: 20px 0;
}

.timeline-f66f2733 {
    position: relative;
    max-width: 1000px;
    margin: 0 auto;
    /* padding bottom to make room for arrow */
    padding-bottom: 20px;
}

.timeline-f66f2733::before {
    content: '';
    position: absolute;
    width: 4px;
    background-color: #ddd;
    top: 0;
    bottom: 10px; /* Stop slightly before the arrow to overlap perfectly */
    left: 50%;
    margin-left: -2px;
}

/* Chevron Arrow at the bottom */
.timeline-f66f2733::after {
    content: '';
    position: absolute;
    /* bottom, width, height set dynamically by elementor */
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    border-bottom: 4px solid #ddd;
    border-right: 4px solid #ddd;
    background: transparent;
    z-index: 2;
}


.timeline-item-f66f2733 {
    position: relative;
    background-color: inherit;
    width: 100%;
    display: flex;
    box-sizing: border-box;
    margin-bottom: 40px;
}

/* Base dot styles, overrides will be applied via elementor controls if set */
.timeline-dot-f66f2733 {
    position: absolute;
    width: 20px;
    height: 20px;
    background-color: white;
    border: 4px solid #333;
    top: 0; /* Align with top of content box */
    border-radius: 50%;
    z-index: 1;
    left: 50%;
    transform: translate(-50%, 0);
}


.timeline-content-wrapper-f66f2733 {
    display: flex;
    width: 100%;
    justify-content: space-between;
    align-items: flex-start; /* Align content to the top */
    position: relative;
}

.timeline-content-f66f2733 {
    width: calc(50% - 40px);
}

.timeline-photo-f66f2733 {
    width: calc(50% - 40px);
}

/* Odd items (left content, right image) */
.timeline-item-f66f2733:nth-child(odd) .timeline-content-wrapper-f66f2733 {
    flex-direction: row;
}

.timeline-item-f66f2733:nth-child(odd) .timeline-content-f66f2733 {
    text-align: right;
    padding-right: 20px;
}

.timeline-item-f66f2733:nth-child(odd) .timeline-photo-f66f2733 {
    padding-left: 20px;
}

/* Even items (right content, left image) */
.timeline-item-f66f2733:nth-child(even) .timeline-content-wrapper-f66f2733 {
    flex-direction: row-reverse;
}

.timeline-item-f66f2733:nth-child(even) .timeline-content-f66f2733 {
    text-align: left;
    padding-left: 20px;
}

.timeline-item-f66f2733:nth-child(even) .timeline-photo-f66f2733 {
    padding-right: 20px;
}


.timeline-year-f66f2733 {
    font-size: 1.2rem;
    font-weight: bold;
    color: #666;
    margin-bottom: 5px;
    line-height: 1.2;
    /* Year naturally sits at the top with line-height 1.2.
       The dot margin-top is calculated in PHP to align vertically center
       with this 1.2rem text */
}

.timeline-title-f66f2733 {
    margin: 0 0 10px;
    font-size: 1.5rem;
}

.timeline-desc-f66f2733 {
    color: #555;
    line-height: 1.6;
}

.timeline-photo-f66f2733 img {
    max-width: 100%;
    height: auto;
    border-radius: 8px; /* Default, overridden by control */
    box-shadow: 0 4px 10px rgba(0,0,0,0.1); /* Default, overridden by control */
    display: block;
}

@media screen and (max-width: 767px) {
    .timeline-f66f2733::before, .timeline-f66f2733::after {
        left: 20px;
    }
    
    .timeline-f66f2733::after {
        transform: translateX(-50%) rotate(45deg); /* Need to translate because of left:20px */
    }
    
    .timeline-dot-f66f2733 {
        left: 20px !important;
        transform: translateX(-50%);
    }

    .timeline-content-wrapper-f66f2733 {
        flex-direction: column !important;
        padding-left: 50px;
    }

    .timeline-content-f66f2733, .timeline-photo-f66f2733 {
        width: 100%;
        text-align: left !important;
        padding: 0 !important;
        margin-bottom: 15px;
    }
}