/* El Timeline Styles */

.el-timeline-wrapper {
    position: relative;
    width: 100%;
    box-sizing: border-box;
    overflow: hidden;
}

/* ----------------------------------------------------
   VERTICAL LAYOUT
---------------------------------------------------- */

.el-timeline-layout-vertical .el-timeline-items-container {
    position: relative;
    display: flex;
    flex-direction: column !important;
    padding: 60px 0;
    box-sizing: border-box;
    width: 100%;
}

.el-timeline-layout-vertical .el-timeline-line {
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 2px;
    background-color: #333;
    z-index: 1;
    transform: translateX(-50%);
}

.el-timeline-layout-vertical .el-timeline-item {
    position: relative;
    width: 100% !important;
    margin-bottom: 60px;
    display: flex !important;
    flex-direction: row;
    box-sizing: border-box;
    min-height: 100px;
    align-items: flex-start;
}

.el-timeline-layout-vertical .el-timeline-marker {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background-color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    border: 2px solid #333;
}

.el-timeline-layout-vertical .el-timeline-circle-inner {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background-color: #333;
}

.el-timeline-layout-vertical .el-timeline-content {
    width: 50%;
    box-sizing: border-box;
    position: relative;
}

/* Base style for Odd elements (Content Right) */
.el-timeline-layout-vertical .el-timeline-item:nth-child(odd) .el-timeline-content {
    left: 50%;
    padding-left: 60px;
    text-align: left;
}

.el-timeline-layout-vertical .el-timeline-item:nth-child(odd)::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 14px;
    height: 2px;
    width: 45px;
    background: #333;
    z-index: 1;
}

/* Alternating Even Elements (Content Left) */
.el-timeline-layout-vertical .el-timeline-item:nth-child(even) .el-timeline-content {
    left: auto;
    right: 50%;
    padding-right: 60px;
    text-align: right;
}

.el-timeline-layout-vertical .el-timeline-item:nth-child(even)::after {
    content: '';
    position: absolute;
    right: 50%;
    top: 14px;
    height: 2px;
    width: 45px;
    background: #333;
    z-index: 1;
}

.el-timeline-layout-vertical .el-timeline-date {
    font-size: 85px;
    font-weight: 800;
    color: #333;
    line-height: 1;
    letter-spacing: -3px;
    position: absolute;
    top: 0;
    margin: 0;
    opacity: 0.15;
    /* Watermark effect for date in vertical */
    z-index: 0;
    pointer-events: none;
}

.el-timeline-layout-vertical .el-timeline-item:nth-child(odd) .el-timeline-date {
    left: 50%;
    padding-left: 60px;
    text-align: left;
}

.el-timeline-layout-vertical .el-timeline-item:nth-child(even) .el-timeline-date {
    right: 50%;
    padding-right: 60px;
    text-align: right;
}

.el-timeline-layout-vertical .el-timeline-connector {
    display: none;
    /* Only use the ::after horizontal line */
}


/* ----------------------------------------------------
   HORIZONTAL LAYOUT - BASED ON USER CSS
---------------------------------------------------- */

.el-timeline-layout-horizontal .el-timeline-items-container {
    display: flex;
    position: relative;
    width: 100%;
    height: 480px;
    align-items: center;
}

.el-timeline-layout-horizontal .el-timeline-wrapper-inner {
    width: 100%;
    overflow: hidden;
    padding: 40px 0;
    cursor: default;
}

.el-timeline-layout-horizontal .el-timeline-line {
    position: absolute;
    top: 50%;
    left: -50vw;
    width: 800vw;
    height: 2px;
    background-color: #333;
    transform: translateY(-50%);
    z-index: 1;
}

.el-timeline-layout-horizontal .el-timeline-item {
    display: flex;
    flex-direction: column;
    height: 100%;
    position: relative;
    flex-shrink: 0;
    width: 320px;
    /* Fallback width for FOUC and editor setup */
}

