.bs-directory,
.bs-category-grid {
    --bs-border: #dedede;
    --bs-surface: #ffffff;
    --bs-text: #171717;
    --bs-muted: #6a6a6a;
    --bs-accent: #171717;
    --bs-radius: 8px;
    --bs-gap: 22px;
    color: var(--bs-text);
    box-sizing: border-box;
}
.bs-directory *, .bs-category-grid * { box-sizing: border-box; }
.bs-sr-only { position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important; }
.bs-directory__filters { display:grid; grid-template-columns:minmax(220px,2fr) repeat(3,minmax(150px,1fr)) auto; gap:10px; align-items:stretch; margin:0 0 28px; }
.bs-directory__field input,
.bs-directory__field select { width:100%; min-height:48px; border:1px solid var(--bs-border); border-radius:var(--bs-radius); background:var(--bs-surface); color:var(--bs-text); padding:0 14px; font:inherit; }
.bs-directory__submit { min-height:48px; border:1px solid var(--bs-accent); border-radius:var(--bs-radius); background:var(--bs-accent); color:#fff; padding:0 22px; font:inherit; font-weight:700; cursor:pointer; }
.bs-directory__results-head { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 16px; }
.bs-directory__count { color:var(--bs-muted); font-size:.95rem; }
.bs-directory__loading { color:var(--bs-muted); font-size:.9rem; }
.bs-directory.is-loading .bs-directory__results { opacity:.58; pointer-events:none; }
.bs-directory__grid { display:grid; grid-template-columns:repeat(var(--bs-directory-columns,3), minmax(0,1fr)); gap:var(--bs-gap); }
.bs-business-card { display:flex; flex-direction:column; min-width:0; background:var(--bs-surface); border:1px solid var(--bs-border); border-radius:var(--bs-radius); overflow:hidden; transition:transform .16s ease, box-shadow .16s ease; }
.bs-business-card:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(0,0,0,.08); }
.bs-business-card--featured { border-width:2px; }
.bs-business-card__image { display:block; aspect-ratio:16/9; background:#f3f3f3; overflow:hidden; text-decoration:none; }
.bs-business-card__image img { width:100%; height:100%; object-fit:cover; display:block; }
.bs-business-card__placeholder { display:flex; width:100%; height:100%; align-items:center; justify-content:center; font-size:3rem; font-weight:800; color:#777; text-transform:uppercase; }
.bs-business-card__body { display:flex; flex-direction:column; flex:1; padding:20px; }
.bs-business-card__eyebrow { min-height:22px; display:flex; flex-wrap:wrap; gap:7px; margin-bottom:6px; }
.bs-business-card__badge, .bs-business-card__verified { display:inline-flex; align-items:center; font-size:.72rem; line-height:1; letter-spacing:.04em; text-transform:uppercase; font-weight:800; padding:5px 7px; border:1px solid currentColor; border-radius:999px; }
.bs-business-card__verified { color:#4a6a4f; }
.bs-business-card__title { margin:0 0 7px!important; padding:0!important; font-size:1.25rem!important; line-height:1.2!important; }
.bs-business-card__title a { color:inherit; text-decoration:none; }
.bs-business-card__category, .bs-business-card__location { color:var(--bs-muted); line-height:1.45; font-size:.92rem; }
.bs-business-card__category { margin-bottom:3px; }
.bs-business-card__excerpt { margin-top:12px; color:var(--bs-muted); font-size:.94rem; line-height:1.55; }
.bs-business-card__actions { display:flex; flex-wrap:wrap; gap:9px; align-items:center; margin-top:auto; padding-top:18px; }
.bs-business-card__primary, .bs-business-card__secondary { display:inline-flex; min-height:38px; align-items:center; justify-content:center; border-radius:6px; text-decoration:none!important; font-weight:700; font-size:.88rem; padding:8px 11px; }
.bs-business-card__primary { background:var(--bs-accent); color:#fff!important; border:1px solid var(--bs-accent); }
.bs-business-card__secondary { color:var(--bs-text)!important; border:1px solid var(--bs-border); background:transparent; }
.bs-directory__pagination { display:flex; flex-wrap:wrap; justify-content:center; gap:7px; margin-top:30px; }
.bs-directory__pagination .page-numbers { display:inline-flex; min-width:40px; min-height:40px; align-items:center; justify-content:center; border:1px solid var(--bs-border); border-radius:6px; color:var(--bs-text); text-decoration:none; padding:6px 10px; }
.bs-directory__pagination .current { background:var(--bs-accent); border-color:var(--bs-accent); color:#fff; }
.bs-directory__empty { border:1px dashed var(--bs-border); border-radius:var(--bs-radius); padding:30px; text-align:center; color:var(--bs-muted); }
.bs-category-grid { display:grid; grid-template-columns:repeat(var(--bs-category-columns,4), minmax(0,1fr)); gap:14px; }
.bs-category-card { display:flex; flex-direction:column; gap:5px; min-height:92px; justify-content:center; padding:17px 18px; border:1px solid var(--bs-border); border-radius:var(--bs-radius); background:var(--bs-surface); color:var(--bs-text)!important; text-decoration:none!important; transition:transform .16s ease, box-shadow .16s ease; }
.bs-category-card:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.07); }
.bs-category-card__name { font-size:1.05rem; font-weight:800; line-height:1.25; }
.bs-category-card__count { color:var(--bs-muted); font-size:.86rem; }
@media(max-width:980px){
    .bs-directory__filters{grid-template-columns:repeat(2,minmax(0,1fr))}.bs-directory__field--search{grid-column:1/-1}.bs-directory__grid{grid-template-columns:repeat(min(2,var(--bs-directory-columns,3)),minmax(0,1fr))}.bs-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
    .bs-directory__filters{grid-template-columns:1fr}.bs-directory__field--search{grid-column:auto}.bs-directory__submit{width:100%}.bs-directory__grid,.bs-category-grid{grid-template-columns:1fr}.bs-business-card__actions{align-items:stretch}.bs-business-card__primary,.bs-business-card__secondary{flex:1 1 auto}
}

/* Individual business shortcodes (v0.2.1) */
.bs-business-field{box-sizing:border-box}
.bs-business-logo{display:block;max-width:100%;height:auto}
.bs-business-address{display:inline-block}
.bs-business-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.bs-business-verification{display:inline-flex;align-items:center;gap:.35em;font-size:.82em;font-weight:700;line-height:1;padding:.45em .7em;border:1px solid currentColor;border-radius:999px}
.bs-business-description>:first-child{margin-top:0}
.bs-business-description>:last-child{margin-bottom:0}
