/* Keep search and browsing tools close to the organisations they reveal. */
:root {
  --discovery-toolbar-height: 54px;
  --discovery-directory-width: 360px;
}

.explore-view {
  position: relative;
  grid-template-columns: var(--discovery-directory-width) minmax(0, 1fr);
  grid-template-rows: var(--discovery-toolbar-height) minmax(0, 1fr);
  min-height: 460px;
}
.discovery-toolbar {
  grid-column: 1 / -1;
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 3px 22px;
  background: #fff;
  border-bottom: 1px solid var(--line);
  z-index: 406;
  min-width: 0;
}
.discovery-view-switch {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--surface);
  flex: none;
}
.discovery-view-switch button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 40px;
  padding: 6px 13px;
  border-radius: 4px;
  color: var(--muted);
  font-size: 13.5px;
  font-weight: 700;
  white-space: nowrap;
}
.discovery-view-switch svg { width: 15px; height: 15px; }
.discovery-view-switch button:hover { color: var(--blue); }
.discovery-view-switch button:is(.active, [aria-pressed="true"]) {
  color: var(--blue);
  background: #fff;
  box-shadow: 0 1px 4px #14263812;
}
.discovery-toolbar .visit-cta { flex: none; min-height: 40px; padding: 8px 15px; font-size: 14px; }
.discovery-toolbar .visit-cta svg { width: 16px; height: 16px; }
.directory-panel { grid-column: 1; grid-row: 2; }
.map-panel { grid-column: 2; grid-row: 2; }
.explore-view[data-layout="map"],
.explore-view[data-layout="directory"] { grid-template-columns: minmax(0, 1fr); }
.explore-view[data-layout="map"] .directory-panel { display: none; }
.explore-view[data-layout="map"] .map-panel { grid-column: 1; }
.explore-view[data-layout="directory"] .map-panel { display: none; }
.explore-view[data-layout="directory"] .directory-panel { border-right: 0; }
.explore-view .mobile-view-toggle { display: none; }

.directory-intro { padding: 20px 22px 0; }
.directory-intro h1 {
  font-size: 25px;
  letter-spacing: -.6px;
  line-height: 1.15;
  margin: 0 0 6px;
}
.directory-intro > p {
  font-size: 13.5px;
  line-height: 1.5;
  margin: 0 0 14px;
}
.directory-intro .search-field { min-height: 46px; }
.directory-intro .search-field input { height: 44px; font-size: 14px; }
.directory-sort-control { position: relative; display: grid; flex: 0 1 auto; }
.directory-sort-control::after {
  content: '';
  position: absolute;
  inset-inline-end: 11px;
  inset-block-start: 50%;
  width: 6px;
  height: 6px;
  border-inline-end: 1.5px solid currentColor;
  border-block-end: 1.5px solid currentColor;
  transform: translateY(-75%) rotate(45deg);
  pointer-events: none;
  color: var(--muted);
}
.directory-controls select.sort-button {
  appearance: none;
  width: auto;
  max-width: 148px;
  padding: 4px 29px 4px 9px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background-color: var(--surface);
  color: var(--ink);
  cursor: pointer;
}
@media (forced-colors: active) {
  .directory-sort-control::after { display: none; }
  .directory-controls select.sort-button { appearance: auto; padding-inline-end: 8px; }
}
.directory-shortcut-menu {
  margin-block: 7px;
  border-block-start: 1px solid var(--line);
}
.directory-shortcut-menu > summary {
  min-height: 40px;
  display: flex;
  align-items: center;
  gap: 7px;
  width: fit-content;
  padding-inline-end: 8px;
  list-style: none;
  color: var(--blue);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}
