.cbvsb-header {
  margin: 0 0 28px;
}

.cbvsb-header-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 240px;
  gap: 22px;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 18px;
  padding: 22px;
  box-shadow: 0 8px 24px rgba(0,0,0,.05);
}

.cbvsb-title {
  margin: 0 0 8px;
  line-height: 1.15;
}

.cbvsb-subtitle {
  margin-bottom: 12px;
  opacity: .8;
}

.cbvsb-badge {
  margin: 0 0 12px;
}

.cbvsb-bio {
  line-height: 1.7;
}

.cbvsb-bio p:last-child {
  margin-bottom: 0;
}

.cbvsb-header-side {
  display: flex;
  flex-direction: column;
  gap: 14px;
  justify-content: flex-start;
}

.cbvsb-stat {
  background: rgba(0,0,0,.03);
  border-radius: 14px;
  padding: 14px 16px;
}

.cbvsb-stat-num {
  display: block;
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
}

.cbvsb-stat-label {
  display: block;
  margin-top: 6px;
  opacity: .75;
}

.cbvsb-meta {
  font-size: 14px;
  line-height: 1.5;
}

.cbvsb-actions {
  margin-top: auto;
}

.cbvsb-btn {
  display: inline-block;
  padding: 10px 14px;
  border-radius: 10px;
  text-decoration: none !important;
  line-height: 1.2;
  transition: .2s ease;
  border: 1px solid rgba(0,0,0,.10);
}

.cbvsb-btn:hover {
  transform: translateY(-1px);
}

.cbvsb-btn-primary {
  background: #0f172a;
  color: #fff !important;
  border-color: #0f172a;
}

.cbvsb-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  align-items: stretch;
}

.cbvsb-cols-1,
.cbvsb-cols-2,
.cbvsb-cols-3,
.cbvsb-cols-4,
.cbvsb-cols-5,
.cbvsb-cols-6 {
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
}

.cbvsb-card {
  background: rgba(255,255,255,.98);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0,0,0,.05);
  display: flex;
  flex-direction: column;
}

.cbvsb-card-image {
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: rgba(0,0,0,.03);
  cursor: zoom-in;
}

.cbvsb-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .25s ease;
  cursor: zoom-in;
}

.cbvsb-card:hover .cbvsb-card-image img {
  transform: scale(1.03);
}

.cbvsb-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 10px 11px 12px;
}

.cbvsb-card-title {
  margin: 0 0 5px;
  font-size: 16px;
  line-height: 1.22;
}

.cbvsb-card-title a {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 5px;
  color: inherit;
  text-decoration: none !important;
  transition: color .18s ease;
}

.cbvsb-card-title a:hover,
.cbvsb-card-title a:focus-visible {
  color: #1769aa;
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 3px;
}

.cbvsb-card-title a:focus-visible {
  border-radius: 4px;
  outline: 2px solid rgba(23,105,170,.35);
  outline-offset: 3px;
}

.cbvsb-card-title-arrow {
  flex: 0 0 auto;
  color: #1769aa;
  font-size: 20px;
  font-weight: 800;
  line-height: .9;
}

.cbvsb-card-price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 40px;
  margin-top: auto;
  position: relative;
}

