.cbp-category-layout {
  margin-bottom: 30px;
}

.cbp-title {
  margin: 24px 0 16px;
  line-height: 1.25;
}

.cbp-text {
  margin: 0 0 24px;
  line-height: 1.7;
}

.cbp-image-block {
  margin: 24px 0;
}

.cbp-image {
  display: block;
  max-width: 100%;
  height: auto;
}

.cbp-products {
  margin: 24px 0;
}

.cbp-visual-filters-title {
  margin: 24px 0 18px;
}

.cbp-visual-filters-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.cbp-visual-filter-group {
  padding: 16px;
  border: 1px solid #e5e5e5;
  background: #fff;
}

.cbp-visual-filter-name {
  font-size: 16px;
  margin: 0 0 12px;
}

.cbp-visual-filter-values {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.cbp-visual-filter-value {
  display: inline-flex;
  padding: 6px 10px;
  border: 1px solid #ddd;
  border-radius: 20px;
  font-size: 13px;
  background: #f8f8f8;
  color: inherit;
  text-decoration: none;
}

.cbp-visual-filter-value:hover {
  text-decoration: none;
}

.cbp-visual-filter-value.is-active {
  border-color: #25b9d7;
  background: #eefaff;
  font-weight: 600;
}

.cbp-faceted-wrapper {
  margin: 30px 0;
  width: 100%;
  max-width: 100%;
}

/* ==========================================================
   Category Builder Pro - Faceted Search layout
   Le module Facettes génère :
   #search_filters > .facets-wrapper > .facet
   La grille doit donc être appliquée sur .facets-wrapper.
   ========================================================== */

.cbp-faceted-wrapper #search_filters {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
}

.cbp-faceted-wrapper #search_filters > p,
.cbp-faceted-wrapper #search_filters > h4,
.cbp-faceted-wrapper #search_filters > .facet-title,
.cbp-faceted-wrapper #search_filters > .js-search-filters-clear-all,
.cbp-faceted-wrapper #search_filters > .clear-all-wrapper {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
}

.cbp-faceted-wrapper #search_filters > .facets-wrapper {
  display: grid !important;
  width: 100% !important;
  max-width: 100% !important;
  gap: 24px !important;
  align-items: start !important;
  grid-auto-flow: row !important;
}

.cbp-faceted-wrapper #search_filters > .facets-wrapper > .facet,
.cbp-faceted-wrapper #search_filters > .facets-wrapper > section.facet {
  display: block !important;
  float: none !important;
  clear: none !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

.cbp-filters-cols-1 #search_filters > .facets-wrapper,
.cbp-faceted-cols-1 #search_filters > .facets-wrapper {
  grid-template-columns: minmax(0, 1fr) !important;
}

.cbp-filters-cols-2 #search_filters > .facets-wrapper,
.cbp-faceted-cols-2 #search_filters > .facets-wrapper {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.cbp-filters-cols-3 #search_filters > .facets-wrapper,
.cbp-faceted-cols-3 #search_filters > .facets-wrapper {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.cbp-filters-cols-4 #search_filters > .facets-wrapper,
.cbp-faceted-cols-4 #search_filters > .facets-wrapper {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.cbp-faceted-wrapper #search_filters .facet.clear-all,
.cbp-faceted-wrapper #search_filters .clear-all-wrapper,
.cbp-faceted-wrapper #search_filters .js-search-filters-clear-all {
  grid-column: 1 / -1 !important;
}

.cbp-filter-title-active,
.cbp-faceted-wrapper .cbp-filter-active {
  font-weight: 600;
}

.cbp-category-layout.cbp-is-loading {
  opacity: 0.55;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

body.cbp-hide-native-products section#products > #js-product-list {
  display: none !important;
}

/* Le bandeau bas contient souvent tri/pagination : il doit toujours rester visible. */
body.cbp-hide-native-products section#products > #js-product-list-bottom {
  display: block !important;
}

body.cbp-hide-sort-order-banner section#products > #js-product-list-top,
body.cbp-hide-sort-order-banner #js-product-list-top.products-selection {
  display: none !important;
}

/* Même quand la bannière haute est masquée, la barre basse reste visible. */
body.cbp-hide-sort-order-banner section#products > #js-product-list-bottom,
body.cbp-hide-sort-order-banner #js-product-list-bottom.products-selection {
  display: block !important;
}

body.cbp-hide-native-products .cbp-category-layout #js-product-list {
  display: block !important;
}

@media (max-width: 991px) {
  .cbp-faceted-wrapper #search_filters > .facets-wrapper {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 767px) {
  .cbp-visual-filters-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575px) {
  .cbp-faceted-wrapper #search_filters > .facets-wrapper {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* Title alignment options */
.cbp-title-align-left { text-align: left; }
.cbp-title-align-center { text-align: center; }
.cbp-title-align-right { text-align: right; }
.cbp-title-align-justify { text-align: justify; }

.cbp-text ul,
.cbp-text ol {
  padding-left: 1.5rem;
}

/* CategoryBuilderPro - rich text list styles */
.cbp-text ul,
.cbp-text ol {
  list-style-position: outside !important;
}

.cbp-text li {
  display: list-item !important;
  list-style-type: inherit !important;
}

.cbp-products-cross {
  margin-top: 30px;
}

.cbp-text ul[data-cbp-list-style="disc"] { list-style-type: disc !important; }
.cbp-text ul[data-cbp-list-style="circle"] { list-style-type: circle !important; }
.cbp-text ul[data-cbp-list-style="square"] { list-style-type: square !important; }
.cbp-text ol[data-cbp-list-style="decimal"] { list-style-type: decimal !important; }
.cbp-text ol[data-cbp-list-style="lower-alpha"] { list-style-type: lower-alpha !important; }
.cbp-text ol[data-cbp-list-style="upper-alpha"] { list-style-type: upper-alpha !important; }
.cbp-text ol[data-cbp-list-style="lower-roman"] { list-style-type: lower-roman !important; }
.cbp-text ol[data-cbp-list-style="upper-roman"] { list-style-type: upper-roman !important; }

/* CategoryBuilderPro - rich text reliability fixes */
.cbp-text ul[data-cbp-list-style="disc"],
.cbp-text ul[data-cbp-list-style="disc"] > li { list-style-type: disc !important; }
.cbp-text ul[data-cbp-list-style="circle"],
.cbp-text ul[data-cbp-list-style="circle"] > li { list-style-type: circle !important; }
.cbp-text ul[data-cbp-list-style="square"],
.cbp-text ul[data-cbp-list-style="square"] > li { list-style-type: square !important; }
.cbp-text ol[data-cbp-list-style="decimal"],
.cbp-text ol[data-cbp-list-style="decimal"] > li { list-style-type: decimal !important; }
.cbp-text ol[data-cbp-list-style="lower-alpha"],
.cbp-text ol[data-cbp-list-style="lower-alpha"] > li { list-style-type: lower-alpha !important; }
.cbp-text ol[data-cbp-list-style="upper-alpha"],
.cbp-text ol[data-cbp-list-style="upper-alpha"] > li { list-style-type: upper-alpha !important; }
.cbp-text ol[data-cbp-list-style="lower-roman"],
.cbp-text ol[data-cbp-list-style="lower-roman"] > li { list-style-type: lower-roman !important; }
.cbp-text ol[data-cbp-list-style="upper-roman"],
.cbp-text ol[data-cbp-list-style="upper-roman"] > li { list-style-type: upper-roman !important; }

.cbp-products-cross-title {
  margin-bottom: 1rem;
}
