/* =========================================================================
   Business Plan South Africa — components.css
   Reusable UI components. Tokens in style.css :root.
   ========================================================================= */

/* ---------- Generic card ---------- */
.bpsa-card {
  background: var(--bpsa-surface); border: 1px solid var(--bpsa-border);
  border-radius: var(--bpsa-radius-lg); overflow: hidden;
  display: flex; flex-direction: column; height: 100%;
  transition: transform var(--bpsa-dur) var(--bpsa-ease), box-shadow var(--bpsa-dur) var(--bpsa-ease), border-color var(--bpsa-dur) var(--bpsa-ease);
}
.bpsa-card:hover { transform: translateY(-6px); box-shadow: var(--bpsa-shadow); border-color: var(--bpsa-border-strong); }
.bpsa-card__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--bpsa-blue-light); }
.bpsa-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--bpsa-dur) var(--bpsa-ease); }
.bpsa-card:hover .bpsa-card__media img { transform: scale(1.05); }
.bpsa-card__media-fallback { position: absolute; inset: 0; display: grid; place-items: center; background: var(--bpsa-gradient-hero); color: rgba(255,255,255,0.85); }
.bpsa-card__media-fallback svg { width: 56px; height: 56px; }
.bpsa-card__badge { position: absolute; top: 14px; left: 14px; background: var(--bpsa-white); color: var(--bpsa-blue-primary); font-family: var(--bpsa-font-heading); font-weight: var(--bpsa-fw-bold); font-size: var(--bpsa-fs-xs); letter-spacing: 0.04em; text-transform: uppercase; padding: 0.35rem 0.7rem; border-radius: var(--bpsa-radius-pill); box-shadow: var(--bpsa-shadow-sm); }
.bpsa-card__body { padding: var(--bpsa-space-5); display: flex; flex-direction: column; gap: var(--bpsa-space-3); flex: 1; }
.bpsa-card__title { font-size: var(--bpsa-fs-xl); margin: 0; }
.bpsa-card__title a { color: var(--bpsa-heading); }
.bpsa-card__title a:hover { color: var(--bpsa-blue-secondary); }
.bpsa-card__meta { display: flex; flex-wrap: wrap; gap: 0.5rem; font-size: var(--bpsa-fs-xs); color: var(--bpsa-text-muted); align-items: center; }
.bpsa-card__excerpt { color: var(--bpsa-text-muted); margin: 0; font-size: var(--bpsa-fs-sm); }
.bpsa-card__footer { margin-top: auto; padding-top: var(--bpsa-space-3); display: flex; gap: var(--bpsa-space-3); flex-wrap: wrap; }
.bpsa-card__footer .bpsa-btn { flex: 1; padding-inline: 1rem; font-size: var(--bpsa-fs-sm); }

/* Pills / tags */
.bpsa-pill { display: inline-flex; align-items: center; gap: 0.35rem; font-size: var(--bpsa-fs-xs); font-weight: var(--bpsa-fw-semibold); padding: 0.3rem 0.7rem; border-radius: var(--bpsa-radius-pill); background: var(--bpsa-blue-light); color: var(--bpsa-blue-primary); }
.bpsa-pill--ghost { background: transparent; border: 1px solid var(--bpsa-border-strong); color: var(--bpsa-text-muted); }