.cbvsb-minimum-popover{position:absolute;right:0;bottom:48px;z-index:30;width:max-content;max-width:min(230px,calc(100vw - 32px));padding:9px 10px;border:1px solid rgba(23,105,170,.35);border-radius:10px;background:#fff;box-shadow:0 7px 24px rgba(0,0,0,.18);font-size:13px;line-height:1.3;color:#26384a}
.cbvsb-minimum-popover[hidden]{display:none!important}
.cbvsb-minimum-confirm{display:flex;align-items:center;gap:7px;margin-top:6px;padding:5px 8px;border:0;border-radius:7px;background:#e8f5ec;color:#176b31;font:inherit;font-weight:700;cursor:pointer}
.cbvsb-minimum-confirm-mark{display:inline-grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#27833e;color:#fff}
.cbvsb-minimum-single{display:block;margin:4px 0 0!important;color:#526575;font-size:14px;line-height:1.35}

.cbvsb-card-price {
  margin: 0;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.15;
}

.cbvsb-card-cart {
  box-sizing: border-box;
  display: inline-flex;
  flex: 0 0 40px;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  overflow: hidden;
  border: 1px solid rgba(23,105,170,.24);
  border-radius: 10px;
  background: rgba(23,105,170,.08);
  color: #1769aa !important;
  font-size: 18px;
  line-height: 1;
  text-decoration: none !important;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.cbvsb-card-cart svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.cbvsb-card-cart:hover,
.cbvsb-card-cart:focus-visible {
  border-color: #1769aa;
  background: rgba(23,105,170,.15);
  transform: translateY(-1px);
}

.cbvsb-card-cart:focus-visible {
  outline: 2px solid rgba(23,105,170,.35);
  outline-offset: 2px;
}

.cbvsb-card-cart.loading {
  opacity: .55;
  pointer-events: none;
}

.cbvsb-card-cart.added {
  border-color: #27833e;
  background: rgba(39,131,62,.13);
}

.cbvsb-card-cart.is-disabled {
  border-color: rgba(0,0,0,.10);
  background: rgba(0,0,0,.04);
  color: #777 !important;
  cursor: not-allowed;
  opacity: .55;
}

.cbvsb-card-price-row > .added_to_cart {
  display: none !important;
}

.cbvsb-card-actions {
  margin-top: auto;
}

.cbvsb-notice {
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(0,0,0,.04);
  border: 1px solid rgba(0,0,0,.06);
}

.cbvsb-pagination {
  margin-top: 24px;
}

.cbvsb-pagination ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.cbvsb-pagination a,
.cbvsb-pagination span {
  display: inline-block;
  min-width: 38px;
  text-align: center;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,.08);
  text-decoration: none !important;
  background: #fff;
}

.cbvsb-pagination .current {
  font-weight: 700;
  background: rgba(0,0,0,.06);
}

@media (max-width: 1080px) {
  .cbvsb-grid,
  .cbvsb-cols-1,
  .cbvsb-cols-2,
  .cbvsb-cols-3,
  .cbvsb-cols-4,
  .cbvsb-cols-5,
  .cbvsb-cols-6 {
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  }
}

@media (max-width: 767px) {
  .cbvsb-container {
    width: min(100%, calc(100vw - 28px));
  }

  .cbvsb-header-inner {
    grid-template-columns: 1fr;
    padding: 18px;
  }

  .cbvsb-grid,
  .cbvsb-cols-1,
  .cbvsb-cols-2,
  .cbvsb-cols-3,
  .cbvsb-cols-4,
  .cbvsb-cols-5,
  .cbvsb-cols-6 {
    grid-template-columns: 1fr;
  }

  .cbvsb-card-title {
    font-size: 16px;
  }

  .cbvsb-stat-num {
    font-size: 24px;
  }
}

/*
 * One product-grid/card system for /all-coralbay-uk/, its normal product
 * categories and seller storefronts. Catalogue loops now render the same
 * .cbvsb-card markup used by seller pages.
 */
body.cbvsb-all-catalogue ul.products.cbvsb-catalogue-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)) !important;
  align-items: stretch;
  gap: 16px;
  margin: 0 !important;
}

body.cbvsb-all-catalogue ul.products.cbvsb-catalogue-grid::before,
body.cbvsb-all-catalogue ul.products.cbvsb-catalogue-grid::after {
  display: none !important;
  content: none !important;
}

body.cbvsb-all-catalogue ul.products.cbvsb-catalogue-grid li.product.cbvsb-catalogue-loop-item,
body.cbvsb-all-catalogue ul.products.cbvsb-catalogue-grid li.product-category {
  float: none !important;
  clear: none !important;
  width: auto !important;
  min-width: 0;
  height: 100%;
  margin: 0 !important;
  padding: 0 !important;
}

body.cbvsb-all-catalogue ul.products li.product.cbvsb-catalogue-loop-item .cbvsb-card {
  height: 100%;
}

body.cbvsb-all-catalogue ul.products li.product.cbvsb-catalogue-loop-item .cbvsb-card-image {
  margin: 0 !important;
}

body.cbvsb-all-catalogue ul.products li.product.cbvsb-catalogue-loop-item .cbvsb-card-image img {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover;
}

/* Keep WooCommerce subcategories in the mixed grid and present them as cards. */
body.cbvsb-all-catalogue ul.products.cbvsb-catalogue-grid li.product-category > a {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  color: #222;
  background: #fff;
  border: 1px solid rgba(20, 35, 55, 0.10);
  border-radius: 18px;
  box-shadow: 0 7px 22px rgba(20, 35, 55, 0.08);
  text-decoration: none !important;
  transition: transform 160ms ease, box-shadow 160ms ease;
}

body.cbvsb-all-catalogue ul.products.cbvsb-catalogue-grid li.product-category > a:hover,
body.cbvsb-all-catalogue ul.products.cbvsb-catalogue-grid li.product-category > a:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(20, 35, 55, 0.13);
}

body.cbvsb-all-catalogue ul.products.cbvsb-catalogue-grid li.product-category img {
  display: block;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1;
  margin: 0 !important;
  border-radius: 0 !important;
  object-fit: cover;
}

body.cbvsb-all-catalogue ul.products.cbvsb-catalogue-grid li.product-category .woocommerce-loop-category__title {
  margin: 0 !important;
  padding: 12px 14px 14px !important;
  color: #222 !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
}

body.cbvsb-all-catalogue ul.products.cbvsb-catalogue-grid li.product-category .count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  margin-left: 4px;
  padding: 0 6px;
  color: #1769aa;
  background: #eef7ff;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}

.cbvsb-card-vendor {
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.35;
  color: #555;
}

.cbvsb-card-vendor span {
  margin-right: 4px;
}

.cbvsb-card-vendor a {
  color: #1769aa;
  text-decoration: none !important;
}

.cbvsb-card-vendor a:hover,
.cbvsb-card-vendor a:focus-visible {
  text-decoration: underline !important;
  text-underline-offset: 2px;
}

/* Remove Divi's archive sidebar so category grids use the catalogue width. */
body.tax-product_cat.cbvsb-all-catalogue #left-area {
  width: 100% !important;
  padding-right: 0 !important;
}

body.tax-product_cat.cbvsb-all-catalogue #sidebar,
body.tax-product_cat.cbvsb-all-catalogue #main-content .container::before {
  display: none !important;
}

body.tax-product_cat.cbvsb-all-catalogue #main-content > .container {
  width: min(1600px, calc(100vw - 48px));
  max-width: 1600px;
}

body.tax-product_cat.cbvsb-all-catalogue .woocommerce-products-header__title.page-title {
  margin: 0 0 12px;
  color: #222;
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 700;
  line-height: 1.15;
}

@media (min-width: 1200px) {
  body.cbvsb-all-catalogue ul.products.cbvsb-catalogue-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 767px) {
  body.cbvsb-all-catalogue ul.products.cbvsb-catalogue-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px;
  }

  body.cbvsb-all-catalogue ul.products li.product.cbvsb-catalogue-loop-item .cbvsb-card {
    border-radius: 14px;
  }

  body.cbvsb-all-catalogue ul.products.cbvsb-catalogue-grid li.product-category > a {
    border-radius: 14px;
  }

  body.cbvsb-all-catalogue ul.products.cbvsb-catalogue-grid li.product-category .woocommerce-loop-category__title {
    padding: 9px 9px 11px !important;
    font-size: 15px !important;
  }

  body.cbvsb-all-catalogue ul.products li.product.cbvsb-catalogue-loop-item .cbvsb-card-body {
    padding: 9px 9px 11px;
  }

  body.tax-product_cat.cbvsb-all-catalogue #main-content > .container {
    width: min(100%, calc(100vw - 28px));
  }
}

