/*
 * Telephely-térkép front szekció (telephely-szakasz).
 * A `templates/front/telephelyek/_section_telephelyek_map.html.twig` partial stílusai.
 * Forrás: a `c:\Users\polgarj\Downloads\index.html` <style> blokkjából átemelve.
 */

html:has(body > #telephely-szakasz:only-child) {
  height: 100%;
}
body:has(> #telephely-szakasz:only-child) {
  margin: 0;
  min-height: 100%;
  height: 100%;
  background: var(--bg, #edf1f5);
}

#telephely-szakasz,
#telephely-szakasz *,
#telephely-szakasz *::before,
#telephely-szakasz *::after {
  box-sizing: border-box;
}

#telephely-szakasz.telephely-szakasz {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--text, #2c3e50);
  background: var(--bg, #edf1f5);
  isolation: isolate;
  min-height: min(100vh, 920px);
  min-height: min(100dvh, 920px);
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
  --tpt-list-card-h: 86px;
  --tpt-list-gap: 5px;
  --tpt-cat-bp: #0ea5e9;
  --tpt-cat-bp-soft: rgba(14, 165, 233, 0.22);
  --tpt-cat-klinika: #1d4ed8;
  --tpt-cat-klinika-soft: rgba(29, 78, 216, 0.18);
  --tpt-cat-esztetika: #eed4cd;
  --tpt-cat-esztetika-soft: rgba(238, 212, 205, 0.65);
  --tpt-cat-fogaszat: #52bbc9;
  --tpt-cat-fogaszat-soft: rgba(82, 187, 201, 0.28);
  --tpt-cat-gyogyszertar: #1e40af;
  --tpt-cat-gyogyszertar-soft: rgba(30, 64, 175, 0.2);
  --tpt-cat-labor: #0f766e;
  --tpt-cat-labor-soft: rgba(15, 118, 110, 0.22);
  --tpt-cat-life1: #edbd1d;
  --tpt-cat-life1-soft: rgba(237, 189, 29, 0.35);
  --tpt-cat-biztosit: #004aad;
  --tpt-cat-biztosit-soft: rgba(0, 74, 173, 0.2);
  --tpt-cat-optika: #111827;
  --tpt-cat-optika-soft: #e5e7eb;
  --tpt-cat-szuleszeti: #f9a392;
  --tpt-cat-szuleszeti-soft: rgba(249, 163, 146, 0.45);
}

#telephely-szakasz .telephely-szakasz__wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  width: 100%;
  max-width: min(var(--layout-max, 1680px), calc(100vw - 2 * var(--layout-pad-x, clamp(14px, 4vw, 48px))));
  margin: 0 auto;
  padding: var(--layout-pad-x, clamp(14px, 4vw, 48px));
  box-sizing: border-box;
}