/* ---------- Service cards ---------- */
.bpsa-service { position: relative; background: var(--bpsa-surface); border: 1px solid var(--bpsa-border); border-radius: var(--bpsa-radius-lg); padding: var(--bpsa-space-6); height: 100%; transition: transform var(--bpsa-dur) var(--bpsa-ease), box-shadow var(--bpsa-dur) var(--bpsa-ease); overflow: hidden; }
.bpsa-service::after { content:""; position:absolute; left:0; top:0; height:4px; width:100%; background: var(--bpsa-gradient-accent); transform: scaleX(0); transform-origin: left; transition: transform var(--bpsa-dur) var(--bpsa-ease); }
.bpsa-service:hover { transform: translateY(-6px); box-shadow: var(--bpsa-shadow); }
.bpsa-service:hover::after { transform: scaleX(1); }
.bpsa-service__icon { width: 58px; height: 58px; border-radius: 14px; display: grid; place-items: center; background: var(--bpsa-blue-light); color: var(--bpsa-blue-primary); margin-bottom: var(--bpsa-space-4); transition: all var(--bpsa-dur) var(--bpsa-ease); }
.bpsa-service:hover .bpsa-service__icon { background: var(--bpsa-blue-primary); color: #fff; }
.bpsa-service__icon svg { width: 28px; height: 28px; }
.bpsa-service h3 { font-size: var(--bpsa-fs-xl); margin-bottom: var(--bpsa-space-3); }
.bpsa-service p { color: var(--bpsa-text-muted); margin-bottom: var(--bpsa-space-4); }
.bpsa-service__price { font-family: var(--bpsa-font-heading); font-weight: var(--bpsa-fw-bold); color: var(--bpsa-heading); }
.bpsa-service__price span { color: var(--bpsa-text-muted); font-weight: var(--bpsa-fw-regular); font-size: var(--bpsa-fs-sm); }

/* ---------- Process / steps ---------- */
.bpsa-steps { counter-reset: step; display: grid; gap: var(--bpsa-space-5); grid-template-columns: repeat(4, 1fr); }
.bpsa-step { position: relative; padding: var(--bpsa-space-5); background: var(--bpsa-surface); border: 1px solid var(--bpsa-border); border-radius: var(--bpsa-radius-lg); }
.bpsa-step__num { counter-increment: step; font-family: var(--bpsa-font-heading); font-weight: var(--bpsa-fw-extra); font-size: var(--bpsa-fs-2xl); color: var(--bpsa-accent); line-height: 1; }
.bpsa-step__num::before { content: "0" counter(step); }
.bpsa-step h4 { margin: var(--bpsa-space-3) 0 var(--bpsa-space-2); }
.bpsa-step p { color: var(--bpsa-text-muted); font-size: var(--bpsa-fs-sm); margin: 0; }
.bpsa-step:not(:last-child)::after { content: ""; position: absolute; right: -18px; top: 50%; width: 24px; height: 2px; background: var(--bpsa-border-strong); display: none; }
@media (min-width: 881px){ .bpsa-step:not(:last-child)::after { display: block; } }

/* ---------- Industries grid ---------- */
.bpsa-industry-tile { display: flex; align-items: center; gap: var(--bpsa-space-4); padding: var(--bpsa-space-5); background: var(--bpsa-surface); border: 1px solid var(--bpsa-border); border-radius: var(--bpsa-radius); transition: all var(--bpsa-dur) var(--bpsa-ease); }
.bpsa-industry-tile:hover { border-color: var(--bpsa-accent); transform: translateY(-3px); box-shadow: var(--bpsa-shadow-sm); }
.bpsa-industry-tile__icon { width: 48px; height: 48px; border-radius: 12px; flex: none; display: grid; place-items: center; background: var(--bpsa-blue-light); color: var(--bpsa-blue-primary); }
.bpsa-industry-tile__icon svg { width: 24px; height: 24px; }
.bpsa-industry-tile h4 { margin: 0; font-size: var(--bpsa-fs-base); color: var(--bpsa-heading); }
.bpsa-industry-tile small { color: var(--bpsa-text-muted); }

/* ---------- Testimonials ---------- */
.bpsa-testimonial { background: var(--bpsa-surface); border: 1px solid var(--bpsa-border); border-radius: var(--bpsa-radius-lg); padding: var(--bpsa-space-6); height: 100%; display: flex; flex-direction: column; gap: var(--bpsa-space-4); position: relative; }
.bpsa-testimonial::before { content: "\201C"; position: absolute; top: 8px; right: 24px; font-family: Georgia, serif; font-size: 5rem; line-height: 1; color: var(--bpsa-blue-light); }
[data-theme="dark"] .bpsa-testimonial::before { color: var(--bpsa-border); }
.bpsa-testimonial__stars { color: #F5A623; letter-spacing: 2px; }
.bpsa-testimonial__quote { font-size: var(--bpsa-fs-lg); color: var(--bpsa-text); line-height: var(--bpsa-lh-snug); }
.bpsa-testimonial__author { margin-top: auto; display: flex; align-items: center; gap: var(--bpsa-space-3); }
.bpsa-testimonial__avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex: none; background: var(--bpsa-blue-light); display: grid; place-items: center; color: var(--bpsa-blue-primary); font-family: var(--bpsa-font-heading); font-weight: var(--bpsa-fw-bold); }
.bpsa-testimonial__name { font-family: var(--bpsa-font-heading); font-weight: var(--bpsa-fw-bold); color: var(--bpsa-heading); }
.bpsa-testimonial__role { font-size: var(--bpsa-fs-sm); color: var(--bpsa-text-muted); }

/* Logo strip */
.bpsa-logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--bpsa-space-7); opacity: 0.75; }
.bpsa-logos__item { font-family: var(--bpsa-font-display); font-weight: var(--bpsa-fw-bold); font-size: var(--bpsa-fs-lg); letter-spacing: 0.04em; color: var(--bpsa-text-muted); display: inline-flex; align-items: center; gap: 0.5rem; filter: grayscale(1); transition: all var(--bpsa-dur) var(--bpsa-ease); }
.bpsa-logos__item:hover { filter: grayscale(0); color: var(--bpsa-blue-primary); opacity: 1; }

