.wc-pun-showcase {
    --wc-pun-accent: #0f685f;
    --wc-pun-ink: #182a31;
    --wc-pun-border: #dfe9e8;
    margin-block: 1.5rem;
    padding: clamp(1rem, 3vw, 2rem);
    border: 1px solid var(--wc-pun-border);
    border-radius: 1.5rem;
    background: linear-gradient(155deg, #eaf6f3, #f7fafc 65%);
    color: var(--wc-pun-ink);
    text-align: start;
}
.wc-pun-showcase .wc-pun-showcase__title {
    margin: 0 0 1.25rem;
    color: inherit;
    font-size: clamp(1.25rem, 3vw, 1.8rem);
    line-height: 1.45;
}
.wc-pun-showcase .wc-pun-showcase__grid {
    display: grid;
    grid-template-columns: repeat(var(--wc-pun-columns, 4), minmax(0, 1fr));
    gap: clamp(.75rem, 2vw, 1.25rem);
    margin: 0;
    padding: 0;
    list-style: none;
}
.wc-pun-cols-1 { --wc-pun-columns: 1; }
.wc-pun-cols-2 { --wc-pun-columns: 2; }
.wc-pun-cols-3 { --wc-pun-columns: 3; }
.wc-pun-cols-4 { --wc-pun-columns: 4; }
.wc-pun-showcase .wc-pun-showcase__card {
    display: flex;
    min-width: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}
.wc-pun-showcase .wc-pun-showcase__link {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--wc-pun-border);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 4px 12px #182a310a;
    color: var(--wc-pun-ink);
    text-decoration: none;
    transition: box-shadow .2s ease, border-color .2s ease;
}
.wc-pun-showcase .wc-pun-showcase__link:hover,
.wc-pun-showcase .wc-pun-showcase__link:focus-visible {
    border-color: var(--wc-pun-accent);
    box-shadow: 0 8px 18px #182a311a;
}
.wc-pun-showcase .wc-pun-showcase__link:focus-visible {
    outline: 2px solid var(--wc-pun-accent);
    outline-offset: 3px;
}
.wc-pun-showcase__media {
    position: relative;
    aspect-ratio: 4 / 3;
    background: #f5f7fa;
}
.wc-pun-showcase .wc-pun-showcase__media img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: contain;
}
.wc-pun-showcase__badge {
    position: absolute;
    inset-block-start: .65rem;
    inset-inline-start: .65rem;
    padding: .2rem .55rem;
    border-radius: 999px;
    background: var(--wc-pun-accent);
    color: #fff;
    font-size: .72rem;
    font-weight: 700;
}
.wc-pun-showcase__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: .5rem;
    padding: clamp(.7rem, 2vw, 1rem);
    overflow-wrap: anywhere;
}
.wc-pun-showcase__name {
    font-size: 1rem;
    line-height: 1.6;
}
.wc-pun-showcase__date {
    color: #4c6168;
    font-size: .82rem;
}
.wc-pun-showcase__date time { white-space: nowrap; }
.wc-pun-showcase__cta {
    margin-block-start: auto;
    padding-block-start: .6rem;
    color: var(--wc-pun-accent);
    font-size: .88rem;
    font-weight: 700;
}
.wc-pun-showcase .wc-pun-showcase__empty {
    margin: 0;
    color: #4c6168;
}
@media (max-width: 900px) {
    .wc-pun-cols-4 { --wc-pun-columns: 3; }
}
@media (max-width: 640px) {
    .wc-pun-cols-3, .wc-pun-cols-4 { --wc-pun-columns: 2; }
}
@media (max-width: 360px) {
    .wc-pun-cols-2, .wc-pun-cols-3, .wc-pun-cols-4 { --wc-pun-columns: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .wc-pun-showcase .wc-pun-showcase__link { transition: none; }
}

.wc-pun-catalog-date {
    margin-block: .25rem .5rem;
    color: #4c6168;
    font-size: .82em;
    line-height: 1.5;
}
.wc-pun-catalog-date time { white-space: nowrap; }