#telephely-szakasz .telephely-szakasz__frame {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  border-radius: var(--r-lg, 16px);
  overflow: hidden;
  border: 1px solid var(--border, #dbe2ea);
  background: var(--white, #fff);
  box-shadow: var(--shadow-lg, 0 8px 40px rgba(30, 58, 80, 0.1));
}

#telephely-szakasz .app {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
  overflow: hidden;
  background: var(--bg-warm, #f5f7fa);
}

@media (min-width: 768px) {
  #telephely-szakasz .app { flex-direction: row; align-items: stretch; }
}

#telephely-szakasz .sidebar {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  width: 100%;
  min-height: 0;
  background: var(--white, #fff);
  border-bottom: 1px solid var(--border, #dbe2ea);
  z-index: 20;
  box-shadow: var(--shadow-sm, 0 2px 8px rgba(30, 58, 80, 0.06));
  overflow: hidden;
}

@media (min-width: 768px) {
  #telephely-szakasz .sidebar {
    width: 24rem;
    align-self: stretch;
    height: 100%;
    min-height: 0;
    border-bottom: none;
    border-right: 1px solid var(--border, #dbe2ea);
  }
}

#telephely-szakasz .sidebar-head {
  padding: 0.75rem 0.875rem;
  border-bottom: 1px solid var(--border, #dbe2ea);
  background: var(--white, #fff);
  flex-shrink: 0;
}

#telephely-szakasz .brand {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.65rem;
}

#telephely-szakasz .brand-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  border-radius: var(--r, 10px);
  color: #fff;
  background-color: #1c3548;
  background-image: linear-gradient(135deg, #1c3548 0%, #285578 60%, #268699 100%);
}

#telephely-szakasz .brand-title {
  margin: 0;
  font-family: 'Poppins', sans-serif;
  font-size: clamp(0.9rem, 1.2vw + 0.45rem, 1.15rem);
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 1.2;
  color: var(--navy, #1e3a50);
  min-width: 0;
  flex: 1;
}

#telephely-szakasz .search-wrap { position: relative; margin-bottom: 0.65rem; }
#telephely-szakasz .search-icon { position: absolute; left: 0.75rem; top: 50%; transform: translateY(-50%); color: var(--text-soft, #8a99a8); display: flex; pointer-events: none; }
#telephely-szakasz .search-input {
  width: 100%;
  padding: 0.625rem 1rem 0.625rem 2.5rem;
  font-size: 0.875rem;
  font-family: inherit;
  background: var(--bg-warm, #f5f7fa);
  border: 1px solid var(--border, #dbe2ea);
  border-radius: var(--r, 10px);
  outline: none;
  color: var(--text, #2c3e50);
  transition: border-color 0.2s, box-shadow 0.2s;
}
#telephely-szakasz .search-input:focus { border-color: var(--brand, #4a8ea6); box-shadow: 0 0 0 3px rgba(74, 142, 166, 0.2); }

#telephely-szakasz .filter-dd { margin-top: 0.15rem; position: relative; z-index: 1; }
#telephely-szakasz .filter-dd.is-open { z-index: 40; }
#telephely-szakasz .filter-select-label { display: block; font-family: 'Poppins', sans-serif; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-soft, #8a99a8); margin-bottom: 0.35rem; }
#telephely-szakasz .filter-dd__inner { position: relative; width: 100%; min-width: 0; }
#telephely-szakasz .filter-dd__trigger {
  display: flex; align-items: center; gap: 0.55rem; width: 100%; min-height: 44px;
  padding: 0.5rem 0.65rem 0.5rem 0.75rem; font-family: 'Poppins', sans-serif; font-size: 13px;
  font-weight: 700; text-align: left; color: var(--navy, #1e3a50); background: var(--white, #fff);
  border: 1px solid var(--border, #dbe2ea); border-radius: 6px; cursor: pointer; outline: none;
  box-sizing: border-box; transition: border-color 0.15s, box-shadow 0.15s;
}
#telephely-szakasz .filter-dd__trigger:hover { border-color: var(--brand, #4a8ea6); }
#telephely-szakasz .filter-dd__trigger:focus-visible { border-color: var(--brand, #4a8ea6); box-shadow: 0 0 0 3px rgba(74, 142, 166, 0.22); }
#telephely-szakasz .filter-dd__value { flex: 1; min-width: 0; line-height: 1.25; }
#telephely-szakasz .filter-dd__chev { flex-shrink: 0; display: flex; align-items: center; justify-content: center; color: var(--text-mid, #5a6b7d); transition: transform 0.2s ease; }
#telephely-szakasz .filter-dd.is-open .filter-dd__chev { transform: rotate(180deg); }
#telephely-szakasz .filter-dd__swatch { width: 10px; height: 10px; border-radius: 9999px; flex-shrink: 0; box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.9); transition: background 0.15s, box-shadow 0.15s; }
#telephely-szakasz .filter-dd__swatch[data-cat='all'] { background: var(--navy, #1e3a50); }
#telephely-szakasz .filter-dd__swatch[data-cat='bp'] { background: var(--tpt-cat-bp); }
#telephely-szakasz .filter-dd__swatch[data-cat='esztetika'] { background: var(--tpt-cat-esztetika); box-shadow: 0 0 0 1px rgba(30, 41, 59, 0.22); }
#telephely-szakasz .filter-dd__swatch[data-cat='fogaszat'] { background: var(--tpt-cat-fogaszat); }
#telephely-szakasz .filter-dd__swatch[data-cat='gyogyszertar'] { background: var(--tpt-cat-gyogyszertar); }
#telephely-szakasz .filter-dd__swatch[data-cat='labor'] { background: var(--tpt-cat-labor); }
#telephely-szakasz .filter-dd__swatch[data-cat='life1'] { background: var(--tpt-cat-life1); }
#telephely-szakasz .filter-dd__swatch[data-cat='biztosit'] { background: var(--tpt-cat-biztosit); }
#telephely-szakasz .filter-dd__swatch[data-cat='optika'] { background: var(--tpt-cat-optika); }
#telephely-szakasz .filter-dd__swatch[data-cat='szuleszeti'] { background: var(--tpt-cat-szuleszeti); }
#telephely-szakasz .filter-dd__swatch[data-cat='klinika'] { background: var(--tpt-cat-klinika); }

#telephely-szakasz .filter-dd__panel {
  position: absolute; left: 0; right: 0; top: calc(100% + 4px); margin: 0; padding: 4px 0;
  list-style: none; max-height: min(52vh, 340px); overflow-y: auto; overflow-x: hidden;
  -webkit-overflow-scrolling: touch; background: var(--white, #fff);
  border: 1px solid var(--border, #dbe2ea); border-radius: 6px;
  box-shadow: 0 8px 24px rgba(30, 58, 80, 0.08);
}
#telephely-szakasz .filter-dd__option {
  display: flex; align-items: center; gap: 0.55rem; padding: 0.65rem 0.85rem; margin: 0 4px;
  border-radius: 4px; font-family: 'Poppins', sans-serif; font-size: 13px; font-weight: 500;
  color: var(--navy, #1e3a50); cursor: pointer; outline: none;
  transition: background 0.12s ease, color 0.12s ease;
}
#telephely-szakasz .filter-dd__panel .filter-dd__swatch { box-shadow: none; }
#telephely-szakasz .filter-dd__panel .filter-dd__swatch[data-cat='esztetika'] { box-shadow: 0 0 0 1px rgba(30, 41, 59, 0.22); }
#telephely-szakasz .filter-dd__option:hover,
#telephely-szakasz .filter-dd__option.is-highlighted {
  background: var(--brand-pale, #e8f4f8); color: var(--navy, #1e3a50); font-weight: 600;
  box-shadow: inset 3px 0 0 var(--brand, #4a8ea6);
}
#telephely-szakasz .filter-dd__option:hover .filter-dd__swatch,
#telephely-szakasz .filter-dd__option.is-highlighted .filter-dd__swatch { box-shadow: none; }
#telephely-szakasz .filter-dd__option:hover .filter-dd__swatch[data-cat='esztetika'],
#telephely-szakasz .filter-dd__option.is-highlighted .filter-dd__swatch[data-cat='esztetika'] { box-shadow: 0 0 0 1px rgba(30, 41, 59, 0.18); }
#telephely-szakasz .filter-dd__opt-label { flex: 1; min-width: 0; line-height: 1.3; }

#telephely-szakasz .sidebar-list-wrap {
  flex: 1 1 0; min-height: 0; display: flex; flex-direction: column;
  padding: 6px 8px 8px; background: var(--white, #fff); overflow: hidden;
}
#telephely-szakasz .site-list {
  list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column;
  gap: var(--tpt-list-gap, 5px); flex: 1 1 0; min-height: 0; max-height: none;
  overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch;
}
#telephely-szakasz .site-card {
  height: var(--tpt-list-card-h, 86px); min-height: var(--tpt-list-card-h, 86px); max-height: var(--tpt-list-card-h, 86px);
  padding: 6px 8px; border-radius: var(--r, 10px); cursor: pointer; border: 1px solid transparent;
  background: transparent; transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
  display: flex; flex-direction: column; justify-content: flex-start; gap: 3px;
  overflow: hidden; flex-shrink: 0; box-sizing: border-box;
  position: relative;
}
#telephely-szakasz .site-card__go {
  display: none;
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  align-items: center;
  justify-content: center;
  color: var(--brand, #4a8ea6);
  background: var(--brand-pale, #e8f4f8);
  pointer-events: none;
}
#telephely-szakasz .site-card__go svg { display: block; }
#telephely-szakasz .site-card:hover {
  background: var(--bg-warm, #f5f7fa); border-color: var(--border, #dbe2ea);
  box-shadow: var(--shadow-sm, 0 2px 8px rgba(30, 58, 80, 0.06));
}
#telephely-szakasz .site-card.is-selected { background: var(--white, #fff); box-shadow: var(--shadow-md, 0 4px 20px rgba(30, 58, 80, 0.08)); }
#telephely-szakasz .site-card.is-selected[data-category='bp'] { border-color: var(--tpt-cat-bp); box-shadow: 0 0 0 1px var(--tpt-cat-bp-soft), var(--shadow-md, 0 4px 20px rgba(30, 58, 80, 0.08)); }
#telephely-szakasz .site-card.is-selected[data-category='esztetika'] { border-color: #c4a99e; box-shadow: 0 0 0 1px var(--tpt-cat-esztetika-soft), var(--shadow-md, 0 4px 20px rgba(30, 58, 80, 0.08)); }
#telephely-szakasz .site-card.is-selected[data-category='fogaszat'] { border-color: var(--tpt-cat-fogaszat); box-shadow: 0 0 0 1px var(--tpt-cat-fogaszat-soft), var(--shadow-md, 0 4px 20px rgba(30, 58, 80, 0.08)); }
#telephely-szakasz .site-card.is-selected[data-category='gyogyszertar'] { border-color: var(--tpt-cat-gyogyszertar); box-shadow: 0 0 0 1px var(--tpt-cat-gyogyszertar-soft), var(--shadow-md, 0 4px 20px rgba(30, 58, 80, 0.08)); }
#telephely-szakasz .site-card.is-selected[data-category='labor'] { border-color: var(--tpt-cat-labor); box-shadow: 0 0 0 1px var(--tpt-cat-labor-soft), var(--shadow-md, 0 4px 20px rgba(30, 58, 80, 0.08)); }
#telephely-szakasz .site-card.is-selected[data-category='life1'] { border-color: var(--tpt-cat-life1); box-shadow: 0 0 0 1px var(--tpt-cat-life1-soft), var(--shadow-md, 0 4px 20px rgba(30, 58, 80, 0.08)); }
#telephely-szakasz .site-card.is-selected[data-category='biztosit'] { border-color: var(--tpt-cat-biztosit); box-shadow: 0 0 0 1px var(--tpt-cat-biztosit-soft), var(--shadow-md, 0 4px 20px rgba(30, 58, 80, 0.08)); }
#telephely-szakasz .site-card.is-selected[data-category='optika'] { border-color: var(--tpt-cat-optika); box-shadow: 0 0 0 1px var(--tpt-cat-optika-soft), var(--shadow-md, 0 4px 20px rgba(30, 58, 80, 0.08)); }
#telephely-szakasz .site-card.is-selected[data-category='szuleszeti'] { border-color: var(--tpt-cat-szuleszeti); box-shadow: 0 0 0 1px var(--tpt-cat-szuleszeti-soft), var(--shadow-md, 0 4px 20px rgba(30, 58, 80, 0.08)); }
#telephely-szakasz .site-card.is-selected[data-category='klinika'] { border-color: var(--tpt-cat-klinika); box-shadow: 0 0 0 1px var(--tpt-cat-klinika-soft), var(--shadow-md, 0 4px 20px rgba(30, 58, 80, 0.08)); }

#telephely-szakasz .site-badge {
  display: inline-block; align-self: flex-start; max-width: 100%;
  padding: 2px 6px; border-radius: 4px; font-size: 8px; font-weight: 900;
  text-transform: uppercase; letter-spacing: 0.06em; color: #fff; line-height: 1.2;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
#telephely-szakasz .site-badge--bp { background: var(--tpt-cat-bp); }
#telephely-szakasz .site-badge--esztetika { background: var(--tpt-cat-esztetika); color: #3d2c28; }
#telephely-szakasz .site-badge--fogaszat { background: var(--tpt-cat-fogaszat); }
#telephely-szakasz .site-badge--gyogyszertar { background: var(--tpt-cat-gyogyszertar); }
#telephely-szakasz .site-badge--labor { background: var(--tpt-cat-labor); }
#telephely-szakasz .site-badge--life1 { background: var(--tpt-cat-life1); color: #1e293b; }
#telephely-szakasz .site-badge--biztosit { background: var(--tpt-cat-biztosit); }
#telephely-szakasz .site-badge--optika { background: var(--tpt-cat-optika); }
#telephely-szakasz .site-badge--szuleszeti { background: var(--tpt-cat-szuleszeti); color: #5c1f14; }
#telephely-szakasz .site-badge--klinika { background: var(--tpt-cat-klinika); }

#telephely-szakasz .site-name {
  margin: 0; font-family: 'Poppins', sans-serif; font-size: 12px; font-weight: 700;
  line-height: 1.2; color: var(--navy, #1e3a50); transition: color 0.2s;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
  overflow: hidden; min-height: 0; flex-shrink: 1;
}
#telephely-szakasz .site-card.is-selected[data-category='bp'] .site-name { color: var(--tpt-cat-bp); }
#telephely-szakasz .site-card.is-selected[data-category='esztetika'] .site-name { color: #5c4038; }
#telephely-szakasz .site-card.is-selected[data-category='fogaszat'] .site-name { color: var(--tpt-cat-fogaszat); }
#telephely-szakasz .site-card.is-selected[data-category='gyogyszertar'] .site-name { color: var(--tpt-cat-gyogyszertar); }
#telephely-szakasz .site-card.is-selected[data-category='labor'] .site-name { color: var(--tpt-cat-labor); }
#telephely-szakasz .site-card.is-selected[data-category='life1'] .site-name { color: #78350f; }
#telephely-szakasz .site-card.is-selected[data-category='biztosit'] .site-name { color: var(--tpt-cat-biztosit); }
#telephely-szakasz .site-card.is-selected[data-category='optika'] .site-name { color: var(--tpt-cat-optika); }
#telephely-szakasz .site-card.is-selected[data-category='szuleszeti'] .site-name { color: #c2410c; }
#telephely-szakasz .site-card.is-selected[data-category='klinika'] .site-name { color: var(--tpt-cat-klinika); }

#telephely-szakasz .site-addr {
  display: flex; align-items: flex-start; gap: 4px; margin-top: 0; margin-bottom: 0;
  font-size: 11px; line-height: 1.2; color: var(--text-mid, #5a6b7d);
  min-height: 0; flex: 1; min-width: 0;
}
#telephely-szakasz .site-addr svg { flex-shrink: 0; width: 11px; height: 11px; margin-top: 1px; color: var(--text-soft, #8a99a8); }
#telephely-szakasz .site-addr__txt { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#telephely-szakasz .empty-msg { text-align: center; padding: 1rem 0.5rem; margin: 0; font-size: 0.8125rem; color: var(--text-soft, #8a99a8); font-weight: 500; }
#telephely-szakasz .sidebar-list-wrap:has(#tpt-empty-msg:not([hidden])) { flex: 1 1 auto; }
#telephely-szakasz .sidebar-list-wrap:has(#tpt-empty-msg:not([hidden])) .site-list { max-height: none; overflow-y: visible; flex: 0 0 auto; }
#telephely-szakasz .sidebar-list-wrap:has(#tpt-empty-msg:not([hidden])) .empty-msg { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; min-height: 4rem; }

#telephely-szakasz .map-area { position: relative; flex: 1; min-height: 0; min-width: 0; background: var(--bg, #edf1f5); }
#telephely-szakasz .map { width: 100%; height: 100%; z-index: 1; }
#telephely-szakasz .leaflet-container { width: 100%; height: 100%; font-family: inherit; }

@media (max-width: 767px) {
  #telephely-szakasz.telephely-szakasz {
    min-height: min(100dvh, 100vh);
    --tpt-list-card-h: 68px;
    --tpt-list-gap: 3px;
  }
  #telephely-szakasz .telephely-szakasz__wrap { padding-left: clamp(8px, 3vw, 48px); padding-right: clamp(8px, 3vw, 48px); padding-top: clamp(6px, 2vw, 24px); }
  #telephely-szakasz .telephely-szakasz__frame { border-radius: 12px; }
  #telephely-szakasz .app { flex-direction: column-reverse; }
  #telephely-szakasz .map-area { flex: 0 0 auto; flex-shrink: 0; min-height: 0; height: clamp(220px, 42dvh, 360px); max-height: min(48dvh, 400px); width: 100%; }
  #telephely-szakasz .sidebar { flex: 1 1 0; min-height: 0; border-bottom: none; border-top: 1px solid var(--border, #dbe2ea); }
  #telephely-szakasz .sidebar-head { padding: 0.4rem 0.5rem 0.45rem; }
  #telephely-szakasz .brand { margin-bottom: 0.35rem; gap: 0.35rem; }
  #telephely-szakasz .brand-icon { padding: 0.3rem; }
  #telephely-szakasz .brand-icon svg { width: 17px; height: 17px; }
  #telephely-szakasz .brand-title { font-size: 0.88rem; line-height: 1.12; }
  #telephely-szakasz .search-wrap { margin-bottom: 0.35rem; }
  #telephely-szakasz .search-input { padding: 0.4rem 0.7rem 0.4rem 2.1rem; font-size: 16px; }
  #telephely-szakasz .search-icon { left: 0.6rem; }
  #telephely-szakasz .search-icon svg { width: 14px; height: 14px; }
  #telephely-szakasz .filter-select-label { margin-bottom: 0.15rem; font-size: 9px; }
  #telephely-szakasz .filter-dd { margin-top: 0; }
  #telephely-szakasz .filter-dd__trigger { min-height: 38px; padding: 0.3rem 0.45rem 0.3rem 0.5rem; font-size: 12px; }
  #telephely-szakasz .filter-dd__chev svg { width: 16px; height: 16px; }
  #telephely-szakasz .sidebar-list-wrap { padding: 3px 6px 5px; }
  #telephely-szakasz .site-card { padding: 3px 6px; gap: 2px; }
  #telephely-szakasz .site-card[data-detail-url] { padding-right: 32px; }
  #telephely-szakasz .site-name { font-size: 11px; -webkit-line-clamp: 1; }
  #telephely-szakasz .site-addr { font-size: 10px; }
  #telephely-szakasz .leaflet-control-zoom a { width: 36px; height: 36px; line-height: 34px; font-size: 19px; }
  #telephely-szakasz .leaflet-control-zoom { border: none; box-shadow: 0 2px 10px rgba(30, 58, 80, 0.15); }
}

#telephely-szakasz .site-div-icon { background: transparent !important; border: none !important; }
#telephely-szakasz .min-w-popup { min-width: 150px; }
#telephely-szakasz .popup-more {
  display: inline-flex;
  align-items: center;
  margin-top: 0.55rem;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: var(--brand, #4a8ea6);
  color: #fff !important;
  font-family: 'Poppins', sans-serif;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none !important;
  line-height: 1.2;
}
#telephely-szakasz .popup-more:hover,
#telephely-szakasz .popup-more:focus-visible {
  background: var(--brand-dark, #3a7a94);
  color: #fff !important;
}

#telephely-szakasz .tpt-mc-pin {
  width: 40px; height: 40px; box-sizing: border-box; border-radius: 50%;
  border: 2px solid #fff; box-shadow: 0 2px 10px rgba(15, 23, 42, 0.28);
  display: flex; align-items: center; justify-content: center; place-content: center; overflow: hidden;
}
#telephely-szakasz .tpt-mc-pin__icon { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; margin: 0; padding: 0; line-height: 0; color: #fff; pointer-events: none; flex-shrink: 0; }
#telephely-szakasz .tpt-mc-pin__icon svg { width: 23px; height: 23px; flex-shrink: 0; display: block; margin: auto; }
#telephely-szakasz .tpt-mc-pin__img { width: 26px; height: 26px; max-width: 100%; max-height: 100%; object-fit: contain; object-position: center; display: block; margin: auto; pointer-events: none; }
#telephely-szakasz .tpt-mc-pin.leaflet-pin-wrap--fogaszat .tpt-mc-pin__img { filter: brightness(0) invert(1); }
#telephely-szakasz .tpt-mc-pin.leaflet-pin-wrap--esztetika .tpt-mc-pin__icon,
#telephely-szakasz .tpt-mc-pin.leaflet-pin-wrap--life1 .tpt-mc-pin__icon,
#telephely-szakasz .tpt-mc-pin.leaflet-pin-wrap--szuleszeti .tpt-mc-pin__icon { color: #1e293b; }
#telephely-szakasz .tpt-mc-pin.leaflet-pin-wrap--bp { background: var(--tpt-cat-bp); }
#telephely-szakasz .tpt-mc-pin.leaflet-pin-wrap--esztetika { background: var(--tpt-cat-esztetika); }
#telephely-szakasz .tpt-mc-pin.leaflet-pin-wrap--fogaszat { background: var(--tpt-cat-fogaszat); }
#telephely-szakasz .tpt-mc-pin.leaflet-pin-wrap--gyogyszertar { background: var(--tpt-cat-gyogyszertar); }
#telephely-szakasz .tpt-mc-pin.leaflet-pin-wrap--labor { background: var(--tpt-cat-labor); }
#telephely-szakasz .tpt-mc-pin.leaflet-pin-wrap--life1 { background: var(--tpt-cat-life1); }
#telephely-szakasz .tpt-mc-pin.leaflet-pin-wrap--biztosit { background: var(--tpt-cat-biztosit); }
#telephely-szakasz .tpt-mc-pin.leaflet-pin-wrap--optika { background: var(--tpt-cat-optika); }
#telephely-szakasz .tpt-mc-pin.leaflet-pin-wrap--szuleszeti { background: var(--tpt-cat-szuleszeti); }
#telephely-szakasz .tpt-mc-pin.leaflet-pin-wrap--klinika { background: var(--tpt-cat-klinika); }

#telephely-szakasz .detail-panel {
  position: absolute; right: 1.5rem; top: 1.5rem; bottom: 1.5rem;
  width: 20rem; z-index: 1001; pointer-events: none;
  opacity: 1; transform: translateX(0); transition: opacity 0.2s ease, transform 0.2s ease;
}
#telephely-szakasz .detail-panel.is-hidden { opacity: 0; transform: translateX(12px); visibility: hidden; }
@media (max-width: 1023px) {
  #telephely-szakasz .detail-panel { display: none; }
  #telephely-szakasz .site-card[data-detail-url] {
    padding-right: 34px;
  }
  #telephely-szakasz .site-card[data-detail-url] .site-card__go {
    display: inline-flex;
  }
}

#telephely-szakasz .detail-card {
  pointer-events: auto; height: 100%; padding: 1.5rem;
  display: flex; flex-direction: column; overflow: hidden; min-height: 0;
  background: rgba(255, 255, 255, 0.96); backdrop-filter: blur(8px);
  border-radius: var(--r-lg, 16px); border: 1px solid var(--border, #dbe2ea);
  box-shadow: var(--shadow-xl, 0 16px 48px rgba(30, 58, 80, 0.14));
}
#telephely-szakasz .detail-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.5rem; }
#telephely-szakasz .detail-info-icon { display: flex; padding: 0.5rem; background: var(--brand-pale, #e8f4f8); border-radius: var(--r, 10px); color: var(--brand, #4a8ea6); }
#telephely-szakasz .icon-btn { display: flex; align-items: center; justify-content: center; padding: 0.375rem; border: none; border-radius: var(--r, 10px); background: transparent; color: var(--text-soft, #8a99a8); cursor: pointer; transition: background 0.2s, color 0.2s; }
#telephely-szakasz .icon-btn:hover { background: var(--bg-warm, #f5f7fa); color: var(--text-mid, #5a6b7d); }
#telephely-szakasz .detail-title { margin: 0 0 0.5rem; font-family: 'Poppins', sans-serif; font-size: 1.25rem; font-weight: 800; line-height: 1.25; color: var(--navy, #1e3a50); }
#telephely-szakasz .detail-address { display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.875rem; color: var(--text-mid, #5a6b7d); margin-bottom: 2rem; }
#telephely-szakasz .detail-inline-icon { flex-shrink: 0; color: var(--text-soft, #8a99a8); margin-top: 2px; }
#telephely-szakasz .detail-body { flex: 1; overflow-y: auto; padding-right: 0.5rem; display: flex; flex-direction: column; gap: 1.5rem; }
#telephely-szakasz .detail-section-title { margin: 0 0 0.5rem; font-family: 'Poppins', sans-serif; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.15em; color: var(--text-soft, #8a99a8); }
#telephely-szakasz .detail-row { display: flex; align-items: center; gap: 0.75rem; font-size: 0.875rem; color: var(--text, #2c3e50); font-weight: 500; }
#telephely-szakasz .detail-row.is-hidden { display: none; }
#telephely-szakasz .icon-clock { flex-shrink: 0; color: var(--brand, #4a8ea6); }
#telephely-szakasz .icon-phone { flex-shrink: 0; color: var(--green, #27ae60); }
#telephely-szakasz .icon-mail { flex-shrink: 0; color: var(--brand-light, #6bb3cc); }
#telephely-szakasz .detail-special-hours { margin: 0.75rem 0 0; padding: 0.65rem 0.85rem; border-radius: 8px; background: color-mix(in srgb, var(--tpt-sh-color, #1d4ed8) 12%, transparent); border-left: 3px solid var(--tpt-sh-color, #1d4ed8); }
#telephely-szakasz .detail-special-hours.is-hidden { display: none; }
#telephely-szakasz .detail-special-hours__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.35rem; }
#telephely-szakasz .detail-special-hours__item { font-size: 0.8rem; color: var(--text, #2c3e50); line-height: 1.4; }
#telephely-szakasz .detail-special-hours__item strong { color: var(--tpt-sh-color, #1d4ed8); }
#telephely-szakasz .detail-actions { flex-shrink: 0; margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--border, #dbe2ea); display: flex; flex-direction: column; gap: 0.65rem; }
#telephely-szakasz .detail-more-btn {
  position: relative; display: block; width: 100%; padding: 10px 18px; text-align: center;
  font-family: 'Poppins', sans-serif; font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.08em; color: var(--brand, #4a8ea6); background: var(--white, #fff);
  border: 1px solid var(--brand-light, #6bb3cc); border-radius: var(--r, 10px); text-decoration: none;
  transition: border-color 0.2s, background 0.2s, color 0.2s; box-sizing: border-box;
}
#telephely-szakasz .detail-more-btn:hover { background: var(--brand-pale, #e8f4f8); border-color: var(--brand, #4a8ea6); }
#telephely-szakasz .detail-more-btn.is-hidden { display: none; }
#telephely-szakasz .route-btn {
  position: relative; overflow: hidden; margin-top: 0; display: block; width: 100%; padding: 12px 22px;
  text-align: center; font-family: 'Poppins', sans-serif; font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.5px; color: #fff; background: var(--brand, #4a8ea6);
  border: 1px solid var(--brand, #4a8ea6); border-radius: 8px; text-decoration: none;
  box-shadow: var(--shadow-md, 0 4px 20px rgba(30, 58, 80, 0.08));
  transition: background 0.3s, border-color 0.3s, transform 0.1s;
}
#telephely-szakasz .route-btn:hover { background: var(--brand-dark, #3a7a94); border-color: var(--brand-dark, #3a7a94); }
#telephely-szakasz .route-btn:active { transform: scale(0.98); }
#telephely-szakasz .route-btn::before {
  content: ''; position: absolute; top: 0; left: -100%; width: 60%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35), transparent);
  transition: left 0.5s;
}
#telephely-szakasz .route-btn:hover::before { left: 120%; }

