.wb-post-carousel-loader {
    width: 100%;
    bottom: 0;
    background-color: rgba(255,255,255,0.7);
    z-index: 9999;
}

@-webkit-keyframes spin {
    from { -webkit-transform:rotate(0deg); }
    to { -webkit-transform:rotate(360deg); }
}

@keyframes spin {
    from { transform:rotate(0deg); }
    to { transform:rotate(360deg); }
}

.wb-post-carousel-loader::after {
    content: '';
    display: block;
    width: 55px;
    height: 55px;
    border-style: solid;
    border-color: black;
    border-top-color: transparent;
    border-width: 4px;
    border-radius: 50%;
    -webkit-animation: spin .8s linear infinite;
    animation: spin .8s linear infinite;
}

.wb-post-carousel-container {
    overflow: hidden;
}

.wb-post-carousel-container h2 {
    color: #000000;
    font-size: 24px;
}

.wb-swiper-carousel-card .wb-image-box .wb-thumbnail {
    border-radius: 16px;
    position: relative;
    text-align: center;
    overflow: hidden;
    padding-bottom: 56%;
}

.wb-swiper-carousel-card .wb-image-box .wb-thumbnail img {
    border-radius: 16px;
    margin-bottom: 2px !important;
    position: absolute;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
}

.wb-swiper-carousel-card .wb-image-box .wb-thumbnail .top-left {
    position: absolute;
    top: 8px;
    left: 8px;
    width: auto;
    word-wrap: normal;
    word-break: keep-all;
    overflow: hidden;
    display: inline-block;
    white-space: nowrap;
    text-overflow: ellipsis;
    text-align: start;
}

.wb-swiper-carousel-card .wb-image-box .wb-thumbnail .top-left.break-spaces {
    white-space: break-spaces;
}

.wb-swiper-carousel-card .wb-image-box .wb-thumbnail .bottom-right {
    position: absolute;
    bottom: 8px;
    right: 8px;
}

.wb-swiper-carousel-card .wb-image-box span {
    border-radius: 8px;
    color: #FFFFFF;
    display: inline-block;
    font-style: normal;
    font-weight: 700;
    font-size: 14px;
    vertical-align: middle;
    word-wrap: normal;
    white-space: nowrap;
    width: auto;
    margin: auto;
    text-overflow: ellipsis;
    overflow: hidden;
    position: relative;
    background: #4B5660;
    padding: 5px 8px 4px 8px;
    line-height: 1;
}

.wb-swiper-carousel-card .wb-image-box .bottom-right span {
    background: rgba(0, 0, 0, 0.6);
}

.wb-swiper-carousel-card .wb-content-box .wb-visible-info h3 {
    margin: 0;
    font-size: 16px;
}

.wb-light-btn.btn.btn-secondary {
    border-radius: 18px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
}

.wb-carousel-prev,
.wb-carousel-next {
    border: none;
    background: none;
    cursor: pointer;
    outline: none;
}

.wb-post-carousel-container .swiper-pagination-horizontal.swiper-pagination-bullets {
    bottom: auto;
}

.wb-post-carousel-container .swiper-pagination-bullet-active {
    background: #4B5660;
    width: 16px;
    border-radius: 6px;
}

.wb-swiper-carousel-card .wb-image-box span.live-event {
    padding: 1px 5px;
    background: #E81B00 !important;
}

.wb-swiper-carousel-card .wb-meta-data {
    line-height: 1;
    display: flex;
    flex-flow: column;
}

/* Title block: exactly three lines, then an ellipsis. The old fixed 65px box
   let a fourth line start at 57.6px and cut it in half on narrow cards (two
   slides per view on phones). display needs !important to beat Bootstrap's
   .d-block on the same anchor; :not(.d-none) keeps the hidden full-title
   anchor hidden, since this selector outranks .d-none too. */
.wb-swiper-carousel-card:not(.detailed-card) .wb-content-box .wb-visible-info h3 a:not(.d-none) {
    display: -webkit-box !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-height: 1.2;
    height: calc(3 * 1.2em); /* three lines at 16px = 57.6px */
    overflow: hidden;
    text-overflow: ellipsis;
}

/***** HOVER EFFECT *****/
.wb-hidden-info {
    display: none;
}

.wb-swiper-carousel-card.detailed-card .wb-hidden-info {
    display: block !important;
}

.wb-swiper-carousel-card.detailed-card .wb-content-box .wb-visible-info h3 {
    font-size: 14.5px !important;
}

.wb-price-wrapper dt,
.wb-price-wrapper dd,
.wb-swiper-carousel-card.detailed-card .wb-content-box .wb-hidden-info span,
.wb-swiper-carousel-card.detailed-card .wb-content-box .wb-hidden-info span a {
    font-size: 13px !important;
}

