{"id":18122,"date":"2026-07-09T15:48:24","date_gmt":"2026-07-09T15:48:24","guid":{"rendered":"https:\/\/soccer.legia.com\/?page_id=18122"},"modified":"2026-07-14T07:32:22","modified_gmt":"2026-07-14T07:32:22","slug":"nasze-lokalizacje","status":"publish","type":"page","link":"https:\/\/soccer.legia.com\/en\/nasze-lokalizacje\/","title":{"rendered":"Nasze lokalizacje"},"content":{"rendered":"<section class=\"wpb-content-wrapper\"><div data-vc-full-width=\"true\" data-vc-full-width-init=\"false\" data-vc-stretch-content=\"true\" class=\"vc_row wpb_row vc_row-fluid lss-nasze-lokalizacje-hero vc_custom_1783676185680 vc_row-has-fill vc_row-o-content-middle vc_row-flex qodef-background-dots-skin--dark\"><div class=\"wpb_column vc_column_container vc_col-sm-12\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\n\t<div class=\"wpb_text_column wpb_content_element \" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<div class=\"lss-nasze-lokalizacje-hero-content\">\n<h1>NASZE LOKALIZACJE<\/h1>\n<h2>Trenuj z Legia Soccer Schools blisko swojego domu<\/h2>\n<p>Sprawd\u017a dost\u0119pne o\u015brodki treningowe w Warszawie i wybierz lokalizacj\u0119 najlepiej dopasowan\u0105 do Twojego dziecka.<\/p>\n<\/div>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div><div class=\"vc_row-full-width vc_clearfix\"><\/div><div class=\"qodef-content-grid\"><div data-vc-full-width=\"true\" data-vc-full-width-init=\"false\" class=\"vc_row wpb_row vc_row-fluid lss-nasze-lokalizacje-info vc_custom_1783609121821 vc_row-has-fill vc_column-gap-30 vc_row-o-equal-height vc_row-flex qodef-background-dots-skin--dark\"><div class=\"wpb_column vc_column_container vc_col-sm-4\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\n\t<div class=\"wpb_text_column wpb_content_element \" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<div class=\"lss-nasze-lokalizacje-kafelek-content\">\n<div class=\"lss-nasze-lokalizacje-kafelek-number\">01<\/div>\n<h3>Lokalizacje w ca\u0142ej Warszawie<\/h3>\n<p>O\u015brodki treningowe w r\u00f3\u017cnych dzielnicach miasta.<\/p>\n<\/div>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><div class=\"wpb_column vc_column_container vc_col-sm-4\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\n\t<div class=\"wpb_text_column wpb_content_element \" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<div class=\"lss-nasze-lokalizacje-kafelek-content\">\n<div class=\"lss-nasze-lokalizacje-kafelek-number\">02<\/div>\n<h3>Treningi przez ca\u0142y rok<\/h3>\n<p>Cz\u0119\u015b\u0107 lokalizacji dzia\u0142a pod balonem lub w hali w sezonie jesienno-zimowym.<\/p>\n<\/div>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><div class=\"wpb_column vc_column_container vc_col-sm-4\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\n\t<div class=\"wpb_text_column wpb_content_element \" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<div class=\"lss-nasze-lokalizacje-kafelek-content\">\n<div class=\"lss-nasze-lokalizacje-kafelek-number\">03<\/div>\n<h3>Boiska i hale sportowe<\/h3>\n<p>Zaj\u0119cia odbywaj\u0105 si\u0119 na obiektach szkolnych, sportowych i pi\u0142karskich.<\/p>\n<\/div>\n\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div><\/div><div class=\"vc_row-full-width vc_clearfix\"><\/div><div data-vc-full-width=\"true\" data-vc-full-width-init=\"false\" class=\"vc_row wpb_row vc_row-fluid lss-nasze-lokalizacje-wyszukiwarka-row vc_custom_1783612045731 vc_row-has-fill qodef-background-dots-skin--dark\"><div class=\"wpb_column vc_column_container vc_col-sm-12\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\n\t<div class=\"wpb_raw_code wpb_content_element wpb_raw_html vc_custom_1783609129201\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<div class=\"lss-nl-mobile-points-carousel\" id=\"lssNlMobilePoints\" aria-label=\"Najwa\u017cniejsze informacje o lokalizacjach\">\r\n  <div class=\"lss-nl-mobile-points-viewport\">\r\n    <div class=\"lss-nl-mobile-points-track\">\r\n      <div class=\"lss-nl-mobile-point-slide\">\r\n        <article class=\"lss-nl-mobile-point-card\">\r\n          <div class=\"lss-nl-mobile-point-number\">01<\/div>\r\n          <h3>Lokalizacje w ca\u0142ej Warszawie<\/h3>\r\n          <p>O\u015brodki treningowe w r\u00f3\u017cnych dzielnicach miasta.<\/p>\r\n        <\/article>\r\n      <\/div>\r\n\r\n      <div class=\"lss-nl-mobile-point-slide\">\r\n        <article class=\"lss-nl-mobile-point-card\">\r\n          <div class=\"lss-nl-mobile-point-number\">02<\/div>\r\n          <h3>Treningi przez ca\u0142y rok<\/h3>\r\n          <p>Cz\u0119\u015b\u0107 lokalizacji dzia\u0142a pod balonem lub w hali w sezonie jesienno-zimowym.<\/p>\r\n        <\/article>\r\n      <\/div>\r\n\r\n      <div class=\"lss-nl-mobile-point-slide\">\r\n        <article class=\"lss-nl-mobile-point-card\">\r\n          <div class=\"lss-nl-mobile-point-number\">03<\/div>\r\n          <h3>Boiska i hale sportowe<\/h3>\r\n          <p>Zaj\u0119cia odbywaj\u0105 si\u0119 na obiektach szkolnych, sportowych i pi\u0142karskich.<\/p>\r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"lss-nl-mobile-points-nav\" aria-label=\"Nawigacja karuzeli\">\r\n    <button type=\"button\" class=\"lss-nl-mobile-points-prev\" aria-label=\"Poprzedni punkt\">\u2039<\/button>\r\n    <div class=\"lss-nl-mobile-points-dots\" aria-hidden=\"true\">\r\n      <button type=\"button\" class=\"is-active\"><\/button>\r\n      <button type=\"button\"><\/button>\r\n      <button type=\"button\"><\/button>\r\n    <\/div>\r\n    <button type=\"button\" class=\"lss-nl-mobile-points-next\" aria-label=\"Nast\u0119pny punkt\">\u203a<\/button>\r\n  <\/div>\r\n<\/div>\r\n\r\n<div class=\"lss-nl-locator\" id=\"lssNlLocator\">\r\n\r\n  <div class=\"lss-nl-search-section\">\r\n    <div class=\"lss-nl-search-heading\">\r\n      <span>WYB\u00d3R LOKALIZACJI<\/span>\r\n      <h2>Wybierz lokalizacj\u0119 najbli\u017cej domu<\/h2>\r\n      <p>Wpisz nazw\u0119 dzielnicy lub wybierz lokalizacj\u0119 z listy, aby zobaczy\u0107 szczeg\u00f3\u0142y o\u015brodka treningowego.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"lss-nl-search-box\">\r\n      <label for=\"lssNlSearchInput\">Wpisz lub wybierz lokalizacj\u0119<\/label>\r\n\r\n      <div class=\"lss-nl-combobox\">\r\n        <input\r\n          type=\"text\"\r\n          id=\"lssNlSearchInput\"\r\n          placeholder=\"np. Praga, Mokot\u00f3w, Bielany, Stadion Legii...\"\r\n          autocomplete=\"off\"\r\n        \/>\r\n        <button type=\"button\" class=\"lss-nl-clear\" id=\"lssNlClear\" aria-label=\"Wyczy\u015b\u0107 wyb\u00f3r\">\u00d7<\/button>\r\n        <ul id=\"lssNlDropdown\" class=\"lss-nl-dropdown\" hidden><\/ul>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div id=\"lssNlCard\" class=\"lss-nl-card\" hidden><\/div>\r\n  <\/div>\r\n\r\n<\/div>\r\n\r\n<style>\r\n\/* =========================================\r\n   WYSZUKIWARKA LOKALIZACJI \u2014 Nasze lokalizacje\r\n   Wersja poprawiona wizualnie\r\n========================================= *\/\r\n\r\n.lss-nl-locator {\r\n  --lss-green: #0b6e3d;\r\n  --lss-green-dark: #084f2c;\r\n  --lss-black: #111111;\r\n  --lss-text: #242824;\r\n  --lss-muted: #626963;\r\n  --lss-bg: #f7f8f7;\r\n  --lss-card: #ffffff;\r\n  --lss-border: #dfe6df;\r\n  --lss-border-strong: #cfd8cf;\r\n  --lss-shadow: 0 18px 50px rgba(0, 0, 0, 0.10);\r\n\r\n  background: #f7f8f7 !important;\r\n  padding: 86px 24px 104px;\r\n  color: var(--lss-text);\r\n  font-family: inherit;\r\n}\r\n\r\n\/* Ca\u0142a sekcja nie ma w\u0142asnego ciemniejszego prostok\u0105ta *\/\r\n.lss-nl-search-section {\r\n  max-width: 1100px;\r\n  margin: 0 auto;\r\n  background: transparent !important;\r\n}\r\n\r\n\/* Nag\u0142\u00f3wek sekcji *\/\r\n.lss-nl-search-heading {\r\n  max-width: 860px;\r\n  margin: 0 auto 40px;\r\n  text-align: center;\r\n}\r\n\r\n.lss-nl-search-heading span {\r\n  display: inline-block;\r\n  color: var(--lss-green);\r\n  font-size: 12px;\r\n  line-height: 1;\r\n  font-weight: 900;\r\n  letter-spacing: 0.22em;\r\n  text-transform: uppercase;\r\n  margin-bottom: 16px;\r\n}\r\n\r\n.lss-nl-search-heading h2 {\r\n  color: var(--lss-black) !important;\r\n  font-size: clamp(36px, 4vw, 60px) !important;\r\n  line-height: 0.98 !important;\r\n  font-weight: 900 !important;\r\n  text-transform: uppercase !important;\r\n  letter-spacing: -0.045em !important;\r\n  margin: 0 0 18px !important;\r\n}\r\n\r\n.lss-nl-search-heading p {\r\n  color: #666d67 !important;\r\n  font-size: 16px !important;\r\n  line-height: 1.65 !important;\r\n  margin: 0 auto !important;\r\n  max-width: 720px;\r\n}\r\n\r\n\/* Bia\u0142a karta z polem wyszukiwania *\/\r\n.lss-nl-search-box {\r\n  max-width: 780px;\r\n  margin: 0 auto 42px;\r\n  background: #ffffff;\r\n  border: 1px solid var(--lss-border);\r\n  border-radius: 24px;\r\n  padding: 24px 26px 26px;\r\n  box-shadow: 0 14px 42px rgba(0, 0, 0, 0.075);\r\n  position: relative;\r\n}\r\n\r\n\/* Zielony akcent u g\u00f3ry *\/\r\n.lss-nl-search-box::before {\r\n  content: \"\";\r\n  position: absolute;\r\n  top: 0;\r\n  left: 28px;\r\n  right: 28px;\r\n  height: 4px;\r\n  background: var(--lss-green);\r\n  border-radius: 0 0 999px 999px;\r\n}\r\n\r\n.lss-nl-search-box label {\r\n  display: block;\r\n  color: var(--lss-black);\r\n  font-size: 13px;\r\n  font-weight: 900;\r\n  text-transform: uppercase;\r\n  letter-spacing: 0.08em;\r\n  margin-bottom: 13px;\r\n}\r\n\r\n.lss-nl-combobox {\r\n  position: relative;\r\n  height: 58px;\r\n}\r\n\r\n\/* Ikona lupy po lewej stronie pola \u2014 widoczna tylko wtedy, gdy pole jest puste *\/\r\n.lss-nl-combobox::before {\r\n  content: \"\";\r\n  position: absolute;\r\n  left: 21px;\r\n  top: 19px;\r\n  width: 17px;\r\n  height: 17px;\r\n  border: 3px solid var(--lss-green);\r\n  border-radius: 50%;\r\n  box-sizing: border-box;\r\n  z-index: 2;\r\n  pointer-events: none;\r\n  opacity: 1;\r\n  visibility: visible;\r\n  transition: opacity 0.14s ease, visibility 0.14s ease;\r\n}\r\n\r\n.lss-nl-combobox::after {\r\n  content: \"\";\r\n  position: absolute;\r\n  left: 35px;\r\n  top: 35px;\r\n  width: 10px;\r\n  height: 3px;\r\n  background: var(--lss-green);\r\n  transform: rotate(45deg);\r\n  border-radius: 999px;\r\n  z-index: 2;\r\n  pointer-events: none;\r\n  opacity: 1;\r\n  visibility: visible;\r\n  transition: opacity 0.14s ease, visibility 0.14s ease;\r\n}\r\n\r\n\/* Po wpisaniu\/wybraniu lokalizacji lupa znika, \u017ceby nie nachodzi\u0142a na tekst *\/\r\n.lss-nl-combobox.has-value::before,\r\n.lss-nl-combobox.has-value::after {\r\n  opacity: 0;\r\n  visibility: hidden;\r\n}\r\n\r\n\/* Sam input \u2014 bardziej clean\/premium *\/\r\n.lss-nl-combobox input {\r\n  width: 100%;\r\n  box-sizing: border-box;\r\n  height: 58px;\r\n  min-height: 58px;\r\n  border: 2px solid var(--lss-border);\r\n  border-radius: 16px;\r\n  background: #f9faf9;\r\n  padding: 0 62px 0 58px;\r\n  color: var(--lss-black);\r\n  font-size: 16px;\r\n  font-weight: 700;\r\n  line-height: 58px;\r\n  outline: none;\r\n  box-shadow: none;\r\n  text-indent: 0;\r\n  transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease, padding-left 0.14s ease;\r\n}\r\n\r\n\/* Po wpisaniu\/wybraniu tekst zaczyna si\u0119 normalnie od lewej, bo lupa znika *\/\r\n.lss-nl-combobox.has-value input {\r\n  padding-left: 20px;\r\n}\r\n\r\n.lss-nl-combobox input::placeholder {\r\n  color: #8a918b;\r\n  font-weight: 600;\r\n}\r\n\r\n.lss-nl-combobox input:focus {\r\n  background: #ffffff;\r\n  border-color: var(--lss-green);\r\n  box-shadow: 0 0 0 4px rgba(11, 110, 61, 0.10);\r\n}\r\n\r\n\/* Zielony X \u2014 na sztywno wycentrowany wzgl\u0119dem inputa *\/\r\n.lss-nl-clear {\r\n  position: absolute !important;\r\n  right: 14px !important;\r\n  top: 13px !important;\r\n  transform: none !important;\r\n  width: 32px !important;\r\n  height: 32px !important;\r\n  min-width: 32px !important;\r\n  min-height: 32px !important;\r\n  max-width: 32px !important;\r\n  max-height: 32px !important;\r\n  box-sizing: border-box !important;\r\n  padding: 0 !important;\r\n  margin: 0 !important;\r\n  border: none !important;\r\n  outline: none !important;\r\n  border-radius: 50% !important;\r\n  background: var(--lss-green) !important;\r\n  color: #ffffff !important;\r\n  font-size: 22px !important;\r\n  font-weight: 700 !important;\r\n  line-height: 32px !important;\r\n  text-align: center !important;\r\n  align-items: center !important;\r\n  justify-content: center !important;\r\n  cursor: pointer !important;\r\n  box-shadow: 0 8px 18px rgba(11, 110, 61, 0.28) !important;\r\n  z-index: 3 !important;\r\n  display: none !important;\r\n  -webkit-appearance: none !important;\r\n  appearance: none !important;\r\n}\r\n\r\n.lss-nl-clear.is-visible {\r\n  display: flex !important;\r\n}\r\n\r\n.lss-nl-clear:hover {\r\n  background: var(--lss-green-dark) !important;\r\n}\r\n\r\n\/* Dropdown *\/\r\n.lss-nl-dropdown {\r\n  list-style: none;\r\n  position: absolute;\r\n  top: calc(100% + 12px);\r\n  left: 0;\r\n  right: 0;\r\n  z-index: 9999;\r\n  background: #ffffff;\r\n  border: 1px solid var(--lss-border);\r\n  border-radius: 18px;\r\n  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.12);\r\n  padding: 10px;\r\n  margin: 0;\r\n  max-height: 340px;\r\n  overflow-y: auto;\r\n}\r\n\r\n.lss-nl-dropdown li {\r\n  padding: 15px 16px;\r\n  border-radius: 13px;\r\n  cursor: pointer;\r\n  transition: background 0.15s ease, transform 0.15s ease;\r\n}\r\n\r\n.lss-nl-dropdown li:hover,\r\n.lss-nl-dropdown li.is-active {\r\n  background: #f1f6f2;\r\n  transform: translateX(3px);\r\n}\r\n\r\n.lss-nl-dropdown strong {\r\n  display: block;\r\n  color: var(--lss-black);\r\n  font-size: 15px;\r\n  font-weight: 900;\r\n  text-transform: uppercase;\r\n  letter-spacing: -0.01em;\r\n  margin-bottom: 4px;\r\n}\r\n\r\n.lss-nl-dropdown span {\r\n  display: block;\r\n  color: #646b65;\r\n  font-size: 13px;\r\n  line-height: 1.4;\r\n}\r\n\r\n.lss-nl-dropdown .lss-nl-empty {\r\n  color: var(--lss-muted);\r\n  cursor: default;\r\n  font-size: 14px;\r\n}\r\n\r\n\/* =========================================\r\n   KARTA LOKALIZACJI\r\n========================================= *\/\r\n\r\n.lss-nl-card {\r\n  max-width: 1000px;\r\n  margin: 42px auto 0;\r\n  background: var(--lss-card);\r\n  border: 1px solid var(--lss-border);\r\n  border-radius: 26px;\r\n  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.11);\r\n  overflow: hidden;\r\n  animation: lssNlFadeIn 0.25s ease;\r\n}\r\n\r\n@keyframes lssNlFadeIn {\r\n  from {\r\n    opacity: 0;\r\n    transform: translateY(12px);\r\n  }\r\n  to {\r\n    opacity: 1;\r\n    transform: translateY(0);\r\n  }\r\n}\r\n\r\n.lss-nl-card-inner {\r\n  padding: 42px;\r\n}\r\n\r\n.lss-nl-card-top {\r\n  display: flex;\r\n  justify-content: space-between;\r\n  gap: 24px;\r\n  align-items: flex-start;\r\n  margin-bottom: 28px;\r\n}\r\n\r\n.lss-nl-card-title h3 {\r\n  color: var(--lss-black) !important;\r\n  font-size: clamp(34px, 4vw, 54px) !important;\r\n  line-height: 1 !important;\r\n  font-weight: 900 !important;\r\n  text-transform: uppercase !important;\r\n  letter-spacing: -0.04em !important;\r\n  margin: 0 0 12px !important;\r\n}\r\n\r\n.lss-nl-address {\r\n  color: var(--lss-green-dark);\r\n  font-size: 16px;\r\n  font-weight: 800;\r\n  line-height: 1.45;\r\n}\r\n\r\n.lss-nl-address-line {\r\n  margin: 0 0 4px;\r\n}\r\n\r\n.lss-nl-address-line:last-child {\r\n  margin-bottom: 0;\r\n}\r\n\r\n.lss-nl-address-line strong {\r\n  color: var(--lss-black);\r\n  font-weight: 900;\r\n}\r\n\r\n.lss-nl-card-logo {\r\n  flex: 0 0 auto;\r\n  width: 50px;\r\n  max-width: 50px;\r\n  display: flex;\r\n  align-items: flex-start;\r\n  justify-content: flex-end;\r\n}\r\n\r\n.lss-nl-card-logo img {\r\n  display: block;\r\n  width: 100%;\r\n  height: auto;\r\n  object-fit: contain;\r\n}\r\n\r\n.lss-nl-photos {\r\n  display: grid;\r\n  grid-template-columns: 1fr 1fr;\r\n  gap: 18px;\r\n  margin-bottom: 30px;\r\n}\r\n\r\n.lss-nl-photo {\r\n  aspect-ratio: 4 \/ 3;\r\n  border-radius: 18px;\r\n  overflow: hidden;\r\n  background: #eef1ee;\r\n  border: 1px dashed #cfd7cf;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n}\r\n\r\n.lss-nl-photo img {\r\n  width: 100% !important;\r\n  height: 100% !important;\r\n  object-fit: cover !important;\r\n  object-position: center center !important;\r\n  display: block !important;\r\n}\r\n\r\n.lss-nl-placeholder {\r\n  text-align: center;\r\n  color: #7a827b;\r\n  padding: 18px;\r\n  font-size: 14px;\r\n  font-weight: 700;\r\n}\r\n\r\n.lss-nl-placeholder-icon {\r\n  width: 42px;\r\n  height: 42px;\r\n  border-radius: 50%;\r\n  background: rgba(11, 110, 61, 0.10);\r\n  color: var(--lss-green);\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  margin: 0 auto 12px;\r\n  font-size: 20px;\r\n}\r\n\r\n.lss-nl-description {\r\n  color: var(--lss-text);\r\n  font-size: 16px;\r\n  line-height: 1.75;\r\n  margin: 0 0 34px;\r\n}\r\n\r\n.lss-nl-buttons {\r\n  display: flex;\r\n  gap: 14px;\r\n  flex-wrap: wrap;\r\n}\r\n\r\n.lss-nl-btn {\r\n  flex: 1 1 0;\r\n  min-width: 190px;\r\n  min-height: 54px;\r\n  text-align: center;\r\n  border-radius: 12px;\r\n  padding: 15px 18px;\r\n  font-size: 14px;\r\n  font-weight: 900;\r\n  line-height: 1.15;\r\n  text-transform: uppercase;\r\n  letter-spacing: 0.03em;\r\n  text-decoration: none !important;\r\n  display: inline-flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  box-sizing: border-box;\r\n  transition: transform 0.16s ease, opacity 0.16s ease, background 0.16s ease, border-color 0.16s ease;\r\n}\r\n\r\n.lss-nl-btn:hover {\r\n  transform: translateY(-2px);\r\n  opacity: 0.90;\r\n}\r\n\r\n.lss-nl-btn-dark {\r\n  background: var(--lss-black);\r\n  color: #ffffff !important;\r\n}\r\n\r\n.lss-nl-btn-green {\r\n  background: var(--lss-green);\r\n  color: #ffffff !important;\r\n}\r\n\r\n.lss-nl-btn-outline {\r\n  background: #ffffff;\r\n  color: var(--lss-black) !important;\r\n  border: 2px solid var(--lss-border);\r\n}\r\n\r\n.lss-nl-btn-gallery {\r\n  background: #ffffff;\r\n  color: var(--lss-green-dark) !important;\r\n  border: 2px solid rgba(11, 110, 61, 0.30);\r\n}\r\n\r\n.lss-nl-btn-gallery:hover {\r\n  border-color: var(--lss-green);\r\n}\r\n\r\n\/* Uk\u0142ad 4 przycisk\u00f3w: czerwono-bia\u0142o-zielono-czarne *\/\r\n.lss-nl-buttons.lss-nl-buttons-has-gallery .lss-nl-btn:nth-child(1) {\r\n  background: #b51f2b !important;\r\n  color: #ffffff !important;\r\n  border: 2px solid #b51f2b !important;\r\n}\r\n\r\n.lss-nl-buttons.lss-nl-buttons-has-gallery .lss-nl-btn:nth-child(2) {\r\n  background: #ffffff !important;\r\n  color: var(--lss-black) !important;\r\n  border: 2px solid var(--lss-border) !important;\r\n}\r\n\r\n.lss-nl-buttons.lss-nl-buttons-has-gallery .lss-nl-btn:nth-child(3) {\r\n  background: var(--lss-green) !important;\r\n  color: #ffffff !important;\r\n  border: 2px solid var(--lss-green) !important;\r\n}\r\n\r\n.lss-nl-buttons.lss-nl-buttons-has-gallery .lss-nl-btn:nth-child(4) {\r\n  background: var(--lss-black) !important;\r\n  color: #ffffff !important;\r\n  border: 2px solid var(--lss-black) !important;\r\n}\r\n\r\n\/* MOBILE *\/\r\n@media (max-width: 768px) {\r\n  .lss-nl-locator {\r\n    padding: 64px 18px 76px;\r\n  }\r\n\r\n  .lss-nl-search-heading {\r\n    text-align: left;\r\n    margin-bottom: 30px;\r\n  }\r\n\r\n  .lss-nl-search-heading h2 {\r\n    font-size: 34px !important;\r\n  }\r\n\r\n  .lss-nl-search-box {\r\n    padding: 22px 18px 20px;\r\n    border-radius: 20px;\r\n  }\r\n\r\n  .lss-nl-search-box::before {\r\n    left: 20px;\r\n    right: 20px;\r\n  }\r\n\r\n  .lss-nl-combobox {\r\n    height: 56px;\r\n  }\r\n\r\n  .lss-nl-combobox input {\r\n    height: 56px;\r\n    min-height: 56px;\r\n    line-height: 56px;\r\n    font-size: 15px;\r\n    padding-left: 52px;\r\n    padding-right: 58px;\r\n  }\r\n\r\n  .lss-nl-combobox.has-value input {\r\n    padding-left: 18px;\r\n  }\r\n\r\n  .lss-nl-combobox::before {\r\n    left: 19px;\r\n    top: 18px;\r\n    width: 16px;\r\n    height: 16px;\r\n  }\r\n\r\n  .lss-nl-combobox::after {\r\n    left: 32px;\r\n    top: 33px;\r\n  }\r\n\r\n  .lss-nl-clear {\r\n    right: 12px !important;\r\n    top: 13px !important;\r\n    width: 30px !important;\r\n    height: 30px !important;\r\n    min-width: 30px !important;\r\n    min-height: 30px !important;\r\n    max-width: 30px !important;\r\n    max-height: 30px !important;\r\n    line-height: 30px !important;\r\n  }\r\n\r\n  .lss-nl-card-inner {\r\n    padding: 28px 22px;\r\n  }\r\n\r\n  .lss-nl-card-top {\r\n    flex-direction: column;\r\n    gap: 14px;\r\n  }\r\n\r\n  \/* Na mobile logo Legia Soccer Schools na karcie lokalizacji jest ukryte *\/\r\n  .lss-nl-card-logo {\r\n    display: none !important;\r\n  }\r\n\r\n  .lss-nl-photos {\r\n    grid-template-columns: 1fr;\r\n  }\r\n\r\n  .lss-nl-buttons {\r\n    flex-direction: column;\r\n  }\r\n\r\n  .lss-nl-btn {\r\n    width: 100%;\r\n    min-width: 0;\r\n    min-height: 54px;\r\n  }\r\n}\r\n\r\n\r\n\/* =========================================\r\n   POPRAWKA: dropdown lokalizacji nad map\u0105\r\n   Dzi\u0119ki temu lista z wyszukiwarki nie chowa si\u0119 pod iframe mapy.\r\n========================================= *\/\r\n\r\n\/* Ca\u0142y modu\u0142 wyszukiwarki musi by\u0107 nad map\u0105 *\/\r\n.lss-nl-locator {\r\n  position: relative !important;\r\n  z-index: 99999 !important;\r\n  overflow: visible !important;\r\n}\r\n\r\n\/* Sekcje wewn\u0119trzne te\u017c nie mog\u0105 ucina\u0107 dropdownu *\/\r\n.lss-nl-search-section,\r\n.lss-nl-search-box,\r\n.lss-nl-combobox {\r\n  position: relative !important;\r\n  overflow: visible !important;\r\n}\r\n\r\n\/* Search box i input nad map\u0105 *\/\r\n.lss-nl-search-box {\r\n  z-index: 99999 !important;\r\n}\r\n\r\n.lss-nl-combobox {\r\n  z-index: 100000 !important;\r\n}\r\n\r\n\/* Sama lista lokalizacji \u2014 najwy\u017csza warstwa *\/\r\n.lss-nl-dropdown {\r\n  position: absolute !important;\r\n  z-index: 999999 !important;\r\n  top: calc(100% + 12px) !important;\r\n  left: 0 !important;\r\n  right: 0 !important;\r\n  max-height: 420px !important;\r\n  overflow-y: auto !important;\r\n}\r\n\r\n\/* Karta lokalizacji te\u017c powinna by\u0107 nad map\u0105, je\u015bli si\u0119 pojawi *\/\r\n.lss-nl-card {\r\n  position: relative !important;\r\n  z-index: 50000 !important;\r\n}\r\n\r\n\/* Mapa ma by\u0107 ni\u017cej w warstwach *\/\r\n.lss-nasze-lokalizacje-mapa-row,\r\n.lss-nasze-lokalizacje-mapa-full {\r\n  position: relative !important;\r\n  z-index: 1 !important;\r\n}\r\n\r\n\/* Iframe mapy nie mo\u017ce przykrywa\u0107 dropdownu *\/\r\n.lss-nasze-lokalizacje-mapa-full iframe,\r\niframe[src*=\"panel.schools.legia.com\/pl\/map-frame\"] {\r\n  position: relative !important;\r\n  z-index: 1 !important;\r\n}\r\n\r\n\/* Awaryjnie: WPBakery na tej podstronie nie powinien ucina\u0107 dropdownu *\/\r\nbody.page-id-18122 .vc_row,\r\nbody.page-id-18122 .wpb_row,\r\nbody.page-id-18122 .wpb_column,\r\nbody.page-id-18122 .vc_column-inner,\r\nbody.page-id-18122 .wpb_wrapper {\r\n  overflow: visible !important;\r\n}\r\n\r\n\r\n\r\n\/* =========================================\r\n   FINALNE POPRAWKI MOBILE + INPUT\r\n   1) placeholder odsuni\u0119ty od lupki\r\n   2) kafelki 01\/02\/03 na mobile jako prawdziwy slider: 1 kafelek na ekran\r\n========================================= *\/\r\n\r\n\/* INPUT \u2014 wymuszenie wi\u0119kszego odsuni\u0119cia tekstu od lupki *\/\r\n.lss-nl-combobox input {\r\n  padding-left: 98px !important;\r\n  padding-right: 68px !important;\r\n  text-indent: 0 !important;\r\n}\r\n\r\n.lss-nl-combobox input::placeholder {\r\n  padding-left: 0 !important;\r\n  text-indent: 0 !important;\r\n}\r\n\r\n\/* Po wpisaniu\/wybraniu lokalizacji lupa znika, a tekst wraca bli\u017cej lewej *\/\r\n.lss-nl-combobox.has-value input {\r\n  padding-left: 24px !important;\r\n  padding-right: 68px !important;\r\n}\r\n\r\n\/* Lupa zostaje po lewej, ale ma du\u017co wolnej przestrzeni od tekstu *\/\r\n.lss-nl-combobox::before {\r\n  left: 24px !important;\r\n}\r\n\r\n.lss-nl-combobox::after {\r\n  left: 39px !important;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n  .lss-nl-combobox input {\r\n    padding-left: 94px !important;\r\n    padding-right: 64px !important;\r\n  }\r\n\r\n  .lss-nl-combobox.has-value input {\r\n    padding-left: 22px !important;\r\n    padding-right: 64px !important;\r\n  }\r\n\r\n  .lss-nl-combobox::before {\r\n    left: 22px !important;\r\n  }\r\n\r\n  .lss-nl-combobox::after {\r\n    left: 36px !important;\r\n  }\r\n}\r\n\r\n\/* =========================================\r\n   MOBILE SLIDER DLA 3 KAFELK\u00d3W 01\/02\/03\r\n   Desktop zostaje bez zmian.\r\n   UWAGA: dzia\u0142a na sekcji WPBakery z klasami:\r\n   - row: lss-nasze-lokalizacje-info\r\n   - kolumny: lss-nasze-lokalizacje-kafelek\r\n========================================= *\/\r\n\r\n@media (max-width: 767px) {\r\n  body.page-id-18122 .lss-nasze-lokalizacje-info,\r\n  body.page-id-18122 .lss-nasze-lokalizacje-info.vc_row,\r\n  body.page-id-18122 .lss-nasze-lokalizacje-info.wpb_row {\r\n    width: 100vw !important;\r\n    max-width: 100vw !important;\r\n    margin-left: calc(50% - 50vw) !important;\r\n    margin-right: calc(50% - 50vw) !important;\r\n    padding: 76px 0 76px !important;\r\n    display: flex !important;\r\n    flex-wrap: nowrap !important;\r\n    gap: 0 !important;\r\n    overflow-x: auto !important;\r\n    overflow-y: hidden !important;\r\n    scroll-snap-type: x mandatory !important;\r\n    scroll-behavior: smooth !important;\r\n    -webkit-overflow-scrolling: touch !important;\r\n    box-sizing: border-box !important;\r\n  }\r\n\r\n  \/* ukrycie paska przewijania, ale swipe zostaje *\/\r\n  body.page-id-18122 .lss-nasze-lokalizacje-info::-webkit-scrollbar {\r\n    display: none !important;\r\n  }\r\n\r\n  body.page-id-18122 .lss-nasze-lokalizacje-info {\r\n    scrollbar-width: none !important;\r\n    -ms-overflow-style: none !important;\r\n  }\r\n\r\n  \/* Ka\u017cdy punkt zajmuje pe\u0142n\u0105 szeroko\u015b\u0107 ekranu \u2014 tylko jeden jest widoczny *\/\r\n  body.page-id-18122 .lss-nasze-lokalizacje-info > .lss-nasze-lokalizacje-kafelek,\r\n  body.page-id-18122 .lss-nasze-lokalizacje-info > .vc_column_container.lss-nasze-lokalizacje-kafelek,\r\n  body.page-id-18122 .lss-nasze-lokalizacje-info > .wpb_column.lss-nasze-lokalizacje-kafelek {\r\n    flex: 0 0 100vw !important;\r\n    width: 100vw !important;\r\n    max-width: 100vw !important;\r\n    min-width: 100vw !important;\r\n    padding-left: 28px !important;\r\n    padding-right: 28px !important;\r\n    margin: 0 !important;\r\n    box-sizing: border-box !important;\r\n    scroll-snap-align: center !important;\r\n    scroll-snap-stop: always !important;\r\n  }\r\n\r\n  \/* Wymuszenie pe\u0142nej szeroko\u015bci wewn\u0105trz slajdu *\/\r\n  body.page-id-18122 .lss-nasze-lokalizacje-info .lss-nasze-lokalizacje-kafelek > .vc_column-inner,\r\n  body.page-id-18122 .lss-nasze-lokalizacje-info .lss-nasze-lokalizacje-kafelek > .wpb_wrapper {\r\n    width: 100% !important;\r\n    max-width: 100% !important;\r\n    box-sizing: border-box !important;\r\n  }\r\n\r\n  \/* Karta punktu \u2014 bardziej czytelna i szeroka na mobile *\/\r\n  body.page-id-18122 .lss-nasze-lokalizacje-info .lss-nasze-lokalizacje-kafelek > .vc_column-inner {\r\n    background: #ffffff !important;\r\n    border-radius: 26px !important;\r\n    padding: 42px 32px 46px !important;\r\n    min-height: 430px !important;\r\n    box-shadow: 0 18px 46px rgba(0, 0, 0, 0.10) !important;\r\n    display: flex !important;\r\n    align-items: center !important;\r\n  }\r\n\r\n  body.page-id-18122 .lss-nasze-lokalizacje-kafelek-content {\r\n    width: 100% !important;\r\n    max-width: 100% !important;\r\n    min-height: auto !important;\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    align-items: flex-start !important;\r\n    justify-content: center !important;\r\n    text-align: left !important;\r\n  }\r\n\r\n  body.page-id-18122 .lss-nasze-lokalizacje-kafelek-number {\r\n    width: 82px !important;\r\n    height: 82px !important;\r\n    min-width: 82px !important;\r\n    min-height: 82px !important;\r\n    font-size: 20px !important;\r\n    margin: 0 0 30px 0 !important;\r\n    box-shadow: 0 18px 36px rgba(11, 110, 61, 0.24) !important;\r\n  }\r\n\r\n  body.page-id-18122 .lss-nasze-lokalizacje-kafelek-content h3 {\r\n    width: 100% !important;\r\n    color: #111111 !important;\r\n    font-size: 34px !important;\r\n    line-height: 1.08 !important;\r\n    font-weight: 900 !important;\r\n    letter-spacing: -0.04em !important;\r\n    margin: 0 0 24px !important;\r\n    text-transform: uppercase !important;\r\n    word-break: normal !important;\r\n    overflow-wrap: normal !important;\r\n  }\r\n\r\n  body.page-id-18122 .lss-nasze-lokalizacje-kafelek-content p {\r\n    width: 100% !important;\r\n    max-width: 100% !important;\r\n    color: #5f6761 !important;\r\n    font-size: 21px !important;\r\n    line-height: 1.55 !important;\r\n    margin: 0 !important;\r\n    word-break: normal !important;\r\n    overflow-wrap: normal !important;\r\n  }\r\n}\r\n\r\n\r\n\r\n\/* =========================================\r\n   FINALNA POPRAWKA: INPUT + MOBILE KARUZELA 01\/02\/03\r\n   - placeholder cofni\u0119ty wzgl\u0119dem poprzedniej wersji, ale nadal nie nachodzi na lup\u0119\r\n   - na mobile oryginalne 3 kolumny WPBakery s\u0105 ukryte\r\n   - zamiast nich pojawia si\u0119 osobny slider: jeden punkt na ekran\r\n========================================= *\/\r\n\r\n\/* INPUT \u2014 mocne, ale rozs\u0105dne odsuni\u0119cie placeholdera od lupki *\/\r\n.lss-nl-combobox input {\r\n  padding-left: 76px !important;\r\n  padding-right: 68px !important;\r\n  text-indent: 0 !important;\r\n}\r\n\r\n.lss-nl-combobox input::placeholder {\r\n  color: #8a918b !important;\r\n  font-weight: 600 !important;\r\n  opacity: 1 !important;\r\n  text-indent: 0 !important;\r\n}\r\n\r\n.lss-nl-combobox.has-value input {\r\n  padding-left: 24px !important;\r\n  padding-right: 68px !important;\r\n}\r\n\r\n.lss-nl-combobox::before {\r\n  left: 22px !important;\r\n}\r\n\r\n.lss-nl-combobox::after {\r\n  left: 37px !important;\r\n}\r\n\r\n\/* Mobilna karuzela punkt\u00f3w domy\u015blnie ukryta na desktopie *\/\r\n.lss-nl-mobile-points-carousel {\r\n  display: none;\r\n}\r\n\r\n@media (max-width: 767px) {\r\n  \/* Na mobile ukrywamy oryginalne 3 kolumny z WPBakery, \u017ceby nie walczy\u0142y ze sliderem *\/\r\n  body.page-id-18122 .lss-nasze-lokalizacje-info,\r\n  body.page-id-18122 .lss-nasze-lokalizacje-info.vc_row,\r\n  body.page-id-18122 .lss-nasze-lokalizacje-info.wpb_row {\r\n    display: none !important;\r\n  }\r\n\r\n  .lss-nl-combobox input {\r\n    padding-left: 74px !important;\r\n    padding-right: 62px !important;\r\n  }\r\n\r\n  .lss-nl-combobox.has-value input {\r\n    padding-left: 20px !important;\r\n    padding-right: 62px !important;\r\n  }\r\n\r\n  .lss-nl-combobox::before {\r\n    left: 20px !important;\r\n  }\r\n\r\n  .lss-nl-combobox::after {\r\n    left: 34px !important;\r\n  }\r\n\r\n  \/* Slider 01\/02\/03 \u2014 jeden punkt na ekran *\/\r\n  .lss-nl-mobile-points-carousel {\r\n    display: block !important;\r\n    width: 100vw !important;\r\n    margin-left: calc(50% - 50vw) !important;\r\n    margin-right: calc(50% - 50vw) !important;\r\n    background: #f7f8f7 !important;\r\n    padding: 72px 0 78px !important;\r\n    overflow: hidden !important;\r\n    position: relative !important;\r\n    box-sizing: border-box !important;\r\n  }\r\n\r\n  .lss-nl-mobile-points-viewport {\r\n    width: 100% !important;\r\n    overflow: hidden !important;\r\n    position: relative !important;\r\n    box-sizing: border-box !important;\r\n  }\r\n\r\n  .lss-nl-mobile-points-track {\r\n    display: flex !important;\r\n    flex-wrap: nowrap !important;\r\n    width: 100% !important;\r\n    transform: translateX(0);\r\n    transition: transform 0.42s cubic-bezier(0.22, 0.8, 0.2, 1) !important;\r\n    will-change: transform !important;\r\n    touch-action: pan-y !important;\r\n  }\r\n\r\n  .lss-nl-mobile-point-slide {\r\n    flex: 0 0 100% !important;\r\n    width: 100% !important;\r\n    min-width: 100% !important;\r\n    max-width: 100% !important;\r\n    padding: 0 26px !important;\r\n    box-sizing: border-box !important;\r\n  }\r\n\r\n  .lss-nl-mobile-point-card {\r\n    width: 100% !important;\r\n    min-height: 360px !important;\r\n    background: #ffffff !important;\r\n    border: 1px solid #dfe6df !important;\r\n    border-radius: 28px !important;\r\n    padding: 42px 30px 44px !important;\r\n    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.10) !important;\r\n    box-sizing: border-box !important;\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    justify-content: center !important;\r\n    align-items: flex-start !important;\r\n    text-align: left !important;\r\n    position: relative !important;\r\n    overflow: hidden !important;\r\n  }\r\n\r\n  .lss-nl-mobile-point-card::before {\r\n    content: \"\";\r\n    position: absolute;\r\n    top: 0;\r\n    left: 30px;\r\n    right: 30px;\r\n    height: 5px;\r\n    background: #0b6e3d;\r\n    border-radius: 0 0 999px 999px;\r\n  }\r\n\r\n  .lss-nl-mobile-point-number {\r\n    width: 82px !important;\r\n    height: 82px !important;\r\n    min-width: 82px !important;\r\n    min-height: 82px !important;\r\n    border-radius: 50% !important;\r\n    background: #0b6e3d !important;\r\n    color: #ffffff !important;\r\n    display: flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    font-size: 20px !important;\r\n    font-weight: 900 !important;\r\n    line-height: 1 !important;\r\n    margin: 0 0 28px 0 !important;\r\n    box-shadow: 0 16px 34px rgba(11, 110, 61, 0.24) !important;\r\n  }\r\n\r\n  .lss-nl-mobile-point-card h3 {\r\n    width: 100% !important;\r\n    color: #111111 !important;\r\n    font-size: clamp(30px, 8vw, 40px) !important;\r\n    line-height: 1.06 !important;\r\n    font-weight: 900 !important;\r\n    text-transform: uppercase !important;\r\n    letter-spacing: -0.045em !important;\r\n    margin: 0 0 22px !important;\r\n    word-break: normal !important;\r\n    overflow-wrap: normal !important;\r\n    hyphens: none !important;\r\n  }\r\n\r\n  .lss-nl-mobile-point-card p {\r\n    width: 100% !important;\r\n    color: #5f6761 !important;\r\n    font-size: 20px !important;\r\n    line-height: 1.55 !important;\r\n    font-weight: 400 !important;\r\n    margin: 0 !important;\r\n    word-break: normal !important;\r\n    overflow-wrap: normal !important;\r\n    hyphens: none !important;\r\n  }\r\n\r\n  .lss-nl-mobile-points-nav {\r\n    display: flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    gap: 18px !important;\r\n    margin-top: 24px !important;\r\n  }\r\n\r\n  .lss-nl-mobile-points-prev,\r\n  .lss-nl-mobile-points-next {\r\n    width: 46px !important;\r\n    height: 46px !important;\r\n    border-radius: 50% !important;\r\n    border: 1px solid #dfe6df !important;\r\n    background: #ffffff !important;\r\n    color: #111111 !important;\r\n    font-size: 32px !important;\r\n    line-height: 40px !important;\r\n    font-weight: 400 !important;\r\n    display: flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    padding: 0 !important;\r\n    margin: 0 !important;\r\n    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.08) !important;\r\n  }\r\n\r\n  .lss-nl-mobile-points-dots {\r\n    display: flex !important;\r\n    align-items: center !important;\r\n    justify-content: center !important;\r\n    gap: 8px !important;\r\n  }\r\n\r\n  .lss-nl-mobile-points-dots button {\r\n    width: 8px !important;\r\n    height: 8px !important;\r\n    min-width: 8px !important;\r\n    min-height: 8px !important;\r\n    border-radius: 50% !important;\r\n    border: 0 !important;\r\n    padding: 0 !important;\r\n    margin: 0 !important;\r\n    background: #d7ddd7 !important;\r\n    opacity: 1 !important;\r\n  }\r\n\r\n  .lss-nl-mobile-points-dots button.is-active {\r\n    width: 22px !important;\r\n    border-radius: 999px !important;\r\n    background: #0b6e3d !important;\r\n  }\r\n}\r\n\r\n<\/style>\r\n\r\n<script>\r\n(function () {\r\n  \"use strict\";\r\n\r\n  var LOCATIONS = [\r\n    {\r\n      name: \"Praga\",\r\n      address: \"ul. Zbaraska 3, Warszawa\",\r\n      description: \"Boisko na Pradze ma sztuczn\u0105 nawierzchni\u0119 i znajduje si\u0119 na terenie Szko\u0142y Podstawowej nr 60 im. Powstania Listopadowego. Wej\u015bcie na boisko prowadzi od strony g\u0142\u00f3wnego wej\u015bcia do szko\u0142y. W okresie jesienno-zimowym, od pa\u017adziernika\/listopada do marca\/kwietnia, treningi odbywaj\u0105 si\u0119 pod balonem. W pozosta\u0142ych miesi\u0105cach zawodnicy trenuj\u0105 na \u015bwie\u017cym powietrzu.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/ChatGPT-Image-10-lip-2026-11_48_58.jpg\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/Bez-nazwy-1-2.jpg\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"https:\/\/soccer.legia.com\/treningi-na-pradze\/\"\r\n    },\r\n    {\r\n      name: \"\u017boliborz\",\r\n      address: \"al. Wojska Polskiego 1A, Warszawa\",\r\n      description: \"Boisko na \u017boliborzu ma sztuczn\u0105 nawierzchni\u0119 i znajduje si\u0119 na terenie Szko\u0142y Podstawowej nr 392 im. Jana Bytnara ps. \u201eRudy\u201d. Wej\u015bcie na boisko prowadzi od strony g\u0142\u00f3wnego wej\u015bcia do szko\u0142y. W okresie jesienno-zimowym, od pa\u017adziernika\/listopada do marca\/kwietnia, treningi odbywaj\u0105 si\u0119 pod balonem. W pozosta\u0142ych miesi\u0105cach zawodnicy trenuj\u0105 na \u015bwie\u017cym powietrzu.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/Zoliborz-3-scaled.jpg\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/IMG_5173.jpg\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"\"\r\n    },\r\n    {\r\n      name: \"Ochota\",\r\n      address: \"ul. Spiska 1, Warszawa\",\r\n      description: \"Boisko na Ochocie im. Kazimierza Deyny ma sztuczn\u0105 nawierzchni\u0119 i znajduje si\u0119 na terenie Szko\u0142y Podstawowej nr 97 im. Polskich Noblistek. Na boisko mo\u017cna wej\u015b\u0107 od strony ul. Spiskiej, od strony DW717 oraz przez g\u0142\u00f3wne wej\u015bcie do szko\u0142y. W okresie od pa\u017adziernika\/listopada do marca\/kwietnia zawodnicy trenuj\u0105 w szkolnej hali pi\u0142karskiej. W pozosta\u0142ych miesi\u0105cach treningi odbywaj\u0105 si\u0119 na \u015bwie\u017cym powietrzu.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/spiska-11.jpg\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/unnamed.webp\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"https:\/\/soccer.legia.com\/przedszkola-pilkarskie-ochota\/\"\r\n    },\r\n    {\r\n      name: \"Tarchomin\",\r\n      address: \"ul. My\u015bliborska 25, Warszawa\",\r\n      description: \"Boisko na Tarchominie ma sztuczn\u0105 nawierzchni\u0119 i znajduje si\u0119 na terenie Szko\u0142y Podstawowej nr 118 im. Przyjaci\u00f3\u0142 Mazowsza w Warszawie. Wej\u015bcie na boisko prowadzi od strony g\u0142\u00f3wnego wej\u015bcia do szko\u0142y. W okresie od pa\u017adziernika\/listopada do marca\/kwietnia treningi odbywaj\u0105 si\u0119 w szkolnej hali pi\u0142karskiej. W pozosta\u0142ych miesi\u0105cach zawodnicy trenuj\u0105 na \u015bwie\u017cym powietrzu.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/1.jpg\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/ChatGPT-Image-10-lip-2026-12_44_09.png\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"https:\/\/soccer.legia.com\/odwiedzilismy-tarchomin\/\"\r\n    },\r\n    {\r\n      name: \"Rembert\u00f3w\",\r\n      address: \"ul. gen. Karola Ziemskiego \u201eWachnowskiego\u201d 22, Warszawa\",\r\n      description: \"Boisko w Rembertowie ma sztuczn\u0105 nawierzchni\u0119 i znajduje si\u0119 na terenie Szko\u0142y Podstawowej nr 376 im. Bohater\u00f3w Westerplatte. Wej\u015bcie na boisko prowadzi od strony wej\u015bcia do szko\u0142y. W okresie od pa\u017adziernika\/listopada do marca\/kwietnia zawodnicy trenuj\u0105 w szkolnej hali pi\u0142karskiej. W pozosta\u0142ych miesi\u0105cach treningi odbywaj\u0105 si\u0119 na \u015bwie\u017cym powietrzu.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/ChatGPT-Image-10-lip-2026-12_50_40.jpg\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/ChatGPT-Image-10-lip-2026-12_52_44.jpg\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"https:\/\/soccer.legia.com\/trening-z-rodzicem-w-rembertowie-2\/\"\r\n    },\r\n    {\r\n      name: \"Bemowo\",\r\n      address: \"ul. Ksi\u0119cia Boles\u0142awa 1\/3, Warszawa\",\r\n      description: \"Boisko na Bemowie ma sztuczn\u0105 nawierzchni\u0119 i znajduje si\u0119 w hali pi\u0142karskiej. Zawodnicy trenuj\u0105 tu przez ca\u0142y sezon, dzi\u0119ki czemu zaj\u0119cia odbywaj\u0105 si\u0119 bez przerw, niezale\u017cnie od pogody i pory roku.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/bemowo-7.png\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/ChatGPT-Image-10-lip-2026-13_04_17.png\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"\"\r\n    },\r\n    {\r\n      name: \"Jelonki\",\r\n      address: \"ul. Jana Heweliusza 3, Warszawa\",\r\n      description: \"Hala sportowa w lokalizacji Jelonki znajduje si\u0119 w nowo wybudowanej Szkole Podstawowej nr 407 przy ul. Jana Heweliusza 3. Wej\u015bcie do obiektu prowadzi od strony ul. Heweliusza 3. Budowa szko\u0142y zako\u0144czy\u0142a si\u0119 we wrze\u015bniu 2025 r., dzi\u0119ki czemu zaj\u0119cia odbywaj\u0105 si\u0119 w nowoczesnej hali sportowej.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/09\/1.png\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/09\/2.png\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"\"\r\n    },\r\n    {\r\n      name: \"Ursus\",\r\n      address: \"ul. Orl\u0105t Lwowskich 1, Warszawa \/ J\u00f3zefa Brandta 22, 05-820 Piast\u00f3w\",\r\n      addressHtml: '<div class=\"lss-nl-address-line\"><strong>Wiosna\/lato:<\/strong> ul. Orl\u0105t Lwowskich 1, Warszawa<\/div><div class=\"lss-nl-address-line\"><strong>Jesie\u0144\/zima:<\/strong> J\u00f3zefa Brandta 22, 05-820 Piast\u00f3w<\/div>',\r\n      directionsAddress: \"ul. Orl\u0105t Lwowskich 1, Warszawa\",\r\n      description: \"Zaj\u0119cia w lokalizacji Ursus odbywaj\u0105 si\u0119 sezonowo w dw\u00f3ch miejscach. W pozosta\u0142ych miesi\u0105cach treningi prowadzone s\u0105 na boisku ze sztuczn\u0105 nawierzchni\u0105 przy Centrum Lokalnym \u201eNied\u017awiadek\u201d, w pobli\u017cu O\u015brodka Sportu i Rekreacji m.st. Warszawy w dzielnicy Ursus. W okresie od pa\u017adziernika\/listopada do marca\/kwietnia zaj\u0119cia przenosz\u0105 si\u0119 do Piastowa, do Szko\u0142y Podstawowej nr 1 im. S. Staszica przy ul. J\u00f3zefa Brandta 22, gdzie zawodnicy trenuj\u0105 w hali pi\u0142karskiej.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/Kompleks-Boisk-scaled.jpg\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/ChatGPT-Image-13-lip-2026-11_32_48.png\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"\"\r\n    },\r\n    {\r\n      name: \"Bielany\",\r\n      address: \"ul. Marymoncka 34, Warszawa\",\r\n      description: \"Boisko na Bielanach ma naturaln\u0105 nawierzchni\u0119 i znajduje si\u0119 na terenie AZS AWF Warszawa. Boisko, na kt\u00f3rym odbywaj\u0105 si\u0119 treningi, jest oznaczone na mapie o\u015brodka AWF numerem 5. W okresie od pa\u017adziernika\/listopada do marca\/kwietnia zawodnicy trenuj\u0105 w hali sportowej. W pozosta\u0142ych miesi\u0105cach treningi odbywaj\u0105 si\u0119 na \u015bwie\u017cym powietrzu.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/ChatGPT-Image-10-lip-2026-13_27_15.png\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/Sektor-1-HLA.jpg\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"\"\r\n    },\r\n    {\r\n      name: \"Targ\u00f3wek\",\r\n      address: \"ul. \u0141abiszy\u0144ska 20, Warszawa\",\r\n      description: \"Boisko na Targ\u00f3wku ma sztuczn\u0105 nawierzchni\u0119 i znajduje si\u0119 w hali pi\u0142karskiej Polonez na terenie O\u015brodka Sportu i Rekreacji Dzielnicy Targ\u00f3wek. Zawodnicy trenuj\u0105 tu przez ca\u0142y sezon, dzi\u0119ki czemu zaj\u0119cia odbywaj\u0105 si\u0119 bez przerw, niezale\u017cnie od pogody i pory roku.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/labi-scaled.jpg\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/ChatGPT-Image-10-lip-2026-13_36_19.jpg\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"\"\r\n    },\r\n    {\r\n      name: \"Mokot\u00f3w\",\r\n      address: \"ul. Merliniego 2, Warszawa\",\r\n      description: \"Boisko na Mokotowie ma sztuczn\u0105 nawierzchni\u0119 i znajduje si\u0119 na terenie Centrum Futbolu Warszawianka. W okresie od pa\u017adziernika\/listopada do marca\/kwietnia treningi odbywaj\u0105 si\u0119 pod balonem. W pozosta\u0142ych miesi\u0105cach zawodnicy trenuj\u0105 na \u015bwie\u017cym powietrzu.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/warszawianka.jpg\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/3-2.jpg\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"\"\r\n    },\r\n    {\r\n      name: \"Wilan\u00f3w\",\r\n      address: \"ul. Uprawna 9\/17, Warszawa\",\r\n      description: \"Boisko w Wilanowie ma sztuczn\u0105 nawierzchni\u0119 i znajduje si\u0119 na terenie Szko\u0142y Podstawowej nr 169 im. Or\u0142a Bia\u0142ego. Wej\u015bcie na boisko prowadzi od strony wej\u015bcia do szko\u0142y. W okresie od pa\u017adziernika\/listopada do marca\/kwietnia zawodnicy trenuj\u0105 w szkolnej hali pi\u0142karskiej. W pozosta\u0142ych miesi\u0105cach treningi odbywaj\u0105 si\u0119 na \u015bwie\u017cym powietrzu.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/123.png\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/ChatGPT-Image-10-lip-2026-14_11_40.jpg\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"\"\r\n    },\r\n    {\r\n      name: \"Wawer\",\r\n      address: \"ul. Cyklamen\u00f3w 28, Warszawa\",\r\n      description: \"Boisko w Wawrze ma sztuczn\u0105 nawierzchni\u0119 i znajduje si\u0119 na terenie Szko\u0142y Podstawowej nr 404 im. Wielkiej Orkiestry \u015awi\u0105tecznej Pomocy. Wej\u015bcie na boisko prowadzi od strony wej\u015bcia do szko\u0142y. W okresie od pa\u017adziernika\/listopada do marca\/kwietnia treningi odbywaj\u0105 si\u0119 pod balonem. W pozosta\u0142ych miesi\u0105cach zawodnicy trenuj\u0105 na \u015bwie\u017cym powietrzu.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/ChatGPT-Image-18-wrz-2025-14_59_44.png\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/ChatGPT-Image-10-lip-2026-14_20_41.png\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"\"\r\n    },\r\n    {\r\n      name: \"Stadion Legii Warszawa\",\r\n      address: \"ul. \u0141azienkowska 3, Warszawa\",\r\n      description: \"Boisko na terenie stadionu Legii Warszawa ma sztuczn\u0105 nawierzchni\u0119 i znajduje si\u0119 w pobli\u017cu kort\u00f3w tenisowych Legii Warszawa oraz ul. Rozbrat. Wej\u015bcie na boisko prowadzi od strony ul. \u0141azienkowskiej. W okresie od pa\u017adziernika\/listopada do marca\/kwietnia treningi odbywaj\u0105 si\u0119 pod balonem. W pozosta\u0142ych miesi\u0105cach zawodnicy trenuj\u0105 na \u015bwie\u017cym powietrzu.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/L3.png\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/481678406_2459597794384719_8417103988464435211_n.jpg\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"https:\/\/soccer.legia.com\/cala-legia-zawsze-razem-2019\/\"\r\n    },\r\n    {\r\n      name: \"Ursyn\u00f3w\",\r\n      address: \"ul. Ciszewskiego 10, Warszawa\",\r\n      description: \"Boisko na Ursynowie ma sztuczn\u0105 nawierzchni\u0119 i znajduje si\u0119 w Arenie Sportowej SGGW. To nowoczesny obiekt z wysokiej jako\u015bci nawierzchni\u0105 IV generacji: bezzasypow\u0105, z piaskiem kwarcowym i wysoko\u015bci\u0105 w\u0142\u00f3kna min. 32 mm. Zawodnicy trenuj\u0105 tu przez ca\u0142y sezon w hali pi\u0142karskiej, dzi\u0119ki czemu zaj\u0119cia odbywaj\u0105 si\u0119 bez przerw, niezale\u017cnie od pogody i pory roku.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/565668630_1388981155915332_6097628888923436508_n.jpg\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/565780474_1388981145915333_2651689029388888408_n.jpg\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"https:\/\/soccer.legia.com\/trenujemy-w-nowej-lokalizacji-sggw-na-ursynowie\/\"\r\n    },\r\n    {\r\n      name: \"W\u0142ochy\",\r\n      address: \"ul. G\u0142adka 18, Warszawa\",\r\n      description: \"Hala we W\u0142ochach znajduje si\u0119 na terenie O\u015brodka Sportu i Rekreacji w Dzielnicy W\u0142ochy. Zawodnicy trenuj\u0105 tu przez ca\u0142y sezon, dzi\u0119ki czemu zaj\u0119cia odbywaj\u0105 si\u0119 bez przerw, niezale\u017cnie od pogody i pory roku.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/hala-sportowa-Wlochy.jpg\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/photo.jpg\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"\"\r\n    },\r\n    {\r\n      name: \"Bia\u0142o\u0142\u0119ka\",\r\n      address: \"ul. Kobia\u0142ka 49, Warszawa\",\r\n      description: \"Boisko na Bia\u0142o\u0142\u0119ce ma sztuczn\u0105 nawierzchni\u0119 i znajduje si\u0119 na terenie Szko\u0142y Podstawowej nr 31 im. Kardyna\u0142a Stefana Wyszy\u0144skiego. Wej\u015bcie na boisko prowadzi od strony wej\u015bcia do szko\u0142y. W okresie od pa\u017adziernika\/listopada do marca\/kwietnia zawodnicy trenuj\u0105 w szkolnej hali pi\u0142karskiej. W pozosta\u0142ych miesi\u0105cach treningi odbywaj\u0105 si\u0119 na \u015bwie\u017cym powietrzu.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/ChatGPT-Image-18-wrz-2025-15_30_47.png\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/ChatGPT-Image-10-lip-2026-14_40_48.jpg\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"https:\/\/soccer.legia.com\/odwiedzilismy-bialoleke\/\"\r\n    },\r\n    {\r\n      name: \"Ursyn\u00f3w (Szko\u0142y Pi\u0142karskie)\",\r\n      address: \"ul. Ludwika Hirszfelda 11, 02-776 Warszawa\",\r\n      description: \"Boisko z naturaln\u0105 nawierzchni\u0105 znajduje si\u0119 przy ul. Ludwika Hirszfelda 11 i funkcjonuje jako SEMP Arena. Wej\u015bcie na boisko prowadzi od strony wej\u015bcia do Ursynowskiego Centrum Sportu i Rekreacji. W okresie od pa\u017adziernika\/listopada do marca\/kwietnia treningi odbywaj\u0105 si\u0119 pod balonem. W pozosta\u0142ych miesi\u0105cach zawodnicy trenuj\u0105 na \u015bwie\u017cym powietrzu.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/005-1536x1024-1.jpg\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/517999710_1278811924032912_1433038855570649935_n.jpg\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"\"\r\n    },\r\n    {\r\n      name: \"Bia\u0142o\u0142\u0119ka (Szko\u0142y Techniki)\",\r\n      address: \"ul. \u015awiderska 93, 03-128 Warszawa\",\r\n      description: \"Boisko ze sztuczn\u0105 nawierzchni\u0105 znajduje si\u0119 na dachu Szko\u0142y Podstawowej nr 406 w Warszawie. W okresie od pa\u017adziernika\/listopada do marca\/kwietnia zawodnicy trenuj\u0105 w szkolnej hali pi\u0142karskiej. W pozosta\u0142ych miesi\u0105cach treningi odbywaj\u0105 si\u0119 na \u015bwie\u017cym powietrzu.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/490024832_1208870927913993_5289882236915255668_n.jpg\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/490674765_1208871241247295_3026728286179056577_n.jpg\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"\"\r\n    },\r\n    {\r\n      name: \"Si\u0142ownia (Stadion Legii Warszawa)\",\r\n      address: \"ul. \u0141azienkowska 3, Warszawa\",\r\n      description: \"Si\u0142ownia znajduje si\u0119 na terenie Stadionu Legii Warszawa przy ul. \u0141azienkowskiej 3. Obiekt jest wyposa\u017cony w nowoczesny sprz\u0119t treningowy, kt\u00f3ry umo\u017cliwia prowadzenie zr\u00f3\u017cnicowanych zaj\u0119\u0107 og\u00f3lnorozwojowych, motorycznych i si\u0142owych. Treningi odbywaj\u0105 si\u0119 tutaj przez ca\u0142y sezon, niezale\u017cnie od warunk\u00f3w pogodowych.\",\r\n      photo1: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/Bez-nazwy-1.jpg\",\r\n      photo2: \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/Bez-nazwy-2.jpg\",\r\n      scheduleUrl: \"https:\/\/soccer.legia.com\/harmonogram-treningow\/\",\r\n      signupUrl: \"https:\/\/soccer.legia.com\/zacznijtreningi\/\",\r\n      galleryUrl: \"\"\r\n    }\r\n  ];\r\n\r\n  var input = document.getElementById(\"lssNlSearchInput\");\r\n  var dropdown = document.getElementById(\"lssNlDropdown\");\r\n  var card = document.getElementById(\"lssNlCard\");\r\n  var clearBtn = document.getElementById(\"lssNlClear\");\r\n  var combobox = input ? input.closest(\".lss-nl-combobox\") : null;\r\n  var matches = [];\r\n  var activeIndex = -1;\r\n\r\n  if (!input || !dropdown || !card) return;\r\n\r\n  function updateInputState() {\r\n    var hasValue = input.value.trim() !== \"\";\r\n    if (combobox) {\r\n      combobox.classList.toggle(\"has-value\", hasValue);\r\n    }\r\n    clearBtn.classList.toggle(\"is-visible\", hasValue);\r\n  }\r\n\r\n  updateInputState();\r\n\r\n  function normalizeText(text) {\r\n    return text\r\n      .toLowerCase()\r\n      .normalize(\"NFD\")\r\n      .replace(\/[\\u0300-\\u036f]\/g, \"\");\r\n  }\r\n\r\n  function getMatches(query) {\r\n    var q = normalizeText(query.trim());\r\n\r\n    if (!q) {\r\n      return LOCATIONS.slice();\r\n    }\r\n\r\n    return LOCATIONS.filter(function (loc) {\r\n      return (\r\n        normalizeText(loc.name).indexOf(q) !== -1 ||\r\n        normalizeText(loc.address).indexOf(q) !== -1\r\n      );\r\n    });\r\n  }\r\n\r\n  function photoMarkup(url, alt) {\r\n    if (url && url.trim() !== \"\") {\r\n      return '<div class=\"lss-nl-photo\"><img decoding=\"async\" src=\"' + url + '\" alt=\"' + alt + '\" loading=\"lazy\"><\/div>';\r\n    }\r\n\r\n    return (\r\n      '<div class=\"lss-nl-photo\">' +\r\n        '<div class=\"lss-nl-placeholder\">' +\r\n          '<div class=\"lss-nl-placeholder-icon\">\ud83d\udcf7<\/div>' +\r\n          'Zdj\u0119cie wkr\u00f3tce' +\r\n        '<\/div>' +\r\n      '<\/div>'\r\n    );\r\n  }\r\n\r\n  function openDropdown(list) {\r\n    matches = list;\r\n    activeIndex = -1;\r\n\r\n    if (!list.length) {\r\n      dropdown.innerHTML = '<li class=\"lss-nl-empty\">Brak wynik\u00f3w \u2014 sprawd\u017a pisowni\u0119 lokalizacji.<\/li>';\r\n      dropdown.hidden = false;\r\n      return;\r\n    }\r\n\r\n    dropdown.innerHTML = list.map(function (loc, index) {\r\n      return (\r\n        '<li data-index=\"' + index + '\">' +\r\n          '<strong>' + loc.name + '<\/strong>' +\r\n          '<span>' + loc.address + '<\/span>' +\r\n        '<\/li>'\r\n      );\r\n    }).join(\"\");\r\n\r\n    dropdown.hidden = false;\r\n  }\r\n\r\n  function closeDropdown() {\r\n    dropdown.hidden = true;\r\n    dropdown.innerHTML = \"\";\r\n    activeIndex = -1;\r\n  }\r\n\r\n  function renderCard(loc) {\r\n    var directionsAddress = loc.directionsAddress || loc.address;\r\n    var mapsUrl = \"https:\/\/www.google.com\/maps\/dir\/?api=1&destination=\" + encodeURIComponent(directionsAddress);\r\n    var logoUrl = \"https:\/\/soccer.legia.com\/wp-content\/uploads\/2026\/07\/Soccerschools_przyciete.png\";\r\n    var addressMarkup = loc.addressHtml ? loc.addressHtml : \"\ud83d\udccd \" + loc.address;\r\n    var galleryButton = \"\";\r\n\r\n    if (loc.galleryUrl && loc.galleryUrl.trim() !== \"\") {\r\n      galleryButton = '<a class=\"lss-nl-btn lss-nl-btn-gallery\" href=\"' + loc.galleryUrl + '\" target=\"_blank\" rel=\"noopener\">Galeria zdj\u0119\u0107<\/a>';\r\n    }\r\n\r\n    card.innerHTML =\r\n      '<div class=\"lss-nl-card-inner\">' +\r\n        '<div class=\"lss-nl-card-top\">' +\r\n          '<div class=\"lss-nl-card-title\">' +\r\n            '<h3>' + loc.name + '<\/h3>' +\r\n            '<div class=\"lss-nl-address\">' + addressMarkup + '<\/div>' +\r\n          '<\/div>' +\r\n          '<div class=\"lss-nl-card-logo\">' +\r\n            '<img decoding=\"async\" src=\"' + logoUrl + '\" alt=\"Legia Soccer Schools\" loading=\"lazy\">' +\r\n          '<\/div>' +\r\n        '<\/div>' +\r\n\r\n        '<div class=\"lss-nl-photos\">' +\r\n          photoMarkup(loc.photo1, loc.name + ' zdj\u0119cie 1') +\r\n          photoMarkup(loc.photo2, loc.name + ' zdj\u0119cie 2') +\r\n        '<\/div>' +\r\n\r\n        '<p class=\"lss-nl-description\">' + loc.description + '<\/p>' +\r\n\r\n        '<div class=\"lss-nl-buttons' + (galleryButton ? ' lss-nl-buttons-has-gallery' : '') + '\">' +\r\n          '<a class=\"lss-nl-btn lss-nl-btn-dark\" href=\"' + loc.scheduleUrl + '\">Sprawd\u017a harmonogram<\/a>' +\r\n          '<a class=\"lss-nl-btn lss-nl-btn-green\" href=\"' + loc.signupUrl + '\">Zapisz si\u0119<\/a>' +\r\n          '<a class=\"lss-nl-btn lss-nl-btn-outline\" href=\"' + mapsUrl + '\" target=\"_blank\" rel=\"noopener\">Jak dojad\u0119<\/a>' +\r\n          galleryButton +\r\n        '<\/div>' +\r\n      '<\/div>';\r\n\r\n    card.hidden = false;\r\n    updateInputState();\r\n\r\n    setTimeout(function () {\r\n      card.scrollIntoView({ behavior: \"smooth\", block: \"nearest\" });\r\n    }, 80);\r\n  }\r\n\r\n  function selectLocation(loc) {\r\n    input.value = loc.name;\r\n    updateInputState();\r\n    closeDropdown();\r\n    renderCard(loc);\r\n  }\r\n\r\n  input.addEventListener(\"focus\", function () {\r\n    openDropdown(getMatches(input.value));\r\n  });\r\n\r\n  input.addEventListener(\"input\", function () {\r\n    updateInputState();\r\n    openDropdown(getMatches(input.value));\r\n\r\n    if (input.value.trim() === \"\") {\r\n      card.hidden = true;\r\n      card.innerHTML = \"\";\r\n    }\r\n  });\r\n\r\n  input.addEventListener(\"keydown\", function (event) {\r\n    if (dropdown.hidden) return;\r\n\r\n    var items = dropdown.querySelectorAll(\"li[data-index]\");\r\n\r\n    if (event.key === \"ArrowDown\") {\r\n      event.preventDefault();\r\n      activeIndex = Math.min(activeIndex + 1, items.length - 1);\r\n    }\r\n\r\n    if (event.key === \"ArrowUp\") {\r\n      event.preventDefault();\r\n      activeIndex = Math.max(activeIndex - 1, 0);\r\n    }\r\n\r\n    if (event.key === \"Enter\") {\r\n      event.preventDefault();\r\n      if (matches[activeIndex]) {\r\n        selectLocation(matches[activeIndex]);\r\n      } else if (matches[0]) {\r\n        selectLocation(matches[0]);\r\n      }\r\n      return;\r\n    }\r\n\r\n    if (event.key === \"Escape\") {\r\n      closeDropdown();\r\n      return;\r\n    }\r\n\r\n    items.forEach(function (item, index) {\r\n      item.classList.toggle(\"is-active\", index === activeIndex);\r\n    });\r\n  });\r\n\r\n  dropdown.addEventListener(\"click\", function (event) {\r\n    var item = event.target.closest(\"li[data-index]\");\r\n    if (!item) return;\r\n\r\n    var index = parseInt(item.getAttribute(\"data-index\"), 10);\r\n    selectLocation(matches[index]);\r\n  });\r\n\r\n  clearBtn.addEventListener(\"click\", function () {\r\n    input.value = \"\";\r\n    card.hidden = true;\r\n    card.innerHTML = \"\";\r\n    updateInputState();\r\n    input.focus();\r\n    openDropdown(LOCATIONS);\r\n  });\r\n\r\n  document.addEventListener(\"click\", function (event) {\r\n    if (!event.target.closest(\".lss-nl-combobox\")) {\r\n      closeDropdown();\r\n    }\r\n  });\r\n\r\n\r\n  \/* =========================================\r\n     MOBILE KARUZELA 01\/02\/03 \u2014 bez Swipera, styl inspirowany coverflow\r\n  ========================================= *\/\r\n  function initMobilePointsCarousel() {\r\n    var carousel = document.getElementById(\"lssNlMobilePoints\");\r\n    if (!carousel) return;\r\n\r\n    var track = carousel.querySelector(\".lss-nl-mobile-points-track\");\r\n    var slides = Array.prototype.slice.call(carousel.querySelectorAll(\".lss-nl-mobile-point-slide\"));\r\n    var prev = carousel.querySelector(\".lss-nl-mobile-points-prev\");\r\n    var next = carousel.querySelector(\".lss-nl-mobile-points-next\");\r\n    var dots = Array.prototype.slice.call(carousel.querySelectorAll(\".lss-nl-mobile-points-dots button\"));\r\n    var current = 0;\r\n    var startX = 0;\r\n    var currentX = 0;\r\n    var isDragging = false;\r\n\r\n    if (!track || !slides.length) return;\r\n\r\n    function goTo(index) {\r\n      if (index < 0) index = slides.length - 1;\r\n      if (index >= slides.length) index = 0;\r\n      current = index;\r\n      track.style.transform = \"translateX(\" + (-current * 100) + \"%)\";\r\n      dots.forEach(function (dot, dotIndex) {\r\n        dot.classList.toggle(\"is-active\", dotIndex === current);\r\n      });\r\n    }\r\n\r\n    if (prev) {\r\n      prev.addEventListener(\"click\", function () {\r\n        goTo(current - 1);\r\n      });\r\n    }\r\n\r\n    if (next) {\r\n      next.addEventListener(\"click\", function () {\r\n        goTo(current + 1);\r\n      });\r\n    }\r\n\r\n    dots.forEach(function (dot, dotIndex) {\r\n      dot.addEventListener(\"click\", function () {\r\n        goTo(dotIndex);\r\n      });\r\n    });\r\n\r\n    track.addEventListener(\"touchstart\", function (event) {\r\n      if (!event.touches || !event.touches.length) return;\r\n      isDragging = true;\r\n      startX = event.touches[0].clientX;\r\n      currentX = startX;\r\n    }, { passive: true });\r\n\r\n    track.addEventListener(\"touchmove\", function (event) {\r\n      if (!isDragging || !event.touches || !event.touches.length) return;\r\n      currentX = event.touches[0].clientX;\r\n    }, { passive: true });\r\n\r\n    track.addEventListener(\"touchend\", function () {\r\n      if (!isDragging) return;\r\n      var diff = currentX - startX;\r\n      isDragging = false;\r\n\r\n      if (Math.abs(diff) > 45) {\r\n        if (diff < 0) {\r\n          goTo(current + 1);\r\n        } else {\r\n          goTo(current - 1);\r\n        }\r\n      } else {\r\n        goTo(current);\r\n      }\r\n    });\r\n\r\n    goTo(0);\r\n  }\r\n\r\n  initMobilePointsCarousel();\r\n\r\n})();\r\n<\/script>\r\n<script>\r\n(function () {\r\n  \"use strict\";\r\n\r\n  var LOCATION_SLUGS = {\r\n    \"praga\": \"Praga\",\r\n    \"zoliborz\": \"\u017boliborz\",\r\n    \"ochota\": \"Ochota\",\r\n    \"tarchomin\": \"Tarchomin\",\r\n    \"rembertow\": \"Rembert\u00f3w\",\r\n    \"bemowo\": \"Bemowo\",\r\n    \"jelonki\": \"Jelonki\",\r\n    \"ursus\": \"Ursus\",\r\n    \"bielany\": \"Bielany\",\r\n    \"targowek\": \"Targ\u00f3wek\",\r\n    \"mokotow\": \"Mokot\u00f3w\",\r\n    \"wilanow\": \"Wilan\u00f3w\",\r\n    \"wawer\": \"Wawer\",\r\n    \"stadion-legii-warszawa\": \"Stadion Legii Warszawa\",\r\n    \"ursynow\": \"Ursyn\u00f3w\",\r\n    \"wlochy\": \"W\u0142ochy\",\r\n    \"bialoleka\": \"Bia\u0142o\u0142\u0119ka\",\r\n    \"ursynow-szkoly-pilkarskie\": \"Ursyn\u00f3w (Szko\u0142y Pi\u0142karskie)\",\r\n    \"bialoleka-szkoly-techniki\": \"Bia\u0142o\u0142\u0119ka (Szko\u0142y Techniki)\",\r\n    \"silownia\": \"Si\u0142ownia (Stadion Legii Warszawa)\"\r\n  };\r\n\r\n  function cleanSlug(slug) {\r\n    return String(slug || \"\")\r\n      .toLowerCase()\r\n      .replace(\/`\/g, \"\")\r\n      .replace(\/\"\/g, \"\")\r\n      .replace(\/'\/g, \"\")\r\n      .replace(\/\\s+\/g, \"\")\r\n      .trim();\r\n  }\r\n\r\n  function normalizeText(text) {\r\n    return String(text || \"\")\r\n      .toLowerCase()\r\n      .normalize(\"NFD\")\r\n      .replace(\/[\\u0300-\\u036f]\/g, \"\")\r\n      .replace(\/\\s+\/g, \" \")\r\n      .trim();\r\n  }\r\n\r\n  function openLocationFromUrl() {\r\n    var params = new URLSearchParams(window.location.search);\r\n    var rawSlug = params.get(\"lokalizacja\");\r\n    var slug = cleanSlug(rawSlug);\r\n\r\n    if (!slug || !LOCATION_SLUGS[slug]) return;\r\n\r\n    var targetName = LOCATION_SLUGS[slug];\r\n    var input = document.getElementById(\"lssNlSearchInput\");\r\n    var dropdown = document.getElementById(\"lssNlDropdown\");\r\n    var card = document.getElementById(\"lssNlCard\");\r\n\r\n    if (!input || !dropdown || !card) return;\r\n\r\n    setTimeout(function () {\r\n      input.value = targetName;\r\n      input.dispatchEvent(new Event(\"input\", { bubbles: true }));\r\n\r\n      setTimeout(function () {\r\n        var items = Array.prototype.slice.call(\r\n          document.querySelectorAll(\"#lssNlDropdown li[data-index]\")\r\n        );\r\n\r\n        var matchingItem = items.find(function (item) {\r\n          var title = item.querySelector(\"strong\");\r\n          return title && normalizeText(title.textContent) === normalizeText(targetName);\r\n        });\r\n\r\n        if (matchingItem) {\r\n          matchingItem.click();\r\n\r\n          setTimeout(function () {\r\n            var cardElement = document.getElementById(\"lssNlCard\");\r\n            if (cardElement && !cardElement.hidden) {\r\n              cardElement.scrollIntoView({\r\n                behavior: \"smooth\",\r\n                block: \"start\"\r\n              });\r\n            }\r\n          }, 300);\r\n        }\r\n      }, 250);\r\n    }, 600);\r\n  }\r\n\r\n  if (document.readyState === \"loading\") {\r\n    document.addEventListener(\"DOMContentLoaded\", openLocationFromUrl);\r\n  } else {\r\n    openLocationFromUrl();\r\n  }\r\n\r\n  window.addEventListener(\"load\", function () {\r\n    setTimeout(openLocationFromUrl, 800);\r\n  });\r\n})();\r\n<\/script>\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div><div class=\"vc_row-full-width vc_clearfix\"><\/div><div data-vc-full-width=\"true\" data-vc-full-width-init=\"false\" data-vc-stretch-content=\"true\" class=\"vc_row wpb_row vc_row-fluid vc_custom_1783612053158 vc_row-has-fill qodef-background-dots-skin--dark\"><div class=\"wpb_column vc_column_container vc_col-sm-12\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\n\t<div class=\"wpb_raw_code wpb_content_element wpb_raw_html\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<center>\n<iframe \n    src=\"https:\/\/panel.schools.legia.com\/pl\/map-frame\" \n    frameborder=\"0\" \n    width=\"100%\" \n    height=\"500\"\n>\n<\/iframe>\n<\/center>\n\t\t<\/div>\n\t<\/div>\n<\/div><\/div><\/div><\/div><div class=\"vc_row-full-width vc_clearfix\"><\/div>\n<\/section>","protected":false},"excerpt":{"rendered":"NASZE LOKALIZACJE Trenuj z Legia Soccer Schools blisko swojego domu Sprawd\u017a dost\u0119pne o\u015brodki treningowe w Warszawie i wybierz lokalizacj\u0119 najlepiej dopasowan\u0105 do Twojego dziecka. 01 Lokalizacje w ca\u0142ej Warszawie O\u015brodki treningowe w r\u00f3\u017cnych dzielnicach miasta. 02 Treningi przez ca\u0142y rok Cz\u0119\u015b\u0107 lokalizacji dzia\u0142a pod balonem lub w hali w sezonie jesienno-zimowym. 03 Boiska i hale [...]","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_eb_attr":"","footnotes":""},"class_list":["post-18122","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/soccer.legia.com\/en\/wp-json\/wp\/v2\/pages\/18122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soccer.legia.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/soccer.legia.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/soccer.legia.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/soccer.legia.com\/en\/wp-json\/wp\/v2\/comments?post=18122"}],"version-history":[{"count":15,"href":"https:\/\/soccer.legia.com\/en\/wp-json\/wp\/v2\/pages\/18122\/revisions"}],"predecessor-version":[{"id":20660,"href":"https:\/\/soccer.legia.com\/en\/wp-json\/wp\/v2\/pages\/18122\/revisions\/20660"}],"wp:attachment":[{"href":"https:\/\/soccer.legia.com\/en\/wp-json\/wp\/v2\/media?parent=18122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}