#telephely-szakasz .leaflet-popup-content-wrapper { border-radius: var(--r, 10px); }
#telephely-szakasz .popup-title { margin: 0 0 0.25rem; font-family: 'Poppins', sans-serif; font-weight: 700; color: var(--navy, #1e3a50); }
#telephely-szakasz .popup-addr { margin: 0; font-size: 0.75rem; color: var(--text-mid, #5a6b7d); }

/* ─────────────────────────────────────────────────────────────
   DARK MODE
   - Automatikusan a böngésző `prefers-color-scheme: dark`-ja alapján.
   - Manuálisan is erőltethető: <body data-theme="dark"> vagy <html.dark>
     (a `:where(...)` szelektor mindkettőre rákapcsol, alacsony specificitással).
   ───────────────────────────────────────────────────────────── */
@media (prefers-color-scheme: dark) {
  body:not([data-theme='light']):has(> #telephely-szakasz:only-child) {
    background: #0b121b;
  }
}

/* Manuális kapcsoló: <html class="dark"> / <body class="dark"> / <body data-theme="dark"> */
:where(html.dark, body.dark, [data-theme='dark']) #telephely-szakasz,
@media (prefers-color-scheme: dark) {
  body:not([data-theme='light']) #telephely-szakasz {
    --tpt-dm-bg: #0b121b;
    --tpt-dm-surface: #131c27;
    --tpt-dm-surface-hi: #1a2532;
    --tpt-dm-border: #243244;
    --tpt-dm-text: #e6edf5;
    --tpt-dm-text-mid: #b6c1cf;
    --tpt-dm-text-soft: #7f8da0;
    --tpt-dm-brand: #6fb2cc;
    --tpt-dm-brand-pale: rgba(111, 178, 204, 0.12);
  }
}

