{"id":540,"date":"2026-02-20T14:33:21","date_gmt":"2026-02-20T13:33:21","guid":{"rendered":"http:\/\/kacper.previo.info.pl\/apart-studio\/"},"modified":"2026-02-24T10:37:32","modified_gmt":"2026-02-24T09:37:32","slug":"apart-studio","status":"publish","type":"page","link":"https:\/\/boulevard-drobnera.com\/pl\/apart-studio\/","title":{"rendered":"Studio"},"content":{"rendered":"\n    \n    <section class=\"u-clearfix u-image u-shading u-section-2\" id=\"sec-3b13\" data-image-width=\"2500\" data-image-height=\"1667\" style=\"background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.62), rgba(0, 0, 0, 0.62)), url(&quot;https:\/\/boulevard-drobnera.com\/wp-content\/uploads\/2026\/02\/nowe-foto-boulevard-3-2.jpg&quot;);\">\n      <div class=\"u-clearfix u-sheet u-sheet-1\">\n        <h1 class=\"animacjaboulevard-text u-align-center u-custom-font u-heading-font u-text u-text-1\" data-animation-out=\"0\"> Studio<\/h1>\n        <a href=\"\/rezerwacja\/?lang=pl&amp;arrival=&amp;departure=&amp;numberOfAdults=&amp;highlightRoomType=961183\" class=\"u-align-center-md u-align-center-sm u-align-center-xs u-border-none u-btn u-button-style u-hover-feature u-hover-palette-2-dark-1 u-text-white u-palette-1-base u-btn-1\" target=\"_blank\">Zarezerwuj sw\u00f3j pobyt <\/a>\n      <\/div>\n      \n    <\/section>\n    <section class=\"u-clearfix u-valign-middle u-section-3\" id=\"sec-d0ce\">\n      <div class=\"u-align-center u-expanded-width u-shortcode u-shortcode-1\">\n<!-- FontAwesome -->\n<script src=\"https:\/\/kit.fontawesome.com\/d379bdf33c.js\" crossorigin=\"anonymous\"><\/script>\n<!-- Swiper CSS -->\n<link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/swiper\/swiper-bundle.min.css\"\/>\n\n<style>\n\/* ---------- PODSTAWOWE ---------- *\/\n.apartment-view { margin:0 auto; }\n.apartment-view h2 { font-size:28px; margin-bottom:10px; }\n.apartment-view p  { line-height:1.6; }\n.apartment-view .location { margin:10px 0; font-size:16px; color:#555; }\n.apartment-view .facilities { display:grid; grid-template-columns:repeat(6,1fr); row-gap:20px; }\n.apartment-view .facility   { display:flex; align-items:center; gap:10px; padding:10px 0; }\n.apartment-view .facility span   { font-weight: bold; }\n.apartment-view .facility i { color:#2D2D2D; font-size:1.2em; }\n.apartment-view .facility svg { width:25px; height:25px; fill:#2D2D2D; }\n.apartment-view .rate { color:#8D8B55; font-size:48px; background:#D9D3C7; padding-block:10px; text-align:center; }\n\n\/* ---------- SWIPER + PEEK ---------- *\/\n.my-gallery-swiper {\n  --slide-w: 600px;\n  width: 800px;\n  height: 450px;\n  margin: 20px auto;\n  overflow: visible;\n  position: relative;\n}\n.my-gallery-swiper .swiper-wrapper {\n  display: flex;\n  align-items: center;\n  overflow: visible !important;\n}\n.my-gallery-swiper .swiper-slide {\n  width: var(--slide-w) !important;\n  height: 100% !important;\n  flex-shrink: 0;\n}\n.slide-image {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  cursor: pointer;\n}\n\n.gallery-nav-btn {\n        display: flex;\n        position: absolute;\n        top: 50%;\n        transform: translateY(-50%);\n        width: 44px;\n        height: 44px;\n        border: none;\n        border-radius: 50%;\n        color: #fff;\n        font-size: 24px;\n        align-items: center;\n        justify-content: center;\n        cursor: pointer;\n        z-index: 20;\n      }\n      .gallery-nav-prev { background: #8D8B55; left: 0 }\n      .gallery-nav-next { background: #25281B; right: 0}\n\n\/* nasze przyciski zamiast domy\u015blnych Swiper *\/\n.swiper-button-prev,\n.swiper-button-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 44px;\n  height: 44px;\n  border: none;\n  border-radius: 50%;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  font-size: 24px;\n  color: #fff;\n  cursor: pointer;\n  z-index: 10;\n  background-repeat: no-repeat;\n  background-position: center;\n}\n.swiper-button-prev::after,\n.swiper-button-next::after {\n  content: none;\n}\n.swiper-button-prev {\n  background-color: #8D8B55;\n}\n.swiper-button-next {\n  background-color: #25281B;\n}\n\n.previo-desc { line-height:1.9 !important; }\n\n\/* ---------- MOBILE (<768px) ---------- *\/\n@media (max-width:768px) {\n  .my-gallery-swiper {\n    width: 100%;\n    height: auto;\n    flex-direction: column;\n    overflow: hidden;\n  }\n  .my-gallery-swiper .swiper-slide {\n    width: calc(100% - 30px) !important;\n    height: auto !important;\n    max-height: 450px;\n  }\n  .slide-image { height: auto; }\n  .swiper-button-prev,\n  .swiper-button-next {\n    position: static;\n    margin: 10px;\n    font-size: 1.5em;\n    transform: none;\n  }\n  .apartment-view .facilities { display:grid; grid-template-columns:repeat(2,1fr); row-gap:20px; }\n  .apartment-view .rate       { font-size:21px; }\n}\n\n\/* ---------- MOBILE (<450px) ---------- *\/\n@media (max-width:450px) {\n  .apartment-view .facilities { display:grid; grid-template-columns:repeat(1,1fr); row-gap:20px; }\n  .apartment-view .facility { justify-content:center; }\n}\n\n\/* ---------- FULLSCREEN MODAL ---------- *\/\n.fullscreen-modal {\n  display:none;\n  position:fixed;\n  inset:0;\n  background:rgba(0,0,0,0.95);\n  align-items:center;\n  justify-content:center;\n  z-index:100001;\n  flex-direction:column;\n}\n.fullscreen-modal.active { display:flex; }\n.fullscreen-content { width:70%; height:100%; object-fit:contain; object-position:center; }\n.fullscreen-prev,\n.fullscreen-next {\n  position:absolute;\n  top:50%;\n  transform:translateY(-50%);\n  background:rgba(255,255,255,0.2);\n  border:none;\n  color:#fff;\n  font-size:40px;\n  width:60px;\n  height:60px;\n  border-radius:50%;\n  cursor:pointer;\n  z-index:10000;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  transition:background 0.3s;\n}\n.fullscreen-prev:hover,\n.fullscreen-next:hover {\n  background:rgba(255,255,255,0.4);\n}\n.fullscreen-prev { left:30px; }\n.fullscreen-next { right:30px; }\n.fullscreen-modal .close {\n  position:absolute;\n  top:30px;\n  right:30px;\n  color:#fff;\n  font-size:50px;\n  cursor:pointer;\n  z-index:10000;\n  width:50px;\n  height:50px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  background:rgba(0,0,0,0.5);\n  border-radius:50%;\n  transition:background 0.3s;\n}\n.fullscreen-modal .close:hover {\n  background:rgba(0,0,0,0.8);\n}\n@media screen and (max-width:767px) {\n  .fullscreen-prev,\n  .fullscreen-next {\n    width:45px;\n    height:45px;\n    font-size:30px;\n  }\n  .fullscreen-prev { left:10px; }\n  .fullscreen-next { right:10px; }\n  .fullscreen-modal .close {\n    top:15px;\n    right:15px;\n    font-size:40px;\n    width:40px;\n    height:40px;\n  }\n}\n<\/style>\n\n<div class=\"apartment-view\">\n  \n  \n    \n  <!-- Nowy blok: wy\u015bwietlanie tylko wybranych udogodnie\u0144 -->\n  \n  <!-- Domy\u015blny blok wszystkich udogodnie\u0144 -->\n  \n          <div class=\"my-gallery-swiper\">\n        <div class=\"swiper-wrapper\">\n                                    <div class=\"swiper-slide\">\n                <img decoding=\"async\" src=\"https:\/\/files.previo.cz\/783401\/www\/img\/photos\/20250923143710_uPtUvQ.jpg\" class=\"slide-image\" data-index=\"0\" \/>\n              <\/div>\n                          <div class=\"swiper-slide\">\n                <img decoding=\"async\" src=\"https:\/\/files.previo.cz\/783401\/www\/img\/photos\/20250923144556_Qst8KI.jpg\" class=\"slide-image\" data-index=\"1\" \/>\n              <\/div>\n                          <div class=\"swiper-slide\">\n                <img decoding=\"async\" src=\"https:\/\/files.previo.cz\/783401\/www\/img\/photos\/20250923143710_ARuAUF.jpg\" class=\"slide-image\" data-index=\"2\" \/>\n              <\/div>\n                          <div class=\"swiper-slide\">\n                <img decoding=\"async\" src=\"https:\/\/files.previo.cz\/783401\/www\/img\/photos\/20250923143710_0nqorN.jpg\" class=\"slide-image\" data-index=\"3\" \/>\n              <\/div>\n                          <div class=\"swiper-slide\">\n                <img decoding=\"async\" src=\"https:\/\/files.previo.cz\/783401\/www\/img\/photos\/20250216192849_VStMQH.jpg\" class=\"slide-image\" data-index=\"4\" \/>\n              <\/div>\n                              <\/div>\n        <button class=\"gallery-nav-btn gallery-nav-prev\">\u2039<\/button>\n        <button class=\"gallery-nav-btn gallery-nav-next\">\u203a<\/button>\n      <\/div>\n  \n  <\/div>\n\n<!-- FULLSCREEN MODAL -->\n<div id=\"fullscreenModal\" class=\"fullscreen-modal\">\n  <span class=\"close\">&times;<\/span>\n  <button class=\"fullscreen-prev\">&#10094;<\/button>\n  <img decoding=\"async\" id=\"fullscreenImage\" class=\"fullscreen-content\" src=\"\" alt=\"Pe\u0142ny ekran\" \/>\n  <button class=\"fullscreen-next\">&#10095;<\/button>\n<\/div>\n\n<!-- Swiper JS -->\n<script src=\"https:\/\/unpkg.com\/swiper\/swiper-bundle.min.js\"><\/script>\n<script>\ndocument.addEventListener('DOMContentLoaded', function(){\n  console.log('[Single Apartment Gallery] Initializing...');\n  const container = document.querySelector('.my-gallery-swiper');\n  console.log('[Single Apartment Gallery] Container found:', !!container, container);\n  if (!container) {\n    console.warn('[Single Apartment Gallery] Container not found, exiting');\n    return;\n  }\n  \n  const prevEl    = container.querySelector('.gallery-nav-prev');\n  const nextEl    = container.querySelector('.gallery-nav-next');\n  const modal     = document.getElementById('fullscreenModal');\n  console.log('[Single Apartment Gallery] Modal found:', !!modal, modal);\n  const imgFS     = document.getElementById('fullscreenImage');\n  const closeBtn  = modal ? modal.querySelector('.close') : null;\n  const pBtn      = modal ? modal.querySelector('.fullscreen-prev') : null;\n  const nBtn      = modal ? modal.querySelector('.fullscreen-next') : null;\n\n  console.log('[Single Apartment Gallery] Elements:', {\n    prevEl: !!prevEl,\n    nextEl: !!nextEl,\n    modal: !!modal,\n    imgFS: !!imgFS,\n    closeBtn: !!closeBtn,\n    pBtn: !!pBtn,\n    nBtn: !!nBtn\n  });\n\n  \/\/ 0. Pre-deklarujemy zmienn\u0105, \u017ceby handler mia\u0142 do niej dost\u0119p\n  let currentIdx = 0;\n  let keyHandler = null;\n\n  \/\/ 1. Lista oryginalnych URL-i (bez klon\u00f3w Swipera)\n  const urls = [\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923143710_uPtUvQ.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923144556_Qst8KI.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923143710_ARuAUF.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923143710_0nqorN.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216192849_VStMQH.jpg\"];\n\n  \/\/ Funkcja do aktualizacji pozycji przycisk\u00f3w\n  function updateNav(swiperInstance) {\n    if (!swiperInstance || !swiperInstance.slides || swiperInstance.slides.length === 0) {\n      console.log('[Single Apartment Gallery] Swiper not ready yet');\n      return;\n    }\n    const active   = swiperInstance.slides[swiperInstance.activeIndex];\n    const aRect    = active.getBoundingClientRect();\n    const cRect    = container.getBoundingClientRect();\n    const halfW    = prevEl.offsetWidth \/ 2;\n    \/\/ 10px margines mi\u0119dzy slajdem a przyciskiem\n    prevEl.style.left = (aRect.left - cRect.left - 10 - halfW) + 'px';\n    nextEl.style.left = (aRect.right - cRect.left + 10 - halfW) + 'px';\n  }\n\n  \/\/ 2. Inicjalizacja Swipera z naszymi przyciskami\n  const swiper = new Swiper(container, {\n    slidesPerView: 'auto',\n    centeredSlides: true,\n    spaceBetween: 20,\n    loop: true,\n    loopedSlides: 5,\n    roundLengths: true,\n    speed: 500,\n    navigation: { prevEl, nextEl },\n    on: {\n      init: function() {\n        \/\/ U\u017cywamy 'this' zamiast 'swiper' - Swiper przekazuje siebie jako this\n        updateNav(this);\n      },\n      slideChangeTransitionEnd: function() {\n        updateNav(this);\n      },\n      resize: function() {\n        updateNav(this);\n      }\n    }\n  });\n  swiper.init();\n  \n  \/\/ Wywo\u0142ujemy te\u017c po utworzeniu, na wypadek gdyby init nie zadzia\u0142a\u0142\n  setTimeout(() => {\n    updateNav(swiper);\n  }, 100);\n\n  \/\/ Aktualizacja modala\n  function updateModal() {\n    imgFS.src = urls[currentIdx];\n  }\n\n  \/\/ 3. Delegacja klikni\u0119cia: z\u0142apiemy ka\u017cde <img class=\"slide-image\">\n  container.addEventListener('click', e => {\n    console.log('[Single Apartment Gallery] Click detected:', e.target, e.target.classList);\n    if (!e.target.classList.contains('slide-image')) {\n      console.log('[Single Apartment Gallery] Not a slide-image, ignoring');\n      return;\n    }\n    console.log('[Single Apartment Gallery] Opening modal...');\n    const clickedImg = e.target;\n    const idx = parseInt(clickedImg.dataset.index, 10);\n    console.log('[Single Apartment Gallery] Index:', idx);\n    if (isNaN(idx)) {\n      console.error('[Single Apartment Gallery] Invalid index!');\n      return;\n    }\n    currentIdx = idx;\n    updateModal();\n    console.log('[Single Apartment Gallery] Modal classes before:', modal.className);\n    modal.classList.add('active');\n    console.log('[Single Apartment Gallery] Modal classes after:', modal.className);\n    console.log('[Single Apartment Gallery] Modal display style:', window.getComputedStyle(modal).display);\n    document.body.style.overflow = 'hidden';\n    \n    \/\/ Dodajemy handler klawiatury\n    keyHandler = function(e) {\n      if (e.key === 'Escape') {\n        closeModal();\n      } else if (e.key === 'ArrowLeft') {\n        e.preventDefault();\n        pBtn.click();\n      } else if (e.key === 'ArrowRight') {\n        e.preventDefault();\n        nBtn.click();\n      }\n    };\n    document.addEventListener('keydown', keyHandler);\n  });\n\n  \/\/ 4. Sterowanie modalem\n  function closeModal() {\n    console.log('[Single Apartment Gallery] Closing modal...');\n    modal.classList.remove('active');\n    document.body.style.overflow = '';\n    if (keyHandler) {\n      document.removeEventListener('keydown', keyHandler);\n      keyHandler = null;\n    }\n  }\n  \n  closeBtn.addEventListener('click', closeModal);\n  pBtn.addEventListener('click', e => {\n    e.stopPropagation();\n    currentIdx = (currentIdx - 1 + urls.length) % urls.length;\n    updateModal();\n  });\n  nBtn.addEventListener('click', e => {\n    e.stopPropagation();\n    currentIdx = (currentIdx + 1) % urls.length;\n    updateModal();\n  });\n  \/\/ klik poza obraz \u2192 zamknij\n  modal.addEventListener('click', e => {\n    if (e.target === modal) closeModal();\n  });\n});\n<\/script>\n\n<\/div>\n    <\/section>\n    <section class=\"u-clearfix u-section-4\" id=\"sec-451f\">\n      <div class=\"u-clearfix u-sheet u-valign-middle u-sheet-1\">\n        <div class=\"u-container-style u-expanded-width u-group u-shape-rectangle u-group-1\">\n          <div class=\"u-container-layout u-valign-bottom-xs u-container-layout-1\">\n            <div class=\"data-layout-selected u-clearfix u-expanded-width u-layout-wrap u-layout-wrap-1\">\n              <div class=\"u-layout\">\n                <div class=\"u-layout-row\">\n                  <div class=\"u-container-align-left u-container-style u-layout-cell u-size-39 u-layout-cell-1\">\n                    <div class=\"u-container-layout u-valign-middle u-container-layout-2\">\n                      <h2 class=\"u-align-left u-text u-text-custom-color-13 u-text-default u-text-1\" data-animation-name=\"customAnimationIn\" data-animation-duration=\"1000\" data-animation-delay=\"0\" data-animation-out=\"0\"> Studio<\/h2>\n                    <\/div>\n                  <\/div>\n                  <div class=\"u-container-style u-layout-cell u-size-21 u-layout-cell-2\">\n                    <div class=\"u-container-layout u-valign-top-xl u-container-layout-3\">\n                      <div class=\"u-expanded-width-lg u-expanded-width-md u-expanded-width-sm u-expanded-width-xs u-shortcode u-shortcode-1\">\n<!-- FontAwesome -->\n<script src=\"https:\/\/kit.fontawesome.com\/d379bdf33c.js\" crossorigin=\"anonymous\"><\/script>\n<!-- Swiper CSS -->\n<link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/swiper\/swiper-bundle.min.css\"\/>\n\n<style>\n\/* ---------- PODSTAWOWE ---------- *\/\n.apartment-view { margin:0 auto; }\n.apartment-view h2 { font-size:28px; margin-bottom:10px; }\n.apartment-view p  { line-height:1.6; }\n.apartment-view .location { margin:10px 0; font-size:16px; color:#555; }\n.apartment-view .facilities { display:grid; grid-template-columns:repeat(6,1fr); row-gap:20px; }\n.apartment-view .facility   { display:flex; align-items:center; gap:10px; padding:10px 0; }\n.apartment-view .facility span   { font-weight: bold; }\n.apartment-view .facility i { color:#2D2D2D; font-size:1.2em; }\n.apartment-view .facility svg { width:25px; height:25px; fill:#2D2D2D; }\n.apartment-view .rate { color:#8D8B55; font-size:48px; background:#D9D3C7; padding-block:10px; text-align:center; }\n\n\/* ---------- SWIPER + PEEK ---------- *\/\n.my-gallery-swiper {\n  --slide-w: 600px;\n  width: 800px;\n  height: 450px;\n  margin: 20px auto;\n  overflow: visible;\n  position: relative;\n}\n.my-gallery-swiper .swiper-wrapper {\n  display: flex;\n  align-items: center;\n  overflow: visible !important;\n}\n.my-gallery-swiper .swiper-slide {\n  width: var(--slide-w) !important;\n  height: 100% !important;\n  flex-shrink: 0;\n}\n.slide-image {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  cursor: pointer;\n}\n\n.gallery-nav-btn {\n        display: flex;\n        position: absolute;\n        top: 50%;\n        transform: translateY(-50%);\n        width: 44px;\n        height: 44px;\n        border: none;\n        border-radius: 50%;\n        color: #fff;\n        font-size: 24px;\n        align-items: center;\n        justify-content: center;\n        cursor: pointer;\n        z-index: 20;\n      }\n      .gallery-nav-prev { background: #8D8B55; left: 0 }\n      .gallery-nav-next { background: #25281B; right: 0}\n\n\/* nasze przyciski zamiast domy\u015blnych Swiper *\/\n.swiper-button-prev,\n.swiper-button-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 44px;\n  height: 44px;\n  border: none;\n  border-radius: 50%;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  font-size: 24px;\n  color: #fff;\n  cursor: pointer;\n  z-index: 10;\n  background-repeat: no-repeat;\n  background-position: center;\n}\n.swiper-button-prev::after,\n.swiper-button-next::after {\n  content: none;\n}\n.swiper-button-prev {\n  background-color: #8D8B55;\n}\n.swiper-button-next {\n  background-color: #25281B;\n}\n\n.previo-desc { line-height:1.9 !important; }\n\n\/* ---------- MOBILE (<768px) ---------- *\/\n@media (max-width:768px) {\n  .my-gallery-swiper {\n    width: 100%;\n    height: auto;\n    flex-direction: column;\n    overflow: hidden;\n  }\n  .my-gallery-swiper .swiper-slide {\n    width: calc(100% - 30px) !important;\n    height: auto !important;\n    max-height: 450px;\n  }\n  .slide-image { height: auto; }\n  .swiper-button-prev,\n  .swiper-button-next {\n    position: static;\n    margin: 10px;\n    font-size: 1.5em;\n    transform: none;\n  }\n  .apartment-view .facilities { display:grid; grid-template-columns:repeat(2,1fr); row-gap:20px; }\n  .apartment-view .rate       { font-size:21px; }\n}\n\n\/* ---------- MOBILE (<450px) ---------- *\/\n@media (max-width:450px) {\n  .apartment-view .facilities { display:grid; grid-template-columns:repeat(1,1fr); row-gap:20px; }\n  .apartment-view .facility { justify-content:center; }\n}\n\n\/* ---------- FULLSCREEN MODAL ---------- *\/\n.fullscreen-modal {\n  display:none;\n  position:fixed;\n  inset:0;\n  background:rgba(0,0,0,0.95);\n  align-items:center;\n  justify-content:center;\n  z-index:100001;\n  flex-direction:column;\n}\n.fullscreen-modal.active { display:flex; }\n.fullscreen-content { width:70%; height:100%; object-fit:contain; object-position:center; }\n.fullscreen-prev,\n.fullscreen-next {\n  position:absolute;\n  top:50%;\n  transform:translateY(-50%);\n  background:rgba(255,255,255,0.2);\n  border:none;\n  color:#fff;\n  font-size:40px;\n  width:60px;\n  height:60px;\n  border-radius:50%;\n  cursor:pointer;\n  z-index:10000;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  transition:background 0.3s;\n}\n.fullscreen-prev:hover,\n.fullscreen-next:hover {\n  background:rgba(255,255,255,0.4);\n}\n.fullscreen-prev { left:30px; }\n.fullscreen-next { right:30px; }\n.fullscreen-modal .close {\n  position:absolute;\n  top:30px;\n  right:30px;\n  color:#fff;\n  font-size:50px;\n  cursor:pointer;\n  z-index:10000;\n  width:50px;\n  height:50px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  background:rgba(0,0,0,0.5);\n  border-radius:50%;\n  transition:background 0.3s;\n}\n.fullscreen-modal .close:hover {\n  background:rgba(0,0,0,0.8);\n}\n@media screen and (max-width:767px) {\n  .fullscreen-prev,\n  .fullscreen-next {\n    width:45px;\n    height:45px;\n    font-size:30px;\n  }\n  .fullscreen-prev { left:10px; }\n  .fullscreen-next { right:10px; }\n  .fullscreen-modal .close {\n    top:15px;\n    right:15px;\n    font-size:40px;\n    width:40px;\n    height:40px;\n  }\n}\n<\/style>\n\n<div class=\"apartment-view\">\n  \n  \n    \n  <!-- Nowy blok: wy\u015bwietlanie tylko wybranych udogodnie\u0144 -->\n  \n  <!-- Domy\u015blny blok wszystkich udogodnie\u0144 -->\n  \n  \n            <div class=\"rate\">\n                <div class=\"rate-top\">\n          od 306 PLN\/noc\n        <\/div>\n      <\/div>\n      <\/div>\n\n<!-- FULLSCREEN MODAL -->\n<div id=\"fullscreenModal\" class=\"fullscreen-modal\">\n  <span class=\"close\">&times;<\/span>\n  <button class=\"fullscreen-prev\">&#10094;<\/button>\n  <img decoding=\"async\" id=\"fullscreenImage\" class=\"fullscreen-content\" src=\"\" alt=\"Pe\u0142ny ekran\" \/>\n  <button class=\"fullscreen-next\">&#10095;<\/button>\n<\/div>\n\n<!-- Swiper JS -->\n<script src=\"https:\/\/unpkg.com\/swiper\/swiper-bundle.min.js\"><\/script>\n<script>\ndocument.addEventListener('DOMContentLoaded', function(){\n  console.log('[Single Apartment Gallery] Initializing...');\n  const container = document.querySelector('.my-gallery-swiper');\n  console.log('[Single Apartment Gallery] Container found:', !!container, container);\n  if (!container) {\n    console.warn('[Single Apartment Gallery] Container not found, exiting');\n    return;\n  }\n  \n  const prevEl    = container.querySelector('.gallery-nav-prev');\n  const nextEl    = container.querySelector('.gallery-nav-next');\n  const modal     = document.getElementById('fullscreenModal');\n  console.log('[Single Apartment Gallery] Modal found:', !!modal, modal);\n  const imgFS     = document.getElementById('fullscreenImage');\n  const closeBtn  = modal ? modal.querySelector('.close') : null;\n  const pBtn      = modal ? modal.querySelector('.fullscreen-prev') : null;\n  const nBtn      = modal ? modal.querySelector('.fullscreen-next') : null;\n\n  console.log('[Single Apartment Gallery] Elements:', {\n    prevEl: !!prevEl,\n    nextEl: !!nextEl,\n    modal: !!modal,\n    imgFS: !!imgFS,\n    closeBtn: !!closeBtn,\n    pBtn: !!pBtn,\n    nBtn: !!nBtn\n  });\n\n  \/\/ 0. Pre-deklarujemy zmienn\u0105, \u017ceby handler mia\u0142 do niej dost\u0119p\n  let currentIdx = 0;\n  let keyHandler = null;\n\n  \/\/ 1. Lista oryginalnych URL-i (bez klon\u00f3w Swipera)\n  const urls = [\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923143710_uPtUvQ.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923144556_Qst8KI.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923143710_ARuAUF.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923143710_0nqorN.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216192849_VStMQH.jpg\"];\n\n  \/\/ Funkcja do aktualizacji pozycji przycisk\u00f3w\n  function updateNav(swiperInstance) {\n    if (!swiperInstance || !swiperInstance.slides || swiperInstance.slides.length === 0) {\n      console.log('[Single Apartment Gallery] Swiper not ready yet');\n      return;\n    }\n    const active   = swiperInstance.slides[swiperInstance.activeIndex];\n    const aRect    = active.getBoundingClientRect();\n    const cRect    = container.getBoundingClientRect();\n    const halfW    = prevEl.offsetWidth \/ 2;\n    \/\/ 10px margines mi\u0119dzy slajdem a przyciskiem\n    prevEl.style.left = (aRect.left - cRect.left - 10 - halfW) + 'px';\n    nextEl.style.left = (aRect.right - cRect.left + 10 - halfW) + 'px';\n  }\n\n  \/\/ 2. Inicjalizacja Swipera z naszymi przyciskami\n  const swiper = new Swiper(container, {\n    slidesPerView: 'auto',\n    centeredSlides: true,\n    spaceBetween: 20,\n    loop: true,\n    loopedSlides: <br \/>\n<b>Warning<\/b>:  Undefined variable $totalSlides in <b>\/home\/platne\/serwer321157\/public_html\/boulevard\/wp-content\/plugins\/previo-apartamenty-boulevard\/templates\/single-apartment-view.php<\/b> on line <b>508<\/b><br \/>\n,\n    roundLengths: true,\n    speed: 500,\n    navigation: { prevEl, nextEl },\n    on: {\n      init: function() {\n        \/\/ U\u017cywamy 'this' zamiast 'swiper' - Swiper przekazuje siebie jako this\n        updateNav(this);\n      },\n      slideChangeTransitionEnd: function() {\n        updateNav(this);\n      },\n      resize: function() {\n        updateNav(this);\n      }\n    }\n  });\n  swiper.init();\n  \n  \/\/ Wywo\u0142ujemy te\u017c po utworzeniu, na wypadek gdyby init nie zadzia\u0142a\u0142\n  setTimeout(() => {\n    updateNav(swiper);\n  }, 100);\n\n  \/\/ Aktualizacja modala\n  function updateModal() {\n    imgFS.src = urls[currentIdx];\n  }\n\n  \/\/ 3. Delegacja klikni\u0119cia: z\u0142apiemy ka\u017cde <img class=\"slide-image\">\n  container.addEventListener('click', e => {\n    console.log('[Single Apartment Gallery] Click detected:', e.target, e.target.classList);\n    if (!e.target.classList.contains('slide-image')) {\n      console.log('[Single Apartment Gallery] Not a slide-image, ignoring');\n      return;\n    }\n    console.log('[Single Apartment Gallery] Opening modal...');\n    const clickedImg = e.target;\n    const idx = parseInt(clickedImg.dataset.index, 10);\n    console.log('[Single Apartment Gallery] Index:', idx);\n    if (isNaN(idx)) {\n      console.error('[Single Apartment Gallery] Invalid index!');\n      return;\n    }\n    currentIdx = idx;\n    updateModal();\n    console.log('[Single Apartment Gallery] Modal classes before:', modal.className);\n    modal.classList.add('active');\n    console.log('[Single Apartment Gallery] Modal classes after:', modal.className);\n    console.log('[Single Apartment Gallery] Modal display style:', window.getComputedStyle(modal).display);\n    document.body.style.overflow = 'hidden';\n    \n    \/\/ Dodajemy handler klawiatury\n    keyHandler = function(e) {\n      if (e.key === 'Escape') {\n        closeModal();\n      } else if (e.key === 'ArrowLeft') {\n        e.preventDefault();\n        pBtn.click();\n      } else if (e.key === 'ArrowRight') {\n        e.preventDefault();\n        nBtn.click();\n      }\n    };\n    document.addEventListener('keydown', keyHandler);\n  });\n\n  \/\/ 4. Sterowanie modalem\n  function closeModal() {\n    console.log('[Single Apartment Gallery] Closing modal...');\n    modal.classList.remove('active');\n    document.body.style.overflow = '';\n    if (keyHandler) {\n      document.removeEventListener('keydown', keyHandler);\n      keyHandler = null;\n    }\n  }\n  \n  closeBtn.addEventListener('click', closeModal);\n  pBtn.addEventListener('click', e => {\n    e.stopPropagation();\n    currentIdx = (currentIdx - 1 + urls.length) % urls.length;\n    updateModal();\n  });\n  nBtn.addEventListener('click', e => {\n    e.stopPropagation();\n    currentIdx = (currentIdx + 1) % urls.length;\n    updateModal();\n  });\n  \/\/ klik poza obraz \u2192 zamknij\n  modal.addEventListener('click', e => {\n    if (e.target === modal) closeModal();\n  });\n});\n<\/script>\n\n<\/div>\n                      <a href=\"\/rezerwacja\/?lang=pl&amp;arrival=&amp;departure=&amp;numberOfAdults=&amp;highlightRoomType=961183\" class=\"u-align-center-md u-align-center-sm u-align-center-xs u-border-none u-btn u-button-style u-hover-feature u-hover-palette-2-dark-1 u-text-white u-palette-1-base u-btn-1\" target=\"_blank\">Zarezerwuj sw\u00f3j pobyt <\/a>\n                    <\/div>\n                  <\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      \n    <\/section>\n    <section class=\"u-clearfix u-section-5\" id=\"sec-4e36\">\n      <div class=\"u-clearfix u-sheet u-sheet-1\">\n        <div class=\"data-layout-selected u-clearfix u-expanded-width u-layout-wrap u-layout-wrap-1\">\n          <div class=\"u-layout\">\n            <div class=\"u-layout-col\">\n              <div class=\"u-container-style u-layout-cell u-size-30 u-layout-cell-1\">\n                <div class=\"u-container-layout u-container-layout-1\">\n                  <div class=\"custom-expanded u-shortcode u-shortcode-1\">\n<!-- FontAwesome -->\n<script src=\"https:\/\/kit.fontawesome.com\/d379bdf33c.js\" crossorigin=\"anonymous\"><\/script>\n<!-- Swiper CSS -->\n<link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/swiper\/swiper-bundle.min.css\"\/>\n\n<style>\n\/* ---------- PODSTAWOWE ---------- *\/\n.apartment-view { margin:0 auto; }\n.apartment-view h2 { font-size:28px; margin-bottom:10px; }\n.apartment-view p  { line-height:1.6; }\n.apartment-view .location { margin:10px 0; font-size:16px; color:#555; }\n.apartment-view .facilities { display:grid; grid-template-columns:repeat(6,1fr); row-gap:20px; }\n.apartment-view .facility   { display:flex; align-items:center; gap:10px; padding:10px 0; }\n.apartment-view .facility span   { font-weight: bold; }\n.apartment-view .facility i { color:#2D2D2D; font-size:1.2em; }\n.apartment-view .facility svg { width:25px; height:25px; fill:#2D2D2D; }\n.apartment-view .rate { color:#8D8B55; font-size:48px; background:#D9D3C7; padding-block:10px; text-align:center; }\n\n\/* ---------- SWIPER + PEEK ---------- *\/\n.my-gallery-swiper {\n  --slide-w: 600px;\n  width: 800px;\n  height: 450px;\n  margin: 20px auto;\n  overflow: visible;\n  position: relative;\n}\n.my-gallery-swiper .swiper-wrapper {\n  display: flex;\n  align-items: center;\n  overflow: visible !important;\n}\n.my-gallery-swiper .swiper-slide {\n  width: var(--slide-w) !important;\n  height: 100% !important;\n  flex-shrink: 0;\n}\n.slide-image {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  cursor: pointer;\n}\n\n.gallery-nav-btn {\n        display: flex;\n        position: absolute;\n        top: 50%;\n        transform: translateY(-50%);\n        width: 44px;\n        height: 44px;\n        border: none;\n        border-radius: 50%;\n        color: #fff;\n        font-size: 24px;\n        align-items: center;\n        justify-content: center;\n        cursor: pointer;\n        z-index: 20;\n      }\n      .gallery-nav-prev { background: #8D8B55; left: 0 }\n      .gallery-nav-next { background: #25281B; right: 0}\n\n\/* nasze przyciski zamiast domy\u015blnych Swiper *\/\n.swiper-button-prev,\n.swiper-button-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 44px;\n  height: 44px;\n  border: none;\n  border-radius: 50%;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  font-size: 24px;\n  color: #fff;\n  cursor: pointer;\n  z-index: 10;\n  background-repeat: no-repeat;\n  background-position: center;\n}\n.swiper-button-prev::after,\n.swiper-button-next::after {\n  content: none;\n}\n.swiper-button-prev {\n  background-color: #8D8B55;\n}\n.swiper-button-next {\n  background-color: #25281B;\n}\n\n.previo-desc { line-height:1.9 !important; }\n\n\/* ---------- MOBILE (<768px) ---------- *\/\n@media (max-width:768px) {\n  .my-gallery-swiper {\n    width: 100%;\n    height: auto;\n    flex-direction: column;\n    overflow: hidden;\n  }\n  .my-gallery-swiper .swiper-slide {\n    width: calc(100% - 30px) !important;\n    height: auto !important;\n    max-height: 450px;\n  }\n  .slide-image { height: auto; }\n  .swiper-button-prev,\n  .swiper-button-next {\n    position: static;\n    margin: 10px;\n    font-size: 1.5em;\n    transform: none;\n  }\n  .apartment-view .facilities { display:grid; grid-template-columns:repeat(2,1fr); row-gap:20px; }\n  .apartment-view .rate       { font-size:21px; }\n}\n\n\/* ---------- MOBILE (<450px) ---------- *\/\n@media (max-width:450px) {\n  .apartment-view .facilities { display:grid; grid-template-columns:repeat(1,1fr); row-gap:20px; }\n  .apartment-view .facility { justify-content:center; }\n}\n\n\/* ---------- FULLSCREEN MODAL ---------- *\/\n.fullscreen-modal {\n  display:none;\n  position:fixed;\n  inset:0;\n  background:rgba(0,0,0,0.95);\n  align-items:center;\n  justify-content:center;\n  z-index:100001;\n  flex-direction:column;\n}\n.fullscreen-modal.active { display:flex; }\n.fullscreen-content { width:70%; height:100%; object-fit:contain; object-position:center; }\n.fullscreen-prev,\n.fullscreen-next {\n  position:absolute;\n  top:50%;\n  transform:translateY(-50%);\n  background:rgba(255,255,255,0.2);\n  border:none;\n  color:#fff;\n  font-size:40px;\n  width:60px;\n  height:60px;\n  border-radius:50%;\n  cursor:pointer;\n  z-index:10000;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  transition:background 0.3s;\n}\n.fullscreen-prev:hover,\n.fullscreen-next:hover {\n  background:rgba(255,255,255,0.4);\n}\n.fullscreen-prev { left:30px; }\n.fullscreen-next { right:30px; }\n.fullscreen-modal .close {\n  position:absolute;\n  top:30px;\n  right:30px;\n  color:#fff;\n  font-size:50px;\n  cursor:pointer;\n  z-index:10000;\n  width:50px;\n  height:50px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  background:rgba(0,0,0,0.5);\n  border-radius:50%;\n  transition:background 0.3s;\n}\n.fullscreen-modal .close:hover {\n  background:rgba(0,0,0,0.8);\n}\n@media screen and (max-width:767px) {\n  .fullscreen-prev,\n  .fullscreen-next {\n    width:45px;\n    height:45px;\n    font-size:30px;\n  }\n  .fullscreen-prev { left:10px; }\n  .fullscreen-next { right:10px; }\n  .fullscreen-modal .close {\n    top:15px;\n    right:15px;\n    font-size:40px;\n    width:40px;\n    height:40px;\n  }\n}\n<\/style>\n\n<div class=\"apartment-view\">\n  \n  \n    \n  <!-- Nowy blok: wy\u015bwietlanie tylko wybranych udogodnie\u0144 -->\n      <div class=\"facilities\">\n      <div class=\"facility\"><span class=\"facility-icon\"><svg width=\"25\" height=\"21\" viewBox=\"0 0 25 21\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M14.286 16.3848V19.1051C14.6464 19.1051 15.0062 19.1051 15.3667 19.1051C15.6148 19.1051 15.8635 19.0976 16.1109 19.1078C16.4604 19.1221 16.6447 19.3044 16.6317 19.6037C16.6194 19.8907 16.4515 20.0377 16.102 20.0397C15.1878 20.0445 14.2737 20.0417 13.3588 20.0417C11.7258 20.0417 10.0934 20.0431 8.46041 20.0404C8.09927 20.0404 7.92795 19.9084 7.90259 19.6336C7.87313 19.3166 8.06295 19.1159 8.43095 19.1085C8.95313 19.0983 9.476 19.1057 9.99819 19.1051C10.0736 19.1051 10.1496 19.0976 10.2449 19.0928V16.3848C10.1126 16.3848 9.97557 16.3848 9.83783 16.3848C7.42153 16.3848 5.00522 16.3882 2.58824 16.3835C1.44793 16.3814 0.568025 15.7835 0.21442 14.7604C0.127389 14.5088 0.083531 14.2299 0.0828457 13.9625C0.0746224 10.2158 0.0828458 6.46847 0.0732518 2.72178C0.0698254 1.50009 0.979194 0.332817 2.49778 0.288602C2.99392 0.274317 3.49075 0.285887 3.9869 0.285887C9.94336 0.285887 15.8991 0.285886 21.8556 0.285206C22.5025 0.285206 23.0987 0.430777 23.5997 0.857279C24.1787 1.35112 24.4563 1.98305 24.4556 2.73946C24.4542 4.7747 24.4556 6.81063 24.4556 8.84587C24.4556 10.4403 24.4446 12.0354 24.4604 13.6299C24.4672 14.3237 24.3624 14.9706 23.9437 15.4672C24.1129 15.9923 24.3219 16.4583 24.409 16.9453C24.7112 18.633 23.4729 20.3254 21.7754 20.658C20.3295 20.941 18.8712 20.2036 18.212 19.033C17.7604 18.231 17.2834 17.4426 16.8318 16.6399C16.7222 16.4447 16.594 16.3746 16.3706 16.3794C15.6819 16.3937 14.9932 16.3841 14.2853 16.3841L14.286 16.3848ZM23.3146 14.5564C23.3482 14.5523 23.3817 14.5482 23.416 14.5441C23.4482 14.2965 23.5071 14.0482 23.5085 13.8006C23.5167 12.0763 23.5126 10.3519 23.5126 8.6282C23.5126 6.69635 23.5119 4.7645 23.5126 2.83333C23.5126 2.3599 23.3858 1.94088 23.0199 1.61301C22.6875 1.31575 22.2894 1.2416 21.8584 1.2416C15.4585 1.24364 9.05866 1.2416 2.6595 1.24432C1.59526 1.24432 1.02237 1.82388 1.02168 2.88708C1.02031 4.96109 1.02168 7.03578 1.02168 9.10979C1.02168 10.7042 1.01963 12.2987 1.02305 13.8938C1.02442 14.4639 1.23823 14.9257 1.74808 15.2264C2.05097 15.4053 2.38334 15.4407 2.72803 15.4407C7.03777 15.4386 11.3482 15.4393 15.6579 15.4393H16.1246C15.8909 15.04 15.6936 14.7026 15.5003 14.3727H14.9905C10.9809 14.3727 6.9713 14.3727 2.96171 14.3727C2.84385 14.3727 2.72598 14.3788 2.60948 14.368C2.35661 14.3435 2.21544 14.1972 2.19214 13.9421C2.18392 13.8523 2.18872 13.7605 2.18872 13.67C2.18872 10.1179 2.18872 6.56574 2.18872 3.0136C2.18872 2.9102 2.18186 2.80544 2.19351 2.70273C2.21955 2.47009 2.36141 2.33405 2.5992 2.30684C2.67664 2.298 2.75544 2.30276 2.83425 2.30276C5.19847 2.30276 7.56201 2.30276 9.92623 2.30276C10.0044 2.30276 10.0838 2.298 10.1613 2.30616C10.4196 2.33201 10.5697 2.48438 10.5841 2.7279C10.5985 2.97347 10.4724 3.16257 10.2319 3.2163C10.1065 3.24419 9.97283 3.23807 9.84263 3.23807C7.7532 3.23944 5.66309 3.23875 3.57367 3.23875H3.15633V13.4048H14.9247C14.8877 13.3292 14.8623 13.2857 14.8438 13.2395C14.6218 12.6891 14.7561 12.3007 15.2742 11.9906C15.4194 11.9035 15.5654 11.8185 15.7121 11.7341C16.886 11.0607 18.0598 10.3866 19.2351 9.71452C19.8745 9.34855 20.3459 9.46895 20.7153 10.0934C20.8736 10.3614 21.0264 10.6328 21.1861 10.9001C21.2341 10.9804 21.2957 11.0525 21.3739 11.1586V3.23875C21.208 3.23875 21.0669 3.23875 20.9257 3.23875C18.8493 3.23875 16.7722 3.23876 14.6958 3.23807C14.5656 3.23807 14.4313 3.24419 14.3066 3.21698C14.0646 3.16393 13.9379 2.97618 13.9516 2.73062C13.9653 2.48574 14.114 2.33269 14.3717 2.30684C14.4621 2.298 14.5546 2.30343 14.6458 2.30343C16.9839 2.30343 19.3214 2.30343 21.6596 2.30343C21.7377 2.30343 21.8166 2.29936 21.8947 2.30548C22.1784 2.32724 22.3223 2.46465 22.3449 2.74014C22.3545 2.85646 22.3483 2.97346 22.3483 3.08978C22.3483 6.23991 22.3483 9.39072 22.349 12.5409C22.349 12.6694 22.3209 12.8211 22.3764 12.9238C22.6773 13.4755 23.0014 14.0149 23.3166 14.5591L23.3146 14.5564ZM15.7251 12.8245C15.7998 12.966 15.8553 13.0803 15.9197 13.1905C16.5906 14.3435 17.2635 15.4964 17.9351 16.6488C18.3264 17.3201 18.6965 18.0051 19.1138 18.6602C20.1047 20.2145 22.3853 20.1152 23.2303 18.486C23.6545 17.6677 23.5613 16.8698 23.1021 16.0862C22.0605 14.3094 21.0292 12.5266 19.993 10.7464C19.9423 10.6593 19.8793 10.5804 19.8114 10.4818C18.4429 11.2661 17.0929 12.0402 15.7251 12.8245ZM13.2964 19.088V16.4161H11.2303V19.088H13.2964Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M17.9914 6.85003C17.8776 6.83031 17.7488 6.80853 17.6206 6.78541C15.8478 6.46706 14.151 7.45951 13.5781 9.1492C13.5411 9.25939 13.5137 9.37775 13.4521 9.47299C13.3356 9.65461 13.1533 9.72671 12.9422 9.67093C12.7318 9.61584 12.5989 9.47026 12.605 9.24987C12.6098 9.09818 12.6462 8.94241 12.6941 8.79684C13.2643 7.07111 15.0262 5.70861 17.034 5.79228C17.4082 5.80792 17.7851 5.86642 18.151 5.94737C18.3977 6.00247 18.5108 6.23034 18.4731 6.45482C18.4347 6.68065 18.2435 6.84187 17.9914 6.84935V6.85003Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M16.9976 7.94591C17.2004 7.98401 17.4115 7.99965 17.6054 8.06563C17.8473 8.14862 17.9385 8.35201 17.8871 8.59281C17.8357 8.83225 17.6664 8.96557 17.4074 8.95809C17.2902 8.95469 17.1744 8.92476 17.0579 8.91999C16.4144 8.89142 15.9203 9.20841 15.6791 9.79885C15.6448 9.88252 15.6209 9.97231 15.5715 10.0465C15.4495 10.2308 15.2672 10.2845 15.0576 10.2356C14.854 10.1879 14.7108 9.98999 14.7197 9.7696C14.7238 9.68117 14.7512 9.59206 14.7786 9.50703C15.0706 8.59145 16.0389 7.91054 16.9969 7.94591H16.9976Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M12.2781 2.30214C12.5412 2.30758 12.7502 2.51913 12.7434 2.77217C12.7365 3.0191 12.5035 3.23881 12.2555 3.23201C12.006 3.22521 11.7833 2.99393 11.7895 2.74905C11.7956 2.49328 12.0108 2.2967 12.2788 2.30214H12.2781Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M21.1003 18.8133C20.3204 18.8065 19.6756 18.165 19.681 17.4025C19.6872 16.6216 20.354 15.9836 21.1475 15.9917C21.8314 15.9992 22.5318 16.4998 22.5599 17.4107C22.5839 18.1943 21.9068 18.8208 21.1003 18.8133ZM21.1126 17.8617C21.3778 17.8671 21.5916 17.6705 21.5971 17.4154C21.6026 17.1733 21.3792 16.9399 21.1345 16.9325C20.8906 16.925 20.6576 17.1467 20.65 17.393C20.6425 17.6433 20.8529 17.8569 21.1126 17.8617Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M17.2285 13.3858C17.2292 13.1164 17.4286 12.9144 17.6918 12.9164C17.9378 12.9184 18.1742 13.1511 18.1722 13.3898C18.1708 13.6211 17.9213 13.8646 17.687 13.864C17.4307 13.864 17.2278 13.6517 17.2285 13.3851V13.3858Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M19.3359 12.9055C19.0673 12.9055 18.8693 12.7068 18.8706 12.4388C18.872 12.1838 19.0906 11.96 19.3373 11.9613C19.5772 11.9627 19.8095 12.1987 19.8102 12.4416C19.8102 12.6966 19.597 12.9048 19.3353 12.9055H19.3359Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M20.2739 14.5407C20.0067 14.5339 19.81 14.3271 19.8189 14.0639C19.8278 13.8054 20.0444 13.6034 20.3034 13.6122C20.5583 13.621 20.7701 13.8435 20.7625 14.0931C20.7543 14.3496 20.5378 14.5475 20.2739 14.5407Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M18.6537 15.4897C18.3844 15.4985 18.187 15.3114 18.1809 15.0394C18.174 14.7618 18.3536 14.5707 18.627 14.5652C18.8874 14.5598 19.1094 14.7618 19.117 15.0121C19.1245 15.2584 18.9086 15.4815 18.6544 15.4897H18.6537Z\" fill=\"#2D2D2D\"\/>\n<\/svg>\n<\/span><span>Telewizor<\/span> <span><\/span><\/div><div class=\"facility\"><span class=\"facility-icon\"><svg width=\"26\" height=\"21\" viewBox=\"0 0 26 21\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M12.7755 0.382393C15.2924 0.381091 17.4465 0.888952 19.4923 1.8656C19.8426 2.03294 19.9587 2.24259 19.8347 2.46917C19.7239 2.67166 19.5159 2.68924 19.1598 2.518C16.9184 1.44108 14.5479 0.963175 12.0697 1.13897C9.1062 1.34928 6.4562 2.41253 4.11712 4.23106C3.1319 4.9974 2.25097 5.86922 1.47434 6.84392C1.23886 7.13952 1.12669 7.46051 1.24542 7.84597C1.35299 8.193 1.55437 8.44107 1.91186 8.52116C2.26737 8.60059 2.53106 8.42219 2.7449 8.15524C3.51628 7.19226 4.39852 6.34192 5.39555 5.61009C7.09312 4.36388 8.97894 3.53047 11.0668 3.22315C14.7289 2.68404 18.0171 3.61185 20.9413 5.84318C21.7625 6.46954 22.4919 7.19356 23.1518 7.9853C23.5342 8.44433 23.9508 8.55502 24.3266 8.29523C24.7707 7.98791 24.9045 7.33029 24.5687 6.87778C24.2754 6.48321 23.9389 6.11795 23.5992 5.75984C22.8166 4.93359 21.9475 4.20501 20.9977 3.57214C20.6566 3.3449 20.5707 3.14371 20.7084 2.93536C20.8429 2.73157 21.0731 2.74133 21.4123 2.96792C22.8009 3.89639 24.0157 5.01238 25.0652 6.30546C25.504 6.84653 25.6096 7.45791 25.363 8.1038C24.9032 9.30899 23.489 9.53688 22.6579 8.53809C21.8937 7.62004 21.0417 6.79704 20.0656 6.10557C18.4146 4.93555 16.597 4.16529 14.5748 3.91527C10.9468 3.46731 7.77136 4.50517 5.02428 6.85694C4.41885 7.37522 3.88557 7.9814 3.35754 8.58106C2.7462 9.27644 1.99975 9.47047 1.29527 9.05571C0.57177 8.62859 0.260196 7.6858 0.595381 6.89471C0.672126 6.7137 0.777735 6.5379 0.901708 6.38424C3.05844 3.71603 5.75959 1.84021 9.08979 0.905229C10.3695 0.545822 11.6821 0.366116 12.7736 0.382393H12.7755Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M12.7204 5.74358C16.2605 5.8191 18.9177 7.12001 21.0613 9.49262C21.5815 10.0682 21.6753 10.7499 21.3499 11.4596C20.8783 12.4896 19.6248 12.7058 18.8147 11.9108C18.4625 11.5651 18.1253 11.2005 17.7429 10.8905C16.1811 9.62414 14.3845 9.03554 12.3727 9.20678C10.378 9.37672 8.72573 10.2674 7.37056 11.7181C7.28856 11.806 7.20985 11.8971 7.12523 11.9818C6.20102 12.8992 4.89504 12.4284 4.52378 11.3372C4.3001 10.6796 4.4326 10.0727 4.89176 9.55447C6.52177 7.71381 8.51254 6.45848 10.9513 5.97341C11.6302 5.83798 12.3275 5.79371 12.7204 5.74423V5.74358ZM12.8936 6.47867C12.5656 6.50341 12.134 6.50927 11.7109 6.57112C9.19341 6.94095 7.12654 8.12726 5.46505 10.0226C5.32271 10.1847 5.2276 10.41 5.17513 10.6216C5.07805 11.0123 5.33256 11.4785 5.69332 11.6549C6.02916 11.819 6.33549 11.7409 6.66149 11.4062C6.84778 11.2148 7.02554 11.0149 7.21904 10.8313C9.21768 8.93723 11.5902 8.15265 14.3235 8.55438C15.7954 8.77054 17.1086 9.3969 18.2473 10.354C18.6245 10.6711 18.9636 11.0331 19.3191 11.3749C19.8334 11.8698 20.5182 11.6946 20.736 11.0136C20.8665 10.6047 20.7616 10.2505 20.4828 9.94383C18.4795 7.73985 16.0053 6.53662 12.8936 6.47802V6.47867Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M13.0093 11.8451C11.6889 11.8698 10.5469 12.3243 9.55708 13.1727C9.17598 13.4996 9.07825 13.8948 9.23568 14.3571C9.43771 14.9483 10.0995 15.1462 10.5567 14.7568C10.9372 14.4332 11.357 14.1787 11.8332 14.0204C11.9591 13.9788 12.1028 13.9039 12.2163 13.9319C12.352 13.9657 12.5075 14.0686 12.577 14.1865C12.6682 14.3408 12.5685 14.4957 12.4157 14.5869C12.337 14.6344 12.2392 14.6501 12.1566 14.6924C11.8155 14.8688 11.4298 14.9964 11.1464 15.2406C10.3855 15.8963 9.42065 15.8032 8.85523 15.1494C8.23078 14.4274 8.29703 13.3146 9.01921 12.6681C9.69483 12.0632 10.4715 11.6211 11.3478 11.3776C13.4009 10.8073 15.2401 11.2559 16.8669 12.5906C17.6756 13.2541 17.7425 14.4489 17.0427 15.18C16.4969 15.7498 15.6744 15.8409 15.0394 15.3747C14.6609 15.0967 14.2871 14.8272 13.8305 14.6807C13.6023 14.6077 13.5222 14.4039 13.5905 14.2008C13.6554 14.0094 13.8496 13.9176 14.0883 13.995C14.577 14.1533 15.004 14.4215 15.41 14.7334C15.8764 15.0908 16.3913 14.9704 16.6563 14.469C16.8918 14.0217 16.8216 13.5367 16.4431 13.1961C15.776 12.5952 14.9974 12.1915 14.1185 11.9968C13.7551 11.9161 13.3786 11.8952 13.008 11.8464L13.0093 11.8451Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M14.8633 18.7225C14.8679 19.7708 14.0427 20.6114 13.0011 20.6186C11.9312 20.6264 11.0877 19.7936 11.089 18.7317C11.0903 17.6925 11.9326 16.85 12.9716 16.848C14.0125 16.8461 14.8587 17.6847 14.8633 18.7225ZM12.9748 19.8887C13.6078 19.8887 14.1214 19.386 14.1326 18.7564C14.1431 18.1164 13.6118 17.5714 12.9762 17.5707C12.3419 17.5707 11.8086 18.1157 11.8191 18.7551C11.8289 19.3854 12.3425 19.8887 12.9755 19.8887H12.9748Z\" fill=\"#2D2D2D\"\/>\n<\/svg>\n<\/span><span>WiFi<\/span> <span><\/span><\/div><div class=\"facility\"><span class=\"facility-icon\"><svg width=\"23\" height=\"25\" viewBox=\"0 0 23 25\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M7.86756 4.04861C8.36737 3.82029 8.82786 3.61035 9.31082 3.38983C9.03396 2.93821 8.65152 2.57791 8.209 2.28333C7.03025 1.49926 5.74031 1.30379 4.37623 1.64627C3.11493 1.96313 2.10521 2.64808 1.43356 3.7763C1.05787 4.40723 0.847838 5.08884 0.823128 5.82336C0.814705 6.06337 0.811335 6.30394 0.811335 6.54395C0.810774 12.209 0.811335 17.8746 0.809651 23.5396C0.809651 23.6906 0.810774 23.8448 0.778202 23.9907C0.733276 24.1912 0.576596 24.3026 0.396891 24.2998C0.203708 24.297 0.0481508 24.16 0.0127714 23.9445C-0.00351434 23.8454 0.000416703 23.7429 0.000416703 23.6421C0.000416703 17.8512 0.000416703 12.0598 0.000416703 6.26774C0.000416703 4.82377 0.415984 3.53183 1.42346 2.45763C2.10802 1.72757 2.93972 1.22472 3.90114 0.950738C5.52354 0.488535 7.07461 0.648914 8.52292 1.54603C9.09236 1.89853 9.56016 2.36018 9.95326 2.89811C10.0274 2.99947 10.1015 3.10082 10.1858 3.21497C11.3668 3.00448 12.4955 3.16541 13.5625 3.69667C14.6363 4.23126 15.4006 5.07771 15.9638 6.11961C16.0604 6.11961 16.1469 6.11627 16.2328 6.12017C16.8798 6.1508 17.4048 6.59908 17.5503 7.24338C17.6941 7.88099 17.4329 8.46348 16.8163 8.75417C15.7134 9.27373 14.5986 9.76823 13.4873 10.27C11.4499 11.1899 9.41134 12.1076 7.37281 13.0265C7.25713 13.0788 7.14257 13.1345 7.02407 13.1802C6.1716 13.5076 5.46962 12.9853 5.2332 12.3527C5.04283 11.8431 5.11639 11.3871 5.46008 10.9694C5.48423 10.9399 5.51118 10.9126 5.53477 10.8831C5.55779 10.8541 5.57801 10.8241 5.60553 10.7862C4.73171 8.36102 5.24836 6.27554 7.21052 4.52641C7.10831 4.43619 7.02126 4.34821 6.92243 4.2747C5.62181 3.30909 3.66303 3.99125 3.26712 5.47531C3.18681 5.77602 3.17221 6.10012 3.17165 6.41364C3.16435 8.91733 3.16772 11.4216 3.16772 13.9253C3.16772 17.1245 3.16772 20.3243 3.16603 23.5235C3.16603 23.6867 3.16042 23.8532 3.12728 24.0124C3.08966 24.1934 2.94309 24.2959 2.77349 24.3009C2.59771 24.3059 2.42587 24.1812 2.38375 23.9979C2.36129 23.9011 2.36466 23.7969 2.36466 23.6967C2.3641 17.8796 2.36803 12.0625 2.36129 6.24546C2.35961 4.64279 3.34349 3.53239 4.61659 3.18323C5.72402 2.87918 6.73317 3.06406 7.61429 3.82141C7.70021 3.89491 7.7822 3.97288 7.86756 4.04972V4.04861ZM15.2214 6.42422C14.4493 5.04597 13.3396 4.17892 11.7745 3.97176C10.5317 3.80693 9.36024 4.07868 8.3084 4.75082C6.68881 5.78493 5.84981 7.23335 6.03064 9.1863C6.07781 9.69361 6.22888 10.1736 6.42038 10.6431C6.59053 11.0602 6.57762 11.103 6.21989 11.3653C6.20978 11.3726 6.19855 11.3798 6.18901 11.3876C5.93124 11.587 5.86498 11.8882 6.01885 12.1617C6.17777 12.4451 6.44733 12.5426 6.76799 12.4295C6.83987 12.4045 6.90895 12.3716 6.97802 12.3404C10.0684 10.9455 13.1593 9.55049 16.2491 8.15442C16.353 8.10764 16.4603 8.06198 16.5512 7.99627C16.7927 7.82141 16.8528 7.52905 16.7169 7.25396C16.5906 6.99835 16.33 6.8725 16.0486 6.94044C15.9627 6.96104 15.8813 7.00002 15.8004 7.03678C13.8905 7.89826 11.9817 8.76141 10.0712 9.62289C9.29566 9.9726 8.51955 10.3218 7.74008 10.6631C7.52219 10.7583 7.33519 10.6826 7.22905 10.4871C7.12628 10.2978 7.18524 10.0979 7.39303 9.97037C7.48962 9.91079 7.59744 9.86791 7.70134 9.82057C9.72751 8.90786 11.7548 7.99682 13.781 7.08356C14.2533 6.87083 14.7227 6.65309 15.2209 6.42478L15.2214 6.42422Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M17.5454 14.0371C17.5999 14.075 17.7391 14.129 17.8116 14.2298C18.299 14.907 18.7764 15.5913 19.2475 16.2802C19.3851 16.4812 19.3425 16.6928 19.1757 16.8204C19.0049 16.9501 18.7489 16.92 18.6023 16.7224C18.3164 16.3364 18.0469 15.9383 17.7723 15.5446C17.5622 15.2439 17.3416 14.9493 17.1495 14.638C16.9765 14.3573 17.1517 14.0449 17.546 14.0377L17.5454 14.0371Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M11.1015 19.8759C11.0998 20.1254 10.9768 20.269 10.7511 20.2857C10.5214 20.303 10.3664 20.1928 10.3237 19.95C10.1895 19.1831 10.0643 18.4147 9.93679 17.6467C9.92837 17.5972 9.92612 17.5465 9.92781 17.4964C9.93623 17.2792 10.0637 17.1255 10.2569 17.0966C10.4467 17.0676 10.6264 17.1851 10.6882 17.3861C10.7174 17.4819 10.7387 17.581 10.755 17.6796C10.864 18.349 10.9701 19.0194 11.0768 19.6893C11.0869 19.7512 11.0931 19.8141 11.1009 19.8764L11.1015 19.8759Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M16.1213 21.0917C16.1246 21.2559 15.9848 21.4369 15.818 21.4837C15.6608 21.5277 15.485 21.4659 15.3918 21.3133C15.3334 21.2181 15.2991 21.1084 15.2587 21.0031C15.0565 20.4758 14.8521 19.949 14.6572 19.4188C14.5696 19.1799 14.6606 18.9911 14.8819 18.902C15.0773 18.823 15.2856 18.8954 15.3777 19.1209C15.6332 19.749 15.8685 20.3844 16.1111 21.0176C16.1201 21.0404 16.1184 21.0672 16.1218 21.0917H16.1213Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M6.56262 16.7871C6.59126 16.2848 6.61485 15.7819 6.65023 15.2802C6.6682 15.0218 6.83274 14.8686 7.05849 14.8725C7.29436 14.8764 7.46171 15.0619 7.44823 15.3364C7.41846 15.9523 7.3814 16.5682 7.33928 17.183C7.32019 17.4598 7.13711 17.6407 6.91529 17.6146C6.72716 17.5923 6.51882 17.423 6.5497 17.1641C6.5643 17.0399 6.55251 16.9124 6.55251 16.7865C6.55644 16.7865 6.55981 16.7865 6.56374 16.7865L6.56262 16.7871Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M14.6977 17.3557C14.7005 17.599 14.6095 17.741 14.441 17.7828C14.272 17.8246 14.1075 17.8129 13.9991 17.6531C13.9502 17.5812 13.9171 17.4977 13.8856 17.4164C13.6897 16.913 13.4937 16.409 13.3016 15.9034C13.1679 15.5525 13.2264 15.3175 13.4622 15.2218C13.7087 15.1215 13.9059 15.2474 14.0434 15.6049C14.2372 16.1094 14.4253 16.6162 14.6151 17.1224C14.65 17.2154 14.6814 17.31 14.6977 17.3557Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M7.15883 20.5855C7.14142 20.8996 7.13749 21.2153 7.10042 21.5272C7.08526 21.6536 7.0291 21.805 6.93813 21.8863C6.70844 22.0913 6.34959 21.9309 6.32264 21.6174C6.30523 21.418 6.32039 21.2147 6.33106 21.0137C6.35577 20.5487 6.3816 20.0843 6.41642 19.6199C6.43327 19.3982 6.6096 19.2278 6.80166 19.2217C7.01338 19.215 7.18354 19.3938 7.19982 19.6421C7.20319 19.6923 7.19421 19.7424 7.19421 19.7931C7.19365 20.057 7.19421 20.3215 7.19421 20.5855C7.18241 20.5855 7.17062 20.5855 7.15939 20.5855H7.15883Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M19.6507 10.7382C19.6496 11.035 19.3368 11.27 19.1239 11.1264C18.7713 10.8875 18.4455 10.6046 18.1327 10.3145C17.9901 10.1819 18.0216 10.0227 18.1445 9.87175C18.2507 9.74144 18.4573 9.65568 18.5848 9.75146C18.9364 10.0154 19.2654 10.3078 19.5979 10.5962C19.6383 10.6313 19.6411 10.7093 19.6507 10.7382Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M16.4285 22.5594C16.62 22.5583 16.7385 22.6714 16.8037 22.8295C16.9328 23.143 17.0536 23.4599 17.1631 23.7801C17.2355 23.9917 17.1311 24.1894 16.9306 24.2701C16.7469 24.3442 16.5335 24.2852 16.4482 24.0919C16.2966 23.7484 16.155 23.3975 16.0483 23.0383C15.9686 22.7688 16.1623 22.5533 16.4285 22.5589V22.5594Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M13.3312 13.7214C13.3053 13.9253 13.1981 14.0422 13.038 14.1146C12.8903 14.1814 12.6764 14.1363 12.6051 13.9798C12.4338 13.6045 12.2844 13.2175 12.1541 12.826C12.0991 12.6617 12.2428 12.4702 12.4063 12.4089C12.5596 12.3515 12.7668 12.3872 12.8415 12.5453C13.0234 12.9285 13.17 13.3283 13.3312 13.7214Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M11.6829 23.2752C11.6885 23.5291 11.5593 23.7006 11.3504 23.7441C11.1617 23.7836 10.968 23.6566 10.9146 23.4211C10.8371 23.0792 10.777 22.7322 10.7259 22.3853C10.6967 22.1887 10.8388 22.0044 11.0219 21.9576C11.2241 21.9058 11.4459 22.0128 11.4959 22.2299C11.5773 22.583 11.6256 22.9444 11.6829 23.2752Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M20.4902 12.1666C20.4981 11.8052 20.8081 11.6081 21.0518 11.7763C21.3747 11.9984 21.6751 12.2557 21.966 12.5186C22.1121 12.6505 22.0991 12.8555 21.9863 13.003C21.8644 13.1617 21.6471 13.2224 21.4763 13.0983C21.1692 12.8738 20.8788 12.6266 20.5935 12.3749C20.5262 12.3153 20.5065 12.2023 20.4902 12.1672V12.1666Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M15.048 11.5335C15.0356 11.3085 15.1131 11.1799 15.2692 11.1203C15.418 11.0635 15.5876 11.0657 15.6904 11.2021C15.9251 11.5146 16.1548 11.8331 16.3598 12.165C16.4654 12.3359 16.398 12.5247 16.2492 12.6355C16.102 12.7458 15.8791 12.7614 15.7634 12.6155C15.5129 12.3003 15.2928 11.9612 15.0659 11.6282C15.0401 11.5903 15.048 11.5301 15.0485 11.5335H15.048Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M10.3124 15.0128C10.3158 15.2244 10.1821 15.3998 9.9968 15.4343C9.77273 15.4755 9.58347 15.3803 9.53181 15.1498C9.45263 14.7939 9.39591 14.432 9.3521 14.07C9.32796 13.8706 9.46049 13.7158 9.63626 13.6768C9.86707 13.6256 10.0501 13.7097 10.108 13.9441C10.195 14.2978 10.2467 14.6608 10.3118 15.0128H10.3124Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M19.9979 18.5238C20.0552 18.4559 20.1203 18.3256 20.2265 18.2654C20.3601 18.1897 20.5454 18.1891 20.6476 18.3217C20.8925 18.6402 21.1261 18.9693 21.3367 19.3101C21.435 19.4694 21.3507 19.6749 21.2036 19.7745C21.0711 19.8642 20.847 19.8787 20.747 19.7512C20.4926 19.4254 20.2658 19.0785 20.0327 18.7365C20.0074 18.6992 20.0153 18.6391 19.9985 18.5238H19.9979Z\" fill=\"#2D2D2D\"\/>\n<\/svg>\n<\/span><span>Prysznic<\/span> <span><\/span><\/div><div class=\"facility\"><span class=\"facility-icon\"><svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<g clip-path=\"url(#clip0_380_2266)\">\n<path d=\"M19.7885 24.236V23.6782C19.7885 21.2814 19.7885 18.8847 19.7885 16.4871C19.7885 15.8229 19.8692 15.7397 20.5192 15.7389C21.5858 15.7381 22.6532 15.7389 23.7198 15.7389C23.8694 15.7389 24.0191 15.7389 24.2094 15.7389C24.2194 15.5352 24.2335 15.3731 24.2335 15.2118C24.2344 10.5705 24.2294 5.9291 24.2435 1.28774C24.2452 0.868748 24.1338 0.754024 23.7123 0.754855C19.3346 0.769819 14.9561 0.764 10.5784 0.765662C10.4155 0.765662 10.2526 0.780627 10.0406 0.790603C10.0406 0.985136 10.0406 1.14725 10.0406 1.30936C10.0406 3.98377 10.0406 6.65736 10.0406 9.33177C10.0406 9.45647 10.0813 9.60528 10.0273 9.70005C9.95079 9.8339 9.79034 10.0276 9.68975 10.0143C9.54926 9.99518 9.4096 9.82475 9.314 9.68758C9.26163 9.61193 9.30153 9.47227 9.30153 9.3617C9.30153 8.14213 9.30153 6.92338 9.30153 5.70381C9.30153 5.55583 9.30153 5.40785 9.30153 5.23577H0.797227V15.7148H9.3032C9.3032 15.0323 9.3032 14.3713 9.3032 13.7113C9.3032 13.5724 9.25914 13.4095 9.31733 13.3014C9.3963 13.1551 9.55508 13.0512 9.67895 12.9298C9.79949 13.0562 9.99485 13.1676 10.0239 13.3122C10.0796 13.5924 10.0414 13.8908 10.0422 14.1818C10.0422 15.6092 10.0389 17.0358 10.0447 18.4632C10.0456 18.7683 9.93582 18.9553 9.61161 18.9204C9.35141 18.8922 9.29987 18.696 9.30236 18.4632C9.30901 17.8405 9.30486 17.2187 9.30486 16.5569H0.795564C0.785588 16.6692 0.766468 16.7897 0.766468 16.9102C0.764806 19.2106 0.769794 21.51 0.759818 23.8104C0.758155 24.1246 0.837961 24.2443 1.1763 24.2426C3.73923 24.2302 6.30216 24.236 8.86593 24.2343C9.0006 24.2343 9.13527 24.2144 9.30403 24.2019C9.30403 23.5859 9.31068 23.0056 9.30153 22.4262C9.29654 22.1302 9.31068 21.811 9.68227 21.8185C10.0539 21.826 10.0489 22.1543 10.0447 22.4445C10.0372 23.0114 10.0422 23.5784 10.0422 24.236C10.3224 24.236 10.5759 24.2385 10.8303 24.236C11.4663 24.2277 12.1729 24.3848 12.719 24.1579C13.2652 23.9309 13.6526 23.3199 14.1073 22.8743C14.3941 22.5933 14.6743 22.3048 14.9586 22.0213C15.1506 21.8301 15.3651 21.6888 15.5962 21.9432C15.7966 22.1635 15.6993 22.3713 15.5114 22.5584C14.7649 23.3007 14.0284 24.0531 13.2702 24.783C13.1463 24.9019 12.9335 24.9875 12.7614 24.9884C8.68802 25 4.6146 24.995 0.542014 25.0008C0.147142 25.0008 0 24.8371 0 24.4505C0.00498786 17.9669 0.00332524 11.4824 0.00498786 4.998C0.00498786 4.53412 0.13301 4.42272 0.654241 4.42272C3.356 4.42106 6.05776 4.42272 8.75952 4.42272C8.92162 4.42272 9.08456 4.42272 9.30403 4.42272C9.30403 4.22652 9.30403 4.07854 9.30403 3.9314C9.30403 2.79496 9.31234 1.65935 9.29987 0.522912C9.29405 0.146315 9.44784 0 9.81528 0C14.7059 0.00498803 19.5965 0.00498803 24.4879 0C24.9011 0 25.0008 0.21116 25 0.576949C24.995 5.70298 24.9967 10.8298 24.9958 15.9559C24.9958 16.4131 24.8919 16.5145 24.4314 16.5162C23.1719 16.5195 21.9125 16.517 20.5783 16.517C20.5783 16.6983 20.5783 16.8562 20.5783 17.0142C20.5783 19.425 20.5783 21.8359 20.5783 24.2468C20.5783 24.931 20.5109 24.9967 19.8118 24.9967C18.7868 24.9967 17.7618 24.9917 16.7359 25C16.445 25.0025 16.1615 24.9534 16.1607 24.6192C16.1598 24.2826 16.4508 24.2343 16.7368 24.2352C17.7319 24.2385 18.7278 24.2368 19.7902 24.2368L19.7885 24.236Z\" fill=\"#2D2D2D\"\/>\n<\/g>\n<defs>\n<clipPath id=\"clip0_380_2266\">\n<rect width=\"25\" height=\"25\" fill=\"white\"\/>\n<\/clipPath>\n<\/defs>\n<\/svg>\n<\/span><span>27 m\u00b2<\/span><\/div><div class=\"facility\"><span class=\"facility-icon\"><svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<g clip-path=\"url(#clip0_380_2275)\">\n<path d=\"M21.2456 12.1875C21.2456 8.80078 21.2456 5.41407 21.2456 2.02836C21.2456 1.87773 21.2648 1.71497 21.2173 1.57748C21.1111 1.26913 20.8433 1.23779 20.5563 1.2388C19.2091 1.24386 17.862 1.24083 16.5138 1.24083C16.3955 1.24083 16.2783 1.23779 16.1601 1.24083C15.9933 1.24487 15.9124 1.17006 15.9165 0.999208C15.9205 0.830377 15.9236 0.661547 15.9124 0.493728C15.8872 0.107542 15.7649 -0.0259048 15.3707 0.00543495C14.634 0.0640706 13.8993 0.157079 13.1635 0.237955C11.977 0.367358 10.7896 0.494739 9.60307 0.629197C8.33271 0.772753 7.06437 0.925407 5.794 1.07301C5.30991 1.12962 4.82481 1.18421 4.3397 1.23476C3.90008 1.28025 3.76465 1.42482 3.75354 1.88076C3.7505 2.01522 3.75354 2.15069 3.75354 2.28515C3.75354 8.94029 3.75354 15.5954 3.75252 22.2506C3.75252 22.9502 3.84247 22.8622 3.13604 22.8662C2.34471 22.8713 1.55238 22.8662 0.761054 22.8673C0.64281 22.8673 0.523555 22.8582 0.408343 22.8774C0.153664 22.9198 0.00308068 23.0897 0.00105941 23.3131C-0.000961851 23.5406 0.142548 23.7053 0.403291 23.7508C0.518503 23.7711 0.638768 23.763 0.756001 23.763C1.53116 23.763 2.30631 23.7822 3.08046 23.7589C4.29827 23.7225 5.49586 23.9015 6.69852 24.044C7.78394 24.1724 8.87239 24.2735 9.95881 24.3948C11.2292 24.5364 12.4985 24.688 13.7679 24.8336C14.2853 24.8932 14.8028 24.963 15.3212 24.9984C15.778 25.0287 15.8922 24.9074 15.9135 24.4585C15.9357 23.9948 16.1867 23.763 16.6664 23.763C19.1758 23.763 21.6852 23.763 24.1956 23.763C24.3472 23.763 24.5038 23.7751 24.6473 23.7387C24.8555 23.6861 25.0041 23.5588 25 23.3111C24.997 23.0644 24.8444 22.9431 24.6382 22.8885C24.5109 22.8551 24.3714 22.8683 24.237 22.8673C23.3952 22.8662 22.5523 22.8673 21.7104 22.8662C21.2496 22.8652 21.2466 22.8622 21.2466 22.3992C21.2466 18.9963 21.2466 15.5924 21.2466 12.1895L21.2456 12.1875ZM15.0605 12.4999C15.0605 16.1707 15.0605 19.8425 15.0605 23.5133C15.0605 24.1249 15.0514 24.131 14.4389 24.0531C13.688 23.9581 12.9382 23.859 12.1873 23.7731C11.0857 23.6467 9.98206 23.5315 8.88047 23.4081C7.61112 23.2656 6.34277 23.1139 5.07241 22.9744C4.64592 22.9279 4.64491 22.939 4.63885 22.5043C4.63885 22.4366 4.63885 22.3699 4.63885 22.3021C4.63885 15.7683 4.63885 9.23448 4.63885 2.70065C4.63885 2.61674 4.63683 2.53182 4.63885 2.44791C4.64896 2.06274 4.64997 2.06779 5.02188 2.03039C5.69092 1.96265 6.35996 1.8929 7.02899 1.81707C8.16393 1.68767 9.29887 1.55321 10.4328 1.41977C11.1837 1.33181 11.9346 1.23982 12.6865 1.15388C13.3717 1.07604 14.0569 1.00628 14.7421 0.926418C14.9827 0.898112 15.0888 0.986065 15.0635 1.23375C15.0514 1.35001 15.0615 1.4693 15.0615 1.58759C15.0615 5.22502 15.0615 8.86245 15.0615 12.4999H15.0605ZM18.4168 13.4633C18.4168 16.3941 18.4168 19.3249 18.4168 22.2556C18.4168 22.3739 18.4087 22.4922 18.4168 22.6095C18.432 22.8117 18.3329 22.8693 18.1459 22.8662C17.6073 22.8592 17.0686 22.8673 16.5299 22.8632C15.8447 22.8582 15.9155 22.9502 15.9155 22.2395C15.9135 16.3951 15.9155 10.5507 15.9155 4.70538C15.9155 4.5871 15.9226 4.46882 15.9155 4.35155C15.9003 4.12813 16.0105 4.06241 16.2187 4.06545C16.7745 4.07353 17.3304 4.06545 17.8852 4.06848C18.4643 4.07151 18.4168 4.00681 18.4178 4.62046C18.4188 7.56842 18.4178 10.5154 18.4178 13.4633H18.4168ZM20.3612 12.5009C20.3612 15.7855 20.3612 19.0711 20.3612 22.3557C20.3612 22.8602 20.3582 22.8673 19.8832 22.8632C19.2021 22.8571 19.2667 22.9613 19.2667 22.2425C19.2647 16.2283 19.2667 10.2141 19.2657 4.1999C19.2657 4.04826 19.2728 3.8956 19.2617 3.74497C19.2334 3.34261 19.1434 3.25061 18.7281 3.24556C18.0378 3.23747 17.3465 3.25263 16.6563 3.2405C15.8255 3.22534 15.9236 3.43562 15.9114 2.43982C15.9094 2.23359 15.966 2.1335 16.1944 2.13451C17.4911 2.14159 18.7877 2.13957 20.0843 2.13553C20.2703 2.13553 20.3703 2.19315 20.3592 2.39332C20.3522 2.52778 20.3592 2.66325 20.3592 2.7977C20.3592 6.03176 20.3592 9.26683 20.3592 12.5009H20.3612Z\" fill=\"#2D2D2D\"\/>\n<path d=\"M13.2019 11.2348C12.4843 11.2348 11.9234 11.8019 11.9325 12.5167C11.9416 13.2122 12.4894 13.7592 13.1847 13.7662C13.9073 13.7743 14.4763 13.2223 14.4803 12.5096C14.4844 11.7979 13.9204 11.2348 13.2009 11.2358L13.2019 11.2348ZM13.1938 12.0799C13.403 12.0749 13.6102 12.2852 13.6092 12.5025C13.6092 12.7138 13.3919 12.9302 13.1908 12.9221C13.0048 12.914 12.8108 12.7158 12.7997 12.5238C12.7875 12.3054 12.9826 12.085 13.1938 12.0799Z\" fill=\"#2D2D2D\"\/>\n<\/g>\n<defs>\n<clipPath id=\"clip0_380_2275\">\n<rect width=\"25\" height=\"25\" fill=\"white\" transform=\"matrix(-1 0 0 1 25 0)\"\/>\n<\/clipPath>\n<\/defs>\n<\/svg>\n<\/span><span>Pokoje<\/span> <span>1<\/span><\/div>    <\/div>\n  \n  <!-- Domy\u015blny blok wszystkich udogodnie\u0144 -->\n  \n  \n  <\/div>\n\n<!-- FULLSCREEN MODAL -->\n<div id=\"fullscreenModal\" class=\"fullscreen-modal\">\n  <span class=\"close\">&times;<\/span>\n  <button class=\"fullscreen-prev\">&#10094;<\/button>\n  <img decoding=\"async\" id=\"fullscreenImage\" class=\"fullscreen-content\" src=\"\" alt=\"Pe\u0142ny ekran\" \/>\n  <button class=\"fullscreen-next\">&#10095;<\/button>\n<\/div>\n\n<!-- Swiper JS -->\n<script src=\"https:\/\/unpkg.com\/swiper\/swiper-bundle.min.js\"><\/script>\n<script>\ndocument.addEventListener('DOMContentLoaded', function(){\n  console.log('[Single Apartment Gallery] Initializing...');\n  const container = document.querySelector('.my-gallery-swiper');\n  console.log('[Single Apartment Gallery] Container found:', !!container, container);\n  if (!container) {\n    console.warn('[Single Apartment Gallery] Container not found, exiting');\n    return;\n  }\n  \n  const prevEl    = container.querySelector('.gallery-nav-prev');\n  const nextEl    = container.querySelector('.gallery-nav-next');\n  const modal     = document.getElementById('fullscreenModal');\n  console.log('[Single Apartment Gallery] Modal found:', !!modal, modal);\n  const imgFS     = document.getElementById('fullscreenImage');\n  const closeBtn  = modal ? modal.querySelector('.close') : null;\n  const pBtn      = modal ? modal.querySelector('.fullscreen-prev') : null;\n  const nBtn      = modal ? modal.querySelector('.fullscreen-next') : null;\n\n  console.log('[Single Apartment Gallery] Elements:', {\n    prevEl: !!prevEl,\n    nextEl: !!nextEl,\n    modal: !!modal,\n    imgFS: !!imgFS,\n    closeBtn: !!closeBtn,\n    pBtn: !!pBtn,\n    nBtn: !!nBtn\n  });\n\n  \/\/ 0. Pre-deklarujemy zmienn\u0105, \u017ceby handler mia\u0142 do niej dost\u0119p\n  let currentIdx = 0;\n  let keyHandler = null;\n\n  \/\/ 1. Lista oryginalnych URL-i (bez klon\u00f3w Swipera)\n  const urls = [\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923143710_uPtUvQ.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923144556_Qst8KI.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923143710_ARuAUF.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923143710_0nqorN.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216192849_VStMQH.jpg\"];\n\n  \/\/ Funkcja do aktualizacji pozycji przycisk\u00f3w\n  function updateNav(swiperInstance) {\n    if (!swiperInstance || !swiperInstance.slides || swiperInstance.slides.length === 0) {\n      console.log('[Single Apartment Gallery] Swiper not ready yet');\n      return;\n    }\n    const active   = swiperInstance.slides[swiperInstance.activeIndex];\n    const aRect    = active.getBoundingClientRect();\n    const cRect    = container.getBoundingClientRect();\n    const halfW    = prevEl.offsetWidth \/ 2;\n    \/\/ 10px margines mi\u0119dzy slajdem a przyciskiem\n    prevEl.style.left = (aRect.left - cRect.left - 10 - halfW) + 'px';\n    nextEl.style.left = (aRect.right - cRect.left + 10 - halfW) + 'px';\n  }\n\n  \/\/ 2. Inicjalizacja Swipera z naszymi przyciskami\n  const swiper = new Swiper(container, {\n    slidesPerView: 'auto',\n    centeredSlides: true,\n    spaceBetween: 20,\n    loop: true,\n    loopedSlides: <br \/>\n<b>Warning<\/b>:  Undefined variable $totalSlides in <b>\/home\/platne\/serwer321157\/public_html\/boulevard\/wp-content\/plugins\/previo-apartamenty-boulevard\/templates\/single-apartment-view.php<\/b> on line <b>508<\/b><br \/>\n,\n    roundLengths: true,\n    speed: 500,\n    navigation: { prevEl, nextEl },\n    on: {\n      init: function() {\n        \/\/ U\u017cywamy 'this' zamiast 'swiper' - Swiper przekazuje siebie jako this\n        updateNav(this);\n      },\n      slideChangeTransitionEnd: function() {\n        updateNav(this);\n      },\n      resize: function() {\n        updateNav(this);\n      }\n    }\n  });\n  swiper.init();\n  \n  \/\/ Wywo\u0142ujemy te\u017c po utworzeniu, na wypadek gdyby init nie zadzia\u0142a\u0142\n  setTimeout(() => {\n    updateNav(swiper);\n  }, 100);\n\n  \/\/ Aktualizacja modala\n  function updateModal() {\n    imgFS.src = urls[currentIdx];\n  }\n\n  \/\/ 3. Delegacja klikni\u0119cia: z\u0142apiemy ka\u017cde <img class=\"slide-image\">\n  container.addEventListener('click', e => {\n    console.log('[Single Apartment Gallery] Click detected:', e.target, e.target.classList);\n    if (!e.target.classList.contains('slide-image')) {\n      console.log('[Single Apartment Gallery] Not a slide-image, ignoring');\n      return;\n    }\n    console.log('[Single Apartment Gallery] Opening modal...');\n    const clickedImg = e.target;\n    const idx = parseInt(clickedImg.dataset.index, 10);\n    console.log('[Single Apartment Gallery] Index:', idx);\n    if (isNaN(idx)) {\n      console.error('[Single Apartment Gallery] Invalid index!');\n      return;\n    }\n    currentIdx = idx;\n    updateModal();\n    console.log('[Single Apartment Gallery] Modal classes before:', modal.className);\n    modal.classList.add('active');\n    console.log('[Single Apartment Gallery] Modal classes after:', modal.className);\n    console.log('[Single Apartment Gallery] Modal display style:', window.getComputedStyle(modal).display);\n    document.body.style.overflow = 'hidden';\n    \n    \/\/ Dodajemy handler klawiatury\n    keyHandler = function(e) {\n      if (e.key === 'Escape') {\n        closeModal();\n      } else if (e.key === 'ArrowLeft') {\n        e.preventDefault();\n        pBtn.click();\n      } else if (e.key === 'ArrowRight') {\n        e.preventDefault();\n        nBtn.click();\n      }\n    };\n    document.addEventListener('keydown', keyHandler);\n  });\n\n  \/\/ 4. Sterowanie modalem\n  function closeModal() {\n    console.log('[Single Apartment Gallery] Closing modal...');\n    modal.classList.remove('active');\n    document.body.style.overflow = '';\n    if (keyHandler) {\n      document.removeEventListener('keydown', keyHandler);\n      keyHandler = null;\n    }\n  }\n  \n  closeBtn.addEventListener('click', closeModal);\n  pBtn.addEventListener('click', e => {\n    e.stopPropagation();\n    currentIdx = (currentIdx - 1 + urls.length) % urls.length;\n    updateModal();\n  });\n  nBtn.addEventListener('click', e => {\n    e.stopPropagation();\n    currentIdx = (currentIdx + 1) % urls.length;\n    updateModal();\n  });\n  \/\/ klik poza obraz \u2192 zamknij\n  modal.addEventListener('click', e => {\n    if (e.target === modal) closeModal();\n  });\n});\n<\/script>\n\n<\/div>\n                <\/div>\n              <\/div>\n              <div class=\"u-container-style u-layout-cell u-size-30 u-layout-cell-2\">\n                <div class=\"u-container-layout u-container-layout-2\">\n                  <div class=\"custom-expanded u-shortcode u-shortcode-2\">\n<!-- FontAwesome -->\n<script src=\"https:\/\/kit.fontawesome.com\/d379bdf33c.js\" crossorigin=\"anonymous\"><\/script>\n<!-- Swiper CSS -->\n<link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/swiper\/swiper-bundle.min.css\"\/>\n\n<style>\n\/* ---------- PODSTAWOWE ---------- *\/\n.apartment-view { margin:0 auto; }\n.apartment-view h2 { font-size:28px; margin-bottom:10px; }\n.apartment-view p  { line-height:1.6; }\n.apartment-view .location { margin:10px 0; font-size:16px; color:#555; }\n.apartment-view .facilities { display:grid; grid-template-columns:repeat(6,1fr); row-gap:20px; }\n.apartment-view .facility   { display:flex; align-items:center; gap:10px; padding:10px 0; }\n.apartment-view .facility span   { font-weight: bold; }\n.apartment-view .facility i { color:#2D2D2D; font-size:1.2em; }\n.apartment-view .facility svg { width:25px; height:25px; fill:#2D2D2D; }\n.apartment-view .rate { color:#8D8B55; font-size:48px; background:#D9D3C7; padding-block:10px; text-align:center; }\n\n\/* ---------- SWIPER + PEEK ---------- *\/\n.my-gallery-swiper {\n  --slide-w: 600px;\n  width: 800px;\n  height: 450px;\n  margin: 20px auto;\n  overflow: visible;\n  position: relative;\n}\n.my-gallery-swiper .swiper-wrapper {\n  display: flex;\n  align-items: center;\n  overflow: visible !important;\n}\n.my-gallery-swiper .swiper-slide {\n  width: var(--slide-w) !important;\n  height: 100% !important;\n  flex-shrink: 0;\n}\n.slide-image {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  cursor: pointer;\n}\n\n.gallery-nav-btn {\n        display: flex;\n        position: absolute;\n        top: 50%;\n        transform: translateY(-50%);\n        width: 44px;\n        height: 44px;\n        border: none;\n        border-radius: 50%;\n        color: #fff;\n        font-size: 24px;\n        align-items: center;\n        justify-content: center;\n        cursor: pointer;\n        z-index: 20;\n      }\n      .gallery-nav-prev { background: #8D8B55; left: 0 }\n      .gallery-nav-next { background: #25281B; right: 0}\n\n\/* nasze przyciski zamiast domy\u015blnych Swiper *\/\n.swiper-button-prev,\n.swiper-button-next {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 44px;\n  height: 44px;\n  border: none;\n  border-radius: 50%;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  font-size: 24px;\n  color: #fff;\n  cursor: pointer;\n  z-index: 10;\n  background-repeat: no-repeat;\n  background-position: center;\n}\n.swiper-button-prev::after,\n.swiper-button-next::after {\n  content: none;\n}\n.swiper-button-prev {\n  background-color: #8D8B55;\n}\n.swiper-button-next {\n  background-color: #25281B;\n}\n\n.previo-desc { line-height:1.9 !important; }\n\n\/* ---------- MOBILE (<768px) ---------- *\/\n@media (max-width:768px) {\n  .my-gallery-swiper {\n    width: 100%;\n    height: auto;\n    flex-direction: column;\n    overflow: hidden;\n  }\n  .my-gallery-swiper .swiper-slide {\n    width: calc(100% - 30px) !important;\n    height: auto !important;\n    max-height: 450px;\n  }\n  .slide-image { height: auto; }\n  .swiper-button-prev,\n  .swiper-button-next {\n    position: static;\n    margin: 10px;\n    font-size: 1.5em;\n    transform: none;\n  }\n  .apartment-view .facilities { display:grid; grid-template-columns:repeat(2,1fr); row-gap:20px; }\n  .apartment-view .rate       { font-size:21px; }\n}\n\n\/* ---------- MOBILE (<450px) ---------- *\/\n@media (max-width:450px) {\n  .apartment-view .facilities { display:grid; grid-template-columns:repeat(1,1fr); row-gap:20px; }\n  .apartment-view .facility { justify-content:center; }\n}\n\n\/* ---------- FULLSCREEN MODAL ---------- *\/\n.fullscreen-modal {\n  display:none;\n  position:fixed;\n  inset:0;\n  background:rgba(0,0,0,0.95);\n  align-items:center;\n  justify-content:center;\n  z-index:100001;\n  flex-direction:column;\n}\n.fullscreen-modal.active { display:flex; }\n.fullscreen-content { width:70%; height:100%; object-fit:contain; object-position:center; }\n.fullscreen-prev,\n.fullscreen-next {\n  position:absolute;\n  top:50%;\n  transform:translateY(-50%);\n  background:rgba(255,255,255,0.2);\n  border:none;\n  color:#fff;\n  font-size:40px;\n  width:60px;\n  height:60px;\n  border-radius:50%;\n  cursor:pointer;\n  z-index:10000;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  transition:background 0.3s;\n}\n.fullscreen-prev:hover,\n.fullscreen-next:hover {\n  background:rgba(255,255,255,0.4);\n}\n.fullscreen-prev { left:30px; }\n.fullscreen-next { right:30px; }\n.fullscreen-modal .close {\n  position:absolute;\n  top:30px;\n  right:30px;\n  color:#fff;\n  font-size:50px;\n  cursor:pointer;\n  z-index:10000;\n  width:50px;\n  height:50px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  background:rgba(0,0,0,0.5);\n  border-radius:50%;\n  transition:background 0.3s;\n}\n.fullscreen-modal .close:hover {\n  background:rgba(0,0,0,0.8);\n}\n@media screen and (max-width:767px) {\n  .fullscreen-prev,\n  .fullscreen-next {\n    width:45px;\n    height:45px;\n    font-size:30px;\n  }\n  .fullscreen-prev { left:10px; }\n  .fullscreen-next { right:10px; }\n  .fullscreen-modal .close {\n    top:15px;\n    right:15px;\n    font-size:40px;\n    width:40px;\n    height:40px;\n  }\n}\n<\/style>\n\n<div class=\"apartment-view\">\n  \n      <p class=\"previo-desc\">Pok\u00f3j z \u0142azienk\u0105 stanowi\u0105cy podstawow\u0105 ofert\u0119 Boulevard Drobnera Residence. Najmniejsza jednostka, ale nie odst\u0119puj\u0105ca jako\u015bci\u0105 i stylem od wi\u0119kszych apartament\u00f3w. Panoramiczne okna z widokiem na Odr\u0119 oraz wysp\u0119 S\u0142odow\u0105.<\/p>\n  \n    \n  <!-- Nowy blok: wy\u015bwietlanie tylko wybranych udogodnie\u0144 -->\n  \n  <!-- Domy\u015blny blok wszystkich udogodnie\u0144 -->\n  \n  \n  <\/div>\n\n<!-- FULLSCREEN MODAL -->\n<div id=\"fullscreenModal\" class=\"fullscreen-modal\">\n  <span class=\"close\">&times;<\/span>\n  <button class=\"fullscreen-prev\">&#10094;<\/button>\n  <img decoding=\"async\" id=\"fullscreenImage\" class=\"fullscreen-content\" src=\"\" alt=\"Pe\u0142ny ekran\" \/>\n  <button class=\"fullscreen-next\">&#10095;<\/button>\n<\/div>\n\n<!-- Swiper JS -->\n<script src=\"https:\/\/unpkg.com\/swiper\/swiper-bundle.min.js\"><\/script>\n<script>\ndocument.addEventListener('DOMContentLoaded', function(){\n  console.log('[Single Apartment Gallery] Initializing...');\n  const container = document.querySelector('.my-gallery-swiper');\n  console.log('[Single Apartment Gallery] Container found:', !!container, container);\n  if (!container) {\n    console.warn('[Single Apartment Gallery] Container not found, exiting');\n    return;\n  }\n  \n  const prevEl    = container.querySelector('.gallery-nav-prev');\n  const nextEl    = container.querySelector('.gallery-nav-next');\n  const modal     = document.getElementById('fullscreenModal');\n  console.log('[Single Apartment Gallery] Modal found:', !!modal, modal);\n  const imgFS     = document.getElementById('fullscreenImage');\n  const closeBtn  = modal ? modal.querySelector('.close') : null;\n  const pBtn      = modal ? modal.querySelector('.fullscreen-prev') : null;\n  const nBtn      = modal ? modal.querySelector('.fullscreen-next') : null;\n\n  console.log('[Single Apartment Gallery] Elements:', {\n    prevEl: !!prevEl,\n    nextEl: !!nextEl,\n    modal: !!modal,\n    imgFS: !!imgFS,\n    closeBtn: !!closeBtn,\n    pBtn: !!pBtn,\n    nBtn: !!nBtn\n  });\n\n  \/\/ 0. Pre-deklarujemy zmienn\u0105, \u017ceby handler mia\u0142 do niej dost\u0119p\n  let currentIdx = 0;\n  let keyHandler = null;\n\n  \/\/ 1. Lista oryginalnych URL-i (bez klon\u00f3w Swipera)\n  const urls = [\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923143710_uPtUvQ.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923144556_Qst8KI.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923143710_ARuAUF.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923143710_0nqorN.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216192849_VStMQH.jpg\"];\n\n  \/\/ Funkcja do aktualizacji pozycji przycisk\u00f3w\n  function updateNav(swiperInstance) {\n    if (!swiperInstance || !swiperInstance.slides || swiperInstance.slides.length === 0) {\n      console.log('[Single Apartment Gallery] Swiper not ready yet');\n      return;\n    }\n    const active   = swiperInstance.slides[swiperInstance.activeIndex];\n    const aRect    = active.getBoundingClientRect();\n    const cRect    = container.getBoundingClientRect();\n    const halfW    = prevEl.offsetWidth \/ 2;\n    \/\/ 10px margines mi\u0119dzy slajdem a przyciskiem\n    prevEl.style.left = (aRect.left - cRect.left - 10 - halfW) + 'px';\n    nextEl.style.left = (aRect.right - cRect.left + 10 - halfW) + 'px';\n  }\n\n  \/\/ 2. Inicjalizacja Swipera z naszymi przyciskami\n  const swiper = new Swiper(container, {\n    slidesPerView: 'auto',\n    centeredSlides: true,\n    spaceBetween: 20,\n    loop: true,\n    loopedSlides: <br \/>\n<b>Warning<\/b>:  Undefined variable $totalSlides in <b>\/home\/platne\/serwer321157\/public_html\/boulevard\/wp-content\/plugins\/previo-apartamenty-boulevard\/templates\/single-apartment-view.php<\/b> on line <b>508<\/b><br \/>\n,\n    roundLengths: true,\n    speed: 500,\n    navigation: { prevEl, nextEl },\n    on: {\n      init: function() {\n        \/\/ U\u017cywamy 'this' zamiast 'swiper' - Swiper przekazuje siebie jako this\n        updateNav(this);\n      },\n      slideChangeTransitionEnd: function() {\n        updateNav(this);\n      },\n      resize: function() {\n        updateNav(this);\n      }\n    }\n  });\n  swiper.init();\n  \n  \/\/ Wywo\u0142ujemy te\u017c po utworzeniu, na wypadek gdyby init nie zadzia\u0142a\u0142\n  setTimeout(() => {\n    updateNav(swiper);\n  }, 100);\n\n  \/\/ Aktualizacja modala\n  function updateModal() {\n    imgFS.src = urls[currentIdx];\n  }\n\n  \/\/ 3. Delegacja klikni\u0119cia: z\u0142apiemy ka\u017cde <img class=\"slide-image\">\n  container.addEventListener('click', e => {\n    console.log('[Single Apartment Gallery] Click detected:', e.target, e.target.classList);\n    if (!e.target.classList.contains('slide-image')) {\n      console.log('[Single Apartment Gallery] Not a slide-image, ignoring');\n      return;\n    }\n    console.log('[Single Apartment Gallery] Opening modal...');\n    const clickedImg = e.target;\n    const idx = parseInt(clickedImg.dataset.index, 10);\n    console.log('[Single Apartment Gallery] Index:', idx);\n    if (isNaN(idx)) {\n      console.error('[Single Apartment Gallery] Invalid index!');\n      return;\n    }\n    currentIdx = idx;\n    updateModal();\n    console.log('[Single Apartment Gallery] Modal classes before:', modal.className);\n    modal.classList.add('active');\n    console.log('[Single Apartment Gallery] Modal classes after:', modal.className);\n    console.log('[Single Apartment Gallery] Modal display style:', window.getComputedStyle(modal).display);\n    document.body.style.overflow = 'hidden';\n    \n    \/\/ Dodajemy handler klawiatury\n    keyHandler = function(e) {\n      if (e.key === 'Escape') {\n        closeModal();\n      } else if (e.key === 'ArrowLeft') {\n        e.preventDefault();\n        pBtn.click();\n      } else if (e.key === 'ArrowRight') {\n        e.preventDefault();\n        nBtn.click();\n      }\n    };\n    document.addEventListener('keydown', keyHandler);\n  });\n\n  \/\/ 4. Sterowanie modalem\n  function closeModal() {\n    console.log('[Single Apartment Gallery] Closing modal...');\n    modal.classList.remove('active');\n    document.body.style.overflow = '';\n    if (keyHandler) {\n      document.removeEventListener('keydown', keyHandler);\n      keyHandler = null;\n    }\n  }\n  \n  closeBtn.addEventListener('click', closeModal);\n  pBtn.addEventListener('click', e => {\n    e.stopPropagation();\n    currentIdx = (currentIdx - 1 + urls.length) % urls.length;\n    updateModal();\n  });\n  nBtn.addEventListener('click', e => {\n    e.stopPropagation();\n    currentIdx = (currentIdx + 1) % urls.length;\n    updateModal();\n  });\n  \/\/ klik poza obraz \u2192 zamknij\n  modal.addEventListener('click', e => {\n    if (e.target === modal) closeModal();\n  });\n});\n<\/script>\n\n<\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n    <section class=\"u-clearfix u-image u-section-6\" id=\"sec-e1ae\" style=\"background-image: url(&quot;https:\/\/boulevard-drobnera.com\/wp-content\/uploads\/2026\/02\/test-2.png&quot;);\">\n      <div class=\"u-clearfix u-sheet u-sheet-1\">\n        <div class=\"data-layout-selected u-clearfix u-expanded-width u-layout-wrap u-layout-wrap-1\" data-custom-animation=\"{&quot;animation&quot;:{&quot;XXL&quot;:{&quot;steps&quot;:[],&quot;hidden&quot;:false,&quot;start&quot;:{&quot;at&quot;:&quot;bottom&quot;,&quot;off&quot;:0},&quot;end&quot;:{&quot;at&quot;:&quot;top&quot;,&quot;off&quot;:0}},&quot;XL&quot;:{&quot;steps&quot;:[{&quot;dist&quot;:0.5,&quot;skip&quot;:0,&quot;blur&quot;:0,&quot;sticky&quot;:false,&quot;fixed&quot;:true,&quot;mx&quot;:0,&quot;my&quot;:0,&quot;op&quot;:0,&quot;rot&quot;:0,&quot;sx&quot;:1,&quot;sy&quot;:1,&quot;bgy&quot;:0}],&quot;hidden&quot;:false,&quot;start&quot;:{&quot;at&quot;:&quot;top&quot;,&quot;off&quot;:0},&quot;end&quot;:{&quot;at&quot;:&quot;top&quot;,&quot;off&quot;:0}},&quot;LG&quot;:{&quot;steps&quot;:[],&quot;hidden&quot;:false,&quot;start&quot;:{&quot;at&quot;:&quot;bottom&quot;,&quot;off&quot;:0},&quot;end&quot;:{&quot;at&quot;:&quot;top&quot;,&quot;off&quot;:0}},&quot;MD&quot;:{&quot;steps&quot;:[],&quot;hidden&quot;:false,&quot;start&quot;:{&quot;at&quot;:&quot;bottom&quot;,&quot;off&quot;:0},&quot;end&quot;:{&quot;at&quot;:&quot;top&quot;,&quot;off&quot;:0}},&quot;SM&quot;:{&quot;steps&quot;:[],&quot;hidden&quot;:true,&quot;start&quot;:{&quot;at&quot;:&quot;bottom&quot;,&quot;off&quot;:0},&quot;end&quot;:{&quot;at&quot;:&quot;top&quot;,&quot;off&quot;:0}},&quot;XS&quot;:{&quot;steps&quot;:[],&quot;hidden&quot;:true,&quot;start&quot;:{&quot;at&quot;:&quot;bottom&quot;,&quot;off&quot;:0},&quot;end&quot;:{&quot;at&quot;:&quot;top&quot;,&quot;off&quot;:0}}},&quot;container&quot;:&quot;&quot;}\">\n          <div class=\"u-layout\">\n            <div class=\"u-layout-row\">\n              <div class=\"u-size-30-lg u-size-30-xl u-size-60-md u-size-60-sm u-size-60-xs\">\n                <div class=\"u-layout-col\">\n                  <div class=\"u-container-align-center u-container-style u-image u-layout-cell u-size-30 u-image-1\" data-image-width=\"672\" data-image-height=\"422\" style=\"background-image: url(&quot;https:\/\/boulevard-drobnera.com\/wp-content\/uploads\/2026\/02\/E5D9FE7F-2F55-4AB7-AD5A-F4DF83684330-2.png&quot;);\">\n                    <div class=\"u-container-layout u-container-layout-1\"><\/div>\n                  <\/div>\n                  <div class=\"u-container-style u-layout-cell u-size-30 u-layout-cell-2\">\n                    <div class=\"u-container-layout u-valign-top u-container-layout-2\">\n                      <h2 class=\"u-text u-text-black u-text-default u-text-1\" data-animation-name=\"customAnimationIn\" data-animation-duration=\"1000\" data-animation-delay=\"0\" data-animation-out=\"0\"> Wygodne miejsce do wypoczynku<\/h2>\n                      <p class=\"u-text u-text-black u-text-default u-text-2\"> W apartamencie znajduje si\u0119 wygodne, rozk\u0142adane ze \u015bciany \u0142\u00f3\u017cko Murphy , kt\u00f3re oszcz\u0119dza miejsce, daj\u0105c jednocze\u015bnie pe\u0142n\u0105 wygod\u0119 snu. To idealne rozwi\u0105zanie dla singli lub par, kt\u00f3re szukaj\u0105 funkcjonalno\u015bci i komfortu. \u200bTo doskona\u0142y wyb\u00f3r zar\u00f3wno na pobyt biznesowy, jak i romantyczny city break, a ten widok sprawia Studio idealnie kameralnym miejscem do pracy i wypoczynku.<\/p>\n                    <\/div>\n                  <\/div>\n                <\/div>\n              <\/div>\n              <div class=\"u-size-30-lg u-size-30-xl u-size-60-md u-size-60-sm u-size-60-xs\">\n                <div class=\"u-layout-col\">\n                  <div class=\"u-container-style u-layout-cell u-size-30 u-layout-cell-3\">\n                    <div class=\"u-container-layout u-valign-top u-container-layout-3\">\n                      <h2 class=\"u-text u-text-black u-text-default u-text-3\" data-animation-name=\"customAnimationIn\" data-animation-duration=\"1000\" data-animation-delay=\"0\" data-animation-out=\"0\"> Apartament typu Studio<\/h2>\n                      <p class=\"u-text u-text-black u-text-default u-text-4\"> Kompaktowe i funkcjonalne studio o powierzchni oko\u0142o 27 m\u00b2 to idealne rozwi\u0105zanie dla os\u00f3b ceni\u0105cych praktyczne i nowoczesne wn\u0119trza. Po\u0142o\u017cone przy widoku na Odr\u0119, oferuj\u0105 komfortow\u0105 przestrze\u0144 z jasnym, naturalnym \u015bwiat\u0142em.<\/p>\n                    <\/div>\n                  <\/div>\n                  <div class=\"u-container-align-center u-container-style u-image u-layout-cell u-size-30 u-image-2\" data-image-width=\"678\" data-image-height=\"462\" style=\"background-image: url(&quot;https:\/\/boulevard-drobnera.com\/wp-content\/uploads\/2026\/02\/79065E09-7D16-48EF-9458-A05CB47B1603-2.png&quot;);\">\n                    <div class=\"u-container-layout u-container-layout-4\"><\/div>\n                  <\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n    <section class=\"u-clearfix u-image u-section-7\" id=\"sec-6c3d\" style=\"background-image: url(&quot;https:\/\/boulevard-drobnera.com\/wp-content\/uploads\/2026\/02\/test2-2.png&quot;);\">\n      <div class=\"u-clearfix u-sheet u-valign-middle-lg u-valign-middle-xl u-sheet-1\">\n        <div class=\"data-layout-selected u-clearfix u-expanded-width u-layout-wrap u-layout-wrap-1\" data-custom-animation=\"{&quot;animation&quot;:{&quot;XXL&quot;:{&quot;steps&quot;:[],&quot;hidden&quot;:false,&quot;start&quot;:{&quot;at&quot;:&quot;bottom&quot;,&quot;off&quot;:0},&quot;end&quot;:{&quot;at&quot;:&quot;top&quot;,&quot;off&quot;:0}},&quot;XL&quot;:{&quot;steps&quot;:[{&quot;dist&quot;:0.5,&quot;skip&quot;:0,&quot;blur&quot;:0,&quot;sticky&quot;:true,&quot;fixed&quot;:false,&quot;mx&quot;:0,&quot;my&quot;:0,&quot;op&quot;:0,&quot;rot&quot;:0,&quot;sx&quot;:1,&quot;sy&quot;:1,&quot;bgy&quot;:0}],&quot;hidden&quot;:false,&quot;start&quot;:{&quot;at&quot;:&quot;top&quot;,&quot;off&quot;:0},&quot;end&quot;:{&quot;at&quot;:&quot;top&quot;,&quot;off&quot;:0}},&quot;LG&quot;:{&quot;steps&quot;:[],&quot;hidden&quot;:false,&quot;start&quot;:{&quot;at&quot;:&quot;bottom&quot;,&quot;off&quot;:0},&quot;end&quot;:{&quot;at&quot;:&quot;top&quot;,&quot;off&quot;:0}},&quot;MD&quot;:{&quot;steps&quot;:[],&quot;hidden&quot;:false,&quot;start&quot;:{&quot;at&quot;:&quot;bottom&quot;,&quot;off&quot;:0},&quot;end&quot;:{&quot;at&quot;:&quot;top&quot;,&quot;off&quot;:0}},&quot;SM&quot;:{&quot;steps&quot;:[],&quot;hidden&quot;:true,&quot;start&quot;:{&quot;at&quot;:&quot;bottom&quot;,&quot;off&quot;:0},&quot;end&quot;:{&quot;at&quot;:&quot;top&quot;,&quot;off&quot;:0}},&quot;XS&quot;:{&quot;steps&quot;:[],&quot;hidden&quot;:true,&quot;start&quot;:{&quot;at&quot;:&quot;bottom&quot;,&quot;off&quot;:0},&quot;end&quot;:{&quot;at&quot;:&quot;top&quot;,&quot;off&quot;:0}}},&quot;container&quot;:&quot;&quot;}\">\n          <div class=\"u-layout\">\n            <div class=\"u-layout-row\">\n              <div class=\"u-size-30-lg u-size-30-xl u-size-60-md u-size-60-sm u-size-60-xs\">\n                <div class=\"u-layout-col\">\n                  <div class=\"u-container-align-center-xs u-container-style u-layout-cell u-size-30 u-layout-cell-1\">\n                    <div class=\"u-container-layout u-container-layout-1\">\n                      <h2 class=\"u-text u-text-black u-text-default u-text-1\" data-animation-name=\"customAnimationIn\" data-animation-duration=\"1000\" data-animation-delay=\"0\" data-animation-out=\"0\"> Balkon z widokiem na Odr\u0119<\/h2>\n                      <p class=\"u-text u-text-black u-text-default u-text-2\"> Wi\u0119kszo\u015b\u0107 mieszka\u0144 posiada w\u0105ski balkon, kt\u00f3ry pozwala cieszy\u0107 si\u0119 \u015bwie\u017cym powietrzem i widokiem na malownicz\u0105 Odr\u0119, tworz\u0105c przyjemn\u0105 przestrze\u0144 do relaksu.<\/p>\n                    <\/div>\n                  <\/div>\n                  <div class=\"u-container-style u-layout-cell u-size-30 u-layout-cell-2\">\n                    <div class=\"u-container-layout u-container-layout-2\">\n                      <h2 class=\"u-text u-text-black u-text-default u-text-3\" data-animation-name=\"customAnimationIn\" data-animation-duration=\"1000\" data-animation-delay=\"0\" data-animation-out=\"0\"> W pe\u0142ni wyposa\u017cony aneks kuchenny<\/h2>\n                      <p class=\"u-text u-text-black u-text-default u-text-4\"> Ka\u017cde studio wyposa\u017cone jest w praktyczny, nowoczesny aneks kuchenny, umo\u017cliwiaj\u0105cy samodzielne przygotowywanie posi\u0142k\u00f3w, co podnosi komfort i niezale\u017cno\u015b\u0107 pobytu.<\/p>\n                    <\/div>\n                  <\/div>\n                <\/div>\n              <\/div>\n              <div class=\"u-size-30-lg u-size-30-xl u-size-60-md u-size-60-sm u-size-60-xs\">\n                <div class=\"u-layout-col\">\n                  <div class=\"u-container-align-center u-container-style u-image u-layout-cell u-size-60 u-image-1\" data-image-width=\"668\" data-image-height=\"654\" style=\"background-image: url(&quot;https:\/\/boulevard-drobnera.com\/wp-content\/uploads\/2026\/02\/4A400C86-67A8-46FE-9DF3-B7438485CF59-2.png&quot;);\">\n                    <div class=\"u-container-layout u-container-layout-3\"><\/div>\n                  <\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n    <section class=\"u-clearfix u-section-8\" id=\"block-12\">\n      <div class=\"u-clearfix u-sheet u-sheet-1\">\n        <a href=\"\/rezerwacja\/?lang=pl&amp;arrival=&amp;departure=&amp;numberOfAdults=&amp;highlightRoomType=961183\" class=\"u-align-center-md u-align-center-sm u-align-center-xs u-border-none u-btn u-button-style u-hover-feature u-hover-palette-2-dark-1 u-text-white u-palette-1-base u-btn-1\" target=\"_blank\">Zarezerwuj sw\u00f3j pobyt <\/a>\n      <\/div>\n      \n    <\/section>\n    <section class=\"u-clearfix u-custom-color-2 u-section-9\" id=\"sec-32a3\">\n      <div class=\"u-clearfix u-sheet u-sheet-1\">\n        <h4 class=\"u-align-center u-text u-text-white u-text-1\">\n          <span class=\"u-file-icon u-icon u-icon-1\"><img decoding=\"async\" src=\"https:\/\/boulevard-drobnera.com\/wp-content\/uploads\/2026\/02\/strzalka-naglowek-2-2.png\" alt=\"\"><\/span> Apartamenty<span class=\"u-file-icon u-icon u-icon-2\"><img decoding=\"async\" src=\"https:\/\/boulevard-drobnera.com\/wp-content\/uploads\/2026\/02\/strzalka-naglowek-odwrot-2-2.png\" alt=\"\"><\/span>\n        <\/h4>\n        <h2 class=\"u-align-center u-text u-text-white u-text-2\">Znajd\u017a co\u015b dla siebie!<\/h2>\n      <\/div>\n    <\/section>\n    <section class=\"u-clearfix u-custom-color-12 u-section-10\" id=\"sec-aa8f\">\n      <div class=\"u-expanded-width u-shortcode u-shortcode-1\">\n  \n<!-- Swiper CSS & JS -->\n<link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/swiper\/swiper-bundle.min.css\"\/>\n<script src=\"https:\/\/unpkg.com\/swiper\/swiper-bundle.min.js\"><\/script>\n\n<style>\n  \/* \u2014\u2014\u2014\u2014\u2014 kontener i podstawowe style \u2014\u2014\u2014\u2014\u2014 *\/\n  .apc-wrapper {\n    color: #fff;\n    background: #363A2A;\n    padding: 40px 0;\n    max-width: 1350px;\n    margin: auto;\n  }\n\n  .swiper-button-prev{\n    color: #fff;\n    background: red;\n    border-radius: 50%;\n\n    font-size: 12px;\n  }\n  .apc-filters {\n    text-align: center;\n    margin-bottom: 30px;\n  }\n  .apc-filters button {\n    background: transparent;\n    border: 1.5px solid #fff;\n    font-size: 12px;\n    color: #E5DFDA;\n    padding: 4px 24px;\n    margin: 0 6px;\n    border-radius: 50px;\n    cursor: pointer;\n  }\n  .apc-filters button.active {\n    background: #646541;\n    border: 1.5px solid #8D8B55;\n    color: #E5DFDA;\n  }\n\n  .apc-content {\n    display: flex;\n    gap: 20px;\n    flex-wrap: wrap;\n    align-items: center;\n    justify-content: center;\n    transition: opacity 0.4s ease, transform 0.4s ease;\n  }\n .apc-content.transition-exit-next {\n   opacity: 0;\n   transform: translateX(-20px);\n }\n .apc-content.transition-exit-prev {\n   opacity: 0;\n   transform: translateX(20px);\n }\n\n .apc-content.transition-exit-fade {\n   opacity: 0;\n   transform: translateX(0);\n }\n \/* enter ten sam co dla slide, bo translateX(0) = brak przesuni\u0119cia *\/\n .apc-content.transition-enter {\n   opacity: 1;\n   transform: translateX(0);\n }\n\n \/* wsp\u00f3lna klasa enter (do \u015brodka) *\/\n .apc-content.transition-enter {\n   opacity: 1;\n   transform: translateX(0);\n }\n\n  .apc-left,\n  .apc-right {\n    flex: 1 1 50%;\n    min-width: 300px;\n    max-width: 600px;\n    height: 550px;\n  }\n\n  \/* nowe: rozci\u0105gni\u0119cie prawej kolumny na ca\u0142\u0105 wysoko\u015b\u0107 i flex-kolumna *\/\n  .apc-right {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-start;\n    align-items: flex-start;\n  }\n\n  .apc-left {\n    position: relative;\n    overflow: hidden;\n  }\n\n  .apc-price {\n    font-size: 24px;\n    display: inline-block;\n    padding: 16px 40px;\n    border: 1px solid #fff;\n    border-radius: 80px;\n    margin-bottom: 20px;\n  }\n\n  \/* tytu\u0142 \u2013 max 2 linie z ellips\u0105 *\/\n  .apc-title {\n    font-size: 32px;\n    margin-bottom: 12px;\n    line-height: 1.2;\n    height: calc(1.2em * 2);\n    overflow: hidden;\n    display: -webkit-box;\n    -webkit-line-clamp: 2;\n    -webkit-box-orient: vertical;\n  }\n\n  \/* opis \u2013 max 4 linie z ellips\u0105 *\/\n  .apc-desc {\n    font-size: 16px;\n    line-height: 1.8;\n    display: -webkit-box;\n    -webkit-line-clamp: 4;\n    -webkit-box-orient: vertical;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    max-height: calc(1.8em * 4);\n  }\n\n  \/* udogodnienia \u2013 sta\u0142a wysoko\u015b\u0107 4 wierszy, ukrycie nadmiaru *\/\n\/*   .apc-fac { *\/\n\/*     display: grid; *\/\n\/*     grid-template-columns: repeat(2,1fr); *\/\n\/*     gap: 8px 24px; *\/\n\/*     margin-bottom: 24px; *\/\n\n\/*      *\/\/* dok\u0142adnie 4 wiersze * 1.8em linii *\/\n\/*     height: calc(1.8em * 4); *\/\n\/*     overflow: hidden; *\/\n\/*   } *\/\n\n\n.apc-fac-list {\n  list-style-type: square;\n  margin: 0 0 24px 20px;\n  list-style-position: inside;\n  padding-left: 20px;\n  padding: 0;\n  line-height: 1.8;\n  max-height: calc(1.8em * 4); \/* 4 wiersze *\/\n  overflow: hidden;\n  columns: 2;               \/* dwie kolumny *\/\n  column-gap: 40px;         \/* odst\u0119p mi\u0119dzy kolumnami *\/\n}\n.apc-fac-list li {\n  margin-bottom: 4px;\n  font-size: 16px;\n}\n\n  .apc-buttons {\n    display: flex;\n    gap: 12px;\n    flex-direction: column;\n    width: 100%;\n    margin-top: auto;\n  }\n  .apc-buttons a {\n    display: inline-block;\n    text-decoration: none;\n    text-align: center;\n    padding: 12px 32px;\n    border-radius: 50px;\n    font-size: 15px;\n  }\n  .apc-buttons .reserve {\n    background: #8D8B55;\n    color: #fff;\n    box-shadow: inset 4px 4px 16px rgba(255, 255, 255, 0.25), 4px 4px 16px rgba(0, 0, 0, 0.25);\n\n  }\n  .apc-buttons .details {\n    border: 1px solid #fff;\n    color: #fff;\n\n  }\n\n  .apc-nav {\n    display: flex;\n    justify-content: space-between;\n    margin-top: 30px;\n  }\n  .apc-nav button {\n    background: transparent;\n    border: none;\n    color: #fff;\n    font-size: 18px;\n    cursor: pointer;\n  }\n  .apc-nav button:hover {\n    color: #8D8B55;\n    transition: 0.12s ease-in-out;\n  }\n\n  \/* \u2014\u2014\u2014\u2014\u2014 wymuszona wysoko\u015b\u0107 Swiper \u2014\u2014\u2014\u2014\u2014 *\/\n  .apc-left .swiper {\n    width: 100%;\n    height: 100%;\n    overflow: visible;\n  }\n  .apc-left .swiper-slide img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    cursor: pointer;\n  }\n\n  \/* \u2014\u2014\u2014\u2014\u2014 custom Swiper arrows \u2014\u2014\u2014\u2014\u2014 *\/\n  .apc-left .swiper-button-prev,\n  .apc-left .swiper-button-next {\n    \/* domy\u015blny stan: #8D8B55 na 85% *\/\n    background-color: rgba(141, 139, 85, 0.85);\n    color: #fff;              \/* ikona wewn\u0105trz *\/\n    width: 48px;\n    height: 48px;\n    border-radius: 50%;\n    top: 50%;\n    transform: translateY(-50%);\n  }\n\n  \/* wi\u0119ksza ikona i dziedziczenie koloru *\/\n  .apc-left .swiper-button-prev::after,\n  .apc-left .swiper-button-next::after {\n    font-size: 14px;\n    color: inherit;\n  }\n  .apc-left .swiper-button-prev::after{\n    margin-right: 2px;\n  }\n   .apc-left .swiper-button-next::after{\n      margin-left: 2px;\n    }\n\n  \/* hover: #2C2C2C na 85% *\/\n  .apc-left .swiper-button-prev:hover,\n  .apc-left .swiper-button-next:hover {\n    background-color: rgba(44, 44, 44, 0.85);\n  }\n\n  \/* ewentualnie dostosuj pozycj\u0119 prev\/next *\/\n  .apc-left .swiper-button-prev {\n    left: 10px;\n  }\n  .apc-left .swiper-button-next {\n    right: 10px;\n  }\n  .apc-prev, .apc-next {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n  }\n  .apc-next-name, .apc-prev-name{\n    font-size: 13px;\n  }\n\n@media (max-width: 768px) {\n    .apc-filters{\n    display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n.apc-price{\n    width: 100%;\n    text-align: center;\n}\n.apc-content{\n    margin-inline: 15px;\n}\n.apc-left{\n    height: 320px;\n}\n.swiper-button-next, .swiper-button-prev{\n    transform: none !important;\n}\n}\n\n\/* FULLSCREEN MODAL *\/\n.apc-fullscreen-modal {\n  display: none !important;\n  position: fixed;\n  inset: 0;\n  background: rgba(0, 0, 0, 0.95);\n  align-items: center;\n  justify-content: center;\n  z-index: 100001;\n  flex-direction: column;\n  visibility: hidden;\n  opacity: 0;\n  transition: opacity 0.3s;\n}\n.apc-fullscreen-modal.active {\n  display: flex !important;\n  visibility: visible !important;\n  opacity: 1 !important;\n}\n.apc-fullscreen-content {\n  width: 70%;\n  height: 100%;\n  object-fit: contain;\n  object-position: center;\n}\n.apc-fullscreen-nav {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  background: rgba(255, 255, 255, 0.2);\n  border: none;\n  color: #fff;\n  font-size: 40px;\n  width: 60px;\n  height: 60px;\n  border-radius: 50%;\n  cursor: pointer;\n  z-index: 100000;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  transition: background 0.3s;\n}\n.apc-fullscreen-nav:hover {\n  background: rgba(255, 255, 255, 0.4);\n}\n.apc-fullscreen-prev {\n  left: 30px;\n}\n.apc-fullscreen-next {\n  right: 30px;\n}\n.apc-fullscreen-close {\n  position: absolute;\n  top: 30px;\n  right: 30px;\n  color: #fff;\n  font-size: 50px;\n  cursor: pointer;\n  z-index: 100000;\n  width: 50px;\n  height: 50px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  background: rgba(0, 0, 0, 0.5);\n  border-radius: 50%;\n  transition: background 0.3s;\n}\n.apc-fullscreen-close:hover {\n  background: rgba(0, 0, 0, 0.8);\n}\n@media screen and (max-width: 767px) {\n  .apc-fullscreen-nav {\n    width: 45px;\n    height: 45px;\n    font-size: 30px;\n  }\n  .apc-fullscreen-prev {\n    left: 10px;\n  }\n  .apc-fullscreen-next {\n    right: 10px;\n  }\n  .apc-fullscreen-close {\n    top: 15px;\n    right: 15px;\n    font-size: 40px;\n    width: 40px;\n    height: 40px;\n  }\n}\n\n<\/style>\n\n<div class=\"apc-wrapper\">\n  <!-- 1) Filtry kategorii -->\n  <div class=\"apc-filters\">\n            <button\n          data-cat=\"Z jacuzzi\"\n          class=\"active\"        >\n          Z jacuzzi        <\/button>\n            <button\n          data-cat=\"Rodzinne\"\n                  >\n          Rodzinne        <\/button>\n            <button\n          data-cat=\"Dla dwojga\"\n                  >\n          Dla dwojga        <\/button>\n            <button\n          data-cat=\"Premium\"\n                  >\n          Premium        <\/button>\n            <button\n          data-cat=\"Widok na Odr\u0119\"\n                  >\n          Widok na Odr\u0119        <\/button>\n      <\/div>\n\n  <!-- 2) Sekcja g\u0142\u00f3wna: galeria i dane -->\n  <div class=\"apc-content\">\n    <div class=\"apc-left\">\n      <div class=\"swiper apc-gallery\">\n        <div class=\"swiper-wrapper\"><\/div>\n        <div class=\"swiper-button-prev\"><\/div>\n        <div class=\"swiper-button-next\"><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"apc-right\">\n      <div class=\"apc-price\">\n        <span class=\"apc-price-val\"><\/span>\n        <span class=\"apc-price-cur\"><\/span> <span class=\"apc-per-night\">\/noc<\/span>\n      <\/div>\n      <div class=\"apc-title\"><\/div>\n      <div class=\"apc-desc\"><\/div>\n      <div class=\"apc-fac\"><\/div>\n      <div class=\"apc-buttons\">\n        <a href=\"#\" class=\"reserve\" target=\"_blank\">Rezerwuj<\/a>\n        <a href=\"#\" class=\"details\" target=\"_blank\">Szczeg\u00f3\u0142y<\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- 3) Nawigacja mi\u0119dzy apartamentami -->\n  <div class=\"apc-nav\">\n    <button class=\"apc-prev\">&larr; <span class=\"apc-prev-name\">Poprzedni apartament<\/span><\/button>\n    <button class=\"apc-next\"><span class=\"apc-next-name\">Nast\u0119pny apartament<\/span> &rarr;<\/button>\n  <\/div>\n<\/div>\n\n<!-- Fullscreen Modal -->\n<div class=\"apc-fullscreen-modal\" id=\"apcFullscreenModal\">\n  <span class=\"apc-fullscreen-close\">&times;<\/span>\n  <button class=\"apc-fullscreen-nav apc-fullscreen-prev\">&#10094;<\/button>\n  <img decoding=\"async\" class=\"apc-fullscreen-content\" src=\"\" alt=\"Pe\u0142ny ekran\" \/>\n  <button class=\"apc-fullscreen-nav apc-fullscreen-next\">&#10095;<\/button>\n<\/div>\n\n<script>\n  \/\/ funkcja do generowania \u201eslug\u201d z nazwy\n  function generateSlugFromName(name) {\n    return name\n      .normalize(\"NFD\")\n      .replace(\/[\\u0300-\\u036f]\/g, '')\n      .toLowerCase()\n      .replace(\/\\s+\/g, '-')\n      .replace(\/[^a-z0-9-]\/g, '')\n      .replace(\/-+\/g, '-')\n      .replace(\/^-+|-+$\/g, '');\n  }\n\n  \/\/ helper do pobrania aktualnego kodu j\u0119zyka z URL\n  function getCurrentLang() {\n    const [, lang] = window.location.pathname.split('\/');\n    const available = ['pl', 'en', 'de', 'cz'];\n    return available.includes(lang) ? lang : 'pl';\n  }\n  const lang = getCurrentLang();    \/\/ np. \"en\"\n  const prefix = `\/${lang}`;        \/\/ \"\/en\"\n\n  \/**\n   * Zwraca list\u0119 kategorii (slug\u00f3w) dla danego apartamentu\n   * bazuj\u0105c na polu apt.category (np. \"Dla dwojga, Z jacuzzi\")\n   *\/\n  function getCategories(apt) {\n    if (!apt.category || typeof apt.category !== 'string') {\n      return [];\n    }\n    return apt.category\n      .split(',')\n      .map(s =>\n        s\n          .trim()\n          .toLowerCase()\n          .normalize('NFD')\n          .replace(\/[\\u0300-\\u036f]\/g, '')\n      )\n      .filter(Boolean);\n  }\n\n  document.addEventListener('DOMContentLoaded', function() {\n    \/\/ dane z PHP\n    const apartments     = [{\"obkId\":\"961171\",\"name\":\"Apartament z Jacuzzi\",\"description\":\"Chwila odpr\u0119\u017cenia zaczyna si\u0119 w\u0142a\u015bnie tutaj. Apartament z prywatnym jacuzzi, idealny dla go\u015bci poszukuj\u0105cych dodatkowego relaksu i prywatno\u015bci.\",\"category\":\"Dla dwojga, Z jacuzzi\",\"gallery\":[\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250130133052_Dk8YIy.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250130133052_Tvb9Fr.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250130133052_jCMrBY.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250411142232_eQdP1m.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250411142232_JVkeoM.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250411142232_HZ21yU.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250411142232_cSzfda.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250130133052_q7Tnq1.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250130133052_XUZYaF.jpg\"],\"facilities\":{\"2\":{\"okpId\":10,\"value\":\"\"},\"5\":{\"okpId\":15,\"value\":\"\"},\"14\":{\"okpId\":94,\"value\":\"36\"},\"16\":{\"okpId\":98,\"value\":\"1\"}},\"price\":550,\"currency\":\"PLN\",\"reserveUrl\":\"\\\/rezerwacja\\\/?highlightRoomType=961171\",\"detailsUrl\":\"\\\/961171\"},{\"obkId\":\"961173\",\"name\":\"Deluxe z Jacuzzi\",\"description\":\"Luksusowy apartament z prywatnym jacuzzi, balkonem i widokiem na Odr\u0119. Przestronne wn\u0119trze, nowoczesne wyposa\u017cenie i panoramiczne okna tworz\u0105 idealn\u0105 przestrze\u0144 na romantyczny wyjazd lub wyj\u0105tkow\u0105 okazj\u0119.\",\"category\":\"Dla dwojga, Z jacuzzi, Premium, Widok na Odr\u0119\",\"gallery\":[\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250402190036_ht5W6l.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250402190036_jfPwbX.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250402190036_mFBcvR.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250402190036_yPTaux.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250402190036_NW5Aq7.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250402190036_LRhwNT.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250402190036_Hc2eBZ.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250402190036_L0vs05.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216202217_0X79nt.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216202217_vAuDGG.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216202217_uvd612.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216202217_Pe2wiZ.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216202217_cyl5UL.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250113123326_1LUQKZ.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250113123326_g5kGzA.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250113123326_5BRbcC.jpg\"],\"facilities\":{\"1\":{\"okpId\":6,\"value\":\"\"},\"3\":{\"okpId\":10,\"value\":\"\"},\"6\":{\"okpId\":15,\"value\":\"\"},\"15\":{\"okpId\":26,\"value\":\"\"},\"23\":{\"okpId\":94,\"value\":\"50\"},\"25\":{\"okpId\":98,\"value\":\"1\"},\"28\":{\"okpId\":102,\"value\":\"\"}},\"price\":700,\"currency\":\"PLN\",\"reserveUrl\":\"\\\/rezerwacja\\\/?highlightRoomType=961173\",\"detailsUrl\":\"\\\/961173\"},{\"obkId\":\"961175\",\"name\":\"Luxury Suite\",\"description\":\"Luksusowy apartament z panoramicznym widokiem na Odr\u0119 i balkonem, kt\u00f3ry zapewnia dodatkow\u0105 przestrze\u0144 na relaks. W apartamencie znajduj\u0105 si\u0119 dwa oddzielne pokoi salon z aneksem kuchennym oraz sypialnia z \u0142\u00f3\u017ckiem typu king-size.\",\"category\":\"Widok na Odr\u0119, Rodzinne\",\"gallery\":[\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_PoCmaH.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_nUOdzJ.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_qYTCy3.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_ts5WCd.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_Fdgo7a.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_g3almy.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_8fdn4H.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250411142024_McoRFH.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216194458_9v0lHU.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250122192329_CZekrO.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216194458_M1mg5S.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216194458_usXANb.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216194458_lNT68z.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216194458_B7uayY.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216194458_o558vo.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250122192329_srtgOS.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250122192329_hOqy4h.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_6ssLD3.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_sm5gFZ.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_jk5UOZ.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_95B5SC.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_37e6iB.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_8f8gjx.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_c5T0qa.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_08225Z.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_vrHgqC.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_bLWdpM.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216113518_JZTJE2.jpg\"],\"facilities\":{\"2\":{\"okpId\":10,\"value\":\"\"},\"12\":{\"okpId\":26,\"value\":\"\"},\"16\":{\"okpId\":94,\"value\":\"50\"},\"18\":{\"okpId\":97,\"value\":\"1\"},\"19\":{\"okpId\":98,\"value\":\"2\"}},\"price\":400,\"currency\":\"PLN\",\"reserveUrl\":\"\\\/rezerwacja\\\/?highlightRoomType=961175\",\"detailsUrl\":\"\\\/961175\"},{\"obkId\":\"961177\",\"name\":\"Penthouse\",\"description\":\"Przestronny penthouse z widokiem na miasto, idealny dla rodzin lub grup przyjaci\u00f3\u0142. Trzy pokoje, w tym sypialnia z \u0142\u00f3\u017ckiem king-size, druga z rozk\u0142adan\u0105 sof\u0105 oraz salon. Do dyspozycji tak\u017ce garderoba i balkon.\",\"category\":\"Rodzinne, Premium, Widok Na Odr\u0119\",\"gallery\":[\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218232123_RAwR1A.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250113123412_BCEzyx.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250113123412_zKuFxP.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218232123_uU8jNB.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218232123_2oUxb3.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250113123412_LqGEjD.jpg\"],\"facilities\":{\"1\":{\"okpId\":6,\"value\":\"\",\"attributes\":[{\"praId\":31,\"value\":\"1\"},{\"praId\":32,\"value\":\"1\"}]},\"3\":{\"okpId\":10,\"value\":\"\",\"attributes\":[{\"praId\":4,\"value\":\"1\"}]},\"14\":{\"okpId\":26,\"value\":\"\"},\"18\":{\"okpId\":94,\"value\":\"78\"},\"20\":{\"okpId\":97,\"value\":\"2\"},\"21\":{\"okpId\":98,\"value\":\"3\"},\"24\":{\"okpId\":102,\"value\":\"\"}},\"price\":700,\"currency\":\"PLN\",\"reserveUrl\":\"\\\/rezerwacja\\\/?highlightRoomType=961177\",\"detailsUrl\":\"\\\/961177\"},{\"obkId\":\"961179\",\"name\":\"Presidential\",\"description\":\"Ekskluzywny apartament na wy\u017cszych pi\u0119trach Boulevard Drobnera Residence, z trzema pokojami, garderob\u0105 i dwiema \u0142azienkami. Panoramiczne okna ods\u0142aniaj\u0105 widok na Odr\u0119, \u0142\u0105cz\u0105c komfort z wyj\u0105tkow\u0105 atmosfer\u0105 dla najbardziej wymagaj\u0105cych go\u015bci.\",\"category\":\"Rodzinne\",\"gallery\":[\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250113123544_cavJCH.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250113123544_ZdpULj.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250201143126_aq52DE.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250201143126_IUgbwc.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250201143126_2iniBv.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218220038_Q1qIiw.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218220038_MRPhb9.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250411142628_0LZz4c.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250411142628_8hB7wA.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250411142628_l98Otj.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250411142628_xBfq5T.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250411142628_dYEw3W.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250411142628_z5mayC.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250411142628_poZ6Rc.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218230826_gbKg9e.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218230826_OWsDZK.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218230826_jxC7zY.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218230826_4WLlYR.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218230826_A5LDjO.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218230826_YsfTcF.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218230826_jHb6uL.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218220038_A5yn87.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250122193317_lrKRFX.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218220038_3l1k5e.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218220250_TaRMCr.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218220039_5F9TVn.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250122193317_8vse4r.jpg\"],\"facilities\":{\"1\":{\"okpId\":6,\"value\":\"\"},\"3\":{\"okpId\":10,\"value\":\"\"},\"13\":{\"okpId\":26,\"value\":\"\"},\"15\":{\"okpId\":94,\"value\":\"65\"},\"17\":{\"okpId\":97,\"value\":\"2\"},\"18\":{\"okpId\":98,\"value\":\"3\"},\"21\":{\"okpId\":102,\"value\":\"\"}},\"price\":500,\"currency\":\"PLN\",\"reserveUrl\":\"\\\/rezerwacja\\\/?highlightRoomType=961179\",\"detailsUrl\":\"\\\/961179\"},{\"obkId\":\"961181\",\"name\":\"Presidential Deluxe\",\"description\":\"Ekskluzywny apartament na najwy\u017cszym pi\u0119trze z panoramicznym widokiem na miasto. Trzy pokoje, dwie \u0142azienki, garderoba i balkon zapewniaj\u0105 komfortowy pobyt. Dwa \u0142\u00f3\u017cka king-size i rozk\u0142adana sofa sprawdz\u0105 si\u0119 idealnie dla wi\u0119kszych grup ceni\u0105cych przestrze\u0144 i luksus.\",\"category\":\"Premium, Widok na Odr\u0119\",\"gallery\":[\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250129150230_o0zUSt.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250129150230_IcLGIc.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250129150230_Ls4NGp.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250129150230_KR1yOZ.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250129150230_qf5zVy.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20260224122909_1NDIDY.png\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250129150230_3Hfcfc.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20260224122909_K3KpKD.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20260224122909_3ru2m6.jpg\"],\"facilities\":{\"1\":{\"okpId\":6,\"value\":\"\",\"attributes\":[{\"praId\":31,\"value\":\"1\"}]},\"3\":{\"okpId\":10,\"value\":\"\"},\"15\":{\"okpId\":26,\"value\":\"\"},\"22\":{\"okpId\":94,\"value\":\"92\"},\"24\":{\"okpId\":97,\"value\":\"2\"},\"25\":{\"okpId\":98,\"value\":\"3\"}},\"price\":600,\"currency\":\"PLN\",\"reserveUrl\":\"\\\/rezerwacja\\\/?highlightRoomType=961181\",\"detailsUrl\":\"\\\/961181\"},{\"obkId\":\"961183\",\"name\":\"Studio\",\"description\":\"Pok\u00f3j z \u0142azienk\u0105 stanowi\u0105cy podstawow\u0105 ofert\u0119 Boulevard Drobnera Residence. Najmniejsza jednostka, ale nie odst\u0119puj\u0105ca jako\u015bci\u0105 i stylem od wi\u0119kszych apartament\u00f3w. Panoramiczne okna z widokiem na Odr\u0119 oraz wysp\u0119 S\u0142odow\u0105.\",\"category\":\"Dla dwojga, Widok na Odr\u0119\",\"gallery\":[\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923143710_uPtUvQ.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923144556_Qst8KI.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923143710_ARuAUF.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250923143710_0nqorN.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216192849_VStMQH.jpg\"],\"facilities\":{\"1\":{\"okpId\":6,\"value\":\"\"},\"3\":{\"okpId\":10,\"value\":\"\"},\"12\":{\"okpId\":26,\"value\":\"\"},\"16\":{\"okpId\":94,\"value\":\"27\"},\"18\":{\"okpId\":98,\"value\":\"1\"},\"21\":{\"okpId\":102,\"value\":\"\"}},\"price\":300,\"currency\":\"PLN\",\"reserveUrl\":\"\\\/rezerwacja\\\/?highlightRoomType=961183\",\"detailsUrl\":\"\\\/961183\"},{\"obkId\":\"961187\",\"name\":\"Suite\",\"description\":\"Elegancki apartament z widokiem na miasto, oferuj\u0105cy dwie przestrzenie: sypialni\u0119 z wygodnym \u0142\u00f3\u017ckiem king-size oraz salon z rozk\u0142adan\u0105 sof\u0105. To idealny wyb\u00f3r dla os\u00f3b ceni\u0105cych styl i komfort, doskona\u0142y na rodzinne pobyty.\",\"category\":\"Rodzinne, Widok na Odr\u0119\",\"gallery\":[\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250402190131_hpGDDu.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250517131732_wJbrIT.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250517131732_Rtn17e.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250517131732_JZdQc3.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250517131732_3PGibJ.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250517131732_4QDqAb.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218231734_Upoxgk.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218231734_UCnUf9.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218231734_yUF5bn.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218231733_nEfMhc.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250402190131_AeUQmj.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250402190131_283AJt.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250329144815_3U47z9.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218231734_jJCIjM.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218231734_XVhW1L.jpg\"],\"facilities\":{\"2\":{\"okpId\":10,\"value\":\"\"},\"13\":{\"okpId\":26,\"value\":\"\"},\"19\":{\"okpId\":94,\"value\":\"42\"},\"21\":{\"okpId\":97,\"value\":\"1\"},\"22\":{\"okpId\":98,\"value\":\"2\"}},\"price\":300,\"currency\":\"PLN\",\"reserveUrl\":\"\\\/rezerwacja\\\/?highlightRoomType=961187\",\"detailsUrl\":\"\\\/961187\"},{\"obkId\":\"964713\",\"name\":\"Suite z jacuzzi\",\"description\":\"Stylowy apartament z prywatnym, prostok\u0105tnym jacuzzi przy oknie, idealny na relaks we dwoje. Nowoczesne wn\u0119trze, balkon i widok na Odr\u0119 tworz\u0105 wyj\u0105tkow\u0105 przestrze\u0144 na romantyczny pobyt lub szczeg\u00f3ln\u0105 okazj\u0119.\",\"category\":\"Dla dwojga, Z jacuzzi, Premium, Widok na Odr\u0119\",\"gallery\":[\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218223227_3nwWiO.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250130133916_DmZKS6.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250130133916_KaIXj4.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250130133916_eNa5wQ.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250130133916_IDXRg2.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250328153807_6kHUUI.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250328153806_7SEeZ1.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250130133916_o6IKcw.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250411142427_chGB4y.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250411142427_cTnWIv.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250411142427_Uy2Xl3.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250411142427_q2aVC0.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250328153806_8HM9SP.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250328153806_fzbxtc.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250328153806_xrVyNF.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250328153806_doCeA7.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218223227_ly0GPS.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218223227_ZWOMFY.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250130133916_QlD0u5.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250130133916_VWyy7q.jpg\"],\"facilities\":{\"0\":{\"okpId\":6,\"value\":\"\"},\"2\":{\"okpId\":10,\"value\":\"\"},\"5\":{\"okpId\":15,\"value\":\"\"},\"11\":{\"okpId\":26,\"value\":\"\"},\"20\":{\"okpId\":94,\"value\":\"45\"},\"22\":{\"okpId\":98,\"value\":\"1\"}},\"price\":700,\"currency\":\"PLN\",\"reserveUrl\":\"\\\/rezerwacja\\\/?highlightRoomType=964713\",\"detailsUrl\":\"\\\/964713\"},{\"obkId\":\"961817\",\"name\":\"Timeless Deluxe\",\"description\":\"Stylowy apartament z du\u017cymi oknami i widokiem na miasto. Nowoczesne wn\u0119trze \u0142\u0105czy komfort z ponadczasow\u0105 elegancj\u0105. Dwie sypialnie z \u0142\u00f3\u017ckami king-size i przestronny salon tworz\u0105 idealne warunki do wypoczynku.\",\"category\":\"Rodzinne\",\"gallery\":[\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216193010_Ur9edK.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216193010_T43LrA.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216193010_IsquBP.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216193010_Wpl0Iv.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216193010_bx6j0n.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216193010_6JWVgs.jpg\"],\"facilities\":{\"2\":{\"okpId\":10,\"value\":\"\"},\"15\":{\"okpId\":94,\"value\":\"57\"},\"17\":{\"okpId\":97,\"value\":\"2\"},\"18\":{\"okpId\":98,\"value\":\"3\"}},\"price\":700,\"currency\":\"PLN\",\"reserveUrl\":\"\\\/rezerwacja\\\/?highlightRoomType=961817\",\"detailsUrl\":\"\\\/961817\"},{\"obkId\":\"961189\",\"name\":\"Timeless Penthouse\",\"description\":\"Nowoczesny penthouse z widokiem na miasto, oferuj\u0105cy dwie sypialnie i przestronny salon z eleganck\u0105 sof\u0105. W pe\u0142ni wyposa\u017cony, idealny dla rodzin i grup. Stylowe wn\u0119trza \u0142\u0105cz\u0105 komfort z wyj\u0105tkow\u0105 atmosfer\u0105.\",\"category\":\"Rodzinne\",\"gallery\":[\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20260224120532_7w3rzh.png\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20260224125409_lcYgtZ.png\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20260224121648_jwWc6f.png\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250218222443_19sHp4.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216194127_4WRIOG.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216194127_6WNp8X.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216194127_6VrZd2.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216194127_J4HShL.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216194127_hVteDG.jpg\"],\"facilities\":{\"1\":{\"okpId\":10,\"value\":\"\"},\"14\":{\"okpId\":94,\"value\":\"57\"},\"16\":{\"okpId\":97,\"value\":\"2\"},\"17\":{\"okpId\":98,\"value\":\"3\"}},\"price\":350,\"currency\":\"PLN\",\"reserveUrl\":\"\\\/rezerwacja\\\/?highlightRoomType=961189\",\"detailsUrl\":\"\\\/961189\"},{\"obkId\":\"962609\",\"name\":\"Timeless Presidential\",\"description\":\"Luksusowy, przestronny apartament z trzema pokojami i du\u017c\u0105 przestrzeni\u0105 do wypoczynku. Wyko\u0144czony z dba\u0142o\u015bci\u0105 o detale, z wygodnym \u0142\u00f3\u017ckiem king-size i rozk\u0142adan\u0105 sof\u0105. Idealny dla rodzin i wi\u0119kszych grup ceni\u0105cych komfort i elegancj\u0119.\",\"category\":\"Rodzinne\",\"gallery\":[\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20260220175802_AjXBF5.png\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20260220175802_cT7sHx.png\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250312101850_gcedqx.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20260220192715_H2bd5w.png\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216114125_jEduyV.jpg\"],\"facilities\":{\"0\":{\"okpId\":6,\"value\":\"\"},\"1\":{\"okpId\":10,\"value\":\"\"},\"5\":{\"okpId\":94,\"value\":\"60\"}},\"price\":400,\"currency\":\"PLN\",\"reserveUrl\":\"\\\/rezerwacja\\\/?highlightRoomType=962609\",\"detailsUrl\":\"\\\/962609\"},{\"obkId\":\"961191\",\"name\":\"Timeless Suite\",\"description\":\"Nowoczesny, ponadczasowy apartament zaprojektowany z my\u015bl\u0105 o komforcie i stylu. Du\u017ce okna oferuj\u0105 widok na t\u0119tni\u0105ce \u017cyciem miasto, wysokie sufity a ca\u0142a przestrze\u0144 jest idealna dla odpoczynku po d\u0142ugim zwiedzaniu. Apartament si\u0119 sk\u0142ada z dw\u00f3ch pokoi - salon z aneksem kuchennym i sof\u0105 rozk\u0142adan\u0105 oraz sypialnia z \u0142\u00f3\u017ckiem typu King-size.\",\"category\":\"Rodzinne\",\"gallery\":[\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250131161424_18gXCs.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216193633_ixkUbW.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216193633_q5L4bE.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216193633_GvBSQ2.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216114405_v3Yg58.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250131161424_FjK6Re.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216114405_FJedEc.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216114405_pqKQ4N.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250131161424_ATCzpc.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216193633_XR91lM.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250131161424_JjTEK2.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250131161425_KIUJ3q.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216114405_pYPVKY.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216114405_Pup6me.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216114405_6myIa4.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216114405_qI2sL6.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20241216114405_OE2VqD.jpg\",\"https:\\\/\\\/files.previo.cz\\\/783401\\\/www\\\/img\\\/photos\\\/20250216193633_j0whgl.jpg\"],\"facilities\":{\"1\":{\"okpId\":6,\"value\":\"\"},\"3\":{\"okpId\":10,\"value\":\"\"},\"20\":{\"okpId\":94,\"value\":\"59\"},\"22\":{\"okpId\":97,\"value\":\"1\"},\"23\":{\"okpId\":98,\"value\":\"2\"},\"26\":{\"okpId\":102,\"value\":\"\"}},\"price\":300,\"currency\":\"PLN\",\"reserveUrl\":\"\\\/rezerwacja\\\/?highlightRoomType=961191\",\"detailsUrl\":\"\\\/961191\"}];\n    console.log(apartments);\n    const facilityConfig = {\"94\":{\"name\":null,\"icon\":\"fa-expand\"},\"97\":{\"name\":\"Liczba sypialni:\",\"icon\":\"fa-door-open\"},\"104\":{\"name\":null,\"icon\":\"fa-info\"},\"98\":{\"name\":\"Liczba pokoi:\",\"icon\":\"fa-info\"},\"10\":{\"name\":\"WiFi\",\"icon\":\"fa-wifi\"},\"102\":{\"name\":\"Parking\",\"icon\":\"fa-parking\"},\"6\":{\"name\":\"Telewizor\",\"icon\":\"fa-circle-check\"},\"25\":{\"name\":\"Zwierz\u0119ta\",\"icon\":\"fa-circle-check\"},\"19\":{\"name\":\"Suszarka\",\"icon\":\"fa-circle-check\"},\"24\":{\"name\":\"Udogodnienia dla w\u00f3zk\u00f3w inwalidzkich\",\"icon\":\"fa-circle-check\"},\"3\":{\"name\":\"\u0141\u00f3\u017cko dla dziecka\",\"icon\":\"fa-circle-check\"},\"4\":{\"name\":\"Telefon\",\"icon\":\"fa-circle-check\"},\"5\":{\"name\":\"Odtwarzacz DVD\",\"icon\":\"fa-circle-check\"},\"8\":{\"name\":\"Sejf\",\"icon\":\"fa-circle-check\"},\"9\":{\"name\":\"Klimatyzacja\",\"icon\":\"fa-circle-check\"},\"12\":{\"name\":\"Po\u015bciel\",\"icon\":\"fa-circle-check\"},\"13\":{\"name\":\"Prysznic\",\"icon\":\"fa-circle-check\"},\"14\":{\"name\":\"Wanna\",\"icon\":\"fa-circle-check\"},\"15\":{\"name\":\"Jacuzzi\",\"icon\":\"fa-circle-check\"},\"16\":{\"name\":\"WC\",\"icon\":\"fa-circle-check\"},\"17\":{\"name\":\"Lod\u00f3wka\",\"icon\":\"fa-circle-check\"},\"18\":{\"name\":\"Mini Bar\",\"icon\":\"fa-circle-check\"},\"20\":{\"name\":\"Ekspres do kawy\",\"icon\":\"fa-circle-check\"},\"21\":{\"name\":\"Centralne ogrzewanie\",\"icon\":\"fa-circle-check\"},\"22\":{\"name\":\"Aneks kuchenny\",\"icon\":\"fa-circle-check\"},\"23\":{\"name\":\"Pralka\",\"icon\":\"fa-circle-check\"},\"26\":{\"name\":\"Balkon\",\"icon\":\"fa-circle-check\"},\"27\":{\"name\":\"Taras\",\"icon\":\"fa-circle-check\"},\"28\":{\"name\":\"Kuchenka mikrofalowa\",\"icon\":\"fa-circle-check\"},\"54\":{\"name\":\"Miejsce dla niepal\u0105cych\",\"icon\":\"fa-circle-check\"},\"57\":{\"name\":\"Wentylator\",\"icon\":\"fa-circle-check\"},\"58\":{\"name\":\"Wentylator przeno\u015bny\",\"icon\":\"fa-circle-check\"},\"59\":{\"name\":\"Wieszaki\",\"icon\":\"fa-circle-check\"},\"60\":{\"name\":\"R\u0119czniki\",\"icon\":\"fa-circle-check\"},\"61\":{\"name\":\"Dodatkowe \u0142\u00f3\u017cko\",\"icon\":\"fa-circle-check\"},\"62\":{\"name\":\"Gry video\",\"icon\":\"fa-circle-check\"},\"63\":{\"name\":\"Codzienne sprz\u0105tanie\",\"icon\":\"fa-circle-check\"},\"64\":{\"name\":\"Darmowe rozmowy lokalne\",\"icon\":\"fa-circle-check\"},\"65\":{\"name\":\"Darmowy zestaw kosmetyk\u00f3w\",\"icon\":\"fa-circle-check\"},\"66\":{\"name\":\"Suszarka wolnostoj\u0105ca\",\"icon\":\"fa-circle-check\"},\"67\":{\"name\":\"Komputer w pokoju\",\"icon\":\"fa-circle-check\"},\"68\":{\"name\":\"Tablet\",\"icon\":\"fa-circle-check\"},\"69\":{\"name\":\"Osobna jadalnia\",\"icon\":\"fa-circle-check\"},\"70\":{\"name\":\"Kuchnia\",\"icon\":\"fa-circle-check\"},\"71\":{\"name\":\"Kuchnia wsp\u00f3\u0142dzielona\",\"icon\":\"fa-circle-check\"},\"72\":{\"name\":\"Zamra\u017calnik\",\"icon\":\"fa-circle-check\"},\"73\":{\"name\":\"Mini lod\u00f3wka\",\"icon\":\"fa-circle-check\"},\"77\":{\"name\":\"Kominek\",\"icon\":\"fa-circle-check\"},\"75\":{\"name\":\"Zmywarka\",\"icon\":\"fa-circle-check\"},\"100\":{\"name\":\"Czajnik elektryczny\",\"icon\":\"fa-circle-check\"},\"101\":{\"name\":\"Zestaw do parzenia kawy\\\/herbaty\",\"icon\":\"fa-circle-check\"},\"103\":{\"name\":\"Rekuperator powietrza\",\"icon\":\"fa-circle-check\"}};\n    const uiStrings      = {\"details\":\"Zobacz apartament\",\"reserve\":\"Zarezerwuj sw\\u00f3j pobyt\",\"prev\":\"Poprzednia\",\"next\":\"Nast\\u0119pna\",\"noResults\":\"Brak wynik\\u00f3w dla wybranych filtr\\u00f3w.\",\"from\":\"od\",\"perNight\":\"\\\/noc\",\"reserveShort\":\"Rezerwuj\",\"detailsShort\":\"Szczeg\\u00f3\\u0142y\",\"prevApt\":\"Poprzedni apartament\",\"nextApt\":\"Nast\\u0119pny apartament\"};\n\n    if (!Array.isArray(apartments) || apartments.length === 0) {\n      document.querySelector('.apc-wrapper').innerHTML =\n        '<p style=\"color:red; text-align:center;\">Brak apartament\u00f3w do wy\u015bwietlenia.<\/p>';\n      return;\n    }\n\n    const firstCat = document.querySelector('.apc-filters button.active')\n      .getAttribute('data-cat')\n      .toLowerCase()\n      .normalize('NFD')\n      .replace(\/[\\u0300-\\u036f]\/g, '');\n\n    let filtered = apartments.filter(a =>\n      getCategories(a).includes(firstCat)\n    );\n    if (!filtered.length) filtered = apartments;\n    let idx = 0;\n\n    \/\/ elementy DOM\n    const filters    = document.querySelectorAll('.apc-filters button');\n    const priceVal   = document.querySelector('.apc-price-val');\n    const priceCur   = document.querySelector('.apc-price-cur');\n    const perNightEl = document.querySelector('.apc-per-night');\n    const titleEl    = document.querySelector('.apc-title');\n    const descEl     = document.querySelector('.apc-desc');\n    const facEl      = document.querySelector('.apc-fac');\n    const btnReserve = document.querySelector('.apc-buttons .reserve');\n    const btnDetail  = document.querySelector('.apc-buttons .details');\n    const prevBtn    = document.querySelector('.apc-prev');\n    const nextBtn    = document.querySelector('.apc-next');\n    const prevName   = document.querySelector('.apc-prev-name');\n    const nextName   = document.querySelector('.apc-next-name');\n    const container  = document.querySelector('.apc-content');\n    let isAnimating = false;\n\n    if (btnReserve) btnReserve.textContent = uiStrings.reserveShort || btnReserve.textContent;\n    if (btnDetail)  btnDetail.textContent  = uiStrings.detailsShort || btnDetail.textContent;\n    if (prevName)   prevName.textContent   = uiStrings.prevApt || prevName.textContent;\n    if (nextName)   nextName.textContent   = uiStrings.nextApt || nextName.textContent;\n    if (perNightEl) perNightEl.textContent = uiStrings.perNight || perNightEl.textContent;\n\n    \/\/ inicjalizacja Swiper\n    const swiper = new Swiper('.apc-gallery', {\n      loop: true,\n      navigation: {\n        nextEl: '.swiper-button-next',\n        prevEl: '.swiper-button-prev',\n      },\n    });\n\n    \/\/ animacja fade (zmiana kategorii)\n    function animateFade(updateCb) {\n      if (isAnimating) return;\n      isAnimating = true;\n\n      container.classList.remove(\n        'transition-exit-next',\n        'transition-exit-prev',\n        'transition-enter',\n        'transition-exit-fade'\n      );\n\n      function onExitFade(e) {\n        if (e.propertyName !== 'opacity') return;\n        container.removeEventListener('transitionend', onExitFade);\n\n        updateCb();\n        renderApartment(idx);\n\n        void container.offsetWidth;\n        container.classList.remove('transition-exit-fade');\n        container.classList.add('transition-enter');\n\n        container.addEventListener('transitionend', onEnterFade);\n      }\n\n      function onEnterFade(e) {\n        if (e.propertyName !== 'opacity') return;\n        container.removeEventListener('transitionend', onEnterFade);\n        container.classList.remove('transition-enter');\n        isAnimating = false;\n      }\n\n      container.addEventListener('transitionend', onExitFade);\n      container.classList.add('transition-exit-fade');\n    }\n\n    \/\/ animacja slide (poprzedni\/nast\u0119pny)\n    function animateChange(dir, updateCb) {\n      if (isAnimating) return;\n      isAnimating = true;\n\n      container.classList.remove(\n        'transition-exit-next',\n        'transition-exit-prev',\n        'transition-enter',\n        'transition-exit-fade'\n      );\n\n      const exitClass = dir > 0\n        ? 'transition-exit-next'\n        : 'transition-exit-prev';\n\n      function onExit(e) {\n        if (e.propertyName !== 'opacity') return;\n        container.removeEventListener('transitionend', onExit);\n\n        updateCb();\n        renderApartment(idx);\n\n        void container.offsetWidth;\n        container.classList.remove(exitClass);\n        container.classList.add('transition-enter');\n\n        container.addEventListener('transitionend', onEnter);\n      }\n\n      function onEnter(e) {\n        if (e.propertyName !== 'opacity') return;\n        container.removeEventListener('transitionend', onEnter);\n        container.classList.remove('transition-enter');\n        isAnimating = false;\n      }\n\n      container.addEventListener('transitionend', onExit);\n      container.classList.add(exitClass);\n    }\n\n    \/\/ renderuje pojedynczy apartament\n    function renderApartment(i) {\n      const apt = filtered[i];\n\n      \/\/ \u2014 galeria \u2014\n      swiper.removeAllSlides();\n      const defaultImg = '';\n      const imgs = Array.isArray(apt.gallery) && apt.gallery.length\n        ? apt.gallery\n        : [ defaultImg ];\n      imgs.forEach((url, idx) => {\n        swiper.appendSlide(\n          `<div class=\"swiper-slide\"><img decoding=\"async\" src=\"${url}\" alt=\"\" data-index=\"${idx}\" class=\"apc-gallery-image\" \/><\/div>`\n        );\n      });\n      swiper.update();\n      \n      \/\/ Dodajemy event listenery do obraz\u00f3w po ich dodaniu\n      setTimeout(() => {\n        attachGalleryClickListeners(imgs);\n      }, 100);\n\n      \/\/ \u2014 dane tekstowe \u2014\n      priceVal.textContent = (uiStrings.from || 'od') + \" \" + (apt.price || '');\n      priceCur.textContent = apt.currency || '';\n      titleEl.textContent  = apt.name || '';\n      descEl.textContent   = apt.description || '';\n\n      \/\/ linki z prefixem j\u0119zykowym\n      btnReserve.href = `${prefix}${apt.reserveUrl || '#'}`;\n      btnDetail.href  = `${prefix}\/apart-${generateSlugFromName(apt.name || '')}\/`;\n\n      \/\/ \u2014 udogodnienia \u2014\n      let rawFacilities = [];\n      if (apt.facilities && typeof apt.facilities === 'object' && !Array.isArray(apt.facilities)) {\n        rawFacilities = Object.values(apt.facilities);\n      } else if (typeof apt.facilities === 'string') {\n        try {\n          rawFacilities = JSON.parse(apt.facilities);\n        } catch (e) {\n          rawFacilities = [];\n        }\n      } else if (Array.isArray(apt.facilities)) {\n        rawFacilities = apt.facilities;\n      }\n\n      if (rawFacilities.length) {\n        const suppress = [6, 10];\n        let html = '<ul class=\"apc-fac-list\">';\n        rawFacilities.slice(0, 6).forEach(f => {\n          const id   = parseInt(f.okpId, 10);\n          const cfg  = facilityConfig[id] || {};\n          let rawVal = f.value || (f.attributes?.[0]?.value) || '';\n          let text   = '';\n\n          if ([97, 98].includes(id)) {\n            if (!rawVal) return;\n            text = `${cfg.name} ${rawVal}`;\n          } else if (suppress.includes(id)) {\n            if (!cfg.name) return;\n            text = cfg.name;\n          } else if (rawVal) {\n            text = cfg.name ? `${cfg.name} ${rawVal}` : rawVal;\n          } else if (cfg.name) {\n            text = cfg.name;\n          } else {\n            return;\n          }\n\n          if (id === 94) text += ' m\u00b2';\n          html += `<li>${text}<\/li>`;\n        });\n        html += '<\/ul>';\n        facEl.innerHTML = html;\n      } else {\n        facEl.innerHTML = '';\n      }\n\n      \/\/ \u2014 nazwy Prev\/Next \u2014\n      const total = filtered.length;\n      const prevI = (i - 1 + total) % total;\n      const nextI = (i + 1) % total;\n      prevName.textContent = filtered[prevI].name || 'Wr\u00f3\u0107';\n      nextName.textContent = filtered[nextI].name || 'Dalej';\n    }\n\n    \/\/ obs\u0142uga Prev\/Next\n    prevBtn.addEventListener('click', () => {\n      animateChange(1, () => {\n        idx = (idx - 1 + filtered.length) % filtered.length;\n      });\n    });\n    nextBtn.addEventListener('click', () => {\n      animateChange(-1, () => {\n        idx = (idx + 1) % filtered.length;\n      });\n    });\n\n    \/\/ obs\u0142uga filtr\u00f3w\n    filters.forEach(btn => {\n      btn.addEventListener('click', () => {\n        filters.forEach(b => b.classList.remove('active'));\n        btn.classList.add('active');\n\n        const cat = btn\n          .getAttribute('data-cat')\n          .toLowerCase()\n          .normalize('NFD')\n          .replace(\/[\\u0300-\\u036f]\/g, '');\n\n        animateFade(() => {\n          filtered = apartments.filter(a =>\n            getCategories(a).includes(cat)\n          );\n          if (!filtered.length) filtered = apartments;\n          idx = 0;\n        });\n      });\n    });\n\n    \/\/ Funkcja do otwierania modala fullscreen\n    function openFullscreenModal(images, currentIndex) {\n      const modal = document.getElementById('apcFullscreenModal');\n      const modalImg = modal.querySelector('.apc-fullscreen-content');\n      const closeBtn = modal.querySelector('.apc-fullscreen-close');\n      const prevBtn = modal.querySelector('.apc-fullscreen-prev');\n      const nextBtn = modal.querySelector('.apc-fullscreen-next');\n      \n      let currentIdx = currentIndex;\n      let keyHandler = null;\n      \n      function updateModal() {\n        modalImg.src = images[currentIdx];\n      }\n      \n      function closeModal() {\n        modal.classList.remove('active');\n        document.body.style.overflow = '';\n        if (keyHandler) {\n          document.removeEventListener('keydown', keyHandler);\n          keyHandler = null;\n        }\n      }\n      \n      updateModal();\n      modal.classList.add('active');\n      document.body.style.overflow = 'hidden';\n      \n      \/\/ Nawigacja\n      prevBtn.onclick = function(e) {\n        e.stopPropagation();\n        currentIdx = (currentIdx - 1 + images.length) % images.length;\n        updateModal();\n      };\n      \n      nextBtn.onclick = function(e) {\n        e.stopPropagation();\n        currentIdx = (currentIdx + 1) % images.length;\n        updateModal();\n      };\n      \n      closeBtn.onclick = closeModal;\n      \n      modal.onclick = function(e) {\n        if (e.target === modal) closeModal();\n      };\n      \n      \/\/ Obs\u0142uga klawiatury\n      keyHandler = function(e) {\n        if (e.key === 'Escape') {\n          closeModal();\n        } else if (e.key === 'ArrowLeft') {\n          e.preventDefault();\n          prevBtn.click();\n        } else if (e.key === 'ArrowRight') {\n          e.preventDefault();\n          nextBtn.click();\n        }\n      };\n      document.addEventListener('keydown', keyHandler);\n    }\n    \n    \/\/ Funkcja do dodawania event listener\u00f3w na obrazy galerii\n    function attachGalleryClickListeners(images) {\n      const galleryImages = document.querySelectorAll('.apc-gallery-image');\n      galleryImages.forEach((img, idx) => {\n        img.addEventListener('click', function(e) {\n          e.preventDefault();\n          e.stopPropagation();\n          const clickedIndex = parseInt(this.dataset.index, 10) || idx;\n          openFullscreenModal(images, clickedIndex);\n        });\n      });\n    }\n\n    \/\/ pocz\u0105tkowe renderowanie\n    renderApartment(idx);\n  });\n<\/script>\n\n\n<\/div>\n    <\/section>\n    \n    \n    \n    \n  \n","protected":false},"excerpt":{"rendered":"<p>Studio Zarezerwuj sw\u00f3j pobyt \u2039 \u203a &times; &#10094; &#10095; Studio od 306 PLN\/noc &times; &#10094; &#10095; Zarezerwuj sw\u00f3j pobyt Telewizor WiFi Prysznic 27 m\u00b2 Pokoje 1 &times; &#10094; &#10095; Pok\u00f3j z \u0142azienk\u0105 stanowi\u0105cy podstawow\u0105 ofert\u0119 Boulevard Drobnera Residence. Najmniejsza jednostka, ale nie odst\u0119puj\u0105ca jako\u015bci\u0105 i stylem od wi\u0119kszych apartament\u00f3w. Panoramiczne okna z widokiem na Odr\u0119 &hellip; <a href=\"https:\/\/boulevard-drobnera.com\/pl\/apart-studio\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8222;Studio&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":28,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-540","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Studio - Boulevard Drobnera<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/boulevard-drobnera.com\/pl\/apart-studio\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Studio - Boulevard Drobnera\" \/>\n<meta property=\"og:description\" content=\"Studio Zarezerwuj sw\u00f3j pobyt \u2039 \u203a &times; &#10094; &#10095; Studio od 306 PLN\/noc &times; &#10094; &#10095; Zarezerwuj sw\u00f3j pobyt Telewizor WiFi Prysznic 27 m\u00b2 Pokoje 1 &times; &#10094; &#10095; Pok\u00f3j z \u0142azienk\u0105 stanowi\u0105cy podstawow\u0105 ofert\u0119 Boulevard Drobnera Residence. Najmniejsza jednostka, ale nie odst\u0119puj\u0105ca jako\u015bci\u0105 i stylem od wi\u0119kszych apartament\u00f3w. Panoramiczne okna z widokiem na Odr\u0119 &hellip; Continue reading &quot;Studio&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/boulevard-drobnera.com\/pl\/apart-studio\/\" \/>\n<meta property=\"og:site_name\" content=\"Boulevard Drobnera\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-24T09:37:32+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuta\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/boulevard-drobnera.com\/apart-studio\/\",\"url\":\"https:\/\/boulevard-drobnera.com\/apart-studio\/\",\"name\":\"Studio - Boulevard Drobnera\",\"isPartOf\":{\"@id\":\"https:\/\/boulevard-drobnera.com\/#website\"},\"datePublished\":\"2026-02-20T13:33:21+00:00\",\"dateModified\":\"2026-02-24T09:37:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/boulevard-drobnera.com\/apart-studio\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/boulevard-drobnera.com\/apart-studio\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/boulevard-drobnera.com\/apart-studio\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/boulevard-drobnera.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Studio\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/boulevard-drobnera.com\/#website\",\"url\":\"https:\/\/boulevard-drobnera.com\/\",\"name\":\"Boulevard Drobnera\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/boulevard-drobnera.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/boulevard-drobnera.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/boulevard-drobnera.com\/#organization\",\"name\":\"Boulevard Drobnera\",\"url\":\"https:\/\/boulevard-drobnera.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/boulevard-drobnera.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/boulevard-drobnera.com\/wp-content\/uploads\/2026\/02\/cropped-cropped-logo240x240.png\",\"contentUrl\":\"https:\/\/boulevard-drobnera.com\/wp-content\/uploads\/2026\/02\/cropped-cropped-logo240x240.png\",\"width\":240,\"height\":240,\"caption\":\"Boulevard Drobnera\"},\"image\":{\"@id\":\"https:\/\/boulevard-drobnera.com\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Studio - Boulevard Drobnera","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/boulevard-drobnera.com\/pl\/apart-studio\/","og_locale":"pl_PL","og_type":"article","og_title":"Studio - Boulevard Drobnera","og_description":"Studio Zarezerwuj sw\u00f3j pobyt \u2039 \u203a &times; &#10094; &#10095; Studio od 306 PLN\/noc &times; &#10094; &#10095; Zarezerwuj sw\u00f3j pobyt Telewizor WiFi Prysznic 27 m\u00b2 Pokoje 1 &times; &#10094; &#10095; Pok\u00f3j z \u0142azienk\u0105 stanowi\u0105cy podstawow\u0105 ofert\u0119 Boulevard Drobnera Residence. Najmniejsza jednostka, ale nie odst\u0119puj\u0105ca jako\u015bci\u0105 i stylem od wi\u0119kszych apartament\u00f3w. Panoramiczne okna z widokiem na Odr\u0119 &hellip; Continue reading \"Studio\"","og_url":"https:\/\/boulevard-drobnera.com\/pl\/apart-studio\/","og_site_name":"Boulevard Drobnera","article_modified_time":"2026-02-24T09:37:32+00:00","twitter_card":"summary_large_image","twitter_misc":{"Szacowany czas czytania":"1 minuta"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/boulevard-drobnera.com\/apart-studio\/","url":"https:\/\/boulevard-drobnera.com\/apart-studio\/","name":"Studio - Boulevard Drobnera","isPartOf":{"@id":"https:\/\/boulevard-drobnera.com\/#website"},"datePublished":"2026-02-20T13:33:21+00:00","dateModified":"2026-02-24T09:37:32+00:00","breadcrumb":{"@id":"https:\/\/boulevard-drobnera.com\/apart-studio\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/boulevard-drobnera.com\/apart-studio\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/boulevard-drobnera.com\/apart-studio\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/boulevard-drobnera.com\/"},{"@type":"ListItem","position":2,"name":"Studio"}]},{"@type":"WebSite","@id":"https:\/\/boulevard-drobnera.com\/#website","url":"https:\/\/boulevard-drobnera.com\/","name":"Boulevard Drobnera","description":"","publisher":{"@id":"https:\/\/boulevard-drobnera.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/boulevard-drobnera.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/boulevard-drobnera.com\/#organization","name":"Boulevard Drobnera","url":"https:\/\/boulevard-drobnera.com\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/boulevard-drobnera.com\/#\/schema\/logo\/image\/","url":"https:\/\/boulevard-drobnera.com\/wp-content\/uploads\/2026\/02\/cropped-cropped-logo240x240.png","contentUrl":"https:\/\/boulevard-drobnera.com\/wp-content\/uploads\/2026\/02\/cropped-cropped-logo240x240.png","width":240,"height":240,"caption":"Boulevard Drobnera"},"image":{"@id":"https:\/\/boulevard-drobnera.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/boulevard-drobnera.com\/pl\/wp-json\/wp\/v2\/pages\/540","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/boulevard-drobnera.com\/pl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/boulevard-drobnera.com\/pl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/boulevard-drobnera.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/boulevard-drobnera.com\/pl\/wp-json\/wp\/v2\/comments?post=540"}],"version-history":[{"count":2,"href":"https:\/\/boulevard-drobnera.com\/pl\/wp-json\/wp\/v2\/pages\/540\/revisions"}],"predecessor-version":[{"id":799,"href":"https:\/\/boulevard-drobnera.com\/pl\/wp-json\/wp\/v2\/pages\/540\/revisions\/799"}],"wp:attachment":[{"href":"https:\/\/boulevard-drobnera.com\/pl\/wp-json\/wp\/v2\/media?parent=540"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}