:root {
  --search-form-height: 50px;
  --search-bar-bottom-border-height: 1px;
  --search-bar-bottom-border: var(--search-bar-bottom-border-height) solid #d0d0d0;
  --search-bar-bg-color: #f1f3f8;
  --search-bar-text-color: #505050;
  --search-bar-text-active-color: rgb(29 129 213);

  --search-input-radius: 0;

  /* drop down stylings */
  --search-h4-color: #000;
  --search-field-label-color: #555;
  --search-field-border-color: #d0d0d0;
  --search-drop-bg-color: #fcfcfc;

  --search-radio-toggled-bg-color: rgb(29 129 213);
  --search-radio-toggled-font-color: #fff;

  --map-propinfo-offset: 16px;

  /* checkboxes */
  --search-checkbox-off-bg-color: #fff;
  --search-checkbox-off-border-color: #d0d0d0;

  --search-checkbox-on-bg-color: rgb(29 129 213);
  --search-checkbox-on-border-color: rgb(29 129 213);

  --search-checkbox-size: 18px;
  --search-checkbox-top-offset: 2px;
  --search-checkbox-check-size: 12px 12px;
  --search-checbkox-check-offset: 2px 2px;
  --search-checkbox-right-margin: 4px;
}

.debug {
  position: fixed;
  bottom: 0;
  left: 0;
  background: #ccc;
  padding: 32px;
  z-index: 5555555;
  line-height: 1.85;
  letter-spacing: 1px;
  height: 200px;
  overflow-y: scroll;
  font-size: 12px;
}

.wprl-search-block {
  padding-right: var(--wp--style--root--padding-right);
  padding-left: var(--wp--style--root--padding-left);
  background: var(--search-bar-bg-color);
  height: var(--search-form-height);
  display: flex;
  justify-content: flex-start;
  align-items: center;
  border-bottom: var(--search-bar-bottom-border);

  position: fixed;
  top: calc(var(--header-height) + var(--adminbar-height));
  width: 100%;

  z-index: 50;
  letter-spacing: 0.05rem;
}

.wp-block-wprl-listing-search-block {
  display: flex;
  gap: 32px;
  width: 100%;
  max-width: var(--max-content-width);
  margin-left: auto;
  margin-right: auto;

  position: relative;
}

/* listing search form */
form.listing-search {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: nowrap;

  background: var(--search-bar-bg-color);
  width: 100%;

  gap: 32px;
}

form.listing-search .no-desktop {
  display: none;
}

form.listing-search .save-search {
  margin-left: auto;
}

form.listing-search .save-search button {
  font-family: var(--main-font);
  letter-spacing: 0.05rem;
  cursor: pointer;
  background-color: transparent;
  border: none;
  padding: 0;
  color: var(--search-bar-text-color);
  fill: var(--search-bar-text-color);

  font-size: 0.875rem;
  text-transform: uppercase;
}

form.listing-search .save-search button:hover {
  color: var(--search-bar-text-active-color);
}

.search-field > button {
  font-family: var(--main-font);
  letter-spacing: 0.05rem;
  display: flex;
  gap: 8px;
  align-items: center;
  cursor: pointer;
  background-color: transparent;
  border: none;
  padding: 0;
  color: var(--search-bar-text-color);
  fill: var(--search-bar-text-color);
}

.search-field > button:hover {
  color: var(--search-bar-text-active-color);
}

.search-field > button svg {
  display: block;
}

.search-field > button span {
  font-size: 0.875rem;
  text-transform: uppercase;
}

.search-field > button .down svg {
  transition: transform 0.1s linear;

  height: 15px !important;
}

.search-field.active > button {
  color: var(--search-bar-text-active-color);
  fill: var(--search-bar-text-active-color);
}

.search-field.active > button .down svg {
  transform: rotate(180deg);
}

.search-field .drop-wrap {
  position: absolute;
  z-index: 45;
  margin-top: 14px;
}

