/* Top Products Full Premium v26 */

.tpf-grid{
    display:grid;
    grid-template-columns:repeat(var(--tpf-cols,4), minmax(0,1fr));
    gap:30px;
    align-items:stretch;
    width:100%;
}

.tpf-card{
    background:#fff;
    border-radius:var(--tpf-radius,24px);
    padding:14px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    min-width:0;
    transition:transform .24s ease, box-shadow .24s ease;
}

.tpf-shadow-soft .tpf-card{
    box-shadow:0 6px 20px rgba(20,40,20,.055);
}

.tpf-shadow-premium .tpf-card{
    box-shadow:0 10px 30px rgba(20,40,20,.075);
}

.tpf-shadow-strong .tpf-card{
    box-shadow:0 16px 44px rgba(20,40,20,.12);
}

.tpf-card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 44px rgba(20,40,20,.14);
}

.tpf-media{
    position:relative;
    height:var(--tpf-image-height,292px);
    border-radius:calc(var(--tpf-radius,24px) - 8px);
    overflow:hidden;
    background:
        radial-gradient(circle at 85% 10%, rgba(255,255,255,.96), rgba(255,255,255,0) 36%),
        linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,0)),
        var(--tpf-image-bg,#eef6d8);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:22px;
}

.tpf-media.has-tpf-badge{
    padding-top:60px;
}

.tpf-badge-bottom-left .tpf-media.has-tpf-badge,
.tpf-badge-bottom-right .tpf-media.has-tpf-badge{
    padding-top:22px;
    padding-bottom:60px;
}

.tpf-image-link{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none!important;
}

.tpf-media img,
.tpf-product-image{
    display:block!important;
    max-width:100%!important;
    max-height:var(--tpf-image-max-height,190px)!important;
    width:auto!important;
    height:auto!important;
    object-fit:contain!important;
    margin:0 auto!important;
    transform:scale(var(--tpf-image-zoom,1));
    transition:transform .24s ease;
}

.tpf-card:hover .tpf-media img,
.tpf-card:hover .tpf-product-image{
    transform:scale(calc(var(--tpf-image-zoom,1) + .035));
}

.tpf-badge{
    position:absolute;
    z-index:12;
    max-width:calc(100% - 32px);
    padding:9px 15px;
    border-radius:999px;
    color:var(--tpf-badge-text,#fff);
    font-size:12px;
    line-height:1;
    font-weight:900;
    letter-spacing:.35px;
    text-transform:uppercase;
    box-shadow:0 8px 18px rgba(20,40,20,.18);
    white-space:nowrap;
    pointer-events:none;
}

.tpf-badge-top-left .tpf-badge{
    top:var(--tpf-badge-offset-y,14px);
    left:var(--tpf-badge-offset-x,16px);
}

.tpf-badge-top-right .tpf-badge{
    top:var(--tpf-badge-offset-y,14px);
    right:var(--tpf-badge-offset-x,16px);
}

.tpf-badge-bottom-left .tpf-badge{
    bottom:var(--tpf-badge-offset-y,14px);
    left:var(--tpf-badge-offset-x,16px);
}

.tpf-badge-bottom-right .tpf-badge{
    bottom:var(--tpf-badge-offset-y,14px);
    right:var(--tpf-badge-offset-x,16px);
}

.tpf-badge.best{
    background:var(--tpf-best,#58a80d);
}

.tpf-badge.soldout{
    background:var(--tpf-soldout,#6b7280);
}

.tpf-body{
    flex:1;
    display:flex;
    flex-direction:column;
    padding:28px 12px 10px;
    min-width:0;
}

.tpf-title{
    margin:0;
    min-height:86px;
    color:var(--tpf-title,#06152a);
    font-size:23px;
    line-height:1.24;
    font-weight:900;
    letter-spacing:-.03em;
}

.tpf-title a{
    color:inherit!important;
    text-decoration:none!important;
}

.tpf-title a:hover{
    color:#2f7d12!important;
}

.tpf-divider{
    height:1px;
    background:var(--tpf-divider,#d8e8b6);
    margin:18px 0 16px;
}

.tpf-price{
    margin:0 0 22px;
    min-height:70px;
}

.tpf-price-before{
    color:var(--tpf-old-price,#8b8b8b);
    font-size:14px;
    line-height:1.2;
    margin-bottom:8px;
    white-space:nowrap;
}

.tpf-price-before .tpf-old-price{
    text-decoration:line-through;
    font-weight:800;
}

.tpf-price-current{
    display:flex;
    align-items:baseline;
    gap:8px;
    color:var(--tpf-price,#3f8f16);
    font-size:25px;
    line-height:1.08;
    font-weight:900;
    letter-spacing:-.02em;
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
}

.tpf-price-prefix{
    font-size:.82em;
    font-weight:900;
}

.tpf-price-main,
.tpf-price-current .amount,
.tpf-price-current .woocommerce-Price-amount{
    display:inline-block;
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
    font-size:inherit!important;
    line-height:inherit!important;
    font-weight:inherit!important;
}

.tpf-price-current .woocommerce-Price-currencySymbol{
    font-size:.78em;
    font-weight:900;
    margin-right:4px;
}

.tpf-price-native{
    color:var(--tpf-price,#3f8f16);
    font-size:25px;
    line-height:1.08;
    font-weight:900;
}

.tpf-button{
    margin-top:auto;
    min-height:52px;
    border-radius:15px;
    background:var(--tpf-btn,#63b600);
    color:var(--tpf-btn-text,#fff)!important;
    text-decoration:none!important;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:13px 18px;
    font-size:16px;
    line-height:1;
    font-weight:900;
    box-shadow:0 10px 20px rgba(88,168,13,.23);
    transition:transform .22s ease, background .22s ease, box-shadow .22s ease;
}

.tpf-button:hover{
    background:var(--tpf-btn-hover,#4f9200)!important;
    color:var(--tpf-btn-text,#fff)!important;
    transform:translateY(-2px);
    box-shadow:0 15px 28px rgba(79,146,0,.31);
}

.tpf-button-arrow{
    font-size:18px;
    line-height:1;
    transform:translateY(-1px);
}

.tpf-button-disabled{
    background:#9ca3af!important;
    box-shadow:none!important;
    cursor:not-allowed;
}

.tpf-card.is-out-of-stock{
    opacity:.82;
}

@media(max-width:1100px){
    .tpf-grid{
        grid-template-columns:repeat(var(--tpf-tablet-cols,3), minmax(0,1fr));
        gap:24px;
    }

    .tpf-title{
        font-size:21px;
    }
}

@media(max-width:780px){
    .tpf-grid{
        grid-template-columns:repeat(2, minmax(0,1fr));
        gap:20px;
    }

    .tpf-card{
        padding:12px;
    }

    .tpf-media{
        height:255px;
    }

    .tpf-title{
        min-height:78px;
        font-size:20px;
    }
}

@media(max-width:520px){
    .tpf-grid{
        grid-template-columns:repeat(var(--tpf-mobile,1), minmax(0,1fr));
        gap:18px;
    }

    .tpf-card{
        border-radius:22px;
        padding:10px;
    }

    .tpf-media{
        height:260px;
    }

    .tpf-body{
        padding:24px 8px 8px;
    }

    .tpf-title{
        min-height:auto;
        font-size:23px;
    }

    .tpf-price{
        min-height:auto;
    }

    .tpf-price-current,
    .tpf-price-native{
        font-size:26px;
    }
}