/* ---------- Case study cards ---------- */
.bpsa-case { background: var(--bpsa-surface); border: 1px solid var(--bpsa-border); border-radius: var(--bpsa-radius-lg); overflow: hidden; display: flex; flex-direction: column; height: 100%; transition: all var(--bpsa-dur) var(--bpsa-ease); }
.bpsa-case:hover { transform: translateY(-6px); box-shadow: var(--bpsa-shadow); }
.bpsa-case__media { aspect-ratio: 16/9; background: var(--bpsa-gradient-hero); position: relative; overflow: hidden; }
.bpsa-case__media img { width: 100%; height: 100%; object-fit: cover; }
.bpsa-case__raised { position: absolute; bottom: 0; left: 0; right: 0; padding: var(--bpsa-space-5); background: linear-gradient(transparent, rgba(0,17,46,0.85)); color: #fff; }
.bpsa-case__raised b { font-family: var(--bpsa-font-heading); font-size: var(--bpsa-fs-2xl); display: block; line-height: 1; color: #fff; }
.bpsa-case__raised small { color: rgba(255,255,255,0.85); }
.bpsa-case__body { padding: var(--bpsa-space-5); display: flex; flex-direction: column; gap: var(--bpsa-space-3); flex: 1; }
.bpsa-case__metrics { display: flex; gap: var(--bpsa-space-5); padding-top: var(--bpsa-space-3); border-top: 1px solid var(--bpsa-border); margin-top: auto; }
.bpsa-case__metric b { display: block; font-family: var(--bpsa-font-heading); color: var(--bpsa-heading); font-size: var(--bpsa-fs-lg); }
.bpsa-case__metric small { color: var(--bpsa-text-muted); font-size: var(--bpsa-fs-xs); }

/* ---------- Filters / toolbar ---------- */
.bpsa-toolbar { display: flex; flex-wrap: wrap; gap: var(--bpsa-space-4); align-items: center; justify-content: space-between; padding: var(--bpsa-space-4); background: var(--bpsa-surface); border: 1px solid var(--bpsa-border); border-radius: var(--bpsa-radius-lg); margin-bottom: var(--bpsa-space-6); }
.bpsa-filter-group { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.bpsa-filter-chip { font-family: var(--bpsa-font-heading); font-weight: var(--bpsa-fw-semibold); font-size: var(--bpsa-fs-sm); padding: 0.5rem 1rem; border-radius: var(--bpsa-radius-pill); border: 1px solid var(--bpsa-border); background: transparent; color: var(--bpsa-text); cursor: pointer; transition: all var(--bpsa-dur-fast) var(--bpsa-ease); }
.bpsa-filter-chip:hover { border-color: var(--bpsa-accent); color: var(--bpsa-accent); }
.bpsa-filter-chip.is-active { background: var(--bpsa-blue-primary); border-color: var(--bpsa-blue-primary); color: #fff; }
.bpsa-search-inline { display: flex; align-items: center; gap: 0.5rem; background: var(--bpsa-bg-alt); border: 1px solid var(--bpsa-border); border-radius: var(--bpsa-radius-pill); padding: 0.4rem 0.4rem 0.4rem 1rem; }
.bpsa-search-inline input { border: 0; background: transparent; color: var(--bpsa-text); min-width: 200px; font-family: var(--bpsa-font-body); }
.bpsa-search-inline input:focus { outline: none; }
.bpsa-search-inline button { border: 0; }

.bpsa-empty { text-align: center; padding: var(--bpsa-space-9) var(--bpsa-space-5); color: var(--bpsa-text-muted); }
.bpsa-empty svg { width: 64px; height: 64px; opacity: 0.4; margin-bottom: var(--bpsa-space-4); }

/* ---------- Pagination ---------- */
.bpsa-pagination { display: flex; justify-content: center; gap: 0.4rem; margin-top: var(--bpsa-space-8); flex-wrap: wrap; }
.bpsa-pagination .page-numbers { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 0.5rem; border-radius: var(--bpsa-radius-sm); border: 1px solid var(--bpsa-border); color: var(--bpsa-text); font-family: var(--bpsa-font-heading); font-weight: var(--bpsa-fw-semibold); }
.bpsa-pagination .page-numbers:hover { border-color: var(--bpsa-accent); color: var(--bpsa-accent); }
.bpsa-pagination .page-numbers.current { background: var(--bpsa-blue-primary); border-color: var(--bpsa-blue-primary); color: #fff; }

/* ---------- Blog / single ---------- */
.bpsa-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--bpsa-space-8); align-items: start; }
.bpsa-layout--reverse { grid-template-columns: 320px minmax(0, 1fr); }
@media (max-width: 980px){ .bpsa-layout, .bpsa-layout--reverse { grid-template-columns: 1fr; } }

.bpsa-article { background: var(--bpsa-surface); border: 1px solid var(--bpsa-border); border-radius: var(--bpsa-radius-lg); overflow: hidden; }
.bpsa-article__hero img { width: 100%; aspect-ratio: 16/7; object-fit: cover; }
.bpsa-article__inner { padding: var(--bpsa-space-7); }
.bpsa-prose { max-width: 72ch; }
.bpsa-prose > * + * { margin-top: var(--bpsa-space-4); }
.bpsa-prose h2 { margin-top: var(--bpsa-space-6); font-size: var(--bpsa-fs-2xl); }
.bpsa-prose h3 { margin-top: var(--bpsa-space-5); }
.bpsa-prose img { border-radius: var(--bpsa-radius); margin-block: var(--bpsa-space-5); }
.bpsa-prose ul, .bpsa-prose ol { margin-top: var(--bpsa-space-3); }
.bpsa-prose li { margin-bottom: 0.5rem; }
.bpsa-prose a { text-decoration: underline; text-underline-offset: 3px; }

.bpsa-postmeta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bpsa-space-4); color: var(--bpsa-text-muted); font-size: var(--bpsa-fs-sm); margin-bottom: var(--bpsa-space-5); }
.bpsa-postmeta__author { display: flex; align-items: center; gap: 0.6rem; }
.bpsa-postmeta__author img { width: 36px; height: 36px; border-radius: 50%; }

.bpsa-author-box { display: flex; gap: var(--bpsa-space-5); padding: var(--bpsa-space-6); background: var(--bpsa-bg-alt); border-radius: var(--bpsa-radius-lg); margin-top: var(--bpsa-space-7); }
.bpsa-author-box img { width: 80px; height: 80px; border-radius: 50%; flex: none; }
.bpsa-author-box h4 { margin: 0 0 0.3rem; }
.bpsa-author-box p { margin: 0; color: var(--bpsa-text-muted); }

.bpsa-share { display: flex; gap: 0.5rem; align-items: center; margin-top: var(--bpsa-space-6); }
.bpsa-share span { font-family: var(--bpsa-font-heading); font-weight: var(--bpsa-fw-semibold); font-size: var(--bpsa-fs-sm); }

/* ---------- Sidebar widgets ---------- */
.bpsa-sidebar .widget { background: var(--bpsa-surface); border: 1px solid var(--bpsa-border); border-radius: var(--bpsa-radius-lg); padding: var(--bpsa-space-5); margin-bottom: var(--bpsa-space-5); }
.bpsa-sidebar .widget-title { font-family: var(--bpsa-font-heading); font-size: var(--bpsa-fs-lg); margin-bottom: var(--bpsa-space-4); padding-bottom: var(--bpsa-space-3); border-bottom: 2px solid var(--bpsa-blue-light); }
.bpsa-sidebar ul { list-style: none; padding: 0; margin: 0; }
.bpsa-sidebar li { padding: 0.5rem 0; border-bottom: 1px solid var(--bpsa-border); }
.bpsa-sidebar li:last-child { border-bottom: 0; }
.bpsa-widget-cta { background: var(--bpsa-gradient-hero); color: #fff; text-align: center; }
.bpsa-widget-cta h4, .bpsa-widget-cta p { color: #fff; }
.bpsa-widget-cta p { color: rgba(255,255,255,0.85); font-size: var(--bpsa-fs-sm); }

/* ---------- Forms ---------- */
.bpsa-form { display: grid; gap: var(--bpsa-space-4); }
.bpsa-form .row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--bpsa-space-4); }
@media (max-width: 540px){ .bpsa-form .row-2 { grid-template-columns: 1fr; } }
.bpsa-field label { display: block; font-family: var(--bpsa-font-heading); font-weight: var(--bpsa-fw-semibold); font-size: var(--bpsa-fs-sm); margin-bottom: 0.4rem; color: var(--bpsa-heading); }
.bpsa-field input, .bpsa-field select, .bpsa-field textarea, .search-field, input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="tel"], input[type="number"], textarea, select {
  width: 100%; padding: 0.85rem 1rem; font-family: var(--bpsa-font-body); font-size: var(--bpsa-fs-base);
  color: var(--bpsa-text); background: var(--bpsa-bg); border: 1px solid var(--bpsa-border-strong); border-radius: var(--bpsa-radius); transition: border-color var(--bpsa-dur-fast) var(--bpsa-ease), box-shadow var(--bpsa-dur-fast) var(--bpsa-ease);
}
.bpsa-field input:focus, .bpsa-field textarea:focus, .bpsa-field select:focus, textarea:focus, input:focus { outline: none; border-color: var(--bpsa-accent); box-shadow: 0 0 0 4px rgba(0,145,218,0.15); }
.bpsa-field textarea { min-height: 140px; resize: vertical; }