.search-field .dropdown {
  background: var(--search-drop-bg-color);
  padding: 16px;
  padding-bottom: 16px;
  border: var(--search-bar-bottom-border);
  color: #000;

  display: none;
}

.search-field.active .dropdown {
  display: block;
}

.search-field#keyword .drop-wrap {
  min-width: 300px;
  max-width: 600px;
}

#location2-ts-dropdown,
.search-field#keyword .ts-dropdown-content {
  min-height: 280px;
  display: flex;
  flex-wrap: wrap;
}

#location2-ts-dropdown div,
.search-field#keyword .ts-dropdown-content div {
  width: 50%;
}

.search-field .optgroup {
  border-bottom: 1px solid #ccc;
  padding-bottom: 8px;
  margin-bottom: 8px;
  background-color: var(--listing-overview-bgcolor);
  width: 100% !important;
  display: flex;
  flex-wrap: wrap;
}

.search-field .optgroup-header {
  width: 100% !important;
  text-transform: uppercase;
  font-size: 14px;
  background-color: var(--listing-overview-bgcolor);
  color: var(--search-h4-color);
}

.search-field .optgroup .active {
  background-color: rgba(0, 0, 0, 0.05);
  color: #000;
}

.search-field h4 {
  font-family: var(--sans-serif);
  color: rgba(10, 74, 129, 1);
  font-size: 1rem;
  font-weight: normal;
  margin: -5px 0 8px 0;
  padding: 0;
  text-transform: uppercase;
}

.search-field .dropdown label {
  color: var(--search-field-label-color);
  display: block;
  margin-bottom: 5px;
  text-transform: uppercase;
  font-size: 0.7rem;
}

.search-field .dropdown input {
  display: block;
  margin-bottom: 16px;

  border: 1px solid var(--search-field-border-color);
}

.search-field .dropdown input[type="text"] {
  padding: 4px;
  border-radius: var(--search-input-radius);
  width: 100%;
}

.search-field .dropdown input:last-child {
  margin-bottom: 0;
}

.search-field input::placeholder {
  text-transform: uppercase;
}

.search-field select {
  width: 100%;
  min-width: 150px;
  margin-bottom: 16px;
  padding: 8px 10px 8px 10px;
  border: 1px solid #ccc;
  border-radius: 0;
  font-size: 14px;
  font-family: var(--main-font);
}

.search-field .selectpicker {
  width: 100%;
  min-width: 150px;
  font-family: var(--main-font);
}

.search-field .choice-group {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  padding: 0;
  margin: 0;
  width: 275px;
}

.search-field .choice-group input {
  display: none;
}

.search-field .choice-group label span {
  padding: 5px 10px 5px 10px;
  font-size: 0.875rem;
  border-width: 1px 1px 1px 0;
  border-color: var(--search-field-border-color);
  border-style: solid;
  cursor: pointer;
}

.search-field .choice-group li:first-child label span {
  border-left: 1px solid var(--search-field-border-color);
  border-radius: var(--search-input-radius) 0 0 var(--search-input-radius);
}

.search-field .choice-group li:last-child label span {
  border-radius: 0 var(--search-input-radius) var(--search-input-radius) 0;
}

.search-field .choice-group input:checked + span {
  background: var(--search-radio-toggled-bg-color);
  color: var(--search-radio-toggled-font-color);
}

