/* Section: partner_finder — EXALCO-Partners "Partners search" / EXALCO-Anakainizo "Find partner" (spec 11.1, 07.5) */

.ex-partner-finder { scroll-margin-top: var(--ex-scroll-offset); }
/* On /diktyo the heading is the intro section above: tighter top padding, as in the mockup. */
.ex-partner-finder--headless { padding-top: clamp(24px, 2.8vw, 40px); }

/* Head: the section-head component is printed with the "flush" modifier; spacing is set here (12px to the text, 26px to the controls). */
.ex-partner-finder__intro {
  max-width: 720px;
  margin: 12px 0 0;
  font-size: 14px;
  line-height: 1.65;
  color: var(--ex-ink);
}
.ex-partner-finder__controls { margin-top: 26px; }
.ex-partner-finder--headless .ex-partner-finder__controls { margin-top: 0; }

/* Search row */
.ex-partner-finder__search { display: flex; flex-direction: column; gap: 8px; margin-bottom: 22px; }
.ex-partner-finder__search-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.ex-partner-finder__input { flex: none; width: 340px; max-width: 100%; }
.ex-partner-finder__or { font-size: 11px; font-weight: 700; letter-spacing: .14em; color: var(--ex-placeholder); }
.ex-partner-finder__locate {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  gap: 9px;
  margin: 0;
  padding: 15px 18px;
  border: 1.5px solid var(--ex-line-input);
  border-radius: 0;
  background: var(--ex-white);
  color: var(--ex-ink);
  font-family: inherit;
  /* Rendered mockup: `font: 700 11.5px/1 inherit` is invalid and dropped → the button default 13.33px / 400 (button 265.6px wide). */
  font-size: 13.3333px;
  font-weight: 400;
  line-height: 16px;
  letter-spacing: .06em;
  cursor: pointer;
  transition: border-color var(--ex-t-btn), color var(--ex-t-btn);
}
.ex-partner-finder__locate > svg { flex: none; color: var(--ex-red); }
.ex-partner-finder__locate:hover,
.ex-partner-finder__locate:focus-visible { border-color: var(--ex-red); color: var(--ex-red); }
.ex-partner-finder__locate.is-loading { cursor: progress; color: var(--ex-text-soft); }
.ex-partner-finder__locate.is-active { border-color: var(--ex-red); background: var(--ex-red-tint); }
.ex-partner-finder__geo-status { margin: 0; font-size: 12px; line-height: 1.4; letter-spacing: .02em; color: rgba(35, 31, 32, .7); }

/* "Ή ΦΙΛΤΡΑΡΕΤΕ" divider */
.ex-partner-finder__divider {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 18px;
  font-size: 10.5px;
  font-weight: 700;
  line-height: normal;
  letter-spacing: .2em;
  color: var(--ex-placeholder);
}
.ex-partner-finder__divider::before,
.ex-partner-finder__divider::after { content: ""; flex: 1; height: 1px; background: rgba(35, 31, 32, .14); }

/* Filters */
.ex-partner-finder__filters { display: flex; flex-wrap: wrap; gap: 16px clamp(14px, 2vw, 28px); margin-bottom: 16px; }
.ex-partner-finder__filter { display: flex; flex-direction: column; gap: 8px; }
.ex-partner-finder__filter .ex-select { min-width: 240px; height: 46px; padding-block: 0; }
.ex-partner-finder__filter .ex-select:disabled { border-color: var(--ex-line-input); }
.ex-partner-finder__filter--chips { flex: 1; min-width: 280px; }
.ex-partner-finder__chips { gap: 8px; --ex-chip-border: rgba(35, 31, 32, .35); }
/* Mockup chips: 46px high, 16px side padding, capitals (term names are stored in sentence case). */
.ex-partner-finder__chips .ex-chip { min-height: 46px; padding-inline: 16px; text-transform: uppercase; }

.ex-partner-finder__count { margin: 0 0 18px; font-size: 13px; font-weight: 700; color: var(--ex-ink); }

