.card-timeline {
    position: relative;
    list-style: none;
}

.card-timeline .timeline-item {
    position: relative;
    padding-left: 2rem;
}

.card-timeline .timeline-item:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 20px;
    bottom: 0;
    width: 1px;
    border-left: 1px dashed #dbdade;
}

.card-timeline [class*="timeline-point-"] {
    position: absolute;
    left: 0;
    top: 5px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    border: 2px solid #fff;
    z-index: 2;
}

/* Variasi Warna Titik Lingkaran + Efek Glow Transparan */
.card-timeline .timeline-point-success {
    background-color: #28c76f;
    box-shadow: 0 0 0 3px rgba(40, 199, 111, 0.15);
}

.card-timeline .timeline-point-info {
    background-color: #00cfdd;
    box-shadow: 0 0 0 3px rgba(0, 207, 221, 0.15);
}

.card-timeline .timeline-point-warning {
    background-color: #ff9f43;
    box-shadow: 0 0 0 3px rgba(255, 159, 67, 0.15);
}

.card-timeline .timeline-point-secondary {
    background-color: #a8aaae;
    box-shadow: 0 0 0 3px rgba(168, 170, 174, 0.15);
}

.gallery-overlay {
    background-color: rgba(115, 103, 240, 0.25);
    backdrop-filter: blur(2px);
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
}

.gallery-overlay .btn {
    transform: scale(0.6);
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.gallery-thumb {
    transition: transform 0.4s ease;
}

.template-gallery-card:hover .gallery-overlay {
    opacity: 1;
}

.template-gallery-card:hover .gallery-overlay .btn {
    transform: scale(1);
}

.template-gallery-card:hover .gallery-thumb {
    transform: scale(1.06);
}

.template-gallery-card {
    transition: box-shadow 0.3s ease;
}

.template-gallery-card:hover {
    box-shadow: 0 10px 25px rgba(115, 103, 240, 0.2) !important;
}
