.tfms{
  font-family: 'Montserrat', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

/* Outer shell so extra filters live "inside" the same search block */
.tfms__shell{
  background:#fff;
  border-radius:30px;
  box-shadow:0 10px 30px rgba(0,0,0,.08);
  border:1px solid rgba(15,23,42,.08);
  padding:10px;
}

.tfms__bar{
  display:flex;
  align-items:stretch;
  gap:10px;
  padding:0;
  background:transparent;
  border:none;
  border-radius:0;
  box-shadow:none;
}

.tfms__field{
  flex:1;
  min-width:0;
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border-radius:22px;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(248,250,252,.7);
}

.tfms__icon{
  width:38px;
  height:38px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  color:#0f172a;
  flex:0 0 auto;
}

.tf-icon{ display:block; }

.tfms__meta{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.tfms__label{
  font-size:11px;
  font-weight:600;
  letter-spacing:.02em;
  color:rgba(15,23,42,.55);
  text-transform:uppercase;
  line-height:1.1;
}

.tfms__control{
  border:none;
  outline:none;
  background:transparent;
  font-size:15px;
  font-weight:600;
  color:#0f172a;
  padding:0;
  min-width:0;
}

.tfms__control::placeholder{
  color:rgba(15,23,42,.35);
  font-weight:500;
}

.tfms__field:focus-within{
  border-color:rgba(113,192,3,.55);
  box-shadow:0 0 0 4px rgba(113,192,3,.12);
  background:#fff;
}

.tfms__submit{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:0 20px;
  border:none;
  border-radius:22px;
  background:#71C003;
  color:#fff;
  font-weight:700;
  font-size:14px;
  cursor:pointer;
  min-width:140px;
}

.tfms__submit:hover{
  filter:brightness(0.96);
}

.tfms__submit:active{
  transform:translateY(1px);
}

.tfms__submit-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

/* ---------- Extra filters row (below main search fields) ---------- */
.tfms__filters-row{
  margin-top:10px;
}

.tfms__filters-toggle{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  height:52px;
  padding:0 18px;
  border-radius:22px;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(248,250,252,.7);
  color:rgba(15,23,42,.85);
  font-weight:600;
  font-size:13px;
  cursor:pointer;
  transition:box-shadow .18s ease, transform .18s ease, opacity .18s ease;
  -webkit-tap-highlight-color: transparent;
}

.tfms__filters-toggle:hover{ box-shadow:0 6px 16px rgba(0,0,0,.06); opacity:.96; }

.tfms__filters-toggle:active{ transform:translateY(1px); }

.tfms__filters-toggle:focus{ outline:0; }
.tfms__filters-toggle:focus-visible{
  box-shadow:0 0 0 4px rgba(113,192,3,.12), 0 6px 16px rgba(0,0,0,.06);
  border-color:rgba(113,192,3,.55);
  background:#fff;
}

.tfms__filters-ico{
  width:28px;
  height:28px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
}

.tfms__filters-arrow{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:transform .18s ease;
}

.tfms__filters-toggle[aria-expanded="true"] .tfms__filters-arrow{
  transform:rotate(180deg);
}

/* Sliding container */
.tfms__filters-wrap{
  margin-top:0;
  overflow:hidden;
  max-height:0;
  opacity:0;
  transform:translateY(-6px);
  transition:max-height .32s ease, opacity .22s ease, transform .22s ease, margin-top .22s ease;
}

.tfms__filters-wrap.is-open{
  margin-top:10px;
  max-height:800px;
  opacity:1;
  transform:none;
  overflow:visible;
}

.tfms__filters-panel{
  overflow:visible;
  border-radius:22px;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(248,250,252,.7);
  padding:12px;
}

.tfms__filters-grid{
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr)) 56px 56px;
  gap:10px;
  align-items:stretch;
}