/* List + map */
.ex-partner-finder__layout {
  display: grid;
  grid-template-columns: minmax(320px, .9fr) 1.1fr;
  align-items: start;
  gap: clamp(16px, 2vw, 28px);
}
.ex-partner-finder__results { min-width: 0; }
.ex-partner-finder__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: 640px;
  margin: 0;
  padding: 0 4px 0 0;
  list-style: none;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.ex-partner-finder__list > .ex-partner-card { flex: none; }
.ex-partner-finder__empty { padding: 22px 18px; border: 1.5px solid var(--ex-line); max-width: none; }

.ex-partner-finder__map-col { position: sticky; top: 120px; min-width: 0; }
.ex-partner-finder__map {
  position: relative;
  z-index: 0; /* keeps the map library's internal z-indexes under the header */
  display: flex;
  align-items: center;
  justify-content: center;
  height: clamp(420px, 52vh, 640px);
  border: 1.5px solid var(--ex-ink);
  background: var(--ex-tint);
  overflow: hidden;
}
.ex-partner-finder__map-fallback {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  max-width: 380px;
  padding: 24px;
  font-size: 13px;
  line-height: 1.6;
  text-align: center;
  color: var(--ex-text-muted);
}
.ex-partner-finder__map-fallback p { margin: 0; }
/* With JS the "needs JavaScript" line is replaced by the load button (or by nothing while the map loads). */
.js .ex-partner-finder__map[data-google-key] .ex-partner-finder__map-text,
.ex-partner-finder__map-failed,
.no-js .ex-partner-finder__map-note,
.no-js .ex-partner-finder__map [data-ex-partner-map-load] { display: none; }
.ex-partner-finder__map.is-loading .ex-partner-finder__map-fallback { opacity: .5; pointer-events: none; }
.ex-partner-finder__map.is-ready .ex-partner-finder__map-fallback { display: none; }
.ex-partner-finder__map.is-failed .ex-partner-finder__map-fallback > * { display: none; }
.ex-partner-finder__map.is-failed .ex-partner-finder__map-failed { display: block; }
.ex-partner-finder__map-canvas { position: absolute; inset: 0; }
/* Info window in the site's own type (the frame itself is Google's). */
.ex-partner-finder__popup { font-family: inherit; font-size: 12.5px; line-height: 1.5; color: var(--ex-ink); }
.ex-partner-finder__popup strong { display: block; font-size: 13px; font-weight: 800; letter-spacing: .02em; }
.ex-partner-finder__map-caption {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 10px 0 0;
  font-size: 12px;
  line-height: normal;
  color: var(--ex-ink);
}
.ex-partner-finder__map-caption::before { content: ""; flex: none; width: 8px; height: 8px; background: var(--ex-red); }

/* Responsive (proposal, not designed) */
@media (max-width: 1199px) {
  .ex-partner-finder__layout { grid-template-columns: minmax(300px, 1fr) 1fr; }
  .ex-partner-finder__map { height: clamp(380px, 50vh, 560px); }
}
@media (max-width: 899px) {
  /* Single column: map first (short), then the full list without an inner scroll box. */
  .ex-partner-finder__layout { grid-template-columns: 1fr; }
  .ex-partner-finder__map-col { position: static; order: -1; }
  .ex-partner-finder__map { height: clamp(260px, 56vw, 380px); }
  .ex-partner-finder__list { max-height: none; padding-right: 0; overflow: visible; }
  .ex-partner-finder__input { flex: 1 1 100%; width: 100%; }
  .ex-partner-finder__or { flex: 1 1 100%; text-align: center; }
  .ex-partner-finder__locate { flex: 1 1 100%; min-height: var(--ex-touch); }
  .ex-partner-finder__geo-status { flex: 1 1 100%; }
  .ex-partner-finder__filter { flex: 1 1 calc(50% - 14px); min-width: 0; }
  .ex-partner-finder__filter .ex-select { min-width: 0; }
  .ex-partner-finder__filter--chips { flex-basis: 100%; }
  .ex-partner-finder__intro { font-size: clamp(14px, 2vw, 15px); }
}
@media (max-width: 599px) {
  .ex-partner-finder__filter { flex-basis: 100%; }
  .ex-partner-finder__chips .ex-chip { flex: 1 1 auto; }
}

@media (prefers-reduced-motion: reduce) {
  .ex-partner-finder__locate { transition: none; }
}
}
