{"id":243,"date":"2025-11-26T11:52:42","date_gmt":"2025-11-26T10:52:42","guid":{"rendered":"https:\/\/doubleroyal.pl\/?page_id=243"},"modified":"2026-03-26T08:11:18","modified_gmt":"2026-03-26T08:11:18","slug":"apartamenty","status":"publish","type":"page","link":"https:\/\/doubleroyalresidence.pl\/en\/apartamenty\/","title":{"rendered":"Apartamenty"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"243\" class=\"elementor elementor-243\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-69d9a25 e-con-full e-flex e-con e-parent\" data-id=\"69d9a25\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8ca5e19 elementor-widget elementor-widget-html\" data-id=\"8ca5e19\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"pl\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Apartamenty - Double Royal Residence<\/title>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:wght@300;400;600;700&display=swap\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\n    \n<style>\n\/* Reset tylko dla g\u0142\u00f3wnej struktury - BEZ !important *\/\nbody, html {\n    margin: 0;\n    padding: 0;\n    box-sizing: border-box;\n    font-family: 'Playfair Display', serif;\n    overflow-x: hidden;\n    background-color: #ffffff;\n}\n\n*, *::before, *::after {\n    box-sizing: border-box;\n}\n\n\/* Header *\/\n.dr-apart-header {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    z-index: 100;\n    padding: 30px 0;\n    background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0) 100%);\n}\n\n.dr-apart-header-content {\n    max-width: 1440px;\n    margin: 0 auto;\n    padding: 0 40px;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n}\n\n.dr-apart-logo img {\n    height: 60px;\n    width: auto;\n}\n\n.dr-apart-nav ul {\n    display: flex;\n    list-style: none;\n    gap: 50px;\n    margin: 0;\n    padding: 0;\n}\n\n.dr-apart-nav a {\n    color: #ffffff;\n    text-decoration: none;\n    font-size: 16px;\n    font-weight: 400;\n    letter-spacing: 1px;\n    transition: all 0.3s ease;\n    position: relative;\n}\n\n.dr-apart-nav a::after {\n    content: '';\n    position: absolute;\n    bottom: -5px;\n    left: 0;\n    width: 0;\n    height: 1px;\n    background: #c9a961;\n    transition: width 0.3s ease;\n}\n\n.dr-apart-nav a:hover::after,\n.dr-apart-nav a.active::after {\n    width: 100%;\n}\n\n.dr-apart-nav a:hover,\n.dr-apart-nav a.active {\n    color: #c9a961;\n}\n\n.dr-apart-header-right {\n    display: flex;\n    align-items: center;\n    gap: 30px;\n}\n\n.dr-apart-phone img {\n    height: 40px;\n    cursor: pointer;\n    transition: all 0.3s ease;\n}\n\n.dr-apart-phone img:hover {\n    opacity: 0.8;\n    transform: scale(1.1);\n}\n\n.dr-apart-lang {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    font-size: 16px;\n}\n\n.dr-apart-lang-active {\n    color: #ffffff;\n    font-weight: 600;\n    cursor: pointer;\n    transition: all 0.3s ease;\n}\n\n.dr-apart-separator {\n    color: #c9a961;\n}\n\n.dr-apart-lang-inactive {\n    color: #888888;\n    cursor: pointer;\n    transition: all 0.3s ease;\n}\n\n.dr-apart-lang-inactive:hover,\n.dr-apart-lang-active:hover {\n    color: #c9a961;\n    transform: scale(1.1);\n}\n\n\/* Hamburger *\/\n.dr-apart-hamburger {\n    display: none;\n    flex-direction: column;\n    gap: 6px;\n    cursor: pointer;\n    z-index: 102;\n    padding: 10px;\n}\n\n.dr-apart-hamburger span {\n    width: 30px;\n    height: 3px;\n    background: #ffffff;\n    transition: all 0.3s ease;\n    border-radius: 2px;\n}\n\n.dr-apart-hamburger.active span:nth-child(1) {\n    transform: rotate(45deg) translate(8px, 8px);\n}\n\n.dr-apart-hamburger.active span:nth-child(2) {\n    opacity: 0;\n}\n\n.dr-apart-hamburger.active span:nth-child(3) {\n    transform: rotate(-45deg) translate(8px, -8px);\n}\n\n\/* Mobile Menu *\/\n.dr-apart-mobile-menu {\n    position: fixed;\n    top: 0;\n    right: -100%;\n    width: 100%;\n    height: 100vh;\n    background: rgba(26, 58, 58, 0.98);\n    z-index: 101;\n    transition: right 0.4s ease;\n    padding: 100px 40px 40px;\n    overflow-y: auto;\n}\n\n.dr-apart-mobile-menu.active {\n    right: 0;\n}\n\n.dr-apart-mobile-close {\n    position: absolute;\n    top: 30px;\n    right: 30px;\n    background: transparent;\n    border: none;\n    color: #ffffff;\n    font-size: 32px;\n    cursor: pointer;\n    transition: all 0.3s ease;\n}\n\n.dr-apart-mobile-close:hover {\n    color: #c9a961;\n    transform: rotate(90deg);\n}\n\n.dr-apart-mobile-menu ul {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n}\n\n.dr-apart-mobile-menu li {\n    margin-bottom: 30px;\n}\n\n.dr-apart-mobile-menu a {\n    color: #ffffff;\n    text-decoration: none;\n    font-size: 24px;\n    font-weight: 600;\n    display: block;\n    padding: 15px 0;\n    border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n    transition: all 0.3s ease;\n}\n\n.dr-apart-mobile-menu a:hover {\n    color: #c9a961;\n    padding-left: 10px;\n}\n\n.dr-apart-mobile-menu .mobile-lang {\n    margin-top: 40px;\n    padding-top: 30px;\n    border-top: 1px solid rgba(255, 255, 255, 0.1);\n    display: flex;\n    justify-content: center;\n    font-size: 20px;\n}\n\n\/* Hero *\/\n.dr-apart-hero {\n    position: relative;\n    height: 70vh;\n    min-height: 500px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    overflow: hidden;\n}\n\n.dr-apart-bg {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    z-index: 1;\n}\n\n.dr-apart-bg img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n}\n\n.dr-apart-bg::after {\n    content: '';\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    background: rgba(0, 0, 0, 0.4);\n}\n\n.dr-apart-social {\n    position: absolute;\n    left: 40px;\n    top: 50%;\n    transform: translateY(-50%) rotate(-90deg);\n    z-index: 10;\n}\n\n.dr-apart-social span {\n    color: #ffffff;\n    font-size: 14px;\n    letter-spacing: 3px;\n}\n\n.dr-apart-content {\n    position: relative;\n    z-index: 10;\n    text-align: center;\n    color: #ffffff;\n}\n\n.dr-apart-title {\n    font-size: 64px;\n    font-weight: 400;\n    line-height: 1.2;\n    margin-bottom: 15px;\n    color: #ffffff;\n}\n\n.dr-apart-subtitle {\n    color: #c9a961;\n    font-size: 16px;\n    letter-spacing: 2px;\n    margin-bottom: 40px;\n}\n\n.dr-apart-btn {\n    display: inline-block;\n    padding: 18px 80px;\n    border: 2px solid #c9a961;\n    color: #ffffff;\n    text-decoration: none;\n    font-size: 16px;\n    letter-spacing: 2px;\n    transition: all 0.4s ease;\n    background: transparent;\n    position: relative;\n    overflow: hidden;\n    z-index: 1;\n}\n\n.dr-apart-btn::before {\n    content: '';\n    position: absolute;\n    top: 0;\n    left: -100%;\n    width: 100%;\n    height: 100%;\n    background: #c9a961;\n    transition: left 0.4s ease;\n    z-index: -1;\n}\n\n.dr-apart-btn:hover::before {\n    left: 0;\n}\n\n.dr-apart-btn:hover {\n    color: #1a1a1a;\n    transform: translateY(-3px);\n    box-shadow: 0 10px 25px rgba(201, 169, 97, 0.3);\n}\n\n.dr-apart-dots {\n    position: absolute;\n    bottom: 50px;\n    left: 50%;\n    transform: translateX(-50%);\n    display: flex;\n    gap: 15px;\n    z-index: 10;\n}\n\n.dr-apart-dot {\n    width: 10px;\n    height: 10px;\n    border-radius: 50%;\n    background: rgba(255, 255, 255, 0.4);\n    cursor: pointer;\n    transition: all 0.3s ease;\n}\n\n.dr-apart-dot.active {\n    background: #ffffff;\n    width: 12px;\n    height: 12px;\n}\n\n.dr-apart-dot:hover {\n    background: rgba(255, 255, 255, 0.7);\n    transform: scale(1.3);\n}\n\n\/* Sekcja 3D *\/\n.dr-3d-section {\n    padding: 80px 40px;\n    background: #ffffff;\n}\n\n\/* Footer *\/\n.dr-footer {\n    background: #2a2a2a;\n    padding: 80px 40px 30px;\n    color: #ffffff;\n}\n\n.dr-footer-container {\n    max-width: 1440px;\n    margin: 0 auto;\n}\n\n.dr-footer-top {\n    display: grid;\n    grid-template-columns: 1fr 1fr 2fr;\n    gap: 60px;\n    margin-bottom: 60px;\n}\n\n.dr-footer-logo img {\n    width: 180px;\n}\n\n.dr-footer-menu {\n    display: flex;\n    flex-direction: column;\n    gap: 20px;\n}\n\n.dr-footer-menu a {\n    color: #d4d4d4;\n    text-decoration: none;\n    font-size: 18px;\n    transition: color 0.3s ease;\n}\n\n.dr-footer-menu a:hover {\n    color: #c9a961;\n}\n\n.dr-footer-contacts-wrapper {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 40px;\n}\n\n.dr-footer-contact-header {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    margin-bottom: 20px;\n}\n\n.dr-footer-contact-icon {\n    width: 36px;\n    height: 36px;\n}\n\n.dr-footer-contact-icon svg {\n    width: 100%;\n    height: 100%;\n    stroke: #c9a961;\n    fill: none;\n    stroke-width: 1.5;\n}\n\n.dr-footer-contact-title {\n    font-size: 14px;\n    font-weight: 600;\n    letter-spacing: 1px;\n    line-height: 1.3;\n}\n\n.dr-footer-phone {\n    font-size: 22px;\n    font-weight: 600;\n    color: #ffffff;\n    text-decoration: none;\n    display: block;\n    margin-bottom: 10px;\n}\n\n.dr-footer-phone:hover {\n    color: #c9a961;\n}\n\n.dr-footer-address {\n    font-size: 15px;\n    color: #d4d4d4;\n    line-height: 1.6;\n    margin: 0;\n}\n\n.dr-footer-divider {\n    width: 100%;\n    height: 1px;\n    background: #4a4a4a;\n    margin: 40px 0 30px;\n}\n\n.dr-footer-bottom {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    flex-wrap: wrap;\n    gap: 20px;\n}\n\n.dr-footer-copyright {\n    font-size: 14px;\n    color: #8a8a8a;\n    margin: 0;\n}\n\n.dr-footer-legal {\n    display: flex;\n    gap: 30px;\n}\n\n.dr-footer-legal a {\n    font-size: 14px;\n    color: #8a8a8a;\n    text-decoration: none;\n}\n\n.dr-footer-legal a:hover {\n    color: #c9a961;\n}\n\n\/* Responsive *\/\n@media (max-width: 768px) {\n    .dr-apart-hamburger {\n        display: flex;\n    }\n    \n    .dr-apart-nav {\n        display: none;\n    }\n    \n    .dr-apart-title {\n        font-size: 38px;\n    }\n    \n    .dr-apart-social {\n        display: none;\n    }\n    \n    .dr-3d-section {\n        padding: 60px 20px;\n    }\n    \n    .dr-footer-top {\n        grid-template-columns: 1fr;\n        text-align: center;\n    }\n    \n    .dr-footer-logo img {\n        margin: 0 auto;\n    }\n    \n    .dr-footer-menu {\n        align-items: center;\n    }\n    \n    .dr-footer-contacts-wrapper {\n        grid-template-columns: 1fr;\n    }\n    \n    .dr-footer-contact-header {\n        justify-content: center;\n    }\n    \n    .dr-footer-bottom {\n        flex-direction: column;\n        text-align: center;\n    }\n    \n    .dr-footer-legal {\n        flex-direction: column;\n        align-items: center;\n        gap: 15px;\n    }\n}\n\n@media (max-width: 480px) {\n    .dr-apart-title {\n        font-size: 28px;\n    }\n    \n    .dr-footer-logo img {\n        width: 140px;\n    }\n    \n    .dr-apart-btn {\n        padding: 15px 60px;\n        font-size: 14px;\n    }\n}\n<\/style>\n<\/head>\n<body>\n\n<!-- HEADER -->\n<header class=\"dr-apart-header\">\n    <div class=\"dr-apart-header-content\">\n        <div class=\"dr-apart-logo\">\n            <a href=\"https:\/\/doubleroyalresidence.pl\/en\/\">\n                <img decoding=\"async\" src=\"https:\/\/doubleroyal.pl\/wp-content\/uploads\/2025\/11\/Logo.avif\" alt=\"Double Royal Residence\">\n            <\/a>\n        <\/div>\n\n        <nav class=\"dr-apart-nav\">\n            <ul>\n                <li><a href=\"https:\/\/doubleroyalresidence.pl\/en\/#developer\" data-translate=\"nav-developer\">ABOUT THE DEVELOPER<\/a><\/li>\n                <li><a href=\"https:\/\/doubleroyalresidence.pl\/en\/apartamenty\/\" class=\"active\" data-translate=\"nav-apartments\">APARTMENTS<\/a><\/li>\n                <li><a href=\"https:\/\/doubleroyalresidence.pl\/en\/oferta\/\" data-translate=\"nav-offer\">OFFER<\/a><\/li>\n                <li><a href=\"https:\/\/doubleroyalresidence.pl\/en\/kontakt\/\" data-translate=\"nav-contact\">CONTACT<\/a><\/li>\n            <\/ul>\n        <\/nav>\n\n        <div class=\"dr-apart-header-right\">\n            <div class=\"dr-apart-phone\">\n                <a href=\"tel:+48456687556\">\n                    <img decoding=\"async\" src=\"https:\/\/doubleroyal.pl\/wp-content\/uploads\/2025\/11\/Logo-telefon.avif\" alt=\"Telefon\">\n                <\/a>\n            <\/div>\n            <div class=\"dr-apart-lang\">\n                <span class=\"dr-apart-lang-active\" id=\"langActive\">PL<\/span>\n                <span class=\"dr-apart-separator\">|<\/span>\n                <span class=\"dr-apart-lang-inactive\" id=\"langInactive\">EN<\/span>\n            <\/div>\n            <div class=\"dr-apart-hamburger\" id=\"hamburger\">\n                <span><\/span>\n                <span><\/span>\n                <span><\/span>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/header>\n\n<!-- Mobile Menu -->\n<div class=\"dr-apart-mobile-menu\" id=\"mobileMenu\">\n    <button class=\"dr-apart-mobile-close\" id=\"mobileClose\">\u00d7<\/button>\n    <nav>\n        <ul>\n            <li><a href=\"https:\/\/doubleroyalresidence.pl\/en\/#developer\" class=\"mobile-menu-link\" data-translate=\"nav-developer\">ABOUT THE DEVELOPER<\/a><\/li>\n            <li><a href=\"https:\/\/doubleroyalresidence.pl\/en\/apartamenty\/\" class=\"mobile-menu-link\" data-translate=\"nav-apartments\">APARTMENTS<\/a><\/li>\n            <li><a href=\"https:\/\/doubleroyalresidence.pl\/en\/oferta\/\" class=\"mobile-menu-link\" data-translate=\"nav-offer\">OFFER<\/a><\/li>\n            <li><a href=\"https:\/\/doubleroyalresidence.pl\/en\/kontakt\/\" class=\"mobile-menu-link\" data-translate=\"nav-contact\">CONTACT<\/a><\/li>\n        <\/ul>\n        <div class=\"dr-apart-lang mobile-lang\">\n            <span class=\"dr-apart-lang-active\" id=\"langActiveMobile\">PL<\/span>\n            <span class=\"dr-apart-separator\">|<\/span>\n            <span class=\"dr-apart-lang-inactive\" id=\"langInactiveMobile\">EN<\/span>\n        <\/div>\n    <\/nav>\n<\/div>\n\n<!-- HERO -->\n<section class=\"dr-apart-hero\">\n    <div class=\"dr-apart-bg\">\n        <img decoding=\"async\" src=\"https:\/\/doubleroyal.pl\/wp-content\/uploads\/2025\/11\/Zdjecie-w-tle.png\" alt=\"Apartamenty\">\n    <\/div>\n    \n    <div class=\"dr-apart-social\">\n        <span data-translate=\"hero-social\">APARTMENTS<\/span>\n    <\/div>\n\n    <div class=\"dr-apart-content\">\n        <h1 class=\"dr-apart-title\" data-translate=\"hero-title\">Your flats<\/h1>\n        <div class=\"dr-apart-subtitle\" data-translate=\"hero-subtitle\">A PLACE THAT DELIGHTS<\/div>\n        <a href=\"#3d\" class=\"dr-apart-btn\" data-translate=\"hero-button\">CHECK<\/a>\n    <\/div>\n\n    <div class=\"dr-apart-dots\">\n        <span class=\"dr-apart-dot active\"><\/span>\n        <span class=\"dr-apart-dot\"><\/span>\n        <span class=\"dr-apart-dot\"><\/span>\n    <\/div>\n<\/section>\n\n<!-- SEKCJA 3D -->\n<section class=\"dr-3d-section\" id=\"3d\">\n    <div class=\"dr3d-widget\" id=\"dr3dWidget\">\n\n    <!-- Nag\u0142\u00f3wek -->\n    <div class=\"dr3d-header\">\n        <h2 class=\"dr3d-title dr3d-counter\">\n            MIESZKANIA DOST\u0118PNE 0\/0\n        <\/h2>\n        <div class=\"dr3d-filters\">\n            <button class=\"dr3d-filter active\" data-filter=\"all\">Wszystkie<\/button>\n            <button class=\"dr3d-filter\" data-filter=\"available\">Dost\u0119pne<\/button>\n            <button class=\"dr3d-filter\" data-filter=\"reserved\">Rezerwacja<\/button>\n            <button class=\"dr3d-filter\" data-filter=\"sold\">Sprzedane<\/button>\n        <\/div>\n        <div class=\"dr3d-views\">\n            <button class=\"dr3d-view active\" data-view=\"building\">WIDOK BUDYNKU<\/button>\n            <button class=\"dr3d-view\" data-view=\"table\">TABELA<\/button>\n        <\/div>\n    <\/div>\n\n    <!-- Widok budynku -->\n    <div class=\"dr3d-building-view\" id=\"dr3dBuildingView\">\n        <div class=\"dr3d-building-container\">\n            <img id=\"dr3dBuildingImg\" class=\"dr3d-building-image\" alt=\"Double Royal Residence\" \/>\n            <svg class=\"dr3d-building-overlay\" id=\"dr3dOverlay\"><\/svg>\n        <\/div>\n    <\/div>\n\n    <!-- Widok tabeli - widoczna na desktop -->\n    <div class=\"dr3d-table-view\" id=\"dr3dTableView\">\n        \n        <!-- Zak\u0142adki kategorii -->\n        <div class=\"dr3d-category-tabs\" style=\"display: flex; gap: 10px; margin-bottom: 20px; flex-wrap: wrap;\">\n            <button class=\"dr3d-category-tab active\" data-category=\"apartments\" style=\"padding: 12px 20px; border: none; background: #8b4513; color: white; cursor: pointer; border-radius: 5px; font-weight: bold;\">\ud83c\udfe0 Mieszkania<\/button>\n            <button class=\"dr3d-category-tab\" data-category=\"storage\" style=\"padding: 12px 20px; border: none; background: #ddd; color: #333; cursor: pointer; border-radius: 5px; font-weight: bold;\">\ud83d\udce6 Kom\u00f3rki lokatorskie<\/button>\n            <button class=\"dr3d-category-tab\" data-category=\"parking\" style=\"padding: 12px 20px; border: none; background: #ddd; color: #333; cursor: pointer; border-radius: 5px; font-weight: bold;\">\ud83d\ude97 Miejsca postojowe<\/button>\n        <\/div>\n        \n        <div class=\"dr3d-table-scroll\">\n            <!-- Tabela mieszka\u0144 -->\n            <table class=\"dr3d-table\" id=\"dr3dTableApartments\">\n                <thead>\n                    <tr>\n                        <th>Numer<\/th>\n                        <th>Pi\u0119tro<\/th>\n                        <th>Pokoje<\/th>\n                        <th>Pow. u\u017cytkowa<\/th>\n                        <th>Cena<\/th>\n                        <th>Cena\/m\u00b2<\/th>\n                        <th>Status<\/th>\n                        <th>Akcja<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody id=\"dr3dTableBody\"><\/tbody>\n            <\/table>\n            \n            <!-- Tabela kom\u00f3rek lokatorskich -->\n            <table class=\"dr3d-table\" id=\"dr3dTableStorage\" style=\"display:none;\">\n                <thead>\n                    <tr>\n                        <th>Numer<\/th>\n                        <th>Poziom<\/th>\n                        <th>Cena<\/th>\n                        <th>Powi\u0105zane mieszkanie<\/th>\n                        <th>Status<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody id=\"dr3dStorageBody\"><\/tbody>\n            <\/table>\n            \n            <!-- Tabela miejsc postojowych -->\n            <table class=\"dr3d-table\" id=\"dr3dTableParking\" style=\"display:none;\">\n                <thead>\n                    <tr>\n                        <th>Numer<\/th>\n                        <th>Poziom<\/th>\n                        <th>Cena<\/th>\n                        <th>Powi\u0105zane mieszkanie<\/th>\n                        <th>Status<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody id=\"dr3dParkingBody\"><\/tbody>\n            <\/table>\n        <\/div>\n    <\/div>\n\n    <!-- Accordion lista - widoczna na mobile -->\n    <div class=\"dr3d-accordion-list\" id=\"dr3dAccordionList\"><\/div>\n\n    <!-- Modal - DOMY\u015aLNIE UKRYTY -->\n    <div class=\"dr3d-modal\" id=\"dr3dModal\" style=\"display:none;\">\n        <div class=\"dr3d-modal-content\">\n            <button class=\"dr3d-modal-close\" onclick=\"DR3D.closeModal()\">\u00d7<\/button>\n\n            <h2 class=\"dr3d-modal-title\" id=\"modalTitle\"><\/h2>\n\n            <div class=\"dr3d-modal-status\" id=\"modalStatus\"><\/div>\n\n            <div class=\"dr3d-modal-body\">\n                <div class=\"dr3d-modal-image\">\n                    <img id=\"modalImage\" alt=\"Wizualizacja\" \/>\n                <\/div>\n\n                <div class=\"dr3d-modal-info\">\n                    <div class=\"dr3d-modal-row\">\n                        <span>Powierzchnia u\u017cytkowa:<\/span>\n                        <strong id=\"modalArea\"><\/strong>\n                    <\/div>\n                    <div class=\"dr3d-modal-row\">\n                        <span>Liczba pokoi:<\/span>\n                        <strong id=\"modalRooms\"><\/strong>\n                    <\/div>\n                    <div class=\"dr3d-modal-row\">\n                        <span>Pi\u0119tro:<\/span>\n                        <strong id=\"modalFloor\"><\/strong>\n                    <\/div>\n                    <div class=\"dr3d-modal-row\" id=\"modalExtraRow\" style=\"display:none;\">\n                        <span id=\"modalExtraLabel\"><\/span>\n                        <strong id=\"modalExtraValue\"><\/strong>\n                    <\/div>\n                    <div class=\"dr3d-modal-row\">\n                        <span>Cena:<\/span>\n                        <strong id=\"modalPrice\"><\/strong>\n                    <\/div>\n                    <div class=\"dr3d-modal-row\" id=\"modalPriceM2Row\">\n                        <span>Cena za m\u00b2:<\/span>\n                        <strong id=\"modalPriceM2\"><\/strong>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"dr3d-modal-actions\">\n                <a href=\"\" id=\"modalPdfLink\" class=\"dr3d-btn dr3d-btn-pdf\" target=\"_blank\" rel=\"noopener noreferrer\">OTW\u00d3RZ PDF<\/a>\n                <a href=\"https:\/\/doubleroyal.pl\/kontakt\" class=\"dr3d-btn dr3d-btn-contact\">ZAPYTAJ<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n\n<\/div>\n\n<script>\n\/\/ Rozszerzenie DR3D o zak\u0142adki i dodatkowe dane\ndocument.addEventListener('DOMContentLoaded', function() {\n    \n    \/\/ Dane kom\u00f3rek lokatorskich\n    const storageUnits = [\n        { id: 'K1', level: 'Poziom -1', price: 15000, linkedApt: 'M1', status: 'available' },\n        { id: 'K2', level: 'Poziom -1', price: 15000, linkedApt: 'M2', status: 'available' },\n        { id: 'K3', level: 'Poziom -1', price: 15000, linkedApt: 'M3', status: 'reserved' },\n        { id: 'K4', level: 'Poziom -1', price: 15000, linkedApt: 'M4', status: 'reserved' },\n        { id: 'K5', level: 'Poziom -1', price: 15000, linkedApt: 'M5', status: 'available' },\n        { id: 'K6', level: 'Poziom -1', price: 15000, linkedApt: 'M6', status: 'reserved' },\n        { id: 'K7', level: 'Poziom -1', price: 15000, linkedApt: 'M7', status: 'available' },\n        { id: 'K8', level: 'Poziom -1', price: 15000, linkedApt: 'M8', status: 'available' },\n        { id: 'K9', level: 'Poziom -1', price: 15000, linkedApt: 'M9', status: 'available' },\n        { id: 'K10', level: 'Poziom -1', price: 15000, linkedApt: 'M10', status: 'available' },\n        { id: 'K11', level: 'Poziom -1', price: 15000, linkedApt: 'M11', status: 'reserved' },\n        { id: 'K12', level: 'Poziom -1', price: 15000, linkedApt: 'M12', status: 'reserved' },\n        { id: 'K13', level: 'Poziom -1', price: 15000, linkedApt: 'M13', status: 'available' },\n        { id: 'K14', level: 'Poziom -1', price: 15000, linkedApt: 'M14', status: 'available' },\n        { id: 'K15', level: 'Poziom -1', price: 15000, linkedApt: 'M15', status: 'available' },\n    ];\n\n    \/\/ Dane miejsc postojowych\n    const parkingSpots = [\n        { id: '1', level: 'Poziom -1', price: 55000, linkedApt: 'M1', status: 'available' },\n        { id: '2', level: 'Poziom -1', price: 55000, linkedApt: 'M2', status: 'available' },\n        { id: '3', level: 'Poziom -1', price: 55000, linkedApt: 'M3', status: 'reserved' },\n        { id: '4', level: 'Poziom -1', price: 55000, linkedApt: 'M4', status: 'reserved' },\n        { id: '5', level: 'Poziom -1', price: 55000, linkedApt: 'M5', status: 'available' },\n        { id: '6', level: 'Poziom -1', price: 55000, linkedApt: 'M6', status: 'reserved' },\n        { id: '7', level: 'Poziom -1', price: 55000, linkedApt: 'M7', status: 'available' },\n        { id: '8', level: 'Poziom -1', price: 55000, linkedApt: 'M8', status: 'available' },\n        { id: '9', level: 'Poziom -1', price: 55000, linkedApt: 'M9', status: 'available' },\n        { id: '10', level: 'Poziom -1', price: 55000, linkedApt: 'M10', status: 'available' },\n        { id: '11', level: 'Poziom -1', price: 55000, linkedApt: 'M11', status: 'reserved' },\n        { id: '12', level: 'Poziom -1', price: 55000, linkedApt: 'M12', status: 'reserved' },\n        { id: '13', level: 'Poziom -1', price: 55000, linkedApt: 'U1', status: 'reserved' },\n        { id: '14', level: 'Poziom -1', price: 55000, linkedApt: 'M14', status: 'available' },\n        { id: '15', level: 'Poziom -1', price: 55000, linkedApt: 'M15', status: 'available' },\n        { id: '16', level: 'Poziom -1', price: 55000, linkedApt: '-', status: 'available' },\n        { id: '17', level: 'Poziom -1', price: 55000, linkedApt: 'M13', status: 'available' },\n    ];\n\n    \/\/ Funkcja renderowania tabeli kom\u00f3rek\n    function renderStorageTable() {\n        const tbody = document.getElementById('dr3dStorageBody');\n        if (!tbody) return;\n        \n        tbody.innerHTML = '';\n        storageUnits.forEach(unit => {\n            const statusText = unit.status === 'available' ? 'Dost\u0119pne' :\n                             unit.status === 'reserved' ? 'Rezerwacja' : 'Sprzedane';\n            const statusClass = 'dr3d-status-' + unit.status;\n            \n            const row = document.createElement('tr');\n            row.innerHTML = `\n                <td><strong>${unit.id}<\/strong><\/td>\n                <td>${unit.level}<\/td>\n                <td><strong>${unit.price.toLocaleString('pl-PL')} z\u0142<\/strong><\/td>\n                <td>${unit.linkedApt}<\/td>\n                <td><span class=\"dr3d-status-badge ${statusClass}\">${statusText}<\/span><\/td>\n            `;\n            tbody.appendChild(row);\n        });\n    }\n\n    \/\/ Funkcja renderowania tabeli miejsc postojowych\n    function renderParkingTable() {\n        const tbody = document.getElementById('dr3dParkingBody');\n        if (!tbody) return;\n        \n        tbody.innerHTML = '';\n        parkingSpots.forEach(spot => {\n            const statusText = spot.status === 'available' ? 'Dost\u0119pne' :\n                             spot.status === 'reserved' ? 'Rezerwacja' : 'Sprzedane';\n            const statusClass = 'dr3d-status-' + spot.status;\n            \n            const row = document.createElement('tr');\n            row.innerHTML = `\n                <td><strong>${spot.id}<\/strong><\/td>\n                <td>${spot.level}<\/td>\n                <td><strong>${spot.price.toLocaleString('pl-PL')} z\u0142<\/strong><\/td>\n                <td>${spot.linkedApt}<\/td>\n                <td><span class=\"dr3d-status-badge ${statusClass}\">${statusText}<\/span><\/td>\n            `;\n            tbody.appendChild(row);\n        });\n    }\n\n    \/\/ Obs\u0142uga zak\u0142adek\n    const categoryTabs = document.querySelectorAll('.dr3d-category-tab');\n    const tableApartments = document.getElementById('dr3dTableApartments');\n    const tableStorage = document.getElementById('dr3dTableStorage');\n    const tableParking = document.getElementById('dr3dTableParking');\n\n    categoryTabs.forEach(tab => {\n        tab.addEventListener('click', function() {\n            \/\/ Usu\u0144 active ze wszystkich\n            categoryTabs.forEach(t => {\n                t.classList.remove('active');\n                t.style.background = '#ddd';\n                t.style.color = '#333';\n            });\n            \n            \/\/ Dodaj active do klikni\u0119tego\n            this.classList.add('active');\n            this.style.background = '#8b4513';\n            this.style.color = 'white';\n            \n            const category = this.dataset.category;\n            \n            \/\/ Ukryj wszystkie tabele\n            if (tableApartments) tableApartments.style.display = 'none';\n            if (tableStorage) tableStorage.style.display = 'none';\n            if (tableParking) tableParking.style.display = 'none';\n            \n            \/\/ Poka\u017c odpowiedni\u0105\n            if (category === 'apartments' && tableApartments) {\n                tableApartments.style.display = 'table';\n            } else if (category === 'storage' && tableStorage) {\n                tableStorage.style.display = 'table';\n                renderStorageTable();\n            } else if (category === 'parking' && tableParking) {\n                tableParking.style.display = 'table';\n                renderParkingTable();\n            }\n        });\n    });\n\n    \/\/ Nadpisz oryginaln\u0105 funkcj\u0119 renderTable \u017ceby doda\u0107 kolumn\u0119 cena\/m\u00b2\n    if (typeof DR3D !== 'undefined') {\n        const originalRenderTable = DR3D.renderTable;\n        \n        DR3D.renderTable = function() {\n            const tableBody = document.getElementById('dr3dTableBody');\n            if (!tableBody) return;\n\n            tableBody.innerHTML = '';\n\n            const filtered = this.apartments.filter(apt => {\n                return this.currentFilter === 'all' || apt.status === this.currentFilter;\n            });\n\n            filtered.forEach(apt => {\n                const statusText = apt.status === 'available' ? 'Dost\u0119pne' :\n                                 apt.status === 'reserved' ? 'Rezerwacja' : 'Sprzedane';\n                const statusClass = 'dr3d-status-' + apt.status;\n\n                const priceText = apt.price > 0 ?\n                    apt.price.toLocaleString('pl-PL') + ' z\u0142' : 'Zapytaj';\n                \n                \/\/ Oblicz cen\u0119 za m\u00b2\n                const pricePerM2 = apt.price > 0 && apt.area > 0 ?\n                    Math.round(apt.price \/ apt.area).toLocaleString('pl-PL') + ' z\u0142' : '-';\n\n                const row = document.createElement('tr');\n                row.innerHTML = `\n                    <td><strong>${apt.id}<\/strong><\/td>\n                    <td>${apt.floor}<\/td>\n                    <td>${apt.rooms > 0 ? apt.rooms : '-'}<\/td>\n                    <td>${apt.area.toFixed(2)} m\u00b2<\/td>\n                    <td><strong>${priceText}<\/strong><\/td>\n                    <td>${pricePerM2}<\/td>\n                    <td><span class=\"dr3d-status-badge ${statusClass}\">${statusText}<\/span><\/td>\n                    <td><button class=\"dr3d-table-btn\">Zobacz<\/button><\/td>\n                `;\n\n                const btn = row.querySelector('.dr3d-table-btn');\n                btn.addEventListener('click', () => this.openModal(apt));\n\n                tableBody.appendChild(row);\n            });\n\n            \/\/ Renderuj te\u017c accordion dla mobile\n            this.renderAccordion();\n        };\n        \n        \/\/ Rozszerz openModal o cen\u0119 za m\u00b2\n        const originalOpenModal = DR3D.openModal;\n        DR3D.openModal = function(apt) {\n            originalOpenModal.call(this, apt);\n            \n            \/\/ Dodaj cen\u0119 za m\u00b2\n            const priceM2El = document.getElementById('modalPriceM2');\n            const priceM2Row = document.getElementById('modalPriceM2Row');\n            if (priceM2El && apt.price > 0 && apt.area > 0) {\n                const pricePerM2 = Math.round(apt.price \/ apt.area).toLocaleString('pl-PL') + ' z\u0142';\n                priceM2El.textContent = pricePerM2;\n                if (priceM2Row) priceM2Row.style.display = 'flex';\n            } else if (priceM2Row) {\n                priceM2Row.style.display = 'none';\n            }\n        };\n        \n        \/\/ Od\u015bwie\u017c tabel\u0119\n        setTimeout(() => {\n            DR3D.renderTable();\n        }, 100);\n    }\n});\n<\/script>\n\n<\/section>\n\n<!-- FOOTER -->\n<footer class=\"dr-footer\">\n    <div class=\"dr-footer-container\">\n        <div class=\"dr-footer-top\">\n            <div class=\"dr-footer-logo\">\n                <a href=\"https:\/\/doubleroyalresidence.pl\/en\/\">\n                    <img decoding=\"async\" src=\"https:\/\/doubleroyal.pl\/wp-content\/uploads\/2025\/11\/Logo.avif\" alt=\"Double Royal Residence\">\n                <\/a>\n            <\/div>\n\n            <nav class=\"dr-footer-menu\">\n                <a href=\"https:\/\/doubleroyalresidence.pl\/en\/oferta\/\" data-translate=\"footer-offer\">OFFER<\/a>\n                <a href=\"https:\/\/doubleroyalresidence.pl\/en\/apartamenty\/\" data-translate=\"footer-apartments\">APARTMENTS<\/a>\n                <a href=\"https:\/\/doubleroyalresidence.pl\/en\/kontakt\/\" data-translate=\"footer-contact\">CONTACT<\/a>\n            <\/nav>\n\n            <div class=\"dr-footer-contacts-wrapper\">\n                <div class=\"dr-footer-contact\">\n                    <div class=\"dr-footer-contact-header\">\n                        <div class=\"dr-footer-contact-icon\">\n                            <svg viewbox=\"0 0 24 24\" fill=\"none\">\n                                <path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"\/>\n                            <\/svg>\n                        <\/div>\n                        <span class=\"dr-footer-contact-title\" data-translate=\"footer-sales-office\">BIURO SPRZEDA\u017bY<br>MIESZKA\u0143<\/span>\n                    <\/div>\n                    <a href=\"tel:+48456687556\" class=\"dr-footer-phone\">456 687 556<\/a>\n                    <p class=\"dr-footer-address\" data-translate=\"footer-address-1\">Jerzego Siwi\u0144skiego 11 \/ 113,<br>05-120 Legionowo<\/p>\n                <\/div>\n\n                <div class=\"dr-footer-contact\">\n                    <div class=\"dr-footer-contact-header\">\n                        <div class=\"dr-footer-contact-icon\">\n                            <svg viewbox=\"0 0 24 24\" fill=\"none\">\n                                <path d=\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"\/>\n                                <polyline points=\"9 22 9 12 15 12 15 22\"\/>\n                            <\/svg>\n                        <\/div>\n                        <span class=\"dr-footer-contact-title\">DOUBLE ROYAL<br>RESIDENCE<\/span>\n                    <\/div>\n                    <a href=\"tel:+48876556435\" class=\"dr-footer-phone\">876 556 435<\/a>\n                    <p class=\"dr-footer-address\" data-translate=\"footer-address-2\">ul. Kr\u00f3lowej Jadwigi 2,<br>05-120 Legionowo<\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"dr-footer-divider\"><\/div>\n\n        <div class=\"dr-footer-bottom\">\n            <p class=\"dr-footer-copyright\">2025 | Double Royal Residence<\/p>\n            <div class=\"dr-footer-legal\">\n                <a href=\"https:\/\/doubleroyalresidence.pl\/en\/regulamin\/\" data-translate=\"footer-terms\">Regulamin<\/a>\n                <a href=\"https:\/\/doubleroyalresidence.pl\/en\/polityka-prywatnosci\/\" data-translate=\"footer-privacy\">Polityka prywatno\u015bci<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/footer>\n\n<script>\n\/\/ ============================================\n\/\/ SYSTEM T\u0141UMACZE\u0143 Z LOCALSTORAGE\n\/\/ ============================================\n\n\/\/ S\u0142ownik t\u0142umacze\u0144\nconst translations = {\n    pl: {\n        'nav-developer': 'O DEWELOPERZE',\n        'nav-apartments': 'APARTAMENTY',\n        'nav-offer': 'OFERTA',\n        'nav-contact': 'KONTAKT',\n        'hero-social': 'APARTAMENTY',\n        'hero-title': 'Twoje apartamenty',\n        'hero-subtitle': 'MIEJSCE, KT\u00d3RE ZACHWYCA',\n        'hero-button': 'SPRAWD\u0179',\n        'footer-offer': 'OFERTA',\n        'footer-apartments': 'APARTAMENTY',\n        'footer-contact': 'KONTAKT',\n        'footer-sales-office': 'BIURO SPRZEDA\u017bY<br>MIESZKA\u0143',\n        'footer-address-1': 'Jerzego Siwi\u0144skiego 11 \/ 113,<br>05-120 Legionowo',\n        'footer-address-2': 'ul. Kr\u00f3lowej Jadwigi 2,<br>05-120 Legionowo',\n        'footer-terms': 'Regulamin',\n        'footer-privacy': 'Polityka prywatno\u015bci'\n    },\n    en: {\n        'nav-developer': 'ABOUT DEVELOPER',\n        'nav-apartments': 'APARTMENTS',\n        'nav-offer': 'OFFER',\n        'nav-contact': 'CONTACT',\n        'hero-social': 'APARTMENTS',\n        'hero-title': 'Your apartments',\n        'hero-subtitle': 'A PLACE THAT CAPTIVATES',\n        'hero-button': 'CHECK',\n        'footer-offer': 'OFFER',\n        'footer-apartments': 'APARTMENTS',\n        'footer-contact': 'CONTACT',\n        'footer-sales-office': 'SALES OFFICE<br>APARTMENTS',\n        'footer-address-1': 'Jerzego Siwi\u0144skiego 11 \/ 113,<br>05-120 Legionowo',\n        'footer-address-2': 'ul. Kr\u00f3lowej Jadwigi 2,<br>05-120 Legionowo',\n        'footer-terms': 'Terms & Conditions',\n        'footer-privacy': 'Privacy Policy'\n    },\n            ua: {\n                'nav-home': '\u0413\u041e\u041b\u041e\u0412\u041d\u0410',\n                'nav-developer': '\u041f\u0420\u041e \u0417\u0410\u0411\u0423\u0414\u041e\u0412\u041d\u0418\u041a\u0410',\n                'nav-apartments': '\u0410\u041f\u0410\u0420\u0422\u0410\u041c\u0415\u041d\u0422\u0418',\n                'nav-offer': '\u041f\u0420\u041e\u041f\u041e\u0417\u0418\u0426\u0406\u042f',\n                'nav-contact': '\u041a\u041e\u041d\u0422\u0410\u041a\u0422',\n                'hero-title': '\u041d\u0430\u0448\u0456 \u0430\u043f\u0430\u0440\u0442\u0430\u043c\u0435\u043d\u0442\u0438',\n                'hero-subtitle': '\u0412\u0456\u0434\u043a\u0440\u0438\u0439\u0442\u0435 \u043f\u0440\u043e\u0441\u0442\u0456\u0440, \u0441\u0442\u0432\u043e\u0440\u0435\u043d\u0438\u0439 \u0437 \u0434\u0443\u043c\u043a\u043e\u044e \u043f\u0440\u043e \u0412\u0430\u0441',\n                'hero-button': '\u041f\u0415\u0420\u0415\u0413\u041b\u042f\u041d\u0423\u0422\u0418 \u041f\u0420\u041e\u041f\u041e\u0417\u0418\u0426\u0406\u042e',\n                'hero-social': '\u0421\u043b\u0456\u0434\u043a\u0443\u0439\u0442\u0435 \u0437\u0430 \u043d\u0430\u043c\u0438',\n                'footer-offer': '\u041f\u0420\u041e\u041f\u041e\u0417\u0418\u0426\u0406\u042f',\n                'footer-apartments': '\u0410\u041f\u0410\u0420\u0422\u0410\u041c\u0415\u041d\u0422\u0418',\n                'footer-contact': '\u041a\u041e\u041d\u0422\u0410\u041a\u0422',\n                'footer-sales-office': '\u041e\u0424\u0406\u0421 \u041f\u0420\u041e\u0414\u0410\u0416\u0423',\n                'footer-terms': '\u0420\u0435\u0433\u043b\u0430\u043c\u0435\u043d\u0442',\n                'footer-privacy': '\u041f\u043e\u043b\u0456\u0442\u0438\u043a\u0430 \u043a\u043e\u043d\u0444\u0456\u0434\u0435\u043d\u0446\u0456\u0439\u043d\u043e\u0441\u0442\u0456'\n            }\n        };\n\n\/\/ Odczytaj zapisany j\u0119zyk lub ustaw domy\u015blny\nlet currentLang = localStorage.getItem('selectedLanguage') || 'pl';\n\n\/\/ Funkcja t\u0142umaczenia strony\nfunction translatePage(lang) {\n    currentLang = lang;\n    \n    \/\/ Zapisz wyb\u00f3r w localStorage\n    localStorage.setItem('selectedLanguage', lang);\n\n    document.querySelectorAll('[data-translate]').forEach(element => {\n        const key = element.getAttribute('data-translate');\n        const translation = translations[lang][key];\n\n        if (translation) {\n            element.innerHTML = translation;\n        }\n    });\n\n    \/\/ Aktualizuj przyciski j\u0119zyka - desktop\n    updateLanguageButtons(lang, false);\n    \n    \/\/ Aktualizuj przyciski j\u0119zyka - mobile\n    updateLanguageButtons(lang, true);\n}\n\n\/\/ Funkcja pomocnicza do aktualizacji przycisk\u00f3w\nfunction updateLanguageButtons(activeId, inactiveId, lang) {\n    const activeBtn = document.getElementById(activeId);\n    const inactiveBtn = document.getElementById(inactiveId);\n\n    if (activeBtn && inactiveBtn) {\n        if (lang === 'pl') {\n            activeBtn.textContent = 'PL';\n            inactiveBtn.textContent = 'EN';\n        } else {\n            activeBtn.textContent = 'EN';\n            inactiveBtn.textContent = 'PL';\n        }\n    }\n}\n\n\/\/ Funkcja zamykania menu mobilnego\nfunction closeMobileMenu() {\n    const hamburger = document.getElementById('hamburger');\n    const mobileMenu = document.getElementById('mobileMenu');\n    \n    if (hamburger && mobileMenu) {\n        hamburger.classList.remove('active');\n        mobileMenu.classList.remove('active');\n        document.body.style.overflow = '';\n    }\n}\n\n\/\/ Inicjalizacja przy za\u0142adowaniu strony\ndocument.addEventListener('DOMContentLoaded', () => {\n    \/\/ Zastosuj zapisany j\u0119zyk\n    if (currentLang === 'en') {\n        translatePage('en');\n    }\n\n    \/\/ Event listenery dla przycisk\u00f3w j\u0119zyka - DESKTOP\n    var langPL = document.getElementById('langPL');\n    var langEN = document.getElementById('langEN');\n    var langUA = document.getElementById('langUA');\n    if (langPL) langPL.addEventListener('click', function() { translatePage('pl'); });\n    if (langEN) langEN.addEventListener('click', function() { translatePage('en'); });\n    if (langUA) langUA.addEventListener('click', function() { translatePage('ua'); });\n\n    \/\/ Event listenery dla przycisk\u00f3w j\u0119zyka - MOBILE\n    var langPLMobile = document.getElementById('langPLMobile');\n    var langENMobile = document.getElementById('langENMobile');\n    var langUAMobile = document.getElementById('langUAMobile');\n    if (langPLMobile) langPLMobile.addEventListener('click', function() { translatePage('pl'); });\n    if (langENMobile) langENMobile.addEventListener('click', function() { translatePage('en'); });\n    if (langUAMobile) langUAMobile.addEventListener('click', function() { translatePage('ua'); });\n\n    \/\/ Hamburger Menu\n    const hamburger = document.getElementById('hamburger');\n    const mobileMenu = document.getElementById('mobileMenu');\n    const mobileClose = document.getElementById('mobileClose');\n\n    if (hamburger && mobileMenu) {\n        hamburger.addEventListener('click', () => {\n            hamburger.classList.toggle('active');\n            mobileMenu.classList.toggle('active');\n            document.body.style.overflow = mobileMenu.classList.contains('active') ? 'hidden' : '';\n        });\n\n        if (mobileClose) {\n            mobileClose.addEventListener('click', closeMobileMenu);\n        }\n\n        document.querySelectorAll('.mobile-menu-link').forEach(link => {\n            link.addEventListener('click', closeMobileMenu);\n        });\n    }\n\n    \/\/ Dots\n    const dots = document.querySelectorAll('.dr-apart-dot');\n    dots.forEach((dot, index) => {\n        dot.addEventListener('click', () => {\n            dots.forEach(d => d.classList.remove('active'));\n            dot.classList.add('active');\n        });\n    });\n});\n<\/script>\n\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Apartamenty &#8211; Double Royal Residence O DEWELOPERZE APARTAMENTY OFERTA KONTAKT PL | EN \u00d7 O DEWELOPERZE APARTAMENTY OFERTA KONTAKT PL | EN APARTAMENTY Twoje apartamenty MIEJSCE, KT\u00d3RE ZACHWYCA SPRAWD\u0179 OFERTA APARTAMENTY KONTAKT BIURO SPRZEDA\u017bYMIESZKA\u0143 456 687 556 Jerzego Siwi\u0144skiego 11 \/ 113,05-120 Legionowo DOUBLE ROYALRESIDENCE 876 556 435 ul. Kr\u00f3lowej Jadwigi 2,05-120 Legionowo 2025 | [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-243","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/doubleroyalresidence.pl\/en\/wp-json\/wp\/v2\/pages\/243","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/doubleroyalresidence.pl\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/doubleroyalresidence.pl\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/doubleroyalresidence.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/doubleroyalresidence.pl\/en\/wp-json\/wp\/v2\/comments?post=243"}],"version-history":[{"count":49,"href":"https:\/\/doubleroyalresidence.pl\/en\/wp-json\/wp\/v2\/pages\/243\/revisions"}],"predecessor-version":[{"id":839,"href":"https:\/\/doubleroyalresidence.pl\/en\/wp-json\/wp\/v2\/pages\/243\/revisions\/839"}],"wp:attachment":[{"href":"https:\/\/doubleroyalresidence.pl\/en\/wp-json\/wp\/v2\/media?parent=243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}