/* ---------- CTA band ---------- */
.bpsa-cta-band { position: relative; background: var(--bpsa-gradient-hero); color: #fff; border-radius: var(--bpsa-radius-xl); padding: var(--bpsa-space-8); overflow: hidden; isolation: isolate; text-align: center; }
.bpsa-cta-band::before { content:""; position:absolute; inset:0; z-index:-1; background-image: linear-gradient(rgba(255,255,255,0.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.06) 1px,transparent 1px); background-size: 44px 44px; mask-image: radial-gradient(ellipse 60% 80% at 50% 0%, #000, transparent 70%); }
.bpsa-cta-band h2 { color: #fff; max-width: 22ch; margin-inline: auto; }
.bpsa-cta-band p { color: rgba(255,255,255,0.86); max-width: 52ch; margin-inline: auto; font-size: var(--bpsa-fs-lg); }
.bpsa-cta-band__actions { display: flex; gap: var(--bpsa-space-3); justify-content: center; flex-wrap: wrap; margin-top: var(--bpsa-space-5); }

/* ---------- FAQ accordion ---------- */
.bpsa-faq { display: grid; gap: var(--bpsa-space-3); }
.bpsa-faq__item { background: var(--bpsa-surface); border: 1px solid var(--bpsa-border); border-radius: var(--bpsa-radius); overflow: hidden; }
.bpsa-faq__q { width: 100%; text-align: left; background: none; border: 0; cursor: pointer; padding: var(--bpsa-space-5); font-family: var(--bpsa-font-heading); font-weight: var(--bpsa-fw-bold); font-size: var(--bpsa-fs-lg); color: var(--bpsa-heading); display: flex; justify-content: space-between; align-items: center; gap: var(--bpsa-space-4); }
.bpsa-faq__q .sign { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--bpsa-blue-light); color: var(--bpsa-blue-primary); display: grid; place-items: center; transition: transform var(--bpsa-dur-fast) var(--bpsa-ease); font-size: 1.2rem; }
.bpsa-faq__item[open] .bpsa-faq__q .sign { transform: rotate(45deg); }
.bpsa-faq__a { padding: 0 var(--bpsa-space-5) var(--bpsa-space-5); color: var(--bpsa-text-muted); }

/* ---------- Value / feature list ---------- */
.bpsa-feature { display: flex; gap: var(--bpsa-space-4); }
.bpsa-feature__icon { flex: none; width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; background: var(--bpsa-blue-light); color: var(--bpsa-blue-primary); }
.bpsa-feature__icon svg { width: 24px; height: 24px; }
.bpsa-feature h4 { margin: 0 0 0.3rem; }
.bpsa-feature p { margin: 0; color: var(--bpsa-text-muted); font-size: var(--bpsa-fs-sm); }
.bpsa-check-list { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--bpsa-space-3); }
.bpsa-check-list li { display: flex; gap: 0.6rem; align-items: flex-start; }
.bpsa-check-list li::before { content: ""; flex: none; width: 22px; height: 22px; border-radius: 50%; margin-top: 2px; background: var(--bpsa-success) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 14px no-repeat; }

/* ---------- Split / media + text ---------- */
.bpsa-split { display: grid; grid-template-columns: 1fr 1fr; gap: var(--bpsa-space-8); align-items: center; }
.bpsa-split--narrow-media { grid-template-columns: 1.15fr 0.85fr; }
.bpsa-split__media img { border-radius: var(--bpsa-radius-lg); box-shadow: var(--bpsa-shadow); width: 100%; }
@media (max-width: 880px){ .bpsa-split, .bpsa-split--narrow-media { grid-template-columns: 1fr; } }

/* ---------- WooCommerce niceties ---------- */
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { background: var(--bpsa-surface); border: 1px solid var(--bpsa-border); border-radius: var(--bpsa-radius-lg); padding: var(--bpsa-space-4); transition: all var(--bpsa-dur) var(--bpsa-ease); }
.woocommerce ul.products li.product:hover { transform: translateY(-5px); box-shadow: var(--bpsa-shadow); }
.woocommerce span.price, .woocommerce-page span.price { color: var(--bpsa-heading); font-family: var(--bpsa-font-heading); font-weight: var(--bpsa-fw-bold); }
.woocommerce #respond input#submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce a.button.alt, .woocommerce button.button.alt {
  background: var(--bpsa-blue-primary); color: #fff; border-radius: var(--bpsa-radius-pill); font-family: var(--bpsa-font-heading); font-weight: var(--bpsa-fw-bold); padding: 0.7rem 1.4rem;
}
.woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--bpsa-blue-secondary); }

