/* ====== Layout base del sidebar ====== */
.filters{
  width: 280px;
  max-width: 100%;
  background: #fff;
/*  padding: 12px;*/
  position: relative;
  flex-shrink: 0;
}
.filters__header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.filters__title{
  font-size: 1.125rem;
  font-weight: 600;
}
.filters__clearBtn{
  padding: 6px 10px;
  font-size: .9rem;
  background: transparent;
  border: 1px solid transparent;
  color: var(--cml-green_primary-color);
  cursor: pointer;
  font-weight: 500;
}

.filters__clearBtn .ci-icon {
   font-size: .6rem;
   color: var(--cml-green_primary-color);
   margin-bottom: 0.1rem;
}


.filters__clearBtn:hover{
    background: var(--cml-green-50);
    border: 1px solid var(--cml-green-100);
    border-radius: 8px;
}

/* Tags activos */
.filters__activeTags{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 4px 10px;
  /*min-height: 28px;*/ /* evita salto visual al vaciar */
}
.tag{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 8px;
  border-radius: 999px;
  background: var(--cml-green-50);
  color: var(--cml-green-950);
  border: 1px solid var(--cml-green-100);
  font-size: .85rem;
  line-height: 1;
}
.tag__swatch{
  width: 12px;
  height: 12px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.18);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.4);
}
.tag__label{
  white-space: nowrap;
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tag__close{
  border: none;
  background: transparent;
  cursor: pointer;
  padding: 2px;
  border-radius: 6px;
  line-height: 0;
}
.tag__close:hover{ background: rgba(0,0,0,.06); }
.tag__close svg{ width: 14px; height: 14px; }

/* ====== Sección (atributo) ====== */
.filters__divider{
  border: 0;
  /*border-top: 1px solid #E5E7EB;*/
  height: 1px;
  margin: 8px 0;
}
.filter{ padding: 4px 4px 8px; }
.filter__summary{
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  user-select: none;
  padding: 10px 8px;
  border-radius: 8px;
  font-weight: 600;
  color: #111827;
}
.filter__summary:hover{ background: #F9FAFB; }
.filter__summary::-webkit-details-marker{ display: none; }
.chevron{
  width: 18px; height: 18px;
  fill: none; stroke: currentColor; stroke-width: 2;
  transform: rotate(-90deg);
  transition: transform .2s ease;
}
.filter[open] .chevron{ transform: rotate(0deg); }

.filter__options{
  margin: 6px 0 2px 0;
  padding: 0 4px 0 8px;
  list-style: none;
}
.filter__option{
  display: grid;
  /*grid-template-columns: 18px 1fr;*/
  align-items: center;
  column-gap: 10px;
  padding: 6px 4px;
  border-radius: 6px;
}
.filter__option:hover{ background: #F9FAFB; }

.filter__option input[type="checkbox"]{
  width: 16px; height: 16px;
  accent-color: #111827;
  cursor: pointer;
}
.option{ display: inline-flex; align-items: center; gap: 8px; cursor: pointer; color: #374151; font-size: 0.95rem; margin-left: 5px; }

.filter__options [type="checkbox"]:not(:checked)+label, .filter__options [type="checkbox"]:checked+label {
    padding-left: 23px;
}

/*.filter__options [type="checkbox"]:not(:checked)+label:after, .filter__options [type="checkbox"]:checked+label:after {
    background-color: var(--cml-green_primary-color);
    border: 1px solid var(--cml-green_primary-color);
}*/

.with-swatch .swatch{
  width: 14px; height: 14px; border-radius: 999px;
  background: var(--swatch, #9CA3AF);
  border: 1px solid lightgray;
  /*box-shadow: inset 0 0 0 1px rgba(255,255,255,.4);*/
}
.with-icon .option__icon{
  width: 16px; height: 16px; object-fit: cover;
  /*border-radius: 3px; border: 1px solid rgba(0,0,0,.1);*/
}

/* Accesibilidad foco */
.filter__summary:focus-visible,
.filter__option input[type="checkbox"]:focus-visible + .option{
  outline: 2px solid #2563EB; outline-offset: 2px; border-radius: 6px;
}

@media (max-width: 640px){
  .filters{ width: 100%; border-radius: 10px; }
}
/* ====== Dual Range Slider ====== */
.filter__rangeSlider{ padding: 10px 8px 2px; display: grid; gap: 10px; }
.rangeSlider__trackWrap{ position: relative; height: 28px; }
.rangeSlider__track{
  position: absolute; top: 50%; left: 0; right: 0; height: 4px; transform: translateY(-50%);
  background: var(--cml-web-color-light-grey); border-radius: 999px;
}
.rangeSlider__progress{
  position: absolute; top: 50%; height: 4px; transform: translateY(-50%);
  background: var(--cml-green_primary-color); border-radius: 999px; left: 0; right: 0;
}
.rangeSlider__input{
  position: absolute; left: 0; right: 0; width: 100%; pointer-events: none;
  appearance: none; background: none; height: 28px; margin: 0;
}
.rangeSlider__input::-webkit-slider-thumb{
  -webkit-appearance: none; appearance: none;
  pointer-events: auto; width: 18px; height: 18px; border-radius: 999px;
  background: var(--cml-green_primary-color); border: 2px solid #fff; box-shadow: 0 1px 2px rgba(0,0,0,.15);
}
.rangeSlider__input::-moz-range-thumb{
  pointer-events: auto; width: 18px; height: 18px; border-radius: 999px;
  background: var(--cml-green_primary-color); border: 2px solid #fff; box-shadow: 0 1px 2px rgba(0,0,0,.15);
}
.rangeSlider__input:focus{ outline: none; }
.rangeSlider__input:focus-visible::-webkit-slider-thumb{ outline: 2px solid var(--cml-green_primary-color); outline-offset: 2px; }
.rangeSlider__input:focus-visible::-moz-range-thumb{ outline: 2px solid var(--cml-green_primary-color); outline-offset: 2px; }

.rangeSlider__inputs {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
}

.range__label {
  font-size: .8rem;
  color: #6B7280;
  white-space: nowrap;
}

.range__input {
  width: 70px;                 /* 👈 ancho fijo más pequeño */
  max-width: 100%;             /* nunca sobresale del grid */
  height: 32px;
  padding: 4px 6px;
  border: 1px solid #E5E7EB;
  border-radius: 6px;
  font-size: .9rem;
  text-align: right;           /* números alineados a la derecha */
  box-sizing: border-box;
}

.range__input:focus {
  outline: 2px solid var(--cml-green_primary-color);
  outline-offset: 2px;
}

.range__sep {
  color: #9CA3AF;
  text-align: center;
}

.range__unit {
  font-size: .8rem;
  color: #6B7280;
  white-space: nowrap;
}



:root {
    /* Tweak these to theme the component */
    --sheet-height: 75vh; /* Target open height */
    --sheet-radius: 20px;
    --sheet-bg: #ffffff;
    --sheet-shadow: 0 -10px 30px rgba(0,0,0,0.15);
    --backdrop-color: rgba(0,0,0,0.45); /* Dim the page */
    --transition-fast: 260ms; /* Motion timing */
    --easing: cubic-bezier(.22,.61,.36,1);
}


/*
.filter__option [type="checkbox"]:not(:checked)+label:after, .filter__option [type="checkbox"]:checked+label:after {
    background-color: var(--cml-green_primary-color);
    border: 1px solid var(--cml-green_primary-color);
    background: url(/templates/stikets/img/ICONO_check.png) no-repeat;
}*/


/* -------------------- Bottom Sheet Component -------------------- */

@media (max-width: 768px) {
    /* Backdrop dims the page */
    .bs-backdrop {
        position: fixed; inset: 0;
        background: var(--backdrop-color);
        opacity: 0; pointer-events: none;
        transition: opacity var(--transition-fast) ease;
        will-change: opacity;
        z-index: 40; /* below the sheet */
        backdrop-filter: saturate(1.1) blur(0px);
    }



    /* Sheet panel */
    .bs-sheet {
        position: fixed; left: 0; right: 0; bottom: 0;
        height: var(--sheet-height);
        background: var(--sheet-bg);
        border-top-left-radius: var(--sheet-radius);
        border-top-right-radius: var(--sheet-radius);
        box-shadow: var(--sheet-shadow);
        transform: translateY(100%);
        transition: transform var(--transition-fast) var(--easing);
        will-change: transform;
        z-index: 50;
        display: flex;
        grid-template-rows: auto 1fr;
        contain: content;
        touch-action: none; /* enables smooth drag */
    }


    /* Drag handle */
    .bs-handle {
        display: grid; place-items: center;
        padding: 10px 0 8px;
        cursor: grab;
        user-select: none;
        -webkit-user-select: none;
    }
    .bs-handle::before {
        content: "";
        width: 44px; height: 5px; border-radius: 999px;
        background: rgba(0,0,0,.18);
    }


    .bs-content {
        display: flex;
        flex-direction: column;
        
        overflow: auto;
        -webkit-overflow-scrolling: touch;
/*        padding: 16px 20px 24px;*/
        padding: 16px 0px 20px;
        box-sizing: border-box;
        height: 100%;
    }
    
    .filters__header, .filters__content, .filters__footer {
        padding: 0px 15px;
    }
    
    .filters__content {
        overflow: scroll;
    }
    
    .filters__footer {
        box-shadow: 0 -8px 8px -6px rgba(0, 0, 0, 0.15);
        margin-bottom: 0;
        margin-top: auto;
/*        border-top: 1px solid #ddd;*/
    }
    
    .filters__divider {
        border-top: 1px solid #ddd;
    }
    
    #grid_header_tags_mobile {
        max-width: calc(100% - 98px);
    }


    /* Open state */
    .bs-root[data-open="true"] .bs-backdrop { opacity: 1; pointer-events: auto; }
    .bs-root[data-open="true"] .bs-sheet { transform: translateY(0); }


    /* Example menu list styles */
    .menu-list { list-style: none; padding: 0; margin: 0; }
    .menu-item {
        display: flex; align-items: center; justify-content: space-between;
        padding: 14px 12px; border-radius: 12px; background: #f8fafc; margin-bottom: 10px;
        box-shadow: inset 0 0 0 1px rgba(15,23,42,.06);
    }
    .menu-item span { font-weight: 600; }

}

/* --- Solo mobile: oculta el sheet y el botón en desktop --- */
@media (min-width: 768px) {
/*    .bs-root { display: none !important; }*/
    #openSheetBtn { display: none !important; }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
    .bs-backdrop, .bs-sheet { transition: none; }
}

/* Improve contrast if user prefers reduced transparency */
@media (prefers-contrast: more) {
    .bs-backdrop { background: rgba(0,0,0,0.6); }
}



@media (max-width:640px){
  #filter-trigger-text-mbl {
      font-size: 100%;
      cursor: pointer;
  }
  
  .filters__activeTags {
      flex-flow: nowrap;
  }
  
  .filters__activeTags.filters__activeTags_desktop {
      display: none;
  }
  
}