.cbvsb-catalogue-gallery-sources {
  display: none !important;
}

/* Keep price typography identical in both product-card renderers. */
.cbvsb-card-price,
.cbvsb-card-price .amount,
.cbvsb-card-price bdi,
.cbvsb-all-catalogue .cbvsb-catalogue-price-row .price,
.cbvsb-all-catalogue .cbvsb-catalogue-price-row .price .amount,
.cbvsb-all-catalogue .cbvsb-catalogue-price-row .price bdi,
.cbvsb-all-catalogue .cbvsb-catalogue-price-row .price ins {
  color: #2f2f2f !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  opacity: 1;
}

@media (min-width: 1200px) {
  body.cbvsb-vendor-store-page .cbvsb-container {
    width: 81.787205vw;
    max-width: none;
  }

  body.cbvsb-vendor-store-page .cbvsb-grid,
  body.cbvsb-vendor-store-page .cbvsb-cols-1,
  body.cbvsb-vendor-store-page .cbvsb-cols-2,
  body.cbvsb-vendor-store-page .cbvsb-cols-3,
  body.cbvsb-vendor-store-page .cbvsb-cols-4,
  body.cbvsb-vendor-store-page .cbvsb-cols-5,
  body.cbvsb-vendor-store-page .cbvsb-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  body.cbvsb-vendor-store-page .cbvsb-grid,
  body.cbvsb-vendor-store-page .cbvsb-cols-1,
  body.cbvsb-vendor-store-page .cbvsb-cols-2,
  body.cbvsb-vendor-store-page .cbvsb-cols-3,
  body.cbvsb-vendor-store-page .cbvsb-cols-4,
  body.cbvsb-vendor-store-page .cbvsb-cols-5,
  body.cbvsb-vendor-store-page .cbvsb-cols-6 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  body.cbvsb-vendor-store-page .cbvsb-card {
    border-radius: 14px;
  }

  body.cbvsb-vendor-store-page .cbvsb-card-body {
    padding: 9px 9px 11px;
  }

  body.cbvsb-vendor-store-page .cbvsb-card-title {
    font-size: 15px;
  }

  .cbvsb-all-catalogue .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .cbvsb-all-catalogue .woocommerce ul.products li.product .cbvsb-catalogue-price-row .price,
  .cbvsb-card-price,
  .cbvsb-card-price .amount,
  .cbvsb-card-price bdi,
  .cbvsb-all-catalogue .cbvsb-catalogue-price-row .price .amount,
  .cbvsb-all-catalogue .cbvsb-catalogue-price-row .price bdi,
  .cbvsb-all-catalogue .cbvsb-catalogue-price-row .price ins {
    font-size: 15px !important;
  }
}

.cbvsb-container {
  width: min(1600px, calc(100vw - 48px));
  max-width: 1600px;
  margin: 32px auto;
  padding: 0;
  box-sizing: border-box;
}

.cbvsb-vendor-page {
  margin-left: 50%;
  transform: translateX(-50%);
}

.cbvsb-vendor-store-wrap,
.cbvsb-vendor-store-main {
  width: 100%;
}


.cbvsb-breadcrumbs {
  margin: 0 0 18px;
}

.cbvsb-breadcrumbs-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 12px 16px;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  box-shadow: 0 6px 18px rgba(0,0,0,.04);
}

.cbvsb-breadcrumbs-item {
  display: inline-flex;
  align-items: center;
  font-size: 15px;
  line-height: 1.4;
  font-weight: 400;
}

.cbvsb-breadcrumbs-item + .cbvsb-breadcrumbs-item::before {
  content: '›';
  opacity: .5;
  margin-right: 10px;
  font-weight: 400;
}

.cbvsb-breadcrumbs a {
  text-decoration: none !important;
}

.cbvsb-breadcrumbs .is-current span {
  opacity: .8;
}

.cbvsb-vendor-product-page .cbvsb-breadcrumbs {
  margin: 0 0 22px;
}

@media (max-width: 767px) {
  .cbvsb-breadcrumbs-list {
    padding: 11px 14px;
    gap: 6px 8px;
  }

  .cbvsb-breadcrumbs-item {
    font-size: 14px;
  }

  .cbvsb-breadcrumbs-item + .cbvsb-breadcrumbs-item::before {
    margin-right: 8px;
  }
}


.cbvsb-breadcrumbs {
  display: block;
  width: 100%;
  clear: both;
  margin: 0 0 18px;
}

.cbvsb-breadcrumbs-list {
  width: 100%;
  box-sizing: border-box;
  gap: 9px 12px;
  padding: 14px 18px;
  border-radius: 16px;
}

.cbvsb-breadcrumbs-item {
  font-size: 16px;
  line-height: 1.45;
}

.cbvsb-breadcrumbs-item + .cbvsb-breadcrumbs-item::before {
  margin-right: 12px;
}

.cbvsb-vendor-product-page .cbvsb-breadcrumbs,
.cbvsb-vendor-category-page .cbvsb-breadcrumbs {
  margin: 0 0 24px;
}

.cbvsb-vendor-category-page .woocommerce-products-header {
  margin-bottom: 10px;
}

@media (max-width: 767px) {
  .cbvsb-breadcrumbs-list {
    padding: 12px 14px;
  }

  .cbvsb-breadcrumbs-item {
    font-size: 14px;
  }
}


