{"id":3559,"date":"2022-12-19T12:21:25","date_gmt":"2022-12-19T10:21:25","guid":{"rendered":"http:\/\/dev.villageworks.com\/meista\/"},"modified":"2025-02-27T16:00:40","modified_gmt":"2025-02-27T14:00:40","slug":"about-us","status":"publish","type":"page","link":"https:\/\/villageworks.com\/en\/about-us\/","title":{"rendered":"About us"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3559\" class=\"elementor elementor-3559 elementor-2953\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4947eb10 e-flex e-con-boxed e-con e-parent\" data-id=\"4947eb10\" 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<div class=\"elementor-element elementor-element-70e464ae e-con-full e-flex e-con e-child\" data-id=\"70e464ae\" 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-16a62290 elementor-widget elementor-widget-text-editor\" data-id=\"16a62290\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h1>About us<\/h1>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-67980ceb elementor-widget elementor-widget-text-editor\" data-id=\"67980ceb\" 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>VillageWorks is Finland\u2019s largest and longest established private company offering flexible workspaces. Founded in 2008, Finnish company VillageWorks has grown to encompass a range of locations, with approximately 2,000 individual members and 500 member businesses. Today, all that VillageWorks does is centred around its three cornerstones \u2013 versatile spaces, a broad-ranging service provision, and a close-knit and warm community.<\/p><p>We have been a pioneer in exploring new ways of working, always offering practical solutions and services for all kinds of companies, and of course with transparent pricing.<\/p><p>VillageWorks offers a variety of office and work spaces, meeting facilities, event and sauna spaces, and virtual offices. Our services include not only hire of event and work spaces, but also concierge services, internet and IT support, cleaning, tea and coffee, and a variety of workshops and events to promote wellbeing and our sense of community.<\/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-6952de6d e-con-full e-flex e-con e-child\" data-id=\"6952de6d\" 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\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-883b71b e-flex e-con-boxed e-con e-parent\" data-id=\"883b71b\" 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-94cebe7 elementor-widget elementor-widget-menu-anchor\" data-id=\"94cebe7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"menu-anchor.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-menu-anchor\" id=\"form\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-433f38b elementor-widget elementor-widget-text-editor\" data-id=\"433f38b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2>Contact us<\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2ded7a2 elementor-widget elementor-widget-global elementor-global-12425 elementor-widget-html\" data-id=\"2ded7a2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n    #form-container {\n        width: 100%;\n        max-width: 690px;\n    }\n    #villageworks-form .section {\n        background-color: #fff;\n        border-radius: 8px;\n        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n        padding: 40px;\n        margin-bottom: 20px;\n    }\n    #villageworks-form .section {\n        transition: opacity 0.3s ease-in-out;\n    }\n    #villageworks-form .section-two {\n        display: none;\n    }\n    #success {\n        color: #335151;\n        display: none;\n        opacity: 0;\n        transition: opacity 0.3s ease-in-out;\n        background-color: #fff;\n        border-radius: 8px;\n        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n        padding: 40px;\n        margin-bottom: 20px;\n    }\n    #villageworks-form fieldset {\n        border: 0;\n        margin-bottom: 10px;\n    }\n    #villageworks-form legend {\n        font-weight: bold;\n        font-size: 1.1em;\n        color: #335151;\n        margin-bottom: 30px;\n    }\n    #villageworks-form label.required::after, #villageworks-form p.required::after {\n        content: \" *\";\n        color: red;\n    }\n    #villageworks-form .error-message {\n        color: red;\n        font-size: 0.85em;\n        margin-top: 5px;\n        display: none;\n    }\n    #villageworks-form .error-message#additional_info_error {\n        color: #335151;\n    }\n    #villageworks-form .radio-group {\n        display: flex;\n        flex-wrap: wrap;\n        gap: 10px;\n    }\n    #villageworks-form .radio-button {\n        position: relative;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        background-color: #fff;\n        color: #335151;\n        padding: 10px 20px;\n        flex: 1 1 calc(25% - 10px);\n        border: 1px solid #dcdcdc;\n        border-radius: 2px;\n        cursor: pointer;\n        text-align: center;\n        min-height: 120px;\n        transition: background-color 0.3s ease, color 0.3s ease;\n        overflow: hidden;\n    }\n    #villageworks-form .radio-button label {\n         position: absolute;\n         top: 0;\n         left: 0;\n         width: 100%;\n         height: 100%;\n         display: flex;\n         flex-direction: column;\n         align-items: center;\n         justify-content: center;\n         cursor: pointer;\n         padding: 20px;\n     }\n    #villageworks-form .radio-button:hover {\n        background-color: #f1f762;\n        color: #335151;\n        transition: all .3s;\n    }\n    #villageworks-form .radio-button.full-width {\n        flex: 1 1 100%;\n        min-height: 50px;\n    }\n\n    #villageworks-form .radio-button input {\n        display: none;\n    }\n    #villageworks-form .radio-button label::before {\n        background-size: 80%;\n        background-repeat: no-repeat;\n        content:\"\";\n        display: block;\n        height: 45px;\n        width: 50px;\n        margin: 0 auto;\n    }   \n    #villageworks-form .radio-button.offices label::before {\n        background-image: url('https:\/\/villageworks.com\/wp-content\/uploads\/elementor\/thumbs\/icon-office-r3c0w55lj8kg7vrqz0zkinz2uk5szmh3b9l5ugfo5c.png');            \n    }\n    #villageworks-form .radio-button.coworking label::before {\n        background-image: url('https:\/\/villageworks.com\/wp-content\/uploads\/elementor\/thumbs\/icon-coworking-r3c0whdi0316et9zzo9px2w2kkhkrotloy2h31xjwg.png');\n        \n    }\n    #villageworks-form .radio-button.virtual label::before {\n        background-image: url('https:\/\/villageworks.com\/wp-content\/uploads\/elementor\/thumbs\/Virtuaalitoimisto-r3hb4jlranih5w334abg3hugol9geo5ivpev0q8q2o.png');            \n    }\n    #villageworks-form .radio-button.meeting label::before {\n        background-image: url('https:\/\/villageworks.com\/wp-content\/uploads\/elementor\/thumbs\/icon-meeting-r3c276yrmoz5d7fe8d5absjpaw98a79eg564n2o8ow.png');            \n    } \n    #villageworks-form .radio-button.full-width label::before {\n        display: none;\n    }\n    #villageworks-form .primary-buttons label.required::after {\n        content: \"\";\n    }\n    @media screen and (max-width: 500px) { \n        #villageworks-form .input-group .input-field {\n            flex: 1 1 50% !important;\n        }\n    }\n    @media screen and (max-width: 600px) {        \n        #villageworks-form .primary-buttons {\n            display: flex;\n        }\n        #villageworks-form .radio-button {\n            flex: 1 1 calc(50% - 10px);\n        }\n        #villageworks-form .section {\n            padding: 30px 10px;\n        }\n    }\n    #villageworks-form .radio-button.checked {\n        background-color: #f1f762;\n        color: #335151;\n    }\n    #villageworks-form .input-group {\n        display: flex;\n        flex-wrap: wrap;\n        gap: 30px;\n        padding-top: 20px;\n    }\n    #villageworks-form .input-group label, #villageworks-form  p {\n        width: 100%;\n        color: #335151;\n        display: inline;\n    }\n    #villageworks-form .input-group .no-label label {\n        display: none;\n    }\n    #villageworks-form .input-group .input-field {\n        flex: 1 1 calc(50% - 20px);\n        display: flex;\n        flex-direction: column;\n    }\n    #villageworks-form .input-group .input-field.full-width {\n        flex: 1 1 100%;   \n    }\n    #villageworks-form input[type=\"text\"],\n    #villageworks-form input[type=\"email\"],\n    #villageworks-form input[type=\"tel\"],\n    #villageworks-form input[type=\"number\"],\n    #villageworks-form select {\n        width: 100%;\n        padding: 20px 0 10px 0;\n        border-top: 0;\n        border-right: 0;\n        border-bottom: 1px solid #ccc;\n        border-left: 0;\n        background-color: transparent;\n        font-size: 0.9em;\n        color: #335151;\n    }\n    #villageworks-form input[type=\"text\"]:focus, \n    #villageworks-form input[type=\"email\"]:focus,\n    #villageworks-form input[type=\"tel\"]:focus,\n    #villageworks-form input[type=\"number\"]:focus {\n        border-bottom: 1px solid #000;\n        outline: none;\n        box-shadow: none;\n    }\n    #villageworks-form select {\n        padding: 10px 5px;\n    }\n\n    \/* Checkbox styling *\/\n    #villageworks-form .checkbox-group {\n        margin-top: 30px;\n    }\n\n    #villageworks-form .checkbox-group label {\n        font-size: 0.85em;\n        color: #335151;\n        display: block;\n        margin-bottom: 10px;\n        line-height: 1.5em;\n    }\n\n    #villageworks-form input[type=\"checkbox\"] {\n        margin-right: 8px;\n    }\n    \n    #villageworks-form .consent-text, #villageworks-form .consent-text a {\n        font-size: 14px;\n        color: #777;\n        margin-top: 10px;\n        line-height: 1.4em;\n    }\n    #villageworks-form .consent-text a {\n        text-decoration: underline;\n    }\n\n    \/* Submit button *\/\n    #villageworks-form button[type=\"submit\"] {\n        width: 100%;\n        padding: 12px;\n        background-color: #fff;\n        border: 2px solid #2a524f;\n        border-radius: 5px;\n        color: #335151;\n        font-size: 1em;\n        font-weight: bold;\n        cursor: pointer;\n        margin-top: 15px;\n    }\n\n    #villageworks-form button[type=\"submit\"]:hover {\n        background-color: #f1f762;\n        transition: all .3s;\n    }\n    #villageworks-form #membership-options, #villageworks-form #event-options, #villageworks-form #other-options, #event-options-event, #event-options-auditorium {\n        display: none;\n        margin-top: 10px;\n    }\n    #event-options-event, #event-options-auditorium {\n        margin-left: 20px;\n    }\n    #villageworks-form .membership-option, #villageworks-form .event-option, #villageworks-form .other-option {\n        margin-bottom: 10px;\n    }\n<\/style>\n\n<div id=\"form-container\">\n<form id=\"villageworks-form\" novalidate>\n    <div class=\"section section-one\">\n        <fieldset>\n            <legend>1. How can we help? Pick an option<\/legend>\n            <div class=\"radio-group primary-buttons\">\n                <div class=\"radio-button offices\">\n                    <input type=\"radio\" id=\"toimistot\" name=\"help_option\" value=\"Toimistot\">\n                    <label for=\"toimistot\">Offices<\/label>\n                <\/div>\n                <div class=\"radio-button coworking\">\n                    <input type=\"radio\" id=\"coworking\" name=\"help_option\" value=\"Coworking\">\n                    <label for=\"coworking\">Coworking<\/label>\n                <\/div>\n                <div class=\"radio-button virtual\">\n                    <input type=\"radio\" id=\"virtuaalitoimisto\" name=\"help_option\" value=\"Virtuaalitoimisto\">\n                    <label for=\"virtuaalitoimisto\">Virtual office<\/label>\n                <\/div>\n                <div class=\"radio-button meeting\">\n                    <input type=\"radio\" id=\"kokous\" name=\"help_option\" value=\"Kokous- ja tapahtumatilat\">\n                    <label for=\"kokous\">Meetings and events<\/label>\n                <\/div>\n                <div class=\"radio-button full-width\">\n                    <input type=\"radio\" id=\"not_sure\" name=\"help_option\" value=\"En ole varma, mik\u00e4 on sopivin vaihtoehto\">\n                    <label for=\"not_sure\">Not sure<\/label>\n                <\/div>\n                <div class=\"error-message\" id=\"help_option_error\">Please choose an option<\/div>\n            <\/div>\n        <\/fieldset>\n    <\/div>\n    <div class=\"section section-two\">\n        <fieldset>\n            <legend>2. Your details<\/legend>\n            <div class=\"input-group\">\n                <div class=\"input-field\">\n                    <label for=\"firstname\">Etunimi<\/label>\n                    <input type=\"text\" id=\"firstname\" name=\"firstname\" required>\n                    <div class=\"error-message\" id=\"firstname_error\">Please enter your first name<\/div>\n                <\/div>\n                <div class=\"input-field\">\n                    <label for=\"lastname\">Sukunimi<\/label>\n                    <input type=\"text\" id=\"lastname\" name=\"lastname\" required>\n                    <div class=\"error-message\" id=\"lastname_error\">Please enter your last name<\/div>\n                <\/div>\n                <div class=\"input-field\">\n                    <label for=\"email\">Email<\/label>\n                    <input type=\"email\" id=\"email\" name=\"email\" required>\n                    <div class=\"error-message\" id=\"email_error\">Please enter a valid email address<\/div>\n                <\/div>\n                <div class=\"input-field\">\n                    <label for=\"phone\">Phone<\/label>\n                    <input type=\"tel\" id=\"phone\" name=\"phone\" required>\n                    <div class=\"error-message\" id=\"phone_error\">Please enter a valid phone number<\/div>\n                <\/div>\n                <div class=\"input-field full-width no-label\">\n                    <label for=\"location\">Location<\/label>\n                    <select id=\"location\" name=\"location\">\n                        <option value=\"\">If you already know which location you're interested in, you can choose it here<\/option>\n                        <option value=\"Erottaja2\">Erottaja2<\/option>\n                        <option value=\"S\u00e4hk\u00f6talo\">S\u00e4hk\u00f6talo<\/option>\n                        <option value=\"Fredrikinkatu\" id=\"fredrikinkatu\">Fredrikinkatu<\/option>\n                        <option value=\"Ruoholahti\">Ruoholahti<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"input-field full-width no-label\">\n                    <label for=\"location-virtual\">Location<\/label>\n                    <select id=\"location-virtual\" name=\"location-virtual\">\n                        <option value=\"\">If you already know which virtual office address you're interested in, you can choose it here<\/option>\n                        <option value=\"Erottaja2\">Erottaja2 \u2013 Erottajankatu 2, 00120 Helsinki<\/option>\n                        <option value=\"S\u00e4hk\u00f6talo\">S\u00e4hk\u00f6talo \u2013 Kampinkuja 2, 00100 Helsinki<\/option>\n                        <option value=\"Ruoholahti\">Ruoholahti - Porkkalankatu 5, 00180 Helsinki<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"input-field full-width\">\n                    <label for=\"company\">Company<\/label>\n                    <input type=\"text\" id=\"company\" name=\"company\" required>\n                    <div class=\"error-message\" id=\"company_error\">Please enter your company name<\/div>\n                <\/div>\n                <div id=\"event-options\">\n                    <p class=\"required\">What kind of space are you looking for?<\/p><br \/><br \/>\n                    <div class=\"event-option\">\n                        <input type=\"radio\" id=\"conference\" name=\"event_type\" value=\"Kokoustila\">\n                        <label for=\"conference\">Meeting space<\/label>\n                    <\/div>\n                    <div class=\"event-option\">\n                        <input type=\"radio\" id=\"auditorium\" name=\"event_type\" value=\"Auditorio\">\n                        <label for=\"auditorium\">Auditorium<\/label>\n                    <\/div>\n                        <div id=\"event-options-auditorium\">\n                            <div class=\"event-option\">\n                                <input type=\"radio\" id=\"aalto-auditorium\" name=\"event_option\" value=\"Kokoustila\">\n                                <label for=\"aalto-auditorium\">Aalto Auditorium Kamppi<\/label>\n                            <\/div>\n                        <\/div>\n                    <div class=\"event-option\">\n                        <input type=\"radio\" id=\"event\" name=\"event_type\" value=\"Tapahtumatila\">\n                        <label for=\"event\">Event space<\/label>\n                    <\/div>\n                        <div id=\"event-options-event\">\n                            <div class=\"event-option\">\n                                <input type=\"radio\" id=\"sky-lounge\" name=\"event_option\" value=\"Sky Lounge Kamppi\">\n                                <label for=\"sky-lounge\">Sky Lounge Kamppi<\/label>\n                            <\/div>\n                            <div class=\"event-option\">\n                                <input type=\"radio\" id=\"business-lounge\" name=\"event_option\" value=\"Business Lounge Erottaja\">\n                                <label for=\"business-lounge\">Business Lounge Erottaja<\/label>\n                            <\/div>\n                            <div class=\"event-option\">\n                                <input type=\"radio\" id=\"bay-lounge-ruoholahti\" name=\"event_option\" value=\"Bay Lounge Ruoholahti\">\n                                <label for=\"bay-lounge-ruoholahti\">Bay Lounge Ruoholahti<\/label>\n                            <\/div>\n                        <\/div>\n                <div class=\"error-message\" id=\"event_option_error\">Please choose an option<\/div>\n                <\/div>\n                <div id=\"other-options\">\n                    <p>Is it about...<\/p><br \/><br \/>\n                    <div class=\"other-option\">\n                        <input type=\"radio\" id=\"billing\" name=\"other_type\" value=\"Laskutus\">\n                        <label for=\"billing\">Invoicing<\/label>\n                    <\/div>\n                    <div class=\"other-option\">\n                        <input type=\"radio\" id=\"partnerships\" name=\"other_type\" value=\"Yhteisty\u00f6\">\n                        <label for=\"partnerships\">Partnerships<\/label>\n                    <\/div>\n                    <div class=\"other-option\">\n                        <input type=\"radio\" id=\"rental\" name=\"other_type\" value=\"Vuokrattava kiinteist\u00f6\">\n                        <label for=\"rental\">Real estate rentals<\/label>\n                    <\/div>\n                    <div class=\"other-option\">\n                        <input type=\"radio\" id=\"recruitment\" name=\"other_type\" value=\"Rekrytointi\">\n                        <label for=\"recruitment\">Recruitment<\/label>\n                    <\/div>\n                <\/div>\n                <div class=\"input-field full-width\">\n                    <label for=\"additional_info\">Additional information<\/label>\n                    <input type=\"text\" id=\"additional_info\" name=\"additional_info\">\n                    <div class=\"error-message\" id=\"additional_info_error\">For example: location, start date, number of people<\/div>\n                <\/div>\n                <div class=\"input-field\" id=\"membership-options\">\n                    <div class=\"membership-option\">\n                        <input type=\"radio\" id=\"monthly_membership\" name=\"membership_type\" value=\"Kuukausij\u00e4senyys\">\n                        <label for=\"monthly_membership\">Monthly membership<\/label>\n                    <\/div>\n                    <div class=\"membership-option\">\n                        <input type=\"radio\" id=\"single_visits\" name=\"membership_type\" value=\"Yksitt\u00e4iset k\u00e4ynnit\">\n                        <label for=\"single_visits\">Day pass<\/label>\n                    <\/div>\n                    <div class=\"error-message\" id=\"membership_type_error\">VPlease choose the membership type<\/div>\n                <\/div>\n            <\/div>\n        <\/fieldset>\n    <button type=\"submit\">Submit<\/button>\n        <fieldset class=\"checkbox-group\">\n            <label for=\"newsletter\"><input type=\"checkbox\" name=\"newsletter\" id=\"newsletter\" value=\"yes\"> I agree to receive newsletters and other communications from VillageWorks.<\/label>\n            <label for=\"consent\"><input type=\"checkbox\" name=\"consent\" id=\"consent\" value=\"yes\" required> I agree to allow VillageWorks to store and process my personal data.<\/label>\n            <p class=\"consent-text\">In order to provide you with the content you ordered, we need to be able to store and process your contact information. You can cancel those communication settings at any time by notifying us with this form. You can find more information about our data protection practices in our <a href=\"https:\/\/villageworks.com\/en\/data-protection-policy\/\" target=\"_blank\">Privacy Policy.<\/a>.<\/p>\n        <\/fieldset>\n    <\/div>\n<\/form>\n<div id=\"success\">\n    <center><h4>Thank you for contacting us, we will be in touch soon!<\/h4><\/center>\n<\/div>\n<\/div>\n<script>\n    document.addEventListener('DOMContentLoaded', () => {\n        const radioButtons = document.querySelectorAll('input[name=\"help_option\"]');\n        const sectionTwo = document.querySelector('.section-two');\n\n        radioButtons.forEach((radioButton) => {\n            radioButton.addEventListener('change', () => {\n                \/\/ First, make sure section-two is visible\n                if (Array.from(radioButtons).some(radio => radio.checked)) {\n                    sectionTwo.style.display = 'block';\n\n                    \/\/ Next, check if the screen width is 600px or less\n                    if (window.matchMedia(\"(max-width: 600px)\").matches) {\n                        \n                        \/\/ If it is, scroll to the top of section-two\n                        sectionTwo.scrollIntoView({ behavior: 'smooth', block: 'start' });\n                    }\n                }\n            });\n        });\n    });\n<\/script>\n<script>\ndocument.addEventListener('change', (event) => {\n    if (event.target.type === 'radio' && event.target.closest('.radio-button')) {\n        const radioGroup = document.querySelectorAll(`input[name=\"${event.target.name}\"]`);\n        \/\/ Update required labels dynamically\n        document.querySelectorAll('input:required').forEach(input => {\n            const label = document.querySelector(`label[for=\"${input.id}\"]`);\n            if (label) label.classList.add('required');\n        });\n\n        \/\/ Toggle the 'checked' class\n        radioGroup.forEach(radio => {\n            const container = radio.closest('.radio-button');\n            if (container) {\n                container.classList.toggle('checked', radio.checked);\n            }\n        });\n\n        \/\/ Handle dynamic field requirements\n        const additionalInfoField = document.getElementById('additional_info');\n        const additionalInfoError = document.getElementById('additional_info_error');\n        const companyField = document.getElementById('company');\n        const locationField = document.getElementById('location').closest('.input-field');\n        const virtuallocationField = document.getElementById('location-virtual');\n        const membershipOptions = document.getElementById('membership-options');\n        const eventOptions = document.getElementById('event-options');\n        const eventEventOptions = document.getElementById('event-options-event');\n        const eventAuditoriumOptions = document.getElementById('event-options-auditorium');\n        const otherOptions = document.getElementById('other-options');\n        const fredaOption = document.getElementById('fredrikinkatu');\n\n        \/\/ Clear previous visibility and requirements\n        const resetFields = () => {\n            additionalInfoField.required = false;\n            companyField.required = true;\n            additionalInfoError.style.display = 'none';\n            membershipOptions.style.display = 'none';\n            eventOptions.style.display = 'none';\n            otherOptions.style.display = 'none';\n            locationField.style.display = 'block';\n            virtuallocationField.style.display = 'none';\n            fredaOption.hidden = false;\n            eventOptions.required = false;\n\n            \/\/ Remove 'required' class from all labels\n            document.querySelectorAll('label.required').forEach(label => label.classList.remove('required'));\n        };\n\n        resetFields();\n\n        if (event.target.id === 'toimistot') {\n            additionalInfoError.style.display = 'block';\n            eventOptions.required = false;\n        } else if (event.target.id === 'coworking') {\n            fredaOption.hidden = true;\n            membershipOptions.style.display = 'block';\n            eventOptions.required = false;\n        } else if (event.target.id === 'virtuaalitoimisto') {\n            locationField.style.display = 'none';\n            virtuallocationField.style.display = 'block';\n            eventOptions.required = false;\n        } else if (event.target.id === 'kokous') {\n            eventOptions.style.display = 'block';\n            eventOptions.required = true;\n            locationField.style.display = 'none';\n            companyField.required = false;\n        } else if (event.target.id === 'not_sure') {\n            otherOptions.style.display = 'block';\n            locationField.style.display = 'none';\n            companyField.required = false;\n            additionalInfoField.required = true;\n            eventOptions.required = false;\n        } else if (event.target.id === 'event') {\n            eventEventOptions.style.display = 'block';\n            eventAuditoriumOptions.required = false;\n            eventEventOptions.required = true;\n        } else if (event.target.id === 'auditorium') {\n            eventAuditoriumOptions.style.display = 'block';\n            eventEventOptions.required = false;\n            eventAuditoriumOptions.required = true;\n        }\n        \n\n        \/\/ Update required labels dynamically\n        document.querySelectorAll('input:required').forEach(input => {\n            const label = document.querySelector(`label[for=\"${input.id}\"]`);\n            if (label) label.classList.add('required');\n        });\n        \n    }\n    if (event.target.type === 'radio' && event.target.closest('.event-option')) {\n        const eventAuditoriumOptions = document.getElementById('event-options-auditorium');\n        const eventEventOptions = document.getElementById('event-options-event')\n\n        if (event.target.id === 'auditorium') {\n            eventAuditoriumOptions.style.display = 'block';\n            eventEventOptions.style.display = 'none';\n        } else if (event.target.id === 'event') {\n            eventEventOptions.style.display = 'block';\n            eventAuditoriumOptions.style.display = 'none';\n        } else if (event.target.id === 'conference') {\n            eventEventOptions.style.display = 'none';\n            eventAuditoriumOptions.style.display = 'none';\n        }\n    }\n\n});\n<\/script>\n<script>\n    \/\/ Helper function to get the HubSpot Cookie (hutk)\n    function getCookie(name) {\n        var value = \"; \" + document.cookie;\n        var parts = value.split(\"; \" + name + \"=\");\n        if (parts.length == 2) return parts.pop().split(\";\").shift();\n    }\n\n    \/\/ Flag to prevent double submission\n    let isSubmitting = false;\n\n    \/\/ We attach the listener to the specific ID, but inside we use 'event.target' to be safe\n    document.getElementById(\"villageworks-form\").addEventListener(\"submit\", async function(event) {\n        event.preventDefault(); \n        \n        \/\/ 1. CAPTURE THE SPECIFIC FORM INSTANCE\n        const form = event.target; \n\n        \/\/ If already submitting, stop here\n        if (isSubmitting) { return; }\n\n        let valid = true;\n\n        \/\/ --- VALIDATION LOGIC (Scoped to 'form') ---\n\n        \/\/ Validate help_option radio buttons\n        const helpOption = form.querySelector('input[name=\"help_option\"]:checked');\n        if (!helpOption) {\n            form.querySelector(\"#help_option_error\").style.display = \"block\";\n            valid = false;\n        } else {\n            form.querySelector(\"#help_option_error\").style.display = \"none\";\n        }\n\n        \/\/ Validate event_option (Only if \"Kokous- ja tapahtumatilat\" is selected)\n        if (helpOption && helpOption.value === \"Kokous- ja tapahtumatilat\") {\n            const eventType = form.querySelector('input[name=\"event_type\"]:checked');\n            \n            if (!eventType) {\n                 form.querySelector(\"#event_option_error\").style.display = \"block\";\n                 form.querySelector(\"#event_option_error\").innerText = \"Valitse tilan tyyppi.\";\n                 valid = false;\n            } else {\n                if (eventType.value === \"Auditorio\" || eventType.value === \"Tapahtumatila\") {\n                     const subOption = form.querySelector('input[name=\"event_option\"]:checked');\n                     if (!subOption) {\n                         form.querySelector(\"#event_option_error\").style.display = \"block\";\n                         form.querySelector(\"#event_option_error\").innerText = \"Valitse tarkempi tila.\";\n                         valid = false;\n                     } else {\n                         form.querySelector(\"#event_option_error\").style.display = \"none\";\n                     }\n                } else {\n                     form.querySelector(\"#event_option_error\").style.display = \"none\";\n                }\n            }\n        }\n\n        \/\/ Validate text fields using scope\n        const firstName = form.querySelector(\"#firstname\");\n        if (firstName.value.trim() === \"\") { form.querySelector(\"#firstname_error\").style.display = \"block\"; valid = false; } \n        else { form.querySelector(\"#firstname_error\").style.display = \"none\"; }\n\n        const lastName = form.querySelector(\"#lastname\");\n        if (lastName.value.trim() === \"\") { form.querySelector(\"#lastname_error\").style.display = \"block\"; valid = false; } \n        else { form.querySelector(\"#lastname_error\").style.display = \"none\"; }\n\n        const email = form.querySelector(\"#email\");\n        const emailRegex = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/;\n        if (!emailRegex.test(email.value.trim())) { form.querySelector(\"#email_error\").style.display = \"block\"; valid = false; } \n        else { form.querySelector(\"#email_error\").style.display = \"none\"; }\n\n        const phone = form.querySelector(\"#phone\");\n        const phoneRegex = \/^\\+?[0-9]{7,15}$\/; \n        if (!phoneRegex.test(phone.value.trim())) { form.querySelector(\"#phone_error\").style.display = \"block\"; valid = false; } \n        else { form.querySelector(\"#phone_error\").style.display = \"none\"; }\n\n        const companyName = form.querySelector(\"#company\");\n        if (companyName.required && companyName.value.trim() === \"\") { form.querySelector(\"#company_error\").style.display = \"block\"; valid = false; } \n        else { form.querySelector(\"#company_error\").style.display = \"none\"; }\n\n        \/\/ --- GATHER DATA (Scoped to 'form') ---\n        const membershipType = form.querySelector('input[name=\"membership_type\"]:checked')?.value || \"\";\n        const eventType = form.querySelector('input[name=\"event_type\"]:checked')?.value || \"\";\n        const otherType = form.querySelector('input[name=\"other_type\"]:checked')?.value || \"\";\n        const additionalInfo = form.querySelector(\"#additional_info\")?.value.trim() || \"\";\n        \n        \/\/ --- FIXED LOCATION LOGIC ---\n        \/\/ We use .querySelector to find the ID *inside* this specific form instance\n        const virtualSelect = form.querySelector('#location-virtual');\n        const physicalSelect = form.querySelector('#location');\n        \n        let actualLocation = \"\";\n        \n        \/\/ Check \"Virtuaalitoimisto\" specifically\n        if (helpOption && helpOption.value === \"Virtuaalitoimisto\") {\n            actualLocation = virtualSelect ? virtualSelect.value : \"\";\n        } else {\n            \/\/ For Offices, Coworking, etc., use physical. \n            \/\/ If the user selected \"Meeting\", both might be hidden\/empty, which is fine.\n            actualLocation = physicalSelect ? physicalSelect.value : \"\";\n        }\n\n        \/\/ Event\/Auditorium Logic\n        const rawEventOption = form.querySelector('input[name=\"event_option\"]:checked')?.value || \"\";\n        let auditoriumSelection = \"\";\n        let eventSpaceSelection = \"\";\n\n        if (eventType === \"Auditorio\") {\n            auditoriumSelection = rawEventOption;\n        } else if (eventType === \"Tapahtumatila\") {\n            eventSpaceSelection = rawEventOption;\n        }\n\n        \/\/ Stop if invalid\n        if (!valid) { return; }\n\n        \/\/ --- LOCK SUBMISSION ---\n        isSubmitting = true;\n        const submitBtn = form.querySelector('button[type=\"submit\"]');\n        const originalBtnText = submitBtn.innerText;\n        submitBtn.disabled = true;\n        submitBtn.innerText = \"Submitting form...\"; \n\n        const data = {\n            fields: [\n                { name: \"firstname\", value: firstName.value.trim() },\n                { name: \"lastname\", value: lastName.value.trim() },\n                { name: \"email\", value: email.value.trim() },\n                { name: \"phone\", value: phone.value.trim() },\n                { name: \"company\", value: companyName.value.trim() },\n                { name: \"form___request_type_1\", value: helpOption.value },\n                { name: \"form___request_type_2___coworking\", value: membershipType },\n                { name: \"form___request_type_2___other\", value: eventType },\n                { name: \"form___request_type_3___virtual_office\", value: virtualSelect.value }, \n                { name: \"form___request_type_2_location\", value: actualLocation }, \n                { name: \"form___request_type_2___something_else\", value: otherType },\n                { name: \"form___request_type_4___auditorium\", value: auditoriumSelection },\n                { name: \"form___request_type_4___event_space\", value: eventSpaceSelection },\n                { name: \"message\", value: additionalInfo },\n                { name: \"consent\", value: \"yes\" }\n            ],\n            context: {\n                \"hutk\": getCookie(\"hubspotutk\"),\n                pageUri: window.location.href,\n                pageName: document.title\n            }\n        };\n\n        try {\n            const response = await fetch(`https:\/\/api.hsforms.com\/submissions\/v3\/integration\/submit\/5599184\/f08a4918-e323-4bf7-b004-7d7d51bf869f`, {\n                method: \"POST\",\n                headers: { \"Content-Type\": \"application\/json\" },\n                body: JSON.stringify(data)\n            });\n\n            if (response.ok) {\n                const successMessage = document.getElementById(\"success\"); \/\/ Success msg is usually outside form\n                \n                window.dataLayer = window.dataLayer || [];\n                window.dataLayer.push({ event: 'hubspot-form-success' });\n\n                form.style.transition = \"opacity 0.3s ease-in-out\";\n                form.style.opacity = \"0\";\n                setTimeout(() => {\n                    form.style.display = \"none\"; \n                    if(successMessage) {\n                        successMessage.style.display = \"block\"; \n                        setTimeout(() => { successMessage.style.opacity = \"1\"; }, 50);\n                    }\n                }, 300);\n            } else {\n                const errorData = await response.json();\n                console.error('Error:', errorData);\n                isSubmitting = false;\n                submitBtn.disabled = false;\n                submitBtn.innerText = originalBtnText;\n            }\n        } catch (error) {\n            console.error(\"Error submitting form:\", error);\n            alert(\"Error submitting form.\");\n            isSubmitting = false;\n            submitBtn.disabled = false;\n            submitBtn.innerText = originalBtnText;\n        }\n    });\n<\/script>\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-bc97ab9 e-flex e-con-boxed e-con e-parent\" data-id=\"bc97ab9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\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>About us VillageWorks is Finland\u2019s largest and longest established private company offering flexible workspaces. Founded in 2008, Finnish company VillageWorks has grown to encompass a range of locations, with approximately 2,000 individual members and 500 member businesses. Today, all that VillageWorks does is centred around its three cornerstones \u2013 versatile spaces, a broad-ranging service provision, [&hellip;]<\/p>\n","protected":false},"author":19,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"class_list":["post-3559","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/villageworks.com\/en\/wp-json\/wp\/v2\/pages\/3559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/villageworks.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/villageworks.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/villageworks.com\/en\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/villageworks.com\/en\/wp-json\/wp\/v2\/comments?post=3559"}],"version-history":[{"count":31,"href":"https:\/\/villageworks.com\/en\/wp-json\/wp\/v2\/pages\/3559\/revisions"}],"predecessor-version":[{"id":12438,"href":"https:\/\/villageworks.com\/en\/wp-json\/wp\/v2\/pages\/3559\/revisions\/12438"}],"wp:attachment":[{"href":"https:\/\/villageworks.com\/en\/wp-json\/wp\/v2\/media?parent=3559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}