/* ---------- Comments ---------- */
.bpsa-comments { margin-top: var(--bpsa-space-7); }
.bpsa-comments .comment-list { list-style: none; padding: 0; }
.bpsa-comments .comment-body { background: var(--bpsa-bg-alt); padding: var(--bpsa-space-5); border-radius: var(--bpsa-radius); margin-bottom: var(--bpsa-space-4); }
.bpsa-comments .comment-author .fn { font-family: var(--bpsa-font-heading); font-weight: var(--bpsa-fw-bold); }

/* Utilities */
.bpsa-mt-0{margin-top:0}.bpsa-mb-0{margin-bottom:0}.text-center{text-align:center}
.bpsa-flex{display:flex}.bpsa-gap-3{gap:var(--bpsa-space-3)}.bpsa-gap-4{gap:var(--bpsa-space-4)}
.bpsa-wrap{flex-wrap:wrap}.bpsa-items-center{align-items:center}.bpsa-justify-center{justify-content:center}
.bpsa-mt-5{margin-top:var(--bpsa-space-5)}.bpsa-mt-6{margin-top:var(--bpsa-space-6)}.bpsa-mt-7{margin-top:var(--bpsa-space-7)}

/* FAQ open-state via aria-expanded (JS-driven, accessible) */
.bpsa-faq__q[aria-expanded="true"] .sign { transform: rotate(45deg); }
.bpsa-logos__item { font-family: var(--bpsa-font-heading); font-weight: var(--bpsa-fw-bold); font-size: 1.1rem; letter-spacing: .02em; color: var(--bpsa-text-muted); opacity: .75; }