/* Mivel a @media + leszármazott szelektor együttes kombinációja összetett,
   itt egy második blokk specifikusabban felülír mindent dark módban.
   Az egyszerűség kedvéért a `:where(...)` szelektort és a media-blokkot is
   külön-külön végigírjuk minden szabálynál. */

@media (prefers-color-scheme: dark) {
  body:not([data-theme='light']) #telephely-szakasz {
    background: #0b121b;
    color: #e6edf5;
  }
  body:not([data-theme='light']) #telephely-szakasz .app,
  body:not([data-theme='light']) #telephely-szakasz .telephely-szakasz__frame {
    background: #0b121b;
    border-color: #243244;
  }
  body:not([data-theme='light']) #telephely-szakasz .sidebar,
  body:not([data-theme='light']) #telephely-szakasz .sidebar-head {
    background: #131c27;
    border-color: #243244;
    color: #e6edf5;
  }
  body:not([data-theme='light']) #telephely-szakasz .brand-title { color: #e6edf5; }
  body:not([data-theme='light']) #telephely-szakasz .search-input,
  body:not([data-theme='light']) #telephely-szakasz .filter-dd__trigger {
    background: #1a2532;
    border-color: #2d3e54;
    color: #e6edf5;
  }
  body:not([data-theme='light']) #telephely-szakasz .search-input::placeholder { color: #7f8da0; }
  body:not([data-theme='light']) #telephely-szakasz .search-icon,
  body:not([data-theme='light']) #telephely-szakasz .filter-select-label,
  body:not([data-theme='light']) #telephely-szakasz .filter-dd__chev {
    color: #b6c1cf;
  }
  body:not([data-theme='light']) #telephely-szakasz .filter-dd__panel {
    background: #131c27;
    border-color: #2d3e54;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5);
  }
  body:not([data-theme='light']) #telephely-szakasz .filter-dd__option { color: #e6edf5; }
  body:not([data-theme='light']) #telephely-szakasz .filter-dd__option:hover,
  body:not([data-theme='light']) #telephely-szakasz .filter-dd__option.is-highlighted {
    background: rgba(111, 178, 204, 0.14);
  }
  body:not([data-theme='light']) #telephely-szakasz .site-card {
    background: #1a2532;
    border-color: #2d3e54;
  }
  body:not([data-theme='light']) #telephely-szakasz .site-card:hover { background: #213044; }
  body:not([data-theme='light']) #telephely-szakasz .site-card.is-selected { background: #243a52; }
  body:not([data-theme='light']) #telephely-szakasz .site-name { color: #e6edf5; }
  body:not([data-theme='light']) #telephely-szakasz .site-address,
  body:not([data-theme='light']) #telephely-szakasz .site-city,
  body:not([data-theme='light']) #telephely-szakasz .site-category-label {
    color: #b6c1cf;
  }
  body:not([data-theme='light']) #telephely-szakasz .map-area { background: #0b121b; }

  /* Leaflet tile-okat sötétítjük CSS filterrel (nincs külön dark map tile-source) */
  body:not([data-theme='light']) #telephely-szakasz .leaflet-tile-pane {
    filter: invert(0.93) hue-rotate(180deg) brightness(0.92) contrast(0.92) saturate(0.85);
  }
  /* A pinjeink (divIcon) ne forduljanak meg – kompenzáljuk */
  body:not([data-theme='light']) #telephely-szakasz .leaflet-marker-pane,
  body:not([data-theme='light']) #telephely-szakasz .leaflet-shadow-pane {
    filter: none;
  }

  body:not([data-theme='light']) #telephely-szakasz .leaflet-control-zoom a,
  body:not([data-theme='light']) #telephely-szakasz .leaflet-control-attribution {
    background: #131c27 !important;
    color: #b6c1cf !important;
    border-color: #2d3e54 !important;
  }
  body:not([data-theme='light']) #telephely-szakasz .leaflet-control-zoom a:hover { background: #1a2532 !important; }
  body:not([data-theme='light']) #telephely-szakasz .leaflet-control-attribution a { color: #6fb2cc !important; }

  body:not([data-theme='light']) #telephely-szakasz .leaflet-popup-content-wrapper,
  body:not([data-theme='light']) #telephely-szakasz .leaflet-popup-tip {
    background: #131c27 !important;
    color: #e6edf5 !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45) !important;
  }
  body:not([data-theme='light']) #telephely-szakasz .popup-title { color: #e6edf5; }
  body:not([data-theme='light']) #telephely-szakasz .popup-addr { color: #b6c1cf; }

  body:not([data-theme='light']) #telephely-szakasz .detail-panel { background: rgba(11, 18, 27, 0.85); }
  body:not([data-theme='light']) #telephely-szakasz .detail-card {
    background: #131c27;
    border-color: #2d3e54;
    color: #e6edf5;
  }
  body:not([data-theme='light']) #telephely-szakasz .detail-title { color: #e6edf5; }
  body:not([data-theme='light']) #telephely-szakasz .detail-address,
  body:not([data-theme='light']) #telephely-szakasz .detail-row { color: #d1d9e3; }
  body:not([data-theme='light']) #telephely-szakasz .detail-section-title,
  body:not([data-theme='light']) #telephely-szakasz .detail-inline-icon { color: #7f8da0; }
  body:not([data-theme='light']) #telephely-szakasz .detail-info-icon {
    background: rgba(111, 178, 204, 0.16);
    color: #6fb2cc;
  }
  body:not([data-theme='light']) #telephely-szakasz .detail-actions { border-top-color: #2d3e54; }
  body:not([data-theme='light']) #telephely-szakasz .detail-more-btn {
    background: transparent;
    color: #6fb2cc;
    border-color: #2d3e54;
  }
  body:not([data-theme='light']) #telephely-szakasz .detail-more-btn:hover {
    background: rgba(111, 178, 204, 0.12);
    border-color: #6fb2cc;
  }
}

