.sp-package-plan {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
}

.sp-package-item:not(:last-child) {
    margin-bottom: 1.25rem;
}

.sp-package-choose {
    position: absolute;
    opacity: 0;
    height: 1px;
    width: 1px;
}

.sp-package-choose~label {
    position: relative;
    border-width: 2px;
    cursor: pointer;
    transition: border-color 0.4s;
    margin-bottom: 0;
}

.sp-package-choose~label:after,
.sp-package-choose~label:before {
    position: absolute;
    right: 1.25rem;
    top: 1.25rem;
    height: 22px;
    width: 22px;
    border-radius: 50%;
}

.sp-package-choose~label:before {
    content: "";
    border: 2px solid #dbdfea;
}

.sp-package-choose~label:after {
    line-height: 22px;
    font-size: 12px;
    font-family: "Nioicon";
    content: "\e9bd";
    color: #fff;
    background: #6576ff;
    text-align: center;
    opacity: 0;
    transition: opacity 0.4s;
}

.sp-package-choose:checked~label {
    border-color: #6576ff;
}

.sp-package-choose:checked~label:after {
    opacity: 1;
}

.sp-package-desc {
    text-align: left;
    display: flex;
    justify-content: space-between;
    border: 1px solid #dbdfea;
    border-radius: 4px;
    flex-direction: column;
}

.sp-package-desc .badge {
    vertical-align: middle;
    margin-left: 0.5rem;
}

.sp-package-title {
    color: #364a63;
    font-size: 1.15rem;
    display: block;
    font-weight: 500;
}

.sp-package-detail {
    color: #8094ae;
}

.sp-package-action {
    margin-top: 1.5rem;
}

.sp-package-action .btn,
.sp-package-action .dual-listbox .dual-listbox__button,
.dual-listbox .sp-package-action .dual-listbox__button,
.sp-package-action .link {
    margin: 0 0.75rem;
}

.sp-package-info,
.sp-package-price {
    padding: 1.25rem;
}

.sp-package-price {
    text-align: left;
    background: #f5f6fa;
    border-radius: 0 0 4px 4px;
    border-top: 1px solid #e5e9f2;
    min-width: 185px;
}

.sp-package-amount {
    font-size: 13px;
    font-weight: 500;
    /* line-height: 1.1; */
}

.sp-package-amount .amount {
    display: block;
    font-size: 1.75rem;
}

.sp-package-amount .amount+span {
    margin-top: 0.5rem;
    display: block;
}

@media (min-width: 992px) {
    .sp-package-desc {
        text-align: left;
        /* padding-left: 2.75rem; */
        flex-direction: row;
    }

    .sp-package-info,
    .sp-package-price {
        padding: 1.5rem 1.25rem;
    }

    .sp-package-info {
        flex-grow: 1;
        margin: auto;
    }

    .sp-package-price {
        text-align: center;
        border-radius: 0 4px 4px 0;
        border-top: 0;
        border-left: 1px solid #e5e9f2;
    }

    .sp-package-choose~label:after,
    .sp-package-choose~label:before {
        left: 1.25rem;
        right: auto;
        top: 50%;
        transform: translateY(-50%);
    }
}