{"id":424,"date":"2026-04-25T17:03:44","date_gmt":"2026-04-25T17:03:44","guid":{"rendered":"https:\/\/hrsuunnittelu.fi\/?page_id=424"},"modified":"2026-04-26T15:49:39","modified_gmt":"2026-04-26T15:49:39","slug":"pohjatutkimuksen-tarjouslaskuri","status":"publish","type":"page","link":"https:\/\/hrsuunnittelu.fi\/index.php\/palvelut\/pohjatutkimukset\/pohjatutkimuksen-tarjouslaskuri\/","title":{"rendered":"Perustamistapalausunnon hinta-arviolaskuri"},"content":{"rendered":"\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:67%\">\n<p>T\u00e4yt\u00e4 alla olevan lomakkeen tiedot ja saat hinta-arvion s\u00e4hk\u00f6postiisi. Se ei sido mihink\u00e4\u00e4n, mutta voit helposti tilata sen vastaamalla s\u00e4hk\u00f6postiin. Hintahaarukka on arvio ja se vahvistetaan ennen tilauksen hyv\u00e4ksymist\u00e4. Mik\u00e4li hinta poikkeaa haarukasta l\u00e4ht\u00f6tietojen vuoksi, olemme etuk\u00e4teen erikseen yhteydess\u00e4.<\/p>\n\n\n\n<p>Normali toimitusaika on noin 1 kuukausi. Jos asialla on kiire, ruksi pikatoimitus, niin lis\u00e4hinnasta pyrimme 1-2 viikon toimituaikaan.<\/p>\n\n\n\n\n\n\n <form method=\"post\" class=\"pt-laskuri-form\">\n    <input type=\"hidden\" id=\"pt_laskuri_nonce\" name=\"pt_laskuri_nonce\" value=\"8dc83e88e6\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/index.php\/wp-json\/wp\/v2\/pages\/424\" \/>\n    <h2 class=\"pt-title\">Perustamistapalausunnon hinta\u2011arvio<\/h2>\n\n    <!-- PERUSTIEDOT -->\n    <fieldset class=\"pt-section\">\n        <legend>Perustiedot<\/legend>\n\n        <div class=\"pt-field\">\n            <label class=\"pt-label\">Rakennusten m\u00e4\u00e4r\u00e4<\/label>\n            <div class=\"pt-radio-group\">\n                                    <label class=\"pt-radio\">\n                        <input type=\"radio\"\n                               name=\"rakennusten_maara\"\n                               value=\"1\"\n                               required>\n                        1                    <\/label>\n                                    <label class=\"pt-radio\">\n                        <input type=\"radio\"\n                               name=\"rakennusten_maara\"\n                               value=\"2\"\n                               required>\n                        2                    <\/label>\n                                    <label class=\"pt-radio\">\n                        <input type=\"radio\"\n                               name=\"rakennusten_maara\"\n                               value=\"3\"\n                               required>\n                        3                    <\/label>\n                                    <label class=\"pt-radio\">\n                        <input type=\"radio\"\n                               name=\"rakennusten_maara\"\n                               value=\"4\"\n                               required>\n                        4                    <\/label>\n                                    <label class=\"pt-radio\">\n                        <input type=\"radio\"\n                               name=\"rakennusten_maara\"\n                               value=\"5\"\n                               required>\n                        5                    <\/label>\n                            <\/div>\n        <\/div>\n\n        <!-- MAASTO -->\n        <div class=\"pt-field pt-radio-list\">\n            <label class=\"pt-label\">Maaston muoto<\/label>\n\n            <label class=\"pt-radio-row\">\n                <input type=\"radio\" name=\"maasto\" value=\"tasamaa\">\n                Tasamaa\n            <\/label>\n\n            <label class=\"pt-radio-row\">\n                <input type=\"radio\" name=\"maasto\" value=\"rinne\">\n                Rinne\n            <\/label>\n\n            <div class=\"pt-field-error pt-radio-error\" style=\"display:none;\">\n                Valitse maaston muoto.\n            <\/div>\n        <\/div>\n    <\/fieldset>\n\n    <!-- YHTEYSTIEDOT -->\n    <fieldset class=\"pt-section\">\n        <legend>Kohde ja yhteystiedot<\/legend>\n\n        <div class=\"pt-field\">\n            <label for=\"pt-kohde-osoite\">Kohteen osoite<\/label>\n            <input type=\"text\"\n                   id=\"pt-kohde-osoite\"\n                   name=\"kohde_osoite\"\n                   placeholder=\"Esim. Mallikuja 3, 13100 H\u00e4meenlinna\"\n                   required>\n        <\/div>\n\n        <div class=\"pt-field\">\n            <label for=\"pt-email\">S\u00e4hk\u00f6postiosoitteesi<\/label>\n            <input type=\"email\"\n                   id=\"pt-email\"\n                   name=\"customer_email\"\n                   placeholder=\"esim. nimi@example.com\"\n                   required>\n        <\/div>\n    <\/fieldset>\n\n    <!-- LIS\u00c4PALVELUT -->\n    <fieldset class=\"pt-section\">\n        <legend>Lis\u00e4palvelut<\/legend>\n        <label class=\"pt-checkbox\">\n            <input type=\"checkbox\" name=\"express\" value=\"1\">\n            Pikatoimitus\n        <\/label>\n    <\/fieldset>\n\n    <!-- RAKENNUKSET -->\n    <fieldset class=\"pt-section\">\n        <legend>Rakennukset<\/legend>\n\n                    <div class=\"pt-rakennus\" data-building=\"1\">\n                <h4 class=\"pt-rakennus-title\">Rakennus 1<\/h4>\n\n                <div class=\"pt-rakennus-grid\">\n\n                    <!-- TYYPPI -->\n                    <div class=\"pt-field pt-radio-list\">\n                        <label class=\"pt-label\">Tyyppi<\/label>\n\n                        <label class=\"pt-radio-row\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[1][tyyppi]\"\n                                   value=\"asuin\">\n                            Asuinrakennus\n                        <\/label>\n\n                        <label class=\"pt-radio-row\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[1][tyyppi]\"\n                                   value=\"autotalli\">\n                            Autotalli\n                        <\/label>\n\n                        <label class=\"pt-radio-row\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[1][tyyppi]\"\n                                   value=\"piharakennus\">\n                            Piharakennus\n                        <\/label>\n\n                        <div class=\"pt-field-error pt-radio-error\" style=\"display:none;\">\n                            Valitse rakennuksen tyyppi.\n                        <\/div>\n                    <\/div>\n\n                    <!-- MUOTO -->\n                    <div class=\"pt-muoto-wrapper pt-radio-list\">\n                        <div class=\"pt-muoto-title\">Muoto<\/div>\n\n                        <div class=\"pt-muoto-options\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[1][muoto]\"\n                                   id=\"muoto-1-nelio\"\n                                   value=\"nelikulmio\">\n\n                            <label for=\"muoto-1-nelio\" class=\"pt-muoto-card\">\n                                <div class=\"muoto nelikulmio\"><\/div>\n                            <\/label>\n\n                            <input type=\"radio\"\n                                   name=\"rakennukset[1][muoto]\"\n                                   id=\"muoto-1-l\"\n                                   value=\"l\">\n\n                            <label for=\"muoto-1-l\" class=\"pt-muoto-card\">\n                                <div class=\"muoto l-muoto\"><\/div>\n                            <\/label>\n                        <\/div>\n\n                        <div class=\"pt-field-error pt-radio-error\" style=\"display:none;\">\n                            Valitse rakennuksen muoto.\n                        <\/div>\n                    <\/div>\n\n                    <!-- PINTA-ALA -->\n                    <div>\n                        <label>Pohjan pinta\u2011ala (m\u00b2)<\/label>\n                        <input type=\"number\"\n                               name=\"rakennukset[1][area]\"\n                               class=\"pt-area-input\"\n                               min=\"1\"\n                               max=\"1000\"\n                               step=\"1\">\n                        <div class=\"pt-field-error\" style=\"display:none;\">\n                            Pinta\u2011ala voi olla enint\u00e4\u00e4n 1000 m\u00b2. Isommille, kysy tarjous erikseen.\n                        <\/div>\n                    <\/div>\n\n                <\/div>\n            <\/div>\n                    <div class=\"pt-rakennus\" data-building=\"2\">\n                <h4 class=\"pt-rakennus-title\">Rakennus 2<\/h4>\n\n                <div class=\"pt-rakennus-grid\">\n\n                    <!-- TYYPPI -->\n                    <div class=\"pt-field pt-radio-list\">\n                        <label class=\"pt-label\">Tyyppi<\/label>\n\n                        <label class=\"pt-radio-row\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[2][tyyppi]\"\n                                   value=\"asuin\">\n                            Asuinrakennus\n                        <\/label>\n\n                        <label class=\"pt-radio-row\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[2][tyyppi]\"\n                                   value=\"autotalli\">\n                            Autotalli\n                        <\/label>\n\n                        <label class=\"pt-radio-row\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[2][tyyppi]\"\n                                   value=\"piharakennus\">\n                            Piharakennus\n                        <\/label>\n\n                        <div class=\"pt-field-error pt-radio-error\" style=\"display:none;\">\n                            Valitse rakennuksen tyyppi.\n                        <\/div>\n                    <\/div>\n\n                    <!-- MUOTO -->\n                    <div class=\"pt-muoto-wrapper pt-radio-list\">\n                        <div class=\"pt-muoto-title\">Muoto<\/div>\n\n                        <div class=\"pt-muoto-options\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[2][muoto]\"\n                                   id=\"muoto-2-nelio\"\n                                   value=\"nelikulmio\">\n\n                            <label for=\"muoto-2-nelio\" class=\"pt-muoto-card\">\n                                <div class=\"muoto nelikulmio\"><\/div>\n                            <\/label>\n\n                            <input type=\"radio\"\n                                   name=\"rakennukset[2][muoto]\"\n                                   id=\"muoto-2-l\"\n                                   value=\"l\">\n\n                            <label for=\"muoto-2-l\" class=\"pt-muoto-card\">\n                                <div class=\"muoto l-muoto\"><\/div>\n                            <\/label>\n                        <\/div>\n\n                        <div class=\"pt-field-error pt-radio-error\" style=\"display:none;\">\n                            Valitse rakennuksen muoto.\n                        <\/div>\n                    <\/div>\n\n                    <!-- PINTA-ALA -->\n                    <div>\n                        <label>Pohjan pinta\u2011ala (m\u00b2)<\/label>\n                        <input type=\"number\"\n                               name=\"rakennukset[2][area]\"\n                               class=\"pt-area-input\"\n                               min=\"1\"\n                               max=\"1000\"\n                               step=\"1\">\n                        <div class=\"pt-field-error\" style=\"display:none;\">\n                            Pinta\u2011ala voi olla enint\u00e4\u00e4n 1000 m\u00b2. Isommille, kysy tarjous erikseen.\n                        <\/div>\n                    <\/div>\n\n                <\/div>\n            <\/div>\n                    <div class=\"pt-rakennus\" data-building=\"3\">\n                <h4 class=\"pt-rakennus-title\">Rakennus 3<\/h4>\n\n                <div class=\"pt-rakennus-grid\">\n\n                    <!-- TYYPPI -->\n                    <div class=\"pt-field pt-radio-list\">\n                        <label class=\"pt-label\">Tyyppi<\/label>\n\n                        <label class=\"pt-radio-row\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[3][tyyppi]\"\n                                   value=\"asuin\">\n                            Asuinrakennus\n                        <\/label>\n\n                        <label class=\"pt-radio-row\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[3][tyyppi]\"\n                                   value=\"autotalli\">\n                            Autotalli\n                        <\/label>\n\n                        <label class=\"pt-radio-row\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[3][tyyppi]\"\n                                   value=\"piharakennus\">\n                            Piharakennus\n                        <\/label>\n\n                        <div class=\"pt-field-error pt-radio-error\" style=\"display:none;\">\n                            Valitse rakennuksen tyyppi.\n                        <\/div>\n                    <\/div>\n\n                    <!-- MUOTO -->\n                    <div class=\"pt-muoto-wrapper pt-radio-list\">\n                        <div class=\"pt-muoto-title\">Muoto<\/div>\n\n                        <div class=\"pt-muoto-options\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[3][muoto]\"\n                                   id=\"muoto-3-nelio\"\n                                   value=\"nelikulmio\">\n\n                            <label for=\"muoto-3-nelio\" class=\"pt-muoto-card\">\n                                <div class=\"muoto nelikulmio\"><\/div>\n                            <\/label>\n\n                            <input type=\"radio\"\n                                   name=\"rakennukset[3][muoto]\"\n                                   id=\"muoto-3-l\"\n                                   value=\"l\">\n\n                            <label for=\"muoto-3-l\" class=\"pt-muoto-card\">\n                                <div class=\"muoto l-muoto\"><\/div>\n                            <\/label>\n                        <\/div>\n\n                        <div class=\"pt-field-error pt-radio-error\" style=\"display:none;\">\n                            Valitse rakennuksen muoto.\n                        <\/div>\n                    <\/div>\n\n                    <!-- PINTA-ALA -->\n                    <div>\n                        <label>Pohjan pinta\u2011ala (m\u00b2)<\/label>\n                        <input type=\"number\"\n                               name=\"rakennukset[3][area]\"\n                               class=\"pt-area-input\"\n                               min=\"1\"\n                               max=\"1000\"\n                               step=\"1\">\n                        <div class=\"pt-field-error\" style=\"display:none;\">\n                            Pinta\u2011ala voi olla enint\u00e4\u00e4n 1000 m\u00b2. Isommille, kysy tarjous erikseen.\n                        <\/div>\n                    <\/div>\n\n                <\/div>\n            <\/div>\n                    <div class=\"pt-rakennus\" data-building=\"4\">\n                <h4 class=\"pt-rakennus-title\">Rakennus 4<\/h4>\n\n                <div class=\"pt-rakennus-grid\">\n\n                    <!-- TYYPPI -->\n                    <div class=\"pt-field pt-radio-list\">\n                        <label class=\"pt-label\">Tyyppi<\/label>\n\n                        <label class=\"pt-radio-row\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[4][tyyppi]\"\n                                   value=\"asuin\">\n                            Asuinrakennus\n                        <\/label>\n\n                        <label class=\"pt-radio-row\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[4][tyyppi]\"\n                                   value=\"autotalli\">\n                            Autotalli\n                        <\/label>\n\n                        <label class=\"pt-radio-row\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[4][tyyppi]\"\n                                   value=\"piharakennus\">\n                            Piharakennus\n                        <\/label>\n\n                        <div class=\"pt-field-error pt-radio-error\" style=\"display:none;\">\n                            Valitse rakennuksen tyyppi.\n                        <\/div>\n                    <\/div>\n\n                    <!-- MUOTO -->\n                    <div class=\"pt-muoto-wrapper pt-radio-list\">\n                        <div class=\"pt-muoto-title\">Muoto<\/div>\n\n                        <div class=\"pt-muoto-options\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[4][muoto]\"\n                                   id=\"muoto-4-nelio\"\n                                   value=\"nelikulmio\">\n\n                            <label for=\"muoto-4-nelio\" class=\"pt-muoto-card\">\n                                <div class=\"muoto nelikulmio\"><\/div>\n                            <\/label>\n\n                            <input type=\"radio\"\n                                   name=\"rakennukset[4][muoto]\"\n                                   id=\"muoto-4-l\"\n                                   value=\"l\">\n\n                            <label for=\"muoto-4-l\" class=\"pt-muoto-card\">\n                                <div class=\"muoto l-muoto\"><\/div>\n                            <\/label>\n                        <\/div>\n\n                        <div class=\"pt-field-error pt-radio-error\" style=\"display:none;\">\n                            Valitse rakennuksen muoto.\n                        <\/div>\n                    <\/div>\n\n                    <!-- PINTA-ALA -->\n                    <div>\n                        <label>Pohjan pinta\u2011ala (m\u00b2)<\/label>\n                        <input type=\"number\"\n                               name=\"rakennukset[4][area]\"\n                               class=\"pt-area-input\"\n                               min=\"1\"\n                               max=\"1000\"\n                               step=\"1\">\n                        <div class=\"pt-field-error\" style=\"display:none;\">\n                            Pinta\u2011ala voi olla enint\u00e4\u00e4n 1000 m\u00b2. Isommille, kysy tarjous erikseen.\n                        <\/div>\n                    <\/div>\n\n                <\/div>\n            <\/div>\n                    <div class=\"pt-rakennus\" data-building=\"5\">\n                <h4 class=\"pt-rakennus-title\">Rakennus 5<\/h4>\n\n                <div class=\"pt-rakennus-grid\">\n\n                    <!-- TYYPPI -->\n                    <div class=\"pt-field pt-radio-list\">\n                        <label class=\"pt-label\">Tyyppi<\/label>\n\n                        <label class=\"pt-radio-row\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[5][tyyppi]\"\n                                   value=\"asuin\">\n                            Asuinrakennus\n                        <\/label>\n\n                        <label class=\"pt-radio-row\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[5][tyyppi]\"\n                                   value=\"autotalli\">\n                            Autotalli\n                        <\/label>\n\n                        <label class=\"pt-radio-row\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[5][tyyppi]\"\n                                   value=\"piharakennus\">\n                            Piharakennus\n                        <\/label>\n\n                        <div class=\"pt-field-error pt-radio-error\" style=\"display:none;\">\n                            Valitse rakennuksen tyyppi.\n                        <\/div>\n                    <\/div>\n\n                    <!-- MUOTO -->\n                    <div class=\"pt-muoto-wrapper pt-radio-list\">\n                        <div class=\"pt-muoto-title\">Muoto<\/div>\n\n                        <div class=\"pt-muoto-options\">\n                            <input type=\"radio\"\n                                   name=\"rakennukset[5][muoto]\"\n                                   id=\"muoto-5-nelio\"\n                                   value=\"nelikulmio\">\n\n                            <label for=\"muoto-5-nelio\" class=\"pt-muoto-card\">\n                                <div class=\"muoto nelikulmio\"><\/div>\n                            <\/label>\n\n                            <input type=\"radio\"\n                                   name=\"rakennukset[5][muoto]\"\n                                   id=\"muoto-5-l\"\n                                   value=\"l\">\n\n                            <label for=\"muoto-5-l\" class=\"pt-muoto-card\">\n                                <div class=\"muoto l-muoto\"><\/div>\n                            <\/label>\n                        <\/div>\n\n                        <div class=\"pt-field-error pt-radio-error\" style=\"display:none;\">\n                            Valitse rakennuksen muoto.\n                        <\/div>\n                    <\/div>\n\n                    <!-- PINTA-ALA -->\n                    <div>\n                        <label>Pohjan pinta\u2011ala (m\u00b2)<\/label>\n                        <input type=\"number\"\n                               name=\"rakennukset[5][area]\"\n                               class=\"pt-area-input\"\n                               min=\"1\"\n                               max=\"1000\"\n                               step=\"1\">\n                        <div class=\"pt-field-error\" style=\"display:none;\">\n                            Pinta\u2011ala voi olla enint\u00e4\u00e4n 1000 m\u00b2. Isommille, kysy tarjous erikseen.\n                        <\/div>\n                    <\/div>\n\n                <\/div>\n            <\/div>\n            <\/fieldset>\n\n    <button type=\"submit\" name=\"pt_submit\" class=\"pt-submit\">\n        Laske hinta\u2011arvio\n    <\/button>\n<\/form>\n<style>\n.pt-laskuri-form {\n    max-width: 640px;\n    padding: 20px;\n    border: 1px solid #ccc;\n}\n\n.pt-section {\n    margin-bottom: 25px;\n    padding: 15px;\n    border: 1px solid #ddd;\n}\n\n.pt-radio-group {\n    display: flex;\n    gap: 15px;\n}\n\n.pt-checkbox {\n    font-weight: 600;\n}\n\n.pt-rakennus {\n    display: none;\n    margin-top: 15px;\n    padding: 12px;\n    border: 1px dashed #aaa;\n}\n\n.pt-rakennus.is-active {\n    display: block;\n}\n\n.pt-rakennus-grid {\n    display: grid;\n    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));\n    gap: 15px;\n}\n\n\/* \u2705 T\u00c4M\u00c4 OSIO KORJAA KESKITYKSEN *\/\n.pt-muoto-wrapper {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-self: center;\n}\n\n.pt-muoto-title {\n    font-weight: 600;\n    margin-bottom: 8px;\n}\n\n\/* Muotovalinta *\/\n.pt-muoto-options {\n    display: flex;\n    gap: 12px;\n}\n\n.pt-muoto-options input {\n    display: none;\n}\n\n.pt-muoto-card {\n    border: 2px solid #ccc;\n    padding: 8px;\n    cursor: pointer;\n    border-radius: 6px;\n}\n\n.pt-muoto-options input:checked + .pt-muoto-card {\n    border-color: #007cba;\n    box-shadow: 0 0 0 2px rgba(0,124,186,0.25);\n}\n\n\/* CSS-muodot *\/\n.muoto {\n    width: 60px;\n    height: 40px;\n    background: #555;\n}\n\n.muoto.l-muoto {\n    position: relative;\n    background: none;\n}\n\n.muoto.l-muoto::before,\n.muoto.l-muoto::after {\n    content: \"\";\n    position: absolute;\n    background: #555;\n}\n\n.muoto.l-muoto::before {\n    width: 100%;\n    height: 40%;\n}\n\n.muoto.l-muoto::after {\n    width: 40%;\n    height: 100%;\n}\n\n.pt-submit {\n    padding: 10px 18px;\n    font-size: 16px;\n    font-weight: bold;\n}\n\n.pt-field-error {\n    color: #b00000;\n    font-size: 14px;\n    margin-top: 4px;\n}\n\n.pt-input-error {\n    border: 2px solid #b00000;\n}\n\n\/* \u2705 Radiobutton-listat selkeille riveille *\/\n.pt-radio-list {\n    display: flex;\n    flex-direction: column;\n    gap: 6px;\n}\n\n.pt-radio-row {\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    cursor: pointer;\n}\n\n\n.pt-muoto-wrapper {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n}\n\n.pt-muoto-wrapper .pt-field-error {\n    width: 100%;\n    text-align: center;\n}\n<\/style>\n\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function () {\n\n    \/* =====================================================\n     * RAKENNUSTEN M\u00c4\u00c4R\u00c4 \u2192 RIVIEN N\u00c4YTT\u00d6\n     * ===================================================== *\/\n\n    const radios = document.querySelectorAll('input[name=\"rakennusten_maara\"]');\n    const blocks = document.querySelectorAll('.pt-rakennus');\n\n    function updateBuildings(count) {\n        blocks.forEach(block => {\n            const index = parseInt(block.dataset.building, 10);\n            const areaInput = block.querySelector('.pt-area-input');\n\n            const active = index <= count;\n            block.classList.toggle('is-active', active);\n\n            if (areaInput) {\n                areaInput.required = active;\n\n                if (!active) {\n                    areaInput.value = '';\n                    areaInput.classList.remove('pt-input-error');\n                    const errorBox = areaInput.parentElement.querySelector('.pt-field-error');\n                    if (errorBox) errorBox.style.display = 'none';\n                }\n            }\n        });\n    }\n\n    radios.forEach(radio => {\n        radio.addEventListener('change', () => {\n            updateBuildings(parseInt(radio.value, 10));\n        });\n    });\n\n    \/* =====================================================\n     * VALIDOINTIFUNKTIOT\n     * ===================================================== *\/\n\n    const form = document.querySelector('.pt-laskuri-form');\n    const areaInputs = document.querySelectorAll('.pt-area-input');\n\n    function validateArea(input) {\n        const errorBox = input.parentElement.querySelector('.pt-field-error');\n\n        if (input.required && input.value === '') {\n            input.classList.add('pt-input-error');\n            if (errorBox) errorBox.style.display = 'block';\n            return false;\n        }\n\n        const value = parseInt(input.value, 10);\n        if (!isNaN(value) && value > 1000) {\n            input.classList.add('pt-input-error');\n            if (errorBox) errorBox.style.display = 'block';\n            return false;\n        }\n\n        input.classList.remove('pt-input-error');\n        if (errorBox) errorBox.style.display = 'none';\n        return true;\n    }\n\nfunction validateRadioGroup(container, selector) {\n    const radios = container.querySelectorAll(selector);\n    const errorBox = container.querySelector('.pt-radio-error')\n        || container.parentElement.querySelector('.pt-radio-error');\n\n    const checked = Array.from(radios).some(r => r.checked);\n\n    if (!checked) {\n        if (errorBox) errorBox.style.display = 'block';\n        return false;\n    }\n\n    if (errorBox) errorBox.style.display = 'none';\n    return true;\n}\n    \/* =====================================================\n     * SUBMIT-ESTO\n     * ===================================================== *\/\n\n    if (form) {\n        form.addEventListener('submit', function (e) {\n            let ok = true;\n\n            \/* Rakennukset *\/\n            areaInputs.forEach(input => {\n                const block = input.closest('.pt-rakennus');\n\n                if (block && block.classList.contains('is-active')) {\n\n                    \/\/ Pinta-ala\n                    if (!validateArea(input)) {\n                        ok = false;\n                    }\n\n                    \/\/ Rakennuksen TYYPPI\n                    if (!validateRadioGroup(\n                        block.querySelector('.pt-radio-list'),\n                        'input[type=\"radio\"][name*=\"[tyyppi]\"]'\n                    )) {\n                        ok = false;\n                    }\n\n                    \/\/ Rakennuksen MUOTO\n                    if (!validateRadioGroup(\n                        block.querySelector('.pt-muoto-wrapper'),\n                        'input[type=\"radio\"][name*=\"[muoto]\"]'\n                    )) {\n                        ok = false;\n                    }\n                }\n            });\n\n            \/* Maaston muoto *\/\n            const maastoContainer =\n                document.querySelector('input[name=\"maasto\"]')?.closest('.pt-radio-list');\n\n            if (maastoContainer) {\n                if (!validateRadioGroup(\n                    maastoContainer,\n                    'input[type=\"radio\"][name=\"maasto\"]'\n                )) {\n                    ok = false;\n                }\n            }\n\n            if (!ok) {\n                e.preventDefault();\n                e.stopPropagation();\n            }\n        });\n    }\n\n});\n<\/script>\n\n\n    \n    \n     \n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"452\" src=\"https:\/\/hrsuunnittelu.fi\/wp-content\/uploads\/2025\/06\/WhatsApp-Kuva-2025-06-02-klo-21.39.57_86a92beb.jpg\" alt=\"\" class=\"wp-image-149\" srcset=\"https:\/\/hrsuunnittelu.fi\/wp-content\/uploads\/2025\/06\/WhatsApp-Kuva-2025-06-02-klo-21.39.57_86a92beb.jpg 800w, https:\/\/hrsuunnittelu.fi\/wp-content\/uploads\/2025\/06\/WhatsApp-Kuva-2025-06-02-klo-21.39.57_86a92beb-300x170.jpg 300w, https:\/\/hrsuunnittelu.fi\/wp-content\/uploads\/2025\/06\/WhatsApp-Kuva-2025-06-02-klo-21.39.57_86a92beb-768x434.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e4yt\u00e4 alla olevan lomakkeen tiedot ja saat hinta-arvion s\u00e4hk\u00f6postiisi. Se ei sido mihink\u00e4\u00e4n, mutta voit helposti tilata sen vastaamalla s\u00e4hk\u00f6postiin. Hintahaarukka on arvio ja se vahvistetaan ennen tilauksen hyv\u00e4ksymist\u00e4. Mik\u00e4li hinta poikkeaa haarukasta l\u00e4ht\u00f6tietojen vuoksi, olemme etuk\u00e4teen erikseen yhteydess\u00e4. Normali toimitusaika on noin 1 kuukausi. Jos asialla on kiire, ruksi pikatoimitus, niin lis\u00e4hinnasta pyrimme 1-2 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":374,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-424","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/hrsuunnittelu.fi\/index.php\/wp-json\/wp\/v2\/pages\/424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hrsuunnittelu.fi\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hrsuunnittelu.fi\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hrsuunnittelu.fi\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hrsuunnittelu.fi\/index.php\/wp-json\/wp\/v2\/comments?post=424"}],"version-history":[{"count":9,"href":"https:\/\/hrsuunnittelu.fi\/index.php\/wp-json\/wp\/v2\/pages\/424\/revisions"}],"predecessor-version":[{"id":460,"href":"https:\/\/hrsuunnittelu.fi\/index.php\/wp-json\/wp\/v2\/pages\/424\/revisions\/460"}],"up":[{"embeddable":true,"href":"https:\/\/hrsuunnittelu.fi\/index.php\/wp-json\/wp\/v2\/pages\/374"}],"wp:attachment":[{"href":"https:\/\/hrsuunnittelu.fi\/index.php\/wp-json\/wp\/v2\/media?parent=424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}