/* Explicit kapcsoló osztály (sötét) – ugyanazok a szabályok, csak nem `prefers-color-scheme`-mel.
   Ez teszi lehetővé, hogy egy egyszerű <html class="dark"> vagy <body class="dark"> attribúciós
   beállítással is be lehessen kapcsolni a sötét módot kézzel. */
html.dark #telephely-szakasz,
body.dark #telephely-szakasz,
[data-theme='dark'] #telephely-szakasz {
  background: #0b121b;
  color: #e6edf5;
}
html.dark #telephely-szakasz .app,
body.dark #telephely-szakasz .app,
[data-theme='dark'] #telephely-szakasz .app,
html.dark #telephely-szakasz .telephely-szakasz__frame,
body.dark #telephely-szakasz .telephely-szakasz__frame,
[data-theme='dark'] #telephely-szakasz .telephely-szakasz__frame {
  background: #0b121b;
  border-color: #243244;
}
html.dark #telephely-szakasz .sidebar,
body.dark #telephely-szakasz .sidebar,
[data-theme='dark'] #telephely-szakasz .sidebar,
html.dark #telephely-szakasz .sidebar-head,
body.dark #telephely-szakasz .sidebar-head,
[data-theme='dark'] #telephely-szakasz .sidebar-head {
  background: #131c27;
  border-color: #243244;
  color: #e6edf5;
}
html.dark #telephely-szakasz .brand-title,
body.dark #telephely-szakasz .brand-title,
[data-theme='dark'] #telephely-szakasz .brand-title {
  color: #e6edf5;
}
html.dark #telephely-szakasz .search-input,
body.dark #telephely-szakasz .search-input,
[data-theme='dark'] #telephely-szakasz .search-input,
html.dark #telephely-szakasz .filter-dd__trigger,
body.dark #telephely-szakasz .filter-dd__trigger,
[data-theme='dark'] #telephely-szakasz .filter-dd__trigger {
  background: #1a2532;
  border-color: #2d3e54;
  color: #e6edf5;
}
html.dark #telephely-szakasz .search-input::placeholder,
body.dark #telephely-szakasz .search-input::placeholder,
[data-theme='dark'] #telephely-szakasz .search-input::placeholder { color: #7f8da0; }
html.dark #telephely-szakasz .filter-dd__panel,
body.dark #telephely-szakasz .filter-dd__panel,
[data-theme='dark'] #telephely-szakasz .filter-dd__panel {
  background: #131c27;
  border-color: #2d3e54;
}
html.dark #telephely-szakasz .filter-dd__option,
body.dark #telephely-szakasz .filter-dd__option,
[data-theme='dark'] #telephely-szakasz .filter-dd__option { color: #e6edf5; }
html.dark #telephely-szakasz .site-card,
body.dark #telephely-szakasz .site-card,
[data-theme='dark'] #telephely-szakasz .site-card {
  background: #1a2532;
  border-color: #2d3e54;
}
html.dark #telephely-szakasz .site-card:hover,
body.dark #telephely-szakasz .site-card:hover,
[data-theme='dark'] #telephely-szakasz .site-card:hover { background: #213044; }
html.dark #telephely-szakasz .site-name,
body.dark #telephely-szakasz .site-name,
[data-theme='dark'] #telephely-szakasz .site-name { color: #e6edf5; }
html.dark #telephely-szakasz .site-address,
body.dark #telephely-szakasz .site-address,
[data-theme='dark'] #telephely-szakasz .site-address,
html.dark #telephely-szakasz .site-city,
body.dark #telephely-szakasz .site-city,
[data-theme='dark'] #telephely-szakasz .site-city { color: #b6c1cf; }
html.dark #telephely-szakasz .map-area,
body.dark #telephely-szakasz .map-area,
[data-theme='dark'] #telephely-szakasz .map-area { background: #0b121b; }
html.dark #telephely-szakasz .leaflet-tile-pane,
body.dark #telephely-szakasz .leaflet-tile-pane,
[data-theme='dark'] #telephely-szakasz .leaflet-tile-pane {
  filter: invert(0.93) hue-rotate(180deg) brightness(0.92) contrast(0.92) saturate(0.85);
}
html.dark #telephely-szakasz .leaflet-marker-pane,
body.dark #telephely-szakasz .leaflet-marker-pane,
[data-theme='dark'] #telephely-szakasz .leaflet-marker-pane { filter: none; }
html.dark #telephely-szakasz .leaflet-popup-content-wrapper,
body.dark #telephely-szakasz .leaflet-popup-content-wrapper,
[data-theme='dark'] #telephely-szakasz .leaflet-popup-content-wrapper,
html.dark #telephely-szakasz .leaflet-popup-tip,
body.dark #telephely-szakasz .leaflet-popup-tip,
[data-theme='dark'] #telephely-szakasz .leaflet-popup-tip {
  background: #131c27 !important;
  color: #e6edf5 !important;
}
html.dark #telephely-szakasz .popup-title,
body.dark #telephely-szakasz .popup-title,
[data-theme='dark'] #telephely-szakasz .popup-title { color: #e6edf5; }
html.dark #telephely-szakasz .popup-addr,
body.dark #telephely-szakasz .popup-addr,
[data-theme='dark'] #telephely-szakasz .popup-addr { color: #b6c1cf; }
html.dark #telephely-szakasz .detail-card,
body.dark #telephely-szakasz .detail-card,
[data-theme='dark'] #telephely-szakasz .detail-card {
  background: #131c27;
  border-color: #2d3e54;
  color: #e6edf5;
}
html.dark #telephely-szakasz .detail-title,
body.dark #telephely-szakasz .detail-title,
[data-theme='dark'] #telephely-szakasz .detail-title { color: #e6edf5; }
html.dark #telephely-szakasz .detail-address,
body.dark #telephely-szakasz .detail-address,
[data-theme='dark'] #telephely-szakasz .detail-address,
html.dark #telephely-szakasz .detail-row,
body.dark #telephely-szakasz .detail-row,
[data-theme='dark'] #telephely-szakasz .detail-row { color: #d1d9e3; }
html.dark #telephely-szakasz .leaflet-control-zoom a,
body.dark #telephely-szakasz .leaflet-control-zoom a,
[data-theme='dark'] #telephely-szakasz .leaflet-control-zoom a {
  background: #131c27 !important;
  color: #b6c1cf !important;
}
html.dark #telephely-szakasz .leaflet-control-attribution,
body.dark #telephely-szakasz .leaflet-control-attribution,
[data-theme='dark'] #telephely-szakasz .leaflet-control-attribution {
  background: rgba(19, 28, 39, 0.85) !important;
  color: #b6c1cf !important;
}

