/* ==========================================================================
   OSPL Directory — Modern lightweight UI layer
   Loaded LAST so it overrides the legacy theme. Scoped mostly to the
   homepage + shared header/footer. Uses CSS variables for easy theming.
   ========================================================================== */

:root {
  --bb-blue: #1b4f9c;
  --bb-blue-dark: #143b78;
  --bb-blue-darker: #0f2a57;
  --bb-blue-light: #2f6fd0;
  --bb-orange: #f57920;
  --bb-orange-dark: #e2680f;
  --bb-green: #1ca35a;
  --bb-ink: #1f2a3d;
  --bb-body: #3b4658;
  --bb-muted: #75808f;
  --bb-line: #e6eaf0;
  --bb-bg: #f4f6fa;
  --bb-card: #ffffff;
  --bb-radius: 12px;
  --bb-radius-sm: 8px;
  --bb-shadow: 0 1px 3px rgba(20, 40, 80, .06), 0 6px 24px rgba(20, 40, 80, .05);
  --bb-shadow-hover: 0 6px 18px rgba(20, 40, 80, .12);
  --bb-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
  --bb-head: 'Poppins', var(--bb-font);
}

/* ---------- base ---------- */
body {
  font-family: var(--bb-font);
  color: var(--bb-body);
  background: var(--bb-bg);
  font-size: 14px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 { font-family: var(--bb-head); color: var(--bb-ink); font-weight: 600; }
a { color: var(--bb-blue); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--bb-blue-light); }
img { max-width: 100%; }
.bb-muted { color: var(--bb-muted) !important; }

.container-bb { max-width: 1240px; margin: 0 auto; padding: 0 16px; width: 100%; }

/* ---------- buttons ---------- */
.btn { font-family: var(--bb-font); font-weight: 600; border-radius: var(--bb-radius-sm); transition: all .15s ease; }
.btn-primary, .btn-site { background: var(--bb-blue); border-color: var(--bb-blue); color: #fff; }
.btn-primary:hover, .btn-site:hover { background: var(--bb-blue-dark); border-color: var(--bb-blue-dark); color:#fff; }
.btn-outline-primary { color: var(--bb-blue); border-color: var(--bb-blue); }
.btn-outline-primary:hover { background: var(--bb-blue); border-color: var(--bb-blue); color:#fff; }
.btn-accent, .btn-warning.btn-post, .btn-orange { background: var(--bb-orange); border-color: var(--bb-orange); color: #fff !important; }
.btn-accent:hover, .btn-warning.btn-post:hover, .btn-orange:hover { background: var(--bb-orange-dark); border-color: var(--bb-orange-dark); color:#fff !important; }

/* ==========================================================================
   HEADER
   ========================================================================== */
#header-container, #header { background: #fff; }
#header-container { box-shadow: 0 1px 0 var(--bb-line); }

.bb-topbar {
  background: var(--bb-blue-darker);
  color: rgba(255,255,255,.85);
  font-size: 12.5px;
}
.bb-topbar a { color: rgba(255,255,255,.85); }
.bb-topbar a:hover { color: #fff; }
.bb-topbar .container-bb { display: flex; align-items: center; justify-content: space-between; height: 36px; }
.bb-topbar-links { display: flex; align-items: center; gap: 18px; }
.bb-topbar-links a { display: inline-flex; align-items: center; gap: 6px; }

.bb-mainhead .container-bb { display: flex; align-items: center; gap: 22px; height: 70px; }
.bb-mainhead #logo img { height: 38px; width: auto; }
.bb-nav { display: flex; align-items: center; gap: 4px; margin-left: 6px; }
.bb-nav > a {
  position: relative;
  padding: 10px 14px;
  color: var(--bb-ink);
  font-weight: 600;
  font-size: 14px;
  border-radius: 8px;
  display: inline-flex; align-items: center; gap: 6px;
}
.bb-nav > a:hover { background: var(--bb-bg); color: var(--bb-blue); }
/* Logical `inline-start` so the actions stick to the END of the header row:
   right edge in LTR (English) and left edge in RTL (Arabic). */
.bb-head-actions { margin-inline-start: auto; display: flex; align-items: center; gap: 10px; }
.bb-head-actions .btn { padding: 9px 18px; font-size: 13.5px; }
.bb-head-actions .bb-link-action { color: var(--bb-ink); font-weight: 600; text-decoration: none; padding: 9px 10px; }
.bb-head-actions .bb-link-action:hover { color: var(--bb-blue); }

/* language switcher */
.bb-lang-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: #fff; border: 1px solid var(--bb-line); border-radius: 8px;
  padding: 7px 12px; font-size: 13px; font-weight: 600; color: var(--bb-ink); cursor: pointer;
  transition: all .15s ease;
}
.bb-lang-btn:hover { border-color: #c4d6f2; color: var(--bb-blue); }
.bb-lang-btn i { color: var(--bb-blue); font-size: 15px; }
.bb-lang-btn.dropdown-toggle::after { margin-inline-start: 3px; opacity: .55; }
.bb-lang-menu { min-width: 180px; border-radius: 10px; border: 1px solid var(--bb-line); box-shadow: var(--bb-shadow); padding: 6px; margin-top: 6px; }
.bb-lang-menu .dropdown-item { display: flex; align-items: center; gap: 10px; border-radius: 7px; padding: 8px 10px; font-size: 13.5px; font-weight: 500; color: var(--bb-body); }
.bb-lang-menu .dropdown-item:hover { background: var(--bb-bg); color: var(--bb-blue); }
.bb-lang-menu .dropdown-item.active { background: #eaf1fb; color: var(--bb-blue); }
.bb-lang-menu .dropdown-item .fw { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 20px; background: var(--bb-bg); border-radius: 4px; font-size: 11px; font-weight: 700; color: var(--bb-muted); }
.bb-lang-menu .dropdown-item.active .fw { background: var(--bb-blue); color: #fff; }
.bb-lang-menu .dropdown-item .bi-check2 { margin-left: auto; color: var(--bb-green); font-size: 16px; }

/* collapse the mobile-nav source (#navigation) so it adds no empty space on desktop */
@media (min-width: 992px) { #header-container #navigation { display: none; } }

/* Header dropdown (Products/Suppliers/More) */
.bb-drop { position: relative; }
.bb-drop-menu {
  position: absolute; top: 100%; left: 0; min-width: 220px;
  background: #fff; border: 1px solid var(--bb-line); border-radius: 10px;
  box-shadow: var(--bb-shadow); padding: 8px; z-index: 1200;
  opacity: 0; visibility: hidden; transform: translateY(6px); transition: all .15s ease;
}
.bb-drop:hover .bb-drop-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.bb-drop-menu a { display: block; padding: 9px 12px; border-radius: 7px; color: var(--bb-body); font-weight: 500; }
.bb-drop-menu a:hover { background: var(--bb-bg); color: var(--bb-blue); }

/* header search: hidden by default (search lives in the hero / page filters),
   revealed as a compact sticky search when the header clones on scroll */
#header_form { display: none; }
.cloned #header_form { display: flex; align-items: center; }
.cloned .bb-mainhead .bb-nav { display: none; }
#header_form .search-bar, #header_form .input-group { width: 100%; }

/* user avatar menu reuse */
.header-notifications-dropdown { border-radius: 10px; box-shadow: var(--bb-shadow); }

/* ==========================================================================
   HERO
   ========================================================================== */
.intro-banner {
  position: relative;
  background: linear-gradient(120deg, #15356b 0%, #1b4f9c 55%, #2160b6 100%);
  background-size: cover; background-position: center;
  padding: 54px 0 64px;
  color: #fff;
}
/* overlay must sit ABOVE the legacy .background-image-container (z-index:10);
   darker on the LEFT (where text is), lighter on the RIGHT so the photo shows through */
#wrapper .intro-banner.dark-overlay::before {
  content: ""; position: absolute; inset: 0; z-index: 20; opacity: 1;
  background: linear-gradient(90deg, rgba(6,12,26,.96) 0%, rgba(8,16,34,.9) 32%, rgba(10,20,42,.55) 65%, rgba(12,24,48,.3) 100%);
}
/* content above overlay and bg container */
.intro-banner > .container-lg, .intro-banner > .container-bb { position: relative; z-index: 100; width: 100%; }
.banner-headline { margin-bottom: 26px; }
.banner-headline h1 {
  color: #fff; font-weight: 800; font-size: 46px; line-height: 1.12; margin-bottom: 14px;
  letter-spacing: -.5px;
}
.banner-headline h1 .accent { color: var(--bb-orange) !important; -webkit-text-fill-color: var(--bb-orange) !important; background: none !important; display: inline-block; }
.banner-headline p { color: rgba(255,255,255,.85); font-size: 16px; margin: 0; }

/* hero search */
.bb-hero-search {
  background: #fff; border-radius: 10px; padding: 6px;
  display: flex; align-items: center; gap: 6px;
  box-shadow: 0 14px 40px rgba(8, 22, 50, .3);
  max-width: 820px; margin: 0 auto;
}
/* modern category dropdown */
.bb-hero-search .bb-cat-dd { flex: 0 0 auto; }
.bb-cat-trigger {
  display: inline-flex; align-items: center; gap: 8px;
  border: none; background: var(--bb-bg); border-radius: 8px;
  height: 46px; padding: 0 12px 0 14px; font-weight: 600; color: var(--bb-ink);
  font-size: 13.5px; cursor: pointer; width: 178px; white-space: nowrap;
}
.bb-cat-trigger:hover { background: #e9eef6; }
.bb-cat-trigger .bb-cat-ic { color: var(--bb-blue); font-size: 15px; flex-shrink: 0; }
.bb-cat-trigger .bb-cat-label { flex: 1; overflow: hidden; text-overflow: ellipsis; text-align: left; }
.bb-cat-trigger .bb-cat-caret { font-size: 11px; opacity: .6; transition: transform .15s ease; }
.bb-cat-trigger[aria-expanded="true"] .bb-cat-caret { transform: rotate(180deg); }
.bb-cat-menu {
  width: 300px; max-width: 86vw; border: 1px solid var(--bb-line); border-radius: 12px;
  box-shadow: var(--bb-shadow); padding: 8px; margin-top: 8px;
}
.bb-cat-search { position: relative; margin-bottom: 6px; }
.bb-cat-search i { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--bb-muted); font-size: 14px; }
.bb-cat-search input { width: 100%; height: 40px; border: 1px solid var(--bb-line); border-radius: 8px; padding: 0 12px 0 34px; font-size: 13.5px; outline: none; }
.bb-cat-search input:focus { border-color: var(--bb-blue-light); }
.bb-cat-list { list-style: none; margin: 0; padding: 0; max-height: 290px; overflow-y: auto; }
.bb-cat-list::-webkit-scrollbar { width: 7px; }
.bb-cat-list::-webkit-scrollbar-thumb { background: #d3dbe6; border-radius: 4px; }
.bb-cat-opt { display: flex; align-items: center; gap: 10px; padding: 9px 11px; border-radius: 8px; color: var(--bb-body); font-size: 13.5px; font-weight: 500; }
.bb-cat-opt i { color: var(--bb-muted); font-size: 14px; }
.bb-cat-opt:hover { background: var(--bb-bg); color: var(--bb-blue); }
.bb-cat-opt:hover i { color: var(--bb-blue); }
.bb-cat-opt.active { background: #eaf1fb; color: var(--bb-blue); font-weight: 600; }
.bb-cat-opt.active i { color: var(--bb-blue); }
.bb-hero-search .intro-search-field { flex: 1; position: relative; background: #fff; border-radius: 8px; display: flex; align-items: center; height: 46px; }
.bb-hero-search .form-control,
.bb-hero-search .intro-search-field .form-control {
  height: 46px; border: none !important; box-shadow: none !important; outline: none !important;
  font-size: 14.5px; background: #fff !important; padding-left: 12px; width: 100%;
}
.bb-hero-search .form-control:focus { border: none; box-shadow: none; background: #fff !important; }
.bb-hero-search .intro-search-button .btn {
  height: 46px; padding: 0 26px; font-size: 14.5px; border-radius: 8px;
  background: var(--bb-orange); border-color: var(--bb-orange); white-space: nowrap;
  display: inline-flex; align-items: center; gap: 7px;
}
.bb-hero-search .intro-search-button .btn:hover { background: var(--bb-orange-dark); border-color: var(--bb-orange-dark); }

/* search suggestions dropdown */
.search-down {
  position: absolute; top: calc(100% + 8px); left: 0; right: 0; width: 100%;
  background: #fff; border: 1px solid var(--bb-line); border-radius: 10px;
  box-shadow: var(--bb-shadow); max-height: 360px; overflow-y: auto; z-index: 1300;
}
.search-down ul { list-style: none; padding: 6px; margin: 0; }
.search-down li a { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: 8px; color: var(--bb-body); text-decoration: none; }
.search-down li a:hover { background: var(--bb-bg); }
.search-down .notification-icon { color: var(--bb-muted); flex-shrink: 0; }

/* Rich autocomplete: thumbnail + title (bolded keyword) + "by Supplier" line */
.search-down .bb-search-thumb {
  flex-shrink: 0; width: 40px; height: 40px; border-radius: 8px;
  background: var(--bb-bg); border: 1px solid var(--bb-line);
  overflow: hidden; display: inline-flex; align-items: center; justify-content: center;
}
.search-down .bb-search-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Category icons are usually transparent line-art — center them with padding instead of cover */
.search-down .bb-search-thumb-icon img { object-fit: contain; padding: 6px; background: #fff; }
.search-down .bb-search-thumb-logo { border-radius: 50%; }
.search-down .bb-search-thumb-logo img { border-radius: 50%; }

.search-down .notification-text { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.search-down .bb-search-title {
  color: var(--bb-ink); font-size: 13.5px; font-weight: 500; line-height: 1.3;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.search-down .bb-search-title b { color: var(--bb-blue); font-weight: 700; }
.search-down .bb-search-meta {
  color: var(--bb-muted); font-size: 11.5px; line-height: 1.35; margin-top: 1px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.search-down .bb-search-meta strong { color: var(--bb-body); font-weight: 600; }
.search-down li a:hover .bb-search-title { color: var(--bb-blue); }

/* hero trust strip */
.bb-trust {
  position: relative; z-index: 100;
  display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 36px;
  margin-top: 26px;
}
.bb-trust .item { display: inline-flex; align-items: center; gap: 9px; color: rgba(255,255,255,.92); font-weight: 500; font-size: 13.5px; }
.bb-trust .item i { color: #ffd27a; font-size: 18px; }

/* ==========================================================================
   SECTIONS / GENERIC
   ========================================================================== */
.section { padding: 44px 0; }
.bb-section-alt { background: #fff; }
.bb-sec-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.bb-sec-head h2 { font-size: 22px; margin: 0; font-weight: 700; }
.bb-sec-head .bb-viewall { font-size: 13.5px; font-weight: 600; color: var(--bb-blue); display: inline-flex; align-items: center; gap: 5px; }
.section-headline.text-center, .section-headline.centered { text-align: center; }
.section-headline h2, .section-headline h3 { font-size: 24px; font-weight: 700; }
.section-headline p { color: var(--bb-muted); }

/* ---------- category grid ---------- */
.bb-cat-grid { display: grid; grid-template-columns: repeat(8, 1fr); gap: 14px; }
.card-category {
  display: block; background: #fff; border: 1px solid var(--bb-line);
  border-radius: var(--bb-radius); text-align: center; padding: 18px 8px;
  transition: all .18s ease; height: 100%;
}
/* clean modern hover (override legacy cyan fill + white icon oval) */
.card-category:hover {
  background: #fff !important; border-color: #bcd3f3;
  box-shadow: 0 10px 26px rgba(20,40,80,.13); transform: translateY(-4px);
}
.card-category:hover .card-category-icon { background: transparent !important; }
.card-category:hover .card-category-icon img { transform: scale(1.1); }
.card-category:hover h5 { color: var(--bb-blue); }
.card-category .card-body { padding: 0; }
.card-category .card-category-icon {
  width: auto !important; height: 48px; margin: 0 auto 12px; background: transparent !important;
  border-radius: 0 !important; overflow: visible !important;
  display: flex; align-items: center; justify-content: center;
}
/* tint the (dark line-art) category icons to the brand blue, like the mockup */
.card-category .card-category-icon img {
  width: 42px; height: 42px; object-fit: contain;
  filter: invert(28%) sepia(64%) saturate(1486%) hue-rotate(196deg) brightness(91%) contrast(92%);
  transition: filter .15s ease, transform .18s ease;
}
.card-category .card-category-icon i { font-size: 30px; color: var(--bb-blue); }
.card-category h5 { font-size: 12.5px; margin: 0; color: var(--bb-ink); font-weight: 600; line-height: 1.3; }

/* Browse Categories: exactly 2 rows of 8 separate cards */
.bb-cat-2row { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 14px; }
.bb-cat-2row .card-category { padding: 18px 6px; min-height: 132px; display: flex; align-items: center; justify-content: center; }
.bb-cat-2row .card-category .card-body { width: 100%; }
.bb-cat-2row .card-category h5 {
  display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  white-space: normal !important; overflow: hidden; word-break: break-word; padding: 0 2px; font-size: 12px;
}
.card-category-more { background: #f1f5fb; }
.card-category-more:hover { background: #e8eff9; }

/* ---------- product cards ---------- */
.bb-grid-5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.bb-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.bb-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.bb-card {
  background: #fff; border: 1px solid var(--bb-line); border-radius: var(--bb-radius);
  overflow: hidden; transition: all .18s ease; height: 100%; display: flex; flex-direction: column;
}
.bb-card:hover { box-shadow: var(--bb-shadow-hover); transform: translateY(-3px); }
.bb-card-media { aspect-ratio: 1/1; background: var(--bb-bg); overflow: hidden; display: flex; align-items: center; justify-content: center; }
.bb-card-media img { width: 100%; height: 100%; object-fit: cover; }
.bb-card-body { padding: 12px 14px; display: flex; flex-direction: column; flex: 1; }
.bb-card-title { font-size: 13.5px; font-weight: 600; color: var(--bb-ink); margin: 0 0 6px; line-height: 1.35;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 36px; }
.bb-card-title a { color: inherit; }
.bb-card-title a:hover { color: var(--bb-blue); }
.bb-card-price { color: var(--bb-orange-dark); font-weight: 700; font-size: 15px; font-family: var(--bb-head); }
.bb-card-price small { color: var(--bb-muted); font-weight: 500; font-size: 11px; }
.bb-card-sub { font-size: 12px; color: var(--bb-muted); margin: 2px 0 10px;
  display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.bb-card-foot { margin-top: auto; }
.bb-card-foot .btn { width: 100%; padding: 8px; font-size: 13px; }

/* ---------- supplier cards ---------- */
.bb-supplier {
  background: #fff; border: 1px solid var(--bb-line); border-radius: var(--bb-radius);
  padding: 16px; transition: all .18s ease; height: 100%;
}
.bb-supplier:hover { box-shadow: var(--bb-shadow-hover); transform: translateY(-2px); }
.bb-supplier-top { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; }
.bb-supplier-logo { width: 54px; height: 54px; border-radius: 10px; border: 1px solid var(--bb-line); object-fit: cover; background:#fff; flex-shrink: 0; }
.bb-supplier h4 { font-size: 14.5px; margin: 0 0 3px; font-weight: 600; }
.bb-supplier h4 a { color: var(--bb-ink); }
.bb-badge-verified { display: inline-flex; align-items: center; gap: 4px; color: var(--bb-green); font-size: 11.5px; font-weight: 600; }
.bb-supplier-meta { font-size: 12.5px; color: var(--bb-muted); margin-bottom: 12px; }
.bb-supplier-meta li { display: flex; align-items: center; gap: 7px; margin-bottom: 4px; list-style: none; }
.bb-supplier-meta i { color: var(--bb-blue); }
.bb-supplier .btn { padding: 7px; font-size: 13px; }

/* ---------- stats strip ---------- */
.bb-stats { background: var(--bb-blue); border-radius: 16px; padding: 28px; color: #fff;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.bb-stats .item { text-align: center; }
.bb-stats .num { font-family: var(--bb-head); font-size: 30px; font-weight: 700; line-height: 1; }
.bb-stats .lbl { font-size: 13px; color: rgba(255,255,255,.8); margin-top: 6px; }

/* ---------- buy requirements ---------- */
.bb-req {
  background: #fff; border: 1px solid var(--bb-line); border-radius: var(--bb-radius);
  padding: 16px; height: 100%;
}
.bb-req h4 { font-size: 14px; margin: 0 0 6px; }
.bb-req .meta { font-size: 12px; color: var(--bb-muted); display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 10px; }
.bb-req .meta i { color: var(--bb-blue); }

/* ---------- "we connect" + requirement form ---------- */
.badge-list { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin: 18px 0 0; }
.badge-list li { text-align: center; background: var(--bb-bg); border-radius: 10px; padding: 18px 10px; }
.badge-list li img { height: 48px; width: 48px; object-fit: contain; margin-bottom: 8px; }
.badge-list li h5 { font-size: 13px; margin: 0; }
.card-subscribe { border: none; border-radius: 16px; overflow: hidden; }
.card-subscribe .card-img { height: 240px; object-fit: cover; }
.card-subscribe .card-img-overlay { background: linear-gradient(120deg, rgba(15,33,67,.9), rgba(20,59,120,.75)); display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; }
.card-subscribe .card-title { color: #fff; }
.card-subscribe .card-text { color: rgba(255,255,255,.85); max-width: 560px; }

.abcd-list { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; margin: 0; text-align: center; }
.abcd-list li > div { background: #fff; border: 1px solid var(--bb-line); border-radius: var(--bb-radius); padding: 22px 14px; height: 100%; }
.abcd-list li h5 { font-size: 14px; margin: 0; }

/* hot product ribbon */
.hot-product { background: var(--bb-blue-darker) !important; border-radius: 0; }
.hot-product .section-headline h3 { color: #fff; }
.card-sponsored { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: 10px; display: block; padding: 14px; }
.card-sponsored h5 { color: #fff; font-size: 13px; margin: 0; }
.card-sponsored:hover { background: rgba(255,255,255,.16); }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.footer-full {
  background: var(--bb-blue-darker); color: rgba(255,255,255,.72);
  padding-top: 0; margin-top: 10px;
}
.footer-full .footer-middle-section { padding: 28px 0 18px; }
.footer-full h4 { color: #fff; font-size: 15px; margin-bottom: 14px; font-weight: 600; }
.footer-full a { color: rgba(255,255,255,.72); }
.footer-full a:hover { color: #fff; }
.footer-links ul { list-style: none; padding: 0; margin: 0; }
.footer-links ul li { margin-bottom: 7px; font-size: 13.5px; }
.footer-full .social-links { list-style: none; padding: 0; display: flex; gap: 10px; margin-bottom: 16px !important; }
.footer-full .social-links a {
  width: 34px; height: 34px; border-radius: 8px; background: rgba(255,255,255,.1);
  display: flex; align-items: center; justify-content: center; font-size: 15px;
}
.footer-full .social-links a:hover { background: var(--bb-orange); color:#fff; }
.footer-full address { font-size: 13.5px; font-style: normal; margin-bottom: 0; }
.footer-full address i { color: var(--bb-orange); margin-right: 6px; }
.footer-full address p { margin-bottom: 6px !important; }
.footer-bottom-section { border-top: 1px solid rgba(255,255,255,.08); margin-top: 0; padding: 12px 0; font-size: 13px; }
.footer-bottom-section p { margin: 0; color: rgba(255,255,255,.7); }
.footer-bottom-section strong { color: #fff; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1100px) {
  .bb-cat-grid { grid-template-columns: repeat(6, 1fr); }
  .bb-grid-5 { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 991px) {
  .bb-nav, .bb-topbar { display: none; }
  .bb-mainhead .container-bb { height: 60px; gap: 14px; }
  .banner-headline h1 { font-size: 28px; }
  .bb-hero-search { flex-wrap: wrap; }
  .bb-hero-search .bb-cat-select { display: none; }
  .bb-hero-search .intro-search-field { flex: 1 1 100%; }
  .bb-hero-search .intro-search-button { flex: 1 1 100%; }
  .bb-hero-search .intro-search-button .btn { width: 100%; }
  .bb-cat-grid { grid-template-columns: repeat(4, 1fr); }
  .bb-grid-5, .bb-grid-4 { grid-template-columns: repeat(3, 1fr); }
  .bb-grid-3 { grid-template-columns: repeat(2, 1fr); }
  .badge-list, .abcd-list { grid-template-columns: repeat(2,1fr); }
  .bb-stats { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 575px) {
  .section { padding: 30px 0; }
  .bb-cat-grid { grid-template-columns: repeat(3, 1fr); gap: 10px; }
  .bb-grid-5, .bb-grid-4, .bb-grid-3 { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .banner-headline h1 { font-size: 23px; }
  .banner-headline p { font-size: 14px; }
  .bb-sec-head h2 { font-size: 18px; }
  .bb-head-actions .btn span { display: none; }
}

/* ==========================================================================
   FULL-MOCKUP SECTIONS (added)
   ========================================================================== */

/* ---- hero two-column ---- */
.bb-hero-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 36px; align-items: center; }
.bb-hero-left .banner-headline { text-align: left; }
.bb-hero-left .banner-headline h1 .accent { color: var(--bb-orange); }
.bb-hero-grid .bb-hero-search { margin: 0; max-width: none; }

/* popular searches chips */
.bb-popular { margin-top: 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; position: relative; z-index: 100; }
.bb-popular .lbl { color: rgba(255,255,255,.75); font-size: 13px; margin-right: 2px; }
.bb-popular a { color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.32); padding: 5px 14px; border-radius: 20px; font-size: 12.5px; font-weight: 500; }
.bb-popular a:hover { background: var(--bb-orange); border-color: var(--bb-orange); color:#fff; }

/* get-quotes hero card (dark with orange border) */
.bb-quotes-card { background: rgba(7,14,28,.66); border: 1.5px solid var(--bb-orange); border-radius: 14px; padding: 26px; backdrop-filter: blur(3px); }
.bb-quotes-card h3 { color: #fff; font-size: 20px; margin: 0 0 18px; font-weight: 700; line-height: 1.25; }
.bb-quotes-card ul { list-style: none; padding: 0; margin: 0 0 20px; }
.bb-quotes-card ul li { color: rgba(255,255,255,.92); font-size: 14.5px; padding: 8px 0; display: flex; align-items: center; gap: 11px; }
.bb-quotes-card ul li i { color: var(--bb-orange); font-size: 17px; }
.bb-quotes-card .btn { width: 100%; padding: 13px; font-size: 14.5px; font-weight: 600; }

/* ---- white trust bar ---- */
.bb-trustbar { background: #fff; border-bottom: 1px solid var(--bb-line); }
.bb-trustbar .row-wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding: 16px 0; }
.bb-trustbar .item { display: inline-flex; align-items: center; gap: 10px; color: var(--bb-ink); font-weight: 600; font-size: 13.5px; flex: 1; justify-content: center; }
.bb-trustbar .item i { color: var(--bb-blue); font-size: 20px; }
.bb-trustbar .item + .item { border-left: 1px solid var(--bb-line); }

/* ---- browse categories bordered tiles ---- */
.bb-cat-grid.bb-bordered { background: #fff; border: 1px solid var(--bb-line); border-radius: var(--bb-radius); overflow: hidden; gap: 0; }
.bb-cat-grid.bb-bordered .card-category { border: none; border-right: 1px solid var(--bb-line); border-bottom: 1px solid var(--bb-line); border-radius: 0; }
.bb-cat-grid.bb-bordered .card-category:hover { background: var(--bb-bg); transform: none; box-shadow: none; }

/* ---- promo banners (premium + app) ---- */
.bb-promos { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.bb-promo { border-radius: 16px; padding: 26px 28px; color: #fff; display: flex; align-items: center; gap: 18px; min-height: 130px; }
.bb-promo-blue { background: linear-gradient(120deg, var(--bb-blue-dark), var(--bb-blue-light)); }
.bb-promo-dark { background: linear-gradient(120deg, #11203c, #1c3358); }
.bb-promo h3 { color: #fff; font-size: 19px; margin: 0 0 6px; }
.bb-promo p { color: rgba(255,255,255,.82); font-size: 13.5px; margin: 0 0 12px; }
.bb-promo .btn-accent { padding: 9px 20px; }
.bb-promo .bb-promo-body { flex: 1; }
.bb-app-badges { display: flex; gap: 10px; flex-wrap: wrap; }
.bb-app-badges img { height: 38px; width: auto; }
.bb-promo .bb-promo-icon { font-size: 46px; color: rgba(255,255,255,.85); }

/* ---- curated collections ---- */
.bb-collections { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.bb-collection { position: relative; border-radius: var(--bb-radius); overflow: hidden; height: 130px; display: flex; align-items: flex-end; padding: 16px; color: #fff; background: var(--bb-blue); }
.bb-collection.c1 { background: linear-gradient(120deg,#1b4f9c,#2f6fd0); }
.bb-collection.c2 { background: linear-gradient(120deg,#1ca35a,#37c47b); }
.bb-collection.c3 { background: linear-gradient(120deg,#e2680f,#f9a04a); }
.bb-collection.c4 { background: linear-gradient(120deg,#7a3ff2,#a06bff); }
.bb-collection h4 { color: #fff; margin: 0; font-size: 16px; position: relative; z-index: 2; }
.bb-collection .bb-collection-ic { position: absolute; right: 14px; top: 12px; font-size: 40px; opacity: .35; }

/* ---- why choose + testimonial ---- */
.bb-why-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 30px; align-items: center; }
.bb-why-items { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
.bb-why-item { text-align: center; }
.bb-why-item .ic { width: 56px; height: 56px; border-radius: 14px; background: #eaf1fb; color: var(--bb-blue); display: flex; align-items: center; justify-content: center; font-size: 24px; margin: 0 auto 10px; }
.bb-why-item h5 { font-size: 14px; margin: 0 0 4px; }
.bb-why-item p { font-size: 12px; color: var(--bb-muted); margin: 0; }
.bb-testimonial { background: var(--bb-bg); border: 1px solid var(--bb-line); border-radius: var(--bb-radius); padding: 22px; }
.bb-testimonial .quote { font-size: 14px; color: var(--bb-body); font-style: italic; margin-bottom: 14px; }
.bb-testimonial .who { display: flex; align-items: center; gap: 12px; }
.bb-testimonial .who .av { width: 42px; height: 42px; border-radius: 50%; background: var(--bb-blue); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; }
.bb-testimonial .who h6 { margin: 0; font-size: 13.5px; }
.bb-testimonial .who small { color: var(--bb-muted); }
.bb-stars { color: #f5a623; font-size: 13px; }

/* ---- newsletter strip ---- */
.bb-newsletter { background: #fff; border: 1px solid var(--bb-line); border-radius: 16px; padding: 26px 30px; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.bb-newsletter h3 { margin: 0 0 4px; font-size: 19px; }
.bb-newsletter p { margin: 0; color: var(--bb-muted); font-size: 13.5px; }
.bb-newsletter .form { display: flex; gap: 10px; flex: 1; max-width: 480px; min-width: 280px; position: relative; }
.bb-newsletter .form input { flex: 1; height: 46px; border: 1px solid var(--bb-line); border-radius: 8px; padding: 0 14px; }
.bb-newsletter .form input.is-invalid { border-color: #e74c3c; box-shadow: 0 0 0 3px rgba(231,76,60,.15); }
.bb-newsletter .form .btn { padding: 0 26px; }
.bb-newsletter-err { position: absolute; left: 2px; top: calc(100% + 4px); color: #e74c3c; font-size: 11.5px; font-weight: 600; }
.bb-newsletter-err:empty { display: none; }

/* ---- footer payment + bottom ---- */
.bb-foot-pay { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.bb-foot-pay .pay { background: #fff; color: #1a2a44; font-weight: 700; font-size: 11px; padding: 4px 9px; border-radius: 5px; letter-spacing: .3px; }
.footer-bottom-section .bb-foot-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }

/* ---- buy requirements: single row (5 cards + CTA) ---- */
.bb-req-row { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.bb-req {
  background: #fff; border: 1px solid var(--bb-line); border-radius: var(--bb-radius);
  padding: 16px 16px 14px; height: 100%; display: flex; flex-direction: column;
  transition: all .18s ease;
}
.bb-req:hover { box-shadow: var(--bb-shadow-hover); border-color: #cdddf3; }
.bb-req h4 { font-size: 13.5px; margin: 0 0 10px; color: var(--bb-ink); line-height: 1.3; }
.bb-req-qty { font-size: 13px; color: var(--bb-body); font-weight: 600; margin-bottom: 6px; }
.bb-req-loc { font-size: 12px; color: var(--bb-muted); display: flex; align-items: center; gap: 5px; margin-bottom: 10px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bb-req-loc i { color: var(--bb-blue); font-size: 12px; }
.bb-req-time { font-size: 11.5px; color: var(--bb-muted); margin-top: auto; }
/* CTA card */
.bb-req-cta {
  border: 1.5px solid var(--bb-blue-light); background: #f3f8ff; border-radius: var(--bb-radius);
  padding: 16px; display: flex; align-items: center; gap: 12px; text-align: left; height: 100%;
}
.bb-req-cta:hover { background: #e9f1fd; box-shadow: var(--bb-shadow-hover); }
.bb-req-cta-ic { width: 42px; height: 42px; flex-shrink: 0; border-radius: 10px; background: var(--bb-blue); color: #fff;
  display: flex; align-items: center; justify-content: center; font-size: 18px; }
.bb-req-cta-tx h4 { color: var(--bb-blue); margin: 0 0 2px; font-size: 14px; }
.bb-req-cta-tx span { font-size: 12px; color: var(--bb-muted); }

/* responsive for added sections */
@media (max-width: 991px) {
  .bb-hero-grid { grid-template-columns: 1fr; gap: 24px; }
  .bb-promos { grid-template-columns: 1fr; }
  .bb-collections { grid-template-columns: repeat(2,1fr); }
  .bb-why-grid { grid-template-columns: 1fr; }
  .bb-why-items { grid-template-columns: repeat(2,1fr); }
  .bb-trustbar .item { flex: 1 1 40%; }
  .bb-trustbar .item + .item { border-left: none; }
  .bb-req-row { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 575px) {
  .bb-collections { grid-template-columns: 1fr 1fr; }
  .bb-cat-grid.bb-bordered { grid-template-columns: repeat(3,1fr); }
  .bb-newsletter { flex-direction: column; align-items: flex-start; }
  .bb-req-row { grid-template-columns: repeat(2,1fr); }
}

/* ==========================================================================
   SINGLE-ROW HORIZONTAL SCROLLERS (Top Products / Featured Suppliers)
   ========================================================================== */
.bb-scroller { position: relative; }
.bb-scroll-track {
  display: flex; gap: 16px; overflow-x: auto; scroll-behavior: smooth;
  padding: 6px 2px 10px; scrollbar-width: none; scroll-snap-type: x proximity;
}
.bb-scroll-track::-webkit-scrollbar { display: none; height: 0; }
.bb-scroll-track > * { flex: 0 0 auto; scroll-snap-align: start; }
.bb-scroll-btn {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 6;
  width: 40px; height: 40px; border-radius: 50%; background: #fff;
  border: 1px solid var(--bb-line); color: var(--bb-blue); box-shadow: var(--bb-shadow);
  display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 18px;
  transition: all .15s ease;
}
.bb-scroll-btn:hover { background: var(--bb-blue); color: #fff; border-color: var(--bb-blue); }
.bb-scroll-btn.prev { left: -16px; }
.bb-scroll-btn.next { right: -16px; }

/* product card sizing + extras inside scroller */
.bb-scroll-track .bb-card { width: 244px; }
.bb-card-loc { font-size: 12px; color: var(--bb-muted); display: flex; align-items: center; gap: 5px; margin-bottom: 5px; }
.bb-card-loc i { color: var(--bb-blue); }
.bb-card-rating { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--bb-muted); margin-bottom: 12px; }
.bb-card-rating .stars { color: #f5a623; letter-spacing: 1px; }
.bb-card-btns { display: flex; gap: 8px; margin-top: auto; }
.bb-card-btns .btn { flex: 1; padding: 8px 6px; font-size: 12.5px; }

/* supplier card (centered) inside scroller */
.bb-sup-card {
  width: 236px; background: #fff; border: 1px solid var(--bb-line); border-radius: var(--bb-radius);
  padding: 22px 16px; text-align: center; transition: all .18s ease; height: 100%;
  display: flex; flex-direction: column;
}
.bb-sup-card:hover { box-shadow: var(--bb-shadow-hover); transform: translateY(-3px); }
.bb-sup-card .logo { width: 66px; height: 66px; border-radius: 14px; border: 1px solid var(--bb-line); object-fit: contain; background: #fff; margin: 0 auto 14px; padding: 5px; }
.bb-sup-card h4 { font-size: 14px; margin: 0 0 6px; line-height: 1.3; min-height: 36px; display: flex; align-items: center; justify-content: center; }
.bb-sup-card h4 a { color: var(--bb-ink); }
.bb-sup-card h4 a:hover { color: var(--bb-blue); }
.bb-sup-card .loc { font-size: 12px; color: var(--bb-muted); margin-bottom: 8px; }
.bb-sup-card .loc i { color: var(--bb-blue); }
.bb-sup-card .rating { font-size: 12.5px; color: var(--bb-muted); margin-bottom: 13px; }
.bb-sup-card .rating .stars { color: #f5a623; }
.bb-sup-card .badges { display: flex; gap: 7px; justify-content: center; flex-wrap: wrap; margin-bottom: 16px; min-height: 24px; }
.bb-sup-badge { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 600; color: var(--bb-green); background: #e8f7ee; border-radius: 20px; padding: 4px 10px; }
.bb-sup-card .btn { margin-top: auto; }

@media (max-width: 575px) {
  .bb-scroll-btn { display: none; }
  .bb-scroll-track .bb-card { width: 200px; }
  .bb-sup-card { width: 200px; }
}

/* ==========================================================================
   BROWSE BY INDUSTRY rows (dark banner + product tiles)
   ========================================================================== */
/* Industry rows group: tight 20px gap between rows, but the LAST row gets a full 44px
   bottom so the gap to the next major section stays consistent (88px). */
.bb-industry-sec { padding: 10px 0; }
.bb-industry-sec:not(:has(+ .bb-industry-sec)) { padding-bottom: 44px; }
.bb-industry { display: grid; grid-template-columns: 280px 1fr; gap: 18px; align-items: stretch; }
.bb-industry-banner {
  position: relative; border-radius: var(--bb-radius); overflow: hidden;
  min-height: 210px; display: flex; align-items: flex-end; padding: 24px;
  background-size: cover; background-position: center; color: #fff;
  background-color: var(--bb-blue-darker);
}
.bb-industry-banner::before { content: ""; position: absolute; inset: 0;
  background: linear-gradient(160deg, rgba(10,22,45,.35) 0%, rgba(8,18,38,.82) 75%, rgba(7,15,32,.92) 100%); }
.bb-industry-banner.nobg { background: linear-gradient(140deg, var(--bb-blue-dark), var(--bb-blue-light)); }
.bb-industry-banner.nobg::before { display: none; }
.bb-industry-banner-in { position: relative; z-index: 2; }
.bb-industry-banner h3 { color: #fff; font-size: 21px; margin: 0 0 6px; font-weight: 700; line-height: 1.2; }
.bb-industry-banner p { color: rgba(255,255,255,.82); font-size: 12.5px; margin: 0; }
.bb-industry-banner:hover h3 { color: #ffd9b3; }

.bb-industry-right { display: flex; flex-direction: column; min-width: 0; }
.bb-industry-head { display: flex; justify-content: flex-end; margin-bottom: 10px; }
.bb-industry-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; flex: 1; }
.bb-industry-tile { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--bb-line); border-radius: 10px; overflow: hidden; transition: all .18s ease; }
.bb-industry-tile:hover { box-shadow: var(--bb-shadow-hover); transform: translateY(-3px); border-color: #cdddf3; }
.bb-industry-tile-img { display: block; aspect-ratio: 4 / 3; background: var(--bb-bg); overflow: hidden; }
.bb-industry-tile-img img { width: 100%; height: 100%; object-fit: cover; }
.bb-industry-tile-body { padding: 9px 10px 10px; display: flex; flex-direction: column; flex: 1; }
.bb-industry-tile-body h5 {
  font-size: 12.5px; margin: 0 0 6px; color: var(--bb-ink); line-height: 1.3; font-weight: 600;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.bb-industry-tile-body h5 a { color: inherit; }
.bb-industry-tile-body h5 a:hover { color: var(--bb-blue); }
.bb-industry-sublinks { list-style: none; margin: 0; padding: 0; }
.bb-industry-sublinks li { margin-bottom: 3px; }
.bb-industry-sublinks li a {
  display: block; font-size: 11.5px; color: var(--bb-muted); line-height: 1.4;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.bb-industry-sublinks li a:hover { color: var(--bb-blue); }
@media (max-width: 991px) {
  .bb-industry { grid-template-columns: 1fr; gap: 14px; }
  .bb-industry-banner { min-height: 120px; }
  .bb-industry-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 575px) {
  .bb-industry-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ==========================================================================
   "Category You May Like" cards (.bb-fcat) + "Products You May Like" cleanup
   ========================================================================== */
/* single-row horizontal pills — scrollbar hidden, subtle right-edge fade hints at overflow */
.bb-fcat-wrap { position: relative; }
.bb-fcat-wrap::after {
  content: ""; position: absolute; right: 0; top: 0; bottom: 0; width: 60px;
  background: linear-gradient(90deg, rgba(255,255,255,0), var(--bb-bg));
  pointer-events: none; z-index: 2;
}
/* prev/next arrow buttons in the section header */
.bb-fcat-nav { display: flex; gap: 8px; }
.bb-fcat-arrow {
  width: 36px; height: 36px; border-radius: 50%;
  background: #fff; border: 1px solid var(--bb-line); color: var(--bb-blue);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 16px; cursor: pointer; transition: all .15s ease;
}
.bb-fcat-arrow:hover { background: var(--bb-blue); border-color: var(--bb-blue); color: #fff; }
.bb-fcat-arrow:disabled { opacity: .35; cursor: not-allowed; }
.bb-fcat-arrow:disabled:hover { background: #fff; color: var(--bb-blue); border-color: var(--bb-line); }
.bb-fcat-grid {
  display: flex; flex-wrap: nowrap; gap: 12px;
  overflow-x: auto; overflow-y: hidden; padding: 4px 60px 4px 2px;
  scrollbar-width: none; -ms-overflow-style: none;
  scroll-snap-type: x proximity; scroll-behavior: smooth;
}
.bb-fcat-grid::-webkit-scrollbar { display: none; height: 0; width: 0; }
.bb-fcat { scroll-snap-align: start; }
.bb-fcat {
  flex: 0 0 auto; min-width: 220px;
  background: #fff; border: 1px solid var(--bb-line); border-radius: 999px;
  padding: 8px 14px 8px 8px; transition: all .18s ease;
  display: flex; align-items: center; gap: 12px;
}
.bb-fcat:hover { box-shadow: var(--bb-shadow-hover); border-color: #cdddf3; }
.bb-fcat-img {
  width: 44px; height: 44px; flex-shrink: 0; border-radius: 50%; background: var(--bb-bg);
  display: flex; align-items: center; justify-content: center;
}
.bb-fcat-img img { max-width: 28px; max-height: 28px; object-fit: contain; }
.bb-fcat h5 {
  font-size: 13px; margin: 0; color: var(--bb-ink); line-height: 1.3; font-weight: 600;
  flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.bb-fcat h5 a { color: inherit; }
.bb-fcat h5 a:hover { color: var(--bb-blue); }
.bb-fcat .btn {
  margin: 0; padding: 5px 12px; font-size: 11.5px; border-radius: 999px;
  flex-shrink: 0; line-height: 1.2;
}

/* suggested products: Top Products-style slider items (see .bb-scroll-track .bb-card) */
/* per-card image carousel inside .bb-card-media */
.bb-card-media .bb-card-carousel,
.bb-card-media .bb-card-carousel .carousel-inner,
.bb-card-media .bb-card-carousel .carousel-item,
.bb-card-media .bb-card-carousel .carousel-item img { width: 100%; height: 100%; }
.bb-card-media .bb-card-carousel { position: relative; }
.bb-card-media .bb-card-carousel .carousel-item img { object-fit: cover; }
/* high-contrast dots, visible on light OR dark product images */
.bb-card-media .carousel-indicators {
  position: absolute; left: 0; right: 0; bottom: 7px; top: auto; margin: 0;
  display: flex; justify-content: center; gap: 5px; z-index: 4;
}
.bb-card-media .carousel-indicators [data-bs-target] {
  box-sizing: border-box; width: 7px; height: 7px; border-radius: 50%;
  border: 1.5px solid #fff; background: rgba(31,42,61,.5); opacity: 1; margin: 0;
  box-shadow: 0 1px 2px rgba(0,0,0,.3); text-indent: 0; transition: all .15s ease;
}
.bb-card-media .carousel-indicators [data-bs-target].active { background: var(--bb-orange); width: 18px; border-radius: 5px; }

/* clickable "Get Latest Price" */
.bb-card-price-link a { color: var(--bb-orange-dark); font-weight: 700; }
.bb-card-price-link a:hover { text-decoration: underline; color: var(--bb-orange); }

/* .bb-fcat-grid is a flex row that auto-scrolls horizontally — no breakpoint overrides needed */

/* ==========================================================================
   "We connect Buyers & Sellers" + requirement form
   ========================================================================== */
.bb-connect { display: grid; grid-template-columns: 1.05fr 1fr; gap: 26px; align-items: stretch; }
.bb-connect-left {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 16px; padding: 32px;
  display: flex; flex-direction: column;
}
.bb-connect-left h2 { font-size: 26px; font-weight: 700; margin: 0 0 10px; }
.bb-connect-left > p { color: var(--bb-muted); font-size: 14px; margin: 0 0 26px; max-width: 460px; }
.bb-connect-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: auto; }
.bb-cf-item { text-align: center; }
.bb-cf-item .ic {
  width: 64px; height: 64px; margin: 0 auto 12px; border-radius: 50%;
  background: linear-gradient(135deg, #eaf3ff, #d4e7ff); color: var(--bb-blue);
  display: flex; align-items: center; justify-content: center; font-size: 26px;
}
.bb-cf-item h5 { font-size: 13.5px; margin: 0; font-weight: 600; color: var(--bb-ink); }

.bb-connect-form {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 16px; padding: 30px 32px;
  box-shadow: var(--bb-shadow);
}
.bb-connect-form h3 { font-size: 22px; font-weight: 700; margin: 0 0 4px; }
.bb-connect-form .bb-cf-sub { color: var(--bb-muted); font-size: 13.5px; margin: 0 0 20px; }
.bb-connect-form .bb-field { margin-bottom: 14px; }
.bb-connect-form .form-control,
.bb-connect-form .form-select { height: 50px; border: 1px solid var(--bb-line); border-radius: 10px; font-size: 14px; padding: 0 14px; }
.bb-connect-form .form-control:focus,
.bb-connect-form .form-select:focus { border-color: var(--bb-blue-light); box-shadow: 0 0 0 3px rgba(47,111,208,.12); }
.bb-connect-form .input-group .form-select { border-top-right-radius: 0; border-bottom-right-radius: 0; border-right: 0; }
.bb-connect-form .input-group .form-control { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.bb-connect-form .btn { height: 50px; font-size: 15px; border-radius: 10px; }
.bb-connect-form .search-down { z-index: 1400; }

@media (max-width: 991px) {
  .bb-connect { grid-template-columns: 1fr; }
}
@media (max-width: 575px) {
  .bb-connect-left, .bb-connect-form { padding: 22px; }
  .bb-connect-features { gap: 10px; }
  .bb-cf-item .ic { width: 54px; height: 54px; font-size: 22px; }
}

/* Contact CTA (right side of "We connect" section) — opens requirement popup */
.bb-connect-cta {
  background: linear-gradient(135deg, var(--bb-blue-dark), var(--bb-blue-light));
  border-radius: 16px; padding: 34px 28px; color: #fff; text-align: center;
  display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%;
}
.bb-connect-cta-ic { width: 66px; height: 66px; border-radius: 50%; background: rgba(255,255,255,.16); display: flex; align-items: center; justify-content: center; font-size: 28px; margin-bottom: 16px; }
.bb-connect-cta h3 { color: #fff; font-size: 20px; margin: 0 0 8px; font-weight: 700; }
.bb-connect-cta p { color: rgba(255,255,255,.85); font-size: 13.5px; margin: 0 0 22px; max-width: 300px; }
.bb-connect-cta .btn { background: #fff; color: var(--bb-blue); border-color: #fff; padding: 11px 30px; font-weight: 600; }
.bb-connect-cta .btn:hover { background: var(--bb-orange); border-color: var(--bb-orange); color: #fff; }
/* ==========================================================================
   UNIFIED MODAL STYLE — applies to every .modal on the home page
   ========================================================================== */
.modal-backdrop.show { opacity: .55; background: #0a1730; }
.modal .modal-dialog { margin: 1.75rem auto; }
.modal .modal-dialog-centered { display: flex; align-items: center; min-height: calc(100% - 3.5rem); }
.modal .modal-content {
  border: 0; border-radius: 16px; background: #fff;
  box-shadow: 0 20px 50px rgba(8, 22, 50, .25), 0 8px 20px rgba(8, 22, 50, .1);
  overflow: hidden;
}
.modal .modal-header {
  align-items: flex-start; gap: 12px; padding: 18px 22px;
  border-bottom: 1px solid var(--bb-line); background: #fff;
}
.modal .modal-header .modal-title,
.modal .modal-header h1,
.modal .modal-header h2,
.modal .modal-header h3,
.modal .modal-header h4 {
  font-family: var(--bb-head); font-size: 18px; font-weight: 700;
  color: var(--bb-ink); margin: 0; line-height: 1.3;
}
.modal .modal-header p { margin: 3px 0 0; font-size: 13px; color: var(--bb-muted); }
.modal .modal-header .btn-close,
.modal .modal-header .close {
  margin-left: auto; margin-top: 0; padding: 6px; opacity: .55;
  background-size: 12px; transition: opacity .15s ease;
}
.modal .modal-header .btn-close:hover,
.modal .modal-header .close:hover { opacity: 1; }
.modal .modal-body { padding: 22px; color: var(--bb-body); }
.modal .modal-body p { font-size: 13.5px; }
.modal .modal-footer {
  padding: 14px 22px; border-top: 1px solid var(--bb-line);
  gap: 8px; background: #fff;
}
.modal .modal-footer .btn { padding: 9px 20px; font-size: 13.5px; }

/* form-control & buttons inside any modal: consistent height + radius */
.modal .form-control,
.modal .form-select {
  height: 46px; border: 1px solid var(--bb-line); border-radius: 10px;
  font-size: 14px; padding: 0 14px;
}
.modal .form-control:focus,
.modal .form-select:focus {
  border-color: var(--bb-blue-light);
  box-shadow: 0 0 0 3px rgba(47, 111, 208, .14);
}
.modal .input-group { gap: 0; }
.modal .input-group > .form-select {
  border-top-right-radius: 0; border-bottom-right-radius: 0; border-right: 0;
}
.modal .input-group > .form-control {
  border-top-left-radius: 0; border-bottom-left-radius: 0;
}
.modal .form-floating { margin-bottom: 14px; }
.modal .form-floating > .form-control { height: 56px; padding: 1rem 14px .25rem; }
.modal .form-floating > label { padding: 1rem 14px; }
.modal .btn-primary { padding: 11px 22px; font-size: 14px; border-radius: 10px; }
.modal .text-danger { font-size: 12px; }

/* requirement popup — slightly tighter (form-heavy) */
#requirementModal .modal-body { padding-top: 18px; }
/* generic AJAX modal (open_enquiry_form spinner / inline forms) */
#myModal .modal-content.mycustom-modal { padding: 0; min-height: 200px; }
#myModal .mycustom-modal .padding-top-50 { padding: 50px 0 !important; }
/* Mobile search modal */
#mobileSearchModal .modal-body { padding: 20px 22px 24px; }
#mobileSearchModal .input-group-lg .form-control { height: 50px; border-radius: 10px 0 0 10px; }
#mobileSearchModal .input-group-lg .btn {
  height: 50px; padding: 0 18px; background: var(--bb-orange); color: #fff;
  border-color: var(--bb-orange); border-radius: 0 10px 10px 0;
}
/* Location selector modal (#searchModal in footer) */
#searchModal .stateList { list-style: none; padding: 0; margin: 16px 0 0; column-count: 2; column-gap: 14px; }
#searchModal .stateList li { break-inside: avoid; margin-bottom: 6px; }
#searchModal .stateList li a {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 8px 12px; border-radius: 8px; color: var(--bb-body); font-size: 13.5px;
}
#searchModal .stateList li a:hover { background: var(--bb-bg); color: var(--bb-blue); }

/* Bootstrap 4 legacy: .modal .close (×) — match style with bs5 btn-close */
.modal .modal-header .close {
  font-size: 22px; line-height: 1; background: transparent; border: 0;
  color: var(--bb-muted); cursor: pointer;
}
.modal .modal-header .close:hover { color: var(--bb-ink); }

@media (max-width: 575px) {
  .modal .modal-dialog { margin: 1rem; }
  .modal .modal-header { padding: 16px 18px; }
  .modal .modal-body { padding: 18px; }
  .modal .modal-footer { padding: 12px 18px; }
}

/* ==========================================================================
   PER-MODAL DESIGN (.bb-modal: shared modern shell with per-modal flavor)
   ========================================================================== */

/* shared: floating close button on every bb-modal — kept INSIDE the rounded modal */
.bb-modal .modal-content { position: relative; overflow: hidden; }
.bb-modal .bb-modal-close {
  position: absolute; top: 12px; right: 12px; z-index: 5;
  width: 30px; height: 30px; border-radius: 50%;
  background: rgba(255,255,255,.9); border: 1px solid var(--bb-line); color: var(--bb-ink);
  display: inline-flex; align-items: center; justify-content: center; font-size: 12px;
  cursor: pointer; transition: all .15s ease;
}
.bb-modal .bb-modal-close:hover { background: var(--bb-orange); color: #fff; border-color: var(--bb-orange); }

/* hero header (icon + title + subtitle), used by quote/req/location modals */
.bb-modal-hero {
  text-align: center; padding: 26px 24px 16px;
  background: linear-gradient(180deg, #f3f8ff 0%, #ffffff 100%);
  position: relative;
}
.bb-modal-hero-ic {
  width: 56px; height: 56px; border-radius: 50%;
  background: linear-gradient(135deg, var(--bb-blue), var(--bb-blue-light));
  color: #fff; display: inline-flex; align-items: center; justify-content: center;
  font-size: 24px; margin-bottom: 12px;
  box-shadow: 0 6px 16px rgba(27,79,156,.28);
}
.bb-modal-hero h3, .bb-modal-hero h4 { font-size: 20px; font-weight: 700; margin: 0 0 6px; color: var(--bb-ink); }
.bb-modal-hero p { font-size: 13px; color: var(--bb-muted); margin: 0; max-width: 380px; margin: 0 auto; }
.bb-modal-chips { list-style: none; padding: 0; margin: 14px 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.bb-modal-chips li {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11.5px; font-weight: 600; color: var(--bb-blue);
  background: #fff; border: 1px solid #d1e0f5; padding: 4px 10px; border-radius: 20px;
}
.bb-modal-chips li i { color: var(--bb-green); font-size: 12px; }

/* shared field/input refinements inside bb-modal */
.bb-modal .modal-body { padding: 18px 24px 22px; }
.bb-modal .bb-field-label { display: block; font-size: 12.5px; font-weight: 600; color: var(--bb-ink); margin: 0 0 4px; }
.bb-modal .bb-input-icon { position: relative; }
.bb-modal .bb-input-icon > i {
  position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  color: var(--bb-muted); font-size: 16px; pointer-events: none;
}
.bb-modal .bb-input-icon > .form-control { padding-left: 40px; }
.bb-modal .bb-modal-fineprint { font-size: 11.5px; color: var(--bb-muted); text-align: center; margin: 8px 0 0; }
/* hide empty error placeholders so they don't add phantom space between fields */
.bb-modal .text-danger:empty,
.bb-modal .text-danger.d-block:empty { display: none !important; }
.bb-modal .bb-modal-trust {
  display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 16px;
  margin-top: 16px; padding: 10px 14px; background: var(--bb-bg); border-radius: 10px;
  font-size: 11.5px; color: var(--bb-muted);
}
.bb-modal .bb-modal-trust span { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; }
.bb-modal .bb-modal-trust i { color: var(--bb-green); font-size: 13px; }

/* OTP step */
.bb-modal .bb-otp-head { text-align: center; margin-bottom: 16px; }
.bb-modal .bb-otp-ic {
  width: 50px; height: 50px; border-radius: 50%;
  background: #eaf1fb; color: var(--bb-blue);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 22px; margin-bottom: 10px;
}
.bb-modal .bb-otp-head h4 { font-size: 17px; font-weight: 700; margin: 0 0 4px; color: var(--bb-ink); }
.bb-modal .bb-otp-head p { font-size: 12.5px; color: var(--bb-muted); margin: 0; }
.bb-modal .bb-otp-input {
  text-align: center; letter-spacing: 14px; font-size: 22px; font-weight: 600;
  font-family: var(--bb-head); height: 56px;
}
/* dev: highlight prefilled OTP so it's obviously a local convenience */
.bb-modal .bb-otp-input.bb-otp-prefilled {
  background: #fff8eb; border-color: var(--bb-orange); color: var(--bb-orange-dark);
}

/* QUOTE modal (#exampleModal): no extra modal-header (we use bb-modal-hero) */
#exampleModal .modal-header { display: none; }
#exampleModal .modal-body { padding: 22px 28px 26px; }

/* REQUIREMENT modal (#requirementModal): same – use hero, hide header */
#requirementModal .modal-header { display: none; }
#requirementModal .modal-body { padding: 18px 24px 22px; }
/* tight, uniform vertical rhythm between fields */
#requirementModal .row.g-2 { --bs-gutter-y: 12px; }
#requirementModal .row.g-2 > [class*="col-"] { padding-top: 0; }
#requirementModal .bb-input-icon + .text-danger:empty { display: none; }
#requirementModal .text-danger.small:empty { display: none; }
#requirementModal .row.g-2 .bb-field-label { margin-top: 2px; }
/* spacing between the first (product) field and the row below */
#requirementModal #step_1 > .row.g-2.mt-2 { margin-top: 12px !important; }

/* LOCATION modal (#searchModal): list of states */
#searchModal .modal-body { background: #fff; padding: 22px 24px 24px; }
#searchModal .stateList {
  list-style: none; padding: 0; margin: 8px 0 0;
  max-height: 280px; overflow-y: auto;
  border: 1px solid var(--bb-line); border-radius: 10px;
}
#searchModal .stateList li { border-bottom: 1px solid var(--bb-line); }
#searchModal .stateList li:last-child { border-bottom: 0; }
#searchModal .stateList li a {
  display: flex; align-items: center; justify-content: space-between;
  padding: 11px 14px; color: var(--bb-body); font-size: 13.5px; font-weight: 500;
}
#searchModal .stateList li a:hover { background: #f3f8ff; color: var(--bb-blue); }
#searchModal .stateList li .badge { background: var(--bb-bg); color: var(--bb-muted); font-weight: 600; font-size: 11px; border-radius: 5px; padding: 3px 8px; }
#searchModal .stateList li.bb-empty {
  text-align: center; padding: 22px; color: var(--bb-muted); font-size: 13px; border: 0;
}

/* MOBILE SEARCH modal (#mobileSearchModal): bottom sheet on mobile */
#mobileSearchModal .modal-dialog { max-width: 460px; }
#mobileSearchModal .modal-content { border-radius: 16px; overflow: hidden; }
#mobileSearchModal .bb-msearch-handle { display: none; }
@media (max-width: 575px) {
  #mobileSearchModal .modal-dialog { margin: 0; max-width: 100%; position: fixed; bottom: 0; left: 0; right: 0; }
  #mobileSearchModal .modal-content { border-radius: 16px 16px 0 0; }
  #mobileSearchModal .bb-msearch-handle {
    display: block; width: 40px; height: 4px; border-radius: 2px;
    background: var(--bb-line); margin: 8px auto 0;
  }
}
#mobileSearchModal .modal-header { padding: 16px 22px 12px; }
#mobileSearchModal .bb-msearch-bar i {
  position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  color: var(--bb-muted); font-size: 18px; z-index: 2;
}
#mobileSearchModal .bb-msearch-bar input {
  height: 52px; padding-left: 44px; border-radius: 10px; font-size: 15px;
  border: 1px solid var(--bb-line); width: 100%;
}
#mobileSearchModal .bb-msearch-bar input:focus { border-color: var(--bb-blue-light); box-shadow: 0 0 0 3px rgba(47,111,208,.14); }

/* AJAX modal (#myModal): center spinner during load */
#myModal .modal-content.mycustom-modal { background: #fff; min-height: 220px; padding: 0; }
.bb-ajax-loading {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 60px 24px;
}
.bb-ajax-loading p { color: var(--bb-muted); font-size: 13px; margin: 12px 0 0; }

/* ==========================================================================
   #myModal — Enquiry form (Get Latest Price / Contact Supplier)
   Two-column: product context on the left, login/OTP on the right.
   ========================================================================== */
#myModal .modal-dialog { max-width: 760px; }
#myModal .modal-content.mycustom-modal { padding: 0; background: #fff; }
#myModal .bb-enq { display: grid; grid-template-columns: 280px 1fr; min-height: 460px; }
#myModal .bb-enq-left {
  background: var(--bb-bg); padding: 26px 22px;
  border-right: 1px solid var(--bb-line);
}
#myModal .bb-enq-img {
  width: 100%; aspect-ratio: 1/1; background: #fff;
  border: 1px solid var(--bb-line); border-radius: 12px;
  overflow: hidden; display: flex; align-items: center; justify-content: center;
  margin-bottom: 16px;
}
#myModal .bb-enq-img img { width: 100%; height: 100%; object-fit: cover; }
#myModal .bb-enq-title {
  font-size: 15px; font-weight: 700; color: var(--bb-ink); margin: 0 0 10px;
  line-height: 1.3;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
#myModal .bb-enq-price { color: var(--bb-orange-dark); font-weight: 700; font-size: 16px; margin-bottom: 12px; font-family: var(--bb-head); }
#myModal .bb-enq-price-ask { font-size: 13.5px; }
#myModal .bb-enq-price small { color: var(--bb-muted); font-weight: 500; font-size: 11px; }
#myModal .bb-enq-supplier {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
  font-size: 13px; margin-bottom: 6px; color: var(--bb-body);
}
#myModal .bb-enq-supplier i.bi-shop { color: var(--bb-muted); }
#myModal .bb-enq-supplier a { color: var(--bb-ink); font-weight: 600; }
#myModal .bb-enq-supplier a:hover { color: var(--bb-blue); }
#myModal .bb-enq-verified { color: var(--bb-green); }
#myModal .bb-enq-meta {
  font-size: 12px; color: var(--bb-muted);
  display: flex; align-items: center; gap: 5px; margin-bottom: 14px;
}
#myModal .bb-enq-meta i { color: var(--bb-blue); }
#myModal .bb-enq-badges { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
#myModal .bb-enq-badges li {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11.5px; font-weight: 600; color: var(--bb-blue);
  background: #fff; border: 1px solid var(--bb-line);
  padding: 5px 10px; border-radius: 6px; align-self: flex-start;
}
#myModal .bb-enq-badges li i { color: var(--bb-green); }

#myModal .bb-enq-right { padding: 26px 28px; display: flex; flex-direction: column; justify-content: center; }
#myModal .bb-enq-head { text-align: center; margin-bottom: 18px; }
#myModal .bb-enq-head-ic {
  width: 56px; height: 56px; border-radius: 50%;
  background: linear-gradient(135deg, var(--bb-blue), var(--bb-blue-light));
  color: #fff; display: inline-flex; align-items: center; justify-content: center;
  font-size: 24px; margin-bottom: 12px;
  box-shadow: 0 6px 16px rgba(27,79,156,.28);
}
#myModal .bb-enq-head h3 { font-size: 19px; font-weight: 700; color: var(--bb-ink); margin: 0 0 4px; line-height: 1.3; }
#myModal .bb-enq-head p { font-size: 13px; color: var(--bb-muted); margin: 0; }

/* shared modal field/input styles (re-use from bb-modal scope) */
#myModal .bb-field-label { display: block; font-size: 12.5px; font-weight: 600; color: var(--bb-ink); margin: 0 0 4px; }
#myModal .bb-input-icon { position: relative; }
#myModal .bb-input-icon > i {
  position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  color: var(--bb-muted); font-size: 16px; pointer-events: none;
}
#myModal .bb-input-icon > .form-control { padding-left: 40px; }
#myModal .form-control {
  height: 46px; border: 1px solid var(--bb-line); border-radius: 10px;
  font-size: 14px; padding: 0 14px;
}
#myModal .form-control:focus {
  border-color: var(--bb-blue-light);
  box-shadow: 0 0 0 3px rgba(47,111,208,.14);
}
#myModal .bb-modal-fineprint { font-size: 11.5px; color: var(--bb-muted); text-align: center; margin: 8px 0 0; }
#myModal .text-danger:empty { display: none !important; }
#myModal .btn { padding: 11px 18px; border-radius: 10px; font-weight: 600; }
#myModal .bb-otp-head { text-align: center; margin-bottom: 14px; }
#myModal .bb-otp-ic {
  width: 50px; height: 50px; border-radius: 50%;
  background: #eaf1fb; color: var(--bb-blue);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 22px; margin-bottom: 10px;
}
#myModal .bb-otp-head h4 { font-size: 17px; font-weight: 700; margin: 0 0 4px; color: var(--bb-ink); }
#myModal .bb-otp-head p { font-size: 12.5px; color: var(--bb-muted); margin: 0; }
#myModal .bb-otp-input {
  text-align: center; letter-spacing: 14px; font-size: 22px; font-weight: 600;
  font-family: var(--bb-head); height: 56px;
}
#myModal .bb-otp-input.bb-otp-prefilled {
  background: #fff8eb; border-color: var(--bb-orange); color: var(--bb-orange-dark);
}

/* close button positioning over the rounded modal corner */
#myModal .bb-modal-close {
  position: absolute; top: 12px; right: 12px; z-index: 5;
  width: 30px; height: 30px; border-radius: 50%;
  background: rgba(255,255,255,.95); border: 1px solid var(--bb-line); color: var(--bb-ink);
  display: inline-flex; align-items: center; justify-content: center; font-size: 12px;
  cursor: pointer; transition: all .15s ease;
}
#myModal .bb-modal-close:hover { background: var(--bb-orange); color: #fff; border-color: var(--bb-orange); }

@media (max-width: 575px) {
  /* -----------------------------------------------------------------------
     MOBILE-ONLY COMPACTION — applies to every .modal on the site, including
     #myModal (enquiry / Contact Supplier), #requirementModal, #bbSuccessModal,
     #searchModal, #mobileSearchModal. Keeps the same visual language, just
     trims padding / icon sizes / font sizes so the sheet fits a phone without
     a lot of scrolling. */

  /* shared chrome */
  .modal .modal-dialog { margin: 0.6rem; }
  .modal .modal-content { border-radius: 14px; }

  /* hero header used by bb-modal & success modal */
  .bb-modal .bb-modal-hero { padding: 18px 18px 12px; }
  .bb-modal .bb-modal-hero-ic { width: 44px; height: 44px; font-size: 19px; margin-bottom: 8px; }
  .bb-modal .bb-modal-hero h3, .bb-modal .bb-modal-hero h4 { font-size: 16px; margin-bottom: 4px; }
  .bb-modal .bb-modal-hero p { font-size: 12.5px; }
  .bb-modal .modal-body { padding: 14px 18px 18px; }
  .bb-modal .bb-field-label { font-size: 12px; margin-bottom: 3px; }
  .bb-modal .bb-modal-trust { margin-top: 12px; padding: 8px 12px; font-size: 11px; gap: 6px 12px; }
  .bb-modal .bb-modal-trust i { font-size: 12px; }

  /* OTP / verify step (smaller dots, shorter input) */
  .bb-modal .bb-otp-ic { width: 40px; height: 40px; font-size: 18px; margin-bottom: 8px; }
  .bb-modal .bb-otp-head h4 { font-size: 15px; }
  .bb-modal .bb-otp-head p { font-size: 12px; }
  .bb-modal .bb-otp-input { letter-spacing: 10px; font-size: 18px; height: 48px; }

  /* ============== #myModal (Contact Supplier / Get Latest Price) ============== */
  #myModal .modal-dialog { max-width: none; }
  #myModal .bb-enq { grid-template-columns: 1fr; min-height: 0; }
  /* product context card — tight */
  #myModal .bb-enq-left {
    padding: 14px 16px 12px; border-right: 0; border-bottom: 1px solid var(--bb-line);
  }
  #myModal .bb-enq-img {
    max-width: 110px; width: 110px; aspect-ratio: 1/1; margin: 0 auto 10px;
    border-radius: 10px; padding: 0;
  }
  #myModal .bb-enq-title { font-size: 14px; margin-bottom: 6px; text-align: center; -webkit-line-clamp: 2; }
  #myModal .bb-enq-price { font-size: 14px; margin-bottom: 6px; text-align: center; }
  #myModal .bb-enq-price-ask { font-size: 13px; text-align: center; }
  #myModal .bb-enq-supplier { font-size: 12.5px; justify-content: center; margin-bottom: 4px; }
  #myModal .bb-enq-meta { font-size: 11.5px; margin-bottom: 8px; justify-content: center; }
  /* badges flow horizontally as small chips, not a vertical column */
  #myModal .bb-enq-badges { flex-direction: row; justify-content: center; flex-wrap: wrap; gap: 5px; margin: 0; }
  #myModal .bb-enq-badges li { padding: 4px 8px; font-size: 10.5px; align-self: auto; }
  /* right column (login / verify) */
  #myModal .bb-enq-right { padding: 16px 18px; }
  #myModal .bb-enq-head { margin-bottom: 12px; }
  #myModal .bb-enq-head-ic { width: 44px; height: 44px; font-size: 19px; margin-bottom: 8px; }
  #myModal .bb-enq-head h3 { font-size: 16px; margin-bottom: 3px; }
  #myModal .bb-enq-head p { font-size: 12px; }
  #myModal .form-control { height: 44px; font-size: 14px; }
  #myModal .btn { padding: 11px 16px; font-size: 13.5px; }
  #myModal .bb-modal-fineprint { font-size: 11px; margin-top: 6px; }
  /* shrink the rounded close button to match the tighter chrome */
  #myModal .bb-modal-close,
  .bb-modal .bb-modal-close { width: 28px; height: 28px; font-size: 11px; top: 10px; right: 10px; }

  /* requirement modal (Tell Us What You Need) */
  #requirementModal .bb-modal-hero { padding: 18px 16px 10px; }
  #requirementModal .modal-body { padding: 12px 16px 16px; }
  #requirementModal .row.g-2 { --bs-gutter-y: 10px; }

  /* success modal */
  #bbSuccessModal .modal-dialog { max-width: none; }
  #bbSuccessModal .bb-success-hero { padding: 22px 18px 14px; }
  #bbSuccessModal .bb-success-ic { width: 56px; height: 56px; }
  #bbSuccessModal h3 { font-size: 17px; }
  #bbSuccessModal .bb-success-msg { font-size: 13px; }
  #bbSuccessModal .modal-body { padding: 4px 18px 16px; }
  #bbSuccessModal .btn { padding: 10px; font-size: 13.5px; }

  /* location modal */
  #searchModal .bb-modal-hero { padding: 18px 16px 12px; }
  #searchModal .modal-body { padding: 12px 16px 16px; }
  #searchModal .stateList { max-height: 220px; }
  #searchModal .stateList li a { padding: 9px 12px; font-size: 13px; }
}

/* ==========================================================================
   Reusable success modal (#bbSuccessModal) — green confetti hero + single CTA
   ========================================================================== */
#bbSuccessModal .modal-dialog { max-width: 440px; }
#bbSuccessModal .modal-content { overflow: hidden; }
#bbSuccessModal .bb-success-hero {
  text-align: center; padding: 32px 26px 20px;
  background: linear-gradient(180deg, #e6f7ee 0%, #ffffff 100%);
  position: relative;
}
#bbSuccessModal .bb-success-ic {
  width: 72px; height: 72px; border-radius: 50%;
  background: linear-gradient(135deg, #1ca35a, #2bc275);
  color: #fff; display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 14px;
  box-shadow: 0 10px 26px rgba(28,163,90,.28);
  animation: bbSuccessPop .35s cubic-bezier(.18,.89,.32,1.28);
}
#bbSuccessModal .bb-success-ic svg { animation: bbCheckDraw .4s ease-out .2s both; }
@keyframes bbSuccessPop { 0% { transform: scale(0); } 80% { transform: scale(1.1); } 100% { transform: scale(1); } }
@keyframes bbCheckDraw { from { stroke-dashoffset: 50; } to { stroke-dashoffset: 0; } }
#bbSuccessModal h3 { font-size: 22px; font-weight: 700; color: var(--bb-ink); margin: 0 0 6px; }
#bbSuccessModal .bb-success-msg { font-size: 14px; color: var(--bb-body); margin: 0; max-width: 320px; margin: 0 auto; line-height: 1.45; }
#bbSuccessModal .modal-body { padding: 6px 26px 24px; }
#bbSuccessModal .btn { padding: 12px; font-weight: 600; font-size: 14.5px; }

/* ==========================================================================
   MOBILE LAYOUT (matches BharatBiz mobile mockup)
   ========================================================================== */
@media (max-width: 991px) {

  /* ---- Header: hamburger | centered logo+tagline | bell ---- */
  .bb-mainhead .container-bb {
    display: flex; align-items: center; justify-content: space-between;
    gap: 8px; height: 64px; padding: 0 14px;
  }
  .bb-mainhead .bb-mob-hamb {
    order: 1; display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px; border-radius: 8px; color: var(--bb-ink);
    background: transparent; font-size: 22px; cursor: pointer; flex: 0 0 auto;
  }
  .bb-mainhead .bb-mob-hamb i { font-size: 22px; }
  .bb-mainhead #logo {
    order: 2; flex: 1; display: flex; flex-direction: column;
    align-items: center; justify-content: center; text-align: center; min-width: 0;
  }
  .bb-mainhead #logo a { display: inline-block; line-height: 1; }
  .bb-mainhead #logo img { height: 26px; width: auto; }
  .bb-mob-tagline {
    display: block; font-size: 10.5px; color: var(--bb-muted);
    margin-top: 2px; font-weight: 500; letter-spacing: .2px;
  }
  .bb-head-actions {
    order: 3; margin-left: 0; flex: 0 0 auto; gap: 4px;
  }
  .bb-mob-bell {
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px; border-radius: 8px; color: var(--bb-ink);
    background: transparent; font-size: 20px; position: relative;
  }
  .bb-mob-bell:hover { background: var(--bb-bg); color: var(--bb-blue); }
  /* hide the inline header search form on mobile (hero owns search) */
  .bb-mainhead .header-widget,
  .bb-mainhead #header_form { display: none !important; }
  /* hide the legacy mmenu-trigger that lived in the actions area — hamburger moved left */
  .bb-head-actions .mmenu-trigger { display: none !important; }

  /* ---- Hero: tighter padding, centered content ---- */
  .intro-banner.dark-overlay { padding: 22px 0 26px; }
  .bb-hero-grid { display: block; }
  .bb-hero-right { display: none; } /* hide quotes card */
  .bb-hero-left .banner-headline { text-align: center; padding: 0 6px; }
  .banner-headline h1 { font-size: 22px; line-height: 1.3; margin: 0 0 6px; }
  .banner-headline p { font-size: 13px; margin: 0 0 16px; color: rgba(255,255,255,.85); }

  /* hero search: white pill row + prominent orange Search btn next to input */
  .bb-hero-search {
    background: #fff; border-radius: 10px; padding: 6px;
    display: flex; align-items: center; gap: 6px; flex-wrap: nowrap;
  }
  .bb-hero-search .bb-cat-dd { display: none; }
  .bb-hero-search .intro-search-field {
    flex: 1 1 auto; min-width: 0;
  }
  .bb-hero-search .intro-search-field .form-control {
    height: 42px; padding-left: 36px; font-size: 13.5px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2375808f'><path d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001q.044.06.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1 1 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0'/></svg>");
    background-repeat: no-repeat; background-position: 12px center; background-size: 16px;
  }
  .bb-hero-search .intro-search-button { flex: 0 0 auto; }
  .bb-hero-search .intro-search-button .btn {
    height: 42px; padding: 0 16px; font-size: 13.5px; border-radius: 8px;
  }
  .bb-hero-search .intro-search-button .btn .icon-feather-search { display: none; }

  .bb-popular { display: none; } /* hide popular searches on mobile */

  /* mobile-only trust strip inside hero */
  .bb-hero-trust {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px;
    margin-top: 18px;
  }
  .bb-hero-trust .item {
    display: flex; flex-direction: column; align-items: center;
    text-align: center; color: #fff; gap: 6px;
  }
  .bb-hero-trust .item i {
    width: 36px; height: 36px; border-radius: 50%;
    background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.2);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 15px; color: #fff;
  }
  .bb-hero-trust .item span {
    font-size: 10.5px; font-weight: 600; line-height: 1.2;
    color: rgba(255,255,255,.95);
  }

  /* hide the white trust bar (replaced by in-hero version on mobile) */
  .bb-trustbar { display: none; }

  /* ---- Sections: tighter ---- */
  .section { padding: 24px 0; }
  .container-bb { padding: 0 14px; }
  .bb-sec-head { margin-bottom: 14px; }
  .bb-sec-head h2 { font-size: 17px; font-weight: 700; }
  .bb-sec-head .bb-viewall { font-size: 12.5px; }

  /* ---- Top Categories: 5 cols x 2 rows, light blue icon circles ---- */
  .bb-cat-grid.bb-cat-2row { grid-template-columns: repeat(5, 1fr); gap: 8px; }
  .bb-cat-2row .card-category {
    border: none; background: transparent; padding: 6px 2px;
    min-height: auto;
  }
  .bb-cat-2row .card-category:hover {
    background: transparent !important; box-shadow: none !important; transform: none !important;
  }
  .bb-cat-2row .card-category .card-category-icon {
    width: 52px !important; height: 52px; margin: 0 auto 6px;
    background: #eaf1fb !important; border-radius: 50% !important;
    display: flex; align-items: center; justify-content: center;
  }
  .bb-cat-2row .card-category .card-category-icon img {
    width: 26px; height: 26px;
  }
  .bb-cat-2row .card-category .card-category-icon i {
    font-size: 22px; color: var(--bb-blue);
  }
  .bb-cat-2row .card-category h5 {
    font-size: 10.5px !important; font-weight: 500; color: var(--bb-ink);
    -webkit-line-clamp: 1 !important; line-height: 1.2;
  }
  .card-category-more { background: transparent; }
  .card-category-more .card-category-icon { background: #eaf1fb !important; }

  /* ---- Featured / Top Products: horizontal scroll, smaller cards ---- */
  .bb-scroll-track .bb-card { width: 170px; }
  .bb-scroll-track { gap: 12px; padding-bottom: 4px; }
  .bb-card-body { padding: 10px 12px 12px; }
  .bb-card-title { font-size: 12.5px; min-height: 32px; -webkit-line-clamp: 2; }
  .bb-card-price { font-size: 13px; }
  .bb-card-sub { font-size: 11px; margin-bottom: 4px; }
  .bb-card-loc, .bb-card-rating { font-size: 11px; margin-bottom: 6px; }
  /* one full-width "Inquiry" button per card on mobile */
  .bb-card-btns { flex-direction: column; gap: 0; }
  .bb-card-btns .btn { width: 100%; padding: 7px; font-size: 12px; }
  .bb-card-btns .btn-outline-primary { display: none; }

  /* ---- Verified Suppliers: vertical list of rows ---- */
  /* Convert the horizontal scroller into a stacked column on mobile so each supplier
     reads as a list row (logo | name+meta+badges | Contact). */
  section .bb-scroller:has(.bb-sup-card) .bb-scroll-btn { display: none; }
  section .bb-scroller:has(.bb-sup-card) .bb-scroll-track {
    display: flex; flex-direction: column; gap: 10px;
    overflow: visible; padding: 0;
  }
  .bb-sup-card {
    width: 100% !important; padding: 12px 14px; text-align: left;
    display: grid !important;
    grid-template-columns: 50px 1fr auto;
    grid-template-areas:
      "logo name btn"
      "logo loc  btn"
      "logo rate btn"
      "logo bdg  btn";
    column-gap: 12px; row-gap: 0;
    align-items: center;
  }
  .bb-sup-card:hover { transform: none; }
  .bb-sup-card .logo {
    grid-area: logo; width: 50px; height: 50px; margin: 0;
    border-radius: 10px; padding: 3px; align-self: center;
  }
  .bb-sup-card h4 {
    grid-area: name; font-size: 13.5px; margin: 0;
    min-height: 0; display: block; text-align: left; line-height: 1.3;
  }
  .bb-sup-card .loc { grid-area: loc; font-size: 11.5px; margin: 2px 0 0; text-align: left; }
  .bb-sup-card .rating { grid-area: rate; font-size: 11.5px; margin: 2px 0 0; text-align: left; }
  .bb-sup-card .badges {
    grid-area: bdg; justify-content: flex-start; gap: 5px;
    margin: 4px 0 0; min-height: 0; flex-wrap: wrap;
  }
  .bb-sup-badge { font-size: 10px; padding: 2px 7px; }
  .bb-sup-card .btn {
    grid-area: btn; margin: 0; padding: 7px 14px; font-size: 12px;
    border-radius: 8px; align-self: center; white-space: nowrap;
  }

  /* ---- Latest Buy Requirements: vertical stacked list ---- */
  .bb-req-row { grid-template-columns: 1fr; gap: 10px; }
  .bb-req {
    padding: 12px 14px;
    display: grid; grid-template-columns: 1fr auto; gap: 4px 12px;
    align-items: start;
  }
  .bb-req h4 { font-size: 13.5px; margin: 0; grid-column: 1; }
  .bb-req-qty { font-size: 12px; margin: 0; grid-column: 1; }
  .bb-req-loc { font-size: 11.5px; margin: 0; grid-column: 1; }
  .bb-req-time {
    font-size: 11px; color: var(--bb-muted); margin: 0;
    grid-column: 2; grid-row: 1; text-align: right; white-space: nowrap;
  }
  .bb-req-cta { padding: 14px; }
  .bb-req-cta-tx h4 { font-size: 13.5px; }
  .bb-req-cta-tx span { font-size: 11.5px; }

  /* ---- We connect + newsletter on mobile ---- */
  .bb-why-grid { gap: 18px; }
  .bb-why-items { grid-template-columns: 1fr 1fr !important; gap: 12px; }
  .bb-connect-cta { padding: 22px 16px; }
  .bb-connect-cta h3 { font-size: 17px; }
  /* Mobile-only polish for the newsletter card */
  .bb-newsletter { padding: 20px 18px; gap: 14px; border-radius: 14px; width: 100%; }
  .bb-newsletter h3 { font-size: 16px; }
  .bb-newsletter p { font-size: 12.5px; line-height: 1.45; }
  .bb-newsletter .form { width: 100%; min-width: 0; max-width: none; flex-direction: column; gap: 10px; }
  .bb-newsletter .form input {
    flex: none;
    width: 100%; height: 48px;
    background: #fff;
    border: 1.5px solid #d6dde8;
    border-radius: 10px;
    padding: 0 16px;
    font-size: 15px;           /* ≥16px-ish keeps iOS Safari from auto-zooming */
    color: var(--bb-ink);
    box-shadow: 0 1px 2px rgba(20,40,80,.04) inset;
    transition: border-color .15s ease, box-shadow .15s ease;
  }
  .bb-newsletter .form input::placeholder { color: var(--bb-muted); opacity: 1; }
  .bb-newsletter .form input:focus {
    outline: none;
    border-color: var(--bb-blue);
    box-shadow: 0 0 0 3px rgba(27,79,156,.14);
  }
  .bb-newsletter .form .btn { width: 100%; height: 48px; padding: 0 18px; font-size: 14.5px; border-radius: 10px; font-weight: 600; }
  .bb-newsletter-err { position: static; margin-top: -4px; }

  /* ---- Big footer (.footer-full): hide on mobile, bottom nav owns navigation ---- */
  .footer-full { display: none; }

  /* leave room above bottom nav (64px) + FAB caption (~16px) + iOS safe area */
  #wrapper { padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)); }
}

@media (max-width: 575px) {
  .bb-cat-grid.bb-cat-2row { grid-template-columns: repeat(5, 1fr); }
  .bb-scroll-track .bb-card { width: 156px; }
  .bb-hero-trust .item span { font-size: 10px; }
  .banner-headline h1 { font-size: 20px; }
}

/* ==========================================================================
   BOTTOM NAV (mobile only): Home / Categories / +Post RFQ FAB / Messages / Account
   ========================================================================== */
@media (max-width: 991px) {
  .small-footer.bb-bottom-nav {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 1040;
    background: #fff; border-top: 1px solid var(--bb-line);
    box-shadow: 0 -4px 14px rgba(20,40,80,.06);
    padding: 0 0 env(safe-area-inset-bottom, 0px); height: 64px;
  }
  .bb-bottom-nav ul {
    display: flex; align-items: stretch; height: 100%;
    margin: 0; padding: 0; list-style: none;
  }
  .bb-bottom-nav ul > li {
    flex: 1; border: none; margin: 0; position: relative;
    display: flex; align-items: center; justify-content: center;
  }
  .bb-bottom-nav ul > li > a {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 3px; padding: 6px 2px; height: 100%; width: 100%;
    color: var(--bb-muted); font-size: 10.5px; font-weight: 500;
    text-decoration: none;
  }
  .bb-bottom-nav ul > li > a > i {
    font-size: 20px; line-height: 1; color: var(--bb-muted);
    transition: color .15s ease;
  }
  .bb-bottom-nav ul > li > a > span { display: block; }
  .bb-bottom-nav ul > li > a.active,
  .bb-bottom-nav ul > li > a.active > i { color: var(--bb-blue); }
  /* center FAB */
  .bb-bottom-nav ul > li.bb-nav-fab {
    flex: 0 0 64px; position: relative;
  }
  .bb-bottom-nav ul > li.bb-nav-fab > a {
    position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%);
    width: 54px; height: 54px; border-radius: 50%;
    background: var(--bb-blue); color: #fff;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 6px 16px rgba(27,79,156,.35);
    padding: 0; gap: 0;
  }
  .bb-bottom-nav ul > li.bb-nav-fab > a > i {
    font-size: 26px; color: #fff;
  }
  .bb-bottom-nav ul > li.bb-nav-fab > a > span {
    position: absolute; bottom: -16px; left: 50%; transform: translateX(-50%);
    font-size: 10px; color: var(--bb-muted); white-space: nowrap; font-weight: 600;
  }
}

@media (min-width: 992px) {
  .bb-mob-hamb, .bb-mob-tagline, .bb-mob-bell, .bb-hero-trust { display: none !important; }
  .small-footer.bb-bottom-nav { display: none; }
  .bb-drawer, .bb-drawer-backdrop { display: none !important; }
}

/* hide any stray legacy nav clone left over from old mmenu — the bundled JS still
   exists in the minified bundle but #navigation is empty so the clone has no items. */
.mmenu-init, .mm-menu { display: none !important; visibility: hidden !important; }
#navigation { display: none !important; }

/* ==========================================================================
   MODERN MOBILE DRAWER (replaces mmenu)
   ========================================================================== */
.bb-mob-hamb {
  border: 0; background: transparent; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 8px; color: var(--bb-ink);
  font-size: 22px; padding: 0;
}
.bb-mob-hamb:hover { background: var(--bb-bg); color: var(--bb-blue); }
.bb-mob-hamb i { font-size: 22px; line-height: 1; }

.bb-drawer-backdrop {
  position: fixed; inset: 0; background: rgba(8, 22, 50, .55);
  opacity: 0; visibility: hidden; transition: opacity .25s ease, visibility .25s ease;
  z-index: 1090;
}
.bb-drawer-backdrop.show { opacity: 1; visibility: visible; }
.bb-drawer-backdrop[hidden] { display: block; } /* keep transitions; we toggle .show */

.bb-drawer {
  position: fixed; top: 0; left: 0; bottom: 0; width: 320px; max-width: 86vw;
  background: #fff; box-shadow: 0 0 40px rgba(8, 22, 50, .18);
  transform: translateX(-100%); transition: transform .28s cubic-bezier(.2,.7,.2,1);
  z-index: 1095; overflow-y: auto; display: flex; flex-direction: column;
  font-family: var(--bb-font); -webkit-overflow-scrolling: touch;
}
.bb-drawer.show { transform: translateX(0); }
body.bb-drawer-open { overflow: hidden; }

.bb-drawer-head {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 16px 18px; border-bottom: 1px solid var(--bb-line);
  position: sticky; top: 0; background: #fff; z-index: 2;
}
.bb-drawer-brand {
  display: flex; flex-direction: column; gap: 2px; min-width: 0;
  color: var(--bb-ink); text-decoration: none; line-height: 1;
}
.bb-drawer-brand img { height: 26px; width: auto; }
.bb-drawer-brand span { font-size: 11px; color: var(--bb-muted); font-weight: 500; }
.bb-drawer-close {
  border: 0; background: var(--bb-bg); color: var(--bb-ink);
  width: 34px; height: 34px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; cursor: pointer; transition: all .15s ease;
  flex-shrink: 0;
}
.bb-drawer-close:hover { background: var(--bb-orange); color: #fff; }

/* logged-in user card */
.bb-drawer-user {
  display: flex; align-items: center; gap: 12px;
  margin: 14px 16px 0; padding: 12px 14px;
  background: linear-gradient(135deg, #eef4ff, #f7faff);
  border: 1px solid #dce8fa; border-radius: 12px;
  color: var(--bb-ink); text-decoration: none;
  transition: all .15s ease;
}
.bb-drawer-user:hover { border-color: #b8d0f3; box-shadow: var(--bb-shadow); color: var(--bb-ink); }
.bb-drawer-user-avatar {
  width: 44px; height: 44px; border-radius: 50%; object-fit: cover;
  border: 2px solid #fff; box-shadow: 0 2px 6px rgba(8, 22, 50, .12);
  background: #fff; flex-shrink: 0;
}
.bb-drawer-user-info { flex: 1; min-width: 0; }
.bb-drawer-user-name {
  font-size: 14px; font-weight: 700; color: var(--bb-ink);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.bb-drawer-user-meta {
  font-size: 12px; color: var(--bb-blue); font-weight: 600;
  display: inline-flex; align-items: center; gap: 4px; margin-top: 2px;
}
.bb-drawer-user-meta i { font-size: 11px; transition: transform .15s ease; }
.bb-drawer-user:hover .bb-drawer-user-meta i { transform: translateX(3px); }

/* logged-out CTAs */
.bb-drawer-cta {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
  margin: 14px 16px 0;
}
.bb-drawer-cta .btn {
  padding: 9px 8px; font-size: 12.5px; border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
}

/* nav sections */
.bb-drawer-nav { padding: 8px 0 12px; flex: 1; }
.bb-drawer-section { padding: 12px 16px 4px; }
.bb-drawer-section h6 {
  font-size: 11px; font-weight: 700; color: var(--bb-muted);
  letter-spacing: .8px; text-transform: uppercase;
  margin: 0 0 8px; padding: 0 4px;
}
.bb-drawer-section ul { list-style: none; padding: 0; margin: 0; }
.bb-drawer-section ul > li { margin: 0; }
.bb-drawer-section ul > li > a {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 12px; border-radius: 10px;
  color: var(--bb-body); font-size: 13.5px; font-weight: 500;
  text-decoration: none; transition: all .15s ease;
}
.bb-drawer-section ul > li > a:hover,
.bb-drawer-section ul > li > a.active {
  background: var(--bb-bg); color: var(--bb-blue);
}
.bb-drawer-section ul > li > a .ic {
  width: 32px; height: 32px; border-radius: 8px;
  background: var(--bb-bg); color: var(--bb-blue);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 15px; flex-shrink: 0; transition: all .15s ease;
}
.bb-drawer-section ul > li > a:hover .ic,
.bb-drawer-section ul > li > a.active .ic { background: var(--bb-blue); color: #fff; }
.bb-drawer-section ul > li > a .ch {
  margin-left: auto; color: var(--bb-muted); font-size: 12px;
  transition: transform .15s ease;
}
.bb-drawer-section ul > li > a:hover .ch { transform: translateX(2px); color: var(--bb-blue); }

/* language switcher chips */
.bb-drawer-lang { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 0 4px; }
.bb-drawer-lang a {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 12px; border-radius: 10px;
  border: 1px solid var(--bb-line); background: #fff;
  color: var(--bb-body); font-size: 13px; font-weight: 600;
  text-decoration: none; transition: all .15s ease;
}
.bb-drawer-lang a:hover { border-color: #c4d6f2; color: var(--bb-blue); }
.bb-drawer-lang a.active { background: #eaf1fb; border-color: #c4d6f2; color: var(--bb-blue); }
.bb-drawer-lang a .fw {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 20px; border-radius: 4px;
  background: var(--bb-bg); color: var(--bb-muted);
  font-size: 10.5px; font-weight: 700;
}
.bb-drawer-lang a.active .fw { background: var(--bb-blue); color: #fff; }

/* footer logout */
.bb-drawer-foot {
  border-top: 1px solid var(--bb-line); padding: 14px 16px;
  background: #fff; position: sticky; bottom: 0; z-index: 2;
}
.bb-drawer-logout {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; padding: 11px; border-radius: 10px;
  background: #fff5f4; color: #c0392b; border: 1px solid #f5d0cc;
  font-size: 13.5px; font-weight: 600; text-decoration: none;
  transition: all .15s ease;
}
.bb-drawer-logout:hover { background: #c0392b; color: #fff; border-color: #c0392b; }
.bb-drawer-logout i { font-size: 15px; }

/* ==========================================================================
   PROJECT LIST / SEARCH RESULTS — modern layout
   Layout:  [left: categories + filters]  [center: products]  [right: ads only]
   ========================================================================== */
.bb-pl { padding: 22px 0 40px; }
.bb-pl .container-bb { display: grid; grid-template-columns: 290px 1fr 230px; gap: 22px; align-items: start; }

/* ---------- Sidebar shells ----------
   The column is a stack of independent cards. Categories can scroll internally
   when its list grows; filters always stay visible below without needing the
   user to scroll past the category list. */
.bb-pl-aside {
  position: sticky; top: 88px;
  display: flex; flex-direction: column; gap: 14px;
  max-height: calc(100vh - 100px);
}
/* Mobile-only drawer chrome — hidden by default on desktop */
.bb-pl-aside-mhead, .bb-pl-aside-mfoot { display: none; }
.bb-pl-aside-body { display: contents; }
.bb-pl-aside-block {
  background: #fff; border: 1px solid var(--bb-line); border-radius: var(--bb-radius);
  padding: 14px 14px; box-shadow: 0 2px 6px rgba(20,40,80,.04);
  display: flex; flex-direction: column; min-height: 0;   /* enables internal scroll */
}
/* Categories block grows to fill leftover space, scrolls inside.
   Sized to comfortably fit 9-10 category rows before scrolling (each row ≈ 46px,
   plus header ≈ 32px and card padding 28px). */
.bb-pl-aside-block.is-cats {
  flex: 1 1 auto;
  min-height: 320px;
  max-height: 560px;
  overflow: hidden;
}
.bb-pl-aside-block.is-cats > .bb-pl-cats {
  flex: 1 1 auto; overflow-y: auto; padding-right: 4px; min-height: 0;
}
.bb-pl-aside-block.is-cats > .bb-pl-cats::-webkit-scrollbar { width: 6px; }
.bb-pl-aside-block.is-cats > .bb-pl-cats::-webkit-scrollbar-thumb { background: #d3dbe6; border-radius: 4px; }
/* Filters block sizes to its content — no internal scroll needed */
.bb-pl-aside-block.is-filters { flex: 0 0 auto; }
.bb-pl-aside-title {
  font-size: 11.5px; font-weight: 700; color: var(--bb-muted);
  letter-spacing: .8px; text-transform: uppercase;
  margin: 0 0 10px; padding: 0 4px;
  display: flex; align-items: center; justify-content: space-between;
}
.bb-pl-aside-title .clear { font-size: 11px; font-weight: 600; color: var(--bb-blue); text-transform: none; letter-spacing: 0; }

/* ---------- Categories tree (inline expand/collapse) ---------- */
.bb-pl-cats { list-style: none; margin: 0; padding: 0; }
.bb-pl-cat-item { margin: 0; }
.bb-pl-cat {
  display: flex; align-items: center; gap: 10px; padding: 6px 10px; border-radius: 8px;
  color: var(--bb-body); font-size: 13px; font-weight: 500; cursor: pointer;
  text-decoration: none; transition: all .15s ease;
  border: 1px solid transparent;
}
.bb-pl-cat:hover { background: var(--bb-bg); color: var(--bb-blue); }
.bb-pl-cat img {
  width: 26px; height: 26px; object-fit: contain; padding: 3px;
  background: #fff; border: 1px solid var(--bb-line); border-radius: 6px; flex-shrink: 0;
}
.bb-pl-cat span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bb-pl-cat .ch { font-size: 12px; color: var(--bb-muted); flex-shrink: 0; transition: transform .15s ease; }
.bb-pl-cat:hover .ch { color: var(--bb-blue); }

/* Active category: blue background card + chevron points down */
.bb-pl-cat-item.is-active > .bb-pl-cat {
  background: #eaf1fb;
  border-color: #c8dbf5;
  color: var(--bb-blue);
  font-weight: 600;
}
.bb-pl-cat-item.is-active > .bb-pl-cat .ch { color: var(--bb-blue); }
.bb-pl-cat-item.is-active > .bb-pl-cat img {
  background: #fff; border-color: #c8dbf5;
}

/* Nested sub-categories under the active category */
.bb-pl-subcats {
  list-style: none; margin: 4px 0 4px 16px;
  padding: 2px 0 2px 20px;          /* aligned with the parent category icon */
  border-left: 2px solid #e2eaf6;
}
.bb-pl-subcats > li { margin: 0; }
.bb-pl-subcats > li.is-overflow { display: none; }
.bb-pl-subcats.is-expanded > li.is-overflow { display: list-item; }
.bb-pl-subcat {
  display: block; padding: 4px 10px; border-radius: 6px;
  color: var(--bb-body); font-size: 12.5px; font-weight: 500;
  text-decoration: none; transition: all .15s ease;
}
.bb-pl-subcat:hover { background: var(--bb-bg); color: var(--bb-blue); }
.bb-pl-subcat.is-active {
  background: var(--bb-blue); color: #fff; font-weight: 600;
}
.bb-pl-subcat.is-active-deep {
  background: var(--bb-blue-light); color: #fff; font-weight: 600;
}
.bb-pl-subcat-loading {
  list-style: none; padding: 8px 10px; color: var(--bb-muted); font-size: 12.5px;
}
.bb-pl-subcat-loading i { animation: bb-spin 1s linear infinite; display: inline-block; }
@keyframes bb-spin { from { transform: rotate(0); } to { transform: rotate(360deg); } }
.bb-pl-subcat-empty {
  list-style: none; padding: 6px 10px; color: var(--bb-muted);
  font-size: 12px; font-style: italic;
}
.bb-pl-subcat-more {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 4px 10px; font-size: 12.5px; font-weight: 600;
  color: var(--bb-blue); text-decoration: none; cursor: pointer;
}
.bb-pl-subcat-more:hover { color: var(--bb-blue-dark); }
.bb-pl-subcat-more .more { display: inline-flex; align-items: center; gap: 5px; }
.bb-pl-subcat-more .less { display: none; align-items: center; gap: 5px; }
.bb-pl-subcats.is-expanded .bb-pl-subcat-more .more { display: none; }
.bb-pl-subcats.is-expanded .bb-pl-subcat-more .less { display: inline-flex; }

/* ---------- Filter sections ---------- */
.bb-pl-filter-group { margin-bottom: 14px; }
.bb-pl-filter-group h6 {
  font-size: 12px; font-weight: 700; color: var(--bb-ink);
  margin: 0 0 8px; padding: 0 4px;
}
.bb-pl-filter-group .form-floating { margin: 0; }
.bb-pl-filter-group .form-control {
  height: 42px; border: 1px solid var(--bb-line); border-radius: 8px;
  font-size: 13px; padding: 0 12px;
}
.bb-pl-filter-group .form-control:focus {
  border-color: var(--bb-blue-light);
  box-shadow: 0 0 0 3px rgba(47, 111, 208, .12);
}
/* Plain native <select> (not wrapped by bootstrap-select) */
.bb-pl-filter-group select.form-select:not(.bs-select-hidden) {
  height: 42px; border: 1px solid var(--bb-line); border-radius: 8px;
  font-size: 13px; padding: 0 12px;
}
.bb-pl-filter-group select.form-select:not(.bs-select-hidden):focus {
  border-color: var(--bb-blue-light);
  box-shadow: 0 0 0 3px rgba(47, 111, 208, .12);
}
/* bootstrap-select wrapping: strip wrapper border, style only the inner button.
   Otherwise the wrapper carries one border and its .dropdown-toggle a second. */
.bb-pl-filter-group .bootstrap-select {
  width: 100% !important;
  border: 0 !important;
  padding: 0 !important;
  height: auto !important;
  background: transparent !important;
}
.bb-pl-filter-group .bootstrap-select > .dropdown-toggle.btn {
  height: 42px;
  width: 100%;
  border: 1px solid var(--bb-line) !important;
  border-radius: 8px !important;
  background: #fff !important;
  font-size: 13px;
  color: var(--bb-ink);
  padding: 0 32px 0 12px;
  text-align: left;
  box-shadow: none !important;
  display: inline-flex; align-items: center;
}
.bb-pl-filter-group .bootstrap-select > .dropdown-toggle.btn:focus,
.bb-pl-filter-group .bootstrap-select.show > .dropdown-toggle.btn {
  border-color: var(--bb-blue-light) !important;
  box-shadow: 0 0 0 3px rgba(47, 111, 208, .12) !important;
  outline: none !important;
}
.bb-pl-filter-group .bootstrap-select > .dropdown-toggle .filter-option { display: inline-flex; align-items: center; }
.bb-pl-filter-group .bootstrap-select > .dropdown-toggle .filter-option-inner-inner { color: var(--bb-ink); }
.bb-pl-filter-group .bootstrap-select > .dropdown-toggle::after {
  border: 0; width: 0; height: 0; margin: 0;
  /* replace bootstrap's caret with a clean SVG chevron */
  content: ""; position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  width: 14px; height: 14px;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2375808f'><path d='M4.427 6.427a.6.6 0 0 1 .849 0L8 9.151l2.724-2.724a.6.6 0 1 1 .849.849l-3.149 3.148a.6.6 0 0 1-.848 0L4.427 7.276a.6.6 0 0 1 0-.849z'/></svg>") no-repeat center/14px;
}
.bb-pl-filter-chip {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 6px 11px; border-radius: 999px; background: #fff;
  border: 1px solid var(--bb-line); color: var(--bb-body);
  font-size: 12px; font-weight: 500; text-decoration: none;
  margin: 0 4px 4px 0; cursor: pointer; transition: all .15s ease;
}
.bb-pl-filter-chip:hover { border-color: #c4d6f2; color: var(--bb-blue); }
.bb-pl-filter-chip.active { background: var(--bb-blue); border-color: var(--bb-blue); color: #fff; }
.bb-pl-filter-rating { display: flex; flex-wrap: wrap; gap: 6px; }
.bb-pl-filter-rating .star-opt {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 6px 10px; border-radius: 8px; background: var(--bb-bg);
  font-size: 12.5px; color: var(--bb-body); cursor: pointer; border: 1px solid transparent;
}
.bb-pl-filter-rating .star-opt i { color: #f5a623; font-size: 11px; }
.bb-pl-filter-rating .star-opt.active { background: #fff7ea; border-color: #f5a623; color: var(--bb-ink); font-weight: 600; }
.bb-pl-filter-rating .star-opt:hover { background: #fff; border-color: var(--bb-line); }
.bb-pl-toggle {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 10px; border-radius: 8px; background: var(--bb-bg);
}
.bb-pl-toggle label { font-size: 13px; font-weight: 600; color: var(--bb-ink); margin: 0; cursor: pointer; }
.bb-pl-toggle .form-check-input { margin: 0; cursor: pointer; }

/* ---------- Breadcrumb ---------- */
.bb-pl-crumbs {
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px;
  font-size: 12.5px; color: var(--bb-muted); margin: 0 0 10px; padding: 0 2px;
}
.bb-pl-crumbs a { color: var(--bb-blue); font-weight: 600; text-decoration: none; }
.bb-pl-crumbs a:hover { text-decoration: underline; }
.bb-pl-crumbs > span { color: var(--bb-muted); font-weight: 500; }
.bb-pl-crumbs i { font-size: 10px; color: var(--bb-muted); opacity: .6; }

/* ---------- Toolbar above products ---------- */
.bb-pl-toolbar {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  padding: 0 2px 14px; margin-bottom: 14px;
  border-bottom: 1px solid var(--bb-line);
}
/* The title column requests ~60% and won't shrink below 320 px; that pushes
   the Sort/Grid/List cluster to wrap onto its own row instead of forcing the
   headline to break onto 4 narrow lines. */
.bb-pl-title-wrap { flex: 1 1 60%; min-width: 320px; }
.bb-pl-title {
  margin: 0 0 4px; font-size: 22px; font-weight: 700;
  color: var(--bb-ink); line-height: 1.22;
  word-break: normal; overflow-wrap: break-word; hyphens: auto;
  /* cap at 2 lines on very narrow widths so it stays compact */
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.bb-pl-title .term { color: var(--bb-blue); }
.bb-pl-count {
  margin: 0; font-size: 13px; color: var(--bb-muted);
}
.bb-pl-count strong { color: var(--bb-ink); font-weight: 700; }

.bb-pl-toolbar-right { display: flex; align-items: center; gap: 12px; flex-shrink: 0; flex-wrap: wrap; margin-left: auto; }
.bb-pl-sort { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--bb-muted); }
.bb-pl-sort > span { font-weight: 500; }
.bb-pl-sort select {
  height: 40px; border: 1px solid var(--bb-line); border-radius: 8px;
  font-size: 13px; padding: 0 32px 0 12px; font-weight: 500; color: var(--bb-ink);
  background: #fff; cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2375808f'><path d='M4.427 6.427a.6.6 0 0 1 .849 0L8 9.151l2.724-2.724a.6.6 0 1 1 .849.849l-3.149 3.148a.6.6 0 0 1-.848 0L4.427 7.276a.6.6 0 0 1 0-.849z'/></svg>");
  background-repeat: no-repeat; background-position: right 10px center; background-size: 14px;
  -webkit-appearance: none; appearance: none;
}
.bb-pl-sort select:focus { outline: none; border-color: var(--bb-blue-light); box-shadow: 0 0 0 3px rgba(47,111,208,.12); }

.bb-pl-view {
  display: inline-flex; gap: 6px;
}
.bb-pl-view button {
  border: 1px solid var(--bb-line); background: #fff; padding: 8px 14px; border-radius: 8px;
  color: var(--bb-body); cursor: pointer; transition: all .15s ease;
  display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500;
  height: 40px;
}
.bb-pl-view button > i { font-size: 14px; }
.bb-pl-view button:hover:not(.active) { border-color: #c4d6f2; color: var(--bb-blue); }
.bb-pl-view button.active {
  border-color: var(--bb-blue); color: var(--bb-blue); font-weight: 600;
  background: #f3f8ff;
  box-shadow: 0 0 0 1px var(--bb-blue) inset;
}
.bb-pl-filter-btn { display: none; }

/* ---------- Active filter chips strip ---------- */
.bb-pl-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; min-height: 0; }
.bb-pl-chips:empty { display: none; }
.bb-pl-chip {
  display: inline-flex; align-items: center; gap: 6px;
  background: #eaf1fb; color: var(--bb-blue);
  font-size: 12px; font-weight: 600; padding: 5px 10px 5px 12px;
  border-radius: 999px; border: 1px solid #c8dbf5;
}
.bb-pl-chip a { color: var(--bb-blue); opacity: .7; line-height: 0; padding: 2px; border-radius: 50%; }
.bb-pl-chip a:hover { opacity: 1; background: rgba(27,79,156,.12); }
.bb-pl-chip a i { font-size: 11px; }
.bb-pl-chip-clear {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 12px; font-weight: 600; color: var(--bb-orange-dark);
  padding: 5px 8px; cursor: pointer; text-decoration: none;
}
.bb-pl-chip-clear:hover { color: var(--bb-orange); text-decoration: underline; }

/* ---------- "Categories to Explore" — compact pill strip above the grid ---------- */
.bb-pl-explore-head {
  font-size: 11px; font-weight: 700; color: var(--bb-muted);
  letter-spacing: .8px; text-transform: uppercase;
  margin: 0 0 6px; padding: 0 2px;
}
.bb-pl-explore {
  display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 12px;
}
.bb-pl-explore-chip {
  display: inline-block;
  padding: 4px 11px; border-radius: 999px;
  background: #fff; border: 1px solid var(--bb-line);
  color: var(--bb-body); font-size: 12px; font-weight: 500;
  text-decoration: none; cursor: pointer; transition: all .12s ease;
  white-space: nowrap; line-height: 1.4;
}
.bb-pl-explore-chip:hover { border-color: #c4d6f2; color: var(--bb-blue); background: #f7faff; }
.bb-pl-explore-chip.active { background: var(--bb-blue); border-color: var(--bb-blue); color: #fff; font-weight: 600; }

/* ---------- Products grid (GRID VIEW default) ---------- */
.bb-pl-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.bb-pl-card {
  display: flex; flex-direction: column;
  background: #fff; border: 1px solid var(--bb-line); border-radius: var(--bb-radius);
  overflow: hidden; transition: all .18s ease; height: 100%;
  position: relative;
}
.bb-pl-card:hover { box-shadow: var(--bb-shadow-hover); transform: translateY(-3px); border-color: #cdddf3; }
.bb-pl-card .featured-tag {
  position: absolute; top: 10px; left: 10px; z-index: 3;
  background: var(--bb-orange); color: #fff; font-size: 10.5px; font-weight: 700;
  padding: 3px 8px; border-radius: 4px; letter-spacing: .4px;
}
.bb-pl-card-media {
  position: relative; aspect-ratio: 1/1; background: var(--bb-bg);
  display: flex; align-items: center; justify-content: center; overflow: hidden;
  border-bottom: 1px solid var(--bb-line);
}
.bb-pl-card-media .carousel, .bb-pl-card-media .carousel-inner, .bb-pl-card-media .carousel-item { height: 100%; }
.bb-pl-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.bb-pl-card:hover .bb-pl-card-media img { transform: scale(1.05); }
.bb-pl-card-media .carousel-indicators {
  position: absolute; left: 0; right: 0; bottom: 6px; margin: 0;
  display: flex; justify-content: center; gap: 4px; z-index: 4;
}
.bb-pl-card-media .carousel-indicators [data-bs-target] {
  width: 6px; height: 6px; border-radius: 50%; background: rgba(31,42,61,.5);
  border: 1.5px solid #fff; opacity: 1; margin: 0; padding: 0;
  box-shadow: 0 1px 2px rgba(0,0,0,.3);
}
.bb-pl-card-media .carousel-indicators .active { background: var(--bb-orange); width: 16px; border-radius: 4px; }
.bb-pl-card-body { padding: 12px 14px 14px; display: flex; flex-direction: column; flex: 1; gap: 6px; }
.bb-pl-card-title {
  font-size: 13.5px; font-weight: 600; color: var(--bb-ink);
  line-height: 1.35; margin: 0;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  min-height: 36px;
}
.bb-pl-card-title a { color: inherit; text-decoration: none; }
.bb-pl-card-title a:hover { color: var(--bb-blue); }
.bb-pl-card-price { font-family: var(--bb-head); font-size: 15px; font-weight: 700; color: var(--bb-orange-dark); }
.bb-pl-card-price small { font-size: 11px; color: var(--bb-muted); font-weight: 500; }
.bb-pl-card-price-ask a { font-size: 13px; font-weight: 700; color: var(--bb-orange-dark); text-decoration: none; }
.bb-pl-card-price-ask a:hover { text-decoration: underline; }
.bb-pl-card-rating { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--bb-muted); }
.bb-pl-card-rating .stars { color: #f5a623; letter-spacing: 1px; }
.bb-pl-card-supplier { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--bb-body); }
.bb-pl-card-supplier img.flag { width: 16px; height: 16px; border-radius: 2px; flex-shrink: 0; }
.bb-pl-card-supplier .verified { color: var(--bb-green); font-size: 13px; flex-shrink: 0; }
.bb-pl-card-supplier .name {
  flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-weight: 500;
}
/* Stack the action buttons vertically inside grid cards so each one gets the
   full card width — at 3-per-row the cards are too narrow for side-by-side. */
.bb-pl-card-btns { display: flex; flex-direction: column; gap: 6px; margin-top: auto; padding-top: 6px; }
.bb-pl-card-btns .btn {
  width: 100%; padding: 8px 10px; font-size: 12.5px; border-radius: 8px; font-weight: 600;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; line-height: 1.2;
}
/* List view keeps the original horizontal stacking on the right column */
.bb-pl-grid.is-list .bb-pl-card-btns { flex-direction: column; }
.bb-pl-card .item-desc { display: none; }   /* hide in grid; show in list */

/* ---------- LIST VIEW — compact horizontal row ---------- */
.bb-pl-grid.is-list { grid-template-columns: 1fr; gap: 8px; }
.bb-pl-grid.is-list .bb-pl-card { flex-direction: row; height: auto; }
.bb-pl-grid.is-list .bb-pl-card:hover { transform: none; }
/* Smaller square thumbnail — 140 px keeps the row short */
.bb-pl-grid.is-list .bb-pl-card-media {
  flex: 0 0 140px; width: 140px; aspect-ratio: 1/1; border-bottom: 0;
  border-right: 1px solid var(--bb-line);
}
.bb-pl-grid.is-list .bb-pl-card-body {
  padding: 10px 14px; display: grid;
  grid-template-columns: 1fr 170px;
  grid-template-areas:
    "title  btns"
    "rating btns"
    "price  btns"
    "supp   btns";
  gap: 4px 16px; align-items: center;
}
.bb-pl-grid.is-list .bb-pl-card-title {
  grid-area: title; font-size: 14.5px; min-height: 0;
  /* one-line, ellipsis when too long */
  -webkit-line-clamp: 1; display: -webkit-box; -webkit-box-orient: vertical;
  overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
  margin: 0; line-height: 1.3;
}
.bb-pl-grid.is-list .bb-pl-card-rating   { grid-area: rating; font-size: 11.5px; }
.bb-pl-grid.is-list .bb-pl-card-price    { grid-area: price; font-size: 14.5px; }
.bb-pl-grid.is-list .bb-pl-card-price-ask { grid-area: price; }
.bb-pl-grid.is-list .bb-pl-card-price-ask a { font-size: 13px; }
.bb-pl-grid.is-list .bb-pl-card-supplier { grid-area: supp; font-size: 12px; }
.bb-pl-grid.is-list .item-desc { display: none; }   /* hide blurb in compact list */
.bb-pl-grid.is-list .bb-pl-card-btns {
  grid-area: btns; flex-direction: column; gap: 6px;
  padding-top: 0; align-self: center;
}
.bb-pl-grid.is-list .bb-pl-card-btns .btn { padding: 7px 10px; font-size: 12px; }
.bb-pl-grid.is-list .bb-pl-card .featured-tag { top: 8px; left: 8px; }

/* ---------- SUPPLIER CARD additions (reuses .bb-pl-card chassis) ---------- */
.bb-pl-card-sup .bb-pl-card-sup-media {
  background: var(--bb-bg); aspect-ratio: 1/1;
  display: flex; align-items: center; justify-content: center; padding: 18px;
}
.bb-pl-card-sup .bb-pl-card-sup-logo { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.bb-pl-card-sup .bb-pl-card-sup-logo img {
  max-width: 100%; max-height: 100%; width: auto; height: auto;
  object-fit: contain; transition: transform .25s ease; background: transparent;
}
.bb-pl-card-sup:hover .bb-pl-card-sup-logo img { transform: scale(1.06); }
/* override the cover-fit inherited from the base media rule */
.bb-pl-card-sup .bb-pl-card-media img { object-fit: contain; }

.bb-pl-card-verified { color: var(--bb-green); font-size: 14px; margin-left: 6px; }
.bb-pl-card-loc {
  font-size: 12px; color: var(--bb-muted);
  display: flex; align-items: center; gap: 6px; line-height: 1.3;
}
.bb-pl-card-loc i { color: var(--bb-blue); font-size: 12px; flex-shrink: 0; }
.bb-pl-card-contact {
  font-size: 12px; color: var(--bb-body);
  display: flex; align-items: center; gap: 6px; line-height: 1.3;
}
.bb-pl-card-contact i { color: #25d366; font-size: 13px; flex-shrink: 0; }
.bb-pl-card-enq {
  font-size: 11.5px; background: #f3f8ff; border: 1px solid #d6e4f7;
  border-radius: 6px; padding: 5px 8px;
}
.bb-pl-card-enq a { color: var(--bb-blue); display: inline-flex; align-items: center; gap: 5px; }
.bb-pl-card-enq strong { color: var(--bb-ink); font-weight: 600; }

.bb-pl-card-cats { display: flex; flex-wrap: wrap; gap: 4px; margin: 4px 0 2px; }
.bb-pl-card-cat-chip {
  display: inline-block; padding: 3px 8px; border-radius: 999px;
  background: var(--bb-bg); border: 1px solid var(--bb-line);
  color: var(--bb-body); font-size: 10.5px; font-weight: 500;
  text-decoration: none; white-space: nowrap;
  max-width: 100%; overflow: hidden; text-overflow: ellipsis;
}
.bb-pl-card-cat-chip:hover { border-color: #c4d6f2; color: var(--bb-blue); background: #fff; }
.bb-pl-card-cat-more {
  display: inline-block; padding: 3px 7px; border-radius: 999px;
  background: var(--bb-bg); color: var(--bb-muted);
  font-size: 10.5px; font-weight: 600;
}

/* List view tweaks for supplier card — logo column smaller, cats inline */
.bb-pl-grid.is-list .bb-pl-card-sup-media {
  flex: 0 0 110px; width: 110px; padding: 12px;
}
.bb-pl-grid.is-list .bb-pl-card-sup .bb-pl-card-body {
  grid-template-areas:
    "title  btns"
    "rating btns"
    "supp   btns"
    "cats   btns";
}
.bb-pl-grid.is-list .bb-pl-card-sup .bb-pl-card-loc { grid-area: supp; }
.bb-pl-grid.is-list .bb-pl-card-sup .bb-pl-card-contact { display: none; }
.bb-pl-grid.is-list .bb-pl-card-sup .bb-pl-card-enq { display: none; }
.bb-pl-grid.is-list .bb-pl-card-sup .bb-pl-card-cats { grid-area: cats; margin: 0; }

/* ---------- Right rail (advertisement only) ---------- */
.bb-pl-ads { position: sticky; top: 88px; max-height: calc(100vh - 100px); overflow-y: auto; }
.bb-pl-ads::-webkit-scrollbar { width: 6px; }
.bb-pl-ads::-webkit-scrollbar-thumb { background: #d3dbe6; border-radius: 4px; }
.bb-pl-ads .advdata { background: transparent; }
.bb-pl-ads .advdata .container,
.bb-pl-ads .advdata .row { padding: 0; margin: 0; --bs-gutter-x: 0; }
.bb-pl-ads .advdata .row > * { padding: 0 0 12px; }
.bb-pl-ads .advdata article {
  display: block; width: 100% !important; max-width: 100% !important;
  background: #fff; border: 1px solid var(--bb-line); border-radius: var(--bb-radius);
  overflow: hidden; padding: 0;
}
.bb-pl-ads .advdata article a { display: block; }
.bb-pl-ads .advdata img.img-fluid { width: 100%; height: auto; display: block; }
/* The "Sponsored" label is its own <article> at the bottom of the block — strip
   the card chrome so it reads as a subtle caption instead of an empty card. */
.bb-pl-ads .advdata article:last-child:not(:only-child) {
  background: transparent !important; border: 0 !important; box-shadow: none !important;
}
.bb-pl-ads .advdata article p { margin: 0; }
.bb-pl-ads .advdata small { color: var(--bb-muted); font-size: 11px; padding: 4px 4px 0; display: block; }
.bb-pl-ads-empty {
  background: linear-gradient(135deg, #eaf1fb, #f7faff);
  border: 1px dashed #c8dbf5; border-radius: var(--bb-radius);
  padding: 26px 18px; text-align: center; color: var(--bb-muted); font-size: 12.5px;
}
.bb-pl-ads-empty i { font-size: 26px; color: var(--bb-blue); display: block; margin-bottom: 8px; }
.bb-pl-quote-card {
  background: linear-gradient(135deg, var(--bb-blue-dark), var(--bb-blue-light));
  border-radius: var(--bb-radius); padding: 20px 16px; color: #fff;
  text-align: center; margin-bottom: 14px;
}
.bb-pl-quote-card .ic {
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255,255,255,.16); color: #fff; font-size: 20px;
  display: inline-flex; align-items: center; justify-content: center; margin-bottom: 10px;
}
.bb-pl-quote-card p { font-size: 12px; color: rgba(255,255,255,.85); margin: 0 0 4px; }
.bb-pl-quote-card h4 { color: #fff; font-size: 15px; font-weight: 700; margin: 0 0 12px; line-height: 1.3; }
.bb-pl-quote-card .btn { width: 100%; padding: 9px; font-weight: 600; font-size: 13px; }

/* ---------- Empty state ---------- */
.bb-pl-empty {
  grid-column: 1 / -1;
  background: #fff; border: 1px solid var(--bb-line); border-radius: var(--bb-radius);
  padding: 50px 24px; text-align: center;
}
.bb-pl-empty img { max-width: 180px; opacity: .9; margin-bottom: 14px; }
.bb-pl-empty h3 { font-size: 18px; color: var(--bb-ink); margin: 0 0 6px; }
.bb-pl-empty p { color: var(--bb-muted); font-size: 13.5px; margin: 0; }

/* ---------- Load more ---------- */
.bb-pl-loadmore { text-align: center; padding: 22px 0 8px; }
.bb-pl-loadmore .btn {
  padding: 11px 36px; border-radius: 999px; font-weight: 600;
  font-size: 13.5px; letter-spacing: .3px;
}

/* ---------- Responsive ---------- */
@media (max-width: 1199px) {
  .bb-pl .container-bb { grid-template-columns: 260px 1fr 200px; gap: 18px; }
  .bb-pl-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .bb-pl-title { font-size: 20px; }
  .bb-pl-title-wrap { min-width: 260px; }
}
@media (max-width: 991px) {
  .bb-pl .container-bb { grid-template-columns: 260px 1fr; gap: 16px; }
  .bb-pl-ads-col { display: none; }   /* hide right rail on tablet/mobile */
  .bb-pl-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 767px) {
  .bb-pl { padding: 14px 0 30px; }
  .bb-pl .container-bb { grid-template-columns: 1fr; gap: 12px; }

  /* Drawer becomes a proper bottom-sheet-style mobile sheet:
     fixed header / scrollable middle / sticky Reset–Apply footer. */
  .bb-pl-aside {
    position: fixed; top: 0; left: 0; bottom: 0; right: 0; width: 100vw; max-width: 420px;
    max-height: none; border-radius: 0; z-index: 1100;
    transform: translateX(-100%); transition: transform .25s ease;
    box-shadow: 0 0 30px rgba(8,22,50,.2);
    background: var(--bb-bg);
    display: flex; flex-direction: column; gap: 0; padding: 0;
  }
  .bb-pl-aside.show { transform: translateX(0); }

  .bb-pl-aside-mhead {
    display: flex; align-items: center; justify-content: space-between;
    padding: 14px 16px; background: #fff; border-bottom: 1px solid var(--bb-line);
    flex: 0 0 auto;
  }
  .bb-pl-aside-mhead h4 {
    margin: 0; font-size: 16px; font-weight: 700; color: var(--bb-ink);
    display: inline-flex; align-items: center; gap: 8px;
  }
  .bb-pl-aside-mhead h4 i { color: var(--bb-blue); font-size: 16px; }
  .bb-pl-aside-close {
    border: 0; background: var(--bb-bg); color: var(--bb-ink);
    width: 32px; height: 32px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 13px; cursor: pointer;
  }
  .bb-pl-aside-close:hover { background: var(--bb-orange); color: #fff; }

  .bb-pl-aside-body {
    display: flex; flex-direction: column; gap: 12px;
    flex: 1 1 auto; min-height: 0; overflow-y: auto;
    padding: 12px;
  }

  .bb-pl-aside-mfoot {
    display: grid; grid-template-columns: 1fr 2fr; gap: 10px;
    padding: 12px 14px calc(12px + env(safe-area-inset-bottom, 0px));
    background: #fff; border-top: 1px solid var(--bb-line);
    flex: 0 0 auto;
  }
  .bb-pl-aside-mfoot .btn {
    height: 46px; border-radius: 10px; font-size: 14px; font-weight: 600;
    display: inline-flex; align-items: center; justify-content: center;
  }
  .bb-pl-aside-mfoot .btn-outline-secondary {
    border: 1px solid var(--bb-line); background: #fff; color: var(--bb-ink);
  }
  .bb-pl-aside-mfoot .btn-outline-secondary:hover { background: var(--bb-bg); }

  /* Re-cap categories card so it doesn't dominate the drawer body; the body
     itself is scrollable so each card can be its natural height. */
  .bb-pl-aside-block.is-cats { max-height: none; min-height: 0; }
  .bb-pl-filter-btn {
    display: inline-flex; align-items: center; gap: 6px;
    border: 1px solid var(--bb-line); background: #fff; border-radius: 8px;
    padding: 8px 12px; font-size: 13px; font-weight: 600; color: var(--bb-ink);
    cursor: pointer;
  }
  .bb-pl-filter-btn:hover { border-color: #c4d6f2; color: var(--bb-blue); }
  .bb-pl-filter-btn i { color: var(--bb-blue); }
  .bb-pl-crumbs { font-size: 11.5px; gap: 4px; margin-bottom: 6px; }
  .bb-pl-toolbar { padding: 0 2px 10px; gap: 8px; }
  .bb-pl-title { font-size: 18px; }
  .bb-pl-count { font-size: 12px; }

  /* Mobile toolbar row: [ Filters ] [ Sort fills ] [ Grid ][ List ] */
  .bb-pl-toolbar-right {
    width: 100%; gap: 8px; flex-wrap: nowrap; align-items: center;
  }
  .bb-pl-filter-btn {
    height: 38px; flex: 0 0 auto; padding: 0 12px;
    border-radius: 8px; font-size: 12.5px;
    display: inline-flex; align-items: center; gap: 6px;
  }
  /* Sort grows to fill the remaining space between Filters and the view toggle */
  .bb-pl-sort { flex: 1 1 auto; font-size: 12px; min-width: 0; }
  .bb-pl-sort > span { display: none; }
  .bb-pl-sort select {
    width: 100%; height: 38px; padding: 0 30px 0 12px; font-size: 12.5px;
    background-position: right 8px center;
  }
  /* Grid/List sit together as a segmented control — share the border */
  .bb-pl-view { flex: 0 0 auto; gap: 0; }
  .bb-pl-view button {
    height: 38px; padding: 0 12px;
    border-radius: 0; border-right-width: 0;
  }
  .bb-pl-view button > i { font-size: 15px; }
  .bb-pl-view button > span { display: none; }
  .bb-pl-view button:first-child { border-radius: 8px 0 0 8px; }
  .bb-pl-view button:last-child { border-radius: 0 8px 8px 0; border-right-width: 1px; }
  /* Active overlap: re-add right border for first if active so it doesn't sink */
  .bb-pl-view button.active { border-right-width: 1px; }
  .bb-pl-view button.active + button { margin-left: -1px; }
  .bb-pl-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
  .bb-pl-card-title { font-size: 12.5px; min-height: 32px; }
  .bb-pl-card-price { font-size: 13.5px; }
  .bb-pl-card-btns { flex-direction: column; }
  /* on mobile, list view collapses to a compact horizontal row */
  .bb-pl-grid.is-list .bb-pl-card-media { flex: 0 0 110px; width: 110px; }
  .bb-pl-grid.is-list .bb-pl-card-body {
    grid-template-columns: 1fr;
    grid-template-areas: "title" "rating" "price" "supp" "btns";
    padding: 12px;
  }
  .bb-pl-grid.is-list .item-desc { display: none; }
  .bb-pl-grid.is-list .bb-pl-card-btns { flex-direction: row; padding-top: 6px; }
  .bb-pl-grid.is-list .bb-pl-card-title { font-size: 13.5px; }
  .bb-pl-grid.is-list .bb-pl-card-price { font-size: 14.5px; }

  /* Supplier card list view at mobile — stack into a single column with
     buttons running full-width along the bottom (not next to the body). */
  .bb-pl-grid.is-list .bb-pl-card-sup .bb-pl-card-body {
    grid-template-columns: 1fr;
    grid-template-areas:
      "title"
      "rating"
      "supp"
      "cats"
      "btns";
    padding: 10px 12px;
  }
  .bb-pl-grid.is-list .bb-pl-card-sup .bb-pl-card-btns {
    flex-direction: row; gap: 6px; padding-top: 6px;
    margin: 0; align-self: stretch;
  }
  .bb-pl-grid.is-list .bb-pl-card-sup .bb-pl-card-btns .btn {
    flex: 1; min-width: 0; padding: 8px 6px; font-size: 11.5px;
  }
  .bb-pl-grid.is-list .bb-pl-card-sup-media {
    flex: 0 0 90px; width: 90px; padding: 8px;
  }
}
@media (max-width: 480px) {
  .bb-pl-grid { grid-template-columns: 1fr; }
}

/* drawer backdrop reused for filter aside on mobile */
.bb-pl-aside-backdrop {
  position: fixed; inset: 0; background: rgba(8,22,50,.55);
  opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s ease;
  z-index: 1095;
}
.bb-pl-aside-backdrop.show { opacity: 1; visibility: visible; }

/* ==========================================================================
   SELLER / BUYER DASHBOARD SIDEBAR — modern card with profile + grouped menu
   ========================================================================== */
.bb-dash-sidebar {
  width: 100%;
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  overflow: hidden; box-shadow: 0 2px 8px rgba(20, 40, 80, .04);
  display: flex; flex-direction: column;
  font-family: var(--bb-font);
}

/* ---------- Profile card at the top — clean white per reference ---------- */
.bb-dash-profile {
  position: relative; padding: 20px 16px 18px; text-align: center;
  background: #fff;
  border-bottom: 1px solid var(--bb-line);
}
.bb-dash-avatar {
  position: relative; width: 64px; height: 64px; margin: 0 auto 12px;
  border-radius: 50%; padding: 0; background: var(--bb-blue);
  border: 0;
  box-shadow: none;
}
.bb-dash-avatar > img {
  width: 100% !important; height: 100% !important; border-radius: 50%;
  object-fit: cover; background: #fff; display: block;
}
.bb-dash-avatar-edit {
  position: absolute; right: -2px; bottom: -2px; z-index: 2;
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--bb-orange); color: #fff; border: 2px solid #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; cursor: pointer; padding: 0;
  box-shadow: 0 2px 6px rgba(0,0,0,.14);
}
.bb-dash-avatar-edit:hover { background: var(--bb-orange-dark); }

.bb-dash-profile-name {
  color: var(--bb-ink); font-size: 15px; font-weight: 700; margin: 0 0 2px;
  line-height: 1.3;
  word-break: break-word;
}
.bb-dash-profile-tier {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11.5px; font-weight: 700;
  padding: 3px 10px; border-radius: 999px;
  margin-bottom: 14px;
  text-transform: uppercase; letter-spacing: .4px;
}
.bb-dash-profile-tier.is-premium {
  background: linear-gradient(135deg, #fff4e6, #ffe1c4);
  color: #b8650e; border: 1px solid #fad9b3;
}
.bb-dash-profile-tier.is-premium i { color: var(--bb-orange); font-size: 12px; }
.bb-dash-profile-tier.is-free {
  background: var(--bb-bg); color: var(--bb-muted); border: 1px solid var(--bb-line);
}

.bb-dash-profile-cta {
  display: block; width: 100%; padding: 9px 12px;
  background: #fff; color: var(--bb-blue);
  border: 1px solid var(--bb-blue);
  border-radius: 8px; font-size: 13px; font-weight: 600;
  text-decoration: none; text-align: center;
  transition: all .15s ease;
}
.bb-dash-profile-cta:hover { background: var(--bb-blue); color: #fff; }

/* ---------- Nav ---------- */
.bb-dash-nav { padding: 8px 8px 4px; flex: 1 1 auto; min-height: 0; overflow: visible; }

.bb-dash-section-title {
  font-size: 11px; font-weight: 700; color: var(--bb-muted);
  letter-spacing: 1.2px; text-transform: uppercase;
  padding: 18px 14px 8px;
}

.bb-dash-menu { list-style: none; padding: 0; margin: 0 0 4px; }
.bb-dash-menu > li { margin: 0; }
.bb-dash-link {
  display: flex; align-items: center; gap: 14px;
  padding: 10px 14px; margin: 0; border-radius: 10px;
  color: var(--bb-ink); font-size: 13.5px; font-weight: 500;
  text-decoration: none; transition: background .15s ease, color .15s ease;
  position: relative; line-height: 1.3;
}
.bb-dash-link > i {
  width: 20px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 17px; color: var(--bb-muted); transition: color .15s ease;
  font-weight: 400;
}
.bb-dash-link > span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Right-aligned status badges/tags (e.g. "12" counter, "New" pill) */
.bb-dash-link .bb-dash-count {
  flex-shrink: 0;
  font-size: 11px; font-weight: 700; color: var(--bb-blue);
  background: #fff; border: 1px solid #c8dbf5; border-radius: 6px;
  padding: 1px 8px; min-width: 24px; text-align: center;
}
.bb-dash-link .bb-dash-tag {
  flex-shrink: 0;
  font-size: 10px; font-weight: 700; color: var(--bb-green);
  background: #e8f7ee; border: 1px solid #bde6ce; border-radius: 6px;
  padding: 1px 7px; letter-spacing: .3px; text-transform: uppercase;
}

.bb-dash-link:hover { background: var(--bb-bg); color: var(--bb-ink); }
.bb-dash-link:hover > i { color: var(--bb-blue); }

/* Active — light blue tint + blue text/icon. The pill extends flush to BOTH
   sidebar walls; the slim blue accent bar attaches seamlessly to the square
   left edge, and the right side runs all the way to the sidebar's right wall. */
.bb-dash-link.active {
  background: #e9f1fb;
  color: var(--bb-blue);
  font-weight: 600;
  box-shadow: none;
  margin-left: -8px;            /* defeat .bb-dash-nav left padding  */
  margin-right: -8px;           /* defeat .bb-dash-nav right padding */
  padding-left: 22px;           /* re-pad inner content to keep icon aligned */
  padding-right: 22px;
  border-radius: 0;             /* flush on both walls */
}
.bb-dash-link.active > i { color: var(--bb-blue); }
.bb-dash-link.active::before {
  content: ""; position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px; border-radius: 0; background: var(--bb-blue);
}

/* ---------- Logout footer (plain red text — matches reference) ---------- */
.bb-dash-foot {
  border-top: 1px solid var(--bb-line);
  padding: 10px 8px;
}
.bb-dash-logout {
  display: flex; align-items: center; gap: 14px;
  padding: 10px 14px; border-radius: 10px;
  color: #d24545; background: transparent; border: 0;
  font-size: 13.5px; font-weight: 600; text-decoration: none;
  transition: background .15s ease, color .15s ease;
}
.bb-dash-logout > i { font-size: 17px; color: #d24545; }
.bb-dash-logout:hover { background: #fef2f2; color: #b8302c; }
.bb-dash-logout:hover > i { color: #b8302c; }

/* ---------- Layout inside .dashboard-container ---------- */
.dashboard-container {
  display: grid; grid-template-columns: 240px 1fr; gap: 22px; align-items: start;
  max-width: 1240px; width: 100%;
  margin: 0 auto;
  padding: 22px 16px;
}
.dashboard-container .bb-dash-sidebar {
  position: sticky; top: 88px; max-height: none;
  width: 100%; flex: none; /* defeat legacy .dashboard-sidebar flex: 0 0 250px */
}
/* Inner content keeps its own spacing — pad the content area so cards have
   breathing room from the column edge. */
.dashboard-container > .dashboard-content-container { padding: 0; min-width: 0; }
.dashboard-container > .dashboard-content-container > .dashboard-content-inner { padding: 0; }

@media (max-width: 991px) {
  .dashboard-container { grid-template-columns: 230px 1fr; gap: 16px; padding: 14px 14px; }
  .bb-dash-profile { padding: 18px 14px 14px; }
  .bb-dash-avatar { width: 70px; height: 70px; }
  .bb-dash-profile-name { font-size: 14px; }
}
@media (max-width: 767px) {
  .dashboard-container { grid-template-columns: 1fr; gap: 12px; padding: 14px 12px; }
  .dashboard-container .bb-dash-sidebar {
    position: fixed; top: 0; left: 0; bottom: 0; right: auto;
    width: 88vw; max-width: 320px; z-index: 1100;
    max-height: none; border-radius: 0;
    transform: translateX(-100%); transition: transform .25s ease;
    box-shadow: 0 0 40px rgba(8,22,50,.2);
  }
  .dashboard-container .bb-dash-sidebar.show { transform: translateX(0); }
}

/* ==========================================================================
   DASHBOARD CONTENT — stat strip, chart, list cards
   ========================================================================== */

/* Stat strip palette helpers (icon tints reused across cards / list items).
   Defaults are SOFT pastel — used by the small list-item avatars. The stat
   strip overrides these to bold, solid backgrounds (see .bb-dash-stat-ic). */
.bb-stat-blue        { background: #e6efff; color: #2f6fd0; }
.bb-stat-blue-soft   { background: #e7f4fb; color: #1e88c1; }
.bb-stat-green       { background: #e1f5ec; color: #1ca35a; }
.bb-stat-mint        { background: #e6f5ef; color: #4cb491; }
.bb-stat-purple      { background: #efe9fb; color: #7b5dc5; }
.bb-stat-orange      { background: #fdeedd; color: #e07a1e; }
.bb-stat-orange-soft { background: #fff1e6; color: #ed8a3e; }
.bb-stat-pink        { background: #fde6ee; color: #d75080; }

/* ---------- Stat strip ----------
   `auto-fit` keeps each card at a sensible minimum (170 px) and packs as many
   as fit per row — so 5 or 6 cards both lay out cleanly without hard-coded
   column counts. */
.bb-dash-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}
/* keep ENTIRE card clickable when wrapped in <a> */
a.bb-dash-stat { color: inherit; text-decoration: none; }
.bb-dash-stat {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  padding: 14px 16px;
  display: flex; align-items: center; gap: 12px;
  min-height: 86px;
  box-shadow: 0 2px 6px rgba(20,40,80,.04);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.bb-dash-stat:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(20,40,80,.08); border-color: #d8e2f0; }
.bb-dash-stat-ic {
  flex-shrink: 0;
  width: 44px; height: 44px; border-radius: 12px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 19px; color: #fff !important;
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
}
/* Bold solid backgrounds — override the soft tints (used elsewhere on
   list-item avatars). The stat strip is the primary visual hierarchy on the
   dashboard so the icons read clearly across the row. */
.bb-dash-stat .bb-dash-stat-ic.bb-stat-blue        { background: linear-gradient(135deg, #4f8df0, #2f6fd0); }
.bb-dash-stat .bb-dash-stat-ic.bb-stat-green       { background: linear-gradient(135deg, #2ecf7d, #1ca35a); }
.bb-dash-stat .bb-dash-stat-ic.bb-stat-purple      { background: linear-gradient(135deg, #a98bef, #7b5dc5); }
.bb-dash-stat .bb-dash-stat-ic.bb-stat-orange      { background: linear-gradient(135deg, #ff9d4d, #e07a1e); }
.bb-dash-stat .bb-dash-stat-ic.bb-stat-orange-soft { background: linear-gradient(135deg, #ffa971, #ed8a3e); }
.bb-dash-stat .bb-dash-stat-ic.bb-stat-pink        { background: linear-gradient(135deg, #ef739c, #d75080); }
.bb-dash-stat .bb-dash-stat-ic.bb-stat-blue-soft   { background: linear-gradient(135deg, #45afe0, #1e88c1); }
.bb-dash-stat .bb-dash-stat-ic.bb-stat-mint        { background: linear-gradient(135deg, #6dc9a8, #4cb491); }
.bb-dash-stat-body { min-width: 0; flex: 1; }
.bb-dash-stat-label {
  font-size: 12.5px; color: var(--bb-muted); font-weight: 600; letter-spacing: .1px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.bb-dash-stat-num {
  font-size: 22px; font-weight: 800; color: var(--bb-ink); line-height: 1.1;
  margin: 2px 0 0; font-family: var(--bb-head);
  letter-spacing: -.3px;
}
.bb-dash-stat-change {
  display: inline-flex; align-items: center; gap: 3px;
  font-size: 11.5px; font-weight: 700; margin-top: 4px;
}
.bb-dash-stat-change.is-up   { color: #1ca35a; }
.bb-dash-stat-change.is-down { color: #d24545; }
.bb-dash-stat-change i { font-size: 11.5px; }
.bb-dash-stat-meta { font-size: 11px; color: var(--bb-muted); margin-top: 3px; line-height: 1.3; }
.bb-dash-stat-meta strong { color: var(--bb-ink); font-weight: 700; }

/* ---------- Generic content card ---------- */
.bb-dash-card {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 12px;
  padding: 16px 18px;
  margin-bottom: 18px;
  box-shadow: 0 2px 6px rgba(20,40,80,.04);
  min-width: 0;          /* allow grid item to shrink below intrinsic width */
  overflow: hidden;      /* clip any descendant that ignored the shrink */
}
.bb-dash-row-2 > * { min-width: 0; }
.bb-dash-card-head { min-width: 0; }
.bb-dash-card-head h3 { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bb-dash-card-head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin-bottom: 14px; flex-wrap: wrap;
}
.bb-dash-card-head h3 { margin: 0; font-size: 15px; font-weight: 700; color: var(--bb-ink); }
.bb-dash-view-all { color: var(--bb-blue); font-size: 12.5px; font-weight: 600; text-decoration: none; }
.bb-dash-view-all:hover { text-decoration: underline; }
.bb-dash-card-foot-link {
  display: inline-block; margin-top: 8px; color: var(--bb-blue);
  font-size: 12.5px; font-weight: 600; text-decoration: none;
}
.bb-dash-card-foot-link:hover { text-decoration: underline; }

/* ---------- Chart card ---------- */
.bb-dash-chart-tools {
  display: flex; align-items: center; gap: 16px;
}
.bb-dash-legend { display: flex; align-items: center; gap: 14px; font-size: 12px; color: var(--bb-ink); }
.bb-dash-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.bb-dash-legend .dot {
  display: inline-block; width: 18px; height: 2.5px; background: var(--bb-blue);
  border-radius: 2px;
}
.bb-dash-legend .dot.dashed {
  background: transparent;
  background-image: linear-gradient(90deg, var(--bb-blue) 60%, transparent 0);
  background-size: 5px 2.5px;
}
.bb-dash-range {
  height: 34px; border: 1px solid var(--bb-line); border-radius: 8px;
  padding: 0 28px 0 12px; font-size: 12.5px; color: var(--bb-ink); background: #fff;
  -webkit-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2375808f'><path d='M4.43 6.43a.6.6 0 0 1 .85 0L8 9.15l2.72-2.72a.6.6 0 1 1 .85.85l-3.15 3.15a.6.6 0 0 1-.85 0L4.43 7.28a.6.6 0 0 1 0-.85z'/></svg>");
  background-repeat: no-repeat; background-position: right 8px center; background-size: 12px;
  cursor: pointer;
}
.bb-dash-chart-canvas { width: 100%; padding: 8px 0 0; position: relative; height: 320px; }
/* DO NOT force width/height on the canvas — Chart.js owns those attributes and
   uses them to set the internal pixel buffer at the correct DPR. Overriding
   them with CSS made the chart render at 100x120 and upscale (= blur). */
.bb-dash-chart-canvas > canvas { display: block; }
.bb-dash-chart-svg { width: 100%; height: auto; aspect-ratio: 700 / 320; max-height: 360px; display: block; }
@media (max-width: 767px) {
  .bb-dash-chart-canvas { height: 240px; }
}
.bb-dash-chart-grid line { stroke: #eef1f6; stroke-width: 1; }
.bb-dash-chart-labels text { fill: var(--bb-muted); font-size: 11px; font-family: var(--bb-font); text-anchor: end; }
.bb-dash-chart-labels.bb-dash-chart-x text { text-anchor: middle; }
.bb-dash-chart-line { fill: none; stroke: var(--bb-blue); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.bb-dash-chart-line.bb-line-dashed { stroke-dasharray: 6 5; }
.bb-dash-chart-dots circle { fill: var(--bb-blue); }

/* ---------- 2-column rows of content cards ---------- */
.bb-dash-row-2 {
  display: grid; grid-template-columns: 1fr 1fr; gap: 18px;
  margin-bottom: 18px;
}

/* ---------- Lists inside cards ---------- */
.bb-dash-list { list-style: none; margin: 0; padding: 0; }
.bb-dash-list-item {
  display: grid; grid-template-columns: 40px 1fr auto;
  gap: 12px; align-items: center;
  padding: 9px 0; border-bottom: 1px solid var(--bb-line);
}
.bb-dash-list-item:last-child { border-bottom: 0; }
.bb-dash-list-ic {
  width: 36px; height: 36px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 700;
}
.bb-dash-list-ic.is-plain { background: var(--bb-bg); color: var(--bb-muted); }
.bb-dash-list-thumb {
  width: 38px; height: 38px; border-radius: 8px;
  background: var(--bb-bg); border: 1px solid var(--bb-line);
  display: inline-flex; align-items: center; justify-content: center; overflow: hidden;
}
.bb-dash-list-thumb img { width: 100%; height: 100%; object-fit: cover; }
.bb-dash-list-body { min-width: 0; }
.bb-dash-list-title {
  font-size: 13.5px; font-weight: 600; color: var(--bb-ink);
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap; line-height: 1.3;
}
.bb-dash-list-sub {
  font-size: 12px; color: var(--bb-muted); margin-top: 2px;
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.bb-dash-list-sub strong { color: var(--bb-ink); font-weight: 600; }
.bb-dash-list-meta {
  font-size: 11.5px; color: var(--bb-muted); white-space: nowrap;
  align-self: center;
}
.bb-dash-list-meta.is-up { color: #1ca35a; font-weight: 700; }
.bb-dash-list-meta.is-up i { font-size: 11px; }
.bb-dash-list-action {
  border: 0; background: transparent; color: var(--bb-muted);
  width: 32px; height: 32px; border-radius: 50%; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; font-size: 14px;
  transition: all .15s ease;
}
.bb-dash-list-action:hover { background: var(--bb-bg); color: var(--bb-blue); }

/* Anchors used inside list items should keep the palette's own contrast colour
   (e.g. dark blue letter on pale-blue circle) — don't force white text, that
   reads as invisible on the soft pastel avatars used in Recent Leads. */
a.bb-dash-list-ic { text-decoration: none; }
.bb-dash-list-title a { color: inherit; text-decoration: none; }
.bb-dash-list-title a:hover { color: var(--bb-blue); }
a.bb-dash-list-action { text-decoration: none; }

/* ==========================================================================
   BOOTBOX DIALOGS — Confirm / Alert popups used site-wide. Styled to match the
   .bb-modal shell so delete confirmations / success alerts feel consistent.
   ========================================================================== */

/* DEFEAT legacy custom.css that absolutely-positioned buttons inside the
   .modal-header (designed for old bootbox v3). Force the header back to a
   flex row with title + close X only, and ensure footer buttons stay at the
   bottom in their proper place. */
.bootbox .modal-header { display: flex !important; position: relative; }
.bootbox .modal-header > .pull-right,
.bootbox .modal-header > .pull-left,
.bootbox .modal-header .btn-success,
.bootbox .modal-header .btn-primary,
.bootbox .modal-header .btn-black,
.bootbox .modal-header .btn-danger,
.bootbox .modal-header .btn-site,
.bootbox .modal-header .btn-dark {
  position: static !important; top: auto !important; right: auto !important; left: auto !important;
}
/* Bootbox button classNames in the page JS still use `pull-right` / `pull-left`
   (legacy Bootstrap 3 floats removed in BS5). Make them no-ops globally. */
.bootbox .pull-right, .bootbox .pull-left { float: none !important; }
/* Footer is a flex row, not affected by float — make sure it stays visible
   at the bottom of the dialog with proper spacing. */
.bootbox .modal-footer {
  display: flex !important; flex-wrap: wrap; justify-content: flex-end;
}

.bootbox .modal-dialog { margin: 1.75rem auto; max-width: 420px; }
.bootbox .modal-content {
  border: 0; border-radius: 14px; overflow: hidden;
  box-shadow: 0 20px 50px rgba(8,22,50,.25), 0 8px 20px rgba(8,22,50,.1);
}
.bootbox .modal-header {
  background: #fff; border-bottom: 1px solid var(--bb-line);
  padding: 16px 20px;
}
.bootbox .modal-title {
  font-family: var(--bb-head); font-size: 16px; font-weight: 700;
  color: var(--bb-ink); margin: 0;
}
.bootbox .modal-header .btn-close,
.bootbox .modal-header .bootbox-close-button {
  margin-left: auto; margin-top: 0; padding: 8px; opacity: .55;
  background-size: 12px; transition: opacity .15s ease;
}
.bootbox .modal-header .btn-close:hover { opacity: 1; }
.bootbox .modal-body {
  padding: 22px 24px;
  font-size: 14px; color: var(--bb-body); line-height: 1.5;
}
.bootbox .modal-body p { margin: 0; }
.bootbox .modal-footer {
  background: #fff; border-top: 1px solid var(--bb-line);
  padding: 12px 16px; gap: 8px;
}
.bootbox .modal-footer .btn {
  padding: 9px 18px; font-size: 13.5px; font-weight: 600; border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-width: 96px;
}

/* Bootbox button colour fixes — its defaults use legacy Bootstrap classes */
.bootbox .btn-primary,
.bootbox .btn-site {
  background: var(--bb-blue); border-color: var(--bb-blue); color: #fff;
}
.bootbox .btn-primary:hover,
.bootbox .btn-site:hover {
  background: var(--bb-blue-dark); border-color: var(--bb-blue-dark); color: #fff;
}
.bootbox .btn-dark,
.bootbox .btn-default {
  background: #fff; border: 1px solid var(--bb-line); color: var(--bb-ink);
}
.bootbox .btn-dark:hover,
.bootbox .btn-default:hover {
  background: var(--bb-bg); border-color: #c4d6f2; color: var(--bb-blue);
}

/* Confirm dialogs (.bootbox-confirm) get a danger-tinted primary so delete
   actions read as destructive. The "confirm" button on a confirm dialog is
   .bootbox-accept; "cancel" is .bootbox-cancel. */
.bootbox-confirm .modal-content { border-top: 4px solid #c0392b; }
.bootbox-confirm .modal-header { display: flex; align-items: center; gap: 10px; }
.bootbox-confirm .modal-title::before {
  content: ""; display: inline-block; width: 26px; height: 26px;
  margin-right: 6px; border-radius: 50%;
  background: #fff5f4 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23c0392b'><path d='M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 4.995z'/><path d='M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm0-1A7 7 0 1 1 8 1a7 7 0 0 1 0 14z'/></svg>") no-repeat center / 16px;
  vertical-align: middle;
}
.bootbox-confirm .bootbox-accept,
.bootbox-confirm .modal-footer .btn-primary:last-child,
.bootbox-confirm .modal-footer .btn-site:last-child {
  background: #c0392b !important; border-color: #c0392b !important; color: #fff !important;
}
.bootbox-confirm .bootbox-accept:hover,
.bootbox-confirm .modal-footer .btn-primary:last-child:hover {
  background: #a02520 !important; border-color: #a02520 !important;
}

/* Tighten on mobile */
@media (max-width: 575px) {
  .bootbox .modal-dialog { margin: 1rem; max-width: none; }
  .bootbox .modal-header { padding: 14px 18px; }
  .bootbox .modal-body { padding: 18px; font-size: 13.5px; }
  .bootbox .modal-footer { padding: 10px 14px; flex-direction: row; }
  .bootbox .modal-footer .btn { min-width: 0; flex: 1; }
}

/* Danger variant of the list action button — mirrors .btn-icon-danger on My
   Products so delete actions read consistently across the dashboard:
   outlined pink pill at rest, solid red on hover. */
.bb-list-action-danger {
  border: 1px solid #f5d0cc !important;
  background: #fff5f4 !important;
  color: #c0392b !important;
  border-radius: 8px !important;     /* squared pill, not the round avatar shape */
  width: 36px !important;
  height: 36px !important;
}
.bb-list-action-danger:hover {
  background: #c0392b !important;
  color: #fff !important;
  border-color: #c0392b !important;
}
.bb-list-action-danger > i { font-size: 14px; }

/* When a list item carries two action buttons on its right (View + Delete on
   Saved Searches), expand the grid to a four-column layout that fits both. */
.bb-dash-list-search .bb-dash-list-item:has(.bb-dash-list-action + .bb-dash-list-action) {
  grid-template-columns: 40px 1fr auto auto;
  gap: 6px;
}
@media (max-width: 767px) {
  .bb-dash-list-search .bb-dash-list-item:has(.bb-dash-list-action + .bb-dash-list-action) {
    grid-template-columns: 36px 1fr auto auto;
  }
}

/* Empty state inside a card */
.bb-dash-empty {
  padding: 22px 4px; text-align: center;
  color: var(--bb-muted); font-size: 13px;
}

/* ==========================================================================
   LEAD PAGES — Product Leads / Category Leads (modern card UI)
   ========================================================================== */

/* Tabs */
.bb-dash-tabs {
  display: flex; flex-wrap: wrap; gap: 6px;
  background: #fff; padding: 6px; border-radius: 12px;
  border: 1px solid var(--bb-line); margin: 0 0 16px;
}
.bb-dash-tab {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 16px; border-radius: 8px;
  color: var(--bb-body); font-size: 13.5px; font-weight: 600;
  text-decoration: none; transition: all .15s ease;
}
.bb-dash-tab > i { font-size: 14px; }
.bb-dash-tab:hover { background: var(--bb-bg); color: var(--bb-blue); }
.bb-dash-tab.active {
  background: var(--bb-blue); color: #fff;
  box-shadow: 0 4px 10px rgba(27,79,156,.18);
}
.bb-dash-tab.active > i { color: #fff; }

/* Page header (title + count) */
.bb-dash-page-head {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 14px;
  margin: 0 0 14px; flex-wrap: wrap;
}
.bb-dash-page-head h1 {
  margin: 0; font-size: 22px; font-weight: 700; color: var(--bb-ink); line-height: 1.2;
}
.bb-dash-page-head .sub { color: var(--bb-muted); font-size: 13px; margin-top: 4px; }
.bb-dash-page-head .count {
  background: #e9f1fb; color: var(--bb-blue);
  font-size: 12px; font-weight: 700;
  padding: 4px 12px; border-radius: 999px;
}
/* On mobile the header wraps to two rows — give the secondary item
   (Add Product button / count chip / etc.) its own top margin so it
   doesn't snug right under the sub-line. */
@media (max-width: 575px) {
  .bb-dash-page-head { gap: 8px; margin-bottom: 16px; }
  .bb-dash-page-head h1 { font-size: 19px; }
  .bb-dash-page-head .sub { font-size: 12.5px; }
  .bb-dash-page-head > :not(:first-child) { margin-top: 8px; }
}

/* Filter row */
.bb-lead-filters {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 12px;
  padding: 14px 16px; margin-bottom: 16px;
  box-shadow: 0 2px 6px rgba(20,40,80,.04);
}
.bb-lead-filters .bb-filter-grid {
  display: grid; gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
.bb-lead-filters .form-floating { margin: 0; }
.bb-lead-filters .form-control,
.bb-lead-filters .form-select {
  height: 44px; border: 1px solid var(--bb-line); border-radius: 8px;
  font-size: 13px;
}
.bb-lead-filters .form-floating > label { padding: 0.85rem 0.75rem; font-size: 13px; }

/* Lead card */
.bb-lead-card {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 12px;
  margin-bottom: 14px; padding: 18px;
  box-shadow: 0 2px 6px rgba(20,40,80,.04);
  transition: box-shadow .15s ease, border-color .15s ease;
}
.bb-lead-card:hover { box-shadow: 0 6px 16px rgba(20,40,80,.07); border-color: #d8e2f0; }

.bb-lead-card-head {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 12px; flex-wrap: wrap; margin-bottom: 12px;
}
.bb-lead-card-head h3 {
  margin: 0; font-size: 16px; font-weight: 700; color: var(--bb-ink); line-height: 1.3; flex: 1; min-width: 0;
}
.bb-lead-card-head p {
  margin: 6px 0 0; font-size: 13px; color: var(--bb-body); width: 100%;
}
.bb-lead-card-tags { display: flex; gap: 6px; flex-wrap: wrap; flex-shrink: 0; }

/* Stage badges */
.bb-lead-tag {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 999px;
  letter-spacing: .2px; text-transform: capitalize; white-space: nowrap;
}
.bb-lead-tag.is-open      { background: #e1f5ec; color: #1ca35a; }
.bb-lead-tag.is-closed    { background: #f5e7e7; color: #c0392b; }
.bb-lead-tag.is-proposal  { background: #e6efff; color: #2f6fd0; }
.bb-lead-tag.is-qualify   { background: #efe9fb; color: #7b5dc5; }
.bb-lead-tag.is-scheduled { background: #fef1d8; color: #c87b1c; }
.bb-lead-tag.is-priority-low    { background: #f1f3f7; color: #6c757d; }
.bb-lead-tag.is-priority-medium { background: #fff3cd; color: #b8851b; }
.bb-lead-tag.is-priority-high   { background: #fde6ee; color: #d75080; }

/* Buyer details — two-column grid of label/value pairs */
.bb-lead-section-title {
  font-size: 11.5px; font-weight: 700; color: var(--bb-muted);
  letter-spacing: .8px; text-transform: uppercase;
  margin: 4px 0 10px;
}
.bb-lead-info {
  display: grid; gap: 8px 22px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 10px 14px; border-radius: 10px;
  background: var(--bb-bg);
}
.bb-lead-info-row { display: flex; gap: 8px; min-width: 0; align-items: baseline; flex-wrap: wrap; }
.bb-lead-info-row .lbl {
  color: var(--bb-muted); font-size: 12.5px; font-weight: 600;
  min-width: 130px; flex-shrink: 0;
}
.bb-lead-info-row .val {
  color: var(--bb-ink); font-size: 13px; font-weight: 500; min-width: 0; word-break: break-word;
}
.bb-lead-info-row .val.contact-list {
  display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center;
}
.bb-lead-info-row .val.contact-list i { color: var(--bb-blue); margin-right: 4px; font-size: 13px; }

/* Footer row — priority/stage selects + action buttons */
.bb-lead-card-foot {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--bb-line);
}
.bb-lead-card-foot .bb-lead-controls {
  display: flex; gap: 10px; flex-wrap: wrap;
}
.bb-lead-card-foot .bb-lead-controls .form-select,
.bb-lead-card-foot .bb-lead-controls select {
  height: 38px; border: 1px solid var(--bb-line); border-radius: 8px;
  font-size: 12.5px; padding: 0 30px 0 12px;
  background: #fff; color: var(--bb-ink); cursor: pointer; min-width: 140px;
  -webkit-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2375808f'><path d='M4.43 6.43a.6.6 0 0 1 .85 0L8 9.15l2.72-2.72a.6.6 0 1 1 .85.85l-3.15 3.15a.6.6 0 0 1-.85 0L4.43 7.28a.6.6 0 0 1 0-.85z'/></svg>");
  background-repeat: no-repeat; background-position: right 10px center; background-size: 12px;
}
.bb-lead-card-foot .bb-lead-actions {
  display: flex; gap: 8px; margin-left: auto; flex-wrap: wrap;
}
.bb-lead-card-foot .btn {
  padding: 9px 16px; font-size: 13px; font-weight: 600; border-radius: 8px;
  display: inline-flex; align-items: center; gap: 6px;
}

/* ==========================================================================
   PUBLIC PROFILE / EDIT-PROFILE — freelancer-style sectioned page
   ========================================================================== */
.bb-edit-profile { background: var(--bb-bg); min-height: 60vh; padding-bottom: 40px; }

/* Hero band */
.bb-profile-hero {
  background: linear-gradient(135deg, var(--bb-blue-darker) 0%, var(--bb-blue) 50%, var(--bb-blue-light) 100%);
  color: #fff; padding: 36px 0 50px; margin-bottom: -34px; position: relative;
}
.bb-profile-hero::before {
  content: ""; position: absolute; inset: -20% -20% auto auto; width: 380px; height: 380px;
  background: radial-gradient(circle, rgba(255,255,255,.16), transparent 60%); pointer-events: none;
}
.bb-profile-hero-inner {
  display: flex; align-items: center; gap: 22px; position: relative;
}
.bb-profile-hero-avatar {
  width: 116px; height: 116px; border-radius: 50%; flex-shrink: 0;
  background: #fff; padding: 4px; box-shadow: 0 8px 22px rgba(0,0,0,.18);
  position: relative;
}
.bb-profile-hero-avatar img {
  width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block;
}
.bb-profile-hero-avatar-edit {
  position: absolute; right: 0; bottom: 0; width: 32px; height: 32px;
  border-radius: 50%; background: #fff; color: var(--bb-blue); border: 2px solid var(--bb-bg);
  display: inline-flex; align-items: center; justify-content: center; font-size: 14px;
  cursor: pointer; box-shadow: 0 3px 8px rgba(0,0,0,.18);
}
.bb-profile-hero-body { flex: 1; min-width: 0; }
.bb-profile-hero-body h1 {
  color: #fff; font-size: 28px; font-weight: 700; margin: 0 0 6px;
  display: inline-flex; align-items: center; gap: 8px;
}
.bb-profile-hero-headline {
  font-size: 14px; color: rgba(255,255,255,.88); margin-bottom: 10px;
  display: inline-flex; align-items: center; gap: 8px;
}
.bb-profile-hero-edit {
  display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px;
  border-radius: 50%; background: rgba(255,255,255,.18); color: #fff;
  font-size: 12px; text-decoration: none; transition: background .15s ease;
}
.bb-profile-hero-edit:hover { background: rgba(255,255,255,.32); color: #fff; }
.bb-profile-hero-meta {
  display: flex; flex-wrap: wrap; gap: 8px 16px; list-style: none; padding: 0; margin: 0;
}
.bb-profile-hero-meta li {
  display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: rgba(255,255,255,.92);
}
.bb-profile-hero-meta .flag { width: 18px; height: 12px; object-fit: cover; border-radius: 2px; }
.bb-profile-hero-verified {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,.16); color: #fff; padding: 3px 10px; border-radius: 999px;
  font-size: 11px; font-weight: 700; letter-spacing: .3px; text-transform: uppercase;
}
.bb-profile-hero-verified i { color: var(--bb-orange); }
.bb-profile-hero .star-rating { display: inline-flex; align-items: center; }

/* Main grid */
.bb-edit-profile-grid {
  display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 18px;
  align-items: start; position: relative; z-index: 1;
}
.bb-edit-profile-main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.bb-edit-profile-side { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 84px; }

/* About / Overview block */
.bb-profile-overview {
  display: block; font-size: 14px; color: var(--bb-body); line-height: 1.6; white-space: pre-wrap;
}
.bb-profile-overview:empty::before {
  content: "Tell people about yourself — what you do, your strengths, your story."; color: var(--bb-muted); font-style: italic;
}

/* Stat row in sidebar */
.bb-profile-stats { padding: 18px 16px; }
.bb-profile-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; text-align: center; }
.bb-profile-stat-row > .bb-profile-stat + .bb-profile-stat {
  border-left: 1px solid var(--bb-line);
}
.bb-profile-stat-val {
  font-family: var(--bb-head); font-size: 18px; font-weight: 800; color: var(--bb-ink);
  display: inline-flex; align-items: center; gap: 4px; line-height: 1.2; flex-wrap: wrap; justify-content: center;
}
.bb-profile-stat-val .bb-profile-edit {
  font-size: 10px; padding: 2px 6px;
}
.bb-profile-stat-lbl { font-size: 11.5px; color: var(--bb-muted); margin-top: 4px; text-transform: uppercase; letter-spacing: .3px; }

/* Side-rail sections shrink the head padding */
.bb-profile-side-section .bb-dash-card-head { padding: 14px 16px; }
.bb-profile-side-section .bb-dash-card-head h3 { font-size: 14px; }
.bb-profile-side-section .bb-profile-section-body { padding: 14px 16px; }

/* Skills tags */
.bb-profile-skills .task-tags,
.bb-profile-skills { display: flex; flex-wrap: wrap; gap: 6px; }
.bb-profile-skills span,
.bb-profile-skills .task-tag {
  display: inline-block; padding: 4px 10px; border-radius: 999px;
  background: var(--bb-bg); color: var(--bb-blue-dark); font-size: 12px; font-weight: 600;
  border: 1px solid var(--bb-line);
}

/* Language row */
.bb-profile-side-section #profile-language-data .col-xl-12,
.bb-profile-side-section .language-contain {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 8px 0; font-size: 13px; color: var(--bb-ink);
  border-bottom: 1px dashed var(--bb-line);
}
.bb-profile-side-section .language-contain:last-child { border-bottom: 0; }
.bb-profile-side-section #profile-language-data small { color: var(--bb-muted); font-weight: 500; margin-left: 6px; }
.bb-profile-side-section .pull-right { margin-left: auto; }

/* Bookmark / Share */
.bb-profile-bookmark {
  width: 100%; padding: 10px 14px; border: 1px solid var(--bb-line); background: #fff;
  border-radius: 10px; font-size: 13px; font-weight: 600; color: var(--bb-ink);
  display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
  margin-bottom: 12px; transition: all .15s ease;
}
.bb-profile-bookmark:hover { background: var(--bb-bg); border-color: var(--bb-blue-light); color: var(--bb-blue); }
.bb-profile-bookmark .bookmarked-text { display: none; }
.bb-profile-bookmark.bookmarked .bookmark-text { display: none; }
.bb-profile-bookmark.bookmarked .bookmarked-text { display: inline; color: var(--bb-orange); }

.bb-profile-copyurl {
  display: flex; gap: 6px; margin-bottom: 12px;
}
.bb-profile-copyurl input {
  flex: 1; padding: 8px 10px; border: 1px solid var(--bb-line); border-radius: 8px;
  font-size: 12px; background: var(--bb-bg); color: var(--bb-muted); min-width: 0;
}
.bb-profile-copyurl .copy-url-button {
  width: 38px; height: 36px; border: 1px solid var(--bb-line); background: #fff;
  border-radius: 8px; color: var(--bb-blue); cursor: pointer;
}
.bb-profile-share-icons {
  list-style: none; display: flex; gap: 8px; padding: 0; margin: 0;
}
.bb-profile-share-icons a {
  width: 36px; height: 36px; border-radius: 50%; background: var(--bb-bg);
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--bb-blue-dark); font-size: 14px; text-decoration: none; transition: all .15s ease;
}
.bb-profile-share-icons a:hover { background: var(--bb-blue); color: #fff; }

/* Empty state inside a card body */
.bb-profile-empty { font-size: 13px; color: var(--bb-muted); margin: 0; font-style: italic; padding: 8px 0; }

/* Boxed-list legacy markup inside our cards (portfolio / employment / education AJAX response) */
.bb-edit-profile .boxed-list-item, .bb-edit-profile .item-content {
  background: transparent; border: 0; padding: 0;
}
.bb-edit-profile .portfolio-contain,
.bb-edit-profile .employment-contain,
.bb-edit-profile .education-contain {
  padding: 12px 0; border-bottom: 1px dashed var(--bb-line);
}
.bb-edit-profile .portfolio-contain:last-child,
.bb-edit-profile .employment-contain:last-child,
.bb-edit-profile .education-contain:last-child { border-bottom: 0; padding-bottom: 0; }
.bb-edit-profile h4 { font-size: 14px; font-weight: 700; color: var(--bb-ink); margin: 0 0 4px; }
.bb-edit-profile h4 span {
  font-size: 11px; color: var(--bb-muted); font-weight: 500; margin-left: 6px; text-transform: uppercase; letter-spacing: .3px;
}
.bb-edit-profile .detail-item {
  font-size: 12.5px; color: var(--bb-muted); display: inline-flex; align-items: center; gap: 5px;
}
.bb-edit-profile .detail-item i { font-size: 13px; }
.bb-edit-profile .item-description p { font-size: 13px; color: var(--bb-body); margin: 6px 0 0; line-height: 1.5; }

@media (max-width: 991px) {
  .bb-edit-profile-grid { grid-template-columns: 1fr; }
  .bb-edit-profile-side { position: static; }
}
@media (max-width: 575px) {
  .bb-profile-hero { padding: 28px 0 60px; }
  .bb-profile-hero-inner { flex-direction: column; text-align: center; gap: 12px; }
  .bb-profile-hero-body h1 { font-size: 22px; justify-content: center; }
  .bb-profile-hero-meta { justify-content: center; }
  .bb-profile-hero-avatar { width: 96px; height: 96px; }
}

/* ==========================================================================
   SELLER PROFILE PAGE — two-column layout (main + side rail)
   ========================================================================== */
.bb-profile-head { align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.bb-profile-head-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.bb-profile-head-actions .btn { display: inline-flex; align-items: center; gap: 6px; padding: 9px 18px; font-weight: 600; }

.bb-profile-grid {
  display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 18px; align-items: start;
}
.bb-profile-main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.bb-profile-side { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 84px; }

.bb-profile-section { padding: 0; }
.bb-profile-section .bb-dash-card-head { padding: 16px 20px; border-bottom: 1px solid var(--bb-line); }
.bb-profile-section .bb-dash-card-head h3 {
  display: inline-flex; align-items: center; gap: 8px; font-size: 15px;
}
.bb-profile-section .bb-dash-card-head h3 i { color: var(--bb-blue); font-size: 16px; }
.bb-profile-edit {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12.5px; font-weight: 600; color: var(--bb-blue);
  padding: 6px 12px; border-radius: 8px; background: rgba(27, 79, 156, .07);
  text-decoration: none; transition: all .15s ease;
}
.bb-profile-edit:hover { background: rgba(27, 79, 156, .14); color: var(--bb-blue-dark); }
.bb-profile-edit i { font-size: 12px; }
.bb-profile-section-body { padding: 18px 20px; }

/* Side rail — Profile completion */
.bb-profile-completion { padding: 20px; }
.bb-profile-completion-head { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.bb-profile-completion-ring { position: relative; width: 84px; height: 84px; flex-shrink: 0; }
.bb-profile-completion-ring svg { width: 84px; height: 84px; transform: rotate(-90deg); }
.bb-profile-completion-ring .ring-bg { fill: none; stroke: var(--bb-line); stroke-width: 3; }
.bb-profile-completion-ring .ring-fg {
  fill: none; stroke: #1ca35a; stroke-width: 3; stroke-linecap: round;
  transition: stroke-dasharray .8s cubic-bezier(.5, 1, .5, 1);
}
.bb-profile-completion-ring[data-pct="100"] .ring-fg { stroke: #1ca35a; }
.bb-profile-completion-num {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-family: var(--bb-head); font-size: 18px; font-weight: 800; color: var(--bb-ink);
}
.bb-profile-completion-text h4 { font-size: 15px; font-weight: 700; margin: 0 0 4px; color: var(--bb-ink); }
.bb-profile-completion-text p { font-size: 12px; color: var(--bb-muted); margin: 0; line-height: 1.4; }

.bb-profile-checklist { list-style: none; padding: 0; margin: 0 0 14px; }
.bb-profile-checklist li {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 0; font-size: 13px; color: var(--bb-body);
  border-bottom: 1px dashed var(--bb-line);
}
.bb-profile-checklist li:last-child { border-bottom: 0; }
.bb-profile-checklist li i { font-size: 16px; color: var(--bb-muted); flex-shrink: 0; transition: color .2s ease; }
.bb-profile-checklist li.is-done { color: var(--bb-ink); text-decoration: line-through; text-decoration-color: rgba(28, 163, 90, .35); }
.bb-profile-checklist li.is-done i { color: #1ca35a; }

/* Side rail — Membership card */
.bb-profile-membership {
  padding: 20px;
  background: linear-gradient(135deg, #1b4f9c 0%, #2f6fd0 100%);
  color: #fff; border: 0; box-shadow: 0 8px 20px rgba(27, 79, 156, .25);
  position: relative; overflow: hidden;
}
.bb-profile-membership::before {
  content: ""; position: absolute; inset: -40% -40% auto auto; width: 220px; height: 220px;
  background: radial-gradient(circle, rgba(255,255,255,.14), transparent 65%); pointer-events: none;
}
.bb-profile-membership-ribbon {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,.16); color: #fff; padding: 4px 10px; border-radius: 999px;
  font-size: 11px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase;
  margin-bottom: 12px;
}
.bb-profile-membership-ribbon i { color: var(--bb-orange); }
.bb-profile-membership h4 { font-size: 22px; font-weight: 800; color: #fff; margin: 0 0 8px; }
.bb-profile-membership-sub { font-size: 12.5px; color: rgba(255,255,255,.82); margin: 0 0 16px; line-height: 1.5; }
.bb-profile-membership .btn-outline-primary {
  background: rgba(255,255,255,.94); color: var(--bb-blue-dark); border-color: rgba(255,255,255,.94);
  font-weight: 700;
}
.bb-profile-membership .btn-outline-primary:hover {
  background: #fff; color: var(--bb-blue-dark);
}

/* Side rail — Help card */
.bb-profile-help { padding: 18px; text-align: center; }
.bb-profile-help-ic {
  width: 44px; height: 44px; border-radius: 12px; margin: 0 auto 10px;
  background: linear-gradient(135deg, #ef739c, #d75080); color: #fff;
  display: inline-flex; align-items: center; justify-content: center; font-size: 20px;
  box-shadow: 0 4px 12px rgba(215,80,128,.25);
}
.bb-profile-help h5 { font-size: 14px; font-weight: 700; margin: 0 0 4px; color: var(--bb-ink); }
.bb-profile-help p { font-size: 12px; color: var(--bb-muted); margin: 0 0 8px; line-height: 1.4; }
.bb-profile-help .btn-link { font-size: 12.5px; font-weight: 600; padding: 4px 6px; text-decoration: none; }
.bb-profile-help .btn-link i { font-size: 12px; vertical-align: -1px; margin-left: 2px; }

/* Override legacy two-column "row -mb-3" inside bank section so it stacks nicely */
.bb-profile-section .row.-mb-3 { margin: 0; }
.bb-profile-section .row.-mb-3 > .col-sm { padding: 0; }

/* Make AJAX-rendered legacy "dashboard-box" / "headline" content blend with the new card */
.bb-profile-section .dashboard-box { background: transparent; box-shadow: none; padding: 0; margin: 0; border: 0; }
.bb-profile-section .dashboard-box > .headline { display: none; }
.bb-profile-section .dashboard-box > .content { padding: 0; }
.bb-profile-section .dashboard-box-list,
.bb-profile-section .dashboard-list-box { background: transparent; box-shadow: none; }

/* Section body field grid — legacy .submit-field key/value layout, restyled */
.bb-profile-section .headline-bottom { display: none; }  /* hide the title that the AJAX response prints (we put it on our card head instead) */
.bb-profile-section .submit-field { margin: 0; padding: 0; }
.bb-profile-section .submit-field h5 {
  font-size: 11.5px; font-weight: 600; color: var(--bb-muted);
  text-transform: uppercase; letter-spacing: .4px; margin: 0 0 4px;
}
.bb-profile-section .submit-field p {
  font-size: 14px; color: var(--bb-ink); margin: 0; word-break: break-word;
  font-weight: 500;
}
.bb-profile-section .submit-field p:empty::before {
  content: "—"; color: var(--bb-muted); font-weight: 400;
}
.bb-profile-section [class^="col-"] { margin-bottom: 14px; }
.bb-profile-section .social-links {
  display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0;
}
.bb-profile-section .social-links a {
  width: 36px; height: 36px; border-radius: 10px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--bb-bg); color: var(--bb-blue); font-size: 16px;
  transition: all .15s ease;
}
.bb-profile-section .social-links a:hover { background: var(--bb-blue); color: #fff; }

/* ----- Inline edit panel ----- */
.bb-profile-edit-panel { padding: 0; }
.bb-profile-edit-panel .bb-dash-card-head { padding: 16px 20px; border-bottom: 1px solid var(--bb-line); }
.bb-profile-edit-panel .bb-dash-card-head h3 {
  display: inline-flex; align-items: center; gap: 8px; font-size: 15px;
}
.bb-profile-edit-panel .bb-dash-card-head h3 i { color: var(--bb-blue); }
.bb-profile-edit-body { padding: 20px 22px; }

/* Form-floating fields inside the edit panel */
.bb-profile-edit-body .form-floating { margin-bottom: 14px; }
.bb-profile-edit-body .form-floating > .form-control,
.bb-profile-edit-body .form-floating > .form-select {
  height: 56px; border: 1px solid var(--bb-line); border-radius: 10px; background: #fff;
  font-size: 14px; padding: 1rem 0.85rem 0.4rem;
}
.bb-profile-edit-body .form-floating > textarea.form-control { height: auto; min-height: 110px; padding-top: 1.4rem; }
.bb-profile-edit-body .form-floating > .form-control:focus,
.bb-profile-edit-body .form-floating > .form-select:focus {
  border-color: var(--bb-blue-light); box-shadow: 0 0 0 3px rgba(47, 111, 208, .12);
}
.bb-profile-edit-body .form-floating > label { padding: 1rem 0.85rem; color: var(--bb-muted); font-size: 13.5px; }
.bb-profile-edit-body .rerror { display: block; color: #c0392b; font-size: 12px; margin-top: 4px; }
.bb-profile-edit-body .small { font-size: 11.5px; color: var(--bb-muted); }

/* Sticky save bar inside the edit panel */
.bb-profile-savebar {
  position: sticky; bottom: 0; z-index: 5;
  background: #fff;
  margin-top: 14px; padding: 10px 0 0;
  border-top: 1px solid var(--bb-line);
  display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap;
}
.bb-profile-savebar .btn,
.bb-profile-savebar > .btn,
.bb-profile-savebar > a.btn,
.bb-profile-savebar > button.btn {
  padding: 5px 12px !important; font-size: 12px !important; font-weight: 600 !important;
  min-width: 0 !important; min-height: 0 !important; line-height: 1.4 !important;
  border-radius: 6px !important; height: auto !important;
  display: inline-flex !important; align-items: center; justify-content: center; gap: 4px;
}
.bb-profile-savebar .btn i { font-size: 12px !important; line-height: 1; }
.bb-profile-savebar .btn-primary { box-shadow: 0 2px 6px rgba(27,79,156,.16); }

@media (max-width: 575px) {
  .bb-profile-edit-body { padding: 16px; }
  .bb-profile-savebar .btn { flex: 1 1 auto; }
}

@media (max-width: 991px) {
  .bb-profile-grid { grid-template-columns: 1fr; }
  .bb-profile-side { position: static; }
}
@media (max-width: 575px) {
  .bb-profile-head-actions { width: 100%; }
  .bb-profile-head-actions .btn { flex: 1; justify-content: center; }
  .bb-profile-section .bb-dash-card-head { padding: 14px 16px; }
  .bb-profile-section-body { padding: 14px 16px; }
}

/* ==========================================================================
   BUYER ENQUIRY DETAIL MODAL — two-column key/value list
   ========================================================================== */
.bb-enquiry-detail-grid {
  display: grid; grid-template-columns: max-content 1fr; gap: 12px 18px;
  margin: 0; padding: 4px 2px;
}
.bb-enquiry-detail-grid dt {
  font-weight: 600; color: var(--bb-muted); font-size: 13px;
  display: inline-flex; align-items: center; gap: 8px; margin: 0; white-space: nowrap;
}
.bb-enquiry-detail-grid dt i { color: var(--bb-blue); font-size: 14px; }
.bb-enquiry-detail-grid dd { margin: 0; color: var(--bb-ink); font-size: 13.5px; word-break: break-word; }
.bb-enquiry-detail-desc {
  margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--bb-line);
}
.bb-enquiry-detail-desc h5 {
  font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px;
  color: var(--bb-muted); margin: 0 0 6px;
  display: inline-flex; align-items: center; gap: 6px;
}
.bb-enquiry-detail-desc h5 i { color: var(--bb-blue); }
.bb-enquiry-detail-desc p { margin: 0; font-size: 13.5px; color: var(--bb-ink); line-height: 1.55; white-space: pre-wrap; }
@media (max-width: 575px) {
  .bb-enquiry-detail-grid { grid-template-columns: 1fr; gap: 4px 0; }
  .bb-enquiry-detail-grid dd { margin: 0 0 12px; padding-bottom: 8px; border-bottom: 1px dashed var(--bb-line); }
  .bb-enquiry-detail-grid dd:last-child { border-bottom: 0; }
}

/* ==========================================================================
   EDIT PROFILE — multi-step tab page
   ========================================================================== */
.bb-edit-profile-tabs {
  flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
.bb-edit-profile-tabs::-webkit-scrollbar { height: 6px; }
.bb-edit-profile-tabs::-webkit-scrollbar-thumb { background: var(--bb-line); border-radius: 3px; }
.bb-edit-profile-tabs .bb-dash-tab { white-space: nowrap; flex-shrink: 0; }

#bb-step-wrap { padding: 22px; min-height: 360px; }
.bb-step-panel { min-height: 240px; }
.bb-step-panel[hidden] { display: none; }
.bb-step-placeholder { min-height: 240px; }

/* Form chrome inside step panels — match the rest of the dashboard look */
.bb-step-panel .form-floating .form-control,
.bb-step-panel .form-floating .form-select {
  height: 54px; border-radius: 10px; border: 1px solid var(--bb-line); background: #fff;
}
.bb-step-panel .form-floating .form-control:focus,
.bb-step-panel .form-floating .form-select:focus {
  border-color: var(--bb-blue-light); box-shadow: 0 0 0 3px rgba(47,111,208,.12);
}
.bb-step-panel .form-floating > textarea.form-control { height: auto; min-height: 120px; padding-top: 1.4rem; }
.bb-step-panel .form-floating > label { padding: 1rem .85rem; color: var(--bb-muted); font-size: 13.5px; }
.bb-step-panel .rerror { display: block; color: #c0392b; font-size: 12px; margin-top: 4px; }
.bb-step-panel .btn-primary { padding: 9px 22px; font-weight: 600; }
.bb-step-panel fieldset legend { font-weight: 700; color: var(--bb-ink); font-size: 15px; margin-bottom: 12px; }
.bb-step-panel .card { border: 1px solid var(--bb-line); border-radius: 12px; box-shadow: none; }
.bb-step-panel .card-header { background: var(--bb-bg); border-bottom: 1px solid var(--bb-line); padding: 14px 18px; }
.bb-step-panel .card-header h4 { font-size: 15px; font-weight: 700; color: var(--bb-ink); }
.bb-step-panel .upload-preview { position: relative; }
.bb-step-panel .upload-preview .btn { position: absolute; top: 6px; right: 6px; width: 28px; height: 28px; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
@media (max-width: 575px) {
  #bb-step-wrap { padding: 16px; }
}

/* Bid tab counters — small parenthesised number after the tab label */
.bb-dash-tab-count {
  font-size: 11px; font-weight: 600; color: inherit; opacity: .7;
  margin-left: 2px;
}
.bb-dash-tab.active .bb-dash-tab-count { opacity: .9; }
.bb-bid-panel { min-height: 80px; }
.bb-bid-panel[hidden] { display: none; }
.bb-bid-loading { color: var(--bb-muted); }

/* ==========================================================================
   SECURITY PAGE — password / 2FA card
   ========================================================================== */
.bb-security-card { padding: 0; overflow: hidden; }
.bb-security-row {
  display: grid; grid-template-columns: 48px 1fr auto;
  gap: 16px; align-items: center;
  padding: 18px 22px;
}
.bb-security-ic {
  width: 48px; height: 48px; border-radius: 12px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 22px; color: #fff;
  background: linear-gradient(135deg, #4f8df0, #2f6fd0);
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
}
.bb-security-ic.bb-stat-purple { background: linear-gradient(135deg, #a98bef, #7b5dc5); }
.bb-security-body { min-width: 0; }
.bb-security-body h3 { margin: 0 0 4px; font-size: 16px; font-weight: 700; color: var(--bb-ink); }
.bb-security-status {
  margin: 0 0 4px; font-size: 13px; color: #1ca35a; font-weight: 600;
  display: inline-flex; align-items: center; gap: 6px;
}
.bb-security-status i { font-size: 14px; }
.bb-security-hint { margin: 0; font-size: 12.5px; color: var(--bb-muted); line-height: 1.45; }
.bb-security-action .btn { padding: 8px 14px; font-size: 13px; }
.bb-security-form {
  margin-top: 14px;
  padding: 16px; background: var(--bb-bg);
  border: 1px solid var(--bb-line); border-radius: 10px;
}
.bb-security-form[hidden] { display: none !important; }
.bb-security-form .form-floating { margin-bottom: 12px; }
.bb-security-form .form-floating > .form-control {
  height: 52px; border: 1px solid var(--bb-line); border-radius: 8px; background: #fff;
}
.bb-security-form .form-floating > .form-control:focus {
  border-color: var(--bb-blue-light); box-shadow: 0 0 0 3px rgba(47,111,208,.12);
}
.bb-security-form .form-floating > label { padding: 0.9rem 0.85rem; color: var(--bb-muted); }
.bb-security-form .rerror { color: #c0392b; font-size: 12px; margin-top: 4px; display: block; }
.bb-security-form .passwordUpdateBTN { padding: 10px 22px; font-weight: 600; }
.bb-security-form #cancel_password { padding: 10px 18px; font-weight: 600; }
.bb-security-form-actions {
  display: flex; gap: 8px; flex-wrap: wrap; margin-top: 6px;
}
.bb-security-form-actions .btn { display: inline-flex; align-items: center; gap: 6px; }
@media (max-width: 575px) {
  .bb-security-form-actions { flex-direction: column; }
  .bb-security-form-actions .btn { width: 100%; justify-content: center; }
}
@media (max-width: 575px) {
  .bb-security-row { grid-template-columns: 1fr; gap: 12px; padding: 16px; }
  .bb-security-action { width: 100%; }
  .bb-security-action .btn { width: 100%; }
}

/* ==========================================================================
   HELP CENTER PAGE — topic grid + search hero + contact CTA
   ========================================================================== */
.bb-help { padding: 32px 0 40px; background: var(--bb-bg); min-height: 60vh; }

.bb-help-hero {
  background: linear-gradient(135deg, var(--bb-blue-darker) 0%, var(--bb-blue) 50%, var(--bb-blue-light) 100%);
  color: #fff; border-radius: 18px; padding: 38px 28px;
  text-align: center; margin-bottom: 24px; position: relative; overflow: hidden;
  box-shadow: 0 12px 30px rgba(15,42,87,.16);
}
.bb-help-hero::before {
  content: ""; position: absolute; inset: -40% -40% auto auto; width: 380px; height: 380px;
  background: radial-gradient(circle, rgba(255,255,255,.18), rgba(255,255,255,0) 60%);
  pointer-events: none;
}
.bb-help-hero-ic {
  width: 56px; height: 56px; border-radius: 14px;
  background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.22);
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--bb-orange); font-size: 26px; margin: 0 auto 14px;
}
.bb-help-hero h1 { color: #fff; font-size: 28px; font-weight: 700; margin: 0 0 8px; line-height: 1.2; }
.bb-help-hero p { color: rgba(255,255,255,.85); font-size: 14px; margin: 0 auto 22px; max-width: 560px; line-height: 1.5; }
.bb-help-search {
  position: relative; max-width: 560px; margin: 0 auto;
  display: flex; gap: 8px;
}
.bb-help-search > i {
  position: absolute; left: 18px; top: 50%; transform: translateY(-50%);
  color: var(--bb-muted); font-size: 16px; pointer-events: none; z-index: 1;
}
.bb-help-search input {
  flex: 1; height: 48px; border: 0; border-radius: 999px;
  padding: 0 18px 0 46px; font-size: 14px; background: #fff; color: var(--bb-ink);
  box-shadow: 0 4px 14px rgba(8,22,50,.15);
}
.bb-help-search input:focus { outline: 2px solid var(--bb-orange); outline-offset: 1px; }
.bb-help-search .btn {
  height: 48px; padding: 0 24px; border-radius: 999px; font-weight: 700;
  background: var(--bb-orange); border-color: var(--bb-orange); color: #fff;
  box-shadow: 0 4px 14px rgba(245,121,32,.4);
}
.bb-help-search .btn:hover { background: var(--bb-orange-dark); border-color: var(--bb-orange-dark); }

/* Topic grid */
.bb-help-grid {
  display: grid; gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  margin-bottom: 24px;
}
.bb-help-topic {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  padding: 20px; box-shadow: 0 2px 6px rgba(20,40,80,.04);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  display: flex; flex-direction: column;
}
.bb-help-topic:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(20,40,80,.08); border-color: #d8e2f0; }
.bb-help-topic-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.bb-help-topic-ic {
  width: 44px; height: 44px; flex-shrink: 0; border-radius: 12px;
  display: inline-flex; align-items: center; justify-content: center; font-size: 18px;
}
.bb-help-topic h3 { margin: 0; font-size: 16px; font-weight: 700; color: var(--bb-ink); line-height: 1.3; }

.bb-help-articles { list-style: none; padding: 0; margin: 0; }
.bb-help-articles li { margin: 0 0 2px; }
.bb-help-articles li a {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 10px; border-radius: 8px;
  color: var(--bb-body); font-size: 13.5px; text-decoration: none;
  transition: all .15s ease;
}
.bb-help-articles li a > i { color: var(--bb-blue); font-size: 14px; flex-shrink: 0; }
.bb-help-articles li a > span { flex: 1; min-width: 0; }
.bb-help-articles li a:hover { background: var(--bb-bg); color: var(--bb-blue); }
.bb-help-empty { color: var(--bb-muted); font-size: 12.5px; font-style: italic; margin: 0; }

.bb-help-more {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 10px; padding: 6px 0;
  color: var(--bb-blue); font-size: 13px; font-weight: 600; text-decoration: none;
}
.bb-help-more:hover { text-decoration: underline; }
.bb-help-more[aria-expanded="true"] > i { transform: rotate(180deg); }
.bb-help-more > i { transition: transform .15s ease; font-size: 12px; }
.bb-help-extra { padding-top: 10px; border-top: 1px solid var(--bb-line); margin-top: 10px; }
.bb-help-subtopic + .bb-help-subtopic { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--bb-line); }
.bb-help-subtopic h4 { font-size: 13px; font-weight: 700; color: var(--bb-muted); text-transform: uppercase; letter-spacing: .5px; margin: 0 0 6px; }

/* Still need help contact strip */
.bb-help-contact {
  display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  padding: 22px 26px; box-shadow: 0 2px 6px rgba(20,40,80,.04);
}
.bb-help-contact-ic {
  width: 56px; height: 56px; border-radius: 14px;
  background: linear-gradient(135deg, #ef739c, #d75080); color: #fff;
  display: inline-flex; align-items: center; justify-content: center; font-size: 26px;
  box-shadow: 0 4px 12px rgba(215,80,128,.25); flex-shrink: 0;
}
.bb-help-contact-body { flex: 1; min-width: 0; }
.bb-help-contact-body h3 { margin: 0 0 4px; font-size: 17px; font-weight: 700; color: var(--bb-ink); }
.bb-help-contact-body p { margin: 0; font-size: 13px; color: var(--bb-muted); }
.bb-help-contact-actions { flex-shrink: 0; }
.bb-help-contact-actions .btn { padding: 10px 22px; font-weight: 700; }

@media (max-width: 575px) {
  .bb-help { padding: 18px 0 30px; }
  .bb-help-hero { padding: 26px 18px; border-radius: 14px; }
  .bb-help-hero h1 { font-size: 22px; }
  .bb-help-hero p { font-size: 13px; }
  .bb-help-search { flex-direction: column; }
  .bb-help-search input { height: 44px; }
  .bb-help-search .btn { height: 44px; width: 100%; }
  .bb-help-topic { padding: 16px; }
  .bb-help-contact { padding: 18px; flex-direction: column; text-align: center; }
  .bb-help-contact-body { text-align: center; }
  .bb-help-contact-actions { width: 100%; }
  .bb-help-contact-actions .btn { width: 100%; }
}

/* ==========================================================================
   MEMBERSHIP — plan grid, current-plan banner, payment-method picker
   ========================================================================== */

/* Current-plan banner — blue gradient strip with the active plan summary */
.bb-membership-current {
  display: flex; align-items: center; gap: 18px;
  background: linear-gradient(135deg, var(--bb-blue-dark) 0%, var(--bb-blue-light) 100%);
  color: #fff; border: 0; box-shadow: 0 8px 20px rgba(27,79,156,.18);
  margin-bottom: 18px; padding: 18px 22px;
}
.bb-membership-current-ic {
  width: 56px; height: 56px; border-radius: 50%; flex-shrink: 0;
  background: rgba(255,255,255,.16); color: #fff;
  display: inline-flex; align-items: center; justify-content: center; font-size: 26px;
}
.bb-membership-current-body { min-width: 0; flex: 1; }
.bb-membership-current-lbl { font-size: 12px; color: rgba(255,255,255,.85); margin-bottom: 4px; }
.bb-membership-current-name { font-size: 22px; font-weight: 700; line-height: 1.2; margin-bottom: 8px; color: #fff; }
.bb-membership-current-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13px; }
.bb-membership-current-meta > span { display: inline-flex; align-items: center; gap: 6px; color: rgba(255,255,255,.92); }
.bb-membership-current-meta i { color: rgba(255,255,255,.85); font-size: 14px; }
.bb-membership-current-meta strong { color: #fff; }

/* Plans grid */
.bb-membership-section { margin-top: 18px; }
.bb-membership-section .bb-dash-card-head { margin-bottom: 14px; }
.bb-membership-grid {
  display: grid; gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.bb-membership-card {
  position: relative; padding: 24px 20px 20px;
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  box-shadow: 0 2px 6px rgba(20,40,80,.04);
  display: flex; flex-direction: column; gap: 12px;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.bb-membership-card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(20,40,80,.09); border-color: #d8e2f0; }
.bb-membership-card.is-current { border-color: #1ca35a; box-shadow: 0 6px 18px rgba(28,163,90,.12); }
.bb-membership-card.is-recommended { border-color: var(--bb-blue); box-shadow: 0 10px 24px rgba(27,79,156,.14); }
.bb-membership-card.is-recommended::before {
  content: ""; position: absolute; inset: -1px; border-radius: 14px; pointer-events: none;
  background: linear-gradient(135deg, var(--bb-blue), var(--bb-blue-light)); z-index: -1;
  opacity: 0; transition: opacity .15s ease;
}

.bb-membership-ribbon {
  position: absolute; top: 12px; right: 12px;
  background: var(--bb-orange); color: #fff;
  font-size: 10.5px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase;
  padding: 3px 9px; border-radius: 4px;
}
.bb-membership-ribbon.is-current { background: #1ca35a; }
.bb-membership-ribbon.is-current i { margin-right: 3px; }

.bb-membership-name { font-size: 18px; font-weight: 700; color: var(--bb-ink); }
.bb-membership-badge img { height: 24px; width: auto; }

.bb-membership-price {
  display: flex; align-items: baseline; gap: 2px; flex-wrap: wrap;
  padding: 8px 0; border-bottom: 1px solid var(--bb-line); margin-bottom: 4px;
}
.bb-membership-price-symbol { font-size: 14px; font-weight: 600; color: var(--bb-muted); }
.bb-membership-price-num { font-family: var(--bb-head); font-size: 32px; font-weight: 800; color: var(--bb-ink); letter-spacing: -.5px; line-height: 1; }
.bb-membership-price-suffix { font-size: 12.5px; color: var(--bb-muted); margin-left: 4px; }
.bb-membership-price-free { font-family: var(--bb-head); font-size: 26px; font-weight: 800; color: #1ca35a; }

.bb-membership-feats { list-style: none; padding: 0; margin: 0; }
.bb-membership-feats li {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--bb-body); padding: 5px 0;
}
.bb-membership-feats li i { font-size: 14px; color: #1ca35a; flex-shrink: 0; }
.bb-membership-feats li i.text-muted, .bb-membership-feats li i.bi-x-circle { color: var(--bb-muted); }

.bb-membership-cta { margin-top: auto; padding-top: 6px; display: grid; }
.bb-membership-cta .btn { padding: 10px 16px; font-size: 13.5px; font-weight: 700; border-radius: 8px; }

/* Selected state — highlight the whole card when its radio is checked.
   Modern :has() selector (Chrome 105+ / Safari 15.4+ / Firefox 121+) drives
   the visual; the .is-selected fallback class is added by JS for older
   browsers and to bump z-index above siblings. */
.bb-membership-card:has(input[type="radio"]:checked),
.bb-membership-card.is-selected {
  border-color: var(--bb-blue);
  box-shadow: 0 10px 24px rgba(27, 79, 156, .18);
  transform: translateY(-2px);
  background: linear-gradient(180deg, #f7faff 0%, #fff 30%);
  position: relative;
}
.bb-membership-card:has(input[type="radio"]:checked) .bb-membership-cta .btn,
.bb-membership-card.is-selected .bb-membership-cta .btn {
  background: #1ca35a; border-color: #1ca35a; color: #fff;
}
.bb-membership-card:has(input[type="radio"]:checked) .bb-membership-cta .btn::after,
.bb-membership-card.is-selected .bb-membership-cta .btn::after {
  content: ""; display: inline-block; width: 14px; height: 14px;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'><path d='M13.485 1.929a1 1 0 0 1 1.414 1.414L7.414 10.828a1 1 0 0 1-1.414 0L1.515 6.343A1 1 0 1 1 2.929 4.93l3.778 3.778 7.778-7.778z'/></svg>") center/14px no-repeat;
  margin-left: 4px;
}

/* Payment options */
.bb-membership-pay-methods {
  display: grid; gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  margin-bottom: 14px;
}
.bb-membership-pay-card {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px;
  padding: 16px 12px; border: 2px solid var(--bb-line); border-radius: 12px;
  background: #fff; cursor: pointer; transition: all .15s ease;
}
.bb-membership-pay-card img { height: 32px; width: auto; max-width: 100%; object-fit: contain; }
/* Stripe wordmark — pure-CSS so we don't need to ship an image file */
.bb-membership-pay-stripe-mark {
  display: inline-flex; align-items: center; justify-content: center;
  height: 32px; padding: 0 16px;
  background: #635bff; color: #fff !important; border-radius: 8px;
  font-family: -apple-system, BlinkMacSystemFont, 'Inter', sans-serif;
  font-weight: 700; font-size: 14px !important; letter-spacing: .2px;
  font-style: italic; line-height: 1;
}
.bb-membership-pay-card span {
  font-size: 12px; color: var(--bb-body); text-align: center; line-height: 1.3;
}
.bb-membership-pay-card:hover { border-color: #c4d6f2; background: #f7faff; }
.bb-membership-pay-tick {
  position: absolute; top: 8px; right: 8px;
  color: var(--bb-blue); opacity: 0; transition: opacity .15s ease;
}
.btn-check:checked + .bb-membership-pay-card {
  border-color: var(--bb-blue); background: #f3f8ff;
  box-shadow: 0 4px 12px rgba(27,79,156,.12);
}
.btn-check:checked + .bb-membership-pay-card .bb-membership-pay-tick { opacity: 1; }

.payment-box .checkoutForm { margin-top: 6px; }

@media (max-width: 575px) {
  .bb-membership-current { flex-direction: column; text-align: center; padding: 18px; }
  .bb-membership-current-meta { justify-content: center; }
  .bb-membership-name { font-size: 16px; }
  .bb-membership-price-num { font-size: 28px; }
}

/* ==========================================================================
   COMPANY REVIEWS — rating summary card (big score + per-star histogram)
   ========================================================================== */
.bb-reviews-summary {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 26px;
  align-items: center;
}
.bb-reviews-score { text-align: center; padding-right: 12px; border-right: 1px solid var(--bb-line); }
.bb-reviews-score-num {
  font-family: var(--bb-head); font-size: 56px; font-weight: 800;
  color: var(--bb-ink); line-height: 1; letter-spacing: -1px;
}
.bb-reviews-stars {
  margin-top: 8px; display: inline-flex; gap: 3px; color: #f5a623; font-size: 18px;
}
.bb-reviews-meta {
  margin: 8px 0 0; font-size: 12.5px; color: var(--bb-muted);
}
.bb-reviews-meta strong { color: var(--bb-ink); font-weight: 700; }

.bb-reviews-bars { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.bb-reviews-bar {
  display: grid;
  grid-template-columns: 36px 1fr 36px;
  gap: 10px; align-items: center;
}
.bb-reviews-bar-lbl {
  font-size: 12.5px; font-weight: 600; color: var(--bb-ink);
  display: inline-flex; align-items: center; gap: 3px;
}
.bb-reviews-bar-lbl > i { color: #f5a623; font-size: 11px; }
.bb-reviews-bar-track {
  background: var(--bb-bg); border-radius: 999px; height: 8px; overflow: hidden;
  position: relative;
}
.bb-reviews-bar-fill {
  height: 100%; border-radius: 999px;
  transition: width .4s ease;
}
.bb-reviews-bar-fill.is-up   { background: linear-gradient(90deg, #2ecf7d, #1ca35a); }
.bb-reviews-bar-fill.is-mid  { background: linear-gradient(90deg, #ffb547, #f0a020); }
.bb-reviews-bar-fill.is-down { background: linear-gradient(90deg, #ef6363, #c0392b); }
.bb-reviews-bar-count {
  font-size: 12.5px; font-weight: 700; color: var(--bb-ink); text-align: right;
}

@media (max-width: 767px) {
  .bb-reviews-summary { grid-template-columns: 1fr; gap: 18px; }
  .bb-reviews-score {
    padding-right: 0; padding-bottom: 14px;
    border-right: 0; border-bottom: 1px solid var(--bb-line);
  }
  .bb-reviews-score-num { font-size: 46px; }
  .bb-reviews-stars { font-size: 16px; }
}

/* ==========================================================================
   MY PRODUCTS — seller product listing (Manage / Edit / Promote / Delete)
   ========================================================================== */
.bb-product-list {
  display: flex; flex-direction: column; gap: 10px;
  margin-bottom: 12px;
}
.bb-product-card {
  display: grid; grid-template-columns: 110px 1fr; gap: 14px;
  align-items: center;                /* image vertically centred against compact body */
  background: #fff; border: 1px solid var(--bb-line); border-radius: 10px;
  padding: 12px;
  box-shadow: 0 2px 6px rgba(20,40,80,.04);
  transition: box-shadow .15s ease, border-color .15s ease;
}
.bb-product-card:hover { box-shadow: 0 6px 16px rgba(20,40,80,.07); border-color: #d8e2f0; }

.bb-product-card-img {
  position: relative; aspect-ratio: 1/1; border-radius: 8px; overflow: hidden;
  background: var(--bb-bg); display: block;
}
.bb-product-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.bb-product-card:hover .bb-product-card-img img { transform: scale(1.03); }

.bb-product-featured-badge {
  position: absolute; top: 6px; left: 6px; z-index: 2;
  background: var(--bb-orange); color: #fff;
  font-size: 9.5px; font-weight: 700; letter-spacing: .3px;
  padding: 2px 6px; border-radius: 3px;
  display: inline-flex; align-items: center; gap: 3px;
}
.bb-product-featured-badge i { font-size: 10px; }

.bb-product-card-body { display: flex; flex-direction: column; min-width: 0; }
.bb-product-card-head { margin-bottom: 4px; }
.bb-product-title {
  margin: 0; font-size: 14px; font-weight: 700; color: var(--bb-ink);
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px; line-height: 1.3;
}
.bb-product-title a { color: inherit; text-decoration: none; min-width: 0; }
.bb-product-title a:hover { color: var(--bb-blue); }

.bb-product-status {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 9.5px; font-weight: 700; letter-spacing: .3px; text-transform: capitalize;
  padding: 2px 7px; border-radius: 3px; white-space: nowrap;
}
.bb-product-status.is-active   { background: #e1f5ec; color: #1ca35a; }
.bb-product-status.is-pending  { background: #fef1d8; color: #c87b1c; }
.bb-product-status.is-declined { background: #f5e7e7; color: #c0392b; }
.bb-product-status.is-expired  { background: #f1f3f7; color: #6c757d; }
.bb-product-status.is-deleted  { background: #f1f3f7; color: #6c757d; }
.bb-product-status.is-modify   { background: #fde6ee; color: #d75080; }

.bb-product-info { color: var(--bb-muted); font-size: 14px; }
.bb-product-info:hover { color: var(--bb-blue); }

.bb-product-meta {
  display: flex; flex-wrap: wrap; gap: 4px 14px;
  font-size: 11.5px; color: var(--bb-muted); margin-bottom: 6px;
}
.bb-product-meta > span,
.bb-product-meta > a { display: inline-flex; align-items: center; gap: 4px; min-width: 0; }
.bb-product-meta > span i,
.bb-product-meta > a i { color: var(--bb-blue); font-size: 12px; }

.bb-product-rating {
  color: var(--bb-body); font-weight: 600; text-decoration: none;
}
.bb-product-rating i { color: #f5a623 !important; }
.bb-product-rating strong { color: var(--bb-ink); }
.bb-product-rating span { color: var(--bb-muted); font-weight: 500; }
.bb-product-rating:hover { color: var(--bb-blue); }

.bb-product-featured-note {
  display: inline-flex; align-items: center; gap: 5px;
  background: #fff7ea; color: #b8741b; border: 1px solid #f3d8a2;
  font-size: 11px; font-weight: 600;
  padding: 3px 8px; border-radius: 5px;
  margin-bottom: 6px; align-self: flex-start;
}
.bb-product-featured-note i { font-size: 11px; }

.bb-product-actions {
  display: flex; flex-wrap: wrap; gap: 6px;
  padding-top: 6px;                       /* flows directly under the meta row */
  align-items: center;
  justify-content: flex-end;              /* right-align the action row on desktop */
}
.bb-product-actions .btn {
  padding: 6px 12px; font-size: 12px; font-weight: 600; border-radius: 7px;
  display: inline-flex; align-items: center; justify-content: center; gap: 5px;
  white-space: nowrap;
}
.bb-product-actions .btn > i { font-size: 12px; }
.bb-product-actions .btn.disabled { pointer-events: none; opacity: .55; }
.bb-product-actions .btn-icon-danger {
  border: 1px solid #f5d0cc; background: #fff5f4; color: #c0392b;
  padding: 6px 9px;
}
.bb-product-actions .btn-icon-danger:hover { background: #c0392b; color: #fff; border-color: #c0392b; }
.bb-product-actions .btn-accent {
  background: var(--bb-orange); border-color: var(--bb-orange); color: #fff;
}
.bb-product-actions .btn-accent:hover { background: var(--bb-orange-dark); border-color: var(--bb-orange-dark); color: #fff; }
.bb-product-count-pill {
  background: rgba(255,255,255,.22); color: inherit;
  font-size: 11px; font-weight: 700;
  padding: 1px 7px; border-radius: 999px; margin-left: 4px;
}
.bb-product-actions .btn-outline-primary .bb-product-count-pill { background: rgba(27,79,156,.1); }

@media (max-width: 767px) {
  .bb-product-card { grid-template-columns: 1fr; padding: 14px; gap: 12px; }
  .bb-product-card-img { aspect-ratio: 16/9; max-height: 220px; }
  .bb-product-title { font-size: 14.5px; }
  .bb-product-meta { font-size: 12px; gap: 4px 12px; }

  /* Mobile actions: primary CTA full-width, secondary actions share a second row. */
  .bb-product-actions {
    justify-content: stretch;
    gap: 6px;
  }
  .bb-product-actions .btn {
    padding: 10px 12px; font-size: 12.5px;
  }
  /* Primary (Manage Enquiry / Applications) hogs the first row */
  .bb-product-actions > .btn-primary {
    flex: 1 1 100%;
    order: 0;
  }
  /* Edit / Promote share the second row evenly with the trash icon */
  .bb-product-actions > .btn-outline-primary { flex: 1 1 auto; order: 1; }
  .bb-product-actions > .btn-accent          { flex: 1 1 auto; order: 2; }
  .bb-product-actions > .btn-icon-danger     { flex: 0 0 44px; padding: 10px; order: 3; }
}
@media (max-width: 420px) {
  /* Very narrow: every action becomes full-width to stay tappable. */
  .bb-product-actions > .btn { flex: 1 1 100% !important; }
}

/* ---------- Lead Calendar (FullCalendar) ---------- */
.bb-lead-calendar-card { padding: 18px; }
.bb-calendar-legend {
  display: inline-flex; align-items: center; gap: 16px; flex-wrap: wrap;
  color: var(--bb-muted); font-size: 12.5px; font-weight: 500;
}
.bb-cal-dot {
  display: inline-block; width: 10px; height: 10px; border-radius: 50%;
  background: var(--bb-blue); margin-right: 4px;
}
.bb-cal-dot-lead { background: var(--bb-blue); }
.bb-cal-dot-meet { background: var(--bb-orange); }

.bb-lead-calendar-card .fc { font-family: var(--bb-font); }
.bb-lead-calendar-card .fc-toolbar-title {
  font-size: 18px !important; font-weight: 700; color: var(--bb-ink);
}
.bb-lead-calendar-card .fc-button {
  background: #fff !important; border: 1px solid var(--bb-line) !important;
  color: var(--bb-ink) !important; text-transform: capitalize;
  border-radius: 8px !important; padding: 6px 12px !important;
  font-size: 12.5px !important; font-weight: 600 !important;
  box-shadow: none !important;
}
.bb-lead-calendar-card .fc-button:hover { background: var(--bb-bg) !important; }
.bb-lead-calendar-card .fc-button-primary:not(:disabled).fc-button-active,
.bb-lead-calendar-card .fc-button-primary:not(:disabled):active {
  background: var(--bb-blue) !important; border-color: var(--bb-blue) !important; color: #fff !important;
}
.bb-lead-calendar-card .fc-button-group .fc-button { border-radius: 0 !important; }
.bb-lead-calendar-card .fc-button-group .fc-button:first-child { border-radius: 8px 0 0 8px !important; }
.bb-lead-calendar-card .fc-button-group .fc-button:last-child { border-radius: 0 8px 8px 0 !important; }
.bb-lead-calendar-card .fc-col-header-cell {
  background: var(--bb-bg); padding: 8px 0;
}
.bb-lead-calendar-card .fc-col-header-cell-cushion {
  font-size: 11.5px; font-weight: 700; color: var(--bb-muted); text-transform: uppercase; letter-spacing: .5px;
}
.bb-lead-calendar-card .fc-daygrid-day-number {
  color: var(--bb-ink); font-weight: 600; font-size: 13px; padding: 6px 8px;
}
.bb-lead-calendar-card .fc-day-today { background: rgba(27,79,156,.04) !important; }
.bb-lead-calendar-card .fc-day-today .fc-daygrid-day-number { color: var(--bb-blue); }
.bb-lead-calendar-card .fc-event {
  border: 0; border-radius: 6px; padding: 2px 6px; font-size: 11.5px; font-weight: 600;
}

/* ---------- Interaction timeline (Contact History page) ---------- */
.bb-timeline {
  list-style: none; margin: 0; padding: 0;
  position: relative;
}
.bb-timeline::before {
  content: ""; position: absolute;
  left: 19px; top: 8px; bottom: 8px;
  width: 2px; background: linear-gradient(to bottom, var(--bb-line), var(--bb-line) 70%, transparent);
}
.bb-timeline-item {
  position: relative; padding: 0 0 18px 56px;
  list-style: none;
}
.bb-timeline-item:last-child { padding-bottom: 0; }
.bb-timeline-dot {
  position: absolute; left: 6px; top: 6px;
  width: 30px; height: 30px; border-radius: 50%;
  background: #fff; border: 2px solid var(--bb-line);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 12px; color: var(--bb-muted);
  z-index: 1;
}
.bb-timeline-dot-interested     { background: #e1f5ec; border-color: #1ca35a; color: #1ca35a; }
.bb-timeline-dot-not-interested { background: #f5e7e7; border-color: #c0392b; color: #c0392b; }
.bb-timeline-dot-not-connected,
.bb-timeline-dot-call-not-received { background: #fef1d8; border-color: #c87b1c; color: #c87b1c; }
.bb-timeline-dot-origin         { background: #e6efff; border-color: var(--bb-blue); color: var(--bb-blue); }

.bb-timeline-card {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 10px;
  padding: 12px 14px;
  box-shadow: 0 1px 3px rgba(20,40,80,.03);
}
.bb-timeline-head {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 10px; flex-wrap: wrap;
}
.bb-timeline-type { margin-bottom: 4px; }
.bb-timeline-date {
  font-size: 12px; color: var(--bb-muted);
  display: inline-flex; align-items: center; gap: 4px;
}
.bb-timeline-date i { color: var(--bb-muted); font-size: 12px; }
.bb-timeline-text {
  margin: 8px 0 0; font-size: 13px; color: var(--bb-body); line-height: 1.5;
}
.bb-timeline-origin .bb-timeline-card { background: #f8faff; border-color: #d8e2f0; }

/* Empty state */
.bb-lead-empty {
  background: #fff; border: 1px dashed var(--bb-line); border-radius: 12px;
  padding: 60px 24px; text-align: center;
}
.bb-lead-empty img { max-width: 180px; opacity: .9; margin-bottom: 16px; }
.bb-lead-empty h3 { font-size: 18px; color: var(--bb-ink); margin: 0 0 6px; }
.bb-lead-empty p { color: var(--bb-muted); font-size: 13.5px; margin: 0 0 16px; }

/* Pagination links rendered by CodeIgniter — basic polish */
.dashboard-content-inner .pagination,
.dashboard-content-inner .page-numbers {
  display: flex; gap: 6px; justify-content: center; padding: 14px 0 4px;
  flex-wrap: wrap; list-style: none;
}
.dashboard-content-inner .pagination a,
.dashboard-content-inner .page-numbers a,
.dashboard-content-inner .pagination span,
.dashboard-content-inner .page-numbers span {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 36px; height: 36px; padding: 0 10px; border-radius: 8px;
  border: 1px solid var(--bb-line); background: #fff;
  color: var(--bb-body); font-size: 13px; font-weight: 600; text-decoration: none;
}
.dashboard-content-inner .pagination a:hover,
.dashboard-content-inner .page-numbers a:hover {
  border-color: #c4d6f2; color: var(--bb-blue);
}
.dashboard-content-inner .pagination .current,
.dashboard-content-inner .page-numbers .current,
.dashboard-content-inner .pagination .active,
.dashboard-content-inner .pagination .active a {
  background: var(--bb-blue); border-color: var(--bb-blue); color: #fff;
}

@media (max-width: 767px) {
  .bb-lead-info { grid-template-columns: 1fr; gap: 6px; }
  .bb-lead-info-row { flex-direction: column; gap: 2px; }
  .bb-lead-info-row .lbl { min-width: 0; font-size: 11.5px; }
  .bb-lead-card-foot .bb-lead-actions { width: 100%; }
  .bb-lead-card-foot .btn { flex: 1 1 auto; justify-content: center; }
}

/* Buyer dashboard — GST + Requirement form pair inside .bb-dash-card */
.bb-buyer-form .bb-buyer-form-sub {
  color: var(--bb-muted); font-size: 13px; margin: 0 0 12px;
}
.bb-buyer-form .bb-field-label {
  display: block; font-size: 12.5px; font-weight: 600; color: var(--bb-ink); margin: 0 0 4px;
}
.bb-buyer-input-row {
  display: flex; gap: 8px; align-items: stretch;
}
.bb-buyer-input-row > .form-control {
  flex: 1 1 auto; height: 42px; border: 1px solid var(--bb-line); border-radius: 8px;
  padding: 0 12px; font-size: 14px;
}
.bb-buyer-input-row > .form-control:focus {
  border-color: var(--bb-blue-light); box-shadow: 0 0 0 3px rgba(47,111,208,.12); outline: 0;
}
.bb-buyer-input-row > .btn {
  flex: 0 0 auto; height: 42px; padding: 0 18px; border-radius: 8px; font-weight: 600;
}
@media (max-width: 480px) {
  .bb-buyer-input-row { flex-direction: column; }
  .bb-buyer-input-row > .btn { width: 100%; }
}

/* Status pills (Recent Leads) */
.bb-dash-pill {
  display: inline-flex; align-items: center;
  font-size: 10.5px; font-weight: 700; letter-spacing: .3px;
  padding: 2px 8px; border-radius: 4px; text-transform: capitalize;
}
.bb-dash-pill.is-new       { background: #e1f5ec; color: #1ca35a; }
.bb-dash-pill.is-contacted { background: #e6efff; color: #2f6fd0; }
.bb-dash-pill.is-pending   { background: #fef1d8; color: #c87b1c; }

/* ---------- Footer strip ---------- */
.bb-dash-foot-strip {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 12px;
  padding: 16px 4px 8px;
  border-top: 1px solid var(--bb-line);
  font-size: 12px; color: var(--bb-muted);
}
.bb-dash-foot-strip nav { display: flex; flex-wrap: wrap; gap: 18px; }
.bb-dash-foot-strip a { color: var(--bb-muted); text-decoration: none; }
.bb-dash-foot-strip a:hover { color: var(--bb-blue); }

/* ---------- Responsive ---------- */
@media (max-width: 1199px) {
  .bb-dash-stats { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
}
@media (max-width: 991px) {
  .bb-dash-row-2 { grid-template-columns: 1fr; }
  .bb-dash-chart-tools { gap: 10px; }
}
@media (max-width: 575px) {
  .bb-dash-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .bb-dash-stat { padding: 12px; }
  .bb-dash-stat-num { font-size: 18px; }
  .bb-dash-stat-ic { width: 34px; height: 34px; font-size: 15px; }
  .bb-dash-card { padding: 14px; }
  .bb-dash-card-head h3 { font-size: 14px; }
  /* Narrow viewports: avatar + body only; meta drops under the title so the
     headline has room to render instead of being squeezed into a few chars. */
  .bb-dash-list-item {
    grid-template-columns: 36px 1fr;
    grid-template-areas: "ic body";
    gap: 10px;
    padding: 8px 0;
  }
  .bb-dash-list-ic, .bb-dash-list-thumb { width: 32px; height: 32px; grid-area: ic; align-self: start; }
  .bb-dash-list-body { grid-area: body; }
  .bb-dash-list-title { font-size: 12.5px; }
  .bb-dash-list-sub, .bb-dash-list-meta { font-size: 11px; }
  .bb-dash-list-meta {
    margin-top: 3px; white-space: normal;
    grid-area: body;
    justify-self: start;
  }
  .bb-dash-list-action {
    width: 28px; height: 28px; font-size: 13px;
    align-self: start;
  }
  /* Search/notification rows still pin their right-side action button to the
     end via auto column when space permits. */
  .bb-dash-list-search .bb-dash-list-item,
  .bb-dash-list-notif  .bb-dash-list-item {
    grid-template-columns: 36px 1fr auto;
    grid-template-areas: "ic body action";
  }
  .bb-dash-list-search .bb-dash-list-action,
  .bb-dash-list-notif  .bb-dash-list-action { grid-area: action; }
  .bb-dash-chart-tools { flex-direction: column; align-items: flex-start; gap: 8px; }
  .bb-dash-legend { font-size: 11.5px; }
}

/* ==========================================================================
   GET QUOTE PAGE — /get-quote
   ========================================================================== */
.bb-gq-hero {
  background:
    radial-gradient(1200px 400px at 100% 0%, rgba(245,121,32,.18), transparent 60%),
    linear-gradient(120deg, var(--bb-blue-darker) 0%, var(--bb-blue-dark) 55%, var(--bb-blue) 100%);
  color: #fff;
  padding: 56px 0 90px;
  position: relative;
  overflow: hidden;
}
.bb-gq-hero::before {
  content: ""; position: absolute; inset: 0;
  background-image:
    radial-gradient(circle at 12% 80%, rgba(255,255,255,.06) 0 1.5px, transparent 2px),
    radial-gradient(circle at 80% 30%, rgba(255,255,255,.05) 0 1.5px, transparent 2px);
  background-size: 38px 38px, 52px 52px;
  pointer-events: none;
}
.bb-gq-hero-inner { position: relative; max-width: 760px; }
.bb-gq-hero-eyebrow {
  display: inline-flex; align-items: center; gap: 7px;
  background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.18);
  color: #fff; font-size: 12.5px; font-weight: 600;
  padding: 6px 14px; border-radius: 999px; margin-bottom: 14px;
}
.bb-gq-hero-eyebrow i { color: var(--bb-orange); }
.bb-gq-hero h1 {
  color: #fff; font-family: var(--bb-head);
  font-size: 38px; line-height: 1.15; font-weight: 700; margin: 0 0 12px;
}
.bb-gq-hero p { color: rgba(255,255,255,.85); font-size: 15.5px; max-width: 620px; margin: 0 0 22px; }
.bb-gq-hero-stats {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; gap: 28px;
}
.bb-gq-hero-stats li { display: flex; flex-direction: column; }
.bb-gq-hero-stats strong { font-family: var(--bb-head); font-size: 22px; font-weight: 700; color: #fff; line-height: 1; }
.bb-gq-hero-stats span { font-size: 12.5px; color: rgba(255,255,255,.75); margin-top: 4px; }

/* ----- Section / grid ----- */
.bb-gq-section { padding: 0 0 60px; margin-top: -56px; position: relative; z-index: 2; }
.bb-gq-grid {
  display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px;
  align-items: start;
}

/* ----- Form card ----- */
.bb-gq-card {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 16px;
  box-shadow: var(--bb-shadow); padding: 28px 28px 22px;
}

/* ----- Step indicator ----- */
.bb-gq-steps {
  list-style: none; padding: 0; margin: 0 0 24px;
  display: flex; gap: 6px; align-items: center; flex-wrap: wrap;
  background: var(--bb-bg); border-radius: 10px; padding: 8px;
}
.bb-gq-steps li {
  flex: 1 1 auto; display: inline-flex; align-items: center; gap: 8px;
  font-size: 12.5px; font-weight: 600; color: var(--bb-muted);
  padding: 8px 12px; border-radius: 7px; white-space: nowrap; min-width: 0;
}
.bb-gq-steps li span {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; border-radius: 50%; background: #fff;
  border: 1px solid var(--bb-line); font-size: 11.5px; color: var(--bb-muted);
}
.bb-gq-steps li.is-active { background: #fff; color: var(--bb-ink); box-shadow: 0 1px 2px rgba(20,40,80,.06); }
.bb-gq-steps li.is-active span { background: var(--bb-blue); border-color: var(--bb-blue); color: #fff; }

/* ----- Section block inside form ----- */
.bb-gq-sec { margin-bottom: 22px; padding-bottom: 22px; border-bottom: 1px solid var(--bb-line); }
.bb-gq-sec:last-of-type { border-bottom: none; padding-bottom: 0; }
.bb-gq-sec-head { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 16px; }
.bb-gq-sec-num {
  flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%;
  background: #eaf1fb; color: var(--bb-blue); font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 13px; font-family: var(--bb-head);
}
.bb-gq-sec-head h3 { font-size: 16px; font-weight: 700; margin: 0; color: var(--bb-ink); line-height: 1.3; }
.bb-gq-sec-head p { font-size: 13px; color: var(--bb-muted); margin: 4px 0 0; }
.bb-gq-optional {
  display: inline-block; font-size: 10.5px; font-weight: 700;
  background: var(--bb-bg); color: var(--bb-muted);
  padding: 2px 7px; border-radius: 4px; margin-left: 4px;
  text-transform: uppercase; letter-spacing: .4px; vertical-align: middle;
}

/* Collapsible section */
.bb-gq-sec-collapsible .bb-gq-sec-head { cursor: pointer; margin-bottom: 0; padding: 4px 0; align-items: center; }
.bb-gq-sec-collapsible .bb-gq-sec-caret { color: var(--bb-muted); transition: transform .2s ease; margin-left: 10px; }
.bb-gq-sec-collapsible .bb-gq-sec-toggle.is-open .bb-gq-sec-caret { transform: rotate(180deg); }
.bb-gq-sec-collapsible .bb-gq-sec-foldable { padding-top: 16px; }

/* ----- Rows & fields ----- */
.bb-gq-row { display: grid; grid-template-columns: repeat(12, 1fr); gap: 14px; margin-bottom: 14px; }
.bb-gq-row:last-child { margin-bottom: 0; }
.bb-gq-col-3  { grid-column: span 3; }
.bb-gq-col-6  { grid-column: span 6; }
.bb-gq-col-9  { grid-column: span 9; }
.bb-gq-col-12 { grid-column: span 12; }
.bb-gq-field { display: flex; flex-direction: column; position: relative; min-width: 0; }
.bb-gq-label {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 12.5px; font-weight: 600; color: var(--bb-ink); margin: 0 0 6px;
}
.bb-gq-req { color: #d23a3a; font-weight: 700; }
.bb-gq-hint { color: var(--bb-muted); font-size: 11.5px; margin-top: 6px; display: inline-flex; align-items: center; gap: 5px; }
.bb-gq-hint i { color: var(--bb-blue); }

.bb-gq-form .form-control,
.bb-gq-form .form-select {
  height: 44px; border: 1px solid var(--bb-line); border-radius: 9px;
  font-size: 14px; padding: 0 12px; background: #fff; color: var(--bb-ink);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.bb-gq-form textarea.form-control { height: auto; min-height: 100px; padding: 10px 12px; line-height: 1.5; }
.bb-gq-form .form-control:focus,
.bb-gq-form .form-select:focus {
  border-color: var(--bb-blue-light);
  box-shadow: 0 0 0 3px rgba(47,111,208,.12);
  outline: none;
}
.bb-gq-form .form-control::placeholder { color: #a3acba; }

/* selectpicker dropdown (bootstrap-select) */
.bb-gq-form .bootstrap-select {
  width: 100% !important;
  border: 0 !important; background: transparent !important;
  padding: 0 !important; box-shadow: none !important; height: auto !important;
}
.bb-gq-form .bootstrap-select.form-control { border: 0 !important; box-shadow: none !important; }
.bb-gq-form .bootstrap-select > .dropdown-toggle,
.bb-gq-form .bootstrap-select > button.btn {
  height: 44px !important; min-height: 44px !important; max-height: 44px !important;
  line-height: 42px !important;
  border: 1px solid var(--bb-line) !important; border-radius: 9px !important;
  background: #fff !important; color: var(--bb-ink) !important;
  padding: 0 36px 0 12px !important; font-size: 14px; font-weight: 400;
  text-align: left; box-shadow: none !important;
  white-space: nowrap; overflow: hidden; position: relative;
}
.bb-gq-form .bootstrap-select > .dropdown-toggle .filter-option {
  position: absolute; top: 0; left: 12px; right: 36px; bottom: 0;
  display: flex; align-items: center; padding: 0 !important;
}
.bb-gq-form .bootstrap-select > .dropdown-toggle:focus,
.bb-gq-form .bootstrap-select.show > .dropdown-toggle,
.bb-gq-form .bootstrap-select > .dropdown-toggle:hover {
  border-color: var(--bb-blue-light) !important;
  box-shadow: 0 0 0 3px rgba(47,111,208,.12) !important;
  outline: 0 !important;
}
.bb-gq-form .bootstrap-select .filter-option-inner,
.bb-gq-form .bootstrap-select .filter-option-inner-inner {
  display: block; line-height: 1; height: auto;
  font-size: 14px; color: var(--bb-ink);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.bb-gq-form .bootstrap-select .filter-option-inner-inner:empty::before,
.bb-gq-form .bootstrap-select.bs-placeholder .filter-option-inner-inner { color: #a3acba; }
.bb-gq-form .bootstrap-select > .dropdown-toggle::after {
  position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  border-top-color: var(--bb-muted); margin: 0;
}
.bb-gq-form .bootstrap-select .dropdown-menu {
  border: 1px solid var(--bb-line); border-radius: 10px;
  box-shadow: var(--bb-shadow); padding: 6px; margin-top: 4px;
}
.bb-gq-form .bootstrap-select .dropdown-menu li a {
  padding: 8px 10px; border-radius: 7px; font-size: 13.5px; color: var(--bb-body);
}
.bb-gq-form .bootstrap-select .dropdown-menu li a:hover,
.bb-gq-form .bootstrap-select .dropdown-menu li a:focus { background: var(--bb-bg); color: var(--bb-blue); }
.bb-gq-form .bootstrap-select .dropdown-menu li.selected a { background: #eaf1fb; color: var(--bb-blue); }
.bb-gq-form .bootstrap-select .bs-searchbox .form-control { height: 38px; }

/* input with leading icon */
.bb-gq-input-icon { position: relative; }
.bb-gq-input-icon > i {
  position: absolute; left: 12px; top: 50%; transform: translateY(-50%);
  color: var(--bb-muted); font-size: 15px; pointer-events: none;
}
.bb-gq-input-icon > .form-control { padding-left: 36px; }

/* product suggestions */
.bb-gq-suggest {
  position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 1100;
  background: #fff; border: 1px solid var(--bb-line); border-radius: 10px;
  box-shadow: var(--bb-shadow); max-height: 300px; overflow-y: auto;
  list-style: none; padding: 6px; margin: 0;
}
.bb-gq-suggest li { padding: 0; }
.bb-gq-suggest li a {
  display: flex; align-items: center; gap: 10px; padding: 9px 12px;
  border-radius: 7px; color: var(--bb-body); font-size: 13.5px;
}
.bb-gq-suggest li a i { color: var(--bb-blue); font-size: 15px; flex-shrink: 0; }
.bb-gq-suggest li a span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bb-gq-suggest li a small {
  font-size: 10.5px; font-weight: 700; color: var(--bb-muted);
  background: var(--bb-bg); padding: 2px 7px; border-radius: 4px;
  text-transform: uppercase; letter-spacing: .3px; flex-shrink: 0;
}
.bb-gq-suggest li a:hover { background: var(--bb-bg); color: var(--bb-blue); }

/* form errors */
.bb-gq-form .rerror,
.bb-gq-form .bb-gq-err,
.bb-gq-form .bb-gq-err-msg,
.bb-gq-form .invalid-feedback {
  display: block !important; width: 100%;
  color: #d23a3a; font-size: 12px; font-weight: 500;
  margin-top: 6px; line-height: 1.35;
}
.bb-gq-form .bb-gq-err-msg:empty { display: none !important; margin: 0; }
.bb-gq-form .bb-gq-err-msg .icon-line-awesome-exclamation-circle,
.bb-gq-form .invalid-feedback .icon-line-awesome-exclamation-circle { margin-right: 4px; }
.bb-gq-form .form-control.is-invalid,
.bb-gq-form .form-select.is-invalid,
.bb-gq-form .form-control.error,
.bb-gq-form .form-select.error {
  border-color: #d23a3a !important;
  box-shadow: 0 0 0 3px rgba(210,58,58,.10) !important;
}
.bb-gq-form .bootstrap-select.is-invalid > .dropdown-toggle,
.bb-gq-form select.is-invalid + .bootstrap-select > .dropdown-toggle {
  border-color: #d23a3a !important;
  box-shadow: 0 0 0 3px rgba(210,58,58,.10) !important;
}

/* top-of-form summary banner */
.bb-gq-summary {
  display: flex; align-items: center; gap: 10px;
  background: #fdecec; border: 1px solid #f5c0c0; color: #a02020;
  padding: 12px 14px; border-radius: 10px; margin-bottom: 18px;
  font-size: 13.5px; font-weight: 600;
}
.bb-gq-summary i { color: #d23a3a; font-size: 17px; flex-shrink: 0; }

/* submit row */
.bb-gq-submit { padding-top: 8px; }
.bb-gq-submit .btn {
  width: 100%; height: 50px; font-size: 15px; font-weight: 700; border-radius: 10px;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--bb-orange); border-color: var(--bb-orange);
}
.bb-gq-submit .btn:hover { background: var(--bb-orange-dark); border-color: var(--bb-orange-dark); }
.bb-gq-tos {
  display: block; text-align: center; color: var(--bb-muted);
  font-size: 12px; margin-top: 12px;
}
.bb-gq-tos i { color: var(--bb-green); margin-right: 4px; }

/* ----- Sidebar ----- */
.bb-gq-aside { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 88px; }
.bb-gq-aside-card {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  padding: 20px; box-shadow: var(--bb-shadow);
}
.bb-gq-aside-card h3 {
  font-size: 15px; font-weight: 700; margin: 0 0 14px;
  display: inline-flex; align-items: center; gap: 8px;
}
.bb-gq-aside-card h3 i { color: var(--bb-blue); font-size: 17px; }

.bb-gq-how-list { list-style: none; padding: 0; margin: 0; }
.bb-gq-how-list li { display: flex; gap: 12px; padding: 10px 0; align-items: flex-start; position: relative; }
.bb-gq-how-list li + li { border-top: 1px dashed var(--bb-line); }
.bb-gq-how-list li .num {
  flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%;
  background: var(--bb-blue); color: #fff; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center; font-size: 13px;
}
.bb-gq-how-list li h4 { font-size: 13.5px; font-weight: 700; margin: 4px 0 3px; color: var(--bb-ink); }
.bb-gq-how-list li p { font-size: 12.5px; color: var(--bb-muted); margin: 0; line-height: 1.45; }

.bb-gq-why h3 i { color: var(--bb-green); }
.bb-gq-why ul { list-style: none; padding: 0; margin: 0; }
.bb-gq-why ul li {
  display: flex; align-items: flex-start; gap: 9px;
  padding: 7px 0; font-size: 13px; color: var(--bb-body);
}
.bb-gq-why ul li i { color: var(--bb-green); font-size: 15px; margin-top: 1px; flex-shrink: 0; }

.bb-gq-quote {
  background: linear-gradient(135deg, var(--bb-blue-dark), var(--bb-blue-light));
  border: none; color: #fff; position: relative; padding: 22px;
}
.bb-gq-quote-mark { position: absolute; top: 8px; right: 14px; font-size: 56px; color: rgba(255,255,255,.15); line-height: 1; }
.bb-gq-quote p { color: #fff; font-size: 13.5px; line-height: 1.55; margin: 0 0 14px; font-style: italic; position: relative; z-index: 1; }
.bb-gq-quote-by { font-size: 12.5px; color: rgba(255,255,255,.85); display: flex; flex-direction: column; }
.bb-gq-quote-by strong { color: #fff; font-size: 13.5px; }

.bb-gq-tip { border-left: 3px solid var(--bb-orange); }
.bb-gq-tip h3 i { color: var(--bb-orange); }
.bb-gq-tip p { font-size: 13px; color: var(--bb-body); line-height: 1.55; margin: 0; }

/* ==========================================================================
   ENQUIRY PAGE — /enquiry/{slug}  (extends .bb-gq-* base)
   ========================================================================== */
.bb-enq-hero { padding: 46px 0 80px; }
.bb-enq-hero h1 { font-size: 30px; margin-bottom: 10px; }

/* Product + supplier context card sits between hero and form grid */
.bb-enq-context {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 16px;
  box-shadow: var(--bb-shadow); padding: 18px; margin-bottom: 22px;
  display: grid; grid-template-columns: 140px 1fr; gap: 18px; align-items: flex-start;
}
.bb-enq-context-media {
  width: 140px; aspect-ratio: 1/1; background: var(--bb-bg);
  border: 1px solid var(--bb-line); border-radius: 12px; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.bb-enq-context-media img { width: 100%; height: 100%; object-fit: cover; }
.bb-enq-context-body { min-width: 0; }
.bb-enq-context-title {
  font-size: 18px; font-weight: 700; color: var(--bb-ink);
  margin: 0 0 12px; line-height: 1.3;
}

.bb-enq-supplier {
  display: grid; grid-template-columns: 56px 1fr auto; gap: 14px; align-items: flex-start;
  border-top: 1px solid var(--bb-line); padding-top: 12px;
}
.bb-enq-supplier-logo {
  width: 56px; height: 56px; border-radius: 10px; object-fit: cover;
  background: #fff; border: 1px solid var(--bb-line);
}
.bb-enq-supplier-info { min-width: 0; }
.bb-enq-supplier-info h3 {
  font-size: 15px; font-weight: 700; margin: 0 0 4px; color: var(--bb-ink);
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.bb-enq-membership { height: 18px; width: auto; }
.bb-enq-badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11px; font-weight: 600; padding: 2px 7px; border-radius: 4px;
  background: var(--bb-bg); color: var(--bb-muted);
}
.bb-enq-badge i { font-size: 12px; }
.bb-enq-badge-verified { background: #e1f5ec; color: var(--bb-green); }
.bb-enq-badge-verified i { color: var(--bb-green); }
.bb-enq-supplier-meta { font-size: 12.5px; color: var(--bb-muted); margin-bottom: 8px; display: inline-flex; align-items: center; gap: 5px; }
.bb-enq-supplier-meta i { color: var(--bb-blue); }
.bb-enq-facts {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; gap: 8px 16px;
}
.bb-enq-facts li {
  font-size: 12.5px; color: var(--bb-body);
  display: inline-flex; align-items: center; gap: 6px;
}
.bb-enq-facts li i { color: var(--bb-blue); font-size: 13.5px; }
.bb-enq-facts li span { color: var(--bb-muted); }
.bb-enq-yes { color: var(--bb-green); font-weight: 600; }
.bb-enq-no  { color: var(--bb-muted); font-weight: 600; }
.bb-enq-profile-btn {
  height: 40px; padding: 0 16px; white-space: nowrap; font-size: 13px;
  display: inline-flex; align-items: center; gap: 7px; border-radius: 8px;
}

@media (max-width: 767px) {
  .bb-enq-context { grid-template-columns: 1fr; padding: 16px; gap: 14px; }
  .bb-enq-context-media { width: 100%; aspect-ratio: 16/10; max-height: 220px; }
  .bb-enq-supplier { grid-template-columns: 48px 1fr; gap: 12px; }
  .bb-enq-supplier-logo { width: 48px; height: 48px; }
  .bb-enq-profile-btn { grid-column: 1 / -1; width: 100%; justify-content: center; height: 44px; }
  .bb-enq-hero h1 { font-size: 24px; }
}

/* ==========================================================================
   SUPPLIER PROFILE PAGE — /supplier/{slug}
   ========================================================================== */
.bb-sup-hero {
  background:
    radial-gradient(900px 320px at 90% 0%, rgba(245,121,32,.18), transparent 60%),
    linear-gradient(120deg, var(--bb-blue-darker) 0%, var(--bb-blue-dark) 60%, var(--bb-blue) 100%);
  color: #fff;
  padding: 38px 0 80px;
  position: relative;
}
.bb-sup-hero-card {
  background: #fff; color: var(--bb-body);
  border-radius: 16px; box-shadow: var(--bb-shadow);
  padding: 22px 26px;
  display: grid; grid-template-columns: 132px 1fr; gap: 22px; align-items: flex-start;
}
.bb-sup-hero-logo {
  width: 132px; height: 132px; border-radius: 14px;
  background: #fff; border: 1px solid var(--bb-line);
  overflow: hidden; display: flex; align-items: center; justify-content: center;
}
.bb-sup-hero-logo img { width: 100%; height: 100%; object-fit: cover; }
.bb-sup-hero-body { min-width: 0; }
.bb-sup-hero-titlebar {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 16px; flex-wrap: wrap; margin-bottom: 10px;
}
.bb-sup-name {
  margin: 0; font-size: 24px; font-weight: 700; color: var(--bb-ink);
  line-height: 1.25;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.bb-sup-claim { white-space: nowrap; padding: 9px 16px; font-size: 13.5px; border-radius: 8px; display: inline-flex; align-items: center; gap: 6px; }
.bb-sup-pill {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11.5px; font-weight: 600; padding: 3px 9px; border-radius: 999px;
  background: var(--bb-bg); color: var(--bb-muted); border: 1px solid var(--bb-line);
}
.bb-sup-pill i { font-size: 12.5px; }
.bb-sup-pill img { height: 14px; width: auto; }
.bb-sup-pill-verified { background: #e1f5ec; border-color: #b9e4cd; color: var(--bb-green); }
.bb-sup-pill-featured { background: #fff4e6; border-color: #fad9b3; color: #b8650e; }

.bb-sup-meta {
  list-style: none; padding: 0; margin: 0 0 10px;
  display: flex; flex-wrap: wrap; gap: 6px 22px;
}
.bb-sup-meta li {
  font-size: 13px; color: var(--bb-body);
  display: inline-flex; align-items: center; gap: 6px;
}
.bb-sup-meta li i { color: var(--bb-blue); font-size: 14px; }
.bb-sup-meta li span { color: var(--bb-muted); font-weight: 500; }

.bb-sup-cats { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; margin-bottom: 14px; }
.bb-sup-cats-lbl { font-size: 12.5px; color: var(--bb-muted); font-weight: 600; display: inline-flex; align-items: center; gap: 5px; }
.bb-sup-cats-lbl i { color: var(--bb-blue); }
.bb-sup-chip {
  display: inline-block; font-size: 12px; font-weight: 500;
  background: #eaf1fb; color: var(--bb-blue);
  padding: 4px 10px; border-radius: 999px;
}

.bb-sup-stats {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px;
  background: var(--bb-bg); border-radius: 10px; padding: 12px;
  margin: 6px 0 12px;
}
.bb-sup-stat { text-align: center; }
.bb-sup-stat .num { font-family: var(--bb-head); font-weight: 700; color: var(--bb-ink); font-size: 18px; line-height: 1; }
.bb-sup-stat .lbl { font-size: 11.5px; color: var(--bb-muted); margin-top: 4px; text-transform: uppercase; letter-spacing: .3px; }

.bb-sup-socials { list-style: none; padding: 0; margin: 6px 0 0; display: flex; gap: 8px; }
.bb-sup-socials li a {
  width: 34px; height: 34px; border-radius: 50%;
  background: var(--bb-bg); color: var(--bb-blue);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 15px; transition: all .15s ease;
}
.bb-sup-socials li a:hover { background: var(--bb-blue); color: #fff; }

/* ----- Tabs ----- */
.bb-sup-body-section { padding: 0 0 60px; margin-top: -48px; position: relative; z-index: 2; }
.bb-sup-tabwrap {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 12px;
  box-shadow: var(--bb-shadow); padding: 6px; margin-bottom: 18px;
}
.bb-sup-tabs { list-style: none; padding: 0; margin: 0; display: flex; gap: 2px; overflow-x: auto; flex-wrap: nowrap; }
.bb-sup-tabs .nav-item { flex-shrink: 0; }
.bb-sup-tabs .nav-link {
  background: transparent; border: 0; padding: 10px 14px; border-radius: 8px;
  color: var(--bb-body); font-weight: 600; font-size: 13.5px;
  display: inline-flex; align-items: center; gap: 7px; white-space: nowrap;
  transition: all .15s ease;
}
.bb-sup-tabs .nav-link i { color: var(--bb-muted); font-size: 15px; }
.bb-sup-tabs .nav-link:hover { background: var(--bb-bg); color: var(--bb-blue); }
.bb-sup-tabs .nav-link:hover i { color: var(--bb-blue); }
.bb-sup-tabs .nav-link.active { background: var(--bb-blue); color: #fff; }
.bb-sup-tabs .nav-link.active i,
.bb-sup-tabs .nav-link.active .bb-sup-tab-count { color: #fff; }
.bb-sup-tab-count {
  font-size: 11px; font-weight: 700; background: rgba(255,255,255,.2);
  padding: 1px 7px; border-radius: 999px; color: var(--bb-muted);
  background: var(--bb-bg);
}
.bb-sup-tabs .nav-link.active .bb-sup-tab-count { background: rgba(255,255,255,.18); color: #fff; }
.bb-sup-tabs::-webkit-scrollbar { height: 4px; }
.bb-sup-tabs::-webkit-scrollbar-thumb { background: var(--bb-line); border-radius: 2px; }

/* ----- Grid ----- */
.bb-sup-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: start; }
.bb-sup-grid.is-owner { grid-template-columns: 1fr; }
.bb-sup-content { min-width: 0; }

.bb-sup-pane {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  box-shadow: var(--bb-shadow); padding: 22px;
}
.bb-sup-pane-title {
  font-size: 17px; font-weight: 700; margin: 0 0 16px;
  display: inline-flex; align-items: center; gap: 8px; color: var(--bb-ink);
}
.bb-sup-pane-title i { color: var(--bb-blue); }
.bb-sup-pane-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.bb-sup-pane-head .btn { padding: 8px 14px; font-size: 13px; display: inline-flex; align-items: center; gap: 6px; }

.bb-sup-prose { color: var(--bb-body); font-size: 14px; line-height: 1.7; }
.bb-sup-empty {
  text-align: center; padding: 50px 20px;
  background: var(--bb-bg); border-radius: 10px; color: var(--bb-muted);
}
.bb-sup-empty i { font-size: 44px; opacity: .6; display: block; margin-bottom: 10px; color: var(--bb-blue); }
.bb-sup-empty h4 { font-size: 15px; font-weight: 600; color: var(--bb-ink); margin: 0; }

/* Gallery */
.bb-sup-gallery-item {
  border-radius: 10px; overflow: hidden; aspect-ratio: 1/1;
  background: var(--bb-bg); border: 1px solid var(--bb-line);
  cursor: pointer; transition: all .18s ease;
}
.bb-sup-gallery-item:hover { box-shadow: var(--bb-shadow-hover); transform: translateY(-2px); }
.bb-sup-gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Products tab — auto-fit grid prevents column collapse from any parent quirk.
   Cards stay at least 220px wide; row count adapts to available width. */
.bb-sup-products-grid {
  display: grid; gap: 14px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.bb-sup-products-grid > article,
.bb-sup-products-grid > .card-product,
.bb-sup-products-grid > .bb-card { min-width: 0; height: 100%; width: auto; }
.bb-sup-products-grid .card.card-product { height: 100%; width: auto; }
.bb-sup-products-grid .bb-card { width: auto !important; max-width: 100%; }
@media (max-width: 420px) {
  .bb-sup-products-grid { grid-template-columns: 1fr; }
}

/* Video */
.bb-sup-video {
  position: relative; border-radius: 10px; overflow: hidden;
  background: #000; aspect-ratio: 16/9;
}
.bb-sup-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Certificates */
.bb-sup-cert-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; }
.bb-sup-cert {
  display: block; border: 1px solid var(--bb-line); border-radius: 10px;
  overflow: hidden; transition: all .18s ease; background: #fff;
  text-decoration: none;
}
.bb-sup-cert:hover { box-shadow: var(--bb-shadow-hover); transform: translateY(-2px); border-color: #c4d6f2; }
.bb-sup-cert-media {
  aspect-ratio: 4/3; background: var(--bb-bg);
  display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.bb-sup-cert-media img { width: 100%; height: 100%; object-fit: cover; }
.bb-sup-cert h5 { font-size: 13px; font-weight: 600; margin: 0; padding: 10px 12px; color: var(--bb-ink); border-top: 1px solid var(--bb-line); }

/* Hours table */
.bb-sup-hours-wrap { background: #fff; border-radius: 10px; overflow: hidden; border: 1px solid var(--bb-line); }
.bb-sup-hours { width: 100%; border-collapse: collapse; }
.bb-sup-hours thead th {
  background: var(--bb-bg); color: var(--bb-muted);
  font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px;
  padding: 12px 16px; text-align: left; border-bottom: 1px solid var(--bb-line);
}
.bb-sup-hours tbody td {
  padding: 12px 16px; font-size: 13.5px; color: var(--bb-body);
  border-bottom: 1px solid var(--bb-line);
}
.bb-sup-hours tbody tr:last-child td { border-bottom: 0; }
.bb-sup-hours tbody tr:hover td { background: var(--bb-bg); }
.bb-sup-hours tbody tr.is-closed td { color: var(--bb-muted); }
.bb-sup-hours tbody tr:first-child td { font-weight: 600; }

/* Reviews */
.bb-sup-rating-summary {
  display: grid; grid-template-columns: 220px 1fr; gap: 28px; align-items: center;
  background: var(--bb-bg); border-radius: 12px; padding: 22px;
  margin-bottom: 18px;
}
.bb-sup-rating-score { text-align: center; }
.bb-sup-rating-score .num { font-family: var(--bb-head); font-size: 44px; font-weight: 700; color: var(--bb-ink); line-height: 1; }
.bb-sup-rating-score .star-rating { margin: 8px 0 6px; }
.bb-sup-rating-score p { font-size: 13px; color: var(--bb-muted); margin: 0; }
.bb-sup-rating-bars { display: flex; flex-direction: column; gap: 6px; }
.bb-sup-rb { display: grid; grid-template-columns: 36px 1fr 32px; gap: 12px; align-items: center; }
.bb-sup-rb .lbl { font-size: 12.5px; font-weight: 600; color: var(--bb-body); display: inline-flex; align-items: center; gap: 3px; }
.bb-sup-rb .lbl i { color: #f5a623; font-size: 11px; }
.bb-sup-rb .track { height: 8px; background: #e6eaf0; border-radius: 999px; overflow: hidden; }
.bb-sup-rb .fill { height: 100%; border-radius: 999px; background: var(--bb-blue); }
.bb-sup-rb .fill.is-5 { background: #1ca35a; }
.bb-sup-rb .fill.is-4 { background: #6abf69; }
.bb-sup-rb .fill.is-3 { background: #f5a623; }
.bb-sup-rb .fill.is-2 { background: #f57920; }
.bb-sup-rb .fill.is-1 { background: #d23a3a; }
.bb-sup-rb .cnt { font-size: 12px; color: var(--bb-muted); text-align: right; }

/* ----- Sidebar ----- */
.bb-sup-aside { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 88px; }
.bb-sup-aside-card {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  padding: 20px; box-shadow: var(--bb-shadow);
}
.bb-sup-aside-title {
  font-size: 15px; font-weight: 700; margin: 0 0 4px;
  display: inline-flex; align-items: center; gap: 8px; color: var(--bb-ink);
}
.bb-sup-aside-title i { color: var(--bb-blue); }
.bb-sup-aside-sub { font-size: 12.5px; color: var(--bb-muted); margin: 0 0 14px; }

/* Enquiry form */
.bb-sup-form .form-control,
.bb-sup-form .form-select {
  height: 42px; border: 1px solid var(--bb-line); border-radius: 9px;
  font-size: 14px; padding: 0 12px;
}
/* Sidebar enquiry forms (supplier + product pages) live in a ~340px column.
   Override the 12-col grid for the phone row so the code input keeps a sane
   min-width and the labels don't squeeze into wrapping chips. */
.bb-sup-form .bb-gq-row {
  display: flex; flex-wrap: wrap; gap: 10px;
}
.bb-sup-form .bb-gq-row > .bb-gq-field {
  flex: 1 1 auto; min-width: 0;
}
.bb-sup-form .bb-gq-row > .bb-gq-col-4 { flex: 0 0 96px; }
.bb-sup-form .bb-gq-row > .bb-gq-col-8 { flex: 1 1 160px; }
/* Keep both labels on a single line and at the same height so the input
   baseline stays aligned — fixes the "Country Code" wrap that pushed the
   select higher than the Mobile Number input next to it. */
.bb-sup-form .bb-gq-row > .bb-gq-field > .bb-gq-label {
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  min-height: 22px; line-height: 22px;
  display: flex; align-items: center; gap: 4px;
}
.bb-sup-form .bb-gq-row > .bb-gq-field { display: flex; flex-direction: column; }
.bb-sup-form .form-control:focus,
.bb-sup-form .form-select:focus {
  border-color: var(--bb-blue-light); box-shadow: 0 0 0 3px rgba(47,111,208,.12); outline: 0;
}
.bb-sup-form textarea.form-control { height: auto; padding: 10px 12px; line-height: 1.5; }
.bb-sup-submit {
  width: 100%; height: 46px; font-size: 14.5px; font-weight: 700;
  border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--bb-orange); border-color: var(--bb-orange); margin-top: 4px;
}
.bb-sup-submit:hover { background: var(--bb-orange-dark); border-color: var(--bb-orange-dark); }

/* Share */
.bb-sup-copy { display: flex; gap: 6px; margin-bottom: 12px; }
.bb-sup-copy .form-control { flex: 1; height: 40px; font-size: 12.5px; border-radius: 8px; color: var(--bb-muted); background: var(--bb-bg); border-color: var(--bb-line); }
.bb-sup-copy .copy-url-button {
  flex-shrink: 0; height: 40px; width: 44px;
  background: var(--bb-blue); color: #fff; border: 0; border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center;
}
.bb-sup-copy .copy-url-button:hover { background: var(--bb-blue-dark); color: #fff; }
.bb-sup-share-links { list-style: none; padding: 0; margin: 0; display: flex; gap: 8px; }
.bb-sup-share-links li a {
  width: 38px; height: 38px; border-radius: 8px;
  background: var(--bb-bg); color: var(--bb-blue);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 16px; transition: all .15s ease;
}
.bb-sup-share-links li a:hover { background: var(--bb-blue); color: #fff; }

/* Review modal star group */
.bb-sup-stars {
  display: inline-flex; gap: 4px; padding: 4px;
  background: var(--bb-bg); border-radius: 10px;
  /* Visual order 1→5 is achieved by reversing the row; HTML renders the
     inputs 5→1 so :checked ~ .bb-sup-star fills every lower-rated star too. */
  flex-direction: row-reverse;
  justify-content: flex-end;
}
.bb-sup-stars .btn-check { position: absolute; clip: rect(0,0,0,0); pointer-events: none; }
.bb-sup-star {
  width: 40px; height: 40px; border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; color: #d0d6df; font-size: 18px;
  transition: all .12s ease; background: #fff; border: 1px solid transparent;
  margin: 0;
}
/* Fill all stars up to and including the checked one
   (selected star = adjacent label; lower-value stars = following siblings). */
.bb-sup-stars .btn-check:checked + .bb-sup-star,
.bb-sup-stars .btn-check:checked ~ .bb-sup-star {
  color: #f5a623; border-color: #f5d293; background: #fff8eb;
}
/* Hover preview — fill all stars from 1 to the hovered one, including
   when nothing is selected yet. */
.bb-sup-stars:hover .bb-sup-star { color: #d0d6df; border-color: transparent; background: #fff; }
.bb-sup-star:hover,
.bb-sup-star:hover ~ .bb-sup-star {
  color: #f5a623; border-color: #f5d293; background: #fff8eb;
}

/* ----- Responsive ----- */
@media (max-width: 1199px) {
  .bb-sup-grid { grid-template-columns: minmax(0, 1fr) 320px; }
}
@media (max-width: 991px) {
  .bb-sup-grid { grid-template-columns: 1fr; }
  .bb-sup-aside { position: static; }
  .bb-sup-hero-card { grid-template-columns: 100px 1fr; padding: 18px; gap: 16px; }
  .bb-sup-hero-logo { width: 100px; height: 100px; }
  .bb-sup-name { font-size: 20px; }
  .bb-sup-rating-summary { grid-template-columns: 1fr; gap: 18px; padding: 18px; }
}
@media (max-width: 575px) {
  .bb-sup-hero { padding: 28px 0 70px; }
  .bb-sup-hero-card { grid-template-columns: 1fr; text-align: center; }
  .bb-sup-hero-logo { width: 96px; height: 96px; margin: 0 auto; }
  .bb-sup-hero-titlebar { flex-direction: column; align-items: stretch; }
  .bb-sup-name { justify-content: center; }
  .bb-sup-meta { justify-content: center; }
  .bb-sup-cats { justify-content: center; }
  .bb-sup-socials { justify-content: center; }
  .bb-sup-stats { grid-template-columns: repeat(2, 1fr); }
  .bb-sup-pane { padding: 16px; }
  .bb-sup-pane-title { font-size: 15px; }
  .bb-sup-claim { width: 100%; justify-content: center; }
  .bb-sup-tabs .nav-link { padding: 9px 11px; font-size: 12.5px; }
}

/* ==========================================================================
   PRODUCT VIEW PAGE — /product/{slug}
   ========================================================================== */
.bb-pv-section { padding: 18px 0 60px; }
.bb-ad-banner { margin: 0 auto 12px; text-align: center; }
.bb-ad-banner:empty { display: none; }

/* ----- Breadcrumbs ----- */
.bb-pv-crumbs {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  font-size: 12.5px; color: var(--bb-muted); margin-bottom: 16px;
}
.bb-pv-crumbs a { color: var(--bb-muted); display: inline-flex; align-items: center; gap: 4px; }
.bb-pv-crumbs a:hover { color: var(--bb-blue); }
.bb-pv-crumbs .sep { color: var(--bb-muted); font-size: 11px; opacity: .6; }
.bb-pv-crumbs .is-current { color: var(--bb-ink); font-weight: 600; }

/* ----- Hero ----- */
.bb-pv-hero {
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 18px; margin-bottom: 18px;
}
.bb-pv-gallery, .bb-pv-summary {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  box-shadow: var(--bb-shadow); padding: 18px;
}
.bb-pv-gallery #ninja-slider { background: #fff; }
.bb-pv-gallery-foot {
  display: flex; flex-wrap: wrap; gap: 12px; margin-top: 14px;
  padding-top: 14px; border-top: 1px solid var(--bb-line);
}
.bb-pv-galf-link {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 13px; font-weight: 600; color: var(--bb-blue);
  padding: 7px 12px; border-radius: 8px; background: #eaf1fb;
}
.bb-pv-galf-link:hover { background: var(--bb-blue); color: #fff; }
.bb-pv-gallery-empty { display: flex; align-items: center; justify-content: center; min-height: 320px; }
.bb-pv-gallery-empty img { max-width: 80%; opacity: .8; }

/* Summary */
.bb-pv-summary { display: flex; flex-direction: column; }
.bb-pv-title { font-size: 22px; font-weight: 700; color: var(--bb-ink); line-height: 1.3; margin: 0 0 14px; }
.bb-pv-price-row { margin-bottom: 14px; }
.bb-pv-price {
  display: inline-flex; align-items: baseline; gap: 6px;
  background: linear-gradient(135deg, #fff4e6, #ffeed4);
  border: 1px solid #f8d7a3; padding: 10px 16px; border-radius: 10px;
}
.bb-pv-price .cur { font-size: 13px; font-weight: 600; color: var(--bb-orange-dark); }
.bb-pv-price .amt { font-family: var(--bb-head); font-size: 24px; font-weight: 700; color: var(--bb-orange-dark); line-height: 1; }
.bb-pv-price .unit { font-size: 12.5px; color: var(--bb-muted); margin-left: 2px; }
.bb-pv-glp {
  display: inline-flex; align-items: center; gap: 7px;
  background: linear-gradient(135deg, #fff4e6, #ffeed4);
  border: 1px solid #f8d7a3; padding: 10px 18px; border-radius: 10px;
  color: var(--bb-orange-dark); font-size: 14px; font-weight: 700;
}
.bb-pv-glp:hover { background: var(--bb-orange); border-color: var(--bb-orange); color: #fff; }

.bb-pv-facts {
  list-style: none; padding: 0; margin: 0 0 14px;
  display: flex; flex-wrap: wrap; gap: 8px 18px;
}
.bb-pv-facts li {
  font-size: 13px; color: var(--bb-body);
  display: inline-flex; align-items: center; gap: 6px;
}
.bb-pv-facts li i { color: var(--bb-blue); font-size: 14px; }
.bb-pv-facts li span { color: var(--bb-muted); }
.bb-pv-yes { color: var(--bb-green); font-weight: 600; }
.bb-pv-no  { color: var(--bb-muted); font-weight: 600; }

.bb-pv-mini-specs {
  background: var(--bb-bg); border-radius: 10px;
  padding: 6px 12px; margin-bottom: 14px;
}
.bb-pv-mini-specs table { width: 100%; border-collapse: collapse; }
.bb-pv-mini-specs td { padding: 7px 4px; font-size: 13px; color: var(--bb-body); border-bottom: 1px dashed var(--bb-line); vertical-align: top; }
.bb-pv-mini-specs tr:last-child td { border-bottom: 0; }
.bb-pv-mini-specs td.lbl { color: var(--bb-muted); width: 42%; font-weight: 500; }

.bb-pv-short { font-size: 13.5px; color: var(--bb-body); margin: 0 0 10px; }
.bb-pv-short strong { color: var(--bb-ink); }
.bb-pv-short-info { font-size: 13px; color: var(--bb-muted); margin: 0 0 14px; }

.bb-pv-actions { display: flex; gap: 10px; align-items: center; margin-top: auto; flex-wrap: wrap; }
.bb-pv-cta {
  flex: 1 1 auto; min-width: 160px; height: 46px; font-size: 14.5px; font-weight: 700; border-radius: 10px;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--bb-orange); border-color: var(--bb-orange);
}
.bb-pv-cta:hover { background: var(--bb-orange-dark); border-color: var(--bb-orange-dark); }
.bb-pv-actions .btn-outline-primary { height: 46px; border-radius: 10px; display: inline-flex; align-items: center; gap: 7px; padding: 0 14px; }
.bb-pv-fav {
  width: 46px; height: 46px; border-radius: 10px;
  border: 1px solid var(--bb-line); background: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--bb-muted); font-size: 18px; position: relative;
  transition: all .15s ease; flex-shrink: 0;
}
.bb-pv-fav:hover { border-color: #f5b1b1; color: #d23a3a; }
.bb-pv-fav .bi-heart-fill { display: none; color: #d23a3a; }
.bb-pv-fav.active .bi-heart { display: none; }
.bb-pv-fav.active .bi-heart-fill { display: inline-block; }
.bb-pv-fav.active { border-color: #f5b1b1; background: #fdecec; }

/* ----- Grid ----- */
.bb-pv-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: start; }
.bb-pv-main { min-width: 0; }

/* Tabs */
.bb-pv-tabwrap {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 12px;
  box-shadow: var(--bb-shadow); padding: 6px; margin-bottom: 14px;
}
.bb-pv-tabs { list-style: none; padding: 0; margin: 0; display: flex; gap: 2px; overflow-x: auto; flex-wrap: nowrap; }
.bb-pv-tabs .nav-item { flex-shrink: 0; flex: 1; }
.bb-pv-tabs .nav-link {
  width: 100%;
  background: transparent; border: 0; padding: 11px 14px; border-radius: 8px;
  color: var(--bb-body); font-weight: 600; font-size: 13.5px;
  display: inline-flex; align-items: center; justify-content: center; gap: 7px; white-space: nowrap;
  transition: all .15s ease;
}
.bb-pv-tabs .nav-link i { color: var(--bb-muted); font-size: 15px; }
.bb-pv-tabs .nav-link:hover { background: var(--bb-bg); color: var(--bb-blue); }
.bb-pv-tabs .nav-link:hover i { color: var(--bb-blue); }
.bb-pv-tabs .nav-link.active { background: var(--bb-blue); color: #fff; }
.bb-pv-tabs .nav-link.active i { color: #fff; }

/* Pane card */
.bb-pv-pane {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  box-shadow: var(--bb-shadow); padding: 20px; margin-bottom: 14px;
}
.bb-pv-pane-title {
  font-size: 16px; font-weight: 700; margin: 0 0 14px;
  display: inline-flex; align-items: center; gap: 8px; color: var(--bb-ink);
}
.bb-pv-pane-title i { color: var(--bb-blue); }
.bb-pv-pane-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.bb-pv-pane-head .btn { padding: 8px 14px; font-size: 13px; display: inline-flex; align-items: center; gap: 6px; }
.bb-pv-prose { color: var(--bb-body); font-size: 14px; line-height: 1.7; }

/* Spec table */
.bb-pv-spec-wrap { background: var(--bb-bg); border-radius: 10px; padding: 4px 14px; }
.bb-pv-spec { width: 100%; border-collapse: collapse; }
.bb-pv-spec td { padding: 11px 8px; font-size: 13.5px; color: var(--bb-body); border-bottom: 1px solid var(--bb-line); vertical-align: top; }
.bb-pv-spec tr:last-child td { border-bottom: 0; }
.bb-pv-spec td.lbl { color: var(--bb-muted); font-weight: 600; width: 30%; }
.bb-pv-spec-list { padding-left: 18px; margin: 0; }
.bb-pv-spec-list li { padding: 1px 0; }

/* Video */
.bb-pv-video {
  position: relative; aspect-ratio: 16/9; border-radius: 10px;
  overflow: hidden; background: #000;
}
.bb-pv-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Rating */
.bb-pv-rating {
  display: grid; grid-template-columns: 200px 1fr 240px; gap: 22px; align-items: center;
  background: var(--bb-bg); border-radius: 12px; padding: 20px;
  margin-bottom: 18px;
}
.bb-pv-rating-score { text-align: center; }
.bb-pv-rating-score .num { font-family: var(--bb-head); font-size: 42px; font-weight: 700; color: var(--bb-ink); line-height: 1; }
.bb-pv-rating-score .star-rating { margin: 8px 0 6px; }
.bb-pv-rating-score p { font-size: 12.5px; color: var(--bb-muted); margin: 0; }
.bb-pv-rating-bars { display: flex; flex-direction: column; gap: 6px; }
.bb-pv-rating-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; text-align: center; }
.bb-pv-rstat .global { display: inline-block; }
.bb-pv-rstat h5 { font-size: 12px; font-weight: 600; color: var(--bb-body); margin: 6px 0 0; }

/* Reviews list */
.bb-pv-reviews-list { padding: 0; margin: 0; list-style: none; }
.bb-pv-reviews-list:empty { display: none; }

/* Report row */
.bb-pv-report {
  display: flex; align-items: center; justify-content: flex-end; gap: 10px;
  padding: 10px 0 6px; margin-bottom: 6px;
}

/* Similar products */
.bb-pv-similar { background: #fff; border: 1px solid var(--bb-line); border-radius: 14px; box-shadow: var(--bb-shadow); padding: 20px; margin-bottom: 14px; }
/* The AJAX endpoint returns flat .bb-card children — lay them out as a grid.
   auto-fit + minmax(220px, 1fr) prevents cards from collapsing to single-char width
   no matter what parent flex/grid quirks are in play. */
.bb-pv-similar-grid {
  display: grid; gap: 14px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.bb-pv-similar-grid > .bb-card,
.bb-pv-similar-grid > article,
.bb-pv-similar-grid > .card-product { min-width: 0; height: 100%; width: auto; }
.bb-pv-similar-grid .card.card-product { height: 100%; width: auto; }
/* Override any inherited fixed-width .bb-card (e.g. from .bb-scroll-track on home page) */
.bb-pv-similar-grid .bb-card { width: auto !important; max-width: 100%; }
@media (max-width: 420px) {
  .bb-pv-similar-grid { grid-template-columns: 1fr; }
}

/* Certificates grid (reuse from supplier) */
.bb-pv-cert-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; }
.bb-pv-cert { display: block; border: 1px solid var(--bb-line); border-radius: 10px; overflow: hidden; transition: all .18s ease; background: #fff; text-decoration: none; }
.bb-pv-cert:hover { box-shadow: var(--bb-shadow-hover); transform: translateY(-2px); border-color: #c4d6f2; }
.bb-pv-cert-media { aspect-ratio: 4/3; background: var(--bb-bg); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.bb-pv-cert-media img { width: 100%; height: 100%; object-fit: cover; }
.bb-pv-cert h5 { font-size: 13px; font-weight: 600; margin: 0; padding: 10px 12px; color: var(--bb-ink); border-top: 1px solid var(--bb-line); }

/* ----- Sidebar ----- */
.bb-pv-aside { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 88px; }
.bb-pv-aside-card {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  padding: 18px; box-shadow: var(--bb-shadow);
}

/* Supplier card */
.bb-pv-supplier-top { display: flex; gap: 12px; margin-bottom: 12px; align-items: flex-start; }
.bb-pv-supplier-logo {
  width: 56px; height: 56px; border-radius: 10px; flex-shrink: 0;
  background: #fff; border: 1px solid var(--bb-line); overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center;
}
.bb-pv-supplier-logo img { width: 100%; height: 100%; object-fit: cover; }
.bb-pv-supplier-info { min-width: 0; flex: 1; }
.bb-pv-supplier-info h4 { font-size: 15px; font-weight: 700; margin: 0 0 6px; color: var(--bb-ink); line-height: 1.3; }
.bb-pv-supplier-info h4 a { color: inherit; }
.bb-pv-supplier-info h4 a:hover { color: var(--bb-blue); }
.bb-pv-supplier-badges { display: flex; gap: 5px; flex-wrap: wrap; }
.bb-pv-supplier-badges a.bb-enq-badge { text-decoration: none; }
.bb-pv-supplier-badges a.bb-enq-badge:hover { background: var(--bb-blue); color: #fff; }

.bb-pv-supplier-meta { list-style: none; padding: 0; margin: 0 0 14px; }
.bb-pv-supplier-meta li {
  font-size: 12.5px; color: var(--bb-body); padding: 4px 0;
  display: flex; align-items: flex-start; gap: 7px;
}
.bb-pv-supplier-meta li i { color: var(--bb-blue); font-size: 14px; margin-top: 1px; flex-shrink: 0; }
.bb-pv-supplier-meta li a { color: var(--bb-blue); word-break: break-all; }

.bb-pv-phone-btn { height: 42px; font-size: 13.5px; font-weight: 600; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.bb-pv-phone-btn ec { letter-spacing: .3px; }

/* ==========================================================================
   CLAIM THIS BUSINESS MODAL (loaded via AJAX into #myModal)
   ========================================================================== */
.bb-claim-head {
  background: linear-gradient(135deg, #f4f8ff, #ffffff);
  border-bottom: 1px solid var(--bb-line) !important;
  padding: 16px 18px !important;
  align-items: center !important;
  gap: 12px !important;
  text-align: left;
}
.bb-claim-head-ic {
  flex-shrink: 0; width: 42px; height: 42px; border-radius: 10px;
  background: #eaf1fb; color: var(--bb-blue);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 20px;
}
.bb-claim-head-text { flex: 1 1 auto; min-width: 0; }
.bb-claim-head-text .modal-title {
  font-size: 17px !important; font-weight: 700 !important; margin: 0 !important;
  color: var(--bb-ink) !important; line-height: 1.25;
}
.bb-claim-head-text p {
  margin: 3px 0 0 !important; color: var(--bb-muted) !important;
  font-size: 12.5px !important; line-height: 1.4;
}
.bb-claim-close {
  flex-shrink: 0; width: 32px; height: 32px; border-radius: 8px;
  background: transparent; border: 1px solid var(--bb-line);
  color: var(--bb-muted); font-size: 13px;
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; transition: all .15s ease; padding: 0; margin: 0;
}
.bb-claim-close:hover { background: var(--bb-bg); color: var(--bb-ink); border-color: #c4d6f2; }

.bb-claim-body { padding: 22px 24px !important; max-height: 75vh; overflow-y: auto; }

.bb-claim-form .form-control,
.bb-claim-form .form-select {
  height: 44px; border-radius: 9px;
}
.bb-claim-form textarea.form-control { height: auto; }

/* Phone row inside the claim modal — flex for narrow widths */
.bb-claim-form .bb-claim-phone-row {
  display: flex; flex-wrap: wrap; gap: 10px;
}
.bb-claim-form .bb-claim-phone-row > .bb-gq-field { flex: 1 1 auto; min-width: 0; }
.bb-claim-form .bb-claim-phone-row > .bb-gq-col-5 { flex: 0 0 180px; }
.bb-claim-form .bb-claim-phone-row > .bb-gq-col-7 { flex: 1 1 200px; }

/* selectpicker inside the claim modal */
.bb-claim-form .bootstrap-select { width: 100% !important; border: 0 !important; background: transparent !important; padding: 0 !important; box-shadow: none !important; height: auto !important; }
.bb-claim-form .bootstrap-select.form-control { border: 0 !important; box-shadow: none !important; }
.bb-claim-form .bootstrap-select > .dropdown-toggle,
.bb-claim-form .bootstrap-select > button.btn {
  height: 44px !important; min-height: 44px !important; max-height: 44px !important;
  line-height: 42px !important;
  border: 1px solid var(--bb-line) !important; border-radius: 9px !important;
  background: #fff !important; color: var(--bb-ink) !important;
  padding: 0 36px 0 12px !important; font-size: 14px; font-weight: 400;
  text-align: left; box-shadow: none !important;
  white-space: nowrap; overflow: hidden; position: relative;
}
.bb-claim-form .bootstrap-select .filter-option {
  position: absolute; top: 0; left: 12px; right: 36px; bottom: 0;
  display: flex; align-items: center; padding: 0 !important;
}
.bb-claim-form .bootstrap-select > .dropdown-toggle::after {
  position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  border-top-color: var(--bb-muted); margin: 0;
}

/* Inline hint inside a label */
.bb-gq-hint-inline { font-weight: 400; color: var(--bb-muted); font-size: 11.5px; margin-left: 4px; }

/* Drop zone (PDF upload) */
.bb-claim-dropzone {
  display: flex; align-items: center; gap: 14px;
  border: 1.5px dashed var(--bb-line); border-radius: 10px;
  background: var(--bb-bg); padding: 16px 18px; cursor: pointer;
  transition: all .15s ease; margin: 0;
}
.bb-claim-dropzone:hover { border-color: var(--bb-blue-light); background: #f0f6ff; }
.bb-claim-drop-ic {
  width: 44px; height: 44px; border-radius: 10px;
  background: #fff; border: 1px solid var(--bb-line);
  color: var(--bb-blue); font-size: 22px;
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.bb-claim-drop-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bb-claim-drop-text strong { color: var(--bb-blue); font-size: 13.5px; font-weight: 600; }
.bb-claim-drop-text span { color: var(--bb-muted); font-size: 12px; }

/* Uploaded file card */
.bb-claim-file {
  display: flex; gap: 12px; align-items: center;
  background: #fff; border: 1px solid var(--bb-line); border-radius: 10px;
  padding: 12px 14px; margin-top: 10px;
}
.bb-claim-file.is-success { border-color: #b9e4cd; background: #f4fbf7; }
.bb-claim-file.is-error   { border-color: #f5c0c0; background: #fdf3f3; }
.bb-claim-file-ic {
  font-size: 30px; color: #d23a3a; flex-shrink: 0;
}
.bb-claim-file.is-success .bb-claim-file-ic { color: var(--bb-green); }
.bb-claim-file-body { flex: 1; min-width: 0; }
.bb-claim-file-name { font-size: 13px; font-weight: 600; color: var(--bb-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bb-claim-file-meta { font-size: 11.5px; color: var(--bb-muted); display: flex; gap: 6px; align-items: center; margin: 2px 0 6px; }
.bb-claim-file-status i { font-size: 13px; }
.bb-claim-file.is-success .bb-claim-file-status { color: var(--bb-green); }
.bb-claim-file.is-error .bb-claim-file-status { color: #d23a3a; }
.bb-claim-file-bar { height: 4px; background: #e6eaf0; border-radius: 999px; overflow: hidden; }
.bb-claim-file-fill { height: 100%; background: var(--bb-blue); width: 0%; transition: width .15s linear; }
.bb-claim-file.is-success .bb-claim-file-fill { background: var(--bb-green); }
.bb-claim-file.is-error .bb-claim-file-fill { background: #d23a3a; }

/* Trust strip above the submit button */
.bb-claim-trust {
  display: flex; align-items: flex-start; gap: 10px;
  background: #f4fbf7; border: 1px solid #b9e4cd;
  padding: 10px 14px; border-radius: 10px;
  font-size: 12.5px; color: var(--bb-ink); margin-bottom: 14px;
}
.bb-claim-trust i { color: var(--bb-green); font-size: 16px; margin-top: 1px; flex-shrink: 0; }

/* Submit */
.bb-claim-submit {
  width: 100%; height: 48px; font-size: 14.5px; font-weight: 700;
  border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--bb-orange); border-color: var(--bb-orange);
}
.bb-claim-submit:hover { background: var(--bb-orange-dark); border-color: var(--bb-orange-dark); }
.bb-claim-submit.btn-outline-primary { background: transparent; color: var(--bb-blue); border-color: var(--bb-blue); }

/* OTP step head */
.bb-claim-otp-head { text-align: center; padding: 4px 0 18px; }
.bb-claim-otp-ic {
  width: 60px; height: 60px; border-radius: 50%;
  background: linear-gradient(135deg, #eaf1fb, #d6e4fb);
  color: var(--bb-blue); font-size: 26px;
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 12px;
}
.bb-claim-otp-head h2 { font-size: 18px; font-weight: 700; margin: 0 0 4px; color: var(--bb-ink); }
.bb-claim-otp-head p { font-size: 13px; color: var(--bb-muted); margin: 0 auto; max-width: 360px; }

.bb-claim-otp-input {
  height: 48px !important; text-align: center; font-size: 16px; font-weight: 700;
  letter-spacing: 4px;
}

/* Step indicator inside the claim modal — slim variant */
.bb-claim-form .bb-gq-steps { padding: 6px; }
.bb-claim-form .bb-gq-steps li { font-size: 12px; padding: 6px 10px; }
.bb-claim-form .bb-gq-steps li span { width: 20px; height: 20px; font-size: 11px; }
.bb-claim-form .bb-gq-steps li span i { color: var(--bb-green); }

@media (max-width: 575px) {
  .bb-claim-head { padding: 18px !important; }
  .bb-claim-head .modal-title { font-size: 17px !important; }
  .bb-claim-body { padding: 18px !important; }
  .bb-claim-dropzone { padding: 14px; gap: 12px; }
  .bb-claim-drop-ic { width: 38px; height: 38px; font-size: 18px; }
  .bb-claim-form .bb-claim-phone-row > .bb-gq-col-5,
  .bb-claim-form .bb-claim-phone-row > .bb-gq-col-7 { flex: 1 1 100%; }
}

/* ==========================================================================
   LOGIN / SIGNUP PAGES — split brand panel + form card
   ========================================================================== */
.bb-auth {
  background: var(--bb-bg);
  min-height: calc(100vh - 70px);
  display: flex; align-items: stretch;
  padding: 24px 16px;
}
.bb-auth-wrap {
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 28px; max-width: 1180px; margin: 0 auto;
  width: 100%; align-items: stretch;
}

/* ----- Brand panel ----- */
.bb-auth-brand {
  background:
    radial-gradient(900px 320px at 100% 0%, rgba(245,121,32,.20), transparent 60%),
    linear-gradient(135deg, var(--bb-blue-darker) 0%, var(--bb-blue-dark) 60%, var(--bb-blue) 100%);
  border-radius: 18px; color: #fff; overflow: hidden; position: relative;
  display: flex; align-items: center;
}
.bb-auth-brand::before {
  content: ""; position: absolute; inset: 0;
  background-image:
    radial-gradient(circle at 14% 78%, rgba(255,255,255,.06) 0 1.5px, transparent 2px),
    radial-gradient(circle at 82% 32%, rgba(255,255,255,.05) 0 1.5px, transparent 2px);
  background-size: 38px 38px, 52px 52px; pointer-events: none;
}
.bb-auth-brand-inner { padding: 44px 40px; position: relative; max-width: 480px; }
.bb-auth-brand-logo { background: #fff; border-radius: 10px; padding: 8px 12px; display: inline-block; margin-bottom: 22px; }
.bb-auth-brand-logo img { height: 36px; width: auto; display: block; }
.bb-auth-brand h2 {
  color: #fff; font-family: var(--bb-head); font-size: 30px; line-height: 1.2;
  font-weight: 700; margin: 0 0 14px;
}
.bb-auth-brand p { color: rgba(255,255,255,.85); font-size: 14.5px; line-height: 1.55; margin: 0 0 26px; }
.bb-auth-brand-feats { list-style: none; padding: 0; margin: 0 0 28px; }
.bb-auth-brand-feats li {
  display: flex; align-items: center; gap: 11px;
  padding: 7px 0; font-size: 14px; color: rgba(255,255,255,.95);
}
.bb-auth-brand-feats li i { color: var(--bb-orange); font-size: 18px; }

.bb-auth-brand-trust {
  display: flex; gap: 26px; padding-top: 20px;
  border-top: 1px solid rgba(255,255,255,.18);
}
.bb-auth-tstat { display: flex; flex-direction: column; }
.bb-auth-tstat strong { font-family: var(--bb-head); font-size: 22px; font-weight: 700; color: #fff; line-height: 1; }
.bb-auth-tstat span { font-size: 11.5px; color: rgba(255,255,255,.75); margin-top: 4px; }

/* ----- Form panel ----- */
.bb-auth-panel { display: flex; align-items: center; justify-content: center; }
.bb-auth-card {
  width: 100%; max-width: 460px;
  background: #fff; border-radius: 18px; border: 1px solid var(--bb-line);
  box-shadow: var(--bb-shadow); padding: 36px;
}

.bb-auth-head { margin-bottom: 24px; text-align: left; }
.bb-auth-head h1 {
  font-size: 26px; font-weight: 700; color: var(--bb-ink);
  margin: 0 0 6px; line-height: 1.2;
}
.bb-auth-head p { font-size: 13.5px; color: var(--bb-muted); margin: 0; line-height: 1.5; }

/* Auth form refinements */
.bb-auth-card .bb-gq-form .form-control,
.bb-auth-card .bb-gq-form .form-select {
  height: 46px; border-radius: 10px;
}
.bb-auth-card .bb-gq-label i { color: var(--bb-blue); }
.bb-auth-card .bb-gq-label .text-success { color: var(--bb-green) !important; }

.bb-auth-submit {
  width: 100%; height: 48px; border-radius: 10px;
  font-size: 15px; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--bb-orange); border-color: var(--bb-orange); color: #fff;
  margin-top: 4px;
}
.bb-auth-submit:hover { background: var(--bb-orange-dark); border-color: var(--bb-orange-dark); color: #fff; }
.bb-auth-submit.btn-outline-primary { background: transparent; color: var(--bb-blue); border-color: var(--bb-blue); }
.bb-auth-submit.btn-outline-primary:hover { background: var(--bb-blue); color: #fff; }

.bb-auth-forgot { text-align: right; margin-top: 12px; }
.bb-auth-forgot a { font-size: 13px; color: var(--bb-blue); font-weight: 600; }
.bb-auth-forgot a:hover { color: var(--bb-blue-dark); text-decoration: underline; }

.bb-auth-mandatory { font-size: 11.5px; color: var(--bb-muted); margin: 10px 0 0; display: flex; align-items: center; gap: 5px; }
.bb-auth-mandatory i { color: var(--bb-blue); }

/* Divider */
.bb-auth-divider {
  position: relative; text-align: center; margin: 22px 0 16px;
  font-size: 12px; color: var(--bb-muted);
}
.bb-auth-divider::before {
  content: ""; position: absolute; top: 50%; left: 0; right: 0;
  height: 1px; background: var(--bb-line);
}
.bb-auth-divider span { position: relative; background: #fff; padding: 0 12px; }

.bb-auth-social { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.bb-auth-social:only-child,
.bb-auth-social:has(> .bb-auth-soc:only-child) { grid-template-columns: 1fr; }
.bb-auth-soc {
  height: 46px; border-radius: 10px;
  background: #fff; border: 1px solid var(--bb-line);
  font-size: 14px; font-weight: 600; color: var(--bb-ink);
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  cursor: pointer; transition: all .15s ease;
}
.bb-auth-soc i { font-size: 16px; }
.bb-auth-soc:hover { background: var(--bb-bg); border-color: #c4d6f2; }
.bb-auth-soc.google_login_btn:hover i { color: #ea4335; }
.bb-auth-soc.fb_login_btn:hover i { color: #1877f2; }

.bb-auth-foot {
  text-align: center; font-size: 13px; color: var(--bb-muted);
  margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--bb-line);
}
.bb-auth-foot a { color: var(--bb-blue); font-weight: 600; margin-left: 4px; }
.bb-auth-foot a:hover { color: var(--bb-blue-dark); }
.bb-auth-foot a i { font-size: 12px; }

/* OTP step */
.bb-auth-otp-head { text-align: center; padding: 4px 0 18px; }
.bb-auth-otp-ic {
  width: 60px; height: 60px; border-radius: 50%;
  background: linear-gradient(135deg, #eaf1fb, #d6e4fb);
  color: var(--bb-blue); font-size: 26px;
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 12px;
}
.bb-auth-otp-head h3 { font-size: 18px; font-weight: 700; margin: 0 0 4px; color: var(--bb-ink); }
.bb-auth-otp-head p { font-size: 13px; color: var(--bb-muted); margin: 0; }
.bb-auth-otp-head .bb-auth-otp-temp {
  display: inline-flex; align-items: center; gap: 6px;
  background: #fef9eb; color: #8a6d12; border: 1px dashed #f0c84a;
  padding: 4px 12px; border-radius: 8px; font-size: 12px; font-weight: 600;
  margin-top: 8px;
}
.bb-auth-otp-head .bb-auth-otp-temp #tempotp { font-weight: 700; letter-spacing: 1px; }
.bb-auth-otp-head .bb-auth-otp-temp:empty,
.bb-auth-otp-head .bb-auth-otp-temp span:empty + .bb-auth-otp-temp { display: none; }

.bb-auth-otp-input {
  height: 52px !important; text-align: center; font-size: 18px; font-weight: 700;
  letter-spacing: 6px;
}

/* Signup phone row */
.bb-auth-card .bb-auth-phone-row {
  display: flex; flex-wrap: wrap; gap: 10px;
}
.bb-auth-card .bb-auth-phone-row > .bb-gq-field { flex: 1 1 auto; min-width: 0; }
.bb-auth-card .bb-auth-phone-row > .bb-gq-col-5 { flex: 0 0 150px; }
.bb-auth-card .bb-auth-phone-row > .bb-gq-col-7 { flex: 1 1 160px; }

/* Selectpicker inside the auth card */
.bb-auth-card .bootstrap-select { width: 100% !important; border: 0 !important; background: transparent !important; padding: 0 !important; box-shadow: none !important; height: auto !important; }
.bb-auth-card .bootstrap-select.form-control { border: 0 !important; box-shadow: none !important; }
.bb-auth-card .bootstrap-select > .dropdown-toggle,
.bb-auth-card .bootstrap-select > button.btn {
  height: 46px !important; min-height: 46px !important; max-height: 46px !important;
  line-height: 44px !important;
  border: 1px solid var(--bb-line) !important; border-radius: 10px !important;
  background: #fff !important; color: var(--bb-ink) !important;
  padding: 0 36px 0 12px !important; font-size: 14px; font-weight: 400;
  text-align: left; box-shadow: none !important;
  white-space: nowrap; overflow: hidden; position: relative;
}
.bb-auth-card .bootstrap-select .filter-option {
  position: absolute; top: 0; left: 12px; right: 36px; bottom: 0;
  display: flex; align-items: center; padding: 0 !important;
}
.bb-auth-card .bootstrap-select > .dropdown-toggle::after {
  position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  border-top-color: var(--bb-muted); margin: 0;
}
.bb-auth-card .bootstrap-select .filter-option-inner-inner img { vertical-align: middle; }

/* error summary banner inherits .bb-gq-summary */
.bb-auth-card .bb-gq-summary { display: flex !important; align-items: flex-start; gap: 8px; }
.bb-auth-card .bb-gq-summary[style*="display:none"],
.bb-auth-card .bb-gq-summary[style*="display: none"] { display: none !important; }

/* Responsive */
@media (max-width: 991px) {
  .bb-auth { padding: 18px 12px; }
  .bb-auth-wrap { grid-template-columns: 1fr; gap: 18px; max-width: 520px; }
  .bb-auth-brand { order: 2; }
  .bb-auth-panel { order: 1; }
  .bb-auth-brand-inner { padding: 28px 26px; }
  .bb-auth-brand h2 { font-size: 22px; }
  .bb-auth-brand-trust { gap: 18px; }
}
@media (max-width: 575px) {
  .bb-auth-card { padding: 24px 20px; border-radius: 14px; }
  .bb-auth-head h1 { font-size: 22px; }
  .bb-auth-brand-inner { padding: 24px 20px; }
  .bb-auth-brand h2 { font-size: 20px; }
  .bb-auth-brand p { font-size: 13.5px; }
  .bb-auth-brand-trust { flex-wrap: wrap; gap: 14px; }
  .bb-auth-tstat strong { font-size: 18px; }
  .bb-auth-social { grid-template-columns: 1fr; }
}

/* ==========================================================================
   ADD / EDIT PRODUCT PAGES
   ========================================================================== */
.bb-ap-section { padding: 24px 0 60px; background: var(--bb-bg); min-height: calc(100vh - 70px); }
.bb-ap-pagehead {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 14px; flex-wrap: wrap; margin-bottom: 18px;
}
.bb-ap-pagehead h1 { font-size: 24px; font-weight: 700; color: var(--bb-ink); margin: 0 0 4px; }
.bb-ap-pagehead p { color: var(--bb-muted); font-size: 13.5px; margin: 0; }
.bb-ap-pagehead .bb-ap-cat {
  display: inline-block; margin-left: 8px;
  background: #eaf1fb; color: var(--bb-blue);
  padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 600;
}
.bb-ap-pagehead .btn { padding: 9px 16px; font-size: 13.5px; display: inline-flex; align-items: center; gap: 7px; border-radius: 8px; }
.bb-ap-head-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }

/* Progress bar */
.bb-ap-progress {
  min-width: 240px;
  background: #fff; border: 1px solid var(--bb-line); border-radius: 12px;
  padding: 10px 14px; box-shadow: var(--bb-shadow);
}
.bb-ap-progress-head {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 6px;
}
.bb-ap-progress-lbl { font-size: 11.5px; font-weight: 600; color: var(--bb-muted); text-transform: uppercase; letter-spacing: .4px; }
.bb-ap-progress-num { font-family: var(--bb-head); font-weight: 700; font-size: 18px; color: var(--bb-green); line-height: 1; }
.bb-ap-progress-track {
  height: 6px; background: #e6eaf0; border-radius: 999px; overflow: hidden;
}
.bb-ap-progress-fill {
  height: 100%; border-radius: 999px;
  background: linear-gradient(90deg, var(--bb-blue), var(--bb-green));
  transition: width .3s ease;
}
.bb-ap-progress-foot { font-size: 11px; color: var(--bb-muted); margin-top: 5px; }

.bb-ap-grid {
  display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 22px;
  align-items: start;
}
.bb-ap-grid.has-helper {
  grid-template-columns: 260px minmax(0, 1fr) 320px; gap: 18px;
}

/* ----- Step sidebar ----- */
.bb-ap-steps { position: sticky; top: 88px; display: flex; flex-direction: column; gap: 14px; }
.bb-ap-steplist {
  list-style: none; padding: 0; margin: 0;
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  box-shadow: var(--bb-shadow); overflow: hidden;
}
.bb-ap-steplist li { position: relative; }
.bb-ap-steplist li + li { border-top: 1px solid var(--bb-line); }
.bb-ap-steplist li a {
  display: flex; gap: 12px; padding: 14px 16px;
  color: var(--bb-body); text-decoration: none; align-items: flex-start;
  transition: background .15s ease;
}
.bb-ap-steplist li a:hover { background: var(--bb-bg); }
.bb-ap-steplist .num {
  flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%;
  background: var(--bb-bg); color: var(--bb-muted);
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--bb-head); font-weight: 700; font-size: 13px;
  border: 1px solid var(--bb-line); position: relative;
}
.bb-ap-steplist .num i { display: none; font-size: 14px; }
.bb-ap-steplist .num b { font-weight: 700; }
.bb-ap-steplist .body { flex: 1; min-width: 0; }
.bb-ap-steplist h5 { font-size: 13.5px; font-weight: 600; color: var(--bb-ink); margin: 4px 0 2px; line-height: 1.3; }
.bb-ap-steplist p { font-size: 12px; color: var(--bb-muted); margin: 0; line-height: 1.4; }

.bb-ap-steplist li.is-done .num { background: var(--bb-green); color: #fff; border-color: var(--bb-green); }
.bb-ap-steplist li.is-done .num b { display: none; }
.bb-ap-steplist li.is-done .num i { display: inline; }
.bb-ap-steplist li.is-active { background: linear-gradient(90deg, rgba(27,79,156,.04), transparent); }
.bb-ap-steplist li.is-active .num { background: var(--bb-blue); color: #fff; border-color: var(--bb-blue); box-shadow: 0 0 0 4px rgba(27,79,156,.12); }
.bb-ap-steplist li.is-active h5 { color: var(--bb-blue); }

/* Tips card */
.bb-ap-tips {
  background: #fff8eb; border: 1px solid #f8d77a; border-radius: 12px;
  padding: 14px 16px;
}
.bb-ap-tips h6 {
  font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px;
  color: #8a6d12; margin: 0 0 6px;
  display: inline-flex; align-items: center; gap: 5px;
}
.bb-ap-tips h6 i { color: var(--bb-orange); }
.bb-ap-tips p { font-size: 12.5px; color: #6b5510; margin: 0; line-height: 1.5; }

/* ----- Form card ----- */
.bb-ap-form-wrap { min-width: 0; }
.bb-ap-pane {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  box-shadow: var(--bb-shadow); padding: 24px; margin-bottom: 16px;
}
.bb-ap-pane.d-none { display: none !important; }
.bb-ap-pane.d-block { display: block !important; }

.bb-ap-pane-head {
  display: flex; gap: 14px; align-items: flex-start;
  margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--bb-line);
}
.bb-ap-pane-num {
  flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%;
  background: #eaf1fb; color: var(--bb-blue);
  font-family: var(--bb-head); font-weight: 700; font-size: 14px;
  display: inline-flex; align-items: center; justify-content: center;
}
.bb-ap-pane-head h3 { font-size: 17px; font-weight: 700; color: var(--bb-ink); margin: 4px 0 4px; }
.bb-ap-pane-head p { font-size: 13px; color: var(--bb-muted); margin: 0; }

/* Form fields inside add/edit product */
.bb-ap-form .form-control,
.bb-ap-form .form-select {
  height: 44px; border-radius: 9px; border: 1px solid var(--bb-line);
  font-size: 14px;
}
.bb-ap-form textarea.form-control { height: auto; }
.bb-ap-form .form-control:focus,
.bb-ap-form .form-select:focus { border-color: var(--bb-blue-light); box-shadow: 0 0 0 3px rgba(47,111,208,.12); outline: 0; }

.bb-ap-input-group { display: flex; gap: 8px; }
.bb-ap-input-group > .form-control { flex: 1 1 auto; min-width: 0; }
.bb-ap-input-group > .bb-ap-unit { flex: 0 0 130px; }

.bb-ap-charcount {
  text-align: right; font-size: 11.5px; color: var(--bb-muted);
  margin-top: 4px;
}

/* Inline validation errors for add/edit product form */
.bb-ap-form .bb-gq-err-msg,
.bb-ap-form .invalid-feedback,
.bb-ap-form .rerror {
  display: block !important; width: 100%;
  color: #d23a3a; font-size: 12px; font-weight: 500;
  margin-top: 6px; line-height: 1.35;
}
.bb-ap-form .bb-gq-err-msg:empty,
.bb-ap-form .invalid-feedback:empty,
.bb-ap-form .rerror:empty { display: none !important; margin: 0; }
.bb-ap-form .bb-gq-err-msg .icon-line-awesome-exclamation-circle,
.bb-ap-form .invalid-feedback .icon-line-awesome-exclamation-circle { margin-right: 4px; }
.bb-ap-form .form-control.is-invalid,
.bb-ap-form .form-select.is-invalid {
  border-color: #d23a3a !important;
  box-shadow: 0 0 0 3px rgba(210,58,58,.10) !important;
}
.bb-ap-form .bootstrap-select.is-invalid > .dropdown-toggle,
.bb-ap-form select.is-invalid + .bootstrap-select > .dropdown-toggle {
  border-color: #d23a3a !important;
  box-shadow: 0 0 0 3px rgba(210,58,58,.10) !important;
}

.bb-ap-divider {
  position: relative; text-align: center; margin: 18px 0 16px;
  font-size: 12.5px; font-weight: 700; color: var(--bb-muted);
  text-transform: uppercase; letter-spacing: .4px;
}
.bb-ap-divider::before {
  content: ""; position: absolute; top: 50%; left: 0; right: 0;
  height: 1px; background: var(--bb-line);
}
.bb-ap-divider span { position: relative; background: #fff; padding: 0 14px; }

/* Compact CHECKBOX components inside the post-project specifications grid.
   Default Bootstrap form-check stacks each option on its own 36-40px row,
   so 12 amenities eat ~480px of vertical space. Solve it with CSS columns:
   options flow into a tight 2-column list (auto-balanced), each option is
   just a 16px box + label — no chip border, no pill background, no awkward
   wraps. Long labels still get one full column-row to themselves. */
.bb-ap-form .component_rows .form-check-100 {
  display: block !important;             /* override Bootstrap .d-flex */
  flex-wrap: nowrap !important;
  gap: 0 !important;                     /* override .gap-3 */
  column-count: 2; column-gap: 18px;
  padding: 2px 0; margin: 0;
}
.bb-ap-form .component_rows .form-check-100 .form-check {
  display: flex; align-items: center; gap: 8px;
  break-inside: avoid;
  min-height: 0; margin: 0 0 2px 0; padding: 0;
  background: transparent; border: 0; line-height: 1.2;
}
.bb-ap-form .component_rows .form-check-100 .form-check-input {
  width: 16px; height: 16px; margin: 0; flex-shrink: 0;
  border: 1.5px solid var(--bb-line); border-radius: 4px;
  cursor: pointer;
}
.bb-ap-form .component_rows .form-check-100 .form-check-input:checked {
  background-color: var(--bb-blue); border-color: var(--bb-blue);
}
.bb-ap-form .component_rows .form-check-100 .form-check-label {
  font-size: 13px; line-height: 1.35; color: var(--bb-ink);
  margin: 0; padding: 0; cursor: pointer;
}

/* On wider columns (col-md-12 single-column field) allow 3 columns */
.bb-ap-form .component_rows .col-md-12 .form-check-100,
.bb-ap-form .component_rows > .col-12 .form-check-100 { column-count: 3 !important; }
@media (max-width: 991px) {
  .bb-ap-form .component_rows .col-md-12 .form-check-100 { column-count: 2 !important; }
}

/* On very narrow widths fall back to a single column */
@media (max-width: 575px) {
  .bb-ap-form .component_rows .form-check-100 { column-count: 1; }
}

/* RADIO group — same minimal look: 16px circle + label inline, no chip */
.bb-ap-form .component_rows .bb-gq-field > .d-flex {
  flex-wrap: wrap; gap: 6px 18px; padding: 2px 0;
}
.bb-ap-form .component_rows .bb-gq-field > .d-flex > .form-check.form-check-inline {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 0; margin: 0; padding: 2px 0;
  background: transparent; border: 0;
}
.bb-ap-form .component_rows .bb-gq-field > .d-flex > .form-check.form-check-inline .form-check-input {
  width: 16px; height: 16px; margin: 0; flex-shrink: 0;
}
.bb-ap-form .component_rows .bb-gq-field > .d-flex > .form-check.form-check-inline .form-check-label {
  font-size: 13px; line-height: 1.35; margin: 0; padding: 0;
}

/* Selectpicker scoped */
.bb-ap-form .bootstrap-select { width: 100% !important; border: 0 !important; background: transparent !important; padding: 0 !important; box-shadow: none !important; height: auto !important; }
.bb-ap-form .bootstrap-select.form-control { border: 0 !important; box-shadow: none !important; }
.bb-ap-form .bootstrap-select > .dropdown-toggle,
.bb-ap-form .bootstrap-select > button.btn {
  height: 44px !important; min-height: 44px !important; max-height: 44px !important;
  line-height: 42px !important;
  border: 1px solid var(--bb-line) !important; border-radius: 9px !important;
  background: #fff !important; color: var(--bb-ink) !important;
  padding: 0 36px 0 12px !important; font-size: 14px; font-weight: 400;
  text-align: left; box-shadow: none !important;
  white-space: nowrap; overflow: hidden; position: relative;
}
.bb-ap-form .bootstrap-select .filter-option {
  position: absolute; top: 0; left: 12px; right: 36px; bottom: 0;
  display: flex; align-items: center; padding: 0 !important;
}
.bb-ap-form .bootstrap-select > .dropdown-toggle::after {
  position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  border-top-color: var(--bb-muted); margin: 0;
}

/* Pill radio group (price type / yes-no) */
.bb-ap-pill-group {
  display: inline-flex; gap: 4px; padding: 4px;
  background: var(--bb-bg); border-radius: 10px; border: 1px solid var(--bb-line);
}
.bb-ap-pill-group .btn-check { position: absolute; clip: rect(0,0,0,0); pointer-events: none; }
.bb-ap-pill {
  padding: 7px 14px; border-radius: 7px;
  font-size: 13px; font-weight: 600; color: var(--bb-body);
  cursor: pointer; transition: all .12s ease;
  display: inline-flex; align-items: center; gap: 5px; margin: 0;
  background: transparent; border: 0;
}
.bb-ap-pill:hover { color: var(--bb-blue); }
.bb-ap-pill i { font-size: 13px; }
.bb-ap-pill-group .btn-check:checked + .bb-ap-pill {
  background: #fff; color: var(--bb-blue); box-shadow: 0 1px 2px rgba(20,40,80,.08);
}

/* Photo thumbnails */
.bb-ap-thumb-grid {
  display: grid; gap: 12px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.bb-ap-thumb {
  position: relative; aspect-ratio: 1/1; border-radius: 10px;
  background: var(--bb-bg) center/cover no-repeat;
  border: 1px solid var(--bb-line); overflow: hidden;
}
.bb-ap-thumb-empty {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 4px; border: 2px dashed var(--bb-line); background: var(--bb-bg);
  color: var(--bb-muted); cursor: pointer; transition: all .15s ease;
}
.bb-ap-thumb-empty:hover { border-color: var(--bb-blue-light); background: #eef4fd; color: var(--bb-blue); }
.bb-ap-thumb-empty i { font-size: 22px; }
.bb-ap-thumb-empty span { font-size: 11.5px; font-weight: 600; }
.bb-ap-thumb-del {
  position: absolute; top: 6px; right: 6px;
  width: 28px; height: 28px; border-radius: 50%;
  background: rgba(210,58,58,.92); color: #fff; border: 0;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 13px; cursor: pointer; transition: all .15s ease;
}
.bb-ap-thumb-del:hover { background: #b22d2d; color: #fff; }

/* Video preview */
.bb-ap-video {
  position: relative; aspect-ratio: 16/9; max-width: 480px;
  border-radius: 10px; overflow: hidden; background: #000;
}
.bb-ap-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Bottom actions row */
.bb-ap-actions {
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; padding-top: 18px; margin-top: 18px; border-top: 1px solid var(--bb-line);
  flex-wrap: wrap;
}
.bb-ap-actions .btn { padding: 10px 18px; font-size: 13.5px; border-radius: 9px; display: inline-flex; align-items: center; gap: 6px; }
.bb-ap-next, .bb-ap-save {
  background: var(--bb-orange); border-color: var(--bb-orange); color: #fff;
  min-width: 180px; justify-content: center; font-weight: 700;
}
.bb-ap-next:hover, .bb-ap-save:hover { background: var(--bb-orange-dark); border-color: var(--bb-orange-dark); color: #fff; }

/* ----- Responsive ----- */
/* Inline SEO gauge in the Step 3 pane head */
.bb-ap-seo-gauge {
  margin-left: auto; display: flex; align-items: center; gap: 12px;
  background: var(--bb-bg); border: 1px solid var(--bb-line); border-radius: 12px;
  padding: 8px 14px 8px 8px;
}
.bb-ap-seo-gauge .bb-ap-gauge-wrap { width: 72px; height: 72px; margin: 0; }
.bb-ap-seo-gauge .bb-ap-gauge-num { font-size: 16px; }
.bb-ap-seo-gauge .bb-ap-gauge-num span { font-size: 16px; }
.bb-ap-seo-gauge-text { min-width: 0; max-width: 180px; }
.bb-ap-seo-gauge-text strong {
  display: block; font-size: 12px; font-weight: 700; color: var(--bb-ink);
  text-transform: uppercase; letter-spacing: .4px; margin-bottom: 2px;
}
.bb-ap-seo-gauge-text p { font-size: 11.5px; color: var(--bb-muted); margin: 0; line-height: 1.35; }

@media (max-width: 575px) {
  .bb-ap-seo-gauge { margin-left: 0; width: 100%; padding: 8px; }
  .bb-ap-seo-gauge .bb-ap-gauge-wrap { width: 60px; height: 60px; }
  .bb-ap-seo-gauge-text strong { font-size: 11px; }
}

/* ===== Right helper panel (step-aware) ===== */
.bb-ap-helper { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 88px; }
.bb-ap-help-pane { display: flex; flex-direction: column; gap: 14px; }
.bb-ap-help-pane.d-none { display: none !important; }
.bb-ap-help-pane.d-block { display: flex !important; }
.bb-ap-help-card {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 12px;
  padding: 16px 16px 14px; box-shadow: var(--bb-shadow);
}
.bb-ap-help-title {
  font-size: 14px; font-weight: 700; color: var(--bb-ink); margin: 0 0 12px;
  display: inline-flex; align-items: center; gap: 7px;
}
.bb-ap-help-title i { color: var(--bb-blue); font-size: 16px; }

/* Score gauge */
.bb-ap-gauge-wrap {
  position: relative; width: 130px; height: 130px;
  margin: 4px auto 6px;
}
.bb-ap-gauge { width: 100%; height: 100%; transform: rotate(-90deg); }
.bb-ap-gauge-bg {
  fill: none; stroke: #eef2f7; stroke-width: 8;
}
.bb-ap-gauge-fill {
  fill: none; stroke: var(--bb-green); stroke-width: 8; stroke-linecap: round;
  transition: stroke-dashoffset .4s ease, stroke .2s ease;
}
.bb-ap-gauge-fill.is-low  { stroke: #d23a3a; }
.bb-ap-gauge-fill.is-mid  { stroke: var(--bb-orange); }
.bb-ap-gauge-fill.is-high { stroke: var(--bb-green); }
.bb-ap-gauge-num {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-family: var(--bb-head); font-size: 26px; font-weight: 700; color: var(--bb-ink); line-height: 1;
}
.bb-ap-gauge-num span { font-size: 26px; }
.bb-ap-gauge-msg {
  text-align: center; font-size: 12.5px; color: var(--bb-muted);
  margin: 0 0 12px; line-height: 1.4;
}

/* Checklist */
.bb-ap-help-list { list-style: none; padding: 0; margin: 0; }
.bb-ap-help-list li {
  display: flex; align-items: flex-start; gap: 8px;
  padding: 7px 0; font-size: 12.5px; color: var(--bb-body); line-height: 1.4;
  border-top: 1px dashed var(--bb-line);
}
.bb-ap-help-list li:first-child { border-top: 0; }
.bb-ap-help-list li i { font-size: 14px; flex-shrink: 0; margin-top: 1px; color: var(--bb-muted); }
.bb-ap-help-list li.is-ok   i { color: var(--bb-green); }
.bb-ap-help-list li.is-ok   { color: var(--bb-ink); }
.bb-ap-help-list li.is-warn i { color: var(--bb-orange); }

/* Tips */
.bb-ap-help-tips { list-style: none; padding: 0; margin: 0; }
.bb-ap-help-tips li {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 8px 0; font-size: 12.5px; color: var(--bb-body); line-height: 1.45;
}
.bb-ap-help-tips li + li { border-top: 1px solid var(--bb-line); padding-top: 10px; margin-top: 2px; }
.bb-ap-help-tips .ic {
  flex-shrink: 0; width: 32px; height: 32px; border-radius: 8px;
  background: #eaf1fb; color: var(--bb-blue);
  display: inline-flex; align-items: center; justify-content: center; font-size: 15px;
}

/* Product-card live preview (Step 1 / Step 2) */
.bb-ap-card-preview {
  border: 1px solid var(--bb-line); border-radius: 10px;
  overflow: hidden; background: #fff;
}
.bb-ap-cp-media {
  width: 100%; aspect-ratio: 4/3; background: var(--bb-bg) center/cover no-repeat;
  display: flex; align-items: center; justify-content: center;
  color: var(--bb-line); font-size: 38px;
  border-bottom: 1px solid var(--bb-line);
}
.bb-ap-cp-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bb-ap-cp-body { padding: 10px 12px 12px; }
.bb-ap-cp-title {
  font-size: 13.5px; font-weight: 600; color: var(--bb-ink);
  line-height: 1.35; margin-bottom: 4px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.bb-ap-cp-price {
  font-family: var(--bb-head); font-weight: 700; font-size: 14px;
  color: var(--bb-orange-dark); margin-bottom: 6px;
}
.bb-ap-cp-price.is-quote { color: var(--bb-blue); font-weight: 600; font-size: 12.5px; font-family: var(--bb-font); }
.bb-ap-cp-desc {
  font-size: 12px; color: var(--bb-muted); line-height: 1.45;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.bb-ap-cp-thumbs { display: flex; gap: 5px; margin-top: 8px; }
.bb-ap-cp-thumb {
  flex: 1; aspect-ratio: 1/1; max-width: 36px;
  background: var(--bb-bg) center/cover no-repeat;
  border: 1px solid var(--bb-line); border-radius: 5px;
}
.bb-ap-cp-thumb.is-filled { border-color: var(--bb-blue-light); }

/* Live Preview (Google-style) */
.bb-ap-preview {
  background: #fff; padding: 4px 2px;
}
.bb-ap-preview-title {
  color: #1a0dab; font-size: 15px; font-weight: 500; line-height: 1.35;
  margin-bottom: 3px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; word-break: break-word;
}
.bb-ap-preview-url {
  color: #006621; font-size: 12px; margin-bottom: 4px; line-height: 1.3;
  word-break: break-all;
}
.bb-ap-preview-desc {
  color: var(--bb-body); font-size: 12.5px; line-height: 1.5;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (max-width: 1199px) {
  .bb-ap-grid.has-helper { grid-template-columns: 240px minmax(0, 1fr) 300px; gap: 14px; }
}
@media (max-width: 991px) {
  .bb-ap-grid { grid-template-columns: 1fr; gap: 14px; }
  .bb-ap-steps, .bb-ap-helper { position: static; }
  .bb-ap-thumb-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 575px) {
  .bb-ap-pane { padding: 18px; }
  .bb-ap-pagehead h1 { font-size: 20px; }
  .bb-ap-pane-head h3 { font-size: 15px; }
  .bb-ap-thumb-grid { grid-template-columns: repeat(3, 1fr); gap: 10px; }
  .bb-ap-input-group { flex-direction: column; }
  .bb-ap-input-group > .bb-ap-unit { flex: 1 1 auto; }
  .bb-ap-pill-group { display: flex; width: 100%; }
  .bb-ap-pill { flex: 1; justify-content: center; }
  .bb-ap-actions { flex-direction: column-reverse; align-items: stretch; }
  .bb-ap-actions .btn { width: 100%; justify-content: center; }
}

/* ==========================================================================
   SELECT CATEGORY (Add Product step 1) — /post-products-select-category
   ========================================================================== */
.bb-sc-section { padding: 24px 0 60px; }

/* Breadcrumb chips of selected categories */
.bb-sc-crumbs {
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
  margin-bottom: 16px; padding: 12px 14px;
  background: var(--bb-bg); border-radius: 10px;
}
.bb-sc-crumb-lbl { font-size: 12px; font-weight: 600; color: var(--bb-muted); text-transform: uppercase; letter-spacing: .4px; margin-right: 2px; }
.bb-sc-crumb {
  display: inline-flex; align-items: center; gap: 6px;
  background: #eaf1fb; color: var(--bb-blue);
  padding: 5px 10px; border-radius: 999px;
  font-size: 13px; font-weight: 600;
}
.bb-sc-crumb a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 18px; height: 18px; border-radius: 50%;
  background: rgba(27,79,156,.12); color: var(--bb-blue);
  font-size: 10px;
}
.bb-sc-crumb a:hover { background: var(--bb-blue); color: #fff; }
.bb-sc-crumb-sep { color: var(--bb-muted); font-size: 12px; opacity: .6; }

/* Search bar */
.bb-sc-search { position: relative; margin-bottom: 16px; }
.bb-sc-search > i {
  position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  color: var(--bb-muted); font-size: 16px;
}
.bb-sc-search input {
  width: 100%; height: 46px; padding: 0 14px 0 42px;
  border: 1px solid var(--bb-line); border-radius: 10px;
  font-size: 14px; background: #fff; color: var(--bb-ink);
}
.bb-sc-search input:focus { outline: 0; border-color: var(--bb-blue-light); box-shadow: 0 0 0 3px rgba(47,111,208,.12); }

/* Grids */
.bb-sc-grid { list-style: none; padding: 0; margin: 0; }
.bb-sc-grid-top {
  display: grid; gap: 12px;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}
.bb-sc-grid-sub {
  display: grid; gap: 10px;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

/* Top-level category card */
.bb-sc-card {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 10px; padding: 22px 14px;
  background: #fff; border: 1px solid var(--bb-line); border-radius: 12px;
  text-align: center; transition: all .18s ease; height: 100%;
  text-decoration: none; color: var(--bb-ink); position: relative;
}
.bb-sc-card:hover {
  border-color: #c4d6f2; transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(20,40,80,.10); color: var(--bb-blue);
}
.bb-sc-card-ic {
  width: 56px; height: 56px; display: inline-flex; align-items: center; justify-content: center;
  background: var(--bb-bg); border-radius: 12px;
}
.bb-sc-card-ic img {
  width: 36px; height: 36px; object-fit: contain;
  filter: invert(28%) sepia(64%) saturate(1486%) hue-rotate(196deg) brightness(91%) contrast(92%);
  transition: filter .15s ease;
}
.bb-sc-card h5 {
  font-size: 13.5px; font-weight: 600; margin: 0; color: var(--bb-ink); line-height: 1.3;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.bb-sc-card:hover h5 { color: var(--bb-blue); }
.bb-sc-card-arr {
  position: absolute; top: 12px; right: 12px;
  color: var(--bb-muted); font-size: 13px; opacity: 0; transition: opacity .15s ease;
}
.bb-sc-card:hover .bb-sc-card-arr { opacity: 1; color: var(--bb-blue); }

/* Split tile for merged categories */
.bb-sc-card-split {
  display: flex; flex-direction: column;
  background: #fff; border: 1px solid var(--bb-line); border-radius: 12px;
  overflow: hidden;
}
.bb-sc-card-split .bb-sc-card-head {
  display: flex; flex-direction: column; align-items: center;
  gap: 8px; padding: 18px 14px 10px;
  background: linear-gradient(180deg, #fff, var(--bb-bg));
}
.bb-sc-card-split .bb-sc-card-head h5 {
  font-size: 13px; font-weight: 700; color: var(--bb-ink); margin: 0; text-align: center;
}
.bb-sc-card-split-actions { display: flex; flex-direction: column; padding: 4px 0; }
.bb-sc-card-split-actions a {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px; font-size: 12.5px; font-weight: 600;
  color: var(--bb-body); border-top: 1px solid var(--bb-line);
  text-decoration: none; transition: all .12s ease;
}
.bb-sc-card-split-actions a:first-child { border-top: 0; }
.bb-sc-card-split-actions a:hover { background: var(--bb-bg); color: var(--bb-blue); }
.bb-sc-card-split-actions a i { color: var(--bb-blue); font-size: 14px; flex-shrink: 0; }

/* Row layout for sub-categories */
.bb-sc-row {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px; background: #fff; border: 1px solid var(--bb-line);
  border-radius: 10px; text-decoration: none; color: var(--bb-ink);
  transition: all .15s ease;
}
.bb-sc-row:hover {
  border-color: #c4d6f2; background: #f8fbff; color: var(--bb-blue);
  transform: translateX(2px); box-shadow: 0 4px 12px rgba(20,40,80,.06);
}
.bb-sc-row-ic {
  width: 36px; height: 36px; border-radius: 8px; flex-shrink: 0;
  background: var(--bb-bg);
  display: inline-flex; align-items: center; justify-content: center;
}
.bb-sc-row-ic img {
  width: 22px; height: 22px; object-fit: contain;
  filter: invert(28%) sepia(64%) saturate(1486%) hue-rotate(196deg) brightness(91%) contrast(92%);
}
.bb-sc-row-ic-text i { color: var(--bb-blue); font-size: 16px; }
.bb-sc-row-name { flex: 1; min-width: 0; font-size: 13.5px; font-weight: 600; color: var(--bb-ink); }
.bb-sc-row:hover .bb-sc-row-name { color: var(--bb-blue); }
.bb-sc-row-arr { color: var(--bb-muted); font-size: 13px; flex-shrink: 0; }
.bb-sc-row:hover .bb-sc-row-arr { color: var(--bb-blue); }

/* Empty state */
.bb-sc-empty {
  text-align: center; padding: 50px 20px;
  color: var(--bb-muted);
}
.bb-sc-empty i { font-size: 44px; color: var(--bb-blue); opacity: .55; display: block; margin-bottom: 12px; }
.bb-sc-empty h4 { font-size: 15px; font-weight: 600; color: var(--bb-ink); margin: 0 0 4px; }
.bb-sc-empty p { font-size: 13px; margin: 0; }

@media (max-width: 575px) {
  .bb-sc-grid-top { grid-template-columns: repeat(2, 1fr); }
  .bb-sc-grid-sub { grid-template-columns: 1fr; }
  .bb-sc-card { padding: 18px 10px; }
  .bb-sc-card-ic { width: 48px; height: 48px; }
  .bb-sc-card-ic img { width: 30px; height: 30px; }
}

/* ==========================================================================
   UPGRADE MEMBERSHIP GATE (shown when post limit reached)
   ========================================================================== */
.bb-um-section {
  display: flex; align-items: center; justify-content: center;
  min-height: 70vh; padding: 24px 16px;
}
.bb-um-card {
  width: 100%; max-width: 520px;
  background: #fff; border: 1px solid var(--bb-line);
  border-radius: 18px; box-shadow: var(--bb-shadow);
  padding: 40px 32px; text-align: center;
}
.bb-um-ic {
  width: 72px; height: 72px; border-radius: 50%;
  background: linear-gradient(135deg, #fff4e6, #ffe1c4);
  color: var(--bb-orange);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 32px; margin-bottom: 16px;
}
.bb-um-eyebrow {
  display: inline-block; font-size: 11px; font-weight: 700;
  background: #fff4e6; color: #b8650e;
  padding: 4px 12px; border-radius: 999px;
  text-transform: uppercase; letter-spacing: .5px; margin-bottom: 12px;
}
.bb-um-card h2 {
  font-size: 24px; font-weight: 700; color: var(--bb-ink);
  margin: 0 0 8px; line-height: 1.25;
}
.bb-um-card > p {
  font-size: 14px; color: var(--bb-muted); margin: 0 auto 22px; max-width: 400px; line-height: 1.55;
}
.bb-um-feats {
  list-style: none; padding: 0; margin: 0 0 26px;
  display: flex; flex-direction: column; gap: 8px; text-align: left;
  background: var(--bb-bg); border-radius: 12px; padding: 16px 18px;
}
.bb-um-feats li {
  display: flex; align-items: center; gap: 9px;
  font-size: 13.5px; color: var(--bb-body); font-weight: 500;
}
.bb-um-feats li i { color: var(--bb-green); font-size: 16px; flex-shrink: 0; }

.bb-um-actions {
  display: flex; gap: 10px; justify-content: center; flex-wrap: wrap;
  margin-bottom: 18px;
}
.bb-um-actions .btn {
  padding: 11px 22px; font-size: 14px; font-weight: 600; border-radius: 10px;
  display: inline-flex; align-items: center; gap: 7px;
}
.bb-um-cta {
  background: var(--bb-orange); border-color: var(--bb-orange); color: #fff;
}
.bb-um-cta:hover { background: var(--bb-orange-dark); border-color: var(--bb-orange-dark); color: #fff; }

.bb-um-foot {
  font-size: 12px; color: var(--bb-muted); margin: 0;
  display: inline-flex; align-items: center; gap: 5px; justify-content: center;
}
.bb-um-foot i { color: var(--bb-green); font-size: 13px; }

@media (max-width: 575px) {
  .bb-um-card { padding: 28px 22px; }
  .bb-um-card h2 { font-size: 20px; }
  .bb-um-actions .btn { width: 100%; justify-content: center; }
}

/* ==========================================================================
   FOOTER / CMS PAGES — About, Terms, Privacy, Refund, Help-details, etc.
   ========================================================================== */
.bb-cms-hero {
  background:
    radial-gradient(700px 260px at 100% 0%, rgba(245,121,32,.15), transparent 60%),
    linear-gradient(120deg, var(--bb-blue-darker), var(--bb-blue));
  color: #fff; padding: 36px 0 40px;
}
.bb-cms-hero h1 {
  color: #fff; font-family: var(--bb-head);
  font-size: 32px; line-height: 1.2; font-weight: 700; margin: 6px 0 8px;
}
.bb-cms-hero p { color: rgba(255,255,255,.85); font-size: 14.5px; margin: 0; max-width: 720px; }
.bb-cms-crumbs {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  font-size: 12.5px; color: rgba(255,255,255,.75); margin-bottom: 4px;
}
.bb-cms-crumbs a { color: rgba(255,255,255,.85); display: inline-flex; align-items: center; gap: 4px; }
.bb-cms-crumbs a:hover { color: #fff; }
.bb-cms-crumbs .sep { color: rgba(255,255,255,.5); font-size: 11px; }
.bb-cms-crumbs .is-current { color: #fff; font-weight: 600; }

.bb-cms-section { padding: 30px 0 60px; }
.bb-cms-grid { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 22px; align-items: start; }

.bb-cms-article {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  box-shadow: var(--bb-shadow); padding: 32px;
  color: var(--bb-body); font-size: 15px; line-height: 1.7;
}
.bb-cms-article h2,
.bb-cms-article h3,
.bb-cms-article h4 { color: var(--bb-ink); font-family: var(--bb-head); margin: 24px 0 10px; }
.bb-cms-article h2 { font-size: 22px; }
.bb-cms-article h3 { font-size: 18px; }
.bb-cms-article h4 { font-size: 16px; }
.bb-cms-article h2:first-child,
.bb-cms-article h3:first-child,
.bb-cms-article p:first-child { margin-top: 0; }
.bb-cms-article p { margin: 0 0 14px; }
.bb-cms-article a { color: var(--bb-blue); }
.bb-cms-article a:hover { text-decoration: underline; }
.bb-cms-article ul, .bb-cms-article ol { padding-left: 22px; margin: 0 0 16px; }
.bb-cms-article ul li, .bb-cms-article ol li { margin: 4px 0; }
.bb-cms-article hr { border: 0; border-top: 1px solid var(--bb-line); margin: 22px 0; }
.bb-cms-article blockquote {
  border-left: 3px solid var(--bb-blue); background: var(--bb-bg);
  padding: 12px 16px; border-radius: 0 8px 8px 0; margin: 14px 0;
  color: var(--bb-body); font-style: italic;
}
.bb-cms-article img { max-width: 100%; height: auto; border-radius: 8px; }
.bb-cms-article table {
  width: 100%; border-collapse: collapse; margin: 14px 0;
  font-size: 14px;
}
.bb-cms-article th, .bb-cms-article td {
  border: 1px solid var(--bb-line); padding: 10px 12px; text-align: left;
}
.bb-cms-article th { background: var(--bb-bg); font-weight: 600; color: var(--bb-ink); }

.bb-cms-aside { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 88px; }
.bb-cms-aside-card {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 12px;
  padding: 18px; box-shadow: var(--bb-shadow);
}
.bb-cms-aside-card h4 {
  font-size: 14px; font-weight: 700; color: var(--bb-ink); margin: 0 0 10px;
  display: inline-flex; align-items: center; gap: 7px;
}
.bb-cms-aside-card h4 i { color: var(--bb-blue); }
.bb-cms-aside-card p { font-size: 13px; color: var(--bb-muted); margin: 0 0 12px; line-height: 1.5; }
.bb-cms-aside-card .btn { padding: 10px 14px; font-size: 13.5px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; border-radius: 8px; }

/* ==========================================================================
   CONTACT US PAGE
   ========================================================================== */
.bb-contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 22px; align-items: start; }

.bb-contact-card {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  box-shadow: var(--bb-shadow); padding: 28px;
}
.bb-contact-card-title {
  font-size: 18px; font-weight: 700; color: var(--bb-ink); margin: 0 0 20px;
  display: inline-flex; align-items: center; gap: 8px;
  padding-bottom: 14px; border-bottom: 1px solid var(--bb-line); width: 100%;
}
.bb-contact-card-title i { color: var(--bb-blue); }

.bb-contact-dropzone {
  display: flex; align-items: center; gap: 14px;
  border: 1.5px dashed var(--bb-line); border-radius: 10px;
  background: var(--bb-bg); padding: 16px 18px; cursor: pointer;
  transition: all .15s ease; margin: 0;
}
.bb-contact-dropzone:hover { border-color: var(--bb-blue-light); background: #f0f6ff; }
.bb-contact-drop-ic {
  width: 44px; height: 44px; border-radius: 10px;
  background: #fff; border: 1px solid var(--bb-line);
  color: var(--bb-blue); font-size: 22px;
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.bb-contact-dropzone strong { color: var(--bb-blue); font-size: 13.5px; font-weight: 600; }
.bb-contact-dropzone .uploadButton-file-name { color: var(--bb-muted); font-size: 12px; margin-top: 2px; }

.bb-contact-submit {
  width: 100%; height: 48px; font-size: 15px; font-weight: 700; border-radius: 10px;
  background: var(--bb-orange); border-color: var(--bb-orange); color: #fff;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
}
.bb-contact-submit:hover { background: var(--bb-orange-dark); border-color: var(--bb-orange-dark); color: #fff; }

.bb-contact-aside { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 88px; }
.bb-contact-info-card {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 12px;
  padding: 18px; box-shadow: var(--bb-shadow);
  display: flex; gap: 14px; align-items: flex-start;
}
.bb-contact-info-ic {
  flex-shrink: 0; width: 44px; height: 44px; border-radius: 10px;
  background: #eaf1fb; color: var(--bb-blue);
  display: inline-flex; align-items: center; justify-content: center; font-size: 20px;
}
.bb-contact-info-card h4 { font-size: 14px; font-weight: 700; color: var(--bb-ink); margin: 4px 0 4px; }
.bb-contact-info-card address,
.bb-contact-info-card p { font-size: 13px; color: var(--bb-body); margin: 0; font-style: normal; line-height: 1.55; }
.bb-contact-info-card a { color: var(--bb-blue); font-weight: 500; }
.bb-contact-info-card a:hover { color: var(--bb-blue-dark); }

.bb-contact-success {
  display: flex; align-items: center; gap: 8px;
  background: #f4fbf7; border: 1px solid #b9e4cd; color: #1a6b3c;
  padding: 12px 14px; border-radius: 10px; margin-bottom: 16px;
  font-size: 13.5px; font-weight: 600;
}
.bb-contact-success i { color: var(--bb-green); font-size: 18px; }
.bb-contact-error {
  display: flex; align-items: center; gap: 8px;
  background: #fdecec; border: 1px solid #f5c0c0; color: #a02020;
  padding: 12px 14px; border-radius: 10px; margin-bottom: 16px;
  font-size: 13.5px; font-weight: 600;
}
.bb-contact-error i { color: #d23a3a; font-size: 17px; }

.bb-contact-card .bb-gq-form .form-control,
.bb-contact-card .bb-gq-form textarea.form-control { border-radius: 9px; }
.bb-contact-card .invalid-feedback { color: #d23a3a; font-size: 12px; font-weight: 500; margin-top: 5px; display: none; }
.bb-contact-card .form-control.is-invalid { border-color: #d23a3a !important; box-shadow: 0 0 0 3px rgba(210,58,58,.10) !important; }
.bb-contact-card .form-control.is-invalid + .invalid-feedback { display: block; }

/* ==========================================================================
   SUPPLIER LANDING (CMS) — Sell on the platform
   ========================================================================== */
.bb-sell-hero {
  background:
    radial-gradient(900px 320px at 100% 0%, rgba(245,121,32,.20), transparent 60%),
    linear-gradient(135deg, var(--bb-blue-darker) 0%, var(--bb-blue-dark) 60%, var(--bb-blue) 100%);
  color: #fff; padding: 56px 0; position: relative; overflow: hidden;
}
.bb-sell-hero::before {
  content: ""; position: absolute; inset: 0;
  background-image: radial-gradient(circle at 14% 78%, rgba(255,255,255,.06) 0 1.5px, transparent 2px);
  background-size: 38px 38px; pointer-events: none;
}
.bb-sell-hero-inner {
  position: relative;
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 36px; align-items: center;
}
.bb-sell-hero-text h1 {
  color: #fff; font-family: var(--bb-head);
  font-size: 36px; line-height: 1.2; font-weight: 700; margin: 0 0 14px;
}
.bb-sell-hero-text p { color: rgba(255,255,255,.85); font-size: 15.5px; line-height: 1.6; margin: 0 0 22px; }
.bb-sell-eyebrow {
  display: inline-flex; align-items: center; gap: 7px;
  background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.18);
  color: #fff; font-size: 12.5px; font-weight: 600;
  padding: 6px 14px; border-radius: 999px; margin-bottom: 14px;
}
.bb-sell-eyebrow i { color: var(--bb-orange); }
.bb-sell-hero-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 28px; }
.bb-sell-hero-cta .btn { padding: 12px 22px; border-radius: 10px; font-weight: 700; display: inline-flex; align-items: center; gap: 8px; }
.bb-sell-cta-orange { background: var(--bb-orange); border-color: var(--bb-orange); color: #fff; }
.bb-sell-cta-orange:hover { background: var(--bb-orange-dark); border-color: var(--bb-orange-dark); color: #fff; }
.bb-sell-hero-cta .btn-outline-primary { background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.3); }
.bb-sell-hero-cta .btn-outline-primary:hover { background: #fff; color: var(--bb-blue); border-color: #fff; }

.bb-sell-hero-stats {
  list-style: none; padding: 20px 0 0; margin: 0;
  display: flex; flex-wrap: wrap; gap: 26px;
  border-top: 1px solid rgba(255,255,255,.18);
}
.bb-sell-hero-stats li { display: flex; flex-direction: column; }
.bb-sell-hero-stats strong { font-family: var(--bb-head); font-size: 22px; font-weight: 700; color: #fff; line-height: 1; }
.bb-sell-hero-stats span { font-size: 12px; color: rgba(255,255,255,.75); margin-top: 4px; }

.bb-sell-hero-art {
  border-radius: 14px; overflow: hidden;
  box-shadow: 0 20px 50px rgba(8, 22, 50, .35);
  background: rgba(255,255,255,.06);
}
.bb-sell-hero-art img { width: 100%; display: block; }

.bb-sell-section { padding: 60px 0; }
.bb-sell-section-alt { background: #fff; }
.bb-sell-sec-head { text-align: center; margin-bottom: 36px; max-width: 720px; margin-left: auto; margin-right: auto; }
.bb-sell-sec-head h2 { font-family: var(--bb-head); font-size: 28px; font-weight: 700; color: var(--bb-ink); margin: 0 0 8px; line-height: 1.25; }
.bb-sell-sec-head p { color: var(--bb-muted); font-size: 15px; margin: 0; }

.bb-sell-grid {
  display: grid; gap: 18px;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}
.bb-sell-card {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  padding: 24px; box-shadow: var(--bb-shadow); transition: all .18s ease;
}
.bb-sell-card:hover { transform: translateY(-3px); box-shadow: var(--bb-shadow-hover); border-color: #c4d6f2; }
.bb-sell-ic {
  width: 48px; height: 48px; border-radius: 12px;
  background: #eaf1fb; color: var(--bb-blue);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 22px; margin-bottom: 14px;
}
.bb-sell-card h3 { font-size: 16px; font-weight: 700; color: var(--bb-ink); margin: 0 0 8px; display: inline-flex; align-items: center; gap: 8px; }
.bb-sell-card h3 i { color: var(--bb-blue); }
.bb-sell-card p { font-size: 13.5px; color: var(--bb-body); margin: 0; line-height: 1.55; }
.bb-sell-card-soft { background: var(--bb-bg); border-color: transparent; box-shadow: none; }
.bb-sell-card-soft:hover { background: #fff; }

.bb-sell-steps {
  list-style: none; padding: 0; margin: 0;
  display: grid; gap: 18px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  counter-reset: bbSellStep;
}
.bb-sell-steps li {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  padding: 22px; display: flex; gap: 14px; align-items: flex-start;
  box-shadow: var(--bb-shadow);
}
.bb-sell-steps .num {
  flex-shrink: 0; width: 36px; height: 36px; border-radius: 50%;
  background: linear-gradient(135deg, var(--bb-blue), var(--bb-blue-light));
  color: #fff; font-family: var(--bb-head); font-weight: 700; font-size: 15px;
  display: inline-flex; align-items: center; justify-content: center;
}
.bb-sell-steps h3 { font-size: 15px; font-weight: 700; color: var(--bb-ink); margin: 4px 0 6px; }
.bb-sell-steps p { font-size: 13px; color: var(--bb-muted); margin: 0; line-height: 1.5; }

.bb-sell-cta {
  background: linear-gradient(135deg, var(--bb-blue-dark), var(--bb-blue-light));
  padding: 56px 0; color: #fff; text-align: center;
}
.bb-sell-cta-inner { max-width: 620px; margin: 0 auto; }
.bb-sell-cta h2 { color: #fff; font-family: var(--bb-head); font-size: 28px; font-weight: 700; margin: 0 0 10px; }
.bb-sell-cta p { color: rgba(255,255,255,.85); font-size: 15px; margin: 0 0 22px; }
.bb-sell-cta .btn { padding: 13px 26px; border-radius: 10px; font-weight: 700; display: inline-flex; align-items: center; gap: 8px; }

@media (max-width: 991px) {
  .bb-cms-grid { grid-template-columns: 1fr; }
  .bb-cms-aside { position: static; }
  .bb-contact-grid { grid-template-columns: 1fr; }
  .bb-contact-aside { position: static; }
  .bb-sell-hero-inner { grid-template-columns: 1fr; }
  .bb-sell-hero-art { max-width: 480px; margin: 0 auto; }
  .bb-sell-steps { grid-template-columns: 1fr; }
}
@media (max-width: 575px) {
  .bb-cms-hero { padding: 30px 0 32px; }
  .bb-cms-hero h1 { font-size: 24px; }
  .bb-cms-article { padding: 22px; font-size: 14px; }
  .bb-contact-card { padding: 22px; }
  .bb-sell-hero { padding: 36px 0; }
  .bb-sell-hero-text h1 { font-size: 26px; }
  .bb-sell-sec-head h2 { font-size: 22px; }
  .bb-sell-hero-stats { gap: 16px; }
  .bb-sell-section, .bb-sell-cta { padding: 36px 0; }
  .bb-sell-cta h2 { font-size: 22px; }
}

/* ==========================================================================
   ADVERTISEMENT FORM (multi-step payment flow)
   ========================================================================== */
.bb-adv-section { background: var(--bb-bg); }

/* Banner thumbnail preview */
.bb-adv-thumb-wrap { margin-top: 10px; }
.bb-adv-thumb {
  position: relative; display: inline-block;
  border: 1px solid var(--bb-line); border-radius: 8px; overflow: hidden;
  max-width: 100%; background: var(--bb-bg);
}
.bb-adv-thumb img { max-width: 100%; max-height: 120px; display: block; }
.bb-adv-thumb-del {
  position: absolute; top: 6px; right: 6px;
  width: 28px; height: 28px; border-radius: 50%;
  background: rgba(210,58,58,.92); color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 13px; cursor: pointer; transition: all .15s ease;
}
.bb-adv-thumb-del:hover { background: #b22d2d; color: #fff; }

/* Payment method picker */
.bb-adv-pay-options {
  display: grid; gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.bb-adv-pay-options .btn-check { position: absolute; clip: rect(0,0,0,0); pointer-events: none; }
.bb-adv-pay-card {
  display: flex; align-items: center; gap: 12px;
  padding: 14px; border: 1.5px solid var(--bb-line); border-radius: 10px;
  background: #fff; cursor: pointer; transition: all .15s ease;
  margin: 0; position: relative;
}
.bb-adv-pay-card:hover { border-color: #c4d6f2; background: #f8fbff; }
.bb-adv-pay-card i.bi-check-circle-fill {
  color: var(--bb-line); font-size: 20px; transition: color .15s ease;
}
.bb-adv-pay-label { flex: 1; font-size: 13px; font-weight: 600; color: var(--bb-ink); }
.bb-adv-pay-card img { height: 28px; width: auto; flex-shrink: 0; }
.bb-adv-pay-options .btn-check:checked + .bb-adv-pay-card {
  border-color: var(--bb-blue); background: #f0f6ff;
  box-shadow: 0 0 0 3px rgba(27,79,156,.10);
}
.bb-adv-pay-options .btn-check:checked + .bb-adv-pay-card i.bi-check-circle-fill {
  color: var(--bb-green);
}

@media (max-width: 575px) {
  .bb-adv-pay-options { grid-template-columns: 1fr; }
}

/* ==========================================================================
   BOOTBOX ALERT / CONFIRM — theme overrides (success / error / warning / info)
   Applied globally via inc/footer.php auto-theming script
   ========================================================================== */
.bootbox.modal .modal-dialog { max-width: 460px; margin: 1.75rem auto; }
.bootbox.modal .modal-content {
  border: 0; border-radius: 16px;
  box-shadow: 0 20px 50px rgba(8, 22, 50, .25), 0 8px 20px rgba(8, 22, 50, .1);
  overflow: hidden; padding: 0;
}

/* Hide the default bootbox modal-header (we render icon + title in body instead) */
.bootbox.modal .modal-header {
  border: 0; padding: 18px 22px 0;
  background: transparent;
  align-items: center; gap: 10px;
}
.bootbox.modal .modal-header .modal-title {
  font-family: var(--bb-head); font-weight: 700;
  color: var(--bb-ink); font-size: 17px;
  flex: 1; min-width: 0; text-align: center; margin: 0;
}
.bootbox.modal .modal-header .close,
.bootbox.modal .modal-header .btn-close { display: none; } /* alerts shouldn't have manual close */

/* Body */
.bootbox.modal .modal-body {
  padding: 16px 26px 22px; text-align: center;
  color: var(--bb-body); font-size: 14px; line-height: 1.55;
}
.bootbox.modal .bootbox-body {
  color: var(--bb-body); font-size: 14px; line-height: 1.55;
}
.bootbox.modal .bootbox-body a { color: var(--bb-blue); }

/* Icon prepended by the auto-theme JS */
.bootbox.modal .bb-bb-icon {
  width: 64px; height: 64px; border-radius: 50%;
  margin: 6px auto 14px;
  display: flex; align-items: center; justify-content: center;
  font-size: 32px;
  background: linear-gradient(135deg, #eaf1fb, #d6e4fb);
  color: var(--bb-blue);
}

/* Theme: SUCCESS */
.bootbox.modal.bb-bb-success .bb-bb-icon {
  background: linear-gradient(135deg, #e1f5ec, #c5ecd6);
  color: var(--bb-green);
}

/* When the message embeds its own check/cross icon, style it nicely instead of adding ours */
.bootbox.modal.bb-bb-embedded-icon .bootbox-body { padding-top: 4px; }
.bootbox.modal.bb-bb-embedded-icon .text-success-message {
  text-align: center; display: flex; flex-direction: column; align-items: center; gap: 12px;
}
.bootbox.modal.bb-bb-embedded-icon .text-success-message > i {
  width: 64px; height: 64px; border-radius: 50%;
  background: linear-gradient(135deg, #e1f5ec, #c5ecd6);
  color: var(--bb-green); font-size: 32px;
  display: inline-flex; align-items: center; justify-content: center;
  margin: 0;
}
.bootbox.modal.bb-bb-embedded-icon .text-success-message p { margin: 0; }
.bootbox.modal.bb-bb-success .modal-content { border-top: 4px solid var(--bb-green); }
.bootbox.modal.bb-bb-success .modal-header .modal-title { color: #157a44; }

/* Theme: ERROR */
.bootbox.modal.bb-bb-error .bb-bb-icon {
  background: linear-gradient(135deg, #fdecec, #fbd1d1);
  color: #d23a3a;
}
.bootbox.modal.bb-bb-error .modal-content { border-top: 4px solid #d23a3a; }
.bootbox.modal.bb-bb-error .modal-header .modal-title { color: #a02020; }

/* Theme: WARNING */
.bootbox.modal.bb-bb-warning .bb-bb-icon {
  background: linear-gradient(135deg, #fef9eb, #fae7a8);
  color: #b8650e;
}
.bootbox.modal.bb-bb-warning .modal-content { border-top: 4px solid var(--bb-orange); }
.bootbox.modal.bb-bb-warning .modal-header .modal-title { color: #b8650e; }

/* Theme: INFO (default) */
.bootbox.modal.bb-bb-info .modal-content { border-top: 4px solid var(--bb-blue); }

/* Footer / buttons */
.bootbox.modal .modal-footer {
  padding: 0 22px 22px; border: 0; background: transparent;
  justify-content: center; gap: 8px;
}
.bootbox.modal .modal-footer .btn {
  padding: 10px 22px; font-size: 13.5px; font-weight: 600;
  border-radius: 9px; min-width: 110px;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
}
/* Primary action (Ok button) */
.bootbox.modal .modal-footer .btn-primary,
.bootbox.modal .modal-footer .btn-site,
.bootbox.modal .modal-footer .bootbox-accept {
  background: var(--bb-blue); border-color: var(--bb-blue); color: #fff;
}
.bootbox.modal .modal-footer .btn-primary:hover,
.bootbox.modal .modal-footer .btn-site:hover,
.bootbox.modal .modal-footer .bootbox-accept:hover {
  background: var(--bb-blue-dark); border-color: var(--bb-blue-dark); color: #fff;
}
/* Success/error/warning ok button picks up the theme colour */
.bootbox.modal.bb-bb-success .modal-footer .btn-primary,
.bootbox.modal.bb-bb-success .modal-footer .btn-site,
.bootbox.modal.bb-bb-success .modal-footer .bootbox-accept {
  background: var(--bb-green); border-color: var(--bb-green);
}
.bootbox.modal.bb-bb-success .modal-footer .btn-primary:hover,
.bootbox.modal.bb-bb-success .modal-footer .btn-site:hover,
.bootbox.modal.bb-bb-success .modal-footer .bootbox-accept:hover {
  background: #157a44; border-color: #157a44;
}
.bootbox.modal.bb-bb-error .modal-footer .btn-primary,
.bootbox.modal.bb-bb-error .modal-footer .btn-site,
.bootbox.modal.bb-bb-error .modal-footer .bootbox-accept {
  background: #d23a3a; border-color: #d23a3a;
}
.bootbox.modal.bb-bb-error .modal-footer .btn-primary:hover,
.bootbox.modal.bb-bb-error .modal-footer .btn-site:hover,
.bootbox.modal.bb-bb-error .modal-footer .bootbox-accept:hover {
  background: #b22d2d; border-color: #b22d2d;
}
.bootbox.modal.bb-bb-warning .modal-footer .btn-primary,
.bootbox.modal.bb-bb-warning .modal-footer .btn-site,
.bootbox.modal.bb-bb-warning .modal-footer .bootbox-accept {
  background: var(--bb-orange); border-color: var(--bb-orange);
}
.bootbox.modal.bb-bb-warning .modal-footer .btn-primary:hover,
.bootbox.modal.bb-bb-warning .modal-footer .btn-site:hover,
.bootbox.modal.bb-bb-warning .modal-footer .bootbox-accept:hover {
  background: var(--bb-orange-dark); border-color: var(--bb-orange-dark);
}
/* Cancel / outline button (used by bootbox.confirm) */
.bootbox.modal .modal-footer .btn-dark,
.bootbox.modal .modal-footer .btn-secondary,
.bootbox.modal .modal-footer .bootbox-cancel {
  background: #fff; color: var(--bb-body);
  border: 1px solid var(--bb-line);
}
.bootbox.modal .modal-footer .btn-dark:hover,
.bootbox.modal .modal-footer .btn-secondary:hover,
.bootbox.modal .modal-footer .bootbox-cancel:hover {
  background: var(--bb-bg); color: var(--bb-ink); border-color: #c4d6f2;
}

/* The legacy `.pull-right` / `.pull-left` align hints from older bootbox usage */
.bootbox.modal .modal-footer .pull-right,
.bootbox.modal .modal-footer .pull-left { float: none; }

/* Inline link buttons (some alerts put a <a class="btn"> in the body) */
.bootbox.modal .bootbox-body .btn { padding: 9px 18px; border-radius: 8px; font-weight: 600; font-size: 13.5px; }

/* Backdrop */
.modal-backdrop.show { background: #0a1730; opacity: .55; }

/* Mobile */
@media (max-width: 575px) {
  .bootbox.modal .modal-dialog { margin: 1rem; }
  .bootbox.modal .modal-body { padding: 14px 20px 18px; }
  .bootbox.modal .bb-bb-icon { width: 56px; height: 56px; font-size: 26px; margin-bottom: 12px; }
  .bootbox.modal .modal-header .modal-title { font-size: 16px; }
}

/* ==========================================================================
   ALL CATEGORY PAGE — /all-category (rail + main grid layout)
   ========================================================================== */
.bb-cat2-hero {
  background: #fff;
  border-bottom: 1px solid var(--bb-line);
  padding: 22px 0 24px;
}
.bb-cat2-hero .bb-cms-crumbs { margin-bottom: 10px; color: var(--bb-muted); }
.bb-cat2-hero .bb-cms-crumbs a { color: var(--bb-muted); }
.bb-cat2-hero .bb-cms-crumbs a:hover { color: var(--bb-blue); }
.bb-cat2-hero .bb-cms-crumbs .is-current { color: var(--bb-ink); }
.bb-cat2-hero-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 380px); gap: 22px; align-items: center; }
.bb-cat2-hero-text h1 { font-family: var(--bb-head); font-size: 26px; font-weight: 700; color: var(--bb-ink); margin: 0 0 6px; line-height: 1.2; }
.bb-cat2-hero-text p {
  font-size: 13.5px; color: var(--bb-muted); margin: 0;
  display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.bb-cat2-hero-text p strong { color: var(--bb-ink); font-weight: 700; }
.bb-cat2-hero-text p i { color: var(--bb-blue); }
.bb-cat2-hero-text p .sep { color: var(--bb-line); margin: 0 4px; }

.bb-cat2-search {
  position: relative;
  background: var(--bb-bg); border-radius: 10px; border: 1px solid var(--bb-line);
  transition: all .15s ease;
}
.bb-cat2-search:focus-within { background: #fff; border-color: var(--bb-blue-light); box-shadow: 0 0 0 3px rgba(47,111,208,.10); }
.bb-cat2-search > i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--bb-muted); font-size: 16px; }
.bb-cat2-search input {
  width: 100%; height: 44px; border: 0; outline: 0; background: transparent;
  padding: 0 50px 0 42px; font-size: 14px; color: var(--bb-ink); border-radius: 10px;
}
.bb-cat2-search kbd {
  position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
  background: #fff; border: 1px solid var(--bb-line); color: var(--bb-muted);
  padding: 2px 8px; border-radius: 5px; font-size: 11px; font-family: monospace;
  box-shadow: 0 1px 0 var(--bb-line);
}

.bb-cat2-section { padding: 22px 0 60px; background: var(--bb-bg); min-height: 70vh; }
.bb-cat2-layout {
  display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 18px; align-items: start;
}

/* ----- Left rail ----- */
.bb-cat2-rail {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 12px;
  box-shadow: var(--bb-shadow); overflow: hidden;
  position: sticky; top: 88px; max-height: calc(100vh - 100px);
  display: flex; flex-direction: column;
}
.bb-cat2-rail-head {
  padding: 14px 16px; border-bottom: 1px solid var(--bb-line);
  font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px;
  color: var(--bb-muted); display: inline-flex; align-items: center; gap: 7px;
}
.bb-cat2-rail-head i { color: var(--bb-blue); font-size: 14px; }
.bb-cat2-rail-list {
  list-style: none; padding: 6px; margin: 0;
  overflow-y: auto; flex: 1;
}
.bb-cat2-rail-list a {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 10px; border-radius: 8px;
  color: var(--bb-body); text-decoration: none; transition: all .12s ease;
  font-size: 13px; font-weight: 500;
}
.bb-cat2-rail-list a:hover { background: var(--bb-bg); color: var(--bb-blue); }
.bb-cat2-rail-list a.is-active {
  background: #eaf1fb; color: var(--bb-blue); font-weight: 700;
  box-shadow: inset 3px 0 0 var(--bb-blue);
}
.bb-cat2-rail-list .ic {
  flex-shrink: 0; width: 30px; height: 30px; border-radius: 7px;
  background: var(--bb-bg);
  display: inline-flex; align-items: center; justify-content: center;
}
.bb-cat2-rail-list a:hover .ic,
.bb-cat2-rail-list a.is-active .ic { background: #fff; }
.bb-cat2-rail-list .ic img { width: 18px; height: 18px; object-fit: contain; }
.bb-cat2-rail-list .ic i { font-size: 14px; color: var(--bb-blue); }
.bb-cat2-rail-list .lbl { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bb-cat2-rail-list .cnt {
  font-size: 11px; font-weight: 700; color: var(--bb-muted);
  background: var(--bb-bg); padding: 2px 7px; border-radius: 999px;
}
.bb-cat2-rail-list a.is-active .cnt { background: var(--bb-blue); color: #fff; }
.bb-cat2-rail-list .arr {
  font-size: 12px; color: var(--bb-muted); opacity: 0; transition: opacity .15s ease;
}
.bb-cat2-rail-list a:hover .arr,
.bb-cat2-rail-list a.is-active .arr { opacity: 1; color: var(--bb-blue); }

.bb-cat2-rail-list::-webkit-scrollbar { width: 6px; }
.bb-cat2-rail-list::-webkit-scrollbar-thumb { background: var(--bb-line); border-radius: 3px; }

/* ----- Main ----- */
.bb-cat2-main { min-width: 0; }

.bb-cat2-all-link {
  display: flex; align-items: center; gap: 12px;
  background: linear-gradient(135deg, #eaf1fb, #f8fbff);
  border: 1px solid #c4d6f2; border-radius: 12px;
  padding: 14px 18px; margin-bottom: 16px;
  color: var(--bb-blue); font-weight: 600; font-size: 14px; text-decoration: none;
  transition: all .15s ease;
}
.bb-cat2-all-link:hover {
  background: linear-gradient(135deg, #d6e4fb, #eaf1fb);
  border-color: var(--bb-blue-light); color: var(--bb-blue-dark);
  transform: translateX(2px);
}
.bb-cat2-all-link > i:first-child { font-size: 18px; color: var(--bb-orange); }
.bb-cat2-all-link span { flex: 1; }
.bb-cat2-all-link strong { font-weight: 700; }

/* Card grid */
.bb-cat2-grid {
  display: grid; gap: 14px;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}
.bb-cat2-card {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  overflow: hidden; transition: all .18s ease;
  display: flex; flex-direction: column;
}
.bb-cat2-card:hover {
  transform: translateY(-3px); border-color: #c4d6f2;
  box-shadow: 0 12px 24px rgba(20,40,80,.10);
}
.bb-cat2-card-media {
  display: block; aspect-ratio: 16/9; overflow: hidden;
  background: var(--bb-bg); position: relative;
}
.bb-cat2-card-media img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .25s ease;
}
.bb-cat2-card:hover .bb-cat2-card-media img { transform: scale(1.06); }
.bb-cat2-card-icon {
  position: absolute; bottom: -18px; left: 16px;
  width: 44px; height: 44px; border-radius: 10px;
  background: #fff; border: 1px solid var(--bb-line);
  box-shadow: 0 4px 12px rgba(20,40,80,.10);
  display: inline-flex; align-items: center; justify-content: center;
}
.bb-cat2-card-icon img { width: 26px; height: 26px; object-fit: contain; }

.bb-cat2-card-body {
  padding: 22px 16px 14px; display: flex; flex-direction: column; gap: 10px;
  flex: 1;
}
.bb-cat2-card:has(.bb-cat2-card-icon) .bb-cat2-card-body { padding-top: 26px; }
.bb-cat2-card-body h3 { font-size: 15px; font-weight: 700; margin: 0; line-height: 1.3; }
.bb-cat2-card-body h3 a { color: var(--bb-ink); text-decoration: none; }
.bb-cat2-card-body h3 a:hover { color: var(--bb-blue); }

/* ----- Main category cards — masonry / "maze" layout (CSS columns) ----- */
.bb-cat2-grid-main {
  display: block !important;
  column-count: 3;
  column-gap: 14px;
}
.bb-cat2-grid-main > .bb-cat2-card {
  break-inside: avoid;
  page-break-inside: avoid;
  -webkit-column-break-inside: avoid;
  display: inline-block;        /* prevents column-break edge cases */
  width: 100%;
  margin: 0 0 14px;
}
.bb-cat2-card-main {
  border: 1px solid var(--bb-line);
}
@media (max-width: 1199px) { .bb-cat2-grid-main { column-count: 2; } }
@media (max-width: 767px)  { .bb-cat2-grid-main { column-count: 1; } }
.bb-cat2-card-main .bb-cat2-card-head {
  display: flex; gap: 14px; align-items: center;
  padding: 18px;
  background: linear-gradient(135deg, var(--bb-pal-from, #eaf1fb), var(--bb-pal-to, #f8fbff));
  border-bottom: 1px solid var(--bb-line);
}
.bb-cat2-card-main .bb-cat2-card-icon-big {
  flex-shrink: 0; width: 56px; height: 56px; border-radius: 12px;
  background: #fff; border: 1px solid rgba(255,255,255,.6);
  box-shadow: 0 4px 12px rgba(20,40,80,.08);
  display: inline-flex; align-items: center; justify-content: center;
  transition: transform .2s ease;
}
.bb-cat2-card-main:hover .bb-cat2-card-icon-big { transform: scale(1.06) rotate(-2deg); }
.bb-cat2-card-main .bb-cat2-card-icon-big img {
  width: 34px; height: 34px; object-fit: contain;
}
.bb-cat2-card-main .bb-cat2-card-head-text { min-width: 0; flex: 1; }
.bb-cat2-card-main .bb-cat2-card-head-text h3 {
  font-size: 16px; font-weight: 700; margin: 0 0 4px; line-height: 1.25;
}
.bb-cat2-card-main .bb-cat2-card-head-text h3 a { color: var(--bb-ink); text-decoration: none; }
.bb-cat2-card-main .bb-cat2-card-head-text h3 a:hover { color: var(--bb-blue); }
.bb-cat2-card-main .bb-cat2-card-meta {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11.5px; color: var(--bb-muted); font-weight: 500;
}
.bb-cat2-card-main .bb-cat2-card-meta i { color: var(--bb-blue); font-size: 12px; }
.bb-cat2-card-main .bb-cat2-card-body { padding: 14px 18px 14px; }
.bb-cat2-card-main .bb-cat2-card-head-arr {
  flex-shrink: 0; font-size: 22px; color: var(--bb-muted);
  transition: transform .15s ease, color .15s ease;
}
.bb-cat2-card-main:hover .bb-cat2-card-head-arr { color: var(--bb-blue); transform: translateX(3px); }

/* Compact variant (no popular sub-categories) — single-row card */
.bb-cat2-card-compact .bb-cat2-card-head { border-bottom: 0; }
.bb-cat2-card-cta {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 18px; border-top: 1px solid var(--bb-line);
  font-size: 13px; font-weight: 600; color: var(--bb-blue);
  text-decoration: none; background: #fff; transition: background .15s ease;
}
.bb-cat2-card-cta:hover { background: #f8fbff; color: var(--bb-blue-dark); }
.bb-cat2-card-cta > i:first-child { color: var(--bb-orange); font-size: 16px; }
.bb-cat2-card-cta span { flex: 1; }
.bb-cat2-card-cta > i:last-child { transition: transform .15s ease; }
.bb-cat2-card-compact:hover .bb-cat2-card-cta > i:last-child { transform: translateX(3px); }

/* Soft palette accents — head gradient bg per card index for visual variety */
.bb-cat2-pal-p1 { --bb-pal-from: #eaf1fb; --bb-pal-to: #f8fbff; } /* blue   */
.bb-cat2-pal-p2 { --bb-pal-from: #fff4e6; --bb-pal-to: #fffaf2; } /* orange */
.bb-cat2-pal-p3 { --bb-pal-from: #e1f5ec; --bb-pal-to: #f4fbf7; } /* green  */
.bb-cat2-pal-p4 { --bb-pal-from: #f3eafe; --bb-pal-to: #faf6ff; } /* purple */
.bb-cat2-pal-p5 { --bb-pal-from: #fef0f0; --bb-pal-to: #fff8f8; } /* rose   */
.bb-cat2-pal-p6 { --bb-pal-from: #e6f4f9; --bb-pal-to: #f5fafd; } /* cyan   */
.bb-cat2-pal-p7 { --bb-pal-from: #fef9e6; --bb-pal-to: #fffcef; } /* yellow */
.bb-cat2-pal-p8 { --bb-pal-from: #eaf2f0; --bb-pal-to: #f6faf9; } /* mint   */

/* Sub-category chips */
.bb-cat2-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.bb-cat2-chip {
  display: inline-block; padding: 4px 10px; border-radius: 999px;
  background: var(--bb-bg); color: var(--bb-body);
  font-size: 11.5px; font-weight: 500; text-decoration: none;
  transition: all .12s ease; line-height: 1.4;
}
.bb-cat2-chip:hover { background: var(--bb-blue); color: #fff; }

.bb-cat2-card-foot {
  margin-top: auto;
  padding-top: 10px; border-top: 1px solid var(--bb-line);
  font-size: 12.5px; font-weight: 600; color: var(--bb-blue);
  text-decoration: none;
  display: inline-flex; align-items: center; gap: 5px;
}
.bb-cat2-card-foot:hover { color: var(--bb-blue-dark); }
.bb-cat2-card-foot i { transition: transform .15s ease; font-size: 13px; }
.bb-cat2-card:hover .bb-cat2-card-foot i { transform: translateX(3px); }

/* Empty state */
.bb-cat2-empty {
  grid-column: 1 / -1;
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  box-shadow: var(--bb-shadow);
  padding: 48px 24px; text-align: center; color: var(--bb-muted);
}
.bb-cat2-empty > i {
  display: inline-flex; align-items: center; justify-content: center;
  width: 72px; height: 72px; border-radius: 50%;
  background: linear-gradient(135deg, #eaf1fb, #d6e4fb);
  color: var(--bb-blue); font-size: 30px;
  margin: 0 auto 16px;
}
.bb-cat2-empty h3 { font-size: 17px; font-weight: 700; color: var(--bb-ink); margin: 0 0 6px; }
.bb-cat2-empty p { font-size: 13.5px; margin: 0 auto 20px; max-width: 360px; line-height: 1.5; }
.bb-cat2-empty .btn {
  display: inline-flex !important; align-items: center; justify-content: center; gap: 7px;
  padding: 10px 22px !important; border-radius: 9px !important;
  font-size: 13.5px !important; font-weight: 600;
  width: auto !important; min-width: 0; max-width: 280px;
  height: auto !important; line-height: 1.4;
}

@media (max-width: 1199px) {
  .bb-cat2-layout { grid-template-columns: 220px minmax(0, 1fr); gap: 14px; }
}
@media (max-width: 991px) {
  .bb-cat2-layout { grid-template-columns: 1fr; }
  .bb-cat2-rail { position: static; max-height: none; }
  .bb-cat2-rail-list { max-height: 240px; }
  .bb-cat2-hero-row { grid-template-columns: 1fr; gap: 14px; }
  .bb-cat2-hero-text h1 { font-size: 22px; }
}
@media (max-width: 575px) {
  .bb-cat2-hero { padding: 18px 0 20px; }
  .bb-cat2-hero-text h1 { font-size: 19px; }
  .bb-cat2-grid { grid-template-columns: 1fr; gap: 12px; }
  .bb-cat2-card-media { aspect-ratio: 16/8; }
  .bb-cat2-search kbd { display: none; }
}

/* ==========================================================================
   REGISTRATION SUCCESS / USER PREVIEW PAGE
   ========================================================================== */
.bb-regsuccess { padding: 30px 0 60px; background: var(--bb-bg); min-height: 70vh; }
.bb-regsuccess-hero {
  display: grid; grid-template-columns: 72px minmax(0,1fr) auto;
  gap: 20px; align-items: center;
  background: linear-gradient(135deg, #e1f5ec, #f4fbf7);
  border: 1px solid #b9e4cd; border-radius: 16px;
  padding: 24px 28px; margin-bottom: 22px;
  box-shadow: var(--bb-shadow);
}
.bb-regsuccess-hero-ic {
  width: 72px; height: 72px; border-radius: 50%;
  background: linear-gradient(135deg, var(--bb-green), #2cc275);
  color: #fff; font-size: 38px;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 20px rgba(28,163,90,.30);
}
.bb-regsuccess-hero-text h2 {
  font-family: var(--bb-head); font-size: 22px; font-weight: 700;
  color: #157a44; margin: 0 0 4px; line-height: 1.25;
}
.bb-regsuccess-hero-text p {
  font-size: 14px; color: #1a6b3c; margin: 0; line-height: 1.5;
}
.bb-regsuccess-hero-cta { display: flex; gap: 10px; flex-wrap: wrap; }
.bb-regsuccess-hero-cta .btn {
  padding: 10px 18px; font-size: 13.5px; font-weight: 600; border-radius: 9px;
  display: inline-flex; align-items: center; gap: 7px;
}
.bb-regsuccess-cta-orange {
  background: var(--bb-orange) !important; border-color: var(--bb-orange) !important; color: #fff !important;
}
.bb-regsuccess-cta-orange:hover {
  background: var(--bb-orange-dark) !important; border-color: var(--bb-orange-dark) !important; color: #fff !important;
}

.bb-regsuccess-card {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  box-shadow: var(--bb-shadow); overflow: hidden;
}
.bb-regsuccess-card-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; padding: 16px 22px; border-bottom: 1px solid var(--bb-line);
  background: var(--bb-bg);
}
.bb-regsuccess-card-head h3 {
  font-size: 15px; font-weight: 700; margin: 0; color: var(--bb-ink);
  display: inline-flex; align-items: center; gap: 8px;
}
.bb-regsuccess-card-head h3 i { color: var(--bb-blue); }
.bb-regsuccess-edit {
  font-size: 13px; font-weight: 600; color: var(--bb-blue);
  display: inline-flex; align-items: center; gap: 5px;
}
.bb-regsuccess-edit:hover { color: var(--bb-blue-dark); }

.bb-regsuccess-list {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0; margin: 0; padding: 0;
}
.bb-regsuccess-list > div {
  display: flex; flex-direction: column; gap: 4px;
  padding: 14px 22px; border-bottom: 1px solid var(--bb-line);
}
.bb-regsuccess-list > div:nth-child(odd) { border-right: 1px solid var(--bb-line); }
.bb-regsuccess-list dt {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 11.5px; font-weight: 600; color: var(--bb-muted);
  text-transform: uppercase; letter-spacing: .3px; margin: 0;
}
.bb-regsuccess-list dt i { color: var(--bb-blue); font-size: 12px; }
.bb-regsuccess-list dd {
  font-size: 14px; color: var(--bb-ink); font-weight: 500; margin: 0;
  word-break: break-word;
}

@media (max-width: 767px) {
  .bb-regsuccess-hero { grid-template-columns: 1fr; text-align: center; padding: 22px; }
  .bb-regsuccess-hero-ic { margin: 0 auto; }
  .bb-regsuccess-hero-cta { justify-content: center; }
  .bb-regsuccess-list { grid-template-columns: 1fr; }
  .bb-regsuccess-list > div:nth-child(odd) { border-right: 0; }
}

/* ==========================================================================
   MEDIA TAB (settings → edit-profile → Media)
   ========================================================================== */
.bb-media { display: flex; flex-direction: column; gap: 22px; }
.bb-media-section {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 14px;
  padding: 22px; box-shadow: var(--bb-shadow);
}
.bb-media-head {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 14px; margin-bottom: 16px;
  padding-bottom: 14px; border-bottom: 1px solid var(--bb-line);
  flex-wrap: wrap;
}
.bb-media-title {
  font-size: 16px; font-weight: 700; color: var(--bb-ink); margin: 0 0 4px;
  display: inline-flex; align-items: center; gap: 8px;
}
.bb-media-title i { color: var(--bb-blue); font-size: 18px; }
.bb-media-sub { font-size: 13px; color: var(--bb-muted); margin: 0; }
.bb-media-add-btn {
  flex-shrink: 0; padding: 8px 16px; font-size: 13px; font-weight: 600;
  border-radius: 8px; display: inline-flex; align-items: center; gap: 6px;
  white-space: nowrap; cursor: pointer; margin: 0;
}

/* 4-column gallery grid */
.bb-media-grid {
  display: grid; gap: 14px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.bb-media-card {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 10px;
  overflow: hidden; transition: all .18s ease;
}
.bb-media-card:hover { transform: translateY(-2px); box-shadow: var(--bb-shadow-hover); }
.bb-media-card-img {
  position: relative; aspect-ratio: 1/1; background: var(--bb-bg);
  overflow: hidden;
}
.bb-media-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bb-media-card-del {
  position: absolute; top: 8px; right: 8px;
  width: 30px; height: 30px; border-radius: 50%;
  background: rgba(210,58,58,.92); color: #fff; border: 0;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; cursor: pointer; transition: all .15s ease;
}
.bb-media-card-del:hover { background: #b22d2d; transform: scale(1.08); }
.bb-media-card-caption {
  font-size: 12.5px; color: var(--bb-ink); font-weight: 600;
  padding: 10px 12px; text-align: center;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Empty state */
.bb-media-empty {
  text-align: center; padding: 40px 20px;
  background: var(--bb-bg); border: 1px dashed var(--bb-line); border-radius: 12px;
  color: var(--bb-muted);
}
.bb-media-empty > i {
  display: inline-flex; align-items: center; justify-content: center;
  width: 60px; height: 60px; border-radius: 50%;
  background: #fff; color: var(--bb-blue); font-size: 26px;
  margin-bottom: 12px; border: 1px solid var(--bb-line);
}
.bb-media-empty h4 { font-size: 15px; font-weight: 700; color: var(--bb-ink); margin: 0 0 6px; }
.bb-media-empty p { font-size: 13px; margin: 0 auto; max-width: 380px; line-height: 1.5; }

.bb-media-foot-note {
  font-size: 12px; color: var(--bb-muted); margin: 14px 0 0;
  display: inline-flex; align-items: center; gap: 6px;
}
.bb-media-foot-note i { color: var(--bb-blue); }

.bb-media-video {
  position: relative; aspect-ratio: 16/9; max-width: 480px;
  border-radius: 10px; overflow: hidden; background: #000;
}
.bb-media-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

@media (max-width: 991px) { .bb-media-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 575px) {
  .bb-media-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .bb-media-section { padding: 16px; }
  .bb-media-card-caption { font-size: 11.5px; padding: 8px 10px; }
}

/* ==========================================================================
   PAYMENT REDIRECT SCREEN (PayPal / Razorpay / Instamojo intermediate page)
   ========================================================================== */
.bb-pay-redirect {
  min-height: 70vh;
  display: flex; align-items: center; justify-content: center;
  padding: 40px 16px; background: var(--bb-bg);
}
.bb-pay-redirect-card {
  background: #fff; border: 1px solid var(--bb-line); border-radius: 16px;
  box-shadow: var(--bb-shadow); padding: 40px 32px;
  max-width: 480px; width: 100%; text-align: center;
}
.bb-pay-redirect-spinner {
  width: 80px; height: 80px; margin: 0 auto 18px;
  background: linear-gradient(135deg, #eaf1fb, #d6e4fb);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.bb-pay-redirect-card h3 {
  font-family: var(--bb-head); font-size: 19px; font-weight: 700;
  color: var(--bb-ink); margin: 0 0 8px;
}
.bb-pay-redirect-card p {
  font-size: 13.5px; color: var(--bb-muted); margin: 0 0 22px; line-height: 1.5;
}
.bb-pay-redirect-card p strong { color: var(--bb-orange-dark); }
.bb-pay-redirect-steps {
  display: flex; flex-direction: column; gap: 8px;
  background: var(--bb-bg); border-radius: 10px; padding: 14px;
  text-align: left;
}
.bb-pay-redirect-steps .step {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; font-weight: 600; color: var(--bb-muted);
}
.bb-pay-redirect-steps .step i { font-size: 17px; }
.bb-pay-redirect-steps .step.is-done { color: var(--bb-green); }
.bb-pay-redirect-steps .step.is-active { color: var(--bb-blue); }
.bb-pay-redirect-steps .step.is-active i {
  animation: bbPayPulse 1.3s ease-in-out infinite;
}
@keyframes bbPayPulse {
  0%, 100% { transform: translateX(0); opacity: 1; }
  50% { transform: translateX(3px); opacity: .7; }
}

/* Yes/No row in review modal */
.bb-pv-yn-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 14px; }
.bb-pv-yn h5 { font-size: 12.5px; font-weight: 600; color: var(--bb-ink); margin: 0 0 6px; }
.bb-pv-yn .form-check-label { font-size: 13px; color: var(--bb-body); }

/* ----- Responsive ----- */
@media (max-width: 1199px) {
  .bb-pv-grid { grid-template-columns: minmax(0, 1fr) 320px; }
  .bb-pv-rating { grid-template-columns: 180px 1fr; }
  .bb-pv-rating-stats { grid-column: 1 / -1; max-width: 420px; margin: 0 auto; }
}
@media (max-width: 991px) {
  .bb-pv-hero { grid-template-columns: 1fr; }
  .bb-pv-grid { grid-template-columns: 1fr; }
  .bb-pv-aside { position: static; }
  .bb-pv-rating { grid-template-columns: 1fr; gap: 18px; }
  .bb-pv-rating-score { display: flex; align-items: center; justify-content: center; gap: 18px; }
  .bb-pv-rating-score .num { font-size: 30px; }
  .bb-pv-rating-score p { font-size: 12px; }
}
@media (max-width: 575px) {
  .bb-pv-title { font-size: 18px; }
  .bb-pv-price .amt { font-size: 20px; }
  .bb-pv-pane { padding: 16px; }
  .bb-pv-pane-title { font-size: 14.5px; }
  .bb-pv-cta { font-size: 14px; height: 44px; }
  .bb-pv-fav { width: 44px; height: 44px; }
  .bb-pv-tabs .nav-link { font-size: 12.5px; padding: 9px 10px; }
  .bb-pv-yn-row { grid-template-columns: 1fr; }
  .bb-pv-spec td.lbl { width: 45%; }
}

/* ----- Responsive ----- */
@media (max-width: 991px) {
  .bb-gq-hero { padding: 44px 0 80px; }
  .bb-gq-hero h1 { font-size: 30px; }
  .bb-gq-grid { grid-template-columns: 1fr; }
  .bb-gq-aside { position: static; }
}
@media (max-width: 575px) {
  .bb-gq-hero { padding: 36px 0 72px; }
  .bb-gq-hero h1 { font-size: 24px; line-height: 1.2; }
  .bb-gq-hero p { font-size: 14px; }
  .bb-gq-hero-stats { gap: 18px; }
  .bb-gq-hero-stats strong { font-size: 19px; }
  .bb-gq-card { padding: 20px 16px 16px; border-radius: 14px; }
  .bb-gq-steps { padding: 6px; }
  .bb-gq-steps li { font-size: 11.5px; padding: 6px 8px; }
  .bb-gq-steps li span { width: 20px; height: 20px; font-size: 10.5px; }
  .bb-gq-sec-head h3 { font-size: 14.5px; }
  .bb-gq-sec-head p { font-size: 12px; }
  .bb-gq-col-3, .bb-gq-col-6, .bb-gq-col-9 { grid-column: span 12; }
  .bb-gq-submit .btn { height: 46px; font-size: 14px; }
}

/* ==========================================================================
   PRODUCT GALLERY — photo-grid hero + fullscreen lightbox
   (replaces ninja-slider on view-project-default)
   ========================================================================== */

.bb-gal {
  display: grid;
  gap: 12px;
  min-height: 0;
}

.bb-gal-multi {
  grid-template-columns: 2fr 1fr;
  height: 420px;
}

.bb-gal-single {
  height: 420px;
}

.bb-gal-side {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 12px;
  min-height: 0;
}

.bb-gal-tile {
  position: relative;
  display: block;
  border-radius: 12px;
  overflow: hidden;
  background: #f6f8fb;
  border: 1px solid var(--bb-line);
  cursor: pointer;
  min-height: 0;
}

.bb-gal-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}

.bb-gal-tile:hover img {
  transform: scale(1.04);
}

/* zoom hint on the main tile */
.bb-gal-zoom {
  position: absolute;
  right: 12px;
  bottom: 12px;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: rgba(15, 23, 42, 0.55);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity 0.2s ease;
}

.bb-gal-tile:hover .bb-gal-zoom {
  opacity: 1;
}

/* "+N Photos" blurred overlay */
.bb-gal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 15px;
  font-weight: 600;
}

/* ── Lightbox ─────────────────────────────────────────────────────────── */

.bb-lb {
  position: fixed;
  inset: 0;
  z-index: 100000; /* above the legacy sticky header */
  display: flex;
  flex-direction: column;
  background: #0b0f17;
  color: #e2e8f0;
  animation: bbLbFade 0.22s ease;
}

@keyframes bbLbFade {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.bb-lb-top {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.7rem 1.25rem;
  background: rgba(255, 255, 255, 0.04);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  flex-shrink: 0;
}

.bb-lb-back {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  border-radius: 0.6rem;
  padding: 0.42rem 0.9rem;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.18s ease;
  flex-shrink: 0;
}

.bb-lb-back:hover {
  background: rgba(255, 255, 255, 0.14);
}

.bb-lb-title {
  flex: 1;
  text-align: center;
  font-size: 0.92rem;
  font-weight: 600;
  color: #cbd5e1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bb-lb-counter {
  flex-shrink: 0;
  font-size: 0.85rem;
  font-weight: 600;
  color: #cbd5e1;
  font-variant-numeric: tabular-nums;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0.6rem;
  padding: 0.38rem 0.75rem;
  min-width: 64px;
  text-align: center;
}

.bb-lb-stage {
  flex: 1;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem 4.5rem;
  min-height: 0;
}

.bb-lb-imgwrap {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.bb-lb-imgwrap img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 0.75rem;
  background: #fff;
  box-shadow: 0 24px 60px -20px rgba(0, 0, 0, 0.8);
}

.bb-lb-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(15, 23, 42, 0.65);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  cursor: pointer;
  z-index: 5;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  transition: background 0.18s ease, transform 0.18s ease, opacity 0.18s ease;
}

.bb-lb-nav:hover:not(:disabled) {
  background: var(--bb-blue);
  border-color: var(--bb-blue);
  transform: translateY(-50%) scale(1.08);
}

.bb-lb-nav:disabled {
  opacity: 0.3;
  cursor: default;
}

.bb-lb-prev { left: 1.25rem; }
.bb-lb-next { right: 1.25rem; }

.bb-lb-thumbs {
  display: flex;
  gap: 0.55rem;
  padding: 0.8rem 1.25rem;
  overflow-x: auto;
  justify-content: center;
  background: rgba(0, 0, 0, 0.35);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  flex-shrink: 0;
  scrollbar-width: thin;
}

.bb-lb-thumb {
  flex: 0 0 auto;
  width: 92px;
  height: 62px;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 0.6rem;
  overflow: hidden;
  cursor: pointer;
  opacity: 0.55;
  background: #fff;
  transition: opacity 0.18s ease, border-color 0.18s ease;
}

.bb-lb-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.bb-lb-thumb:hover { opacity: 0.85; }

.bb-lb-thumb.active {
  opacity: 1;
  border-color: var(--bb-blue-light);
  box-shadow: 0 0 0 3px rgba(47, 111, 208, 0.35);
}

/* ── Responsive ───────────────────────────────────────────────────────── */

@media (max-width: 767.98px) {
  .bb-gal-multi {
    grid-template-columns: 1fr;
    height: auto;
  }

  .bb-gal-single { height: 300px; }

  .bb-gal-main { height: 280px; }

  .bb-gal-side {
    grid-template-rows: none;
    grid-template-columns: 1fr 1fr;
    height: 120px;
  }

  .bb-lb-top { padding: 0.6rem 0.75rem; gap: 0.6rem; }
  .bb-lb-title { display: none; }
  .bb-lb-stage { padding: 0.75rem 0.5rem; }
  .bb-lb-nav { width: 40px; height: 40px; font-size: 1.1rem; }
  .bb-lb-prev { left: 0.5rem; }
  .bb-lb-next { right: 0.5rem; }
  .bb-lb-thumbs { justify-content: flex-start; }
  .bb-lb-thumb { width: 76px; height: 52px; }
}

/* supplier gallery tiles: keep square tile look now that they're links
   opening the shared bb-lb lightbox */
a.bb-sup-gallery-item {
  display: block;
  position: relative;
}

a.bb-sup-gallery-item .bb-gal-zoom {
  right: 8px;
  bottom: 8px;
  width: 32px;
  height: 32px;
  font-size: 13px;
}
