.tpMarketplaceCard {
    --tp-card-width: 420px;
    --tp-card-accent: #7950e8;
    --tp-card-accent-soft: #eee8ff;
    position: relative;
    width: min(var(--tp-card-width), 100%);
    aspect-ratio: 1 / 1.21;
    display: inline-flex;
    flex-direction: column;
    vertical-align: top;
    background: #ffffff;
    border-radius: calc(var(--tp-card-width) * 0.065);
    overflow: hidden;
    box-shadow:
        0 16px 38px rgba(18, 27, 52, 0.11),
        0 3px 8px rgba(18, 27, 52, 0.04);
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Helvetica,
        Arial,
        sans-serif;
    color: #102043;
    cursor: pointer;
    outline: none;
}

.tpMarketplaceCard *,
.tpMarketplaceCard *::before,
.tpMarketplaceCard *::after {
    box-sizing: border-box;
}


.tpMarketplaceCardMedia {
    position: relative;
    width: 100%;
    flex-shrink: 0;
    overflow: hidden;
    background: #edf2fa;
}

.tpMarketplaceCardMediaImage {
    display: block;
    width: 100%;
    height: auto;
}


.tpMarketplaceCardWave {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -16px;
    height: calc(var(--tp-card-width) * 0.26);
    pointer-events: none;
    z-index: 2;
}

.tpMarketplaceCardWave svg {
    display: block;
    width: 100%;
    height: 100%;
}

.tpMarketplaceCardWave .tpWaveWhite {
    fill: #ffffff;
}


.tpMarketplaceCard .tpWaveBack {
    fill: rgba(var(--tp-wave-rgb), 0.16);
}

.tpMarketplaceCard .tpWaveMiddle {
    fill: rgba(var(--tp-wave-rgb), 0.28);
}

.tpMarketplaceCard .tpWaveFront {
    fill: rgba(var(--tp-wave-rgb), 0.43);
}


.tpMarketplaceCardFloatingIcon {
    position: absolute;

    left: 7%;

    top: calc(var(--tp-card-width) * 0.405);

    width: calc(var(--tp-card-width) * 0.17);
    height: calc(var(--tp-card-width) * 0.17);

    display: flex;
    align-items: center;
    justify-content: center;

    padding: calc(var(--tp-card-width) * 0.022);

    background: #ffffff;

    border-radius: calc(var(--tp-card-width) * 0.042);

    box-shadow:
        0 9px 24px rgba(18, 27, 52, 0.13),
        inset 0 0 0 1px rgba(20, 30, 55, 0.04);

    z-index: 4;
}

.tpMarketplaceCardFloatingIcon img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: contain;
}


.tpMarketplaceCardBody {
    position: relative;

    display: flex;
    flex-direction: column;

    flex: 1;

    min-height: 0;

    padding:
        calc(var(--tp-card-width) * 0.025)
        7%
        calc(var(--tp-card-width) * 0.055)
        7%;
}

.tpMarketplaceCard.has-floating-icon .tpMarketplaceCardBody {
    padding-top: calc(var(--tp-card-width) * 0.115);
}


.tpMarketplaceCardLabel {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: calc(var(--tp-card-width) * 0.071);
    padding: 0 calc(var(--tp-card-width) * 0.036);
    margin-bottom: calc(var(--tp-card-width) * 0.026);
    border-radius: 999px;
    background: var(--tp-card-accent-soft);
    color: var(--tp-card-accent);
    font-size: calc(var(--tp-card-width) * 0.042);
    line-height: 1;
    font-weight: 600;
}


.tpMarketplaceCardTitle {
    margin: 0 0 calc(var(--tp-card-width) * 0.025) 0;
    color: #0b1735;
    font-size: calc(var(--tp-card-width) * 0.060);
    line-height: 1.10;
    font-weight: 700;
    letter-spacing: -0.012em;
    font-family: 'Inter';
}


.tpMarketplaceCardDescription {
    position: relative;
    margin: 0;
    color: #6f7b95;
    font-size: calc(var(--tp-card-width) * 0.045);
    line-height: 1.50;
    font-weight: 500;
    flex: 1;
    min-height: 0;
    overflow: hidden;
    font-family: 'Inter';
    letter-spacing: -0.032em;
}

.tpMarketplaceCardDescription p {
    margin: 0 0 calc(var(--tp-card-width) * 0.018) 0;
}

.tpMarketplaceCardDescription p:last-child {
    margin-bottom: 0;
}

.tpMarketplaceCardDescription br {
    line-height: 1.25;
}

.tpMarketplaceCardDescription ul,
.tpMarketplaceCardDescription ol {
    margin:
        calc(var(--tp-card-width) * 0.014)
        0
        0
        calc(var(--tp-card-width) * 0.042);

    padding: 0;
}

.tpMarketplaceCardDescription li {
    margin:
        calc(var(--tp-card-width) * 0.004)
        0;
}


.tpMarketplaceCardDescription::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: calc(var(--tp-card-width) * 0.045);
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,1) );
}


.tpMarketplaceCardMetaRow {
    position: relative;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: calc(var(--tp-card-width) * 0.025);
    flex-shrink: 0;
    padding-top: calc(var(--tp-card-width) * 0.018);
    z-index: 2;
    border-top: 1px solid #e5e5e5;
    padding-top: 10px;
    margin-top: 10px;
}


.tpMarketplaceCardPlatformPill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--tp-card-width) * 0.030);
    height: calc(var(--tp-card-width) * 0.085);
    padding: 0 calc(var(--tp-card-width) * 0.032);
    border-radius: 999px;
    background: #f4f6fa;
    border: 1px solid #edf0f5;
    flex-shrink: 0;
}

.tpMarketplaceCardPlatformIcon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: calc(var(--tp-card-width) * 0.045);
    height: calc(var(--tp-card-width) * 0.045);
    color: #0e1938;
}

.tpMarketplaceCardPlatformIcon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}


.tpMarketplaceCardExtraPill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--tp-card-width) * 0.018);
    height: calc(var(--tp-card-width) * 0.085);
    padding: 0 calc(var(--tp-card-width) * 0.032);
    border-radius: 999px;
    background: #f4f6fa;
    border: 1px solid #edf0f5;
    color: #66718b;
    font-size: calc(var(--tp-card-width) * 0.036);
    line-height: 1;
    font-weight: 500;
    white-space: nowrap;
    flex-shrink: 0;
}

.tpMarketplaceCardExtraPill svg {
    display: block;
    width: calc(var(--tp-card-width) * 0.040);
    height: calc(var(--tp-card-width) * 0.040);
    flex-shrink: 0;
    color: var(--tp-card-accent);
}


.tpMarketplaceCard.type-page {
    --tp-card-accent: #36a945;
    --tp-card-accent-soft: #e4f7e7;
}

.tpMarketplaceCard.type-plugin {
    --tp-card-accent: #7950e8;
    --tp-card-accent-soft: #eee8ff;
}

.tpMarketplaceCard.type-iconpack {
    --tp-card-accent: #308bdc;
    --tp-card-accent-soft: #e5f2ff;
}


.tpMarketplaceCardContainer {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 300px));
    justify-content: center;
    align-items: start;
    gap: 24px;
}


@media (max-width: 520px) {

    .tpMarketplaceCard {
        border-radius: 24px;
    }

}