.search-field .checkbox-list {
  display: grid;
  column-gap: 8px;
  row-gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.search-field .checkbox-list li {
  position: relative;
}

.search-field .checkbox-list li label {
  font-size: 0.875rem;
  position: relative;
  padding-left: 20px;
  cursor: pointer;
  display: block;
}

.search-field .checkbox-list label span {
  padding-left: var(--search-checkbox-right-margin);
}

.search-field .checkbox-list input[type="checkbox"] {
  display: none;
  position: relative;
}

.search-field .checkbox-list input[type="checkbox"] + span:after {
  content: "";
  width: var(--search-checkbox-size);
  height: var(--search-checkbox-size);
  position: absolute;
  left: 0;
  top: var(--search-checkbox-top-offset);
  border: 1px solid var(--search-checkbox-off-border-color);
  border-radius: var(--search-input-radius);
  background: var(--search-checkbox-off-bg-color);
}

.search-field .checkbox-list input[type="checkbox"]:checked + span:after {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDggNTEyIiBzdHlsZT0iZmlsbDogI2ZmZjsiPjxwYXRoIGQ9Ik00MzguNiAxMDUuNGMxMi41IDEyLjUgMTIuNSAzMi44IDAgNDUuM2wtMjU2IDI1NmMtMTIuNSAxMi41LTMyLjggMTIuNS00NS4zIDBsLTEyOC0xMjhjLTEyLjUtMTIuNS0xMi41LTMyLjggMC00NS4zczMyLjgtMTIuNSA0NS4zIDBMMTYwIDMzOC43IDM5My40IDEwNS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAweiIvPjwvc3ZnPg==");
  background-repeat: no-repeat;
  background-size: var(--search-checkbox-check-size);
  background-position: var(--search-checbkox-check-offset);
  background-color: var(--search-checkbox-on-bg-color);
  border: 1px solid var(--search-checkbox-on-border-color);
}

.listing-status .checkbox-list {
  grid-template-columns: 1fr 1fr 1fr 1fr;
}

.property-type .checkbox-list {
  grid-template-columns: 1fr 1fr 1fr;
}

#view-type > button {
  font-family: var(--main-font);
  letter-spacing: 0.05rem;
  display: flex;
  gap: 8px;
  align-items: center;
  cursor: pointer;
  background-color: transparent;
  border: none;
  padding: 0;
  color: var(--search-bar-text-color);
  fill: var(--search-bar-text-color);
}

#view-list svg,
#view-map svg {
  display: block;
  width: auto;
  height: 20px !important;
}

#view-list span,
#view-map span {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  align-items: center;
}

#more-filters.search-field .drop-wrap {
  top: unset;
  left: 0;
  width: 800px;
  max-width: calc(100vw - 64px);
  margin-top: 13px;
  border-radius: 0;
}

#more-filters .dropdown {
  max-height: unset;
  height: calc(100vh - var(--search-form-height) - var(--header-height) - var(--adminbar-height) + 5px);
  padding-right: var(--wp--style--root--padding-right);
  padding-left: var(--wp--style--root--padding-left);
}

#more-filters .dropdown.has-scroll {
  overflow: auto;
}

#more-filters .dropdown > div {
  margin: 0 0 24px 0;
}

#more-filters .more-filters-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 32px;
}

#more-filters .more-filters-grid .column {
  margin-bottom: 24px;
}

#more-filters .more-filters-grid .column.span-all {
  grid-column: 1 / 3;
}

#more-filters .more-filters-grid .column.header-column {
  margin-bottom: 0;
}

#more-filters .min-max-grid {
  display: grid;
  grid-template-columns: 1fr 20px 1fr;
  align-items: center;
  text-align: center;
  column-gap: 16px;
}

#more-filters .min-max-grid div {
  text-align: left;
}

#more-filters select {
  margin-bottom: 0;
}

#more-filters .text-center {
  text-align: center;
}

#more-filters .property-features .checkbox-list {
  grid-template-columns: 1fr 1fr 1fr 1fr;
}

#more-filters .filter-nav button.search-near-me {
  display: none !important;
  border: 0;
  padding: 5px 10px;
  text-transform: uppercase;
  border-radius: 3px;
  background: var(--search-radio-toggled-bg-color);
  color: var(--search-radio-toggled-font-color);
  cursor: pointer;
}

#more-filters .filter-nav button.reset {
  background: #000;
  color: #fff;
  border: 0;
  cursor: pointer;
  border-radius: 3px;
  text-transform: uppercase;
}

/* hide home fields on land searches */
.search-land .homes {
  display: none;
}

/* hide land fields on home searches */
.search-homes .land {
  display: none;
}

/* hide more filters lot size in more filters since its already in main search */
.search-land .more-filters-grid .lotsize {
  display: none;
}

