:root {
    --uet-line-width: 2px;
    --uet-line-bg: rgba(255, 255, 255, 0.1);
    --uet-line-active: #06b6d4;
    
    --uet-marker-size: 16px;
    --uet-marker-bg: #0f172a; 
    --uet-marker-active-border: #06b6d4;
    
    --uet-anim-duration: 0.6s;
    --uet-card-gap: 60px;
    --uet-content-indent: 40px;
    --uet-content-max-width: 600px;
}

.uet-timeline-wrapper {
    position: relative;
    max-width: 100%;
    margin: 0 auto;
    padding: 20px 0;
}

/* Background Line */
.uet-timeline-line {
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: var(--uet-line-width);
    margin-left: calc(var(--uet-line-width) / -2);
    background: var(--uet-line-bg);
    z-index: 1;
}

/* Active Progress Line */
.uet-timeline-progress {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background: var(--uet-line-active);
    height: 0;
}

/* General Item */
.uet-timeline-item {
    position: relative;
    width: 50%;
    box-sizing: border-box;
    margin-bottom: var(--uet-card-gap);
    z-index: 2;
}

/* Base Alignments */
.uet-layout-alternating .uet-position-left,
.uet-layout-manual .uet-position-left { left: 0; text-align: right; padding-right: var(--uet-content-indent); }

.uet-layout-alternating .uet-position-right,
.uet-layout-manual .uet-position-right { left: 50%; text-align: left; padding-left: var(--uet-content-indent); }

