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

#wb-post-listing-container-wrapper {
    padding-right: .8rem !important;
}

.wb-post-listing-container h1,
.wb-post-listing-container h2 {
    color: #000000;
    font-size: 24px;
    margin-bottom: 1rem;
}

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

.wb-post-listing-post-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-post-listing-post-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-post-listing-post-card .wb-image-box .wb-thumbnail .top-left.break-spaces {
    white-space: break-spaces;
}

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

.wb-post-listing-post-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-post-listing-post-card .wb-image-box .bottom-right span {
    background: rgba(0, 0, 0, 0.6);
}

.wb-post-listing-post-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-post-listing-post-card .wb-image-box span.live-event {
    padding: 1px 5px;
    background: #E81B00 !important;
}

.wb-post-listing-post-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.
   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-post-listing-post-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 *****/

/* The card is taken out of flow while expanded, so the grid slot needs a
   containing block of its own. */
.wb-post-listing-post-article {
    position: relative;
}

.wb-hidden-info {
    display: none;
}

.wb-post-listing-post-card.detailed-card .wb-hidden-info {
    display: block !important;
}

/* Keyboard-expanded card. The .detailed-card class is added by
   wb-post-card-actions-v1.js on focusin; the host <article> gets a frozen
   min-height at the same time so the grid row doesn't reflow.
   Scoped to :focus-within so the hover clone appended to <body> (which also
   carries .detailed-card, but never contains focus) can't match - a bare
   .detailed-card width here makes the clone flash at full body width. */
.wb-post-listing-post-card:not(.no-effect).detailed-card:focus-within {
    top: 0;
    left: 0;
    width: 100%;
    transform: scale(1.17);
}

.wb-post-listing-post-card.detailed-card .wb-save-post-btn:focus-visible .wb-post-save-btn,
.wb-post-listing-post-card.detailed-card .wb-post-listing-btns:focus-visible {
    box-shadow: 0 0 0 .2rem #fff, 0 0 0 .3rem #069;
}

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

.wb-post-listing-post-card.detailed-card .wb-content-box .wb-hidden-info span,
.wb-post-listing-post-card.detailed-card .wb-content-box .wb-hidden-info span a {
    font-size: 13px !important;
}

.detailed-card {
    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-post-listing-post-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-post-listing-save-post-btn {
    border: 0;
    background: transparent;
    cursor: pointer;
    font-size: 13px;
    font-weight: 700;
}

.btn.btn-primary.wb-post-listing-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-post-listing-list {
    gap: 20px;
}

#wb-post-listing-filters-and-sorters-container {
    display: flex;
}

.wb-component .dropdown-btn {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.wb-component.dropdown-container.wb-post-listing-sort-container {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.wb-post-listing-sort-container .dropdown-btn {
    width: 150px;
}

.wb-component .dropdown-btn > .selected-count {
    margin-left: 6px;
    padding: 0 6px;
}

.wb-post-listing-breadcrumb-section {
    padding-left: 2rem;
}

.wb-post-listing-header-section {
    margin-left: 2rem !important;
    padding-right: 15px !important;
}

.wb-post-listing-header-section h1 {
    color: #FFFFFF;
    font-size: 36px;
    padding: 9.2rem 3rem;
}

.wb-post-listing-banner-section,
.wb-post-listing-header-section h1,
.wb-post-listing-banner-section img {
    border-radius: 64px;
}

.wb-post-listing-banner-section,
.wb-post-listing-container {
    padding-left: 2rem !important;
}

#wb-post-listing-banner-wrapper {
    padding-right: 0 !important;
    padding-left: 0 !important;
}

#wb-post-listing-banner-wrapper .wb-ent-channel-list-item-frame {
    padding: 0 15px 0 0 !important;
    align-items: flex-start;
    display: flex;
    justify-content: flex-end;
}

#wb-post-listing-banner-wrapper .wb-header-subs-search-tablet-container {
    display: none !important;
}

#wb-post-listing-banner-wrapper .wb-sc-cta-block-widget {
    max-width: 300px;
}

#wb-post-listing-search-container button,
#wb-post-listing-search-container .wb-component,
#wb-post-listing-filters-and-sorters-container button,
#wb-post-listing-filters-and-sorters-container .wb-component {
    border-radius: 8px;
    height: 40px;
}

#wb-post-listing-filters-and-sorters-container .wb-component .dropdown-btn {
    height: 40px;
}

#wb-post-listing-search-container .wb-component.input-group.prepend .input-group-prepend {
    border-top-left-radius: 8px;
    border-bottom-left-radius: 8px;
}

#wb-post-listing-search-container .wb-component.input-group.prepend > .form-control {
    border-radius: 0 8px 8px 0;
}

.wb-pagination-list {
    gap: 5px;
}

.wb-pagination-list li {
    display: flex;
}

.wb-pagination-list li.ellipsis {
    align-items: center;
    border-radius: 12px;
    border: 1px solid #B4CFCE;
    padding: 8px 15px;
    justify-content: center;
}

.wb-pagination-list li a,
.wb-pagination-list li span {
    border-radius: 12px;
    border: 1px solid #B4CFCE;
    padding: 8px 15px;
}

.wb-pagination-list li a.wb-disabled {
    opacity: .5;
}