.el-timeline-layout-horizontal .el-timeline-connector {
    position: absolute;
    left: 40px;
    width: 2px;
    background-color: #333;
    z-index: 2;
}

.el-timeline-layout-horizontal .el-timeline-content {
    position: absolute;
    left: 40px;
    width: calc(100% - 80px);
    z-index: 5;
    text-align: left;
    /* Unified text alignment */
}

.el-timeline-layout-horizontal .el-timeline-marker {
    position: absolute;
    left: 41px;
    /* Stalk'un merkezine (40px + 1px) tam oturması için */
    width: 28px;
    height: 28px;
    background-color: #fff;
    /* Toggled by elementor bg setting */
    border: 2px solid #333;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
}

.el-timeline-layout-horizontal .el-timeline-circle-inner {
    width: 14px;
    height: 14px;
    background-color: #333;
    border-radius: 50%;
}

.el-timeline-layout-horizontal .el-timeline-date {
    position: absolute;
    left: 41px;
    transform: translateX(-50%);
    font-size: 85px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -3px;
    z-index: 1;
    user-select: none;
    margin: 0;
}

/* TYPE UP (Odd elements) */
.el-timeline-layout-horizontal .el-timeline-item.type-up .el-timeline-content {
    bottom: calc(50% + 25px);
    /* Ana çizginin 25px üstünde */
}

.el-timeline-layout-horizontal .el-timeline-item.type-up .el-timeline-connector {
    top: 50%;
    /* Ana çizgiden başlar */
    height: 140px;
    /* Aşağı uzanır */
}

.el-timeline-layout-horizontal .el-timeline-item.type-up .el-timeline-marker {
    top: calc(50% + 140px);
    transform: translate(-50%, -50%);
    /* Stalk ucuna merkezle */
}

.el-timeline-layout-horizontal .el-timeline-item.type-up .el-timeline-date {
    top: calc(50% + 140px + 20px);
    /* Halkanın altına yerleşir */
}

/* TYPE DOWN (Even elements) */
.el-timeline-layout-horizontal .el-timeline-item.type-down .el-timeline-content {
    top: calc(50% + 25px);
    /* Ana çizginin 25px altında */
}

.el-timeline-layout-horizontal .el-timeline-item.type-down .el-timeline-connector {
    bottom: 50%;
    /* Ana çizgiden başlar */
    height: 140px;
    /* Yukarı uzanır */
}

.el-timeline-layout-horizontal .el-timeline-item.type-down .el-timeline-marker {
    bottom: calc(50% + 140px);
    transform: translate(-50%, 50%);
    /* Stalk ucuna merkezle */
}

.el-timeline-layout-horizontal .el-timeline-item.type-down .el-timeline-date {
    bottom: calc(50% + 140px + 20px);
    /* Halkanın üstüne yerleşir */
}


/* ----------------------------------------------------
   MOBILE RESPONSIVENESS (COMMON FOR BOTH)
---------------------------------------------------- */
@media (max-width: 900px) {
    .el-timeline-layout-vertical.el-timeline-wrapper {
        overflow-y: auto;
    }

    .el-timeline-layout-horizontal .el-timeline-wrapper-inner {
        padding: 40px 20px;
        overflow-x: hidden;
    }

    .el-timeline-layout-vertical .el-timeline-items-container {
        flex-direction: column !important;
        width: 100%;
        height: auto;
        padding: 0;
    }

    .el-timeline-layout-vertical .el-timeline-line {
        width: 2px !important;
        height: 100% !important;
        top: 0 !important;
        left: 30px !important;
        transform: none !important;
    }

    .el-timeline-layout-vertical .el-timeline-item {
        width: 100% !important;
        height: auto !important;
        margin-bottom: 60px !important;
        display: flex !important;
        flex-direction: column !important;
        position: relative !important;
        min-height: auto !important;
    }

    /* Mobilde dikey stalk (connector) iptal */
    .el-timeline-layout-vertical .el-timeline-connector,
    .el-timeline-layout-vertical .el-timeline-item::after {
        display: none !important;
    }

    .el-timeline-layout-vertical .el-timeline-marker {
        left: 31px !important;
        top: 0 !important;
        transform: translate(-50%, 0) !important;
        position: relative !important;
        margin-bottom: 10px;
    }

    .el-timeline-layout-vertical .el-timeline-date {
        position: relative !important;
        left: 0 !important;
        transform: none !important;
        top: auto !important;
        bottom: auto !important;
        right: auto !important;
        padding-left: 60px !important;
        font-size: 60px !important;
        margin-top: -30px !important;
        margin-bottom: 15px !important;
        opacity: 1 !important;
        text-align: left !important;
    }

    .el-timeline-layout-vertical .el-timeline-content {
        position: relative !important;
        left: 0 !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
        padding-left: 60px !important;
        padding-right: 20px !important;
        width: 100% !important;
        text-align: left !important;
    }
}

