/* ============================================
   AmSpa Timeline — Front-end
   v1.0.0
   Uses Avada global color palette variables.
   ============================================ */

.amspa-timeline {
    position: relative;
    padding-left: 44px;
    max-width: 800px;
    margin: 0 auto;
}

/* Vertical gradient line */
.amspa-timeline::before {
    content: '';
    position: absolute;
    left: 16px;
    top: 8px;
    bottom: 8px;
    width: 3px;
    background: linear-gradient(
        to bottom,
        var(--awb-custom_color_1, #28aae2),
        var(--awb-color4, #9dc93b)
    );
    border-radius: 3px;
}

/* Single entry */
.amspa-tl-item {
    position: relative;
    padding-bottom: 36px;
}

.amspa-tl-item:last-child {
    padding-bottom: 0;
}

/* Dot marker */
.amspa-tl-dot {
    position: absolute;
    left: -36px;
    top: 6px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--awb-color1, #ffffff);
    border: 3px solid var(--awb-custom_color_1, #28aae2);
    z-index: 2;
    transition: background 0.3s ease, box-shadow 0.3s ease;
}

.amspa-tl-item:hover .amspa-tl-dot {
    background: var(--awb-custom_color_1, #28aae2);
    box-shadow: 0 0 0 6px rgba(40, 170, 226, 0.15);
}

/* Year heading */
.amspa-tl-year {
    font-family: var(--body_typography-font-family, 'Inter', sans-serif);
    font-size: 22px;
    font-weight: 700;
    color: var(--awb-color5, #003b67);
    margin-bottom: 8px;
    line-height: 1.2;
}

/* Content body */
.amspa-tl-body {
    font-family: var(--body_typography-font-family, 'Inter', sans-serif);
    font-size: 15px;
    line-height: 1.75;
    color: var(--awb-custom_color_2, #6d6e71);
}

.amspa-tl-body p {
    margin: 0 0 8px 0;
}

.amspa-tl-body p:last-child {
    margin-bottom: 0;
}

.amspa-tl-body ul {
    margin: 0 0 8px 0;
    padding-left: 20px;
    list-style: disc;
}

.amspa-tl-body ul:last-child {
    margin-bottom: 0;
}

.amspa-tl-body li {
    margin-bottom: 4px;
}

.amspa-tl-body li:last-child {
    margin-bottom: 0;
}

.amspa-tl-body a {
    color: var(--awb-custom_color_1, #28aae2);
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s ease;
}

.amspa-tl-body a:hover {
    color: var(--awb-color5, #003b67);
}

.amspa-tl-body strong {
    color: var(--awb-color5, #003b67);
}

/* ── Responsive ────────────────────────────── */
@media (max-width: 600px) {
    .amspa-timeline {
        padding-left: 32px;
    }

    .amspa-timeline::before {
        left: 10px;
        width: 2px;
    }

    .amspa-tl-dot {
        left: -28px;
        width: 16px;
        height: 16px;
        border-width: 2px;
        top: 8px;
    }

    .amspa-tl-year {
        font-size: 18px;
    }

    .amspa-tl-body {
        font-size: 14px;
    }

    .amspa-tl-item {
        padding-bottom: 28px;
    }
}