/* ====== Klinikáink kártyás nézet (térkép alatt) ====== */
.telephely-kartyak {
  --tk-bg: #edf1f5;
  --tk-navy: #1e3a50;
  --tk-brand: #4a8ea6;
  --tk-mid: #5a6b7d;
  --tk-soft: #8a99a8;
  --tk-border: #dbe2ea;
  --tk-warm: #f5f7fa;
  --tk-white: #fff;
  --tk-r: 12px;
  --tpt-cat-bp: #0ea5e9;
  --tpt-cat-klinika: #1d4ed8;
  --tpt-cat-esztetika: #eed4cd;
  --tpt-cat-fogaszat: #52bbc9;
  --tpt-cat-gyogyszertar: #1e40af;
  --tpt-cat-labor: #0f766e;
  --tpt-cat-life1: #edbd1d;
  --tpt-cat-optika: #6366f1;
  --tpt-cat-szuleszeti: #c0392b;
  padding: clamp(2rem, 4vw, 3.25rem) 0 clamp(2.75rem, 5vw, 4rem);
  background:
    radial-gradient(ellipse 80% 50% at 10% 0%, rgba(74, 142, 166, 0.08), transparent 55%),
    radial-gradient(ellipse 60% 40% at 90% 10%, rgba(30, 58, 80, 0.05), transparent 50%),
    var(--tk-bg);
}