.directory-shortcut-menu > summary::-webkit-details-marker { display: none; }
.directory-shortcut-menu > summary svg { width: 14px; height: 14px; }
.directory-shortcut-menu[open] > summary svg { transform: rotate(180deg); }
.discovery-shortcuts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 10px;
}
.discovery-shortcuts button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  max-width: 100%;
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #f8fafc;
  color: var(--blue);
  font-size: 12.5px;
  flex: none;
}
.discovery-shortcuts button:hover { background: #eef5fb; border-color: #b4cce0; }
.discovery-shortcuts button.active { background: #eef5fb; border-color: #86b4d7; }
.directory-intro .category-filters {
  flex-wrap: wrap;
  gap: 5px;
  overflow-x: visible;
  scrollbar-width: thin;
  scrollbar-color: #ced7df transparent;
  margin: 10px 0 9px;
  padding-bottom: 3px;
}
.directory-intro .filter-pill { min-height: 40px; padding: 7px 10px; font-size: 12.5px; flex: none; }
.directory-controls { min-height: 40px; padding: 0 0 5px; gap: 8px; }
.directory-controls .text-button,
.directory-controls .sort-button { min-height: 36px; }
.directory-results { padding: 0 22px; }
.organisation-card { padding: 14px 0; gap: 11px; }
.organisation-card h3 { font-size: 14px; }
.organisation-card .organisation-avatar { width: 40px; height: 40px; font-size: 16px; }
.organisation-card-description {
  display: block;
  white-space: nowrap;
  text-overflow: ellipsis;
  -webkit-line-clamp: unset;
  font-size: 13.5px;
  line-height: 1.5;
  margin: 4px 0 6px;
}
.organisation-meta .tag:not(.category-tag):not(.directory-only-tag) { display: none; }
.organisation-meta .tag { font-size: 12px; padding: 3px 5px; }
.organisation-meta .directory-only-tag { color: var(--muted); background: var(--surface); }
.organisation-card.selected { background: #eef6fc; }
.organisation-card.selected:before { top: 14px; bottom: 14px; left: -11px; }
.directory-footer { padding: 10px 22px; }
.directory-footer .text-button,
.directory-footer .admin-link { min-height: 40px; display: inline-flex; align-items: center; }
.investor-filters {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 9px;
  margin: 0 0 8px;
}
.investor-filters[hidden] { display: none; }
.investor-filter-note { grid-column: 1 / -1; font-size: 12px; color: var(--muted); margin: 0; }
.investor-filters label { min-width: 0; font-size: 12px; font-weight: 700; color: var(--muted); }
.investor-filters select {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 40px;
  margin-top: 4px;
  padding: 7px 9px;
  border: 1px solid #dce3e9;
  border-radius: 5px;
  background: #fff;
  color: var(--ink);
  font-size: 13.5px;
}

/* The full directory uses the available width, with search remaining above its scroll area. */
.explore-view[data-layout="directory"] .directory-intro { padding: 23px 30px 0; }
.explore-view[data-layout="directory"] .directory-intro h1 { font-size: 27px; }
.explore-view[data-layout="directory"] .directory-intro .search-field { max-width: 600px; }
.explore-view[data-layout="directory"] .discovery-shortcuts { flex-wrap: wrap; overflow: visible; }
.explore-view[data-layout="directory"] .category-filters { flex-wrap: wrap; }
.explore-view[data-layout="directory"] .investor-filters { max-width: 600px; }
.explore-view[data-layout="directory"] .directory-results {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  align-content: start;
  gap: 12px;
  padding: 15px 30px 25px;
  background: var(--surface);
}
.explore-view[data-layout="directory"] .organisation-card {
  align-self: stretch;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 15px;
  background: #fff;
}
.explore-view[data-layout="directory"] .organisation-card:hover { border-color: #b4cce0; }
.explore-view[data-layout="directory"] .organisation-card.selected { border-color: #86b4d7; background: #eef6fc; }
.explore-view[data-layout="directory"] .organisation-card.selected:before { left: 0; }
.explore-view[data-layout="directory"] .directory-results > :is(.empty-state, .loading-state) { grid-column: 1 / -1; }
.explore-view[data-layout="directory"] .directory-footer { padding-left: 30px; padding-right: 30px; }

.map-browse-controls { display: flex; align-items: center; gap: 8px; min-width: 0; }
.map-search-button {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 8px 13px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 3px 10px #162b3908;
  color: var(--ink);
  font-size: 13.5px;
  font-weight: 700;
  pointer-events: auto;
  white-space: nowrap;
}
.map-search-button svg { width: 16px; height: 16px; color: var(--blue); }
.explore-view[data-layout="map"] .map-search-button { display: inline-flex; }
.map-style-control { min-height: 44px; }
.map-control { width: 44px; height: 44px; }

/* Profiles stay above their originating view so Back returns to the same context. */
main > .profile-panel {
  position: fixed;
  top: calc(var(--header-height) + 16px);
  right: 16px;
  bottom: calc(var(--notice-height) + 16px);
  left: auto;
  width: 420px;
  max-width: calc(100vw - 32px);
  z-index: 600;
}
main[data-view="explore"] > .profile-panel {
  top: calc(var(--header-height) + var(--discovery-toolbar-height) + 16px);
}
.profile-actions-top .text-button,
.profile-actions-top .icon-button { min-height: 44px; }
.profile-links #profile-share { min-height: 44px; }
#profile-share-link {
  width: 100%;
  padding: 10px 12px;
  min-height: 42px;
  margin-top: 8px;
  background: var(--surface);
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 5px;
  font-size: 13.5px;
}

html[data-theme="dark"] :is(.discovery-toolbar,.map-search-button,.investor-filters select) {
  background: var(--theme-panel);
  color: var(--ink);
  border-color: var(--line);
}
html[data-theme="dark"] .discovery-view-switch { background: var(--theme-background); }
html[data-theme="dark"] .discovery-view-switch button:is(.active,[aria-pressed="true"]) { background: var(--theme-raised); }
html[data-theme="dark"] .discovery-shortcuts button { background: var(--theme-raised); border-color: var(--line); }
html[data-theme="dark"] .discovery-shortcuts button:is(:hover,.active) { background: #25445d; border-color: #668ba9; }
html[data-theme="dark"] .organisation-card.selected { background: #203f57; }
html[data-theme="dark"] .explore-view[data-layout="directory"] .organisation-card { background: var(--theme-panel); }
html[data-theme="dark"] .explore-view[data-layout="directory"] .organisation-card.selected { background: #203f57; border-color: #8acbff; }

@media (min-width: 1100px) {
  .explore-view[data-layout="directory"] .directory-intro {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(400px, .9fr);
    align-items: center;
    column-gap: 22px;
    row-gap: 10px;
    padding-top: 18px;
  }
  .explore-view[data-layout="directory"] .directory-intro h1 {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
  }
  .explore-view[data-layout="directory"] .directory-intro > p {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
    font-size: 13.5px;
  }
  .explore-view[data-layout="directory"] .directory-intro .search-field {
    grid-column: 1;
    grid-row: 2;
    width: 100%;
    min-width: 0;
  }
  .explore-view[data-layout="directory"] .directory-shortcut-menu {
    grid-column: 2;
    grid-row: 2;
    margin: 0;
    border-block-start: 0;
  }
  .explore-view[data-layout="directory"] .discovery-shortcuts button { padding-left: 9px; padding-right: 9px; }
  .explore-view[data-layout="directory"] .category-filters {
    grid-column: 1;
    grid-row: 3;
    margin: 0;
    padding: 0;
    gap: 5px;
  }
  .explore-view[data-layout="directory"] .investor-filters {
    grid-column: 2;
    grid-row: 3;
    width: 100%;
    max-width: 420px;
    margin: 0;
    gap: 5px 10px;
  }
  .explore-view[data-layout="directory"] .investor-filters label {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
  }
  .explore-view[data-layout="directory"] .investor-filters select { margin-top: 0; padding-left: 7px; padding-right: 7px; }
  .explore-view[data-layout="directory"] .investor-filter-note { line-height: 1.25; }
  .explore-view[data-layout="directory"] .directory-controls {
    grid-column: 1 / -1;
    grid-row: 4;
    min-height: 36px;
    padding: 0 0 4px;
  }
}

@media (min-width: 1600px) {
  :root { --discovery-directory-width: 380px; }
}
@media (max-width: 1100px) {
  :root { --discovery-directory-width: 330px; }
  .directory-intro { padding-left: 18px; padding-right: 18px; }
  .directory-results { padding-left: 18px; padding-right: 18px; }
  .directory-footer { padding-left: 18px; padding-right: 18px; }
  .directory-intro h1 { font-size: 23px; }
}
@media (max-width: 850px) {
  :root { --discovery-directory-width: 310px; }
  .discovery-toolbar { padding-left: 16px; padding-right: 16px; }
  .directory-intro { padding-left: 16px; padding-right: 16px; }
  .directory-results { padding-left: 16px; padding-right: 16px; }
  .directory-footer { padding-left: 16px; padding-right: 16px; }
}
@media (max-width: 650px) {
  :root { --discovery-toolbar-height: 54px; }
  .explore-view {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: var(--discovery-toolbar-height) minmax(0, 1fr);
    min-height: 400px;
  }
  .discovery-toolbar { padding: 4px 12px; gap: 8px; }
  .discovery-view-switch { flex: 1; min-width: 0; padding: 0; border: 0; gap: 4px; background: transparent; }
  .discovery-view-switch button { flex: 1; min-width: 0; min-height: 44px; padding: 6px 8px; font-size: 14px; gap: 5px; }
  .discovery-toolbar .visit-cta { min-height: 44px; padding: 8px 10px; gap: 6px; font-size: 13.5px; }
  .discovery-toolbar .visit-cta svg { width: 14px; height: 14px; }
  .discovery-view-switch button:is(.active,[aria-pressed="true"]) { background: var(--surface); box-shadow: none; }
  #layout-split-button { display: none; }
  .directory-panel {
    grid-column: 1;
    grid-row: 2;
    height: auto;
    min-height: 0;
    padding-bottom: 0;
    display: none;
  }
  .explore-view[data-layout="directory"] .directory-panel,
  .explore-view[data-layout="split"].mobile-list .directory-panel { display: flex; }
  .map-panel { grid-column: 1; grid-row: 2; height: auto; min-height: 0; }
  .explore-view[data-layout="directory"] .map-panel,
  .explore-view[data-layout="split"].mobile-list .map-panel { display: none; }
  .explore-view[data-layout="map"] .map-panel,
  .explore-view[data-layout="split"]:not(.mobile-list) .map-panel { display: block; }
  .directory-intro,
  .explore-view[data-layout="directory"] .directory-intro { padding: 17px 18px 0; }
  .directory-intro h1,
  .explore-view[data-layout="directory"] .directory-intro h1 { font-size: 24px; }
  .directory-intro > p { font-size: 13.5px; margin-bottom: 11px; }
  .directory-intro .search-field input { font-size: 15px; }
  .explore-view[data-layout="directory"] .category-filters { flex-wrap: wrap; }
  .discovery-shortcuts button { min-height: 40px; font-size: 13.5px; }
  .directory-intro .filter-pill { min-height: 40px; font-size: 13.5px; }
  .directory-results,
  .explore-view[data-layout="directory"] .directory-results {
    display: block;
    padding: 0 18px;
    background: #fff;
  }
  .explore-view[data-layout="directory"] .organisation-card {
    padding: 15px 0;
    border: 0;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
  }
  .organisation-card h3 { font-size: 15px; }
  .organisation-card .organisation-avatar { width: 42px; height: 42px; }
  .directory-footer,
  .explore-view[data-layout="directory"] .directory-footer { padding: 7px 18px; }
  .map-topbar { top: 12px; left: 12px; right: 12px; gap: 7px; }
  .map-browse-controls { gap: 6px; flex: 1; }
  .map-search-button { padding: 8px 10px; gap: 6px; font-size: 12.5px; }
  .explore-view .map-search-button { display: inline-flex; }
  .map-style-control { padding: 7px; gap: 4px; }
  .map-style-control svg { display: none; }
  .map-style-control select { padding: 2px 0; font-size: 12.5px; max-width: 90px; }
  .map-control { flex: none; width: 44px; height: 44px; }
  .leaflet-bottom .leaflet-control-zoom { margin-bottom: 35px; }
  main > .profile-panel,
  main[data-view="explore"] > .profile-panel {
    top: var(--header-height);
    bottom: var(--notice-height);
    left: 0;
    right: 0;
    width: 100%;
    max-width: none;
    border: 0;
    border-radius: 0;
  }
  .header-actions .icon-button { width: 44px; height: 44px; }
  html[data-theme="dark"] .explore-view[data-layout="directory"] .directory-results { background: var(--theme-panel); }
  html[data-theme="dark"] .explore-view[data-layout="directory"] .organisation-card { background: transparent; }
  html[data-theme="dark"] .explore-view[data-layout="directory"] .organisation-card.selected { background: #203f57; }
}
@media (max-width: 390px) {
  .brand-copy strong { font-size: 15px; }
  .navigation-group .nav-button { font-size: 13.5px; padding: 0 5px; }
  .navigation-group .nav-button svg { display: none; }
  .navigation-group .ask-button { padding-left: 7px; padding-right: 7px; }
}