/* Final overrides: single-product breadcrumb box */
.single-product nav.cbvsb-breadcrumbs,
.cbvsb-vendor-product-page nav.cbvsb-breadcrumbs{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  clear:both !important;
  float:none !important;
  margin:0 0 24px !important;
}
.single-product nav.cbvsb-breadcrumbs ol.cbvsb-breadcrumbs-list,
.cbvsb-vendor-product-page nav.cbvsb-breadcrumbs ol.cbvsb-breadcrumbs-list{
  display:flex !important;
  width:100% !important;
  box-sizing:border-box !important;
  padding:14px 18px !important;
  margin:0 !important;
  border-radius:16px !important;
}
.single-product nav.cbvsb-breadcrumbs li.cbvsb-breadcrumbs-item,
.cbvsb-vendor-product-page nav.cbvsb-breadcrumbs li.cbvsb-breadcrumbs-item{
  font-size:16px !important;
  line-height:1.45 !important;
}

/* CBVSB SEO intro blocks */
.cbvsb-seo-intro{
  margin:0 0 18px;
}
.cbvsb-seo-intro p{
  margin:0;
  opacity:.82;
  line-height:1.6;
}
.cbvsb-seo-title{
  margin:0 0 6px;
  line-height:1.2;
}
.cbvsb-seo-intro-category{
  margin:0 0 18px;
}
.cbvsb-seo-intro-product{
  margin:0 0 14px;
}



/* CBVSB product image lightbox — matches Community Corals / Marine Marketplace */
.cbvsb-lightbox{
  position:fixed;
  inset:0;
  z-index:2147483000;
  display:none;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  padding:110px 18px 24px;
}
.cbvsb-lightbox.is-open{
  display:flex;
  align-items:center;
  justify-content:center;
}
.cbvsb-lightbox-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.78);
  touch-action:none;
}
.cbvsb-lightbox-inner{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  width:auto;
  max-width:min(1100px,94vw);
  max-height:calc(100vh - 150px);
  margin:0;
  background:rgba(255,255,255,.06);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 18px 44px rgba(0,0,0,.45);
  touch-action:none;
}
.cbvsb-lightbox-img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:calc(100vh - 150px);
  border-radius:0;
  object-fit:contain;
  background:#000;
  box-shadow:0 18px 60px rgba(0,0,0,.55);
  transform-origin:center center;
  will-change:transform;
  touch-action:none;
}
.cbvsb-lightbox-close{
  position:absolute;
  top:8px;
  right:10px;
  z-index:4;
  width:40px;
  height:40px;
  border-radius:999px;
  border:none;
  font-size:26px;
  line-height:40px;
  cursor:pointer;
  background:rgba(0,0,0,.48);
  color:#fff;
  padding:0;
}
.cbvsb-lightbox-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  width:46px;
  height:58px;
  border:0;
  border-radius:14px;
  background:rgba(0,0,0,.48);
  color:#fff;
  font-size:42px;
  line-height:54px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
}
.cbvsb-lightbox-prev{left:10px;}
.cbvsb-lightbox-next{right:10px;}
.cbvsb-lightbox-nav[hidden]{display:none!important;}
html.cbvsb-lightbox-open,
body.cbvsb-lightbox-open{overscroll-behavior:none;}
.cbvsb-lightbox.is-open{overscroll-behavior:contain;touch-action:none;}
@media(max-width:760px){
  .cbvsb-lightbox{padding:14px;}
  .cbvsb-lightbox-img{max-height:88vh;}
  .cbvsb-lightbox-nav{display:flex!important;width:38px;height:48px;border-radius:12px;font-size:34px;line-height:44px;background:rgba(0,0,0,.55);}
  .cbvsb-lightbox-prev{left:6px;}
  .cbvsb-lightbox-next{right:6px;}
  .cbvsb-lightbox-nav[hidden]{display:none!important;}
}
@media(min-width:1024px){
  .cbvsb-lightbox{padding:150px 28px 44px;}
  .cbvsb-lightbox-inner{max-width:min(1000px,88vw);max-height:calc(100vh - 210px);max-height:calc(100dvh - 210px);}
  .cbvsb-lightbox-img{max-height:calc(100vh - 210px);max-height:calc(100dvh - 210px);}
}

/* CBVSB vendor directory */
.cb-vendor-directory{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:14px;
}
.cb-vendor-card{
  display:grid;
  grid-template-columns:56px minmax(0,1fr);
  gap:12px;
  align-items:center;
  padding:12px 13px;
  border:1px solid rgba(0,0,0,.08);
  border-radius:16px;
  background:rgba(255,255,255,.97);
  box-shadow:0 6px 18px rgba(0,0,0,.04);
  text-decoration:none !important;
  min-height:84px;
}
.cb-vendor-card:hover{
  transform:translateY(-1px);
}
.cb-vendor-card__media{
  width:56px;
  height:56px;
}
.cb-vendor-card__photo,
.cb-vendor-card__placeholder{
  width:56px;
  height:56px;
  border-radius:12px;
  display:block;
}
.cb-vendor-card__photo{
  object-fit:cover;
  background:rgba(0,0,0,.04);
}
.cb-vendor-card__placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-size:20px;
  background:rgba(0,0,0,.06);
}
.cb-vendor-card__body{
  min-width:0;
}
.cb-vendor-card__name{
  font-size:16px;
  line-height:1.15;
  font-weight:700;
  margin:0 0 3px;
}
.cb-vendor-card__location{
  font-size:12px;
  line-height:1.3;
  opacity:.78;
  margin:0 0 4px;
}
.cb-vendor-card__bio{
  display:none;
}
.cb-vendor-card__meta{
  font-size:12px;
  font-weight:600;
  opacity:.8;
  margin:0;
}
.cbvsb-account-fields{
  margin:1.8em 0 0;
  padding:1.2em 1.2em .4em;
  border:1px solid rgba(0,0,0,.08);
  border-radius:14px;
}
.cbvsb-account-fields legend{
  padding:0 .35em;
  font-weight:700;
}
.cbvsb-account-fields span{
  display:block;
  margin-top:6px;
  font-size:13px;
  opacity:.78;
}
.cbvsb-account-note{
  margin:0 0 1em;
  font-size:14px;
  opacity:.85;
}