/* Fact list — icon rows without the check-list ::before marker */
.bpsa-fact-list { list-style: none; padding: 0; margin: 0 0 var(--bpsa-space-5); display: grid; gap: var(--bpsa-space-3); }
.bpsa-fact-list li { display: flex; gap: 0.6rem; align-items: center; font-size: var(--bpsa-fs-sm); }
.bpsa-fact-list li svg { flex: none; color: var(--bpsa-blue-secondary); }
.bpsa-plan-facts__price { font-family: var(--bpsa-font-heading); font-weight: var(--bpsa-fw-extra); font-size: var(--bpsa-fs-2xl); color: var(--bpsa-blue-primary); margin: 0 0 var(--bpsa-space-4); }

/* ---------------------------------------------------------------------------
 * Form status, loading button, detailed service cards, comments
 * ------------------------------------------------------------------------- */
.bpsa-form__status { font-size: var(--bpsa-fs-sm); font-weight: var(--bpsa-fw-semibold); }
.bpsa-form__status.is-success { color: var(--bpsa-success); }
.bpsa-form__status.is-error { color: var(--bpsa-danger, #c0392b); }

.bpsa-btn.is-loading { position: relative; color: transparent !important; pointer-events: none; }
.bpsa-btn.is-loading::after { content: ""; position: absolute; inset: 0; margin: auto; width: 18px; height: 18px; border: 2px solid rgba(255,255,255,0.5); border-top-color: #fff; border-radius: 50%; animation: bpsaSpin 0.7s linear infinite; }
@keyframes bpsaSpin { to { transform: rotate(360deg); } }

/* Detailed service card (services page) */
.bpsa-service--detailed { display: flex; flex-direction: column; }
.bpsa-service--detailed .bpsa-check-list { margin-bottom: var(--bpsa-space-5); }
.bpsa-service__foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: var(--bpsa-space-4); padding-top: var(--bpsa-space-4); border-top: 1px solid var(--bpsa-border); }

/* Compact inline search (plan library toolbar) */
.bpsa-search-inline--compact { flex: 1; min-width: 220px; }

/* Comments */
.bpsa-comments__title { font-size: var(--bpsa-fs-2xl); margin-bottom: var(--bpsa-space-5); }
.bpsa-comments__list { list-style: none; padding: 0; margin: 0 0 var(--bpsa-space-6); }
.bpsa-comments__list .children { list-style: none; padding-left: var(--bpsa-space-5); }
.bpsa-comments__list .comment { padding: var(--bpsa-space-4) 0; border-bottom: 1px solid var(--bpsa-border); }
.bpsa-comments__list .comment-author { display: flex; align-items: center; gap: 0.6rem; font-weight: var(--bpsa-fw-bold); }
.bpsa-comments__list .comment-author img { border-radius: 50%; }
.bpsa-comments__reply-title { font-size: var(--bpsa-fs-xl); margin-bottom: var(--bpsa-space-4); }
.bpsa-comments__closed { color: var(--bpsa-text-muted); }
.bpsa-comment-form { margin-top: var(--bpsa-space-4); }

/* Page links (paginated posts) */
.bpsa-page-links { margin-top: var(--bpsa-space-5); display: flex; gap: 0.5rem; align-items: center; font-weight: var(--bpsa-fw-bold); }
.bpsa-page-links a { padding: 0.2rem 0.6rem; border: 1px solid var(--bpsa-border); border-radius: var(--bpsa-radius-sm); }
