/* 1.7.4-rc1 — Budget / Surface : deux vrais champs côte à côte.
 * Les wrappers d'Avada / JetSmartFilters peuvent imposer des largeurs, des
 * colonnes et du padding différents. Ce bloc est limité à notre shortcode.
 * Ne jamais empiler les deux bornes à 329 px : la sidebar est justement
 * souvent plus étroite que cette valeur sur ordinateur. */
.dossantos-smart-filter,
.dossantos-smart-filter *,
.dossantos-smart-filter *::before,
.dossantos-smart-filter *::after { box-sizing: border-box; }
.dossantos-smart-filter {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  margin-top: var(--dsfilter-margin-top) !important;
  margin-bottom: var(--dsfilter-margin-bottom) !important;
}
.dossantos-smart-filter:has(.jet-range) :is(
  .jet-smart-filters-range, .jet-range, .jet-range__values,
  .jet-range__inputs, .jet-range__inputs__container
) {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
.dossantos-smart-filter:has(.jet-range) .jet-range__slider {
  width: calc(100% - 20px);
  max-width: calc(100% - 20px);
  margin-inline: 10px;
}

/* Le script marque le vrai parent direct des bornes min et max, sans changer
 * les éléments ni leurs événements. On conserve DEUX colonnes, sans container
 * query ni classe « stacked ». */
.dossantos-smart-filter .dossantos-range-fields {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Chaque borne est un seul bloc horizontal : nombre souple + unité compacte.
 * La hauteur est imposée au GROUPE, et non seulement comme min-height sur
 * l'input (l'ancien réglage Avada ne fonctionnait pas sur le groupe). */
.dossantos-smart-filter .dossantos-range-fields > .dossantos-range-field:not(input) {
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  float: none !important;
  position: relative !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: var(--dsfilter-field-height, 46px) !important;
  min-height: var(--dsfilter-field-height, 46px) !important;
  margin: 0 !important;
  padding: 0 5px !important;
  overflow: hidden;
  background: var(--dsfilter-field-bg, #fff);
  border-radius: var(--dsfilter-field-radius, 6px);
  white-space: nowrap !important;
}
.dossantos-smart-filter .dossantos-range-field .dossantos-range-number {
  order: 1 !important;
  display: block !important;
  flex: 1 1 0 !important;
  width: 0 !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 2px !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline-offset: -2px;
  background: transparent !important;
  color: var(--dsfilter-field-text, inherit);
  font-size: var(--dossantos-range-fit-font, var(--dsfilter-text-size, 12px)) !important;
  line-height: normal !important;
  font-variant-numeric: tabular-nums;
  text-align: center;
  white-space: nowrap;
  -moz-appearance: textfield;
  appearance: textfield;
}
.dossantos-smart-filter .dossantos-range-number::-webkit-outer-spin-button,
.dossantos-smart-filter .dossantos-range-number::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}
.dossantos-smart-filter .dossantos-range-field .dossantos-range-unit {
  order: 2 !important;
  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  justify-content: center !important;
  position: static !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: max-content !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 3px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  color: var(--dsfilter-field-text, inherit);
  background: transparent !important;
}
/* Certains templates placent l'unité dans un wrapper additionnel. */
.dossantos-smart-filter .dossantos-range-field > :is(
  .jet-range__inputs__suffix, .jet-range__inputs__prefix,
  .jet-range__inputs__unit, .jet-range__inputs__addon
) {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: max-content !important;
}

/* Variante ancienne : quatre enfants directs input, unité, input, unité. */
.dossantos-smart-filter .dossantos-range-fields--flat {
  grid-template-columns: minmax(0, 1fr) max-content minmax(0, 1fr) max-content !important;
  column-gap: 0 !important;
  row-gap: 0 !important;
}
.dossantos-smart-filter .dossantos-range-fields--flat > .dossantos-range-number,
.dossantos-smart-filter .dossantos-range-fields > input.dossantos-range-field {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: var(--dsfilter-field-height, 46px) !important;
  min-height: var(--dsfilter-field-height, 46px) !important;
  padding: 0 3px !important;
  margin: 0 !important;
  background: var(--dsfilter-field-bg, #fff) !important;
  border-radius: var(--dsfilter-field-radius, 6px);
  font-size: var(--dossantos-range-fit-font, var(--dsfilter-text-size, 12px)) !important;
  text-align: center;
  appearance: textfield;
}
.dossantos-smart-filter .dossantos-range-fields--flat > .dossantos-range-unit {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: max-content !important;
  height: var(--dsfilter-field-height, 46px) !important;
  min-height: var(--dsfilter-field-height, 46px) !important;
  padding: 0 4px !important;
  background: var(--dsfilter-field-bg, #fff) !important;
  margin: 0 !important;
  white-space: nowrap !important;
}
.dossantos-smart-filter .dossantos-range-fields--flat > .dossantos-range-unit:nth-child(2) {
  margin-right: 8px !important;
}

/* Secours pour JetSmartFilters si son DOM ne permet pas le marquage JS. */
.dossantos-smart-filter:has(.jet-range) :is(
  .jet-range__inputs__min, .jet-range__inputs__max,
  .jet-range__inputs__group
) { min-width: 0; max-width: 100%; }

/* Bouton de réinitialisation de tous les critères ; styles limités à l'élément. */
.dossantos-reset-all,
.dossantos-reset-all * { box-sizing: border-box; }
.dossantos-reset-all { width: 100%; max-width: 100%; min-width: 0; }
.dossantos-reset-all { margin-top: var(--dsreset-margin-top) !important; margin-bottom: var(--dsreset-margin-bottom) !important; }
.dossantos-reset-all a.dossantos-reset-all__button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  max-width: 100%; width: auto; min-height: 42px; padding: 10px 16px;
  background: var(--dsreset-bg, #202733); color: var(--dsreset-text, #fff);
  border: 0; border-radius: var(--dsreset-radius, 6px);
  text-align: center; text-decoration: none; font: inherit;
  line-height: 1.35; cursor: pointer; transition: background-color .15s ease, color .15s ease;
}
.dossantos-reset-all--full a.dossantos-reset-all__button { width: 100%; }
.dossantos-reset-all a.dossantos-reset-all__button:hover,
.dossantos-reset-all a.dossantos-reset-all__button:focus-visible {
  background: var(--dsreset-hover-bg, #a85634); color: var(--dsreset-hover-text, #fff);
  text-decoration: none;
}
.dossantos-reset-all a.dossantos-reset-all__button:focus-visible {
  outline: 2px solid currentColor; outline-offset: 3px;
}

/* Personnalisation de CHAQUE élément « Filtres Biens Dossantos ».
   Les variables ne sont définies que lorsqu'une option Avada est renseignée :
   si une valeur est absente, les styles natifs JetSmartFilters/Avada restent actifs. */
.dossantos-smart-filter {
  background-color: var(--dsfilter-panel-bg);
  padding: var(--dsfilter-panel-padding);
  border-radius: var(--dsfilter-panel-radius);
  color: var(--dsfilter-text-color);
  font-size: var(--dsfilter-text-size);
}
.dossantos-smart-filter--native-label-hidden .jet-filter-label { display: none !important; }
.dossantos-smart-filter > .dossantos-smart-filter__title {
  color: var(--dsfilter-title-color);
  font-size: var(--dsfilter-title-size);
  margin: 0 0 var(--dsfilter-spacing);
}
.dossantos-smart-filter .jet-filter-label,
.dossantos-smart-filter .jet-range__values,
.dossantos-smart-filter .jet-filter-label .jet-filter-label__text {
  color: var(--dsfilter-label-color);
  font-size: var(--dsfilter-label-size);
}
.dossantos-smart-filter .jet-filter-label { margin-bottom: var(--dsfilter-spacing); }
.dossantos-smart-filter :is(.jet-checkboxes-list__label, .jet-radio-list__label, .jet-checkboxes-list__button,
  .jet-radio-list__button, .jet-filter-row, .jet-range__inputs, .jet-range__values) {
  color: var(--dsfilter-text-color);
  font-size: var(--dsfilter-text-size);
}
.dossantos-smart-filter :is(.jet-select__control, .jet-search-filter__input, .jet-date-range__input,
  .jet-range__inputs input[type="number"], input[type="search"], input[type="text"], select) {
  max-width: 100%;
  min-width: 0;
  background-color: var(--dsfilter-field-bg);
  color: var(--dsfilter-field-text);
  border-color: var(--dsfilter-field-border);
  border-radius: var(--dsfilter-field-radius);
  min-height: var(--dsfilter-field-height);
  font-size: var(--dsfilter-text-size);
}
.dossantos-smart-filter :is(.jet-select__control, .jet-range__inputs input[type="number"],
  input[type="search"], input[type="text"], select):focus-visible {
  border-color: var(--dsfilter-field-focus);
  outline-color: var(--dsfilter-field-focus);
}
.dossantos-smart-filter :is(input[type="checkbox"], input[type="radio"], input[type="range"]) {
  accent-color: var(--dsfilter-accent-color);
}
.dossantos-smart-filter input[type="checkbox"] { width: var(--dsfilter-checkbox-size); height: var(--dsfilter-checkbox-size); }
.dossantos-smart-filter .jet-range__slider__track__range { background-color: var(--dsfilter-accent-color); }
.dossantos-smart-filter .jet-range__slider__input::-webkit-slider-thumb { background-color: var(--dsfilter-accent-color); }
.dossantos-smart-filter .jet-range__slider__input::-moz-range-thumb { background-color: var(--dsfilter-accent-color); }
.dossantos-smart-filter :is(.jet-checkboxes-list__row, .jet-radio-list__row) +
  :is(.jet-checkboxes-list__row, .jet-radio-list__row) { margin-top: var(--dsfilter-choice-spacing); }
.dossantos-smart-filter :is(.jet-checkboxes-list__button, .jet-radio-list__button):hover {
  background-color: var(--dsfilter-choice-hover-bg);
}
.dossantos-smart-filter input:checked + :is(.jet-checkboxes-list__button, .jet-radio-list__button) {
  background-color: var(--dsfilter-choice-active-bg);
}
.dossantos-smart-filter input:checked + :is(.jet-checkboxes-list__button, .jet-radio-list__button)
  .jet-checkboxes-list__decorator { background-color: var(--dsfilter-accent-color); }


/* 1.6.5 – La palette de l'élément est prioritaire uniquement lorsqu'une
   couleur a été renseignée. Les couleurs non définies continuent d'utiliser
   le style natif JetSmartFilters/Avada. Les filtres s'actualisent en AJAX mais
   le formulaire reste dans le DOM : ces règles valent après actualisation. */
.dossantos-smart-filter[style*="--dsfilter-panel-bg:"] {
  background-color: var(--dsfilter-panel-bg) !important;
}
.dossantos-smart-filter[style*="--dsfilter-title-color:"] > .dossantos-smart-filter__title {
  color: var(--dsfilter-title-color) !important;
}
.dossantos-smart-filter[style*="--dsfilter-label-color:"] :is(
  .jet-filter-label, .jet-filter-label *, .jet-range__values,
  .jet-range__values *, .jet-range__inputs__container legend
) { color: var(--dsfilter-label-color) !important; }
.dossantos-smart-filter[style*="--dsfilter-text-color:"] :is(
  .jet-checkboxes-list__label, .jet-checkboxes-list__label *,
  .jet-radio-list__label, .jet-radio-list__label *,
  .jet-checkboxes-list__button, .jet-radio-list__button,
  .jet-checkboxes-list__item, .jet-radio-list__item,
  .jet-filter-row label, .jet-filter-row label *,
  .jet-range__values, .jet-range__values *, .jet-range__inputs label
) { color: var(--dsfilter-text-color) !important; }
.dossantos-smart-filter[style*="--dsfilter-field-bg:"] :is(
  .jet-select__control, .jet-search-filter__input, .jet-date-range__input,
  .jet-date-period__input, .jet-range__inputs input[type="number"],
  .jet-range__inputs__group, .jet-range__inputs__group > span,
  input[type="search"], input[type="text"], select
) { background-color: var(--dsfilter-field-bg) !important; }
.dossantos-smart-filter[style*="--dsfilter-field-text:"] :is(
  .jet-select__control, .jet-search-filter__input, .jet-date-range__input,
  .jet-date-period__input, .jet-range__inputs input[type="number"],
  .jet-range__inputs__group > span, input[type="search"], input[type="text"], select
) { color: var(--dsfilter-field-text) !important; }
.dossantos-smart-filter[style*="--dsfilter-field-text:"] :is(
  .jet-select__control, .jet-range__inputs input, input[type="search"], input[type="text"]
)::placeholder { color: var(--dsfilter-field-text) !important; opacity: .7; }
.dossantos-smart-filter[style*="--dsfilter-field-border:"] :is(
  .jet-select__control, .jet-search-filter__input, .jet-date-range__input,
  .jet-date-period__input, .jet-range__inputs input[type="number"],
  .jet-range__inputs__group, input[type="search"], input[type="text"], select
) { border-color: var(--dsfilter-field-border) !important; }
.dossantos-smart-filter[style*="--dsfilter-field-focus:"] :is(
  .jet-select__control, .jet-search-filter__input, .jet-date-range__input,
  .jet-date-period__input, .jet-range__inputs input[type="number"],
  input[type="search"], input[type="text"], select
):focus { border-color: var(--dsfilter-field-focus) !important; outline-color: var(--dsfilter-field-focus) !important; }
.dossantos-smart-filter[style*="--dsfilter-accent-color:"] :is(
  input[type="checkbox"], input[type="radio"], input[type="range"]
) { accent-color: var(--dsfilter-accent-color) !important; }
.dossantos-smart-filter[style*="--dsfilter-accent-color:"] :is(
  .jet-range__slider__track__range,
  .jet-checkboxes-list__input:checked + .jet-checkboxes-list__button .jet-checkboxes-list__decorator,
  .jet-radio-list__input:checked + .jet-radio-list__button .jet-radio-list__decorator
) { background-color: var(--dsfilter-accent-color) !important; }
.dossantos-smart-filter[style*="--dsfilter-accent-color:"] .jet-range__slider__input::-webkit-slider-thumb {
  background-color: var(--dsfilter-accent-color) !important;
}
.dossantos-smart-filter[style*="--dsfilter-accent-color:"] .jet-range__slider__input::-moz-range-thumb {
  background-color: var(--dsfilter-accent-color) !important;
}
.dossantos-smart-filter[style*="--dsfilter-choice-hover-bg:"] :is(
  .jet-checkboxes-list__button, .jet-radio-list__button
):hover { background-color: var(--dsfilter-choice-hover-bg) !important; }
.dossantos-smart-filter[style*="--dsfilter-choice-active-bg:"] :is(
  .jet-checkboxes-list__input:checked + .jet-checkboxes-list__button,
  .jet-radio-list__input:checked + .jet-radio-list__button
) { background-color: var(--dsfilter-choice-active-bg) !important; }
