/* roboto-300 - latin */
@font-face {
  font-display: swap;
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: url('../font/roboto-v29-latin-300.eot'); /* IE9 Compat Modes */
  src: local(''),
       url('../font/roboto-v29-latin-300.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('../font/roboto-v29-latin-300.woff2') format('woff2'), /* Super Modern Browsers */
       url('../font/roboto-v29-latin-300.woff') format('woff'), /* Modern Browsers */
       url('../font/roboto-v29-latin-300.ttf') format('truetype'), /* Safari, Android, iOS */
       url('../font/roboto-v29-latin-300.svg#Roboto') format('svg'); /* Legacy iOS */
}
/* roboto-300italic - latin */
@font-face {
  font-display: swap;
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 300;
  src: url('../font/roboto-v29-latin-300italic.eot'); /* IE9 Compat Modes */
  src: local(''),
       url('../font/roboto-v29-latin-300italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('../font/roboto-v29-latin-300italic.woff2') format('woff2'), /* Super Modern Browsers */
       url('../font/roboto-v29-latin-300italic.woff') format('woff'), /* Modern Browsers */
       url('../font/roboto-v29-latin-300italic.ttf') format('truetype'), /* Safari, Android, iOS */
       url('../font/roboto-v29-latin-300italic.svg#Roboto') format('svg'); /* Legacy iOS */
}
/* roboto-regular - latin */
@font-face {
    font-display: swap;
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: url('../font/roboto-v29-latin-regular.eot'); /* IE9 Compat Modes */
  src: local(''),
       url('../font/roboto-v29-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('../font/roboto-v29-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
       url('../font/roboto-v29-latin-regular.woff') format('woff'), /* Modern Browsers */
       url('../font/roboto-v29-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
       url('../font/roboto-v29-latin-regular.svg#Roboto') format('svg'); /* Legacy iOS */
}
/* roboto-italic - latin */
@font-face {
    font-display: swap;
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: url('../font/roboto-v29-latin-italic.eot'); /* IE9 Compat Modes */
  src: local(''),h
       url('../font/roboto-v29-latin-italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('../font/roboto-v29-latin-italic.woff2') format('woff2'), /* Super Modern Browsers */
       url('../font/roboto-v29-latin-italic.woff') format('woff'), /* Modern Browsers */
       url('../font/roboto-v29-latin-italic.ttf') format('truetype'), /* Safari, Android, iOS */
       url('../font/roboto-v29-latin-italic.svg#Roboto') format('svg'); /* Legacy iOS */
}

body{
  font-family: 'Roboto', sans-serif;
  font-weight: 300;
  background-color: #f1f1f1;
  font-size: 15px;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
  font-weight: 400;
}
.fw-bold {
  font-weight: 500!important;
}
.flash-alert {
  position: fixed;
  top: 10px;
  right: 10px;
  display: block;
  max-width: 269px;
  z-index:99999999;
}
.pointer{
  cursor: pointer;
}

.pagination {
  justify-content: center;
}
.pagination li {
padding: 4px 10px;
}
.pagination li.active {
background: #e8e8e8;
border-radius: 5px;
}
nav{
  z-index: 99999;
}
.logo{
  max-height: 60px;
  width: auto;
}
.homepage {
  position: relative;
  margin-top: -134px;
}
.hero {
  min-height: 85vh;
  position: relative;
}

.hero-background {
  position: absolute; 
  top: 0; 
  left: 0;
  width: 100%;
  height: 100%; 
  background-image: url(../images/bizlisting_bg.jpg);
  background-size: cover;
  z-index: -1;
}

.hero::after {
  position: absolute;
  display: block;
  content: '';
  background-color: #00000070;
  width: 100%;
  height: 100%;
  top:0;
  z-index: 0; 
}

.hero-content {
  position:relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 85vh;
  z-index:1;
}

.hero-content > div {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  margin-bottom: 2rem;
}

.hero-content > div > a {
  margin: 1rem;
}
.cat-icon {
  display:inline-block;
  padding:4px 8px;
}
.cat-icon img {
  max-height: 32px;
}
.no-border-radius {
  border-radius: 0;
}

.category_name{
  position: absolute;
  top:16px;
  right:16px;
}

.logo-container{
  min-height: 250px;
  max-height: 250px;
  max-width: 100%;
  overflow: hidden;
}

.logo-container img{
  width: 100%;
}

.listing-details a{
  text-decoration: none;
  color: #212529;
}
.listing-details .listing-logo{
  max-width: 150px;
}

.contact-details:hover{
  background-color: #eeeeee !important;
}

.star_rating {
  --percent: calc(var(--rating) / 5 * 100%);
  display: inline-block;
  font-size: 25px;
  line-height: 1;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
}
.star_rating::before {
  content: "\f005 \f005 \f005 \f005 \f005";
  letter-spacing: 3px;
  background: linear-gradient(90deg, #fc0 var(--percent), #ccc var(--percent));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.listing-description h1{
  font-size: 22px !important;
  margin-top: 10px !important;
  margin-bottom: 10px !important;
}
.listing-description h2{
  font-size: 20px !important;
  margin-top: 10px !important;
  margin-bottom: 10px !important;
}
.listing-description h3{
  font-size: 18px !important;
  margin-top: 10px !important;
  margin-bottom: 10px !important;
}
.listing-description h4,.listing-description h5,.listing-description h6{
  font-size: 16px !important;
  margin-top: 10px !important;
  margin-bottom: 10px !important;
}

.listing-images img{
  max-height: 180px;
}

.video-player{
  width:100%;
  min-height: 400px;
}

.offer-bg{
  background-size: cover;
  background-position: center;
  min-height: 250px;
}

.ribbon {
  position: absolute;
  right: -5px;
  top: -5px;
  z-index: 0;
  overflow: hidden;
  width: 75px;
  height: 75px;
  text-align: right;
}
.ribbon span {
  font-size: 14px;
  font-weight: bold;
  color: #FFF;
  text-transform: uppercase;
  letter-spacing: 1px;
  text-align: center;
  line-height: 29px;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  width: 100px;
  display: block;
  position: absolute;
  top: 11px;
  right: -25px;
}
.ribbon span.offer {
  background: #198754;
}
.ribbon span.offer::before {
  content: "";
  position: absolute;
  left: 0px;
  top: 100%;
  z-index: -1;
  border-left: 3px solid #0e6d40;
  border-right: 3px solid transparent;
  border-bottom: 3px solid transparent;
  border-top: 3px solid #0e6d40;
}
.ribbon span.offer::after {
  content: "";
  position: absolute;
  right: 0px;
  top: 100%;
  z-index: -1;
  border-left: 3px solid transparent;
  border-right: 3px solid #0e6d40;
  border-bottom: 3px solid transparent;
  border-top: 3px solid #0e6d40;
}


/* Rating Star Widgets Style */
.rating-stars ul {
  list-style-type:none;
  padding:0;
  -moz-user-select:none;
  -webkit-user-select:none;
}
.rating-stars ul > li.star {
  display:inline-block;
  
}

.rating-stars ul > li.star > i {
  font-size:1.5rem; 
  color:#ccc; 
}

.rating-stars ul > li.star.hover > i {
  color:#FFCC36;
}

.rating-stars ul > li.star.selected > i {
  color:#FFCC36;
}

.yellow-star {
  color: #FFCC36;
}
.grey-star {
  color: #ccc;
}

.userCircle {
  display: inline-block;
  line-height: 0px;
  border-radius: 50%;
  border: 3px solid #0ab34d;
  font-size: 18px;
  color: #ffffff;
  background: #198754;
}

.userCircle span {
  display: inline-block;
  padding-top: 50%;
  padding-bottom: 50%;
  margin-left: 10px;
  margin-right: 10px;
}
.wrap-content {
  max-height: 72px;
  overflow: hidden;
}

/* Homepage hero – keep the category icons clear of the navbar on small
   screens. The desktop layout pulls .homepage up by a fixed -134px and
   uses a fixed 85vh hero with vertically-centred content; on short mobile
   navbars that dragged the top row of category icons up under the
   Register / Sign In bar. Below lg we reduce the pull and top-align the
   hero content with enough padding to clear the navbar. The padding uses
   !important only to beat Bootstrap's .p-4 utility on .hero-content. */
@media (max-width: 991.98px){
  /* The homepage navbar is transparent so it overlays the hero on desktop.
     On mobile the expanded menu drops below the hero onto the light body
     background, hiding the white logo and light text. Give it a solid dark
     background while the collapsible menu is in use. */
  .home-hero-nav{ background-color: var(--bl-dark, #14181f); }
  .homepage{ margin-top: -70px; }
  .hero-content{
    height: auto;
    min-height: 82vh;
    justify-content: flex-start;
    padding-top: 90px !important;
    padding-bottom: 28px !important;
  }
  .hero-content > div{ margin-bottom: 1.25rem; }
  .hero-content > div > a{ margin: 0.5rem; }
}
@media only screen and (max-width: 600px){
  .logo{
    max-height: 44px;
    width: auto;
  }
  .homepage{ margin-top: -60px; }
  .hero-content{ padding-top: 84px !important; }
  /* Category icons as a balanced grid: exactly 3 per row (6 icons => 2 rows
     of 3). A centred max-width keeps them as a tidy block instead of
     spreading edge to edge. */
  .hero-content > div{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.85rem 0.5rem;
    justify-items: center;
    align-items: center;
    max-width: 300px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1.25rem;
  }
  .hero-content > div > a{ margin: 0; }
  .cat-icon img{ max-height: 40px; }
}

/* ==========================================================================
   Visual refresh — brand palette, navbar, hero, cards, footer.
   Appended after the rules above so it wins on equal specificity; relies on
   the shared tokens defined in theme.css (loaded just before this file).
   ========================================================================== */

body{
  background-color: var(--bl-bg, #f6f7f9);
}

/* ---- navbar ---- */
nav.navbar.bg-dark{
  background: linear-gradient(180deg, var(--bl-dark, #14181f) 0%, var(--bl-dark-2, #1c222b) 100%) !important;
  box-shadow: 0 2px 16px rgba(0,0,0,.2);
  padding-top: .65rem;
  padding-bottom: .65rem;
}
.home-hero-nav{
  padding-top: .75rem;
  padding-bottom: .75rem;
}
/* Transparent-to-hero gradient only applies once the navbar sits over the
   hero image on desktop. Below 992px the collapsed menu drops below the
   hero onto a solid background (see the max-width:991.98px rule above) —
   this must not override that or the expanded mobile menu becomes
   unreadable against the hero photo. */
@media (min-width: 992px){
  .home-hero-nav{
    background: linear-gradient(180deg, rgba(20,24,31,.6) 0%, rgba(20,24,31,0) 100%);
  }
}
.navbar-dark .navbar-nav .nav-link{
  color: rgba(255,255,255,.85);
  font-weight: 500;
  position: relative;
  transition: color .18s ease;
}
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus{
  color: #fff;
}
.navbar-dark .navbar-nav .nav-link.active{
  color: #fff;
}
.navbar-dark .navbar-nav .nav-link.active::after{
  content: '';
  position: absolute;
  left: .5rem;
  right: .5rem;
  bottom: -2px;
  height: 2px;
  border-radius: 2px;
  background: var(--bl-gold, #e9a400);
}
.navbar-brand .logo{
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.25));
}

/* ---- mobile offcanvas nav ---- */
.bl-offcanvas{
  width: min(320px, 86vw);
  background: linear-gradient(180deg, var(--bl-dark, #14181f) 0%, var(--bl-dark-2, #1c222b) 100%);
  color: #fff;
}
.bl-offcanvas .offcanvas-header{
  border-bottom: 1px solid rgba(255,255,255,.1);
  padding: 1rem 1.25rem;
}
.bl-offcanvas .offcanvas-body{
  padding: .5rem 1.1rem 1.5rem;
}
.bl-offcanvas .btn-close{
  filter: invert(1) grayscale(1);
  opacity: .75;
}
.bl-offcanvas .btn-close:hover{ opacity: 1; }
.bl-offcanvas .navbar-nav{
  flex-direction: column;
  align-items: stretch !important;
}
.bl-offcanvas .nav-item{ width: 100%; }
.bl-offcanvas .nav-link{
  color: rgba(255,255,255,.85);
  padding: .8rem .1rem !important;
  border-bottom: 1px solid rgba(255,255,255,.08);
  font-size: 1rem;
}
.bl-offcanvas .nav-link:hover,
.bl-offcanvas .nav-link:focus{
  color: #fff;
}
.bl-offcanvas .nav-item:last-child .nav-link{ border-bottom: none; }
.bl-offcanvas .dropdown-menu{
  position: static !important;
  inset: auto !important;
  transform: none !important;
  float: none;
  width: 100%;
  max-height: none !important;
  margin: 0 0 .35rem;
  padding: 0 0 0 .85rem;
  background: transparent;
  border: none;
  box-shadow: none;
  animation: none;
}
.bl-offcanvas .dropdown-item{
  color: rgba(255,255,255,.72);
  padding: .55rem .5rem;
  border-radius: .4rem;
}
.bl-offcanvas .dropdown-item:hover,
.bl-offcanvas .dropdown-item:focus,
.bl-offcanvas .dropdown-item.active{
  background: rgba(255,255,255,.08);
  color: #fff;
}
.bl-offcanvas .dropdown-header{ color: rgba(255,255,255,.4); }
.bl-offcanvas .dropdown-divider{ border-color: rgba(255,255,255,.1); }
.bl-offcanvas .bl-mega{ padding: 0; }
.bl-offcanvas .bl-mega-parent{ color: rgba(255,255,255,.88) !important; }
.bl-offcanvas .bl-mega-parent:hover{ color: var(--bl-gold, #e9a400) !important; }
.bl-offcanvas .bl-mega-child{ color: rgba(255,255,255,.6) !important; }
.bl-offcanvas .bl-mega-child:hover{ color: #fff !important; }
.bl-offcanvas .bl-header-search{ margin: 0 0 1rem !important; }
.bl-offcanvas .bl-header-search .form-control{ background: #fff; }
.bl-offcanvas .btn-warning,
.bl-offcanvas .btn-outline-light{
  width: 100%;
  margin-top: .5rem;
  text-align: center;
}
.bl-offcanvas hr{ border-color: rgba(255,255,255,.12); }

/* ---- hero ---- */
.hero::after{
  background: linear-gradient(180deg, rgba(18,21,27,.45) 0%, rgba(18,21,27,.82) 80%);
}
.hero-content h1{
  color: #fff;
  font-weight: 700 !important;
  text-shadow: 0 2px 12px rgba(0,0,0,.35);
}
.hero-content p.lead{
  color: rgba(255,255,255,.9);
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.cat-icon{
  display: inline-block;
  transition: transform .18s ease;
}
.cat-icon:hover{
  transform: translateY(-3px);
}

/* Search bar: turn the disconnected inputs into one clean, elevated pill. */
#search-form .row.justify-content-center{
  background: #fff;
  border-radius: var(--bl-radius-lg, 1.25rem);
  box-shadow: var(--bl-shadow-lg, 0 20px 48px rgba(0,0,0,.16));
  padding: .4rem;
}
#search-form .form-control.no-border-radius,
#search-form .form-select.no-border-radius{
  border: none;
  box-shadow: none;
  background: transparent;
  border-radius: .6rem !important;
}
#search-form .form-control.no-border-radius:focus,
#search-form .form-select.no-border-radius:focus{
  background: var(--bl-gold-light, #fdf3dc);
}
#search-form .btn.no-border-radius{
  border-radius: .6rem !important;
}
@media (min-width: 768px){
  #search-form .row.justify-content-center > div + div{
    border-left: 1px solid var(--bl-border, #e6e8ec);
  }
}

/* ---- listing cards & panels (.bg-light.shadow) ---- */
.logo-container{
  background: #fafafa;
  border: 1px solid var(--bl-border, #e6e8ec);
  border-radius: .6rem;
}
.bg-light.shadow h2 a:hover,
.bg-light.shadow h2 a:focus{
  color: var(--bl-success, #198754) !important;
}
.wrap-content{
  max-height: none;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  color: var(--bl-muted, #6b7280);
  line-height: 1.5;
}
.star_rating::before{
  background: linear-gradient(90deg, var(--bl-gold, #e9a400) var(--percent), #d9dce1 var(--percent));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ---- breadcrumb trail ---- */
.bl-breadcrumb{
  margin-bottom: .75rem;
}
.bl-breadcrumb .breadcrumb{
  margin-bottom: 0;
  padding: 0;
  background: transparent;
  font-size: .82rem;
}

/* ---- footer ---- */
footer.bg-dark{
  background-color: var(--bl-dark, #14181f) !important;
  border-top: 3px solid var(--bl-gold, #e9a400);
}
footer h5{
  color: #fff;
  font-weight: 600;
  position: relative;
}
footer .nav-link{
  transition: color .16s ease, transform .16s ease;
  display: inline-block;
}
footer .nav-link:hover{
  color: var(--bl-gold, #e9a400) !important;
  transform: translateX(2px);
}
footer .border-bottom,
footer .border-top{
  border-color: rgba(255,255,255,.12) !important;
}
footer .btn-outline-light:hover{
  color: var(--bl-dark, #14181f);
}

/* ---- homepage sections ---- */
.bl-section{ margin-top: 3.5rem; }
.bl-section-head{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
.bl-section-head h2{ margin-bottom: .25rem; }
.bl-section-head p{ color: var(--bl-muted, #6b7280); margin-bottom: 0; }
.bl-section-link{
  font-weight: 600;
  color: var(--bl-success, #198754);
  text-decoration: none;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}
.bl-section-link:hover{ color: var(--bl-success-dark, #0f6b3f); }

/* ---- stats strip (overlaps the hero bottom edge) ---- */
.bl-stats{
  background: #fff;
  border: 1px solid var(--bl-border, #e6e8ec);
  border-radius: var(--bl-radius-lg, 1.25rem);
  box-shadow: var(--bl-shadow, 0 6px 20px rgba(20,24,31,.08));
  margin-top: -48px;
  position: relative;
  z-index: 2;
  padding: 1.75rem 1rem;
}
.bl-stat{ text-align: center; }
.bl-stat .bl-stat-num{
  font-size: 2rem;
  font-weight: 700;
  color: var(--bl-ink, #1b1f27);
  display: block;
  line-height: 1.1;
}
.bl-stat .bl-stat-label{ color: var(--bl-muted, #6b7280); font-size: .85rem; }
.bl-stat{ border-left: 1px solid var(--bl-border, #e6e8ec); }
.bl-stat:first-child{ border-left: none; }
@media (max-width: 767.98px){
  .bl-stat{ border-left: none; border-top: 1px solid var(--bl-border, #e6e8ec); padding-top: 1rem; margin-top: 1rem; }
  .bl-stat:first-child{ border-top: none; padding-top: 0; margin-top: 0; }
}

/* ---- category cards ---- */
.bl-cat-card{
  display: flex;
  align-items: center;
  gap: .85rem;
  background: #fff;
  border: 1px solid var(--bl-border, #e6e8ec);
  border-radius: var(--bl-radius, .75rem);
  padding: 1rem 1.1rem;
  text-decoration: none;
  height: 100%;
  transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.bl-cat-card:hover{
  box-shadow: var(--bl-shadow, 0 6px 20px rgba(20,24,31,.08));
  transform: translateY(-3px);
  border-color: #d8dce3;
}
.bl-cat-card .bl-cat-icon{
  width: 44px;
  height: 44px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bl-gold-light, #fdf3dc);
  color: var(--bl-gold-dark, #b98000);
  font-size: 1.15rem;
}
.bl-cat-card .bl-cat-name{ font-weight: 600; color: var(--bl-ink, #1b1f27); display: block; }

/* ---- "how it works" steps ---- */
.bl-step{ text-align: center; padding: 0 .5rem; }
.bl-step .bl-step-icon{
  width: 64px;
  height: 64px;
  border-radius: 50%;
  margin: 0 auto .9rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bl-dark, #14181f);
  color: #fff;
  font-size: 1.5rem;
  box-shadow: var(--bl-shadow, 0 6px 20px rgba(20,24,31,.08));
}
.bl-step h3{ font-size: 1.05rem; margin-bottom: .4rem; }
.bl-step p{ color: var(--bl-muted, #6b7280); font-size: .9rem; margin-bottom: 0; }

/* ---- trust / info cards ---- */
.bl-info-card{
  background: #fff;
  border: 1px solid var(--bl-border, #e6e8ec);
  border-radius: var(--bl-radius-lg, 1.25rem);
  padding: 2rem;
  height: 100%;
}
.bl-info-card h3{ display: flex; align-items: center; gap: .6rem; }
.bl-info-card h3 i{
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--bl-gold-light, #fdf3dc); color: var(--bl-gold-dark, #b98000);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.1rem; flex-shrink: 0;
}

/* ---- CTA band ---- */
.bl-cta-band{
  background: linear-gradient(135deg, var(--bl-dark, #14181f) 0%, var(--bl-dark-2, #1c222b) 100%);
  border-radius: var(--bl-radius-lg, 1.25rem);
  padding: 2.75rem 2rem;
  color: #fff;
  position: relative;
  overflow: hidden;
  text-align: center;
}
.bl-cta-band::after{
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(circle at 85% 20%, rgba(233,164,0,.25), transparent 60%);
}
.bl-cta-band > *{ position: relative; z-index: 1; }
.bl-cta-band h2{ color: #fff; }
.bl-cta-band p{ color: rgba(255,255,255,.75); }

/* ---- FAQ accordion ---- */
.accordion-button{ font-weight: 600; color: var(--bl-ink, #1b1f27); }
.accordion-button:not(.collapsed){
  color: var(--bl-success, #198754);
  background-color: var(--bl-gold-light, #fdf3dc);
}
.accordion-button:focus{
  box-shadow: 0 0 0 .2rem rgba(233,164,0,.18);
  border-color: var(--bl-gold, #e9a400);
}
.accordion-item{ border-color: var(--bl-border, #e6e8ec); }

/* ---- listing detail page ---- */
.bl-profile-card{
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  background: var(--bl-surface, #fff);
  border: 1px solid var(--bl-border, #e6e8ec);
  border-radius: var(--bl-radius-lg, 1.25rem);
  box-shadow: var(--bl-shadow-sm, 0 1px 3px rgba(0,0,0,.06));
  padding: 1.5rem;
  margin: .5rem 0 1rem;
}
.bl-profile-logo{
  width: 140px;
  height: 140px;
  flex-shrink: 0;
  border: 1px solid var(--bl-border, #e6e8ec);
  border-radius: var(--bl-radius, .75rem);
  background: #fafafa;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.bl-profile-logo img{ max-width: 100%; max-height: 100%; object-fit: contain; padding: .75rem; }
.bl-profile-info{ flex: 1; min-width: 240px; }
.bl-profile-rating{ display: flex; align-items: center; gap: .65rem; text-decoration: none; }
.bl-profile-score{
  background: var(--bl-ink, #1b1f27);
  color: #fff;
  font-weight: 700;
  font-size: 1.15rem;
  padding: .3rem .6rem;
  border-radius: .5rem;
  text-decoration: none;
}
.bl-profile-meta{ margin-top: .85rem; color: var(--bl-body, #3c4250); font-size: .92rem; }
.bl-profile-meta > div{ display: flex; align-items: center; gap: .5rem; padding: .2rem 0; }
.bl-profile-meta a{ color: inherit; text-decoration: none; }
.bl-profile-meta a:hover{ color: var(--bl-success, #198754); }

.bl-quick-actions{
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-bottom: 1.75rem;
}

.bl-contact-chip{
  display: flex;
  align-items: center;
  gap: .6rem;
  background: var(--bl-surface, #fff);
  border: 1px solid var(--bl-border, #e6e8ec);
  border-radius: var(--bl-radius, .75rem);
  padding: .85rem 1rem;
  text-decoration: none;
  color: var(--bl-ink, #1b1f27);
  font-weight: 500;
  height: 100%;
  transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.bl-contact-chip:hover{
  color: var(--bl-ink, #1b1f27);
  box-shadow: var(--bl-shadow, 0 6px 20px rgba(20,24,31,.08));
  transform: translateY(-2px);
  border-color: #d8dce3;
}
.bl-contact-chip i{
  width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--bl-gold-light, #fdf3dc); color: var(--bl-gold-dark, #b98000);
}

.bl-amenity{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: var(--bl-surface, #fff);
  border: 1px solid var(--bl-border, #e6e8ec);
  border-radius: 999px;
  padding: .5rem 1rem;
  font-size: .88rem;
  color: var(--bl-body, #3c4250);
}
.bl-amenity i{ color: var(--bl-success, #198754); }

.bl-side-card{
  background: var(--bl-surface, #fff);
  border: 1px solid var(--bl-border, #e6e8ec);
  border-radius: var(--bl-radius-lg, 1.25rem);
  box-shadow: var(--bl-shadow-sm, 0 1px 3px rgba(0,0,0,.06));
  padding: 1.5rem;
}
.bl-side-card + .bl-side-card{ margin-top: 1.25rem; }
.bl-side-card h2, .bl-side-card h3{
  display: flex; align-items: center; gap: .6rem;
  margin-bottom: 1rem;
}
.bl-side-card h2 i, .bl-side-card h3 i{
  width: 32px; height: 32px; border-radius: 50%;
  background: var(--bl-gold-light, #fdf3dc); color: var(--bl-gold-dark, #b98000);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: .95rem; flex-shrink: 0;
}
.bl-side-card .row.py-2{ border-bottom: 1px solid var(--bl-border, #e6e8ec); margin: 0; }
.bl-side-card .row.py-2:last-child{ border-bottom: none; }
.bl-side-card .row.py-2.bl-today{ font-weight: 600; color: var(--bl-success, #198754); }

.bl-review-card{
  background: var(--bl-surface, #fff);
  border: 1px solid var(--bl-border, #e6e8ec);
  border-radius: var(--bl-radius, .75rem);
  box-shadow: var(--bl-shadow-sm, 0 1px 3px rgba(0,0,0,.06));
  padding: 1.1rem;
  margin: 1rem 0;
}

/* ---- long-form SEO/CMS content card (category, location & topic pages) ---- */
.bl-content-card{
  background: var(--bl-surface, #fff);
  border: 1px solid var(--bl-border, #e6e8ec);
  border-radius: var(--bl-radius-lg, 1.25rem);
  box-shadow: var(--bl-shadow-sm, 0 1px 3px rgba(0,0,0,.06));
  padding: 2rem;
  color: var(--bl-body, #3c4250);
  line-height: 1.65;
}
.bl-content-card > *:first-child{ margin-top: 0; }
.bl-content-card h2{ margin-top: 0; margin-bottom: 1rem; }
.bl-content-card h3{
  margin-top: 2rem;
  margin-bottom: .75rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--bl-border, #e6e8ec);
  font-size: 1.15rem;
}
.bl-content-card h3:first-of-type{ border-top: none; padding-top: 0; margin-top: 1.25rem; }
.bl-content-card p{ margin-bottom: 1rem; }
.bl-content-card p:last-child{ margin-bottom: 0; }
.bl-content-card ul,
.bl-content-card ol{ margin-bottom: 1rem; padding-left: 1.25rem; }
.bl-content-card a{ font-weight: 500; }

/* ---- results page header ---- */
.bl-results-head{ margin-bottom: 1.5rem; }
.bl-results-head h1{ margin-bottom: .25rem; }
.bl-results-head p{ color: var(--bl-muted, #6b7280); margin-bottom: 0; }

/* ---- landing page hero band (dark gradient, left-aligned variant of .bl-cta-band) ---- */
.bl-hero-band{
  background: linear-gradient(135deg, var(--bl-dark, #14181f) 0%, var(--bl-dark-2, #1c222b) 100%);
  border-radius: var(--bl-radius-lg, 1.25rem);
  padding: 2.5rem;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.bl-hero-band::after{
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(circle at 90% 10%, rgba(233,164,0,.22), transparent 55%);
}
.bl-hero-band > *{ position: relative; z-index: 1; }
.bl-hero-band h1, .bl-hero-band h2, .bl-hero-band h3{ color: #fff; }
.bl-hero-band .bl-stat-num{ color: var(--bl-gold, #e9a400); }
.bl-hero-band .small{ color: rgba(255,255,255,.7); }
.bl-hero-band p:not(.small){ color: rgba(255,255,255,.9); }

/* ---- benefit cards ---- */
.bl-benefit-card{
  background: var(--bl-surface, #fff);
  border: 1px solid var(--bl-border, #e6e8ec);
  border-radius: var(--bl-radius-lg, 1.25rem);
  box-shadow: var(--bl-shadow-sm, 0 1px 3px rgba(0,0,0,.06));
  padding: 1.75rem;
  height: 100%;
  transition: box-shadow .18s ease, transform .18s ease;
}
.bl-benefit-card:hover{ box-shadow: var(--bl-shadow, 0 6px 20px rgba(20,24,31,.08)); transform: translateY(-3px); }
.bl-benefit-card .bl-benefit-icon{
  width: 52px; height: 52px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--bl-gold-light, #fdf3dc); color: var(--bl-gold-dark, #b98000);
  font-size: 1.3rem; margin-bottom: 1rem;
}
.bl-benefit-card h3{ font-size: 1.05rem; }
.bl-benefit-card p{ color: var(--bl-muted, #6b7280); font-size: .9rem; margin-bottom: 0; }

/* ---- trust strip ---- */
.bl-trust{
  background: var(--bl-surface, #fff);
  border: 1px solid var(--bl-border, #e6e8ec);
  border-radius: var(--bl-radius-lg, 1.25rem);
  box-shadow: var(--bl-shadow-sm, 0 1px 3px rgba(0,0,0,.06));
  padding: 2rem;
}
.bl-trust-item{ text-align: center; padding: 0 .5rem; }
.bl-trust-item i{
  width: 48px; height: 48px; border-radius: 50%; margin: 0 auto .75rem;
  display: flex; align-items: center; justify-content: center;
  background: rgba(25,135,84,.1); color: var(--bl-success, #198754); font-size: 1.2rem;
}
.bl-trust-item .fw-bold{ color: var(--bl-ink, #1b1f27); }

/* ---- category index: grouped category card ---- */
.bl-cat-group{
  background: var(--bl-surface, #fff);
  border: 1px solid var(--bl-border, #e6e8ec);
  border-radius: var(--bl-radius-lg, 1.25rem);
  box-shadow: var(--bl-shadow-sm, 0 1px 3px rgba(0,0,0,.06));
  padding: 1.25rem 1.35rem;
  height: 100%;
  transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.bl-cat-group:hover{
  box-shadow: var(--bl-shadow, 0 6px 20px rgba(20,24,31,.08));
  transform: translateY(-3px);
  border-color: #d8dce3;
}
.bl-cat-group-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  text-decoration: none;
  padding-bottom: .85rem;
  margin-bottom: .35rem;
  border-bottom: 1px solid var(--bl-border, #e6e8ec);
}
.bl-cat-group-title{ display: flex; align-items: center; gap: .65rem; min-width: 0; }
.bl-cat-group-name{
  font-weight: 600;
  color: var(--bl-ink, #1b1f27);
  font-size: 1rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bl-cat-group-count{
  background: var(--bl-ink, #1b1f27);
  color: #fff;
  font-size: .72rem;
  font-weight: 600;
  padding: .22rem .55rem;
  border-radius: 999px;
  flex-shrink: 0;
}
.bl-cat-group ul{ list-style: none; padding: 0; margin: 0; }
.bl-cat-group li{ padding: .3rem 0; font-size: .87rem; }
.bl-cat-group li a{ color: var(--bl-body, #3c4250); text-decoration: none; }
.bl-cat-group li a:hover{ color: var(--bl-success, #198754); }
.bl-cat-group li .text-muted{ font-size: .78rem; }