.detailed-card,
.wb-swiper-carousel-card:not(.no-effect):focus-within {
    background: #fff;
    border-radius: 16px;
    position: absolute;
    padding: 20px;
    transition: all 0.2s ease-in-out;
    z-index: 999999;
}

.detailed-card,
.detailed-card-overlay {
    pointer-events: auto;
}

/***** HOVER EFFECT *****/

.wb-price-wrapper {
    background-color: #f6f6f6;
    border-radius: 24px;
    padding: 8px 32px;
    display: flex;
    flex-flow: column;
    justify-content: center;
    align-items: center;
    margin-top: 1.5rem;
    margin-bottom: 1rem;
}

.wb-price-wrapper.single-price {
    -ms-flex: 100%;
    flex: 100%;
    max-width: 100%;
    gap: 5px;
}

.wb-price-details {
    display: flex;
    flex-flow: row;
    justify-content: space-between;
    align-items: center;
    padding: 0;
}

.wb-pricing-label {
    background-color: #ffffff;
    padding: 6px 12px;
    border-radius: 24px;
}

.wb-pricing-label span {
    font-weight: bold;
    margin-left: 3px;
    margin-top: 2px;
}

.wb-swiper-carousel-card.detailed-card .wb-content-box .wb-hidden-info .wb-pricing-label span {
    font-size: 11px !important;
}

.wb-action {
    display: flex;
    flex-flow: row;
    flex-wrap: wrap;
    justify-content: center;
}

.course-details-box {
    box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.25);
    font-size: 13px;
    padding: 14px 24px
}

.wb-save-carousel-post {
    border: 0;
    background: transparent;
    cursor: pointer;
    font-size: 13px;
    font-weight: 700;
}

.btn.btn-primary.wb-swiper-carousel-btns {
    border-radius: 16px !important;
    font-size: 14.5px !important;
    font-weight: 700 !important;
    padding: 12px !important;
    max-width: fit-content;
    text-wrap: auto;
}

.wb-text-decoration-underline {
    text-decoration: underline !important;
}

.wb-post-carousel-container .swiper-pagination {
    display: none !important;
}

.wb-post-is-saved,
.wb-post-is-not-save {
    display: flex;
}

.wb-action .wb-post-carousel-loader::after {
    width: var(--after-width, 55px);
    height: var(--after-height, 55px);
}

/* While adding to cart, the button label is replaced by a .wb-post-carousel-loader
   (same loader the save button uses). */
.wb-ajax-add-to-cart.loading {
    position: relative;
    pointer-events: none;
    opacity: 0.8;
}

.wb-ajax-add-to-cart.added.disabled,
.wb-swiper-carousel-btns.added.disabled {
    pointer-events: none;
    cursor: not-allowed;
    opacity: 0.7;
}

.wb-swiper-carousel-card:not(.no-effect):focus-within {
    transform: scale(1.17);
}

.wb-carousel-posts.swiper-wrapper .swiper-slide {
    opacity: 0;
}

.wb-carousel-posts.swiper-wrapper .swiper-slide.swiper-slide-visible {
    opacity: 1;
}

.wb-swiper-carousel-card:not(.no-effect):focus-within .wb-hidden-info {
    display: block !important;
}

.carousel-wrapper .view-all-link:focus,
.carousel-wrapper .wb-carousel-prev:focus,
.carousel-wrapper .wb-carousel-next:focus,
.wb-swiper-carousel-card:not(.no-effect):focus-within .wb-save-carousel-post:focus-visible .wb-post-save-btn,
.wb-swiper-carousel-card:not(.no-effect):focus-within .wb-swiper-carousel-btns:focus-visible {
    box-shadow: 0 0 0 .2rem #fff, 0 0 0 .3rem #069;
}

/*Mobile*/
@media (max-width: 640px)  {
    .wb-carousel-prev,
    .wb-carousel-next {
        display: none !important;
    }

    .view-all-link.mr-4 {
        margin-right: 0 !important;
    }

    .wb-post-carousel-container .swiper-pagination {
        display: block !important;
    }
}

@media (max-width: 768px)  {
    .carousel-wrapper {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}

@media (min-width: 769px) and (max-width: 1300px) {
    .course-details-box {
        padding: 14px;
    }

    .wb-price-wrapper {
        padding: 10px;
    }

    /*.detailed-card:not(.mobile-modal) .wb-price-details {
        justify-content: center;
    }*/
}

@media (max-width: 1320px)  {
    .detailed-card {
        padding: 15px;
    }
}

@media (min-width: 1501px)  {
    .wb-price-wrapper.single-price {
        padding: 8px 20px;
        -ms-flex: 85% !important;
        flex: 85% !important;
        max-width: 85% !important;
    }
}