@media (max-width: 980px){
  .cb-vendor-directory{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
}
@media (max-width: 640px){
  .cb-vendor-directory{
    grid-template-columns:1fr;
  }
  .cb-vendor-card{
    grid-template-columns:52px minmax(0,1fr);
    gap:10px;
    padding:11px 12px;
    min-height:76px;
  }
  .cb-vendor-card__media,
  .cb-vendor-card__photo,
  .cb-vendor-card__placeholder{
    width:52px;
    height:52px;
  }
  .cb-vendor-card__placeholder{
    font-size:18px;
  }
  .cb-vendor-card__name{
    font-size:15px;
  }
  .cb-vendor-card__location,
  .cb-vendor-card__meta{
    font-size:11px;
  }
}


/* CBVSB vendor profile readiness */
.cbvsb-vendor-readiness{
  margin:0 0 1em;
  padding:14px 16px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.08);
  background:rgba(0,0,0,.03);
}
.cbvsb-vendor-readiness strong{
  display:block;
  margin:0 0 8px;
}
.cbvsb-vendor-readiness ul{
  margin:0;
  padding-left:18px;
}
.cbvsb-vendor-readiness.is-complete{
  background:rgba(10,140,50,.08);
  border-color:rgba(10,140,50,.18);
}
.cbvsb-vendor-readiness.is-incomplete{
  background:rgba(180,120,0,.08);
  border-color:rgba(180,120,0,.2);
}



