/* Plain Bootstrap 5 look, uses the theme's variables with fallbacks. */
.cem-signup-steps {
    position: relative;
}
.cem-signup-step {
    display: flex;
    gap: .75rem;
    padding: .5rem 0;
    position: relative;
}
.cem-signup-step + .cem-signup-step::before {
    content: "";
    position: absolute;
    left: .875rem;
    top: -.5rem;
    height: 1rem;
    border-left: 2px solid var(--bs-border-color, #dee2e6);
}
.cem-signup-step-icon {
    flex: 0 0 1.75rem;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .75rem;
    background: var(--bs-tertiary-bg, #f8f9fa);
    border: 2px solid var(--bs-border-color, #dee2e6);
    color: var(--bs-secondary-color, #6c757d);
}
.cem-signup-step.is-done .cem-signup-step-icon {
    background: var(--bs-success, #198754);
    border-color: var(--bs-success, #198754);
    color: #fff;
}
.cem-signup-step.is-current .cem-signup-step-icon {
    border-color: var(--bs-primary, #0d6efd);
    color: var(--bs-primary, #0d6efd);
}
.cem-signup-step.is-blocked .cem-signup-step-icon {
    border-color: var(--bs-danger, #dc3545);
    color: var(--bs-danger, #dc3545);
}

/* Shop tabs offered with the ticket */
.cem-shop-thumb {
    width: 3rem;
    height: 3rem;
    object-fit: cover;
    border-radius: .25rem;
}
.cem-shop-item {
    cursor: pointer;
    margin-bottom: 0;
}
.cem-shop-item:hover {
    border-color: var(--bs-primary, #0d6efd);
}
.cem-shop-item:has(input:checked) {
    border-color: var(--bs-primary, #0d6efd);
    box-shadow: 0 0 0 .15rem rgba(13, 110, 253, .25);
}
.cem-shop-item-img {
    height: 7rem;
    object-fit: cover;
}
.cem-shop-item-desc {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