/* Extra filter items reuse the same “field” design as the main bar */
.tfms__field--filter{
  padding:10px 12px;
  border-radius:22px;
}
.tfms__field--filter .tfms__icon{
  width:34px;
  height:34px;
}
.tfms__field--filter .tfms__label{
  font-size:10px;
}
.tfms__field--filter .tfms__control{
  font-size:14px;
}
.tfms__field--filter .tfms-sel__txt{
  font-size:14px !important;
}

/* Marker class for JS (keep styles neutral) */
.tfms__filters-control{ width:100%; }

.tfms__filters-panel .tfms__control::placeholder{
  color:rgba(15,23,42,.25) !important;
  font-weight:500 !important;
}

/* Icon buttons (apply/reset) */
.tfms__filters-btn{
  width:100%;
  min-height:64px;
  border-radius:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  cursor:pointer;
  border:0;
  transition:box-shadow .15s ease, transform .15s ease, opacity .15s ease;
  -webkit-tap-highlight-color: transparent;
}
.tfms__filters-btn svg{ display:block; }

.tfms__filters-btn--apply{
  background:#71C003;
  color:#fff;
}
.tfms__filters-btn--apply:hover{ opacity:.96; }
.tfms__filters-btn--apply:active{ transform:translateY(1px); }

.tfms__filters-btn--reset{
  background:#fff;
  border:1px solid rgba(15,23,42,.12);
  color:rgba(15,23,42,.85);
}
.tfms__filters-btn--reset:hover{ box-shadow:0 6px 16px rgba(0,0,0,.06); }
.tfms__filters-btn--reset:active{ transform:translateY(1px); }

@media (max-width: 980px){
  .tfms__bar{
    flex-wrap:wrap;
  }
  .tfms__field{
    flex:1 1 260px;
  }
  .tfms__submit{ width:100%; min-width:0; height:52px; border-radius:20px; }
  .tfms__filters-toggle{ border-radius:20px; }
  .tfms__filters-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px){
  .tfms__shell{
    padding:8px;
    border-radius:26px;
  }
  .tfms__field{
    padding:10px 12px;
    border-radius:20px;
  }
  .tfms__icon{
    width:34px;
    height:34px;
  }
  .tfms__control{
    font-size:14px;
  }

  .tfms__filters-panel{ padding:10px; border-radius:20px; }
  /* Fields take full width; icon buttons sit in one row (2 columns) */
  .tfms__filters-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .tfms__filters-item{ grid-column:1 / -1; }
  .tfms__filters-btn{ min-height:52px; }
}


/* Modern tabs (3-in-1 search) */
.tfms-tabs .tfms-tabs__wrap{
  background:#fff;
  border-radius:30px;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 10px 30px rgba(0,0,0,.08);
  padding:10px;
}

.tfms-tabs .tfms-tabs__nav{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  padding:6px;
  border-radius:24px;
  background:rgba(248,250,252,.75);
  border:1px solid rgba(15,23,42,.08);
  margin-bottom:10px;
}

.tfms-tabs .tfms-tabs__tab{
  appearance:none;
  -webkit-appearance:none;
  background: transparent !important;
  border: 1px solid #0000000d !important;
  color:rgba(15,23,42,.75);
  font-family:inherit;
  font-weight:700;
  font-size:13px;
  letter-spacing:.01em;
  padding:10px 14px;
  border-radius: 18px !important;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:10px;
  transition:all .15s ease;
}

.tfms-tabs .tfms-tabs__tab-icon{
  width:28px;
  height:28px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
}

.tfms-tabs .tfms-tabs__tab.is-active{
  background:#fff !important;
  border-color:rgba(113,192,3,.35) !important;
  box-shadow:0 6px 16px rgba(0,0,0,.08);
  color:#0f172a;
}

.tfms-tabs .tfms-tabs__tab.is-active .tfms-tabs__tab-icon{
  border-color:rgba(113,192,3,.35);
  box-shadow:0 0 0 4px rgba(113,192,3,.10);
}

