/* GRID WRAPPER */
.jl-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
    gap: 22px;
}

/* CARD */
.jl-card {
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 8px 18px rgba(0,0,0,0.04);
    transition: box-shadow .15s ease, transform .15s ease;
}

.jl-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 28px rgba(0,0,0,0.08);
}

/* LINK */
.jl-card__link {
    display: block;
    color: inherit;
    text-decoration: none;
}

/* BANNER */
.jl-card__media {
    width: 100%;
    padding-top: 25% !important;
    background-size: cover;
    background-position: center;
    position: relative;
}

/* DARK GRADIENT */
.jl-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0) 50%, rgba(0,0,0,0.35));
}

/* LOGO PUCK */
.jl-card__logo {
    position: absolute;
    right: 12px;
    bottom: 12px;
    width: 52px;
    height: 52px;
    background: #ffffff;
    border-radius: 999px;
    border: 2px solid #ffffff;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.25);
    z-index: 2;
}
.jl-card__logo img {
    width: 80%;
    height: 80%;
    object-fit: contain;
}

/* BODY */
.jl-card__body {
    padding: 14px 16px 18px;
}

/* TITLE + VERIFIED */
.jl-card__title {
    font-size: 18px;
    margin: 0 0 4px;
    color: #1B263B;
    display: flex;
    align-items: center;
    gap: 6px;
}
.jl-card__verified img {
    width: 18px;
    height: 18px;
}

/* RATING */
.jl-card__rating {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 8px;
}
.jl-card__stars {
    color: #d1d5db;
}
.jl-card__star.filled {
    color: #fbbf24;
}

/* OPEN/CLOSED PILL */
.jl-card__openpill {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 8px;
}
.jl-card__openpill.open {
    background: #d1fae5;
    color: #065f46;
}
.jl-card__openpill.closed {
    background: #fee2e2;
    color: #991b1b;
}

/* TAXONOMY PILLS */
.jl-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 12px;
}
.jl-card__meta-item {
    background: #F3F4F6;
    padding: 4px 10px;
    font-size: 13px;
    border-radius: 999px;
    color: #374151;
}

/* EXCERPT */
.jl-card__excerpt {
    font-size: 14px;
    color: #4B5563;
    margin: 0 0 12px;
}

/* CTA */
.jl-card__cta {
    font-size: 14px;
    font-weight: 600;
    color: #2D7A78;
}