/* Keep search controls compact until the visitor asks to refine results. */
.mobile-filter-toggle {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto;
  min-height: 36px;
  border: 1px solid #ccd7da;
  background: #fff;
  color: var(--navy);
  padding: 6px 12px;
  font: 600 12px "Noto Sans Thai", sans-serif;
  cursor: pointer;
  white-space: nowrap;
}

@media (min-width: 901px) {
  .mobile-filter-toggle {
    display: none !important;
  }
}

@media (max-width: 900px) {
.home-search-panel:not(.filters-open),
.map-search-panel:not(.filters-open),
.directory-filters:not(.filters-open) {
  display: none;
}

.ranking-filters:not(.filters-open) .ranking-search-tabs,
.ranking-filters:not(.filters-open) .ranking-filter-fields {
  display: none;
}

.home-search-panel.filters-open,
.map-search-panel.filters-open,
.directory-filters.filters-open {
  display: block;
  margin: 12px 0 16px;
}

.directory-filters.filters-open {
  display: grid;
}

.home-search-panel.filters-open .search-tabs,
.map-search-panel.filters-open .search-tabs,
.ranking-filters.filters-open .ranking-search-tabs {
  display: flex;
}

.home-search-panel.filters-open .search-fields,
.map-search-panel.filters-open .search-fields,
.ranking-filters.filters-open .ranking-filter-fields {
  display: grid;
}
}

.section-heading-actions,
.map-heading-buttons {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.section-heading-actions .recommendation-all-link {
  margin: 0;
}

.listing-heading-row {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
}

.listing-heading-row > div {
  min-width: 0;
}

.listing-heading-row .listing-intro {
  margin-bottom: 0;
}

.map-heading-buttons .map-expand-button,
.map-heading-buttons .mobile-filter-toggle {
  min-height: 36px;
  padding: 6px 12px;
}

.ranking-toolbar-layout > .ranking-member-search {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 10px 12px;
}

.ranking-member-search p {
  font-size: 12px;
  line-height: 1.4;
}

.ranking-member-search .line-login {
  min-height: 36px;
  margin-top: 8px;
  padding: 6px 10px;
  font-size: 12px;
}

@media (max-width: 850px) {
  .section-heading,
  .listing-heading-row,
  .map-heading-actions {
    align-items: end;
    gap: 8px;
  }

  .section-heading-actions,
  .map-heading-buttons {
    flex: 0 0 auto;
    gap: 5px;
  }

  .section-heading-actions .recommendation-all-link,
  .section-heading-actions .mobile-filter-toggle,
  .listing-heading-row .mobile-filter-toggle,
  .map-heading-buttons button {
    min-height: 34px;
    padding: 5px 8px;
    font-size: 11px;
  }

  .home-search-panel.filters-open,
  .map-search-panel.filters-open,
  .directory-filters.filters-open {
    margin: 8px 0 12px;
  }

  .ranking-toolbar-layout > .ranking-member-search {
    margin: 0;
    border: 0;
    background: transparent;
    padding: 0;
  }

  .ranking-toolbar-layout {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 8px;
  }

  .ranking-toolbar-layout > .ranking-member-search p {
    display: none;
  }

  .ranking-toolbar-layout > .ranking-member-search .line-login {
    min-height: 34px;
    margin: 0;
    padding: 5px 8px;
    font-size: 11px;
  }
}

@media (max-width: 560px) {
  .section-heading > div:first-child,
  .listing-heading-row > div,
  .map-heading-actions > div:first-child {
    min-width: 0;
  }

  .section-heading h2,
  .listing-heading-row h1,
  .map-heading-actions h1 {
    font-size: 22px;
  }

  .listing-heading-row .listing-intro,
  .map-heading-actions .eyebrow {
    display: none;
  }
}
