/* extras do teu site */
.offcanvas-tabs { display:block !important; }
#offcanvasMenuTab { display:flex !important; visibility:visible !important; opacity:1 !important; }
#offcanvasMenuTab .nav-item { display:block !important; }
.offcanvas-brand-logo { padding:15px; }

/* container dos filtros */
.lpf-filters{
  width:400px; max-width:100%;
  padding:0 30px;
  background:#fff; border-right:0;
}
.lpf-filters *{ box-sizing:border-box; }
.lpf-sr-only{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* ações no fundo (ajusta width conforme layout) */
.lpf-filters__actions{
  display:flex; gap:8px;
  position:fixed; bottom:15px; background:#fff; padding:8px 0 12px;
  z-index:1; width:335px;
}
.lpf-actions{
  margin-top:.75rem;
  margin-bottom:15px;
  display:flex;
  gap:.5rem;
}
.lpf-btn{ border:1px solid #111; padding:8px 12px; border-radius:0; cursor:pointer; font-weight:400; width:50%; font-size:13px; }
.lpf-btn--primary{ background:#111; color:#fff; }
.lpf-btn--ghost{ background:transparent; }

/* grupos */
.lpf-filter-group{ border-top:0px solid #eee; }
.lpf-filter-group:first-of-type{ border-top:0; }
.lpf-filter-group:first-of-type .lpf-filter-head{ margin-top:15px; }

/* cabeçalho: título+badge à esquerda, toggle à direita */
.lpf-filter-head{
  width:100%; display:flex; align-items:center;
  padding:14px 0 0; background:transparent; border:0; font-weight:700; cursor:pointer; font-size:13px;
}
.lpf-head-left{ display:inline-flex; align-items:center; gap:6px; }
.lpf-toggle{
  margin-left:auto;
  display:inline-block; width:25px; text-align:center; font-size:25px; font-weight:400;
}

/* corpo + animação suave */
.lpf-filter-body{
  height:0; overflow:hidden; padding:0; transition:height .24s ease;
}
.lpf-filter-head[aria-expanded="true"] + .lpf-filter-body{
  padding:15px 0 15px 15px;
}

/* lista de opções */
.lpf-filter-options{ display:flex; flex-direction:column; gap:6px; }
.lpf-filter-option{ display:flex; align-items:center; gap:10px; font-size:13px; }

/* checkbox custom: fundo branco + visto preto */
.lpf-filter-option input[type="checkbox"]{
  -webkit-appearance:none; appearance:none;
  width:18px; height:18px; border:1px solid #111; border-radius:0; background:#fff;
  display:inline-grid; place-content:center; cursor:pointer; vertical-align:middle;
  transition:box-shadow .12s ease, border-color .12s ease;
}
.lpf-filter-option input[type="checkbox"]::after{
  content:""; width:10px; height:6px; border:2px solid #111; border-top:0; border-right:0;
  transform:rotate(-45deg) scale(0); transform-origin:center; transition:transform .12s ease-in-out;
}
.lpf-filter-option input[type="checkbox"]:checked::after{ transform:rotate(-45deg) scale(1); }
.lpf-filter-option input[type="checkbox"]:hover{ border-color:#000; }
.lpf-filter-option input[type="checkbox"]:focus{ outline:none; }
.lpf-filter-option input[type="checkbox"]:focus-visible{ outline:2px solid #111; outline-offset:2px; }
.lpf-filter-option input[type="checkbox"]:disabled{ opacity:.5; cursor:not-allowed; }

/* grid (tamanhos) */
.lpf-filter-options--grid{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:6px 10px; }

/* pesquisa por grupo */
.lpf-filter-search{ position:relative; margin:6px 0 10px; }
.lpf-filter-search input{ width:90%; padding:8px 10px; border:1px solid #ddd; border-radius:0px; font-size:14px; }

/* ver + / ver menos */
.lpf-show-more{ margin-top:6px; }
.lpf-show-more button{ background:transparent; border:0; color:#111; text-decoration:underline; cursor:pointer; font-size:13px; padding:0; }

/* esconder itens */
.lpf-is-hidden { display:none !important; }

/* badge contador */
.lpf-badge{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:22px; height:22px; padding:0 6px; border-radius:11px;
  background:#f5f5f5; border:1px solid #e5e5e5; font-size:12px;
}

/* focus só com teclado dentro do componente */
.lpf-filters :focus{ outline:none; }
.lpf-filters :focus-visible{ outline:2px solid #6b6b6b; outline-offset:2px; }

/* ---- VER MAIS: centrado e com caixa ---- */
.lpf-show-more{ 
  margin-top:10px; 
  display:flex; 
}
.lpf-show-more button {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 0px;
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 400;
    text-transform: unset;
    letter-spacing: .2px;
    cursor: pointer;
    text-decoration: none;
    color: #111;
    width: 90%;
}
.lpf-show-more button:hover{ border-color:#000; }

/* ---- Pesquisa: remover “borda preta” ao focar ---- */
.lpf-filter-search input:focus,
.lpf-filter-search input:focus-visible{
  outline: none !important;
  border-color: #ddd !important;
  box-shadow: none !important;
}

.top-toolbar.row.align-items-center {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-end;
    margin-left: 0px;
}

.top-toolbar.top-toolbar-left.row.align-items-center.flex-grow-1 {
    justify-content: start;
}
.tdc-filtros-selecionados {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    padding: 8px 0px;
    margin: 0px 0 0px 15px;
}
.tdc-chip {
	display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #f7f7f7;
    font-size: 13px;
    line-height: 1.2;
	border: 1px solid #ddd;
    padding: 4px 8px;
    border-radius: 0px;
    color: #000 !important;
	height: 30px;
}

.tdc-chip-clear {
    background: #f5f5f5;
}
.tdc-chip .tdc-chip-close {
    border: 0;
    background: transparent;
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
    color: #000 !important;
}

/* estrutura base */
.lpf-filters { font-size: 14px; }
.lpf-filter-group { margin-bottom: .75rem; }
.lpf-filter-head { width: 100%; display:flex; align-items:center; justify-content:space-between; background:#FFFFFF; border:0; padding:.5rem .6rem; cursor:pointer; }
.lpf-head-left { display:flex; align-items:center; gap:.5rem; font-weight:600; }
.lpf-toggle { font-size:18px; line-height:1; }
.lpf-filter-body { overflow:hidden; transition: height .24s ease; }
.lpf-filter-options { padding:.4rem .6rem; }
.lpf-filter-option { display:block; margin:.15rem 0; }
.lpf-filter-option input[type="checkbox"]{ margin-right:.35rem; }
.lpf-badge { background:#ddd; border-radius:1rem; padding:.05rem .5rem; font-size:12px; }
.lpf-count { opacity:.7; margin-left:.25rem; }
.lpf-zero { opacity:.4; }
.lpf-loader { padding:.5rem .6rem; font-style:italic; color:#666; }
.lpf-error { color:#b00020; padding:.4rem .6rem; }
.lpf-hint { padding:.4rem .6rem; color:#555; }

/* pesquisa rápida */
.lpf-filter-search { padding:.4rem .6rem .2rem; }
.lpf-filter-search input[type="search"]{ width:100%; border:1px solid #ddd; padding:.4rem .5rem; }

/* ver mais global do grupo */
.lpf-show-more{ padding: .1rem .6rem .5rem; }
.lpf-show-more button{ border:0; background:transparent; text-decoration:underline; cursor:pointer; padding:0; }

/* bloco por categoria-pai */
.lpf-cat-block{margin-bottom:.75rem; padding-bottom:.5rem; border-bottom:1px solid #eee;}
.lpf-cat-parent{display:flex; align-items:center; gap:.5rem; font-weight:600; margin-bottom:.25rem; padding:0 .6rem;}
.lpf-cat-parent input[type="checkbox"]{margin-right:.25rem}
.lpf-cat-children{ padding: 0 .6rem; }
.lpf-cat-children .lpf-filter-option{display:block; padding-left:22px;} /* indent nos filhos */
.lpf-show-more-cat{margin:.25rem 0 0 22px;}
.lpf-show-more-cat button{border:0;background:transparent;text-decoration:underline;cursor:pointer;padding:0}
.lpf-is-hidden{display:none !important;}
.lpf-cat-parent.lpf-filter-option{ font-weight:600; padding-left:0; }
.lpf-cat-parent .lpf-count{ margin-left:.35rem; }

/* loader global (filtros AJAX) */
.lpf-global-loading{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.35);
  pointer-events: all;
}
.lpf-global-loading.is-active{ display:flex; }

.lpf-global-loading__dots{
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.lpf-global-loading__dots span{
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #9aa0a6;
  animation: lpfDots .9s infinite ease-in-out;
}
.lpf-global-loading__dots span:nth-child(2){ animation-delay: .12s; }
.lpf-global-loading__dots span:nth-child(3){ animation-delay: .24s; }

@keyframes lpfDots {
  0%, 80%, 100% { transform: scale(.7); opacity: .45; }
  40% { transform: scale(1); opacity: 1; }
}

.lpf-filter-status{
  margin: 10px 0 6px;
  font-size: 12px;
  color: #666;
}

.lpf-filters.lpf-is-refreshing{
  cursor: progress;
}

.lpf-filters.lpf-is-refreshing .lpf-actions .btn{
  opacity: .75;
}