.wb-post-listing-pagination .wb-component .dropdown-btn {
    background-color: #FFFFFF;
    border: 1px solid #B4CFCE;
    padding: 8px 15px;
}

.wb-post-listing-empty-results h2.alert,
.wb-post-listing-empty-results h3.alert {
    color: #856404;
    font-size: 24px;
}

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

.wb-post-listing-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-listing-loader::after {
    content: '';
    display: block;
    width: 30px;
    height: 30px;
    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-action .wb-post-listing-loader::after {
    width: var(--after-width, 30px);
    height: var(--after-height, 30px);
}

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

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

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

/*** Wide Screen ***/
@media (min-width: 1601px)  {
    .wb-post-listing-post-card .wb-image-box .wb-thumbnail img {
        width: 100% !important;
        max-height: 100% !important;
    }
}

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

@media (max-width: 1320px) {
    .wb-post-listing-header-section {
        margin-left: 0 !important;
    }

    .wb-post-listing-banner-section {
        padding-left: 0 !important;
    }

    .detailed-card {
        padding: 15px;
    }
}


@media (max-width: 1200px)  {

    #wb-post-listing-filters-and-sorters-container{
        display:block;
    }
    /* Align sort container to left on mobile and tablet */
    .wb-component.dropdown-container.wb-post-listing-sort-container {
        justify-content: flex-start !important;
    }
}

@media (max-width: 1024px) {
    section.col-lg-9.col-sm-12.col-12.wb-ent-has-banner.wb-post-listing-container {
        padding-right: 15px !important;
    }

    .wb-post-listing-breadcrumb-section {
        padding-left: 0 !important;
    }

    nav.wb-pagination {
        width: 100% !important;
    }
}

@media (min-width: 992px) {
    .wb-post-listing-container.col-lg-9 {
        -ms-flex: 0 0 76%;
        flex: 0 0 76%;
        max-width: 76%;
    }

    #wb-post-listing-banner-wrapper.col-lg-3 {
        -ms-flex: 0 0 24%;
        flex: 0 0 24%;
        max-width: 24%;
    }

    .wb-post-listing-list > li.col-lg-4 {
        -ms-flex: 0 0 calc(33.333333% - 13.5px);
        flex: 0 0 calc(33.333333% - 13.5px);
        max-width: calc(33.333333% - 13.5px);
    }

    .wb-post-listing-list > li.col-lg-3 {
        -ms-flex: 0 0 calc(25% - 15px);
        flex: 0 0 calc(25% - 15px);
        max-width: calc(25% - 15px);
    }
}

@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 (min-width: 480px) and (max-width: 1300px) {
    
    .wb-post-listing-list > li.col-md-6 {
        -ms-flex: 0 0 calc(50% - 10px);
        flex: 0 0 calc(50% - 10px);
        max-width: calc(50% - 10px);
    }
}

/*Mobile*/

@media (min-width: 768px) {

    /* Tablet and up: Keep pagination and counter in same row */
    .wb-post-listing-pagination nav.wb-pagination {
        width: auto !important;
        flex: 0 0 auto;
    }
    .wb-post-listing-pagination > div.d-flex {
        width: auto !important;
        flex: 0 0 auto;
    }
}

@media (max-width: 768px)  {
    #wb-post-listing-filters-and-sorters-container {
        -ms-flex-wrap: wrap !important;
        flex-wrap: wrap !important;
    }

    #wb-post-listing-banner-wrapper .wb-ent-channel-list-item-frame {
        justify-content: center;
    }

    .wb-post-listing-banner-section img,
    .wb-post-listing-header-section h1.wb-primary-bg {
        border-radius: 0px !important;
    }

    /* Breadcrumb visibility is owned by the breadcrumb partial (d-none d-md-block)
       so every page type behaves the same: hidden below 768px, visible from
       tablet up. This block used to force `display:none` at max-width:768px,
       which hid breadcrumbs at exactly 768px (tablet portrait) on the listing
       templates that load this stylesheet — channel, trending, tags, search and
       recommendations — while post pages kept showing them. */

    #wb-post-listing-container-wrapper {
        padding-left: .8rem !important;
    }

    .wb-post-listing-header-section {
        padding-right: 0 !important;
    }

    .wb-post-listing-banner-section {
        padding-right: 0 !important;
    }
}

@media (max-width: 767px)  {
    /* Mobile only: Pagination and per-page counter stack and center */
    .wb-post-listing-pagination {
        justify-content: center !important;
    }

    .wb-post-listing-pagination nav.wb-pagination {
        width: 100% !important;
        margin-bottom: 1rem;
    }

    .wb-post-listing-pagination nav.wb-pagination .wb-pagination-list {
        justify-content: center !important;
    }

    .wb-post-listing-pagination > div.d-flex {
        width: 100% !important;
        justify-content: center !important;
    }
}

@media (max-width: 640px)  {
    .view-all-link.mr-4 {
        margin-right: 0 !important;
    }

    #wb-post-listing-search-container > section {
        padding: 0 !important;
        margin-bottom: 1rem !important;
    }

    #wb-post-listing-search-container > section > button {
        margin-right: 0 !important;
    }

    #wb-post-listing-search-container {
        flex-wrap: wrap;
    }

    #wb-post-listing-search-container > section,
    #wb-post-listing-search-container > button {
        max-width: 100%;
        width: 100%;
    }
}