.telephely-kartyak__wrap {
  width: min(100% - 2 * var(--layout-pad-x, clamp(14px, 4vw, 48px)), var(--layout-max, 1680px));
  margin-inline: auto;
}

.telephely-kartyak__head {
  margin-bottom: 1.1rem;
  align-items: flex-start;
}

.telephely-kartyak__intro .hosp-section-title {
  margin-bottom: 0.35rem;
  font-size: clamp(1.35rem, 2.2vw, 1.65rem);
  font-weight: 800;
  color: var(--tk-navy);
  letter-spacing: -0.02em;
}

.telephely-kartyak .hosp-loc-lead {
  margin: 0;
  max-width: 40rem;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--tk-mid);
}

.telephely-kartyak__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0 0 1.65rem;
}

.telephely-kartyak__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  border: 1px solid var(--tk-border);
  background: var(--tk-white);
  color: var(--tk-navy);
  font-size: 0.78rem;
  font-weight: 650;
  text-decoration: none;
  line-height: 1.2;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
  scroll-margin-top: 5.5rem;
}

.telephely-kartyak__chip:hover {
  border-color: var(--tk-brand);
  box-shadow: 0 4px 14px rgba(30, 58, 80, 0.08);
  transform: translateY(-1px);
}

.telephely-kartyak__chip-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: var(--tk-warm);
  color: var(--tk-mid);
  font-size: 0.68rem;
  font-weight: 700;
}

