/* =========================================================
   POSTGRADO FP - TARJETAS MÁSTERS / PRODUCTOS OPTIMIZADO
   Listado principal + carrusel Splide + evitar salto visual
========================================================= */

/* ===== MARGEN LATERAL DEL BLOQUE MÁSTERS ===== */

.kb-row-layout-id3320_599998-62 {
    padding-left: 45px !important;
    padding-right: 45px !important;
    box-sizing: border-box !important;
}

.kb-row-layout-id3320_599998-62 .kt-row-column-wrap {
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
}

@media (max-width: 1024px) {
    .kb-row-layout-id3320_599998-62 {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }
}

@media (max-width: 767px) {
    .kb-row-layout-id3320_599998-62 {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

/* ===== GRID PRINCIPAL DE PRODUCTOS ===== */

@media (min-width: 1200px) {
    :is(.woocommerce, .woocommerce-page) ul.products:not(.splide__list):not([id^="splide"]) {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 28px !important;
        margin: 0 !important;
        padding: 0 !important;
    }
}

@media (min-width: 768px) and (max-width: 1199px) {
    :is(.woocommerce, .woocommerce-page) ul.products:not(.splide__list):not([id^="splide"]) {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 24px !important;
        margin: 0 !important;
        padding: 0 !important;
    }
}

@media (max-width: 767px) {
    :is(.woocommerce, .woocommerce-page) ul.products:not(.splide__list):not([id^="splide"]) {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 22px !important;
        margin: 0 !important;
        padding: 0 !important;
    }
}

/* ===== TARJETA GENERAL ===== */

:is(.woocommerce, .woocommerce-page) ul.products li.product {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    float: none !important;

    background: #ffffff !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.07) !important;

    display: flex !important;
    flex-direction: column !important;

    height: 455px !important;
    min-height: 455px !important;
    max-height: 455px !important;

    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease !important;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.12) !important;
    border-color: #EB8C00 !important;
}

/* ===== IMAGEN ===== */

:is(.woocommerce, .woocommerce-page) ul.products li.product a.woocommerce-loop-product__link {
    display: block !important;
    height: 135px !important;
    min-height: 135px !important;
    max-height: 135px !important;
    overflow: hidden !important;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product a img {
    width: 100% !important;
    height: 135px !important;
    min-height: 135px !important;
    max-height: 135px !important;
    object-fit: cover !important;
    display: block !important;
    margin: 0 !important;
    transition: transform 0.35s ease !important;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product:hover a img {
    transform: scale(1.04) !important;
}

/* ===== CONTENIDO INTERIOR ORDENADO ===== */

:is(.woocommerce, .woocommerce-page) ul.products li.product :is(.product-details.content-bg.entry-content-wrap, .entry-content-wrap) {
    background: #ffffff !important;
    padding: 16px 16px 14px !important;

    display: grid !important;
    grid-template-rows:
        96px
        28px
        26px
        58px
        1fr
        36px;

    height: 320px !important;
    min-height: 320px !important;
    max-height: 320px !important;
    row-gap: 0 !important;
}

/* ===== TÍTULO ===== */

:is(.woocommerce, .woocommerce-page) ul.products li.product .woocommerce-loop-product__title {
    height: 96px !important;
    min-height: 96px !important;
    max-height: 96px !important;

    margin: 0 !important;
    overflow: visible !important;
    display: block !important;

    font-size: 0.9rem !important;
    line-height: 1.28 !important;
    font-weight: 700 !important;
    color: #1f2937 !important;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product .woocommerce-loop-product__title a {
    color: #1f2937 !important;
    text-decoration: none !important;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product:hover .woocommerce-loop-product__title a {
    color: #EB8C00 !important;
}

/* ===== META / PLAZOS ===== */

:is(.woocommerce, .woocommerce-page) ul.products li.product .pfp-master-meta {
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;

    margin: 0 !important;

    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 7px !important;

    font-size: 11.5px !important;
    color: #667085 !important;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product .pfp-installments {
    height: 26px !important;
    min-height: 26px !important;
    max-height: 26px !important;

    margin: 0 !important;

    display: flex !important;
    align-items: center !important;

    font-size: 11.5px !important;
    font-weight: 700 !important;
    color: #5f6b70 !important;
}

/* ===== PRECIO ===== */

:is(.woocommerce, .woocommerce-page) ul.products li.product :is(.price, span.price) {
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;

    margin: 0 !important;
    padding-top: 12px !important;
    border-top: 1px solid #e5e7eb !important;

    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;

    overflow: visible !important;
    line-height: 1 !important;
    text-align: right !important;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product .price :is(.amount, bdi, .woocommerce-Price-currencySymbol) {
    font-size: 18px !important;
    font-weight: 800 !important;
    color: #111827 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

/* ===== LOGOS SI EXISTEN ===== */

:is(.woocommerce, .woocommerce-page) ul.products li.product :is(.pfp-logos, .product-logos) {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    min-height: 20px !important;
    margin-bottom: 8px !important;
    overflow: hidden !important;
}

/* ===== BOTONES ===== */

:is(.woocommerce, .woocommerce-page) ul.products li.product .product-action-wrap {
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;

    margin: 0 !important;

    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    align-self: end !important;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product :is(
    .product-action-wrap a,
    .product-action-wrap .button,
    .product-action-wrap a.button,
    a.pfp-action-btn
) {
    width: 100% !important;
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;

    border-radius: 7px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    font-size: 11px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    text-decoration: none !important;

    padding: 0 !important;
    box-sizing: border-box !important;
    transition: all 0.25s ease !important;
}

/* Botón izquierdo */
:is(.woocommerce, .woocommerce-page) ul.products li.product .product-action-wrap :is(
    .btn-popup-temario,
    a[href*="temario"],
    a.pfp-action-btn:first-child
) {
    background: #ffffff !important;
    color: #EB8C00 !important;
    border: 1px solid #d0d5dd !important;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product .product-action-wrap :is(
    .btn-popup-temario:hover,
    a[href*="temario"]:hover,
    a.pfp-action-btn:first-child:hover
) {
    background: #fff7eb !important;
    border-color: #EB8C00 !important;
    color: #EB8C00 !important;
}

/* Botón derecho */
:is(.woocommerce, .woocommerce-page) ul.products li.product .product-action-wrap :is(
    a.button,
    a.pfp-action-btn:last-child
) {
    background: #EB8C00 !important;
    color: #ffffff !important;
    border: 1px solid #EB8C00 !important;
}

:is(.woocommerce, .woocommerce-page) ul.products li.product .product-action-wrap :is(
    a.button:hover,
    a.pfp-action-btn:last-child:hover
) {
    background: #d97f00 !important;
    border-color: #d97f00 !important;
    color: #ffffff !important;
}

/* ===== OCULTAR MICRO LABELS ===== */

:is(.woocommerce, .woocommerce-page) ul.products li.product .wapl-label {
    display: none !important;
}

/* =========================================================
   CARRUSEL SPLIDE - 3 TARJETAS FINAS Y CON MARGEN
========================================================= */

:is(.woocommerce, .woocommerce-page) ul.products:is(.splide__list, [id^="splide"]) {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
    max-width: 1120px !important;

    min-height: 455px !important;
    height: 455px !important;
    align-items: stretch !important;
}

:is(.woocommerce, .woocommerce-page) ul.products:is(.splide__list, [id^="splide"]) li.product {
    width: calc(33.333% - 20px) !important;
    max-width: calc(33.333% - 20px) !important;
    min-width: calc(33.333% - 20px) !important;

    margin-right: 30px !important;

    height: 455px !important;
    min-height: 455px !important;
    max-height: 455px !important;

    border-radius: 16px !important;
    overflow: hidden !important;

    display: flex !important;
    flex-direction: column !important;

    transition: box-shadow 0.25s ease, border-color 0.25s ease !important;
}

/* Carrusel: contenido más compacto */
:is(.woocommerce, .woocommerce-page) ul.products:is(.splide__list, [id^="splide"]) li.product :is(
    .product-details.content-bg.entry-content-wrap,
    .entry-content-wrap
) {
    grid-template-rows:
        88px
        30px
        24px
        52px
        1fr
        36px !important;

    height: 320px !important;
    min-height: 320px !important;
    max-height: 320px !important;
}

:is(.woocommerce, .woocommerce-page) ul.products:is(.splide__list, [id^="splide"]) li.product .woocommerce-loop-product__title {
    height: 88px !important;
    min-height: 88px !important;
    max-height: 88px !important;
}

:is(.woocommerce, .woocommerce-page) ul.products:is(.splide__list, [id^="splide"]) li.product .pfp-master-meta {
    height: 30px !important;
    min-height: 30px !important;
    max-height: 30px !important;
}

:is(.woocommerce, .woocommerce-page) ul.products:is(.splide__list, [id^="splide"]) li.product .pfp-installments {
    height: 24px !important;
    min-height: 24px !important;
    max-height: 24px !important;
}

:is(.woocommerce, .woocommerce-page) ul.products:is(.splide__list, [id^="splide"]) li.product :is(.price, span.price) {
    height: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
}

/* Evitar salto visual al cargar el carrusel */
:is(.woocommerce, .woocommerce-page) ul.products:is(.splide__list, [id^="splide"]) li.product,
:is(.woocommerce, .woocommerce-page) ul.products:is(.splide__list, [id^="splide"]) li.product img {
    animation: none !important;
}

/* ===== RESPONSIVE CARRUSEL ===== */

@media (min-width: 768px) and (max-width: 1024px) {
    :is(.woocommerce, .woocommerce-page) ul.products:is(.splide__list, [id^="splide"]) li.product {
        width: calc(50% - 15px) !important;
        max-width: calc(50% - 15px) !important;
        min-width: calc(50% - 15px) !important;
        margin-right: 30px !important;
    }
}

@media (max-width: 767px) {
    :is(.woocommerce, .woocommerce-page) ul.products:is(.splide__list, [id^="splide"]) {
        max-width: 100% !important;
        height: auto !important;
        min-height: auto !important;
    }

    :is(.woocommerce, .woocommerce-page) ul.products:is(.splide__list, [id^="splide"]) li.product {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 100% !important;

        margin-right: 0 !important;

        height: auto !important;
        min-height: auto !important;
        max-height: none !important;
    }
}

/* ===== RESPONSIVE GENERAL ===== */

@media (min-width: 768px) and (max-width: 1199px) {
    :is(.woocommerce, .woocommerce-page) ul.products li.product {
        min-height: 455px !important;
        height: 455px !important;
    }
}

@media (max-width: 767px) {
    :is(.woocommerce, .woocommerce-page) ul.products li.product {
        height: auto !important;
        min-height: auto !important;
        max-height: none !important;
    }

    :is(.woocommerce, .woocommerce-page) ul.products li.product a.woocommerce-loop-product__link,
    :is(.woocommerce, .woocommerce-page) ul.products li.product a img {
        height: 170px !important;
        min-height: 170px !important;
        max-height: 170px !important;
    }

    :is(.woocommerce, .woocommerce-page) ul.products li.product :is(
        .product-details.content-bg.entry-content-wrap,
        .entry-content-wrap
    ) {
        display: flex !important;
        height: auto !important;
        min-height: auto !important;
        max-height: none !important;
        padding: 16px !important;
    }

    :is(.woocommerce, .woocommerce-page) ul.products li.product :is(
        .woocommerce-loop-product__title,
        .pfp-master-meta,
        .pfp-installments,
        .price,
        span.price,
        .product-action-wrap
    ) {
        height: auto !important;
        min-height: auto !important;
        max-height: none !important;
    }

    :is(.woocommerce, .woocommerce-page) ul.products li.product .price {
        margin-top: 14px !important;
    }
}