/* Markers (Calculated precisely against line width and marker size) */
.uet-timeline-marker {
    position: absolute;
    top: 5px; 
    width: var(--uet-marker-size);
    height: var(--uet-marker-size);
    border-radius: 50%;
    background: var(--uet-marker-bg);
    border: 2px solid var(--uet-marker-active-border);
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* Center marker positions for standard alternating layout */
.uet-layout-alternating .uet-position-left .uet-timeline-marker,
.uet-layout-manual .uet-position-left .uet-timeline-marker { 
    right: calc((var(--uet-marker-size) / -2)); 
    left: auto; 
}

.uet-layout-alternating .uet-position-right .uet-timeline-marker,
.uet-layout-manual .uet-position-right .uet-timeline-marker { 
    left: calc((var(--uet-marker-size) / -2)); 
    right: auto; 
}

/* --- THE "ALL RIGHT" LAYOUT --- */
.uet-layout-all_right .uet-timeline-line {
    left: 15px; 
    margin-left: 0;
}
.uet-layout-all_right .uet-timeline-item {
    width: 100%;
    left: 0;
    padding-left: calc(15px + var(--uet-content-indent));
    text-align: left;
}
.uet-layout-all_right .uet-timeline-marker {
    left: calc(15px + (var(--uet-line-width) / 2) - (var(--uet-marker-size) / 2));
    right: auto;
}

/* --- THE "ALL LEFT" LAYOUT (FIXED) --- */
.uet-layout-all_left .uet-timeline-line {
    left: auto;
    right: 15px;
    margin-left: 0;
}
.uet-layout-all_left .uet-timeline-item {
    width: 100%;
    left: 0;
    padding-right: calc(15px + var(--uet-content-indent));
    padding-left: 0;
    text-align: right;
}
.uet-layout-all_left .uet-timeline-marker {
    left: auto;
    right: calc(15px + (var(--uet-line-width) / 2) - (var(--uet-marker-size) / 2));
}

/* Content Styling & Max Width Restraints */
.uet-timeline-content {
    background: transparent;
    padding: 0;
    border: none;
    box-shadow: none;
    max-width: var(--uet-content-max-width);
    transition: transform 0.3s ease;
}

/* Ensures max-width elements anchor properly toward the central line */
.uet-layout-all_left .uet-timeline-content,
.uet-position-left .uet-timeline-content {
    margin-left: auto;
    margin-right: 0;
}
.uet-layout-all_right .uet-timeline-content,
.uet-position-right .uet-timeline-content {
    margin-left: 0;
    margin-right: auto;
}

/* --- INTERACTIVE HOVER EFFECTS --- */

/* Fill in the dot on hover */
.uet-timeline-item:hover .uet-timeline-marker {
    box-shadow: 0 0 12px var(--uet-marker-active-border);
    background: var(--uet-marker-active-border);
    transform: scale(1.2);
}

/* Shift content slightly away from the line */
.uet-layout-all_right .uet-timeline-item:hover .uet-timeline-content,
.uet-position-right:hover .uet-timeline-content {
    transform: translateX(8px);
}

.uet-layout-all_left .uet-timeline-item:hover .uet-timeline-content,
.uet-position-left:hover .uet-timeline-content {
    transform: translateX(-8px);
}

/* --- Active Marker Scroll Effect --- */
.uet-timeline-marker.uet-active {
    box-shadow: 0 0 10px rgba(6, 182, 212, 0.5); 
    transform: scale(1.2);
}

/* Typography Matches */
.uet-company-logo { max-width: 60px; height: auto; margin-bottom: 15px; border-radius: 4px; display: inline-block; }
.uet-date { display: block; font-weight: 700; font-size: 0.85rem; letter-spacing: 1px; margin-bottom: 5px; }
.uet-title { margin: 0 0 5px 0; font-size: 1.5rem; font-weight: 700; }
.uet-company { display: block; font-size: 0.95rem; margin-bottom: 15px; font-weight: 400; }
.uet-desc p { margin: 0; line-height: 1.6; font-size: 0.95rem; }

/* --- Company Link Styling --- */
a.uet-company-link {
    text-decoration: none !important;
    color: inherit;
    transition: opacity 0.3s ease;
    cursor: pointer;
}

a.uet-company-link:hover {
    opacity: 0.8;
}

/* Entrance Animations */
.uet-anim-fade-up { opacity: 0; transform: translateY(30px); transition: all var(--uet-anim-duration) ease-out; }
.uet-anim-fade-left { opacity: 0; transform: translateX(30px); transition: all var(--uet-anim-duration) ease-out; }
.uet-anim-fade-right { opacity: 0; transform: translateX(-30px); transition: all var(--uet-anim-duration) ease-out; }
.uet-anim-zoom-in { opacity: 0; transform: scale(0.95); transition: all var(--uet-anim-duration) ease-out; }
.uet-in-viewport { opacity: 1; transform: translate(0) scale(1); }

/* Mobile Collapse overrides */
@media (max-width: 767px) {
    /* Forcing all layouts to 'All Right' behavior for mobile readability */
    .uet-mobile-collapse .uet-timeline-line { left: 15px !important; right: auto !important; margin-left: 0 !important; }
    .uet-mobile-collapse .uet-timeline-item { width: 100% !important; left: 0 !important; padding-left: calc(15px + var(--uet-content-indent)) !important; padding-right: 0 !important; text-align: left !important; }
    .uet-mobile-collapse .uet-timeline-marker { left: calc(15px + (var(--uet-line-width) / 2) - (var(--uet-marker-size) / 2)) !important; right: auto !important; }
    .uet-mobile-collapse .uet-timeline-content { margin-left: 0 !important; margin-right: auto !important; }
    
    /* Reset hover shift to always push right on mobile */
    .uet-mobile-collapse .uet-timeline-item:hover .uet-timeline-content { transform: translateX(8px) !important; }
}

/* --- Elementor Editor Override --- */
body.elementor-editor-active .uet-timeline-item { opacity: 1 !important; transform: none !important; transition: none !important; }
body.elementor-editor-active .uet-timeline-progress { height: 100% !important; }
body.elementor-editor-active .uet-timeline-marker { box-shadow: 0 0 10px rgba(6, 182, 212, 0.5) !important; transform: scale(1.2) !important; }