/* Bundle contents grid - lightweight styles matching site cards */
.twa-bundle-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

@media (max-width: 1199px) {
    .twa-bundle-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 991px) {
    .twa-bundle-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575px) {
    .twa-bundle-grid { grid-template-columns: 1fr; }
}

.twa-bundle-card {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 6px 16px rgba(0,0,0,.06);
    overflow: hidden;
    transition: box-shadow .25s, transform .25s;
}
.twa-bundle-card:hover { box-shadow: 0 10px 25px rgba(0,0,0,.10); transform: translateY(-2px); }

.twa-bundle-cover { position: relative; aspect-ratio: 16/9; background:#f3f4f6; }
.twa-bundle-cover img { width: 100%; height: 100%; object-fit: cover; display:block; }

.twa-card-pill {
    position: absolute; top: 12px; left: 12px; padding: 6px 10px; border-radius: 9999px;
    background: rgba(17,24,39,.8); color:#fff; font-size:12px; font-weight:600;
}

.twa-price-badge {
    position: absolute; right: 12px; bottom: 12px; background: rgba(255,255,255,.95); color:#111827;
    padding: 6px 10px; border-radius: 12px; font-weight:700; box-shadow: 0 2px 6px rgba(0,0,0,.08);
}

.twa-bundle-body { padding: 16px 18px; }
.twa-bundle-title { margin: 0 0 6px 0; font-size: 18px; font-weight: 700; color:#0f182b; }
.twa-bundle-excerpt { margin: 0 10px 14px 0; color:#6b7280; font-size:14px; min-height: 40px; }

.twa-card-rating { color:#6b7280; font-size:13px; display:flex; gap:6px; align-items:center; margin-bottom:6px; }
.twa-card-rating .dashicons { color:#f59e0b; }

.twa-bundle-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.twa-cta-group { display:flex; align-items:center; gap:10px; text-decoration:none; }
.twa-card-cta-label { color:#6b7280; font-size:13px; font-weight:600; }
.twa-badge-meta { display:inline-flex; align-items:center; gap:6px; color:#6b7280; font-size:13px; }
.twa-badge-meta .dashicons { font-size:16px; width:16px; height:16px; }
.twa-icon-layers { width:16px; height:16px; fill:#3b82f6; display:inline-block; }
.twa-card-cta { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:9999px; background: var(--twa-primary, #2b64cc); color:#fff; text-decoration:none; }
.twa-card-cta .dashicons { color:#fff; }