/* ----------------------------------------------------
   TEXT CONTENT STYLES
---------------------------------------------------- */
.el-timeline-title {
    font-size: 20px;
    font-weight: 500;
    margin-bottom: 14px;
    line-height: 1.3;
    letter-spacing: -0.3px;
}

.el-timeline-subtitle {
    font-size: 19px;
    font-weight: 800;
    margin-bottom: 6px;
    letter-spacing: -0.5px;
}

.el-timeline-description {
    font-size: 14px;
    line-height: 1.6;
    font-weight: 500;
    opacity: 0.85;
}

/* Animations Support */
.elementor-editor-active .elementor-invisible {
    visibility: visible !important;
    opacity: 1 !important;
    animation: none !important;
}

/* Swiper Navigation Arrows */
.el-timeline-swiper-button-next,
.el-timeline-swiper-button-prev {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 20;
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    color: #333;
    font-size: 16px;
    transition: all 0.3s ease;
}

.el-timeline-swiper-button-next:hover,
.el-timeline-swiper-button-prev:hover {
    background-color: #333;
    color: #fff;
    border-color: #333;
}

.el-timeline-swiper-button-prev {
    left: 20px;
}

.el-timeline-swiper-button-next {
    right: 20px;
}

.el-timeline-swiper-button-next.swiper-button-disabled,
.el-timeline-swiper-button-prev.swiper-button-disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Mobilde Dikey Görünüme Çevrilen Carousel (Horizontal) için Fixler */
@media (max-width: 767px) {
    .el-timeline-mobile-vertical.el-timeline-layout-vertical {
        padding-top: 20px !important;
    }

    .el-timeline-mobile-vertical.el-timeline-layout-vertical .el-timeline-line {
        display: none !important;
    }

    .el-timeline-mobile-vertical.el-timeline-layout-vertical .el-timeline-connector {
        display: none !important;
    }

    .el-timeline-mobile-vertical.el-timeline-layout-vertical .el-timeline-items-container {
        display: block !important;
        height: auto !important;
        padding-left: 0 !important;
    }

    .el-timeline-mobile-vertical.el-timeline-layout-vertical .el-timeline-item {
        margin-bottom: 30px !important;
        width: 100% !important;
    }

    .el-timeline-mobile-vertical.el-timeline-layout-vertical .el-timeline-marker {
        position: absolute !important;
        left: 11px !important;
        top: 0 !important;
        transform: none !important;
    }

    .el-timeline-mobile-vertical.el-timeline-layout-vertical .el-timeline-date {
        position: relative !important;
        left: 0 !important;
        transform: none !important;
        margin-bottom: 5px !important;
        bottom: auto !important;
        top: auto !important;
        width: 100% !important;
        text-align: left !important;
    }

    .el-timeline-mobile-vertical.el-timeline-layout-vertical .el-timeline-content {
        position: relative !important;
        left: 0 !important;
        width: 100% !important;
        transform: none !important;
        bottom: auto !important;
        top: auto !important;
        text-align: left !important;
    }
}