.sfwdpress-select button {
  display: flex;
  align-items: center;
  width: 100%;
  text-align: left;
  font-size: 1rem;
  border: 1px solid var(--search-field-label-color);
  padding: 4px;
  border-radius: var(--search-input-radius);
}

.sfwdpress-select button span:first-child {
  width: 100%;
}

.sfwdpress-select button svg {
  display: block;
}

#save-search-popup .checkbox-field {
  margin-bottom: 16px;
}

#save-search-popup .checkbox-field label {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
}

#save-search-popup .save-search-success h3 {
  margin-bottom: 16px;
  font-style: italic;
}

#save-search-popup .save-search-success p {
  margin-bottom: 8px;
}

#save-search-popup .save-search-success p a {
  color: var(--content-link-color);
}

#save-search-popup .save-search-success p:last-child {
  margin-bottom: 0;
}

#save-search-popup .save-search-success button {
  margin-bottom: 0;
  cursor: pointer;
  background: transparent;
  border: 0;
  color: var(--content-link-color);
  padding: 0;
}

/* tablet and lower */
@media only screen and (max-width: 1023px) {
  body.page-template-page-property-search main {
    margin-top: 0;
  }

  #listing-search > :not(#more-filters) {
    display: none;
  }

  #listing-search #more-filters .filter-text span {
    display: none;
  }

  #listing-search .save-search {
    display: block !important;
  }

  #listing-search {
    width: 100%;
  }

  #more-filters.active ~ #see-results {
    display: block;
    margin-left: auto;
    padding: 14px 8px;
    margin-right: -16px;
  }

  #more-filters.active ~ .save-search {
    display: none !important;
  }

  #listing-search #see-results svg {
    height: 20px !important;
    transform: rotate(180deg);
  }

  #listing-search #see-results .load {
    display: none;
  }

  #listing-search #see-results .load svg {
    fill: var(--content-link-color);
    animation-name: fa-spin;
    animation-direction: var(--fa-animation-direction, normal);
    animation-duration: var(--fa-animation-duration, 1s);
    animation-iteration-count: var(--fa-animation-iteration-count, infinite);
    animation-timing-function: var(--fa-animation-timing, steps(8));
  }

  @keyframes fa-spin {
    0% {
      transform: rotate(0deg);
    }

    to {
      transform: rotate(1turn);
    }
  }

  #more-filters.search-field .drop-wrap {
    max-width: 100vw;
    margin-left: -32px;
  }

  #more-filters .no-desktop {
    display: grid;
  }

  .search-land #more-filters .homes {
    display: none;
  }

  .search-land .more-filters-grid .lotsize {
    display: block;
  }
}

@media only screen and (max-width: 1023px) {
  .search-field .optgroup .active {
    background-color: transparent;
  }
}

/* mobile */
@media only screen and (max-width: 767px) {
  #more-filters .filter-nav {
    display: block;
  }

  #more-filters.search-field .drop-wrap {
    max-width: 100vw;
    margin-left: -16px;
  }

  #more-filters .more-filters-grid {
    grid-template-columns: 1fr;
  }

  #more-filters .more-filters-grid .column.span-all {
    grid-column: 1;
  }

  #more-filters .listing-status .checkbox-list {
    grid-template-columns: 1fr 1fr;
  }

  #more-filters .property-type .checkbox-list {
    grid-template-columns: 1fr 1fr;
  }

  #more-filters .property-type .checkbox-list li {
    grid-column: unset !important;
  }

  #more-filters .property-features .checkbox-list {
    grid-template-columns: 1fr 1fr;
  }

  #more-filters .property-type .checkbox-list li:nth-child(4) ~ li {
    grid-column: span 2 !important;
  }

  .search-field .selectpicker {
    min-width: 120px;
  }

  #view-type {
    display: flex !important;
  }

  #view-type #view-list {
    display: none;
  }

  #view-type #view-map {
    display: flex;
  }

  form.listing-search .filter-nav {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }

  #more-filters .filter-nav button.search-near-me {
    display: block !important;
  }
}