/* CBVSB Edit Account seller profile */
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-account-section{
  width:100%;
  margin:32px 0 0;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-account-section__title{
  margin:0 0 6px;
  font-size:28px;
  line-height:1.15;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-account-section__intro{
  margin:0 0 20px;
  line-height:1.6;
  opacity:.82;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-account-block{
  width:100%;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-account-block--spaced{
  margin-top:28px;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-account-block__title{
  margin:0 0 12px;
  font-size:20px;
  line-height:1.2;
  font-weight:700;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-form-row{
  width:100% !important;
  display:block !important;
  float:none !important;
  clear:both !important;
  margin:0 0 18px !important;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-form-row label{
  display:block !important;
  margin:0 0 6px !important;
  font-weight:700;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-form-row .input-text,
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-form-row input[type="text"],
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-form-row input[type="email"],
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-form-row input[type="number"],
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-form-row textarea{
  width:100% !important;
  max-width:100% !important;
  display:block !important;
  float:none !important;
  margin:0 !important;
  box-sizing:border-box;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-form-row textarea{
  min-height:110px;
  resize:vertical;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-help{
  display:block;
  margin-top:6px;
  font-size:13px;
  line-height:1.5;
  opacity:.76;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-account-block--readiness{
  padding-top:6px;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-readiness-text{
  margin:0;
  line-height:1.6;
  font-weight:600;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-readiness-list{
  margin:12px 0 0;
  padding-left:20px;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-readiness-list li{
  margin:4px 0;
}


/* ===== UI tuning (size + spacing + labels) ===== */
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-account-section__title{
  font-size:24px;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-account-block__title{
  font-size:18px;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-form-row{
  margin:0 0 14px !important;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-form-row label{
  font-weight:600 !important;
  font-size:14px;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-help{
  font-size:12px;
  margin-top:4px;
}
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-form-row textarea{
  min-height:80px;
}
.woocommerce-account .woocommerce-EditAccountForm #cbvsb_private_address{
  min-height:70px !important;
}

/* clickable readiness links */
.woocommerce-account .woocommerce-EditAccountForm .cbvsb-jump{
  text-decoration:underline;
  cursor:pointer;
}

/* small smooth scroll */



/* ===== Final compact + upload tuning ===== */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm .input-text,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type="text"],
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type="email"],
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type="number"],
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type="password"],
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm textarea{
  padding: 8px 10px !important;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm textarea{
  min-height: 74px !important;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm #cbvsb_private_address{
  min-height: 54px !important;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm .cbvsb-form-row{
  margin: 0 0 12px !important;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm .cbvsb-account-block--spaced{
  margin-top: 18px !important;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm .cbvsb-help{
  font-size: 11px !important;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm .cbvsb-photo-preview{
  margin: 0 0 10px;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm .cbvsb-photo-preview img{
  width: 88px;
  height: 88px;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,.08);
  display: block;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm .cbvsb-file-input{
  padding: 7px 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm #pv_shop_name,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm #cbvsb_public_location,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm #cbvsb_public_bio,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm #cbvsb_private_address,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm #cbvsb_private_phone,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm #cbvsb_private_email{
  scroll-margin-top: 220px;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-EditAccountForm .cbvsb-target-flash{
  outline: 2px solid rgba(59,130,246,.55);
  box-shadow: 0 0 0 4px rgba(59,130,246,.12);
}

/* product pagination */
.cbvsb-per-page-form {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #f6f8fb;
  border: 1px solid #dbe4ee;
  border-radius: 999px;
  padding: 8px 14px;
  color: #243746;
  font-weight: 600;
  margin: 0;
}

.cbvsb-per-page-form label,
.cbvsb-per-page-suffix {
  font-size: 14px;
  line-height: 1;
}

.cbvsb-per-page-form select {
  appearance: none;
  border: 1px solid #dbe4ee;
  background: #fff;
  color: #243746;
  border-radius: 999px;
  padding: 8px 14px;
  font-weight: 700;
  font-size: 14px;
  line-height: 1.2;
  cursor: pointer;
}

.cbvsb-per-page-row {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 18px;
}




/* CBVSB context navigation */
.cbvsb-breadcrumbs-secondary .cbvsb-breadcrumbs-list{
  background:rgba(255,255,255,.88);
  border-style:dashed;
  box-shadow:none;
}
.cbvsb-breadcrumbs-secondary .cbvsb-breadcrumbs-item{
  font-weight:500;
}
.cbvsb-context-switch{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin:0 0 18px;
  padding:12px 16px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(0,0,0,.08);
  border-radius:14px;
  box-shadow:0 6px 18px rgba(0,0,0,.04);
}
.cbvsb-context-switch__label{
  font-size:14px;
  font-weight:700;
  opacity:.78;
}
.cbvsb-context-switch__links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.cbvsb-context-switch__link{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:8px 12px;
  border:1px solid rgba(0,0,0,.08);
  border-radius:10px;
  background:#fff;
  text-decoration:none !important;
  line-height:1.2;
}
@media (max-width: 767px){
  .cbvsb-context-switch{
    padding:11px 14px;
    gap:8px;
  }
  .cbvsb-context-switch__label{
    width:100%;
  }
}


/* Breadcrumb prominence */
.cbvsb-breadcrumbs-primary .cbvsb-breadcrumbs-list{
  background:rgba(255,255,255,.98);
  border-color:rgba(0,0,0,.12);
  box-shadow:0 8px 24px rgba(0,0,0,.05);
}
.cbvsb-breadcrumbs-secondary{
  margin-top:-6px;
}
.cbvsb-breadcrumbs-secondary .cbvsb-breadcrumbs-list{
  background:rgba(255,255,255,.88);
  border-color:rgba(0,0,0,.06);
  box-shadow:0 4px 14px rgba(0,0,0,.03);
}

/* Context switch */
.cbvsb-context-switch{
  display:flex;
  flex-wrap:wrap;
  gap:8px 10px;
  align-items:center;
  margin:0 0 18px;
  padding:0 2px;
}
.cbvsb-context-switch__label{
  font-weight:700;
  opacity:.78;
}
.cbvsb-context-switch__links{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.cbvsb-context-switch__link{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(0,0,0,.08);
  text-decoration:none !important;
  line-height:1.2;
}

/* Category pills */
.cbvsb-per-page-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 0 18px;
  flex-wrap:wrap;
}
.cbvsb-category-pills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.cbvsb-category-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:9px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(0,0,0,.09);
  box-shadow:0 4px 12px rgba(0,0,0,.03);
  font-weight:700;
  line-height:1.1;
  text-decoration:none !important;
}
.cbvsb-category-pill.is-active{
  background:#0f172a;
  color:#fff !important;
  border-color:#0f172a;
}
.woocommerce .cbvsb-category-pills{
  margin:0 0 18px;
}
.cbvsb-vendor-category-page .cbvsb-category-pills,
.tax-product_cat .cbvsb-category-pills{
  margin:0 0 18px;
}
.cbvsb-per-page-form{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
@media (max-width: 767px){
  .cbvsb-per-page-row{
    align-items:flex-start;
  }
  .cbvsb-per-page-form{
    margin-left:0;
  }
}






/* =========================================
   Final breadcrumb / context styling
   Single source of truth
   ========================================= */

/* Base nav wrappers */
nav.cbvsb-breadcrumbs {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  clear: both !important;
  float: none !important;
  margin: 0 0 10px !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

nav.cbvsb-breadcrumbs .cbvsb-breadcrumbs-list {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 14px 18px !important;
  list-style: none !important;
  box-sizing: border-box !important;
  border-radius: 16px !important;
  gap: 9px 12px !important;
}

nav.cbvsb-breadcrumbs .cbvsb-breadcrumbs-item {
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 16px !important;
  line-height: 1.45 !important;
  font-weight: 400 !important;
}

nav.cbvsb-breadcrumbs .cbvsb-breadcrumbs-item a,
nav.cbvsb-breadcrumbs .cbvsb-breadcrumbs-item span {
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.45 !important;
  text-decoration: none !important;
}

nav.cbvsb-breadcrumbs .cbvsb-breadcrumbs-item + .cbvsb-breadcrumbs-item::before {
  content: '›';
  opacity: .5;
  margin-right: 12px;
  font-weight: 400;
}

/* Top/current context row */
nav.cbvsb-breadcrumbs.cbvsb-breadcrumbs-primary {
  margin-bottom: 8px !important;
}
nav.cbvsb-breadcrumbs.cbvsb-breadcrumbs-primary .cbvsb-breadcrumbs-list {
  background: #eef3f7 !important;
  border: 1px solid rgba(0,0,0,.10) !important;
  box-shadow: 0 6px 18px rgba(0,0,0,.05) !important;
}
nav.cbvsb-breadcrumbs.cbvsb-breadcrumbs-primary .cbvsb-breadcrumbs-item.is-current span {
  font-weight: 700 !important;
  opacity: 1 !important;
}

/* Bottom/alternate context row */
nav.cbvsb-breadcrumbs.cbvsb-breadcrumbs-secondary {
  margin-top: 0 !important;
  margin-bottom: 14px !important;
}
nav.cbvsb-breadcrumbs.cbvsb-breadcrumbs-secondary .cbvsb-breadcrumbs-list {
  background: #fafafa !important;
  border: 1px solid rgba(0,0,0,.05) !important;
  box-shadow: 0 4px 12px rgba(0,0,0,.03) !important;
}
nav.cbvsb-breadcrumbs.cbvsb-breadcrumbs-secondary .cbvsb-breadcrumbs-item {
  font-weight: 500 !important;
}

/* Context switch row (sitewide/vendor switch) */
.cbvsb-context-switch {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  width: 100% !important;
  margin: 0 0 14px !important;
  padding: 8px 14px !important;
  box-sizing: border-box !important;
  background: #fafafa !important;
  border: 1px solid rgba(0,0,0,.05) !important;
  border-radius: 16px !important;
  box-shadow: 0 4px 12px rgba(0,0,0,.03) !important;
}
.cbvsb-context-switch__label {
  display:none !important;
}
.cbvsb-context-switch__links {
  display: flex !important;
  flex: 1 1 auto !important;
  align-items: center !important;
  justify-content: flex-start !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  min-width: 0 !important;
}
.cbvsb-context-switch__link {
  display: inline-flex !important;
  align-items: center !important;
  white-space: nowrap !important;
  line-height: 1.2 !important;
  padding: 8px 12px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(0,0,0,.08) !important;
  text-decoration: none !important;
}

@media (max-width: 767px) {
  nav.cbvsb-breadcrumbs .cbvsb-breadcrumbs-list {
    padding: 12px 14px !important;
  }
  nav.cbvsb-breadcrumbs .cbvsb-breadcrumbs-item {
    font-size: 14px !important;
  }
  .cbvsb-context-switch {
    padding: 8px 12px !important;
  }
  .cbvsb-context-switch__links {
    flex-wrap: nowrap !important;
  }
  .cbvsb-context-switch__link {
    max-width: 100% !important;
  }
}






/* ===============================
   PRIMARY BREADCRUMB (TOP)
   =============================== */
nav.cbvsb-breadcrumbs-primary .cbvsb-breadcrumbs-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;

  padding: 10px 14px;
  border-radius: 14px;

  background: #eef3f7;
  border: 1px solid rgba(0,0,0,0.10);
  box-shadow: 0 6px 18px rgba(0,0,0,0.04);
}

/* Items */
nav.cbvsb-breadcrumbs-primary .cbvsb-breadcrumbs-item {
  color: #1f2937;
  font-size: 14px;
}

nav.cbvsb-breadcrumbs-primary .cbvsb-breadcrumbs-item a {
  color: #1f2937;
  text-decoration: none;
}

/* Current */
nav.cbvsb-breadcrumbs-primary .cbvsb-breadcrumbs-item.is-current span {
  font-weight: 700;
  color: #111827;
}

/* Separator */
nav.cbvsb-breadcrumbs-primary .cbvsb-breadcrumbs-item + .cbvsb-breadcrumbs-item::before {
  content: "›";
  margin: 0 6px;
  opacity: 0.5;
}


/* ===============================
   SECONDARY BREADCRUMB (NO PILL!)
   =============================== */
nav.cbvsb-breadcrumbs-secondary {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}

nav.cbvsb-breadcrumbs-secondary .cbvsb-breadcrumbs-list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;

  padding: 4px 2px;
  border-radius: 0;

  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* Items */
nav.cbvsb-breadcrumbs-secondary .cbvsb-breadcrumbs-item {
  font-size: 13px;
  color: #6b7280;
}

nav.cbvsb-breadcrumbs-secondary .cbvsb-breadcrumbs-item a {
  color: #6b7280;
  text-decoration: none;
}

/* Current */
nav.cbvsb-breadcrumbs-secondary .cbvsb-breadcrumbs-item.is-current span {
  font-weight: 500;
  color: #4b5563;
}

/* Separator */
nav.cbvsb-breadcrumbs-secondary .cbvsb-breadcrumbs-item + .cbvsb-breadcrumbs-item::before {
  content: "›";
  margin: 0 5px;
  opacity: 0.4;
}


/* ===============================
   CONTEXT SWITCH (FLAT, LIKE SECONDARY CRUMBS)
   =============================== */
.cbvsb-context-switch {
  display: flex !important;
  align-items: center !important;
  gap: 0 !important;

  padding: 4px 2px !important;
  margin: 0 !important;
  border-radius: 0 !important;

  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}

.cbvsb-context-switch__link {
  display: inline !important;
  padding: 0 !important;
  margin: 0 !important;

  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;

  font-size: 13px !important;
  line-height: 1.4 !important;
  color: #5f6b7a !important;
  text-decoration: none !important;
}



/* Top breadcrumb — only first item bold */
.cbvsb-breadcrumbs-primary 
.cbvsb-breadcrumbs-item:first-child > a,
.cbvsb-breadcrumbs-primary 
.cbvsb-breadcrumbs-item:first-child > span {
  font-weight: 700;
}

.cbvsb-product-contact-wrap {
  margin: 10px 0 14px;
}

.cbvsb-product-contact-trigger {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 12px;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 999px;
  background: #fff;
  color: #2ea3f2;
  font-size: 14px;
  line-height: 1.2;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(0,0,0,.03);
}

.cbvsb-product-contact-trigger:hover,
.cbvsb-product-contact-trigger:focus {
  background: rgba(46, 163, 242, .05);
  border-color: rgba(46, 163, 242, .35);
}

.cbvsb-product-contact-icon {
  font-size: 14px;
  line-height: 1;
}

.cbvsb-modal-open {
  overflow: hidden;
}

.cbvsb-modal[hidden] {
  display: none !important;
}

.cbvsb-modal {
  position: fixed;
  inset: 0;
  z-index: 99999;
}

.cbvsb-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .45);
}

.cbvsb-modal-dialog {
  position: relative;
  width: min(92vw, 520px);
  margin: 8vh auto 0;
  background: #fff;
  border-radius: 18px;
  padding: 24px 22px 20px;
  box-shadow: 0 18px 50px rgba(0,0,0,.22);
}

.cbvsb-modal-close {
  position: absolute;
  top: 10px;
  right: 12px;
  border: 0;
  background: transparent;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
  color: rgba(0,0,0,.55);
}

.cbvsb-modal-dialog h3 {
  margin: 0 28px 8px 0;
}

.cbvsb-modal-intro {
  margin: 0 0 16px;
  font-size: 14px;
  opacity: .8;
}

.cbvsb-product-contact-form .cbvsb-field {
  margin: 0 0 12px;
}

.cbvsb-product-contact-form label {
  display: block;
  margin: 0 0 5px;
  font-size: 14px;
  font-weight: 600;
}

.cbvsb-product-contact-form input,
.cbvsb-product-contact-form textarea {
  width: 100%;
  border: 1px solid rgba(0,0,0,.14);
  border-radius: 10px;
  padding: 10px 12px;
  background: #fff;
}

.cbvsb-field-honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.cbvsb-product-contact-status {
  min-height: 22px;
  margin: 4px 0 8px;
  font-size: 14px;
}

.cbvsb-product-contact-status.is-error {
  color: #b42318;
}

.cbvsb-product-contact-status.is-success {
  color: #067647;
}

.cbvsb-product-contact-status.is-success::before {
  content: "\2713";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  margin-right: 7px;
  border-radius: 999px;
  background: #e9f8ef;
  font-weight: 800;
}

.cbvsb-conversation-link {
  display: block;
  width: max-content;
  margin-top: 12px;
  padding: 9px 14px;
  border-radius: 999px;
  background: #2ea3f2;
  color: #fff !important;
  font-weight: 700;
  text-decoration: none !important;
}

.cbvsb-contact-privacy {
  margin: -2px 0 12px;
  color: #65758a;
  font-size: 13px;
}

.cbvsb-product-contact-form.is-sent .cbvsb-field,
.cbvsb-product-contact-form.is-sent .cbvsb-contact-privacy,
.cbvsb-product-contact-form.is-sent .cbvsb-product-contact-actions {
  display: none;
}

.cbvsb-product-contact-status.is-sending {
  color: rgba(0,0,0,.68);
}

.cbvsb-product-contact-actions {
  margin: 0;
}

.cbvsb-product-contact-submit.button {
  min-width: 160px;
}

@media (max-width: 767px) {
  .cbvsb-modal-dialog {
    width: min(94vw, 520px);
    margin-top: 6vh;
    padding: 20px 18px 18px;
  }

  .cbvsb-product-contact-wrap {
    margin: 8px 0 12px;
  }
}


.cbvsb-stat-review .cbvsb-stat-actions {
  margin-top: 10px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.cbvsb-btn-ghost {
  background: #fff;
  color: #27435e !important;
  border-color: rgba(39,67,94,.12);
}

.cbvsb-btn-sm {
  padding: 8px 10px;
  font-size: 13px;
}

.cbvsb-stat-num-empty {
  opacity: .5;
}

.cbvsb-reviews-page {
  display: grid;
  gap: 22px;
}

.cbvsb-reviews-summary-card,
.cbvsb-review-card,
.cbvsb-review-form-wrap {
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(0,0,0,.05);
}

.cbvsb-reviews-summary-card {
  padding: 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.cbvsb-reviews-summary-score {
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
}

.cbvsb-reviews-summary-meta {
  margin-top: 6px;
  opacity: .8;
}

.cbvsb-reviews-summary-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.cbvsb-reviews-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: 22px;
  align-items: start;
}

.cbvsb-section-title {
  margin: 0 0 14px;
}

.cbvsb-reviews-list {
  display: grid;
  gap: 16px;
}

.cbvsb-review-card {
  padding: 18px;
}

.cbvsb-review-card-head {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.cbvsb-review-rating {
  font-size: 18px;
  letter-spacing: .04em;
}

.cbvsb-review-meta {
  display: flex;
  flex-direction: column;
  text-align: right;
  font-size: 14px;
}

.cbvsb-review-title {
  margin: 0 0 8px;
  font-size: 18px;
}

.cbvsb-review-content p:last-child {
  margin-bottom: 0;
}

.cbvsb-review-form-wrap {
  padding: 18px;
}

.cbvsb-review-form p {
  margin: 0 0 14px;
}

.cbvsb-review-form label {
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
}

.cbvsb-review-form input[type="text"],
.cbvsb-review-form input[type="email"],
.cbvsb-review-form select,
.cbvsb-review-form textarea {
  width: 100%;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 10px;
  padding: 10px 12px;
  background: #fff;
}

.cbvsb-review-form textarea {
  min-height: 150px;
  resize: vertical;
}

.cbvsb-review-form-note {
  font-size: 14px;
  opacity: .8;
}

.cbvsb-honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

@media (max-width: 767px) {
  .cbvsb-stat-review .cbvsb-stat-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .cbvsb-reviews-summary-card,
  .cbvsb-reviews-layout {
    grid-template-columns: 1fr;
    display: grid;
  }

  .cbvsb-reviews-summary-card {
    gap: 14px;
  }

  .cbvsb-review-card-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .cbvsb-review-meta {
    text-align: left;
  }
}

/* Single product gallery: CBVSB owns enlargement; suppress WooCommerce native zoom/lightbox UI. */
body.single-product .woocommerce-product-gallery__trigger{display:none!important;}
body.single-product .woocommerce-product-gallery .zoomImg{display:none!important;}
/* Match CoralBay catalogue cards: product photos advertise enlargement with the zoom-in cursor. */
body.single-product .woocommerce-product-gallery__image a,
body.single-product .woocommerce-product-gallery__image a img{cursor:zoom-in!important;}


/* Single-product buyer reassurance: delivery + collection + useful stock depth. */
.single-product .cbvsb-product-availability{
  margin:18px 0 12px;
  padding:14px 16px;
  border:1px solid #d9e4ec;
  border-radius:12px;
  background:#f7fafc;
  color:#263746;
  line-height:1.4;
}
.single-product .cbvsb-product-availability__badge{
  display:inline-block;
  margin:0 0 9px;
  padding:4px 10px;
  border-radius:999px;
  background:#e6f3ff;
  color:#1675b8;
  font-size:12px;
  font-weight:700;
  line-height:1.25;
}
.single-product .cbvsb-product-availability__heading{
  display:block;
  margin:0 0 5px;
  font-size:15px;
  line-height:1.3;
  color:#24323d;
}
.single-product .cbvsb-product-availability__stock{
  margin:0 0 3px;
  font-size:14px;
  font-weight:700;
  color:#467300;
}
.single-product .cbvsb-product-availability__stock.is-out{color:#a33b30}
.single-product .cbvsb-product-availability__detail{
  font-size:13px;
  color:#53636f;
}
.single-product .stock.cbvsb-stock-duplicate-hidden{display:none!important}