.tfms-tabs .tfms__bar{
  box-shadow:none;
  border:none;
  padding:0;
  background:transparent;
}

.tfms-tabs .tfms-tabs__panel{
  display:none;
}

.tfms-tabs .tfms-tabs__panel.is-active{
  display:block;
}

@media (max-width: 980px){
  .tfms-tabs .tfms-tabs__wrap{
    padding:8px;
    border-radius:26px;
  }
  .tfms-tabs .tfms-tabs__nav{
    border-radius:22px;
  }
  .tfms-tabs .tfms-tabs__tab{
    flex:1 1 auto;
    justify-content:center;
  }
}


.tfms .tfms__bar{ display:flex !important; }
.tfms .tfms__field{ display:flex !important; align-items:center !important; }
.tfms .tfms__meta{ display:flex !important; flex-direction:column !important; gap:6px !important; min-width:0 !important; flex:1 !important; }


/* -------- Hard overrides (themes/elementor can be very aggressive) -------- */
.tfms, .tfms *{
  box-sizing:border-box !important;
}

.tfms{
  font-family:'Montserrat', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif !important;
}

.tfms .tfms__shell{
  background:#fff !important;
  border:1px solid rgba(15,23,42,.08) !important;
  box-shadow:0 10px 30px rgba(0,0,0,.08) !important;
}

.tfms input, .tfms select, .tfms button{
  font-family:inherit !important;
}

.tfms .tfms__shell,
.tfms-tabs .tfms-tabs__wrap{
  border-radius:30px !important;
}

.tfms .tfms__field{
  border-radius:22px !important;
}

.tfms .tfms__control{
  width:100% !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  padding:0 !important;
  margin:0 !important;
  outline:0 !important;
}

.tfms select.tfms__control{
  -webkit-appearance:none !important;
  appearance:none !important;
}

.tfms .tfms__submit{
  background:#71C003 !important;
  border:0 !important;
  color:#fff !important;
  border-radius:22px !important;
}

/* Extra filters hard overrides (prevent theme pink hover/active) */
.tfms .tfms__filters-toggle,
.tfms .tfms__filters-toggle:active,
.tfms .tfms__filters-toggle:focus,
.tfms .tfms__filters-toggle:focus-visible{
  background:rgba(248,250,252,.7) !important;
  border:1px solid rgba(15,23,42,.08) !important;
  color:rgba(15,23,42,.85) !important;
  box-shadow:none !important;
}

/* Keep our hover (soft), but block Elementor color swaps */
.tfms .tfms__filters-toggle:hover{
  background:rgba(248,250,252,.7) !important;
  border:1px solid rgba(15,23,42,.08) !important;
  color:rgba(15,23,42,.85) !important;
  box-shadow:0 6px 16px rgba(0,0,0,.06) !important;
  opacity:.96 !important;
}

/* Keep our own (green) focus ring, not Elementor colors */
.tfms .tfms__filters-toggle:focus-visible{
  box-shadow:0 0 0 4px rgba(113,192,3,.12), 0 6px 16px rgba(0,0,0,.06) !important;
  border-color:rgba(113,192,3,.55) !important;
  background:#fff !important;
}
.tfms .tfms__filters-control{
  width:100% !important;
  border:0 !important;
  background:transparent !important;
  color:#0f172a !important;
  box-shadow:none !important;
  padding:0 !important;
  margin:0 !important;
}

/* Icon buttons (apply/reset) hard overrides */
.tfms .tfms__filters-btn--apply,
.tfms .tfms__filters-btn--apply:hover,
.tfms .tfms__filters-btn--apply:active,
.tfms .tfms__filters-btn--apply:focus,
.tfms .tfms__filters-btn--apply:focus-visible{
  background:#71C003 !important;
  border:0 !important;
  color:#fff !important;
}