.telephely-kartyak__chip--bp { box-shadow: inset 3px 0 0 var(--tpt-cat-bp, #4a8ea6); }
.telephely-kartyak__chip--klinika { box-shadow: inset 3px 0 0 var(--tpt-cat-klinika, #1e3a50); }
.telephely-kartyak__chip--esztetika { box-shadow: inset 3px 0 0 var(--tpt-cat-esztetika, #e8c4b8); }
.telephely-kartyak__chip--fogaszat { box-shadow: inset 3px 0 0 var(--tpt-cat-fogaszat, #248c99); }
.telephely-kartyak__chip--gyogyszertar { box-shadow: inset 3px 0 0 var(--tpt-cat-gyogyszertar, #27ae60); }
.telephely-kartyak__chip--labor { box-shadow: inset 3px 0 0 var(--tpt-cat-labor, #5b8def); }
.telephely-kartyak__chip--life1 { box-shadow: inset 3px 0 0 var(--tpt-cat-life1, #f0c14a); }
.telephely-kartyak__chip--optika { box-shadow: inset 3px 0 0 var(--tpt-cat-optika, #6b7fd7); }
.telephely-kartyak__chip--szuleszeti { box-shadow: inset 3px 0 0 var(--tpt-cat-szuleszeti, #c0392b); }

.telephely-kartyak .hosp-loc-group {
  scroll-margin-top: 5.5rem;
}

.telephely-kartyak .hosp-loc-group + .hosp-loc-group {
  margin-top: 2rem;
}

.telephely-kartyak .hosp-loc-subhead {
  font-size: 1.05rem;
  font-weight: 750;
  color: var(--tk-navy);
  margin: 0 0 0.75rem;
  letter-spacing: -0.01em;
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.telephely-kartyak .hosp-loc-subhead::before {
  content: "";
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--tk-brand);
  flex-shrink: 0;
}

.telephely-kartyak .hosp-loc-group--bp .hosp-loc-subhead::before { background: var(--tpt-cat-bp, #4a8ea6); }
.telephely-kartyak .hosp-loc-group--klinika .hosp-loc-subhead::before { background: var(--tpt-cat-klinika, #1e3a50); }
.telephely-kartyak .hosp-loc-group--esztetika .hosp-loc-subhead::before { background: var(--tpt-cat-esztetika, #e8c4b8); }
.telephely-kartyak .hosp-loc-group--fogaszat .hosp-loc-subhead::before { background: var(--tpt-cat-fogaszat, #248c99); }
.telephely-kartyak .hosp-loc-group--gyogyszertar .hosp-loc-subhead::before { background: var(--tpt-cat-gyogyszertar, #27ae60); }
.telephely-kartyak .hosp-loc-group--labor .hosp-loc-subhead::before { background: var(--tpt-cat-labor, #5b8def); }
.telephely-kartyak .hosp-loc-group--life1 .hosp-loc-subhead::before { background: var(--tpt-cat-life1, #f0c14a); }
.telephely-kartyak .hosp-loc-group--optika .hosp-loc-subhead::before { background: var(--tpt-cat-optika, #6b7fd7); }
.telephely-kartyak .hosp-loc-group--szuleszeti .hosp-loc-subhead::before { background: var(--tpt-cat-szuleszeti, #c0392b); }

.telephely-kartyak__grid,
.telephely-kartyak .hosp-loc-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}

.telephely-kartyak .hosp-loc {
  background: var(--tk-white);
  border-radius: var(--tk-r);
  padding: 0.8rem 0.95rem;
  border: 1px solid var(--tk-border);
  transition: border-color 0.25s, box-shadow 0.25s, transform 0.25s;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  text-decoration: none;
  color: inherit;
  min-height: 100%;
  box-shadow: 0 1px 2px rgba(30, 58, 80, 0.03);
}

.telephely-kartyak .hosp-loc:hover {
  border-color: var(--tk-brand);
  box-shadow: 0 8px 24px rgba(30, 58, 80, 0.1);
  transform: translateY(-2px);
}

.telephely-kartyak .hosp-loc-img {
  width: 118px;
  height: 118px;
  border-radius: 10px;
  overflow: hidden;
  flex-shrink: 0;
  background: #e8f4f8;
}

.telephely-kartyak .hosp-loc-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.telephely-kartyak__img-fallback {
  display: grid;
  place-items: center;
  background:
    linear-gradient(145deg, rgba(74, 142, 166, 0.18), rgba(30, 58, 80, 0.08));
}

.telephely-kartyak__img-fallback-icon {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  border: 2px solid rgba(30, 58, 80, 0.22);
  background:
    radial-gradient(circle at 50% 42%, transparent 38%, rgba(30, 58, 80, 0.35) 40% 52%, transparent 54%),
    linear-gradient(rgba(30, 58, 80, 0.35), rgba(30, 58, 80, 0.35)) center 68% / 42% 2px no-repeat;
}

.telephely-kartyak .hosp-loc-info {
  min-width: 0;
  flex: 1;
}

.telephely-kartyak .hosp-loc-info small {
  font-size: 0.62rem;
  color: var(--tk-brand);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.telephely-kartyak .hosp-loc-info h4 {
  font-size: 0.92rem;
  font-weight: 750;
  color: var(--tk-navy);
  margin: 0.15rem 0 0.3rem;
  line-height: 1.25;
}

.telephely-kartyak .hosp-loc-info p {
  font-size: 0.78rem;
  color: var(--tk-mid);
  line-height: 1.45;
  margin: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

@media (max-width: 1100px) {
  .telephely-kartyak__grid,
  .telephely-kartyak .hosp-loc-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .telephely-kartyak__grid,
  .telephely-kartyak .hosp-loc-grid {
    grid-template-columns: 1fr;
  }

  .telephely-kartyak .hosp-loc-img {
    width: 96px;
    height: 96px;
  }
}
