/* Frontend Styles */
.bs-grid[data-bs="1"] { box-sizing: border-box; display: grid; grid-template-columns: repeat(var(--bs-cols, 3), minmax(0, 1fr)); gap: var(--bs-gap, 16px); width: 100%; max-width: 100%; overflow: hidden; }
.bs-grid[data-bs="1"] .bs-cell { min-width: 0; }
.bs-grid[data-bs="1"] .bs-cell-inner { position: relative; width: 100%; aspect-ratio: var(--bs-ratio, 4/3); border-radius: var(--bs-radius, 10px); overflow: hidden; background: #f3f4f6; }
.bs-grid[data-bs="1"] img, .bs-grid[data-bs="1"] svg { display: block; width: 100%; height: 100%; object-fit: cover; }
.bs-grid[data-bs="1"] .bs-slot-link { display: block; width: 100%; height: 100%; opacity: 1 !important; filter: none !important; }
.bs-grid[data-bs="1"] .bs-slot-caption { position: absolute; left: 10px; bottom: 10px; right: 10px; display: flex; justify-content: space-between; gap: 10px; padding: 8px 10px; background: linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,0.45)); color: #fff; border-radius: 8px; font-size: 14px; }
.bs-grid[data-bs="1"] .bs-slot-text { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bs-grid[data-bs="1"] .bs-slot-price { font-weight: 700; }
.bs-info h2, .bs-form h2, .bs-confirm h2 { margin: 10px 0 16px; }
.bs-form .widefat { width: 100%; }