.tfms .tfms__filters-btn--reset,
.tfms .tfms__filters-btn--reset:hover,
.tfms .tfms__filters-btn--reset:active,
.tfms .tfms__filters-btn--reset:focus,
.tfms .tfms__filters-btn--reset:focus-visible{
  background:#fff !important;
  border:1px solid rgba(15,23,42,.12) !important;
  color:rgba(15,23,42,.85) !important;
}

.tfms-tabs .tfms-tabs__tab{
  border-radius:18px !important;
  border:1px solid transparent !important;
  background:transparent !important;
}

.tfms-tabs .tfms-tabs__tab.is-active{
  border-color:rgba(113,192,3,.35) !important;
  box-shadow:0 6px 16px rgba(0,0,0,.08) !important;
  background:#fff !important;
}

.tfms-tabs .tfms-tabs__tab-icon{
  background:#fff !important;
}

.tfms .tfms__icon svg,
.tfms-tabs .tfms-tabs__tab svg{
  stroke:currentColor !important;
}


/* Ensure native date/time pickers work on mobile */
.tfms__control[type="date"],
.tfms__control[type="time"],
.tfms__control[type="datetime-local"]{
  -webkit-appearance:auto !important;
  appearance:auto !important;
}

/* Custom select (app-like) */
.tfms-sel{ position:relative; }
.tfms-sel select.tfms__control{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.tfms-sel__btn{
  width:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  background:transparent !important;
  border:0 !important;
  padding:0 !important;
  margin:0 !important;
  cursor:pointer !important;
  font:inherit !important;
  color:#0f172a !important;
}
.tfms-sel__txt{
  min-width:0 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  font-size:15px !important;
  font-weight:600 !important;
}
.tfms-sel__chev{
  flex:0 0 auto !important;
  width:18px !important;
  height:18px !important;
  color:rgba(15,23,42,.55) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.tfms-sel__pop{
  position:absolute !important;
  left:-10px !important;
  right:-10px !important;
  top:calc(100% + 10px) !important;
  z-index:9999 !important;
  background:#fff !important;
  border:1px solid rgba(15,23,42,.10) !important;
  border-radius:18px !important;
  box-shadow:0 18px 48px rgba(2,6,23,.16) !important;
  padding:10px !important;
  font-family:'Montserrat', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif !important;
}

.tfms-sel.tfms-sel--up .tfms-sel__pop{
  top:auto !important;
  bottom:calc(100% + 10px) !important;
}
.tfms-sel__search{
  width:100% !important;
  border:1px solid rgba(15,23,42,.10) !important;
  border-radius:14px !important;
  padding:10px 12px !important;
  font:inherit !important;
  font-size:14px !important;
  outline:0 !important;
  margin-bottom:8px !important;
}
.tfms-sel__list{
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
  /* ~5.5 options visible, then internal scroll */
  max-height:246px !important;
  overflow:auto !important;
}
.tfms-sel__opt{
  padding:10px 10px !important;
  border-radius:14px !important;
  cursor:pointer !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  color:#0f172a !important;
  font-weight:600 !important;
  font-size:14px !important;
}
.tfms-sel__opt:hover{ background:rgba(15,23,42,.05) !important; }
.tfms-sel__opt.is-selected{ background:rgba(113,192,3,.10) !important; }
.tfms-sel__check{
  width:18px; height:18px;
  color:rgba(113,192,3,.95);
  display:none;
}
.tfms-sel__opt.is-selected .tfms-sel__check{ display:block; }

@media (max-width: 520px){
  .tfms-sel__pop{ left:-6px !important; right:-6px !important; }
}


/* --- Mobile improvements for search form (override theme/elementor) --- */
@media (max-width: 767px){
  .tf-search-modern, .tf-search-modern *{ box-sizing:border-box; }

  /* Tabs spacing */
  .tf-search-tabs{
    padding:10px !important;
    border-radius:24px !important;
  }
  .tf-search-tabs__btn{
    flex:1 1 auto !important;
    justify-content:center !important;
    padding:10px 12px !important;
    border-radius:18px !important;
    gap:8px !important;
  }

  /* Fields look like app inputs */
  .tf-search-modern .tf-field{
    padding:12px 14px !important;
    border-radius:22px !important;
    min-height:64px !important;
  }
  .tf-search-modern .tf-field__label{
    font-size:12px !important;
    letter-spacing:.08em !important;
    opacity:.8 !important;
    margin-bottom:4px !important;
  }
  .tf-search-modern .tf-field__control{
    font-size:16px !important;
    line-height:1.2 !important;
    padding:0 !important;
  }
  .tf-search-modern .tf-field__icon{
    width:36px !important;
    height:36px !important;
    border-radius:999px !important;
    flex:0 0 36px !important;
  }
  .tf-search-modern .tf-field__chevron{
    width:18px !important;
    height:18px !important;
    flex:0 0 18px !important;
    opacity:.7 !important;
  }

  /* Custom select dropdown better padding on mobile */
  .tf-select__trigger{
    min-height:44px !important;
    padding:8px 0 !important;
  }
  .tf-select__value{
    font-size:16px !important;
  }
  .tf-select__menu{
    border-radius:18px !important;
    max-height:56vh !important;
  }
  .tf-select__search input{
    font-size:16px !important;
    padding:12px 14px !important;
  }
  .tf-select__option{
    padding:12px 14px !important;
    font-size:16px !important;
  }

  /* Date/time inputs: keep native pickers on mobile */
  .tf-search-modern input[type="date"],
  .tf-search-modern input[type="time"],
  .tf-search-modern input[type="datetime-local"]{
    -webkit-appearance:auto !important;
    appearance:auto !important;
  }
}






/* --- Tabs: subtle frame for inactive, green-accent for active --- */
.tf-search-tabs .tf-search-tabs__btn{
  background: rgba(15, 23, 42, 0.02) !important;
  border: 1px solid rgba(15, 23, 42, 0.10) !important;
  box-shadow: none !important;
}
.tf-search-tabs .tf-search-tabs__btn.is-active{
  background: #fff !important;
  border-color: rgba(113,192,3,.45) !important;
}
.tf-search-tabs .tf-search-tabs__btn:not(.is-active):hover{
  background: rgba(15, 23, 42, 0.035) !important;
  border-color: rgba(15, 23, 42, 0.14) !important;
}

/* Apply same look for any TF tabs container */
.tf-tabs .tf-search-tabs__btn,
.tf-tabs .tf-tabs__btn{
  background: rgba(15, 23, 42, 0.02) !important;
  border: 1px solid rgba(15, 23, 42, 0.10) !important;
  box-shadow:none !important;
}
.tf-tabs .tf-search-tabs__btn.is-active,
.tf-tabs .tf-tabs__btn.is-active{
  background:#fff !important;
  border-color: rgba(113,192,3,.45) !important;
}




/* --- Tabs: subtle inactive background (strong override) --- */
.tf-search-modern .tf-search-tabs__btn,
.tf-search-tabs .tf-search-tabs__btn{
  background: rgba(15, 23, 42, 0.03) !important;
  border: 1px solid rgba(15, 23, 42, 0.08) !important;
}
.tf-search-modern .tf-search-tabs__btn.is-active,
.tf-search-tabs .tf-search-tabs__btn.is-active,
.tf-search-modern .tf-search-tabs__btn[aria-selected="true"],
.tf-search-tabs .tf-search-tabs__btn[aria-selected="true"]{
  background: #fff !important;
  border-color: rgba(113,192,3,.45) !important;
}

.tfms-tabs__tab:hover{
  background: rgba(15,23,42,.05);
  border-color: rgba(15,23,42,.10);
}

/* (legacy extra filters styles removed; current filters live inside .tfms__filters-row/.tfms__filters-wrap) */
