{"id":130,"date":"2026-09-15T02:49:11","date_gmt":"2026-09-15T02:49:11","guid":{"rendered":"https:\/\/volksample.com.au\/elicon\/?page_id=130"},"modified":"2026-10-02T05:38:45","modified_gmt":"2026-10-02T05:38:45","slug":"design-build","status":"publish","type":"page","link":"https:\/\/volksample.com.au\/elicon\/design-build\/","title":{"rendered":"Design &amp; Build"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"130\" class=\"elementor elementor-130\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5e01914 e-con-full e-flex e-con e-parent\" data-id=\"5e01914\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-0dbe0f3 e-con-full e-flex e-con e-child\" data-id=\"0dbe0f3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5d01c32 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"5d01c32\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Perth\u2019s Top Design &amp; Build Services for Residential &amp; Commercial Projects<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5d20755 e-flex e-con-boxed e-con e-parent\" data-id=\"5d20755\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-0796430 e-con-full e-flex e-con e-child\" data-id=\"0796430\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dc68b8b elementor-widget elementor-widget-heading\" data-id=\"dc68b8b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">DESIGN &amp; BUILD SERVICES OVERVIEW<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-58320ff elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"58320ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Specialist Designers &amp; Builders Working as One Team<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d22e908 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"d22e908\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>At Elicons Enterprises, design and construction are never handled in isolation. Our expert designers and builders work as one team from the very first concept, so every idea is shaped with real buildability and budget in mind from day one. This collaborative approach removes the guesswork that comes from separate designers and contractors working apart, giving Perth clients a smoother process and a more accurate result, whether the project is a custom home, a granny flat or a commercial build.<\/p><p>Backed by genuine civil engineering expertise, our team plans every residential and commercial project around your block, brief and timeline before construction begins. That same collaboration continues through every stage of the build, keeping design intent, materials and construction fully aligned from concept to handover, and giving you one accountable team throughout your Perth design and building project.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7c7153f e-con-full e-flex elementor-invisible e-con e-child\" data-id=\"7c7153f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;zoomIn&quot;}\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-baacd05 e-flex e-con-boxed e-con e-parent\" data-id=\"baacd05\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b76ddd8 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"b76ddd8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Our Services<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a1fc99c e-grid e-con-full e-con e-child\" data-id=\"a1fc99c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-4c6ff9d e-con-full e-flex e-con e-child\" data-id=\"4c6ff9d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-c81fbd1 e-con-full e-flex elementor-invisible e-con e-child\" data-id=\"c81fbd1\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;zoomIn&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-ac46a63 e-con-full e-flex e-con e-child\" data-id=\"ac46a63\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-620f5dd e-con-full e-flex e-con e-child\" data-id=\"620f5dd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dcdaee9 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"dcdaee9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Residential Design &amp; Build Services<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-893c55b elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"893c55b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Custom homes and residential projects designed to suit your lifestyle, land and future needs.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c795e16 e-con-full e-flex e-con e-child\" data-id=\"c795e16\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-dcef97c e-con-full e-flex elementor-invisible e-con e-child\" data-id=\"dcef97c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;zoomIn&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-c9bd3a0 e-con-full e-flex e-con e-child\" data-id=\"c9bd3a0\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d32cc38 e-con-full e-flex e-con e-child\" data-id=\"d32cc38\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-33c042e elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"33c042e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Commercial Design &amp; Build Services<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-092f38c elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"092f38c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Commercial buildings designed and constructed to support operational performance, compliance and business growth.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-45ba577 e-flex e-con-boxed e-con e-parent\" data-id=\"45ba577\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9170c9d elementor-widget elementor-widget-heading\" data-id=\"9170c9d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">STANDARD HOME DESIGNS<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-857dcc4 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"857dcc4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Explore Our Home Designs for Every Lifestyle and Budget<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e19ee6c elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"e19ee6c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Thoughtfully designed homes tailored to different lifestyles, family sizes, block types and project requirements.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-934ef06 e-flex e-con-boxed e-con e-parent\" data-id=\"934ef06\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b4493af elementor-widget elementor-widget-heading\" data-id=\"b4493af\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">3 Bedroom Home Designs<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1296520 e-grid e-con-full e-con e-child\" data-id=\"1296520\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-b4d7164 e-con-full e-flex elementor-invisible e-con e-child\" data-id=\"b4d7164\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;zoomIn&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-c3bcb62 e-con-full e-flex e-con e-child\" data-id=\"c3bcb62\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-e7e5d74 e-con-full e-flex e-con e-child\" data-id=\"e7e5d74\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4a1f9dd elementor-widget elementor-widget-text-editor\" data-id=\"4a1f9dd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Banksia<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-22204a7 floorplan-hover elementor-widget elementor-widget-html\" data-id=\"22204a7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"floorplan-hover-widget\">\n\n    <!-- CHANGE ONLY THIS IMAGE URL -->\n    <div class=\"floorplan-icon\"\n         data-floorplan=\"https:\/\/volksample.com.au\/elicon\/wp-content\/uploads\/2026\/09\/Banksia-Floorplan.webp\">\n\n        <!-- Expand Icon -->\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n             width=\"40\"\n             height=\"40\"\n             viewBox=\"0 0 40 40\"\n             fill=\"none\">\n\n            <path d=\"M36.25 22.5C36.5815 22.5 36.8995 22.3683 37.1339 22.1339C37.3683 21.8995 37.5 21.5815 37.5 21.25V10C37.5 9.33696 37.2366 8.70107 36.7678 8.23223C36.2989 7.76339 35.663 7.5 35 7.5H5C4.33696 7.5 3.70107 7.76339 3.23223 8.23223C2.76339 8.70107 2.5 9.33696 2.5 10V30C2.5 30.663 2.76339 31.2989 3.23223 31.7678C3.70107 32.2366 3.70107 32.5 5 32.5H35C35.663 32.5 36.2989 32.2366 36.7678 31.7678C37.2366 31.2989 37.5 30.663 37.5 30V28.75C37.5 28.4185 37.3683 28.1005 37.1339 27.8661C36.8995 27.6317 36.5815 27.5 36.25 27.5C35.9185 27.5 35.6005 27.6317 35.3661 27.8661C35.1317 28.1005 35 28.4185 35 28.75V30H15V22.5C15 22.1685 14.8683 22.5 13.75 21.25C13.4185 21.25 13.1005 21.3817 12.8661 21.6161C12.6317 21.8505 12.5 22.1685 12.5 22.5V30H5V10H25V15H20C19.6685 15 19.3505 15.1317 19.1161 15.3661C18.8817 15.6005 18.75 15.9185 18.75 16.25C18.75 16.5815 18.8817 16.8995 19.1161 17.1339C19.3505 17.3683 19.6685 17.5 20 17.5H25V22.5C25 22.8315 25.1317 23.1495 25.3661 23.3839C25.6005 23.6183 25.9185 23.75 26.25 23.75C26.5815 23.75 26.8995 23.6183 27.1339 23.3839C27.3683 23.1495 27.5 22.8315 27.5 22.5V10H35V21.25C35 21.5815 35.1317 21.8995 35.3661 22.1339C35.6005 22.3683 35.9185 22.5 36.25 22.5Z\"\n                  fill=\"black\"\/>\n        <\/svg>\n\n    <\/div>\n\n<\/div>\n\n\n<style>\n\n\/* =========================================\n   ICON\n   ========================================= *\/\n\n.floorplan-hover-widget {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n}\n\n.floorplan-icon {\n    width: 40px;\n    height: 40px;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    cursor: pointer;\n\n    position: relative;\n    z-index: 5;\n}\n\n.floorplan-icon svg {\n    width: 40px;\n    height: 40px;\n    display: block;\n}\n\n\n\/* =========================================\n   FLOOR PLAN PREVIEW\n   ========================================= *\/\n\n.floorplan-preview {\n    position: fixed;\n\n    z-index: 999999;\n\n    max-width: 400px;\n    max-height: 550px;\n\n    width: auto;\n    height: auto;\n\n    padding: 8px;\n\n    background: #ffffff;\n\n    border: none;\n    border-radius: 18px;\n\n    box-sizing: border-box;\n\n    object-fit: contain;\n\n    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.22);\n\n    opacity: 0;\n    visibility: hidden;\n\n    \/*\n     * IMPORTANT:\n     * The preview itself can receive mouse events.\n     * This prevents the hover from breaking when\n     * moving the mouse from the icon toward the image.\n     *\/\n    pointer-events: auto;\n\n    transform: scale(0.96);\n\n    transform-origin: bottom right;\n\n    transition:\n        opacity 0.2s ease,\n        transform 0.2s ease;\n}\n\n.floorplan-preview.show {\n    opacity: 1;\n    visibility: visible;\n\n    transform: scale(1);\n}\n\n\n\/* =========================================\n   INVISIBLE HOVER BRIDGE\n   ========================================= *\/\n\n.floorplan-hover-bridge {\n    position: fixed;\n\n    z-index: 999998;\n\n    pointer-events: auto;\n\n    background: transparent;\n}\n\n\n\/* =========================================\n   MOBILE\n   ========================================= *\/\n\n@media (max-width: 767px) {\n\n    .floorplan-preview {\n        max-width: 85vw;\n        max-height: 70vh;\n\n        padding: 5px;\n\n        border-radius: 14px;\n    }\n\n}\n\n<\/style>\n\n\n<script>\n(function () {\n\n    \/*\n     * Prevent this widget from being initialized\n     * more than once.\n     *\/\n\n    const widget = document.currentScript.parentElement;\n\n    if (widget.dataset.floorplanInitialized === 'true') {\n        return;\n    }\n\n    widget.dataset.floorplanInitialized = 'true';\n\n\n    \/*\n     * Find icon\n     *\/\n\n    const icon = widget.querySelector('.floorplan-icon');\n\n    if (!icon) {\n        return;\n    }\n\n\n    \/*\n     * Get image URL\n     *\/\n\n    const imageURL = icon.getAttribute('data-floorplan');\n\n    if (!imageURL) {\n        return;\n    }\n\n\n    \/*\n     * Create preview image\n     *\/\n\n    const preview = document.createElement('img');\n\n    preview.className = 'floorplan-preview';\n\n    preview.src = imageURL;\n\n    preview.alt = 'Floor Plan';\n\n\n    \/*\n     * Add preview to body\n     *\/\n\n    document.body.appendChild(preview);\n\n\n    \/*\n     * Create invisible bridge between\n     * icon and preview.\n     *\n     * This is what fixes the mouse hover issue.\n     *\/\n\n    const bridge = document.createElement('div');\n\n    bridge.className = 'floorplan-hover-bridge';\n\n    document.body.appendChild(bridge);\n\n\n    let hideTimer = null;\n\n    let isVisible = false;\n\n\n    \/*\n     * =========================================\n     * POSITION PREVIEW\n     * =========================================\n     *\/\n\n    function positionPreview() {\n\n        const rect = icon.getBoundingClientRect();\n\n        const gap = 12;\n\n        \/*\n         * TOP LEFT\n         *\/\n\n        let left =\n            rect.left -\n            preview.offsetWidth -\n            gap;\n\n        let top =\n            rect.top -\n            preview.offsetHeight -\n            gap;\n\n\n        \/*\n         * If there isn't enough room\n         * on the LEFT, move to RIGHT.\n         *\/\n\n        if (left < 15) {\n\n            left =\n                rect.right +\n                gap;\n        }\n\n\n        \/*\n         * If there isn't enough room\n         * ABOVE, move BELOW.\n         *\/\n\n        if (top < 15) {\n\n            top =\n                rect.bottom +\n                gap;\n        }\n\n\n        \/*\n         * Keep inside right edge.\n         *\/\n\n        if (\n            left + preview.offsetWidth >\n            window.innerWidth - 15\n        ) {\n\n            left =\n                window.innerWidth -\n                preview.offsetWidth -\n                15;\n        }\n\n\n        \/*\n         * Keep inside bottom edge.\n         *\/\n\n        if (\n            top + preview.offsetHeight >\n            window.innerHeight - 15\n        ) {\n\n            top =\n                window.innerHeight -\n                preview.offsetHeight -\n                15;\n        }\n\n\n        \/*\n         * Keep inside left edge.\n         *\/\n\n        if (left < 15) {\n            left = 15;\n        }\n\n\n        \/*\n         * Keep inside top edge.\n\n         *\/\n\n        if (top < 15) {\n            top = 15;\n        }\n\n\n        \/*\n         * Set preview position.\n         *\/\n\n        preview.style.left =\n            left + 'px';\n\n        preview.style.top =\n            top + 'px';\n\n\n        \/*\n         * =====================================\n         * HOVER BRIDGE\n         * =====================================\n         *\n         * Create an invisible area between\n         * the icon and the image.\n         *\/\n\n        const iconRect =\n            icon.getBoundingClientRect();\n\n        const previewRect =\n            preview.getBoundingClientRect();\n\n\n        const bridgeLeft =\n            Math.min(\n                iconRect.left,\n                previewRect.left\n            );\n\n        const bridgeTop =\n            Math.min(\n                iconRect.top,\n                previewRect.top\n            );\n\n        const bridgeRight =\n            Math.max(\n                iconRect.right,\n                previewRect.right\n            );\n\n        const bridgeBottom =\n            Math.max(\n                iconRect.bottom,\n                previewRect.bottom\n            );\n\n\n        bridge.style.left =\n            bridgeLeft + 'px';\n\n        bridge.style.top =\n            bridgeTop + 'px';\n\n        bridge.style.width =\n            (bridgeRight - bridgeLeft) + 'px';\n\n        bridge.style.height =\n            (bridgeBottom - bridgeTop) + 'px';\n\n\n        \/*\n         * Show preview.\n         *\/\n\n        preview.classList.add('show');\n\n        bridge.style.display = 'block';\n\n        isVisible = true;\n    }\n\n\n    \/*\n     * =========================================\n     * SHOW\n     * =========================================\n     *\/\n\n    function showPreview() {\n\n        clearTimeout(hideTimer);\n\n\n        \/*\n         * Wait for image dimensions.\n         *\/\n\n        if (preview.complete) {\n\n            positionPreview();\n\n        } else {\n\n            preview.onload = function () {\n                positionPreview();\n            };\n\n        }\n\n    }\n\n\n    \/*\n     * =========================================\n     * HIDE\n     * =========================================\n     *\/\n\n    function hidePreview() {\n\n        clearTimeout(hideTimer);\n\n        hideTimer = setTimeout(function () {\n\n            \/*\n             * Don't hide if mouse is currently\n             * over icon or preview.\n             *\/\n\n            if (\n                icon.matches(':hover') ||\n                preview.matches(':hover') ||\n                bridge.matches(':hover')\n            ) {\n                return;\n            }\n\n\n            preview.classList.remove('show');\n\n            bridge.style.display = 'none';\n\n            isVisible = false;\n\n        }, 100);\n\n    }\n\n\n    \/*\n     * =========================================\n     * ICON MOUSE ENTER\n     * =========================================\n     *\/\n\n    icon.addEventListener(\n        'mouseenter',\n        function () {\n\n            showPreview();\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * ICON MOUSE LEAVE\n     * =========================================\n     *\/\n\n    icon.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * PREVIEW MOUSE ENTER\n     * =========================================\n     *\/\n\n    preview.addEventListener(\n        'mouseenter',\n        function () {\n\n            clearTimeout(hideTimer);\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * PREVIEW MOUSE LEAVE\n     * =========================================\n     *\/\n\n    preview.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * BRIDGE MOUSE ENTER\n     * =========================================\n     *\/\n\n    bridge.addEventListener(\n        'mouseenter',\n        function () {\n\n            clearTimeout(hideTimer);\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * BRIDGE MOUSE LEAVE\n     * =========================================\n     *\/\n\n    bridge.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * TOUCH \/ MOBILE\n     * =========================================\n     *\/\n\n    icon.addEventListener(\n        'click',\n        function (event) {\n\n            \/*\n             * Only use click behavior on\n             * devices without real hover.\n             *\/\n\n            if (\n                !window.matchMedia(\n                    '(hover: hover)'\n                ).matches\n            ) {\n\n                event.stopPropagation();\n\n                if (isVisible) {\n\n                    hidePreview();\n\n                } else {\n\n                    showPreview();\n\n                }\n\n            }\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * CLICK OUTSIDE\n     * =========================================\n     *\/\n\n    document.addEventListener(\n        'click',\n        function (event) {\n\n            if (\n                isVisible &&\n                !icon.contains(event.target) &&\n                !preview.contains(event.target)\n            ) {\n\n                hidePreview();\n\n            }\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * SCROLL\n     * =========================================\n     *\/\n\n    window.addEventListener(\n        'scroll',\n        function () {\n\n            preview.classList.remove('show');\n\n            bridge.style.display = 'none';\n\n            isVisible = false;\n\n        },\n        {\n            passive: true\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * RESIZE\n     * =========================================\n     *\/\n\n    window.addEventListener(\n        'resize',\n        function () {\n\n            if (isVisible) {\n\n                positionPreview();\n\n            }\n\n        }\n    );\n\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7436493 e-con-full e-flex elementor-invisible e-con e-child\" data-id=\"7436493\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;zoomIn&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-c82d811 e-con-full e-flex e-con e-child\" data-id=\"c82d811\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-f53f335 e-con-full e-flex e-con e-child\" data-id=\"f53f335\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-965bce7 elementor-widget elementor-widget-text-editor\" data-id=\"965bce7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Acacia<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-271df53 floorplan-hover elementor-widget elementor-widget-html\" data-id=\"271df53\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"floorplan-hover-widget\">\n\n    <!-- Acacia floor plan -->\n    <div class=\"floorplan-icon\"\n         data-floorplan=\"https:\/\/volksample.com.au\/elicon\/wp-content\/uploads\/2026\/09\/Acacia-Floor-Plan.webp\">\n\n        <!-- Expand Icon -->\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n             width=\"40\"\n             height=\"40\"\n             viewBox=\"0 0 40 40\"\n             fill=\"none\">\n\n            <path d=\"M36.25 22.5C36.5815 22.5 36.8995 22.3683 37.1339 22.1339C37.3683 21.8995 37.5 21.5815 37.5 21.25V10C37.5 9.33696 37.2366 8.70107 36.7678 8.23223C36.2989 7.76339 35.663 7.5 35 7.5H5C4.33696 7.5 3.70107 7.76339 3.70107 8.23223C2.76339 8.70107 2.5 9.33696 2.5 10V30C2.5 30.663 2.76339 31.2989 3.23223 31.7678C3.70107 32.2366 4.33696 32.5 5 32.5H35C35.663 32.5 36.2989 32.2366 36.7678 31.7678C37.2366 31.2989 37.5 30.663 37.5 30V28.75C37.5 28.4185 37.3683 28.1005 37.1339 27.8661C36.8995 27.6317 36.5815 27.5 36.25 27.5C35.9185 27.5 35.6005 27.6317 35.3661 27.8661C35.1317 28.1005 35 28.4185 35 28.75V30H15V22.5C15 22.1685 14.8683 21.8505 14.6339 21.6161C14.3995 21.3817 14.0815 21.25 13.75 21.25C13.4185 21.25 13.1005 21.3817 12.8661 21.6161C12.6317 21.8505 12.5 22.1685 12.5 22.5V30H5V10H25V15H20C19.6685 15 19.3505 15.1317 19.1161 15.3661C18.8817 15.6005 18.75 15.9185 18.75 16.25C18.75 16.5815 18.8817 16.8995 19.1161 17.1339C19.3505 17.3683 19.6685 17.5 20 17.5H25V22.5C25 22.8315 25.1317 23.1495 25.3661 23.3839C25.6005 23.6183 25.9185 23.75 26.25 23.75C26.5815 23.75 26.8995 23.6183 27.1339 23.3839C27.3683 23.1495 27.5 22.8315 27.5 22.5V10H35V21.25C35 21.5815 35.1317 21.8995 35.3661 22.1339C35.6005 22.3683 35.9185 22.5 36.25 22.5Z\"\n                  fill=\"black\"\/>\n        <\/svg>\n\n    <\/div>\n\n<\/div>\n\n\n<style>\n\n\/* =========================================\n   ICON\n   ========================================= *\/\n\n.floorplan-hover-widget {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n}\n\n.floorplan-icon {\n    width: 40px;\n    height: 40px;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    cursor: pointer;\n\n    position: relative;\n    z-index: 5;\n}\n\n.floorplan-icon svg {\n    width: 40px;\n    height: 40px;\n    display: block;\n}\n\n\n\/* =========================================\n   FLOOR PLAN PREVIEW\n   ========================================= *\/\n\n.floorplan-preview {\n    position: fixed;\n    z-index: 999999;\n\n    max-width: 400px;\n    max-height: 550px;\n\n    width: auto;\n    height: auto;\n\n    padding: 8px;\n\n    background: #ffffff;\n\n    border: none;\n    border-radius: 18px;\n\n    box-sizing: border-box;\n\n    object-fit: contain;\n\n    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.22);\n\n    opacity: 0;\n    visibility: hidden;\n\n    \/*\n     * Allow mouse interaction with the preview.\n     *\/\n    pointer-events: auto;\n\n    transform: scale(0.96);\n\n    transform-origin: bottom right;\n\n    transition:\n        opacity 0.2s ease,\n        transform 0.2s ease;\n}\n\n.floorplan-preview.show {\n    opacity: 1;\n    visibility: visible;\n    transform: scale(1);\n}\n\n\n\/* =========================================\n   INVISIBLE HOVER BRIDGE\n   ========================================= *\/\n\n.floorplan-hover-bridge {\n    position: fixed;\n    z-index: 999998;\n\n    pointer-events: auto;\n\n    background: transparent;\n\n    display: none;\n}\n\n\n\/* =========================================\n   MOBILE\n   ========================================= *\/\n\n@media (max-width: 767px) {\n\n    .floorplan-preview {\n        max-width: 85vw;\n        max-height: 70vh;\n\n        padding: 5px;\n\n        border-radius: 14px;\n    }\n\n}\n\n<\/style>\n\n\n<script>\n(function () {\n\n    \/*\n     * Find THIS widget.\n     *\/\n\n    const widget = document.currentScript.parentElement;\n\n    const icon = widget.querySelector('.floorplan-icon');\n\n    if (!icon) return;\n\n\n    \/*\n     * Get Acacia floor-plan URL.\n     *\/\n\n    const imageURL = icon.getAttribute('data-floorplan');\n\n    if (!imageURL) return;\n\n\n    \/*\n     * Create preview image.\n     *\/\n\n    const preview = document.createElement('img');\n\n    preview.className = 'floorplan-preview';\n\n    preview.src = imageURL;\n\n    preview.alt = 'Acacia Floor Plan';\n\n    document.body.appendChild(preview);\n\n\n    \/*\n     * Create invisible bridge between\n     * icon and preview.\n     *\/\n\n    const bridge = document.createElement('div');\n\n    bridge.className = 'floorplan-hover-bridge';\n\n    document.body.appendChild(bridge);\n\n\n    let hideTimer = null;\n\n    let isVisible = false;\n\n\n    \/*\n     * =========================================\n     * POSITION PREVIEW\n     * =========================================\n     *\/\n\n    function positionPreview() {\n\n        const rect = icon.getBoundingClientRect();\n\n        const gap = 12;\n\n\n        \/*\n         * TOP LEFT of icon\n         *\/\n\n        let left =\n            rect.left -\n            preview.offsetWidth -\n            gap;\n\n        let top =\n            rect.top -\n            preview.offsetHeight -\n            gap;\n\n\n        \/*\n         * Not enough space on LEFT\n         * \u2192 move to RIGHT\n         *\/\n\n        if (left < 15) {\n\n            left =\n                rect.right +\n                gap;\n        }\n\n\n        \/*\n         * Not enough space ABOVE\n         * \u2192 move BELOW\n         *\/\n\n        if (top < 15) {\n\n            top =\n                rect.bottom +\n                gap;\n        }\n\n\n        \/*\n         * Keep inside RIGHT edge.\n         *\/\n\n        if (\n            left + preview.offsetWidth >\n            window.innerWidth - 15\n        ) {\n\n            left =\n                window.innerWidth -\n                preview.offsetWidth -\n                15;\n        }\n\n\n        \/*\n         * Keep inside BOTTOM edge.\n         *\/\n\n        if (\n            top + preview.offsetHeight >\n            window.innerHeight - 15\n        ) {\n\n            top =\n                window.innerHeight -\n                preview.offsetHeight -\n                15;\n        }\n\n\n        \/*\n         * Keep inside LEFT edge.\n         *\/\n\n        if (left < 15) {\n            left = 15;\n        }\n\n\n        \/*\n         * Keep inside TOP edge.\n         *\/\n\n        if (top < 15) {\n            top = 15;\n        }\n\n\n        \/*\n         * Apply position.\n         *\/\n\n        preview.style.left = left + 'px';\n        preview.style.top = top + 'px';\n\n\n        \/*\n         * =====================================\n         * CREATE HOVER BRIDGE\n         * =====================================\n         *\/\n\n        const iconRect =\n            icon.getBoundingClientRect();\n\n        const previewRect =\n            preview.getBoundingClientRect();\n\n\n        const bridgeLeft =\n            Math.min(\n                iconRect.left,\n                previewRect.left\n            );\n\n        const bridgeTop =\n            Math.min(\n                iconRect.top,\n                previewRect.top\n            );\n\n        const bridgeRight =\n            Math.max(\n                iconRect.right,\n                previewRect.right\n            );\n\n        const bridgeBottom =\n            Math.max(\n                iconRect.bottom,\n                previewRect.bottom\n            );\n\n\n        bridge.style.left =\n            bridgeLeft + 'px';\n\n        bridge.style.top =\n            bridgeTop + 'px';\n\n        bridge.style.width =\n            (bridgeRight - bridgeLeft) + 'px';\n\n        bridge.style.height =\n            (bridgeBottom - bridgeTop) + 'px';\n\n\n        \/*\n         * Show.\n         *\/\n\n        preview.classList.add('show');\n\n        bridge.style.display = 'block';\n\n        isVisible = true;\n    }\n\n\n    \/*\n     * =========================================\n     * SHOW PREVIEW\n     * =========================================\n     *\/\n\n    function showPreview() {\n\n        clearTimeout(hideTimer);\n\n        if (preview.complete) {\n\n            positionPreview();\n\n        } else {\n\n            preview.onload = function () {\n\n                positionPreview();\n\n            };\n\n        }\n\n    }\n\n\n    \/*\n     * =========================================\n     * HIDE PREVIEW\n     * =========================================\n     *\/\n\n    function hidePreview() {\n\n        clearTimeout(hideTimer);\n\n        hideTimer = setTimeout(function () {\n\n            \/*\n             * Keep open while mouse is over\n             * icon, preview, or bridge.\n             *\/\n\n            if (\n                icon.matches(':hover') ||\n                preview.matches(':hover') ||\n                bridge.matches(':hover')\n            ) {\n                return;\n            }\n\n\n            preview.classList.remove('show');\n\n            bridge.style.display = 'none';\n\n            isVisible = false;\n\n        }, 100);\n\n    }\n\n\n    \/*\n     * =========================================\n     * MOUSE ENTER ICON\n     * =========================================\n     *\/\n\n    icon.addEventListener(\n        'mouseenter',\n        function () {\n\n            showPreview();\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * MOUSE LEAVE ICON\n     * =========================================\n     *\/\n\n    icon.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * MOUSE ENTER PREVIEW\n     * =========================================\n     *\/\n\n    preview.addEventListener(\n        'mouseenter',\n        function () {\n\n            clearTimeout(hideTimer);\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * MOUSE LEAVE PREVIEW\n     * =========================================\n     *\/\n\n    preview.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * MOUSE ENTER BRIDGE\n     * =========================================\n     *\/\n\n    bridge.addEventListener(\n        'mouseenter',\n        function () {\n\n            clearTimeout(hideTimer);\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * MOUSE LEAVE BRIDGE\n     * =========================================\n     *\/\n\n    bridge.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * MOBILE \/ TOUCH\n     * =========================================\n     *\/\n\n    icon.addEventListener(\n        'click',\n        function (event) {\n\n            if (\n                !window.matchMedia(\n                    '(hover: hover)'\n                ).matches\n            ) {\n\n                event.stopPropagation();\n\n                if (isVisible) {\n\n                    hidePreview();\n\n                } else {\n\n                    showPreview();\n\n                }\n\n            }\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * CLICK OUTSIDE\n     * =========================================\n     *\/\n\n    document.addEventListener(\n        'click',\n        function (event) {\n\n            if (\n                isVisible &&\n                !icon.contains(event.target) &&\n                !preview.contains(event.target)\n            ) {\n\n                hidePreview();\n\n            }\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * SCROLL\n     * =========================================\n     *\/\n\n    window.addEventListener(\n        'scroll',\n        function () {\n\n            preview.classList.remove('show');\n\n            bridge.style.display = 'none';\n\n            isVisible = false;\n\n        },\n        {\n            passive: true\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * RESIZE\n     * =========================================\n     *\/\n\n    window.addEventListener(\n        'resize',\n        function () {\n\n            if (isVisible) {\n\n                positionPreview();\n\n            }\n\n        }\n    );\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c3cd6ff e-flex e-con-boxed e-con e-parent\" data-id=\"c3cd6ff\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-65fdba9 elementor-widget elementor-widget-heading\" data-id=\"65fdba9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">4 Bedroom Home Designs<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ed70667 e-grid e-con-full e-con e-child\" data-id=\"ed70667\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-558a46c e-con-full e-flex elementor-invisible e-con e-child\" data-id=\"558a46c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;zoomIn&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-96184e4 e-con-full e-flex e-con e-child\" data-id=\"96184e4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-24b5da5 e-con-full e-flex e-con e-child\" data-id=\"24b5da5\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a8f2135 elementor-widget elementor-widget-text-editor\" data-id=\"a8f2135\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Marri<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-652d21d floorplan-hover elementor-widget elementor-widget-html\" data-id=\"652d21d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"floorplan-hover-widget\">\n\n    <!-- Marri floor plan -->\n    <div class=\"floorplan-icon\"\n         data-floorplan=\"https:\/\/volksample.com.au\/elicon\/wp-content\/uploads\/2026\/10\/Marri.webp\">\n\n        <!-- Expand Icon -->\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n             width=\"40\"\n             height=\"40\"\n             viewBox=\"0 0 40 40\"\n             fill=\"none\">\n\n            <path d=\"M36.25 22.5C36.5815 22.5 36.8995 22.3683 37.1339 22.1339C37.3683 21.8995 37.5 21.5815 37.5 21.25V10C37.5 9.33696 37.2366 8.70107 36.7678 8.23223C36.2989 7.76339 35.663 7.5 35 7.5H5C4.33696 7.5 3.70107 7.76339 3.23223 8.23223C2.76339 8.70107 2.5 9.33696 2.5 10V30C2.5 30.663 2.76339 31.2989 3.23223 31.7678C3.70107 32.2366 4.33696 32.5 5 32.5H35C35.663 32.5 36.2989 32.2366 36.7678 31.7678C37.2366 31.2989 37.5 30.663 37.5 30V28.75C37.5 28.4185 37.3683 28.1005 37.1339 27.8661C36.8995 27.6317 36.5815 27.5 36.25 27.5C35.9185 27.5 35.6005 27.6317 35.3661 27.8661C35.1317 28.1005 35 28.4185 35 28.75V30H15V22.5C15 22.1685 14.8683 21.8505 14.6339 21.6161C14.3995 21.3817 14.0815 21.25 13.75 21.25C13.4185 21.25 13.1005 21.3817 12.8661 21.6161C12.6317 21.8505 12.5 22.1685 12.5 22.5V30H5V10H25V15H20C19.6685 15 19.3505 15.1317 19.1161 15.3661C18.8817 15.6005 18.75 15.9185 18.75 16.25C18.75 16.5815 18.8817 16.8995 19.1161 17.1339C19.3505 17.3683 19.6685 17.5 20 17.5H25V22.5C25 22.8315 25.1317 23.1495 25.3661 23.3839C25.6005 23.6183 25.9185 23.75 26.25 23.75C26.5815 23.75 26.8995 23.6183 27.1339 23.3839C27.3683 23.1495 27.5 22.8315 27.5 22.5V10H35V21.25C35 21.5815 35.1317 21.8995 35.3661 22.1339C35.6005 22.3683 35.9185 22.5 36.25 22.5Z\"\n                  fill=\"black\"\/>\n        <\/svg>\n\n    <\/div>\n\n<\/div>\n\n\n<style>\n\n\/* =========================================\n   ICON\n   ========================================= *\/\n\n.floorplan-hover-widget {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n}\n\n.floorplan-icon {\n    width: 40px;\n    height: 40px;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    cursor: pointer;\n\n    position: relative;\n    z-index: 5;\n}\n\n.floorplan-icon svg {\n    width: 40px;\n    height: 40px;\n    display: block;\n}\n\n\n\/* =========================================\n   FLOOR PLAN PREVIEW\n   ========================================= *\/\n\n.floorplan-preview {\n    position: fixed;\n    z-index: 999999;\n\n    max-width: 400px;\n    max-height: 550px;\n\n    width: auto;\n    height: auto;\n\n    padding: 8px;\n\n    background: #ffffff;\n\n    border: none;\n    border-radius: 18px;\n\n    box-sizing: border-box;\n\n    object-fit: contain;\n\n    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.22);\n\n    opacity: 0;\n    visibility: hidden;\n\n    pointer-events: auto;\n\n    transform: scale(0.96);\n\n    transform-origin: bottom right;\n\n    transition:\n        opacity 0.2s ease,\n        transform 0.2s ease;\n}\n\n.floorplan-preview.show {\n    opacity: 1;\n    visibility: visible;\n    transform: scale(1);\n}\n\n\n\/* =========================================\n   INVISIBLE HOVER BRIDGE\n   ========================================= *\/\n\n.floorplan-hover-bridge {\n    position: fixed;\n    z-index: 999998;\n\n    pointer-events: auto;\n\n    background: transparent;\n\n    display: none;\n}\n\n\n\/* =========================================\n   MOBILE\n   ========================================= *\/\n\n@media (max-width: 767px) {\n\n    .floorplan-preview {\n        max-width: 85vw;\n        max-height: 70vh;\n\n        padding: 5px;\n\n        border-radius: 14px;\n    }\n\n}\n\n<\/style>\n\n\n<script>\n(function () {\n\n    \/*\n     * Find THIS widget\n     *\/\n\n    const widget = document.currentScript.parentElement;\n\n    const icon = widget.querySelector('.floorplan-icon');\n\n    if (!icon) return;\n\n\n    \/*\n     * Get image URL\n     *\/\n\n    const imageURL = icon.getAttribute('data-floorplan');\n\n    if (!imageURL) return;\n\n\n    \/*\n     * Create preview\n     *\/\n\n    const preview = document.createElement('img');\n\n    preview.className = 'floorplan-preview';\n\n    preview.src = imageURL;\n\n    preview.alt = 'Marri Floor Plan';\n\n    document.body.appendChild(preview);\n\n\n    \/*\n     * Create invisible hover bridge\n     *\/\n\n    const bridge = document.createElement('div');\n\n    bridge.className = 'floorplan-hover-bridge';\n\n    document.body.appendChild(bridge);\n\n\n    let hideTimer = null;\n\n    let isVisible = false;\n\n\n    \/*\n     * =========================================\n     * POSITION PREVIEW\n     * =========================================\n     *\/\n\n    function positionPreview() {\n\n        const rect = icon.getBoundingClientRect();\n\n        const gap = 12;\n\n\n        \/*\n         * TOP LEFT of icon\n         *\/\n\n        let left =\n            rect.left -\n            preview.offsetWidth -\n            gap;\n\n        let top =\n            rect.top -\n            preview.offsetHeight -\n            gap;\n\n\n        \/*\n         * Not enough room on LEFT\n         * \u2192 move RIGHT\n         *\/\n\n        if (left < 15) {\n\n            left =\n                rect.right +\n                gap;\n        }\n\n\n        \/*\n         * Not enough room ABOVE\n         * \u2192 move BELOW\n         *\/\n\n        if (top < 15) {\n\n            top =\n                rect.bottom +\n                gap;\n        }\n\n\n        \/*\n         * Keep inside RIGHT edge\n         *\/\n\n        if (\n            left + preview.offsetWidth >\n            window.innerWidth - 15\n        ) {\n\n            left =\n                window.innerWidth -\n                preview.offsetWidth -\n                15;\n        }\n\n\n        \/*\n         * Keep inside BOTTOM edge\n         *\/\n\n        if (\n            top + preview.offsetHeight >\n            window.innerHeight - 15\n        ) {\n\n            top =\n                window.innerHeight -\n                preview.offsetHeight -\n                15;\n        }\n\n\n        \/*\n         * Keep inside LEFT edge\n         *\/\n\n        if (left < 15) {\n            left = 15;\n        }\n\n\n        \/*\n         * Keep inside TOP edge\n         *\/\n\n        if (top < 15) {\n            top = 15;\n        }\n\n\n        \/*\n         * Apply position\n         *\/\n\n        preview.style.left = left + 'px';\n\n        preview.style.top = top + 'px';\n\n\n        \/*\n         * =====================================\n         * HOVER BRIDGE\n         * =====================================\n         *\/\n\n        const iconRect =\n            icon.getBoundingClientRect();\n\n        const previewRect =\n            preview.getBoundingClientRect();\n\n\n        const bridgeLeft =\n            Math.min(\n                iconRect.left,\n                previewRect.left\n            );\n\n        const bridgeTop =\n            Math.min(\n                iconRect.top,\n                previewRect.top\n            );\n\n        const bridgeRight =\n            Math.max(\n                iconRect.right,\n                previewRect.right\n            );\n\n        const bridgeBottom =\n            Math.max(\n                iconRect.bottom,\n                previewRect.bottom\n            );\n\n\n        bridge.style.left =\n            bridgeLeft + 'px';\n\n        bridge.style.top =\n            bridgeTop + 'px';\n\n        bridge.style.width =\n            (bridgeRight - bridgeLeft) + 'px';\n\n        bridge.style.height =\n            (bridgeBottom - bridgeTop) + 'px';\n\n\n        \/*\n         * Show preview\n         *\/\n\n        preview.classList.add('show');\n\n        bridge.style.display = 'block';\n\n        isVisible = true;\n    }\n\n\n    \/*\n     * =========================================\n     * SHOW PREVIEW\n     * =========================================\n     *\/\n\n    function showPreview() {\n\n        clearTimeout(hideTimer);\n\n        if (preview.complete) {\n\n            positionPreview();\n\n        } else {\n\n            preview.onload = function () {\n                positionPreview();\n            };\n\n        }\n    }\n\n\n    \/*\n     * =========================================\n     * HIDE PREVIEW\n     * =========================================\n     *\/\n\n    function hidePreview() {\n\n        clearTimeout(hideTimer);\n\n        hideTimer = setTimeout(function () {\n\n            \/*\n             * Keep open while mouse is over\n             * icon, preview or bridge.\n             *\/\n\n            if (\n                icon.matches(':hover') ||\n                preview.matches(':hover') ||\n                bridge.matches(':hover')\n            ) {\n                return;\n            }\n\n\n            preview.classList.remove('show');\n\n            bridge.style.display = 'none';\n\n            isVisible = false;\n\n        }, 100);\n\n    }\n\n\n    \/*\n     * =========================================\n     * MOUSE ENTER ICON\n     * =========================================\n     *\/\n\n    icon.addEventListener(\n        'mouseenter',\n        function () {\n\n            showPreview();\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * MOUSE LEAVE ICON\n     * =========================================\n     *\/\n\n    icon.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * MOUSE ENTER PREVIEW\n     * =========================================\n     *\/\n\n    preview.addEventListener(\n        'mouseenter',\n        function () {\n\n            clearTimeout(hideTimer);\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * MOUSE LEAVE PREVIEW\n     * =========================================\n     *\/\n\n    preview.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * MOUSE ENTER BRIDGE\n     * =========================================\n     *\/\n\n    bridge.addEventListener(\n        'mouseenter',\n        function () {\n\n            clearTimeout(hideTimer);\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * MOUSE LEAVE BRIDGE\n     * =========================================\n     *\/\n\n    bridge.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * MOBILE \/ TOUCH\n     * =========================================\n     *\/\n\n    icon.addEventListener(\n        'click',\n        function (event) {\n\n            if (\n                !window.matchMedia(\n                    '(hover: hover)'\n                ).matches\n            ) {\n\n                event.stopPropagation();\n\n                if (isVisible) {\n\n                    hidePreview();\n\n                } else {\n\n                    showPreview();\n\n                }\n\n            }\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * CLICK OUTSIDE\n     * =========================================\n     *\/\n\n    document.addEventListener(\n        'click',\n        function (event) {\n\n            if (\n                isVisible &&\n                !icon.contains(event.target) &&\n                !preview.contains(event.target)\n            ) {\n\n                hidePreview();\n\n            }\n\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * SCROLL\n     * =========================================\n     *\/\n\n    window.addEventListener(\n        'scroll',\n        function () {\n\n            preview.classList.remove('show');\n\n            bridge.style.display = 'none';\n\n            isVisible = false;\n\n        },\n        {\n            passive: true\n        }\n    );\n\n\n    \/*\n     * =========================================\n     * RESIZE\n     * =========================================\n     *\/\n\n    window.addEventListener(\n        'resize',\n        function () {\n\n            if (isVisible) {\n\n                positionPreview();\n\n            }\n\n        }\n    );\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a62934a e-con-full e-flex elementor-invisible e-con e-child\" data-id=\"a62934a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;zoomIn&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-0b0aad4 e-con-full e-flex e-con e-child\" data-id=\"0b0aad4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-00bb337 e-con-full e-flex e-con e-child\" data-id=\"00bb337\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-55220d7 elementor-widget elementor-widget-text-editor\" data-id=\"55220d7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Tuart<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a6085a0 floorplan-hover elementor-widget elementor-widget-html\" data-id=\"a6085a0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"floorplan-hover-widget\">\n\n    <!-- CHANGE ONLY THIS IMAGE URL -->\n    <div class=\"floorplan-icon\"\n         data-floorplan=\"https:\/\/volksample.com.au\/elicon\/wp-content\/uploads\/2026\/10\/Tuart.webp\">\n\n        <!-- Expand Icon -->\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n             width=\"40\"\n             height=\"40\"\n             viewBox=\"0 0 40 40\"\n             fill=\"none\">\n\n            <path d=\"M36.25 22.5C36.5815 22.5 36.8995 22.3683 37.1339 22.1339C37.3683 21.8995 37.5 21.5815 37.5 21.25V10C37.5 9.33696 37.2366 8.70107 36.7678 8.23223C36.2989 7.76339 35.663 7.5 35 7.5H5C4.33696 7.5 3.70107 7.76339 3.23223 8.23223C2.76339 8.70107 2.5 9.33696 2.5 10V30C2.5 30.663 2.76339 31.2989 3.23223 31.7678C3.70107 32.2366 4.33696 32.5 5 32.5H35C35.663 32.5 36.2989 32.2366 36.7678 31.7678C37.2366 31.2989 37.5 30.663 37.5 30V28.75C37.5 28.4185 37.3683 28.1005 37.1339 27.8661C36.8995 27.6317 36.5815 27.5 36.25 27.5C35.9185 27.5 35.6005 27.6317 35.3661 27.8661C35.1317 28.1005 35 28.4185 35 28.75V30H15V22.5C15 22.1685 14.8683 21.8505 14.6339 21.6161C14.3995 21.3817 14.0815 21.25 13.75 21.25C13.4185 21.25 13.1005 21.3817 12.8661 21.6161C12.6317 21.8505 12.5 22.1685 12.5 22.5V30H5V10H25V15H20C19.6685 15 19.3505 15.1317 19.1161 15.3661C18.8817 15.6005 18.75 15.9185 18.75 16.25C18.75 16.5815 18.8817 16.8995 19.1161 17.1339C19.3505 17.3683 19.6685 17.5 20 17.5H25V22.5C25 22.8315 25.1317 23.1495 25.3661 23.3839C25.6005 23.6183 25.9185 23.75 26.25 23.75C26.5815 23.75 26.8995 23.6183 27.1339 23.3839C27.3683 23.1495 27.5 22.8315 27.5 22.5V10H35V21.25C35 21.5815 35.1317 21.8995 35.3661 22.1339C35.6005 22.3683 35.9185 22.5 36.25 22.5Z\"\n                  fill=\"black\"\/>\n        <\/svg>\n\n    <\/div>\n\n<\/div>\n\n\n<style>\n\n\/* ==============================\n   ICON\n   ============================== *\/\n\n.floorplan-hover-widget {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n}\n\n.floorplan-icon {\n    width: 40px;\n    height: 40px;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    cursor: pointer;\n\n    position: relative;\n    z-index: 5;\n}\n\n.floorplan-icon svg {\n    width: 40px;\n    height: 40px;\n    display: block;\n}\n\n\n\/* ==============================\n   FLOOR PLAN PREVIEW\n   ============================== *\/\n\n.floorplan-preview {\n    position: fixed;\n    z-index: 999999;\n\n    max-width: 400px;\n    max-height: 550px;\n\n    width: auto;\n    height: auto;\n\n    padding: 8px;\n\n    background: #ffffff;\n\n    border: none;\n    border-radius: 18px;\n\n    box-sizing: border-box;\n\n    object-fit: contain;\n\n    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.22);\n\n    opacity: 0;\n    visibility: hidden;\n\n    pointer-events: auto;\n\n    transform: scale(0.96);\n\n    transform-origin: bottom right;\n\n    transition:\n        opacity 0.2s ease,\n        transform 0.2s ease;\n}\n\n\n\/* ==============================\n   SHOW PREVIEW\n   ============================== *\/\n\n.floorplan-preview.show {\n    opacity: 1;\n    visibility: visible;\n\n    transform: scale(1);\n}\n\n\n\/* ==============================\n   HOVER BRIDGE\n   ============================== *\/\n\n.floorplan-hover-bridge {\n    position: fixed;\n\n    z-index: 999998;\n\n    pointer-events: auto;\n\n    background: transparent;\n\n    display: none;\n}\n\n\n\/* ==============================\n   MOBILE\n   ============================== *\/\n\n@media (max-width: 767px) {\n\n    .floorplan-preview {\n        max-width: 85vw;\n        max-height: 70vh;\n\n        padding: 5px;\n\n        border-radius: 14px;\n    }\n\n}\n\n<\/style>\n\n\n<script>\n(function () {\n\n    \/*\n     * Find the icon inside THIS HTML widget\n     *\/\n\n    const widget = document.currentScript.parentElement;\n\n    const icon = widget.querySelector('.floorplan-icon');\n\n    if (!icon) return;\n\n\n    \/*\n     * Get image URL\n     *\/\n\n    const imageURL = icon.getAttribute('data-floorplan');\n\n    if (!imageURL) return;\n\n\n    \/*\n     * Create floor-plan preview\n     *\/\n\n    const preview = document.createElement('img');\n\n    preview.className = 'floorplan-preview';\n\n    preview.src = imageURL;\n\n    preview.alt = 'Floor Plan';\n\n    document.body.appendChild(preview);\n\n\n    \/*\n     * Create hover bridge\n     *\/\n\n    const bridge = document.createElement('div');\n\n    bridge.className = 'floorplan-hover-bridge';\n\n    document.body.appendChild(bridge);\n\n\n    let hideTimer = null;\n\n    let isVisible = false;\n\n\n    \/*\n     * Position preview\n     * TOP LEFT of icon\n     *\/\n\n    function positionPreview() {\n\n        const rect = icon.getBoundingClientRect();\n\n        const gap = 12;\n\n\n        \/*\n         * TOP LEFT\n         *\/\n\n        let left =\n            rect.left -\n            preview.offsetWidth -\n            gap;\n\n        let top =\n            rect.top -\n            preview.offsetHeight -\n            gap;\n\n\n        \/*\n         * If there isn't enough space\n         * on the LEFT, move RIGHT\n         *\/\n\n        if (left < 15) {\n\n            left =\n                rect.right +\n                gap;\n        }\n\n\n        \/*\n         * If there isn't enough space\n         * ABOVE, move BELOW\n         *\/\n\n        if (top < 15) {\n\n            top =\n                rect.bottom +\n                gap;\n        }\n\n\n        \/*\n         * Keep inside RIGHT edge\n         *\/\n\n        if (\n            left + preview.offsetWidth >\n            window.innerWidth - 15\n        ) {\n\n            left =\n                window.innerWidth -\n                preview.offsetWidth -\n                15;\n        }\n\n\n        \/*\n         * Keep inside BOTTOM edge\n         *\/\n\n        if (\n            top + preview.offsetHeight >\n            window.innerHeight - 15\n        ) {\n\n            top =\n                window.innerHeight -\n                preview.offsetHeight -\n                15;\n        }\n\n\n        \/*\n         * Keep inside LEFT edge\n         *\/\n\n        if (left < 15) {\n\n            left = 15;\n\n        }\n\n\n        \/*\n         * Keep inside TOP edge\n         *\/\n\n        if (top < 15) {\n\n            top = 15;\n\n        }\n\n\n        \/*\n         * Apply position\n         *\/\n\n        preview.style.left = left + 'px';\n\n        preview.style.top = top + 'px';\n\n\n        \/*\n         * Create hover bridge area\n         *\/\n\n        const iconRect = icon.getBoundingClientRect();\n\n        const previewRect =\n            preview.getBoundingClientRect();\n\n\n        const bridgeLeft =\n            Math.min(\n                iconRect.left,\n                previewRect.left\n            );\n\n        const bridgeTop =\n            Math.min(\n                iconRect.top,\n                previewRect.top\n            );\n\n        const bridgeRight =\n            Math.max(\n                iconRect.right,\n                previewRect.right\n            );\n\n        const bridgeBottom =\n            Math.max(\n                iconRect.bottom,\n                previewRect.bottom\n            );\n\n\n        bridge.style.left =\n            bridgeLeft + 'px';\n\n        bridge.style.top =\n            bridgeTop + 'px';\n\n        bridge.style.width =\n            (bridgeRight - bridgeLeft) + 'px';\n\n        bridge.style.height =\n            (bridgeBottom - bridgeTop) + 'px';\n\n\n        \/*\n         * Show preview\n         *\/\n\n        preview.classList.add('show');\n\n        bridge.style.display = 'block';\n\n        isVisible = true;\n\n    }\n\n\n    \/*\n     * SHOW PREVIEW\n     *\/\n\n    function showPreview() {\n\n        clearTimeout(hideTimer);\n\n\n        if (preview.complete) {\n\n            positionPreview();\n\n        } else {\n\n            preview.onload = function () {\n\n                positionPreview();\n\n            };\n\n        }\n\n    }\n\n\n    \/*\n     * HIDE PREVIEW\n     *\/\n\n    function hidePreview() {\n\n        clearTimeout(hideTimer);\n\n\n        hideTimer = setTimeout(function () {\n\n            \/*\n             * Keep open if mouse is still\n             * over icon, preview or bridge\n             *\/\n\n            if (\n                icon.matches(':hover') ||\n                preview.matches(':hover') ||\n                bridge.matches(':hover')\n            ) {\n\n                return;\n\n            }\n\n\n            preview.classList.remove('show');\n\n            bridge.style.display = 'none';\n\n            isVisible = false;\n\n        }, 100);\n\n    }\n\n\n    \/*\n     * DESKTOP HOVER\n     *\/\n\n    icon.addEventListener(\n        'mouseenter',\n        function () {\n\n            showPreview();\n\n        }\n    );\n\n\n    icon.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * Keep preview open when\n     * mouse enters image\n     *\/\n\n    preview.addEventListener(\n        'mouseenter',\n        function () {\n\n            clearTimeout(hideTimer);\n\n        }\n    );\n\n\n    preview.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * Keep preview open while\n     * mouse crosses the gap\n     *\/\n\n    bridge.addEventListener(\n        'mouseenter',\n        function () {\n\n            clearTimeout(hideTimer);\n\n        }\n    );\n\n\n    bridge.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * MOBILE TAP\n     *\/\n\n    icon.addEventListener(\n        'click',\n        function (event) {\n\n            \/*\n             * Only use tap behavior\n             * on touch devices\n             *\/\n\n            if (\n                !window.matchMedia(\n                    '(hover: hover)'\n                ).matches\n            ) {\n\n                event.stopPropagation();\n\n\n                if (isVisible) {\n\n                    hidePreview();\n\n                } else {\n\n                    showPreview();\n\n                }\n\n            }\n\n        }\n    );\n\n\n    \/*\n     * TAP OUTSIDE TO CLOSE\n     *\/\n\n    document.addEventListener(\n        'click',\n        function (event) {\n\n            if (\n                isVisible &&\n                !icon.contains(event.target) &&\n                !preview.contains(event.target)\n            ) {\n\n                hidePreview();\n\n            }\n\n        }\n    );\n\n\n    \/*\n     * Hide on scroll\n     *\/\n\n    window.addEventListener(\n        'scroll',\n        function () {\n\n            preview.classList.remove('show');\n\n            bridge.style.display = 'none';\n\n            isVisible = false;\n\n        },\n        { passive: true }\n    );\n\n\n    \/*\n     * Reposition on resize\n     *\/\n\n    window.addEventListener(\n        'resize',\n        function () {\n\n            if (isVisible) {\n\n                positionPreview();\n\n            }\n\n        }\n    );\n\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0ea1902 e-flex e-con-boxed e-con e-parent\" data-id=\"0ea1902\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a38cd3c elementor-widget elementor-widget-heading\" data-id=\"a38cd3c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Double Storey Home Designs<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a98c66d e-grid e-con-full e-con e-child\" data-id=\"a98c66d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-593fedd e-con-full e-flex elementor-invisible e-con e-child\" data-id=\"593fedd\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;zoomIn&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-07a6f31 e-con-full e-flex e-con e-child\" data-id=\"07a6f31\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-1722e08 e-con-full e-flex e-con e-child\" data-id=\"1722e08\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9ebe19a elementor-widget elementor-widget-text-editor\" data-id=\"9ebe19a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Horizon<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a3f13f4 floorplan-hover elementor-widget elementor-widget-html\" data-id=\"a3f13f4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"floorplan-hover-widget\">\n\n    <!-- CHANGE ONLY THIS IMAGE URL -->\n    <div class=\"floorplan-icon\"\n         data-floorplan=\"https:\/\/volksample.com.au\/elicon\/wp-content\/uploads\/2026\/09\/Horizon-Floor-Plan.webp\">\n\n        <!-- Expand Icon -->\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n             width=\"40\"\n             height=\"40\"\n             viewBox=\"0 0 40 40\"\n             fill=\"none\">\n\n            <path d=\"M36.25 22.5C36.5815 22.5 36.8995 22.3683 37.1339 22.1339C37.3683 21.8995 37.5 21.5815 37.5 21.25V10C37.5 9.33696 37.2366 8.70107 36.7678 8.23223C36.2989 7.76339 35.663 7.5 35 7.5H5C4.33696 7.5 3.70107 7.76339 3.23223 8.23223C2.76339 8.70107 2.5 9.33696 2.5 10V30C2.5 30.663 2.76339 31.2989 3.23223 31.7678C3.70107 32.2366 4.33696 32.5 5 32.5H35C35.663 32.5 36.2989 32.2366 36.7678 31.7678C37.2366 31.2989 37.5 30.663 37.5 30V28.75C37.5 28.4185 37.3683 28.1005 37.1339 27.8661C36.8995 27.6317 36.5815 27.5 36.25 27.5C35.9185 27.5 35.6005 27.6317 35.3661 27.8661C35.1317 28.1005 35 28.4185 35 28.75V30H15V22.5C15 22.1685 14.8683 21.8505 14.6339 21.6161C14.3995 21.3817 14.0815 21.25 13.75 21.25C13.4185 21.25 13.1005 21.3817 12.8661 21.6161C12.6317 21.8505 12.5 22.1685 12.5 22.5V30H5V10H25V15H20C19.6685 15 19.3505 15.1317 19.1161 15.3661C18.8817 15.6005 18.75 15.9185 18.75 16.25C18.75 16.5815 18.8817 16.8995 19.1161 17.1339C19.3505 17.3683 19.6685 17.5 20 17.5H25V22.5C25 22.8315 25.1317 23.1495 25.3661 23.3839C25.6005 23.6183 25.9185 23.75 26.25 23.75C26.5815 23.75 26.8995 23.6183 27.1339 23.3839C27.3683 23.1495 27.5 22.8315 27.5 22.5V10H35V21.25C35 21.5815 35.1317 21.8995 35.3661 22.1339C35.6005 22.3683 35.9185 22.5 36.25 22.5Z\"\n                  fill=\"black\"\/>\n        <\/svg>\n\n    <\/div>\n\n<\/div>\n\n\n<style>\n\n\/* ==============================\n   ICON\n   ============================== *\/\n\n.floorplan-hover-widget {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n}\n\n.floorplan-icon {\n    width: 40px;\n    height: 40px;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    cursor: pointer;\n\n    position: relative;\n    z-index: 5;\n}\n\n.floorplan-icon svg {\n    width: 40px;\n    height: 40px;\n    display: block;\n}\n\n\n\/* ==============================\n   FLOOR PLAN PREVIEW\n   ============================== *\/\n\n.floorplan-preview {\n    position: fixed;\n    z-index: 999999;\n\n    max-width: 400px;\n    max-height: 550px;\n\n    width: auto;\n    height: auto;\n\n    padding: 8px;\n\n    background: #ffffff;\n\n    border: none;\n    border-radius: 18px;\n\n    box-sizing: border-box;\n\n    object-fit: contain;\n\n    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.22);\n\n    opacity: 0;\n    visibility: hidden;\n\n    pointer-events: auto;\n\n    transform: scale(0.96);\n\n    transform-origin: bottom right;\n\n    transition:\n        opacity 0.2s ease,\n        transform 0.2s ease;\n}\n\n\n\/* ==============================\n   SHOW PREVIEW\n   ============================== *\/\n\n.floorplan-preview.show {\n    opacity: 1;\n    visibility: visible;\n\n    transform: scale(1);\n}\n\n\n\/* ==============================\n   HOVER BRIDGE\n   ============================== *\/\n\n.floorplan-hover-bridge {\n    position: fixed;\n\n    z-index: 999998;\n\n    pointer-events: auto;\n\n    background: transparent;\n\n    display: none;\n}\n\n\n\/* ==============================\n   MOBILE\n   ============================== *\/\n\n@media (max-width: 767px) {\n\n    .floorplan-preview {\n        max-width: 85vw;\n        max-height: 70vh;\n\n        padding: 5px;\n\n        border-radius: 14px;\n    }\n\n}\n\n<\/style>\n\n\n<script>\n(function () {\n\n    \/*\n     * Find the icon inside THIS HTML widget\n     *\/\n\n    const widget = document.currentScript.parentElement;\n\n    const icon = widget.querySelector('.floorplan-icon');\n\n    if (!icon) return;\n\n\n    \/*\n     * Get image URL\n     *\/\n\n    const imageURL = icon.getAttribute('data-floorplan');\n\n    if (!imageURL) return;\n\n\n    \/*\n     * Create floor-plan preview\n     *\/\n\n    const preview = document.createElement('img');\n\n    preview.className = 'floorplan-preview';\n\n    preview.src = imageURL;\n\n    preview.alt = 'Floor Plan';\n\n    document.body.appendChild(preview);\n\n\n    \/*\n     * Create hover bridge\n     *\/\n\n    const bridge = document.createElement('div');\n\n    bridge.className = 'floorplan-hover-bridge';\n\n    document.body.appendChild(bridge);\n\n\n    let hideTimer = null;\n\n    let isVisible = false;\n\n\n    \/*\n     * Position preview\n     * TOP LEFT of icon\n     *\/\n\n    function positionPreview() {\n\n        const rect = icon.getBoundingClientRect();\n\n        const gap = 12;\n\n\n        \/*\n         * TOP LEFT\n         *\/\n\n        let left =\n            rect.left -\n            preview.offsetWidth -\n            gap;\n\n        let top =\n            rect.top -\n            preview.offsetHeight -\n            gap;\n\n\n        \/*\n         * If there isn't enough space\n         * on the LEFT, move RIGHT\n         *\/\n\n        if (left < 15) {\n\n            left =\n                rect.right +\n                gap;\n        }\n\n\n        \/*\n         * If there isn't enough space\n         * ABOVE, move BELOW\n         *\/\n\n        if (top < 15) {\n\n            top =\n                rect.bottom +\n                gap;\n        }\n\n\n        \/*\n         * Keep inside RIGHT edge\n         *\/\n\n        if (\n            left + preview.offsetWidth >\n            window.innerWidth - 15\n        ) {\n\n            left =\n                window.innerWidth -\n                preview.offsetWidth -\n                15;\n        }\n\n\n        \/*\n         * Keep inside BOTTOM edge\n         *\/\n\n        if (\n            top + preview.offsetHeight >\n            window.innerHeight - 15\n        ) {\n\n            top =\n                window.innerHeight -\n                preview.offsetHeight -\n                15;\n        }\n\n\n        \/*\n         * Keep inside LEFT edge\n         *\/\n\n        if (left < 15) {\n\n            left = 15;\n\n        }\n\n\n        \/*\n         * Keep inside TOP edge\n         *\/\n\n        if (top < 15) {\n\n            top = 15;\n\n        }\n\n\n        \/*\n         * Apply position\n         *\/\n\n        preview.style.left = left + 'px';\n\n        preview.style.top = top + 'px';\n\n\n        \/*\n         * Create hover bridge area\n         *\/\n\n        const iconRect = icon.getBoundingClientRect();\n\n        const previewRect =\n            preview.getBoundingClientRect();\n\n\n        const bridgeLeft =\n            Math.min(\n                iconRect.left,\n                previewRect.left\n            );\n\n        const bridgeTop =\n            Math.min(\n                iconRect.top,\n                previewRect.top\n            );\n\n        const bridgeRight =\n            Math.max(\n                iconRect.right,\n                previewRect.right\n            );\n\n        const bridgeBottom =\n            Math.max(\n                iconRect.bottom,\n                previewRect.bottom\n            );\n\n\n        bridge.style.left =\n            bridgeLeft + 'px';\n\n        bridge.style.top =\n            bridgeTop + 'px';\n\n        bridge.style.width =\n            (bridgeRight - bridgeLeft) + 'px';\n\n        bridge.style.height =\n            (bridgeBottom - bridgeTop) + 'px';\n\n\n        \/*\n         * Show preview\n         *\/\n\n        preview.classList.add('show');\n\n        bridge.style.display = 'block';\n\n        isVisible = true;\n\n    }\n\n\n    \/*\n     * SHOW PREVIEW\n     *\/\n\n    function showPreview() {\n\n        clearTimeout(hideTimer);\n\n\n        if (preview.complete) {\n\n            positionPreview();\n\n        } else {\n\n            preview.onload = function () {\n\n                positionPreview();\n\n            };\n\n        }\n\n    }\n\n\n    \/*\n     * HIDE PREVIEW\n     *\/\n\n    function hidePreview() {\n\n        clearTimeout(hideTimer);\n\n\n        hideTimer = setTimeout(function () {\n\n            \/*\n             * Keep open if mouse is still\n             * over icon, preview or bridge\n             *\/\n\n            if (\n                icon.matches(':hover') ||\n                preview.matches(':hover') ||\n                bridge.matches(':hover')\n            ) {\n\n                return;\n\n            }\n\n\n            preview.classList.remove('show');\n\n            bridge.style.display = 'none';\n\n            isVisible = false;\n\n        }, 100);\n\n    }\n\n\n    \/*\n     * DESKTOP HOVER\n     *\/\n\n    icon.addEventListener(\n        'mouseenter',\n        function () {\n\n            showPreview();\n\n        }\n    );\n\n\n    icon.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * Keep preview open when\n     * mouse enters image\n     *\/\n\n    preview.addEventListener(\n        'mouseenter',\n        function () {\n\n            clearTimeout(hideTimer);\n\n        }\n    );\n\n\n    preview.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * Keep preview open while\n     * mouse crosses the gap\n     *\/\n\n    bridge.addEventListener(\n        'mouseenter',\n        function () {\n\n            clearTimeout(hideTimer);\n\n        }\n    );\n\n\n    bridge.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * MOBILE TAP\n     *\/\n\n    icon.addEventListener(\n        'click',\n        function (event) {\n\n            if (\n                !window.matchMedia(\n                    '(hover: hover)'\n                ).matches\n            ) {\n\n                event.stopPropagation();\n\n\n                if (isVisible) {\n\n                    hidePreview();\n\n                } else {\n\n                    showPreview();\n\n                }\n\n            }\n\n        }\n    );\n\n\n    \/*\n     * TAP OUTSIDE TO CLOSE\n     *\/\n\n    document.addEventListener(\n        'click',\n        function (event) {\n\n            if (\n                isVisible &&\n                !icon.contains(event.target) &&\n                !preview.contains(event.target)\n            ) {\n\n                hidePreview();\n\n            }\n\n        }\n    );\n\n\n    \/*\n     * Hide on scroll\n     *\/\n\n    window.addEventListener(\n        'scroll',\n        function () {\n\n            preview.classList.remove('show');\n\n            bridge.style.display = 'none';\n\n            isVisible = false;\n\n        },\n        { passive: true }\n    );\n\n\n    \/*\n     * Reposition on resize\n     *\/\n\n    window.addEventListener(\n        'resize',\n        function () {\n\n            if (isVisible) {\n\n                positionPreview();\n\n            }\n\n        }\n    );\n\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5f953e4 e-con-full e-flex elementor-invisible e-con e-child\" data-id=\"5f953e4\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;zoomIn&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-1a85494 e-con-full e-flex e-con e-child\" data-id=\"1a85494\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-dc2e1cf e-con-full e-flex e-con e-child\" data-id=\"dc2e1cf\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d5b4a4f elementor-widget elementor-widget-text-editor\" data-id=\"d5b4a4f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Meridian<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-535d148 floorplan-hover elementor-widget elementor-widget-html\" data-id=\"535d148\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"floorplan-hover-widget\">\n\n    <!-- CHANGE ONLY THIS IMAGE URL -->\n    <div class=\"floorplan-icon\"\n         data-floorplan=\"https:\/\/volksample.com.au\/elicon\/wp-content\/uploads\/2026\/09\/Meridian-Floor-Plan.webp\">\n\n        <!-- Expand Icon -->\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n             width=\"40\"\n             height=\"40\"\n             viewBox=\"0 0 40 40\"\n             fill=\"none\">\n\n            <path d=\"M36.25 22.5C36.5815 22.5 36.8995 22.3683 37.1339 22.1339C37.3683 21.8995 37.5 21.5815 37.5 21.25V10C37.5 9.33696 37.2366 8.70107 36.7678 8.23223C36.2989 7.76339 35.663 7.5 35 7.5H5C4.33696 7.5 3.70107 7.76339 3.23223 8.23223C2.76339 8.70107 2.5 9.33696 2.5 10V30C2.5 30.663 2.76339 31.2989 3.23223 31.7678C3.70107 32.2366 4.33696 32.5 5 32.5H35C35.663 32.5 36.2989 32.2366 36.7678 31.7678C37.2366 31.2989 37.5 30.663 37.5 30V28.75C37.5 28.4185 37.3683 28.1005 37.1339 27.8661C36.8995 27.6317 36.5815 27.5 36.25 27.5C35.9185 27.5 35.6005 27.6317 35.3661 27.8661C35.1317 28.1005 35 28.4185 35 28.75V30H15V22.5C15 22.1685 14.8683 21.8505 14.6339 21.6161C14.3995 21.3817 14.0815 21.25 13.75 21.25C13.4185 21.25 13.1005 21.3817 12.8661 21.6161C12.6317 21.8505 12.5 22.1685 12.5 22.5V30H5V10H25V15H20C19.6685 15 19.3505 15.1317 19.1161 15.3661C18.8817 15.6005 18.75 15.9185 18.75 16.25C18.75 16.5815 18.8817 16.8995 19.1161 17.1339C19.3505 17.3683 19.6685 17.5 20 17.5H25V22.5C25 22.8315 25.1317 23.1495 25.3661 23.3839C25.6005 23.6183 25.9185 23.75 26.25 23.75C26.5815 23.75 26.8995 23.6183 27.1339 23.3839C27.3683 23.1495 27.5 22.8315 27.5 22.5V10H35V21.25C35 21.5815 35.1317 21.8995 35.3661 22.1339C35.6005 22.3683 35.9185 22.5 36.25 22.5Z\"\n                  fill=\"black\"\/>\n        <\/svg>\n\n    <\/div>\n\n<\/div>\n\n\n<style>\n\n.floorplan-hover-widget {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n}\n\n.floorplan-icon {\n    width: 40px;\n    height: 40px;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    cursor: pointer;\n\n    position: relative;\n    z-index: 5;\n}\n\n.floorplan-icon svg {\n    width: 40px;\n    height: 40px;\n    display: block;\n}\n\n\n\/* ==============================\n   FLOOR PLAN PREVIEW\n   ============================== *\/\n\n.floorplan-preview {\n    position: fixed;\n    z-index: 999999;\n\n    max-width: 400px;\n    max-height: 550px;\n\n    width: auto;\n    height: auto;\n\n    padding: 8px;\n\n    background: #ffffff;\n\n    border: none;\n    border-radius: 18px;\n\n    box-sizing: border-box;\n\n    object-fit: contain;\n\n    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.22);\n\n    opacity: 0;\n    visibility: hidden;\n\n    pointer-events: auto;\n\n    transform: scale(0.96);\n\n    transform-origin: bottom right;\n\n    transition:\n        opacity 0.2s ease,\n        transform 0.2s ease;\n}\n\n.floorplan-preview.show {\n    opacity: 1;\n    visibility: visible;\n\n    transform: scale(1);\n}\n\n\n\/* ==============================\n   HOVER BRIDGE\n   ============================== *\/\n\n.floorplan-hover-bridge {\n    position: fixed;\n\n    z-index: 999998;\n\n    pointer-events: auto;\n\n    background: transparent;\n\n    display: none;\n}\n\n\n\/* ==============================\n   MOBILE\n   ============================== *\/\n\n@media (max-width: 767px) {\n\n    .floorplan-preview {\n        max-width: 85vw;\n        max-height: 70vh;\n\n        padding: 5px;\n\n        border-radius: 14px;\n    }\n\n}\n\n<\/style>\n\n\n<script>\n(function () {\n\n    const widget = document.currentScript.parentElement;\n\n    const icon = widget.querySelector('.floorplan-icon');\n\n    if (!icon) return;\n\n\n    const imageURL = icon.getAttribute('data-floorplan');\n\n    if (!imageURL) return;\n\n\n    const preview = document.createElement('img');\n\n    preview.className = 'floorplan-preview';\n\n    preview.src = imageURL;\n\n    preview.alt = 'Floor Plan';\n\n    document.body.appendChild(preview);\n\n\n    \/*\n     * Hover bridge\n     *\/\n\n    const bridge = document.createElement('div');\n\n    bridge.className = 'floorplan-hover-bridge';\n\n    document.body.appendChild(bridge);\n\n\n    let hideTimer = null;\n\n    let isVisible = false;\n\n\n    \/*\n     * Position preview\n     * TOP LEFT of icon\n     *\/\n\n    function positionPreview() {\n\n        const rect = icon.getBoundingClientRect();\n\n        const gap = 12;\n\n\n        let left =\n            rect.left -\n            preview.offsetWidth -\n            gap;\n\n        let top =\n            rect.top -\n            preview.offsetHeight -\n            gap;\n\n\n        \/*\n         * If not enough space on LEFT\n         *\/\n\n        if (left < 15) {\n\n            left =\n                rect.right +\n                gap;\n\n        }\n\n\n        \/*\n         * If not enough space ABOVE\n         *\/\n\n        if (top < 15) {\n\n            top =\n                rect.bottom +\n                gap;\n\n        }\n\n\n        \/*\n         * Keep inside RIGHT edge\n         *\/\n\n        if (\n            left + preview.offsetWidth >\n            window.innerWidth - 15\n        ) {\n\n            left =\n                window.innerWidth -\n                preview.offsetWidth -\n                15;\n\n        }\n\n\n        \/*\n         * Keep inside BOTTOM edge\n         *\/\n\n        if (\n            top + preview.offsetHeight >\n            window.innerHeight - 15\n        ) {\n\n            top =\n                window.innerHeight -\n                preview.offsetHeight -\n                15;\n\n        }\n\n\n        \/*\n         * Keep inside LEFT edge\n         *\/\n\n        if (left < 15) {\n\n            left = 15;\n\n        }\n\n\n        \/*\n         * Keep inside TOP edge\n         *\/\n\n        if (top < 15) {\n\n            top = 15;\n\n        }\n\n\n        preview.style.left = left + 'px';\n\n        preview.style.top = top + 'px';\n\n\n        \/*\n         * Create hover bridge area\n         *\/\n\n        const iconRect =\n            icon.getBoundingClientRect();\n\n        const previewRect =\n            preview.getBoundingClientRect();\n\n\n        const bridgeLeft =\n            Math.min(\n                iconRect.left,\n                previewRect.left\n            );\n\n        const bridgeTop =\n            Math.min(\n                iconRect.top,\n                previewRect.top\n            );\n\n        const bridgeRight =\n            Math.max(\n                iconRect.right,\n                previewRect.right\n            );\n\n        const bridgeBottom =\n            Math.max(\n                iconRect.bottom,\n                previewRect.bottom\n            );\n\n\n        bridge.style.left =\n            bridgeLeft + 'px';\n\n        bridge.style.top =\n            bridgeTop + 'px';\n\n        bridge.style.width =\n            (bridgeRight - bridgeLeft) + 'px';\n\n        bridge.style.height =\n            (bridgeBottom - bridgeTop) + 'px';\n\n\n        preview.classList.add('show');\n\n        bridge.style.display = 'block';\n\n        isVisible = true;\n\n    }\n\n\n    \/*\n     * SHOW\n     *\/\n\n    function showPreview() {\n\n        clearTimeout(hideTimer);\n\n\n        if (preview.complete) {\n\n            positionPreview();\n\n        } else {\n\n            preview.onload = function () {\n\n                positionPreview();\n\n            };\n\n        }\n\n    }\n\n\n    \/*\n     * HIDE\n     *\/\n\n    function hidePreview() {\n\n        clearTimeout(hideTimer);\n\n\n        hideTimer = setTimeout(function () {\n\n            if (\n                icon.matches(':hover') ||\n                preview.matches(':hover') ||\n                bridge.matches(':hover')\n            ) {\n\n                return;\n\n            }\n\n\n            preview.classList.remove('show');\n\n            bridge.style.display = 'none';\n\n            isVisible = false;\n\n        }, 100);\n\n    }\n\n\n    \/*\n     * DESKTOP HOVER\n     *\/\n\n    icon.addEventListener(\n        'mouseenter',\n        function () {\n\n            showPreview();\n\n        }\n    );\n\n\n    icon.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * Mouse enters preview\n     *\/\n\n    preview.addEventListener(\n        'mouseenter',\n        function () {\n\n            clearTimeout(hideTimer);\n\n        }\n    );\n\n\n    preview.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * Mouse crosses bridge\n     *\/\n\n    bridge.addEventListener(\n        'mouseenter',\n        function () {\n\n            clearTimeout(hideTimer);\n\n        }\n    );\n\n\n    bridge.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * MOBILE TAP\n     *\/\n\n    icon.addEventListener(\n        'click',\n        function (event) {\n\n            if (\n                !window.matchMedia(\n                    '(hover: hover)'\n                ).matches\n            ) {\n\n                event.stopPropagation();\n\n\n                if (isVisible) {\n\n                    hidePreview();\n\n                } else {\n\n                    showPreview();\n\n                }\n\n            }\n\n        }\n    );\n\n\n    \/*\n     * TAP OUTSIDE TO CLOSE\n     *\/\n\n    document.addEventListener(\n        'click',\n        function (event) {\n\n            if (\n                isVisible &&\n                !icon.contains(event.target) &&\n                !preview.contains(event.target)\n            ) {\n\n                hidePreview();\n\n            }\n\n        }\n    );\n\n\n    \/*\n     * Hide on scroll\n     *\/\n\n    window.addEventListener(\n        'scroll',\n        function () {\n\n            preview.classList.remove('show');\n\n            bridge.style.display = 'none';\n\n            isVisible = false;\n\n        },\n        { passive: true }\n    );\n\n\n    \/*\n     * Reposition on resize\n     *\/\n\n    window.addEventListener(\n        'resize',\n        function () {\n\n            if (isVisible) {\n\n                positionPreview();\n\n            }\n\n        }\n    );\n\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6f2681d e-flex e-con-boxed e-con e-parent\" data-id=\"6f2681d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dc3f4fb elementor-widget elementor-widget-heading\" data-id=\"dc3f4fb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Granny Flat Designs<\/h3>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-440af3b e-grid e-con-full e-con e-child\" data-id=\"440af3b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-88ca2b4 e-con-full e-flex elementor-invisible e-con e-child\" data-id=\"88ca2b4\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;zoomIn&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-644a362 e-con-full e-flex e-con e-child\" data-id=\"644a362\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-6cdf9d1 e-con-full e-flex e-con e-child\" data-id=\"6cdf9d1\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1b55813 elementor-widget elementor-widget-text-editor\" data-id=\"1b55813\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Haven<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3d0add3 floorplan-hover elementor-widget elementor-widget-html\" data-id=\"3d0add3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"floorplan-hover-widget\">\n\n    <!-- CHANGE ONLY THIS IMAGE URL -->\n    <div class=\"floorplan-icon\"\n         data-floorplan=\"https:\/\/volksample.com.au\/elicon\/wp-content\/uploads\/2026\/09\/Haven-Floor-Plan.webp\">\n\n        <!-- Expand Icon -->\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n             width=\"40\"\n             height=\"40\"\n             viewBox=\"0 0 40 40\"\n             fill=\"none\">\n\n            <path d=\"M36.25 22.5C36.5815 22.5 36.8995 22.3683 37.1339 22.1339C37.3683 21.8995 37.5 21.5815 37.5 21.25V10C37.5 9.33696 37.2366 8.70107 36.7678 8.23223C36.2989 7.76339 35.663 7.5 35 7.5H5C4.33696 7.5 3.70107 7.76339 3.23223 8.23223C2.76339 8.70107 2.5 9.33696 2.5 10V30C2.5 30.663 2.76339 31.2989 3.23223 31.7678C3.70107 32.2366 4.33696 32.5 5 32.5H35C35.663 32.5 36.2989 32.2366 36.7678 31.7678C37.2366 31.2989 37.5 30.663 37.5 30V28.75C37.5 28.4185 37.3683 28.1005 37.1339 27.8661C36.8995 27.6317 36.5815 27.5 36.25 27.5C35.9185 27.5 35.6005 27.6317 35.3661 27.8661C35.1317 28.1005 35 28.4185 35 28.75V30H15V22.5C15 22.1685 14.8683 21.8505 14.6339 21.6161C14.3995 21.3817 14.0815 21.25 13.75 21.25C13.4185 21.25 13.1005 21.3817 12.8661 21.6161C12.6317 21.8505 12.5 22.1685 12.5 22.5V30H5V10H25V15H20C19.6685 15 19.3505 15.1317 19.1161 15.3661C18.8817 15.6005 18.75 15.9185 18.75 16.25C18.75 16.5815 18.8817 16.8995 19.1161 17.1339C19.3505 17.3683 19.6685 17.5 20 17.5H25V22.5C25 22.8315 25.1317 23.1495 25.3661 23.3839C25.6005 23.6183 25.9185 23.75 26.25 23.75C26.5815 23.75 26.8995 23.6183 27.1339 23.3839C27.3683 23.1495 27.5 22.8315 27.5 22.5V10H35V21.25C35 21.5815 35.1317 21.8995 35.3661 22.1339C35.6005 22.3683 35.9185 22.5 36.25 22.5Z\"\n                  fill=\"black\"\/>\n        <\/svg>\n\n    <\/div>\n\n<\/div>\n\n\n<style>\n\n\/* ==============================\n   ICON\n   ============================== *\/\n\n.floorplan-hover-widget {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n}\n\n.floorplan-icon {\n    width: 40px;\n    height: 40px;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    cursor: pointer;\n\n    position: relative;\n    z-index: 5;\n}\n\n.floorplan-icon svg {\n    width: 40px;\n    height: 40px;\n    display: block;\n}\n\n\n\/* ==============================\n   FLOOR PLAN PREVIEW\n   ============================== *\/\n\n.floorplan-preview {\n    position: fixed;\n    z-index: 999999;\n\n    padding: 8px;\n\n    background: #ffffff;\n\n    border-radius: 18px;\n\n    box-sizing: border-box;\n\n    object-fit: contain;\n\n    \/* Shadow only - no border *\/\n    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.22);\n\n    opacity: 0;\n    visibility: hidden;\n\n    pointer-events: none;\n\n    transform: scale(0.96);\n\n    transform-origin: bottom right;\n\n    transition:\n        opacity 0.2s ease,\n        transform 0.2s ease;\n}\n\n\n\/* ==============================\n   SHOW PREVIEW\n   ============================== *\/\n\n.floorplan-preview.show {\n    opacity: 1;\n    visibility: visible;\n\n    transform: scale(1);\n}\n\n<\/style>\n\n\n<script>\n(function () {\n\n    \/*\n     * Find the icon inside THIS HTML widget\n     *\/\n\n    const widget = document.currentScript.parentElement;\n\n    const icon = widget.querySelector('.floorplan-icon');\n\n    if (!icon) return;\n\n\n    \/*\n     * Get image URL\n     *\/\n\n    const imageURL = icon.getAttribute('data-floorplan');\n\n    if (!imageURL) return;\n\n\n    \/*\n     * Create floor-plan image\n     *\/\n\n    const preview = document.createElement('img');\n\n    preview.className = 'floorplan-preview';\n\n    preview.src = imageURL;\n\n    preview.alt = 'Floor Plan';\n\n\n    \/*\n     * Add preview to page\n     *\/\n\n    document.body.appendChild(preview);\n\n\n    \/*\n     * Position preview\n     * TOP LEFT of icon\n     *\/\n\n    function positionPreview() {\n\n        const rect = icon.getBoundingClientRect();\n\n        const gap = 12;\n\n\n        \/*\n         * TOP LEFT\n         *\/\n\n        let left =\n            rect.left -\n            preview.offsetWidth -\n            gap;\n\n        let top =\n            rect.top -\n            preview.offsetHeight -\n            gap;\n\n\n        \/*\n         * If there isn't enough space\n         * on the LEFT, move to RIGHT\n         *\/\n\n        if (left < 15) {\n\n            left =\n                rect.right +\n                gap;\n        }\n\n\n        \/*\n         * If there isn't enough space\n         * ABOVE, move BELOW\n         *\/\n\n        if (top < 15) {\n\n            top =\n                rect.bottom +\n                gap;\n        }\n\n\n        \/*\n         * Keep inside RIGHT edge\n         *\/\n\n        if (\n            left + preview.offsetWidth >\n            window.innerWidth - 15\n        ) {\n\n            left =\n                window.innerWidth -\n                preview.offsetWidth -\n                15;\n        }\n\n\n        \/*\n         * Keep inside BOTTOM edge\n         *\/\n\n        if (\n            top + preview.offsetHeight >\n            window.innerHeight - 15\n        ) {\n\n            top =\n                window.innerHeight -\n                preview.offsetHeight -\n                15;\n        }\n\n\n        \/*\n         * Keep inside LEFT edge\n         *\/\n\n        if (left < 15) {\n            left = 15;\n        }\n\n\n        \/*\n         * Keep inside TOP edge\n         *\/\n\n        if (top < 15) {\n            top = 15;\n        }\n\n\n        \/*\n         * Apply position\n         *\/\n\n        preview.style.left = left + 'px';\n\n        preview.style.top = top + 'px';\n\n\n        \/*\n         * Show image\n         *\/\n\n        preview.classList.add('show');\n    }\n\n\n    \/*\n     * Hover ON\n     *\/\n\n    icon.addEventListener('mouseenter', function () {\n\n        if (preview.complete) {\n\n            positionPreview();\n\n        } else {\n\n            preview.onload = positionPreview;\n\n        }\n\n    });\n\n\n    \/*\n     * Hover OFF\n     *\/\n\n    icon.addEventListener('mouseleave', function () {\n\n        preview.classList.remove('show');\n\n    });\n\n\n    \/*\n     * Hide on scroll\n     *\/\n\n    window.addEventListener(\n        'scroll',\n        function () {\n\n            preview.classList.remove('show');\n\n        },\n        { passive: true }\n    );\n\n\n    \/*\n     * Hide on resize\n     *\/\n\n    window.addEventListener(\n        'resize',\n        function () {\n\n            preview.classList.remove('show');\n\n        }\n    );\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a65f63e e-con-full e-flex elementor-invisible e-con e-child\" data-id=\"a65f63e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;zoomIn&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-e3d77a4 e-con-full e-flex e-con e-child\" data-id=\"e3d77a4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-511314f e-con-full e-flex e-con e-child\" data-id=\"511314f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a5827ae elementor-widget elementor-widget-text-editor\" data-id=\"a5827ae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Retreat<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e707be2 floorplan-hover elementor-widget elementor-widget-html\" data-id=\"e707be2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"floorplan-hover-widget\">\n\n    <!-- CHANGE ONLY THIS IMAGE URL -->\n    <div class=\"floorplan-icon\"\n         data-floorplan=\"https:\/\/volksample.com.au\/elicon\/wp-content\/uploads\/2026\/09\/Retreat-Floor-Plan.png\">\n\n        <!-- Expand Icon -->\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n             width=\"40\"\n             height=\"40\"\n             viewBox=\"0 0 40 40\"\n             fill=\"none\">\n\n            <path d=\"M36.25 22.5C36.5815 22.5 36.8995 22.3683 37.1339 22.1339C37.3683 21.8995 37.5 21.5815 37.5 21.25V10C37.5 9.33696 37.2366 8.70107 36.7678 8.23223C36.2989 7.76339 35.663 7.5 35 7.5H5C4.33696 7.5 3.70107 7.76339 3.23223 8.23223C2.76339 8.70107 2.5 9.33696 2.5 10V30C2.5 30.663 2.76339 31.2989 3.23223 31.7678C3.70107 32.2366 4.33696 32.5 5 32.5H35C35.663 32.5 36.2989 32.2366 36.7678 31.7678C37.2366 31.2989 37.5 30.663 37.5 30V28.75C37.5 28.4185 37.3683 28.1005 37.1339 27.8661C36.8995 27.6317 36.5815 27.5 36.25 27.5C35.9185 27.5 35.6005 27.6317 35.3661 27.8661C35.1317 28.1005 35 28.4185 35 28.75V30H15V22.5C15 22.1685 14.8683 21.8505 14.6339 21.6161C14.3995 21.3817 14.0815 21.25 13.75 21.25C13.4185 21.25 13.1005 21.3817 12.8661 21.6161C12.6317 21.8505 12.5 22.1685 12.5 22.5V30H5V10H25V15H20C19.6685 15 19.3505 15.1317 19.1161 15.3661C18.8817 15.6005 18.75 15.9185 18.75 16.25C18.75 16.5815 18.8817 16.8995 19.1161 17.1339C19.3505 17.3683 19.6685 17.5 20 17.5H25V22.5C25 22.8315 25.1317 23.1495 25.3661 23.3839C25.6005 23.6183 25.9185 23.75 26.25 23.75C26.5815 23.75 26.8995 23.6183 27.1339 23.3839C27.3683 23.1495 27.5 22.8315 27.5 22.5V10H35V21.25C35 21.5815 35.1317 21.8995 35.3661 22.1339C35.6005 22.3683 35.9185 22.5 36.25 22.5Z\"\n                  fill=\"black\"\/>\n        <\/svg>\n\n    <\/div>\n\n<\/div>\n\n\n<style>\n\n\/* ==============================\n   ICON\n   ============================== *\/\n\n.floorplan-hover-widget {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n}\n\n.floorplan-icon {\n    width: 40px;\n    height: 40px;\n\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    cursor: pointer;\n\n    position: relative;\n    z-index: 5;\n}\n\n.floorplan-icon svg {\n    width: 40px;\n    height: 40px;\n    display: block;\n}\n\n\n\/* ==============================\n   FLOOR PLAN PREVIEW\n   ============================== *\/\n\n.floorplan-preview {\n    position: fixed;\n    z-index: 999999;\n\n    max-width: 400px;\n    max-height: 550px;\n\n    width: auto;\n    height: auto;\n\n    padding: 8px;\n\n    background: #ffffff;\n\n    border: none;\n    border-radius: 18px;\n\n    box-sizing: border-box;\n\n    object-fit: contain;\n\n    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.22);\n\n    opacity: 0;\n    visibility: hidden;\n\n    pointer-events: auto;\n\n    transform: scale(0.96);\n\n    transform-origin: bottom right;\n\n    transition:\n        opacity 0.2s ease,\n        transform 0.2s ease;\n}\n\n\n\/* ==============================\n   SHOW PREVIEW\n   ============================== *\/\n\n.floorplan-preview.show {\n    opacity: 1;\n    visibility: visible;\n\n    transform: scale(1);\n}\n\n\n\/* ==============================\n   HOVER BRIDGE\n   ============================== *\/\n\n.floorplan-hover-bridge {\n    position: fixed;\n    z-index: 999998;\n\n    pointer-events: auto;\n\n    background: transparent;\n\n    display: none;\n}\n\n\n\/* ==============================\n   MOBILE\n   ============================== *\/\n\n@media (max-width: 767px) {\n\n    .floorplan-preview {\n        max-width: 85vw;\n        max-height: 70vh;\n\n        padding: 5px;\n\n        border-radius: 14px;\n    }\n\n}\n\n<\/style>\n\n\n<script>\n(function () {\n\n    const widget = document.currentScript.parentElement;\n\n    const icon = widget.querySelector('.floorplan-icon');\n\n    if (!icon) return;\n\n\n    const imageURL = icon.getAttribute('data-floorplan');\n\n    if (!imageURL) return;\n\n\n    const preview = document.createElement('img');\n\n    preview.className = 'floorplan-preview';\n\n    preview.src = imageURL;\n\n    preview.alt = 'Floor Plan';\n\n    document.body.appendChild(preview);\n\n\n    \/*\n     * Create hover bridge\n     *\/\n\n    const bridge = document.createElement('div');\n\n    bridge.className = 'floorplan-hover-bridge';\n\n    document.body.appendChild(bridge);\n\n\n    let hideTimer = null;\n\n    let isVisible = false;\n\n\n    \/*\n     * Position preview\n     * TOP LEFT of icon\n     *\/\n\n    function positionPreview() {\n\n        const rect = icon.getBoundingClientRect();\n\n        const gap = 12;\n\n\n        let left =\n            rect.left -\n            preview.offsetWidth -\n            gap;\n\n        let top =\n            rect.top -\n            preview.offsetHeight -\n            gap;\n\n\n        \/*\n         * If there isn't enough space\n         * on the LEFT, move RIGHT\n         *\/\n\n        if (left < 15) {\n\n            left =\n                rect.right +\n                gap;\n\n        }\n\n\n        \/*\n         * If there isn't enough space\n         * ABOVE, move BELOW\n         *\/\n\n        if (top < 15) {\n\n            top =\n                rect.bottom +\n                gap;\n\n        }\n\n\n        \/*\n         * Keep inside RIGHT edge\n         *\/\n\n        if (\n            left + preview.offsetWidth >\n            window.innerWidth - 15\n        ) {\n\n            left =\n                window.innerWidth -\n                preview.offsetWidth -\n                15;\n\n        }\n\n\n        \/*\n         * Keep inside BOTTOM edge\n         *\/\n\n        if (\n            top + preview.offsetHeight >\n            window.innerHeight - 15\n        ) {\n\n            top =\n                window.innerHeight -\n                preview.offsetHeight -\n                15;\n\n        }\n\n\n        \/*\n         * Keep inside LEFT edge\n         *\/\n\n        if (left < 15) {\n\n            left = 15;\n\n        }\n\n\n        \/*\n         * Keep inside TOP edge\n         *\/\n\n        if (top < 15) {\n\n            top = 15;\n\n        }\n\n\n        preview.style.left = left + 'px';\n\n        preview.style.top = top + 'px';\n\n\n        \/*\n         * Create hover bridge area\n         *\/\n\n        const iconRect =\n            icon.getBoundingClientRect();\n\n        const previewRect =\n            preview.getBoundingClientRect();\n\n\n        const bridgeLeft =\n            Math.min(\n                iconRect.left,\n                previewRect.left\n            );\n\n        const bridgeTop =\n            Math.min(\n                iconRect.top,\n                previewRect.top\n            );\n\n        const bridgeRight =\n            Math.max(\n                iconRect.right,\n                previewRect.right\n            );\n\n        const bridgeBottom =\n            Math.max(\n                iconRect.bottom,\n                previewRect.bottom\n            );\n\n\n        bridge.style.left =\n            bridgeLeft + 'px';\n\n        bridge.style.top =\n            bridgeTop + 'px';\n\n        bridge.style.width =\n            (bridgeRight - bridgeLeft) + 'px';\n\n        bridge.style.height =\n            (bridgeBottom - bridgeTop) + 'px';\n\n\n        \/*\n         * Show preview\n         *\/\n\n        preview.classList.add('show');\n\n        bridge.style.display = 'block';\n\n        isVisible = true;\n\n    }\n\n\n    \/*\n     * SHOW PREVIEW\n     *\/\n\n    function showPreview() {\n\n        clearTimeout(hideTimer);\n\n\n        if (preview.complete) {\n\n            positionPreview();\n\n        } else {\n\n            preview.onload = function () {\n\n                positionPreview();\n\n            };\n\n        }\n\n    }\n\n\n    \/*\n     * HIDE PREVIEW\n     *\/\n\n    function hidePreview() {\n\n        clearTimeout(hideTimer);\n\n\n        hideTimer = setTimeout(function () {\n\n            if (\n                icon.matches(':hover') ||\n                preview.matches(':hover') ||\n                bridge.matches(':hover')\n            ) {\n\n                return;\n\n            }\n\n\n            preview.classList.remove('show');\n\n            bridge.style.display = 'none';\n\n            isVisible = false;\n\n        }, 100);\n\n    }\n\n\n    \/*\n     * DESKTOP HOVER\n     *\/\n\n    icon.addEventListener(\n        'mouseenter',\n        function () {\n\n            showPreview();\n\n        }\n    );\n\n\n    icon.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * Keep preview open when\n     * mouse enters image\n     *\/\n\n    preview.addEventListener(\n        'mouseenter',\n        function () {\n\n            clearTimeout(hideTimer);\n\n        }\n    );\n\n\n    preview.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * Keep preview open while\n     * mouse crosses the gap\n     *\/\n\n    bridge.addEventListener(\n        'mouseenter',\n        function () {\n\n            clearTimeout(hideTimer);\n\n        }\n    );\n\n\n    bridge.addEventListener(\n        'mouseleave',\n        function () {\n\n            hidePreview();\n\n        }\n    );\n\n\n    \/*\n     * MOBILE TAP\n     *\/\n\n    icon.addEventListener(\n        'click',\n        function (event) {\n\n            if (\n                !window.matchMedia(\n                    '(hover: hover)'\n                ).matches\n            ) {\n\n                event.stopPropagation();\n\n\n                if (isVisible) {\n\n                    hidePreview();\n\n                } else {\n\n                    showPreview();\n\n                }\n\n            }\n\n        }\n    );\n\n\n    \/*\n     * TAP OUTSIDE TO CLOSE\n     *\/\n\n    document.addEventListener(\n        'click',\n        function (event) {\n\n            if (\n                isVisible &&\n                !icon.contains(event.target) &&\n                !preview.contains(event.target)\n            ) {\n\n                hidePreview();\n\n            }\n\n        }\n    );\n\n\n    \/*\n     * Hide on scroll\n     *\/\n\n    window.addEventListener(\n        'scroll',\n        function () {\n\n            preview.classList.remove('show');\n\n            bridge.style.display = 'none';\n\n            isVisible = false;\n\n        },\n        { passive: true }\n    );\n\n\n    \/*\n     * Reposition on resize\n     *\/\n\n    window.addEventListener(\n        'resize',\n        function () {\n\n            if (isVisible) {\n\n                positionPreview();\n\n            }\n\n        }\n    );\n\n\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-df58886 e-flex e-con-boxed e-con e-parent\" data-id=\"df58886\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d49050f elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"d49050f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">Why Build with Elicons Enterprises<\/h4>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-bf44d18 e-con-full e-flex e-con e-child\" data-id=\"bf44d18\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-6a47910 e-con-full e-flex e-con e-child\" data-id=\"6a47910\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-d16f721 e-con-full e-flex e-con e-child\" data-id=\"d16f721\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fc50250 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"fc50250\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Quality Assurance<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1c7f6a6 elementor-widget elementor-widget-text-editor\" data-id=\"1c7f6a6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Precision craftsmanship and durable construction on every Perth project.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-97a9f38 e-con-full e-flex e-con e-child\" data-id=\"97a9f38\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-471d45e elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"471d45e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Accredited Standards<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b3d5128 elementor-widget elementor-widget-text-editor\" data-id=\"b3d5128\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Fully accredited construction practices meeting Western Australian industry standards.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7c0a781 e-con-full e-flex e-con e-child\" data-id=\"7c0a781\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8bfeb1f elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"8bfeb1f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Skilled Construction Team<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f86aadc elementor-widget elementor-widget-text-editor\" data-id=\"f86aadc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>A dedicated team of builders passionate about every build.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6c5cf38 e-con-full e-flex elementor-invisible e-con e-child\" data-id=\"6c5cf38\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;zoomIn&quot;}\">\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6f00373 e-con-full e-flex e-con e-child\" data-id=\"6f00373\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-1b0c713 e-con-full e-flex e-con e-child\" data-id=\"1b0c713\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-45de6fb elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"45de6fb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Reliable Project Delivery<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8dc9647 elementor-widget elementor-widget-text-editor\" data-id=\"8dc9647\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Flexible scheduling around your project deadline; no unnecessary delays.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-640c29a e-con-full e-flex e-con e-child\" data-id=\"640c29a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-96be4fd elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"96be4fd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Quick Response<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0fe0fb9 elementor-widget elementor-widget-text-editor\" data-id=\"0fe0fb9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Fast, real-time response to any question or your project update.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-701cafe e-con-full e-flex e-con e-child\" data-id=\"701cafe\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7293bc8 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"7293bc8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Building Trust, Delivering Certainty<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ea951fb elementor-widget elementor-widget-text-editor\" data-id=\"ea951fb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Reliable construction solutions. Backed by honesty and accountability.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-dad28b3 e-flex e-con-boxed e-con e-parent\" data-id=\"dad28b3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cb16801 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"cb16801\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Explore Our Other Construction Services<\/h2>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8feffc1 e-grid e-con-full e-con e-child\" data-id=\"8feffc1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-7b522ca e-con-full e-flex elementor-invisible e-con e-child\" data-id=\"7b522ca\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;zoomIn&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-235fac6 elementor-widget elementor-widget-heading\" data-id=\"235fac6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Subdivision &amp; Development<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5e0af36 elementor-widget elementor-widget-button\" data-id=\"5e0af36\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/volksample.com.au\/elicon\/subdivision-development\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">View Service<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1a269b4 e-con-full e-flex elementor-invisible e-con e-child\" data-id=\"1a269b4\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;zoomIn&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a064771 elementor-widget elementor-widget-heading\" data-id=\"a064771\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Renovation<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-239f72e elementor-widget elementor-widget-button\" data-id=\"239f72e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/volksample.com.au\/elicon\/renovation\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">View Service<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-82ee1c6 e-con-full e-flex elementor-invisible e-con e-child\" data-id=\"82ee1c6\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;zoomIn&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8f42f53 elementor-widget elementor-widget-heading\" data-id=\"8f42f53\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Finance<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-da896fc elementor-widget elementor-widget-button\" data-id=\"da896fc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/volksample.com.au\/elicon\/finance\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">View Service<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-efbebbd e-con-full e-flex elementor-invisible e-con e-child\" data-id=\"efbebbd\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;animation&quot;:&quot;zoomIn&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c81f4bb elementor-widget elementor-widget-heading\" data-id=\"c81f4bb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Investment<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ec0ac33 elementor-widget elementor-widget-button\" data-id=\"ec0ac33\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/volksample.com.au\/elicon\/investment\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">View Service<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-efa60ec e-flex e-con-boxed e-con e-parent\" data-id=\"efa60ec\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-144554b elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"144554b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Speak with Perth Building Experts About Your Project<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-80fa468 elementor-align-justify elementor-widget__width-initial elementor-invisible elementor-widget elementor-widget-button\" data-id=\"80fa468\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;zoomIn&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/volksample.com.au\/elicon\/contact-us\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Contact Us Now<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Perth\u2019s Top Design &amp; Build Services for Residential &amp; Commercial Projects DESIGN &amp; BUILD SERVICES OVERVIEW Specialist Designers &amp; Builders Working as One Team At Elicons Enterprises, design and construction are never handled in isolation. Our expert designers and builders work as one team from the very first concept, so every idea is shaped with [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-130","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/volksample.com.au\/elicon\/wp-json\/wp\/v2\/pages\/130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/volksample.com.au\/elicon\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/volksample.com.au\/elicon\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/volksample.com.au\/elicon\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/volksample.com.au\/elicon\/wp-json\/wp\/v2\/comments?post=130"}],"version-history":[{"count":103,"href":"https:\/\/volksample.com.au\/elicon\/wp-json\/wp\/v2\/pages\/130\/revisions"}],"predecessor-version":[{"id":844,"href":"https:\/\/volksample.com.au\/elicon\/wp-json\/wp\/v2\/pages\/130\/revisions\/844"}],"wp:attachment":[{"href":"https:\/\/volksample.com.au\/elicon\/wp-json\/wp\/v2\/media?parent=130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}