{"id":22680,"date":"2026-06-29T16:59:16","date_gmt":"2026-06-29T13:59:16","guid":{"rendered":"https:\/\/www.ehta.fi\/?page_id=22680"},"modified":"2026-07-02T13:19:19","modified_gmt":"2026-07-02T10:19:19","slug":"kyselylomake","status":"publish","type":"page","link":"https:\/\/www.ehta.fi\/sv\/kyselylomake\/","title":{"rendered":"Kyselylomake"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"22680\" class=\"elementor elementor-22680\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-16287b4 e-flex e-con-boxed e-con e-parent\" data-id=\"16287b4\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8f04381 elementor-widget elementor-widget-html\" data-id=\"8f04381\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ===================================================================\n     EHTA \u2014 Kyselyosio (\"Mist\u00e4 l\u00e4hte\u00e4 liikkeelle\")\n     Liit\u00e4 KOKONAISUUDESSAAN Elementorin HTML-widgettiin.\n     Kiinte\u00e4t koot, kaksi katkaisukohtaa (ty\u00f6p\u00f6yt\u00e4 \/ mobiili).\n     Vastaukset yhdess\u00e4 sarakkeessa \u2014 skaalautuu joka laitteella.\n     Tyylit rajattu #ehta-kysely-juuren sis\u00e4\u00e4n.\n\n     S\u00c4\u00c4D\u00c4 alla CONFIG-osassa:\n       \u2022 mallistoUrl  \u2013 \"Katso koko mallisto\" -linkki\n       \u2022 tarjousUrl \/ etaUrl \u2013 lomakesivujen osoitteet (valinnainen)\n       \u2022 PHOTOS       \u2013 mallikohtaiset kuvaosoitteet (ehta.fi median URL:t)\n     ==================================================================== -->\n\n<div id=\"ehta-kysely\">\n  <div class=\"ek-wrap\">\n\n    <div class=\"ek-hero\">\n      <p class=\"ek-eyebrow\">Mist\u00e4 l\u00e4hte\u00e4 liikkeelle<\/p>\n      <h1 class=\"ek-h1\" data-ek-herotitle>Etsit\u00e4\u00e4n suuntasi muutamalla kysymyksell\u00e4.<\/h1>\n      <p class=\"ek-sub\" data-ek-herosub>Vastaa kolmeen lyhyeen kysymykseen, niin ehdotamme mist\u00e4 rakennuksesta l\u00e4hte\u00e4.<\/p>\n    <\/div>\n\n    <div class=\"ek-topbar\">\n      <button type=\"button\" class=\"ek-back\" data-ek-back hidden>\n        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.9\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m15 18-6-6 6-6\"><\/path><\/svg>\n        Takaisin\n      <\/button>\n      <div class=\"ek-prog\" data-ek-prog>\n        <div class=\"ek-prog-track\"><div class=\"ek-prog-fill\" data-ek-progfill><\/div><\/div>\n        <span class=\"ek-prog-label\" data-ek-proglabel>1 \/ 3<\/span>\n      <\/div>\n    <\/div>\n\n    <div data-ek-body aria-live=\"polite\"><\/div>\n\n  <\/div>\n<\/div>\n\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Fira+Sans:ital,wght@0,400;0,500;0,600;0,700&display=swap');\n\n#ehta-kysely{\n  width:100%;\n  --metsa:#004130; --kuusi:#0A674F; --varjo:#00221E;\n  --hiekka:#E8D8CC; --hiekka-80:#F5ECE4; --hiekka-95:#FAF6F2;\n  --tuli:#F15E49; --tuli-press:#D94B37;\n  --line:rgba(0,65,48,.14); --line-strong:rgba(0,65,48,.28);\n  --text-muted:rgba(0,34,30,.64);\n  --ease:cubic-bezier(.22,.61,.36,1);\n  --font-body:\"Fira Sans\",system-ui,-apple-system,sans-serif;\n  --font-display:\"Rebond Grotesque\",\"Fira Sans\",system-ui,sans-serif;\n  font-family:var(--font-body);\n  color:var(--varjo);\n  -webkit-font-smoothing:antialiased;\n  box-sizing:border-box;\n}\n#ehta-kysely *,#ehta-kysely *::before,#ehta-kysely *::after{box-sizing:border-box;}\n#ehta-kysely p,#ehta-kysely h1,#ehta-kysely h2,#ehta-kysely h3{margin:0;}\n#ehta-kysely button{font-family:var(--font-body);}\n#ehta-kysely [hidden]{display:none !important;}\n\n\/* ---------- TY\u00d6P\u00d6YT\u00c4 (oletus) ---------- *\/\n#ehta-kysely .ek-wrap{max-width:900px;margin-inline:auto;padding:32px 20px;}\n\n\/* Hero *\/\n#ehta-kysely .ek-hero{text-align:center;max-width:600px;margin:0 auto 36px;}\n#ehta-kysely .ek-eyebrow{font-weight:600;font-size:15px;color:var(--tuli);margin-bottom:12px;}\n#ehta-kysely .ek-h1{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;line-height:1.05;font-size:44px;color:var(--metsa);margin-bottom:14px;}\n#ehta-kysely .ek-sub{font-size:19px;color:var(--text-muted);line-height:1.55;}\n\n\/* Yl\u00e4palkki *\/\n#ehta-kysely .ek-topbar{position:relative;display:flex;align-items:center;justify-content:center;min-height:32px;max-width:560px;margin:0 auto 32px;}\n#ehta-kysely .ek-back{position:absolute;left:0;background:none;border:none;cursor:pointer;font-size:15px;font-weight:500;color:var(--text-muted);padding:4px 2px;display:inline-flex;align-items:center;gap:6px;}\n#ehta-kysely .ek-back:hover{color:var(--tuli);}\n#ehta-kysely .ek-prog{display:flex;align-items:center;gap:12px;}\n#ehta-kysely .ek-prog-track{width:150px;height:8px;border-radius:999px;background:var(--line);overflow:hidden;}\n#ehta-kysely .ek-prog-fill{height:100%;border-radius:999px;background:var(--tuli);width:33%;transition:width 360ms var(--ease);}\n#ehta-kysely .ek-prog-label{font-size:14px;font-weight:600;color:var(--text-muted);white-space:nowrap;}\n\n\/* Kysymys *\/\n#ehta-kysely .ek-qtitle{text-align:center;font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;line-height:1.1;font-size:30px;color:var(--metsa);margin-bottom:28px;}\n#ehta-kysely .ek-grid{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:12px;}\n#ehta-kysely .ek-tile{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;cursor:pointer;background:#fff;border:1.5px solid var(--line);border-radius:16px;text-align:left;padding:18px 20px;min-height:72px;transition:border-color 180ms var(--ease),box-shadow 180ms var(--ease);}\n#ehta-kysely .ek-tile:hover{border-color:var(--metsa);}\n#ehta-kysely .ek-tile.sel{border-color:var(--tuli);box-shadow:0 0 0 3px rgba(241,94,73,.16);}\n#ehta-kysely .ek-tile-txt{display:flex;flex-direction:column;gap:3px;}\n#ehta-kysely .ek-tile-label{font-family:var(--font-display);font-weight:600;font-size:19px;color:var(--metsa);line-height:1.2;}\n#ehta-kysely .ek-tile-hint{font-size:15px;color:var(--text-muted);line-height:1.3;}\n#ehta-kysely .ek-tile-mark{flex-shrink:0;display:flex;color:transparent;}\n#ehta-kysely .ek-tile.sel .ek-tile-mark{color:var(--tuli);}\n\n\/* Tulos *\/\n#ehta-kysely .ek-result{display:grid;grid-template-columns:340px 1fr;gap:40px;align-items:start;text-align:left;}\n#ehta-kysely .ek-r-photo{position:relative;width:100%;aspect-ratio:4\/5;border-radius:20px;overflow:hidden;background:var(--hiekka-80) center\/cover no-repeat;box-shadow:0 14px 44px rgba(0,34,30,.16);display:flex;align-items:flex-end;}\n#ehta-kysely .ek-r-badge{position:absolute;top:16px;left:16px;background:var(--tuli);color:#fff;font-weight:600;font-size:13px;padding:6px 14px;border-radius:999px;}\n#ehta-kysely .ek-r-phlabel{font-family:var(--font-display);font-weight:600;color:var(--metsa);background:rgba(251,244,239,.85);padding:8px 14px;border-radius:10px;margin:14px;font-size:15px;}\n#ehta-kysely .ek-r-name{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;line-height:1.05;font-size:40px;color:var(--metsa);margin-bottom:6px;}\n#ehta-kysely .ek-r-meta{font-size:18px;color:var(--kuusi);font-weight:500;margin-bottom:18px;}\n#ehta-kysely .ek-r-mood{font-size:18px;line-height:1.6;color:var(--varjo);margin-bottom:22px;}\n#ehta-kysely .ek-alt{display:flex;align-items:center;gap:14px;padding:14px 0;margin-bottom:22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}\n#ehta-kysely .ek-alt-thumb{width:56px;height:56px;border-radius:10px;flex-shrink:0;background:var(--hiekka-80) center\/cover no-repeat;}\n#ehta-kysely .ek-alt-body{flex:1;min-width:0;}\n#ehta-kysely .ek-alt-kicker{font-size:14px;color:var(--text-muted);margin-bottom:2px;}\n#ehta-kysely .ek-alt-name{font-family:var(--font-display);font-weight:600;font-size:17px;color:var(--metsa);}\n\n\/* Painikkeet *\/\n#ehta-kysely .ek-ctas{display:flex;flex-direction:column;gap:11px;}\n#ehta-kysely .ek-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;cursor:pointer;font-family:var(--font-display);font-weight:600;font-size:17px;padding:16px 26px;border-radius:999px;border:1.5px solid transparent;transition:background 180ms var(--ease),border-color 180ms var(--ease);text-decoration:none;}\n#ehta-kysely .ek-btn-cta{background:var(--tuli);color:#fff;}\n#ehta-kysely .ek-btn-cta:hover{background:var(--tuli-press);}\n#ehta-kysely .ek-btn-outline{background:transparent;color:var(--metsa);border-color:var(--line-strong);}\n#ehta-kysely .ek-btn-outline:hover{background:rgba(0,65,48,.05);}\n\n\/* Polku \/ lomake *\/\n#ehta-kysely .ek-path{margin-bottom:16px;}\n#ehta-kysely .ek-path-title{font-family:var(--font-display);font-weight:700;font-size:21px;color:var(--metsa);margin-bottom:6px;}\n#ehta-kysely .ek-path-blurb{font-size:16px;line-height:1.55;color:var(--text-muted);margin-bottom:16px;}\n#ehta-kysely .ek-fields{display:flex;flex-direction:column;gap:10px;margin-bottom:14px;}\n#ehta-kysely .ek-input{width:100%;padding:14px 16px;border:1px solid var(--line-strong);border-radius:12px;font-family:var(--font-body);font-size:16px;color:var(--varjo);background:var(--hiekka-95);outline:none;transition:border-color 160ms var(--ease);}\n#ehta-kysely .ek-input:focus{border-color:var(--metsa);}\n#ehta-kysely .ek-input.ek-err{border-color:var(--tuli);}\n#ehta-kysely .ek-path-back{display:block;margin:10px auto 0;background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:15px;padding:4px;}\n#ehta-kysely .ek-thanks-title{font-family:var(--font-display);font-weight:700;font-size:22px;color:var(--metsa);margin-bottom:8px;}\n#ehta-kysely .ek-thanks-text{font-size:16px;line-height:1.6;color:var(--kuusi);margin-bottom:14px;}\n#ehta-kysely .ek-thanks-restart{background:none;border:none;cursor:pointer;color:var(--tuli);font-weight:600;font-size:15px;padding:0;}\n\n\/* Alalinkit *\/\n#ehta-kysely .ek-foot{margin-top:20px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;}\n#ehta-kysely .ek-link{color:var(--metsa);font-weight:600;font-size:15px;text-decoration:none;}\n#ehta-kysely .ek-link:hover{color:var(--tuli);}\n#ehta-kysely .ek-restart{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:15px;padding:2px;}\n\n#ehta-kysely .ek-fade{animation:ek-fade 320ms var(--ease);}\n@keyframes ek-fade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}\n@media (prefers-reduced-motion:reduce){#ehta-kysely .ek-fade{animation:none;}}\n\n\/* ---------- MOBIILI (<=700px) ---------- *\/\n@media (max-width:700px){\n  #ehta-kysely .ek-wrap{padding:24px 16px;}\n  #ehta-kysely .ek-h1{font-size:30px;}\n  #ehta-kysely .ek-sub{font-size:16px;}\n  #ehta-kysely .ek-qtitle{font-size:24px;margin-bottom:22px;}\n  #ehta-kysely .ek-tile-label{font-size:18px;}\n  #ehta-kysely .ek-tile-hint{font-size:14px;}\n  #ehta-kysely .ek-topbar{justify-content:space-between;}\n  #ehta-kysely .ek-back{position:static;}\n  #ehta-kysely .ek-prog-track{width:110px;}\n  #ehta-kysely .ek-result{grid-template-columns:1fr;gap:24px;}\n  #ehta-kysely .ek-r-photo{aspect-ratio:4\/3;max-width:420px;margin:0 auto;}\n  #ehta-kysely .ek-r-name{font-size:30px;}\n  #ehta-kysely .ek-r-meta{font-size:16px;}\n  #ehta-kysely .ek-r-mood{font-size:16px;}\n}\n<\/style>\n\n<script>\n(function(){\n  var root = document.getElementById('ehta-kysely');\n  if(!root || root.dataset.ekInit) return;\n  root.dataset.ekInit = '1';\n\n  \/* ====================== S\u00c4\u00c4DETT\u00c4V\u00c4T ASETUKSET ====================== *\/\n  var CONFIG = {\n    mallistoUrl: '\/mallisto',\n    \/\/ Liidit s\u00e4hk\u00f6postiisi ilman palvelinta (Web3Forms):\n    \/\/   1) Hae ilmainen access key: web3forms.com (sy\u00f6t\u00e4 s\u00e4hk\u00f6postisi, avain tulee mailiin)\n    \/\/   2) Liit\u00e4 avain t\u00e4h\u00e4n \u2014 liidit saapuvat suoraan s\u00e4hk\u00f6postiisi.\n    accessKey: 'ef9cf143-9a8b-48d7-b652-c88289b1510f',\n    leadEndpoint: 'https:\/\/api.web3forms.com\/submit',\n    \/\/ J\u00e4t\u00e4 tyhjiksi, niin lomake pysyy sivun sis\u00e4ll\u00e4. (Osoite t\u00e4h\u00e4n = CTA ohjaa lomakesivulle.)\n    tarjousUrl: '',\n    etaUrl: '',\n    PHOTOS: {\n      'Pihasauna 7':  'https:\/\/www.ehta.fi\/wp-content\/uploads\/2020\/11\/DSC00189-2-819x1024.jpg',\n      'Pihasauna 10': 'https:\/\/www.ehta.fi\/wp-content\/uploads\/2024\/03\/20220629-DSC00143-scaled-1-1024x614.png',\n      'Pihasauna 13': 'https:\/\/www.ehta.fi\/wp-content\/uploads\/2025\/01\/IMG_3442-1-774x1024.png',\n      'Pihasauna 16': 'https:\/\/www.ehta.fi\/wp-content\/uploads\/2025\/04\/Pihasauna-822x1024.jpg',\n      'Saunam\u00f6kki 20': 'https:\/\/www.ehta.fi\/wp-content\/uploads\/2026\/02\/Saunamokki-ruska-819x1024.jpg',\n      'Saunam\u00f6kki 25': 'https:\/\/www.ehta.fi\/wp-content\/uploads\/2025\/04\/20180509-DSC00144-819x1024.jpg',\n      'Saunam\u00f6kki 30': 'https:\/\/www.ehta.fi\/wp-content\/uploads\/2024\/03\/DSC03686-682x1024.jpg',\n      'M\u00f6kki 20': 'https:\/\/www.ehta.fi\/wp-content\/uploads\/2025\/07\/DSC01489-819x1024.jpg',\n      'M\u00f6kki 25': 'https:\/\/www.ehta.fi\/wp-content\/uploads\/2025\/04\/20220705-DSC00133-2-819x1024.jpg',\n      'M\u00f6kki 30': 'https:\/\/www.ehta.fi\/wp-content\/uploads\/2025\/04\/DSC01170-819x1024.jpg',\n      'Villa 30': 'https:\/\/www.ehta.fi\/wp-content\/uploads\/2024\/09\/20211201_0452-1024x682.jpg',\n      'Villa 41': 'https:\/\/www.ehta.fi\/wp-content\/uploads\/2024\/03\/VIEW1a-1024x614.jpg',\n      'Villa 46': 'https:\/\/www.ehta.fi\/wp-content\/uploads\/2024\/03\/VIEW1-1-1024x614.jpg',\n      'Aitta 13': 'https:\/\/www.ehta.fi\/wp-content\/uploads\/2023\/10\/20180721-DSC00024-scaled-1-819x1024.jpg',\n      'Aitta 16': 'https:\/\/www.ehta.fi\/wp-content\/uploads\/2025\/04\/Oleskelutila-768x1024.jpeg'\n    }\n  };\n\n  \/* ====================== DATA (hinnat br\u00e4ndiohjeen mukaan) ====================== *\/\n  var CATS = {\n    sauna: {\n      label:'Pihasaunat',\n      mood:'Pieni rakennus, iso hetki \u2014 l\u00f6yly l\u00e4hell\u00e4, omalla pihalla.',\n      models:[\n        {name:'Pihasauna 7',  area:'6,4\\u00a0m\u00b2',  price:12100},\n        {name:'Pihasauna 10', area:'9,0\\u00a0m\u00b2',  price:15300},\n        {name:'Pihasauna 13', area:'12,9\\u00a0m\u00b2', price:19300},\n        {name:'Pihasauna 16', area:'16,1\\u00a0m\u00b2', price:22000}\n      ],\n      buckets:{'1-2':0,'3-4':2,'5+':3}   \/\/ Pihasauna 7 \/ 13 \/ 16\n    },\n    oleskelu: {\n      label:'Sauna + oleskelutila',\n      mood:'L\u00f6ylyt ja yhteinen oleskelutila saman katon alla. Ilta venyy luontevasti.',\n      models:[\n        {name:'Pihasauna 16',  area:'16,1\\u00a0m\u00b2', price:22000},\n        {name:'Saunam\u00f6kki 20', area:'19,7\\u00a0m\u00b2', price:27300},\n        {name:'Saunam\u00f6kki 25', area:'25,0\\u00a0m\u00b2', price:31400},\n        {name:'Saunam\u00f6kki 30', area:'29,6\\u00a0m\u00b2', price:35300}\n      ],\n      buckets:{'1-2':0,'3-4':1,'5+':3}   \/\/ Pihasauna 16 \/ Saunam\u00f6kki 20 \/ Saunam\u00f6kki 30\n    },\n    mokki: {\n      label:'M\u00f6kit ja aitat',\n      mood:'Oma tila mets\u00e4n tai veden \u00e4\u00e4rell\u00e4 \u2014 vieraille, harrastukseen tai vapaa-ajan kodiksi.',\n      models:[\n        {name:'Aitta 13', area:'12,9\\u00a0m\u00b2', price:17100},\n        {name:'Aitta 16', area:'16,1\\u00a0m\u00b2', price:19100},\n        {name:'M\u00f6kki 20', area:'19,7\\u00a0m\u00b2', price:22700},\n        {name:'M\u00f6kki 25', area:'25,0\\u00a0m\u00b2', price:26600},\n        {name:'M\u00f6kki 30', area:'29,6\\u00a0m\u00b2', price:30600}\n      ],\n      buckets:{'1-2':1,'3-4':2,'5+':4}   \/\/ Aitta 16 \/ M\u00f6kki 20 \/ M\u00f6kki 30\n    },\n    villa: {\n      label:'Villat',\n      mood:'Tilaa koko porukalle, ymp\u00e4ri vuoden. Vapaa-ajan koti, johon j\u00e4\u00e4.',\n      models:[\n        {name:'Villa 30', area:'30,0\\u00a0m\u00b2', price:44500},\n        {name:'Villa 41', area:'41,0\\u00a0m\u00b2', price:58700},\n        {name:'Villa 46', area:'46,0\\u00a0m\u00b2', price:65700}\n      ],\n      buckets:{'1-2':0,'3-4':1,'5+':2}\n    }\n  };\n\n  var QUESTIONS = {\n    q1:{ key:'goal', next:'q2', title:'Mihin etsit ratkaisua?', opts:[\n      {value:'sauna',    label:'Sauna',                     hint:'Pelkk\u00e4 saunarakennus'},\n      {value:'oleskelu', label:'Sauna + oleskelutila',      hint:'L\u00f6ylyt ja yhteinen tila'},\n      {value:'mokki',    label:'M\u00f6kki tai aitta',           hint:'Vapaa-ajan koti, vierasmaja tai harrastetila'},\n      {value:'villa',    label:'Isompi vapaa-ajan asunto',  hint:'Tilaa ymp\u00e4ri vuoden'} ]},\n    q2:{ key:'count', next:'q3', title:'Kuinka monelle?', opts:[\n      {value:'1-2', label:'1\u20132', hint:'Omaa rauhaa kahdelle'},\n      {value:'3-4', label:'3\u20134', hint:'Pienelle porukalle'},\n      {value:'5+',  label:'5+',  hint:'Isommalle porukalle'} ]},\n    q3:{ key:'stage', next:'result', title:'Miss\u00e4 vaiheessa olet?', opts:[\n      {value:'haaveilen',    label:'Haaveilen',                   hint:'Katselen ja ker\u00e4\u00e4n ajatuksia'},\n      {value:'suunnittelen', label:'Suunnittelen t\u00e4lle vuodelle', hint:'Aikataulu alkaa hahmottua'},\n      {value:'valmis',       label:'Valmis etenem\u00e4\u00e4n',            hint:'Haluan jotain konkreettista'} ]}\n  };\n\n  var ORDER = ['q1','q2','q3','result'];\n  var state = { step:'q1', goal:null, count:null, stage:null, path:null, sent:false, nimi:'', yhteys:'' };\n\n  var body      = root.querySelector('[data-ek-body]');\n  var heroTitle = root.querySelector('[data-ek-herotitle]');\n  var heroSub   = root.querySelector('[data-ek-herosub]');\n  var backBtn   = root.querySelector('[data-ek-back]');\n  var prog      = root.querySelector('[data-ek-prog]');\n  var progFill  = root.querySelector('[data-ek-progfill]');\n  var progLabel = root.querySelector('[data-ek-proglabel]');\n\n  function fmt(n){ return n.toLocaleString('fi-FI').replace(\/\\s\/g,'\\u00a0') + '\\u00a0\u20ac'; }\n  function esc(s){ return String(s).replace(\/[&<>\"]\/g,function(c){return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;'}[c];}); }\n  function photoFor(name){ return CONFIG.PHOTOS[name] || ''; }\n  function toTop(){ try{ root.scrollIntoView({behavior:'smooth',block:'start'}); }catch(e){} }\n\n  function render(){\n    var isQ = state.step==='q1'||state.step==='q2'||state.step==='q3';\n    var isResult = state.step==='result';\n    var qNum = {q1:1,q2:2,q3:3}[state.step]||1;\n\n    heroTitle.textContent = isResult ? 'T\u00e4st\u00e4 voisi l\u00e4hte\u00e4 liikkeelle' : 'Etsit\u00e4\u00e4n suuntasi muutamalla kysymyksell\u00e4.';\n    heroSub.textContent   = isResult ? 'Ehdotuksemme valintojesi pohjalta \u2014 ilman ostopakkoa.' : 'Vastaa kolmeen lyhyeen kysymykseen, niin ehdotamme mist\u00e4 rakennuksesta l\u00e4hte\u00e4.';\n\n    backBtn.hidden = (state.step==='q1');\n    prog.style.display = isQ ? 'flex' : 'none';\n    if(isQ){ progFill.style.width = Math.round(((qNum-1)\/3)*100)+'%'; progLabel.textContent = qNum+' \/ 3'; }\n\n    if(isQ){ renderQuestion(QUESTIONS[state.step]); } else { renderResult(); }\n  }\n\n  function renderQuestion(q){\n    var cur = state[q.key];\n    var html = '<div class=\"ek-fade\"><h2 class=\"ek-qtitle\">'+esc(q.title)+'<\/h2><div class=\"ek-grid\">';\n    q.opts.forEach(function(o){\n      var sel = cur===o.value;\n      html += '<button type=\"button\" class=\"ek-tile'+(sel?' sel':'')+'\" data-val=\"'+esc(o.value)+'\">'\n        +   '<span class=\"ek-tile-txt\"><span class=\"ek-tile-label\">'+esc(o.label)+'<\/span>'\n        +   '<span class=\"ek-tile-hint\">'+esc(o.hint)+'<\/span><\/span>'\n        +   '<span class=\"ek-tile-mark\"><svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"><\/path><\/svg><\/span>'\n        + '<\/button>';\n    });\n    html += '<\/div><\/div>';\n    body.innerHTML = html;\n    body.querySelectorAll('.ek-tile').forEach(function(btn){\n      btn.addEventListener('click', function(){ select(q, btn.getAttribute('data-val')); });\n    });\n  }\n\n  function select(q, val){ state[q.key]=val; state.step=q.next; render(); }\n\n  function resultModels(){\n    var cat = CATS[state.goal];\n    var idx = cat.buckets[state.count];\n    var models = cat.models;\n    var altIdx, altLabel;\n    if(idx>0){ altIdx=idx-1; altLabel='Tai hieman pienempi'; }\n    else { altIdx=idx+1; altLabel='Tai hieman isompi'; }\n    var p = models[idx], a = models[altIdx];\n    return {\n      cat:cat,\n      primary:{ name:p.name, area:p.area, price:'alk. '+fmt(p.price) },\n      alt:{ name:a.name, area:a.area, price:'alk. '+fmt(a.price) },\n      altLabel:altLabel\n    };\n  }\n\n\n  function renderResult(){\n    if(!state.goal || !state.count){ state.step='q1'; render(); return; }\n    var r = resultModels();\n    var pPhoto = photoFor(r.primary.name);\n    var aPhoto = photoFor(r.alt.name);\n\n    var html = '<div class=\"ek-fade ek-result\">';\n\n    html += '<div class=\"ek-r-photo\" role=\"img\" aria-label=\"'+esc(r.primary.name)+'\"'\n         +  (pPhoto?(' style=\"background-image:url('+esc(pPhoto)+')\"'):'')+'>'\n         +  '<span class=\"ek-r-badge\">'+esc(r.cat.label)+'<\/span>'\n         +  (pPhoto?'':'<span class=\"ek-r-phlabel\">'+esc(r.primary.name)+'<\/span>')+'<\/div>';\n\n    html += '<div>';\n    html += '<h2 class=\"ek-r-name\">'+esc(r.primary.name)+'<\/h2>';\n    html += '<p class=\"ek-r-meta\">'+r.primary.area+' \u00b7 '+esc(r.primary.price)+'<\/p>';\n    html += '<p class=\"ek-r-mood\">'+esc(r.cat.mood)+'<\/p>';\n\n    html += '<div class=\"ek-alt\">'\n         +  '<div class=\"ek-alt-thumb\" role=\"img\" aria-label=\"'+esc(r.alt.name)+'\"'\n         +  (aPhoto?(' style=\"background-image:url('+esc(aPhoto)+')\"'):'')+'><\/div>'\n         +  '<div class=\"ek-alt-body\"><p class=\"ek-alt-kicker\">'+esc(r.altLabel)+'<\/p>'\n         +  '<p class=\"ek-alt-name\">'+esc(r.alt.name)+' \u00b7 '+esc(r.alt.price)+'<\/p><\/div><\/div>';\n\n    if(state.path){\n      if(state.sent){\n        html += '<div class=\"ek-path\"><h3 class=\"ek-thanks-title\">Kiitos.<\/h3>'\n             +  '<p class=\"ek-thanks-text\">Olemme sinuun yhteydess\u00e4 pian \u2014 ilman kiirett\u00e4 ja ilman ostopakkoa.<\/p>'\n             +  '<button type=\"button\" class=\"ek-thanks-restart\" data-ek-restart>Aloita alusta<\/button><\/div>';\n      } else {\n        var pt = state.path==='eta' ? 'Et\u00e4suunnittelu' : 'Alustava tarjous';\n        var pb = state.path==='eta'\n          ? 'K\u00e4ymme toiveesi l\u00e4pi rauhassa, et\u00e4yhteydell\u00e4. Sovitaan aika, joka sopii sinulle.'\n          : 'Kokoamme sinulle alustavan hinta-arvion valinnoistasi. Ei sitoumusta.';\n        html += '<div class=\"ek-path\"><h3 class=\"ek-path-title\">'+esc(pt)+'<\/h3>'\n             +  '<p class=\"ek-path-blurb\">'+esc(pb)+'<\/p>'\n             +  '<div class=\"ek-fields\">'\n             +  '<input class=\"ek-input\" type=\"text\" data-ek-nimi placeholder=\"Nimi\" value=\"'+esc(state.nimi)+'\" autocomplete=\"name\">'\n             +  '<input class=\"ek-input\" type=\"text\" data-ek-yhteys placeholder=\"Puhelin tai s\u00e4hk\u00f6posti\" value=\"'+esc(state.yhteys)+'\" autocomplete=\"email\">'\n             +  '<\/div>'\n             +  '<button type=\"button\" class=\"ek-btn ek-btn-cta\" data-ek-send>L\u00e4het\u00e4<\/button>'\n             +  '<button type=\"button\" class=\"ek-path-back\" data-ek-closepath>Takaisin<\/button><\/div>';\n      }\n    } else {\n      html += '<div class=\"ek-ctas\">'\n           +  '<button type=\"button\" class=\"ek-btn ek-btn-cta\" data-ek-path=\"eta\">Varaa et\u00e4suunnittelu<\/button>'\n           +  '<button type=\"button\" class=\"ek-btn ek-btn-outline\" data-ek-path=\"tarjous\">Pyyd\u00e4 alustava tarjous<\/button><\/div>';\n    }\n\n    html += '<div class=\"ek-foot\">'\n         +  '<a class=\"ek-link\" href=\"'+esc(CONFIG.mallistoUrl)+'\">Katso koko mallisto \u2192<\/a>'\n         +  '<button type=\"button\" class=\"ek-restart\" data-ek-restart>Aloita alusta<\/button><\/div>';\n\n    html += '<\/div><\/div>';\n    body.innerHTML = html;\n    bindResult();\n  }\n\n  function bindResult(){\n    body.querySelectorAll('[data-ek-path]').forEach(function(b){\n      b.addEventListener('click', function(){ openPath(b.getAttribute('data-ek-path')); });\n    });\n    var s=body.querySelector('[data-ek-send]'); if(s) s.addEventListener('click', send);\n    var cp=body.querySelector('[data-ek-closepath]'); if(cp) cp.addEventListener('click', function(){ state.path=null; render(); });\n    body.querySelectorAll('[data-ek-restart]').forEach(function(b){ b.addEventListener('click', restart); });\n    var ni=body.querySelector('[data-ek-nimi]'); if(ni) ni.addEventListener('input', function(e){ state.nimi=e.target.value; });\n    var yh=body.querySelector('[data-ek-yhteys]'); if(yh) yh.addEventListener('input', function(e){ state.yhteys=e.target.value; });\n  }\n\n  function openPath(which){\n    var url = which==='eta' ? CONFIG.etaUrl : CONFIG.tarjousUrl;\n    if(url){\n      var r = resultModels();\n      var q = 'malli='+encodeURIComponent(r.primary.name)\n            + '&kategoria='+encodeURIComponent(r.cat.label)\n            + '&vaihe='+encodeURIComponent(state.stage||'');\n      window.location.href = url + (url.indexOf('?')>-1?'&':'?') + q;\n      return;\n    }\n    state.path=which; state.sent=false; render();\n  }\n\n  function send(){\n    var ni=body.querySelector('[data-ek-nimi]');\n    var yh=body.querySelector('[data-ek-yhteys]');\n    var ok=true;\n    if(!state.nimi.trim()){ ni.classList.add('ek-err'); ok=false; }\n    if(!state.yhteys.trim()){ yh.classList.add('ek-err'); ok=false; }\n    if(!ok) return;\n\n    var r = resultModels();\n    var payload = {\n      aika: new Date().toISOString(),\n      polku: state.path==='eta' ? 'Et\u00e4suunnittelu' : 'Alustava tarjous',\n      nimi: state.nimi.trim(),\n      yhteys: state.yhteys.trim(),\n      malli: r.primary.name,\n      kategoria: r.cat.label,\n      vaihe: state.stage || ''\n    };\n\n    if(CONFIG.accessKey){\n      try{\n        fetch(CONFIG.leadEndpoint, {\n          method:'POST',\n          headers:{'Content-Type':'application\/json','Accept':'application\/json'},\n          body: JSON.stringify({\n            access_key: CONFIG.accessKey,\n            subject: 'Ehta kysely \u2013 ' + payload.polku,\n            from_name: 'Ehta kyselylomake',\n            aika: payload.aika,\n            polku: payload.polku,\n            nimi: payload.nimi,\n            yhteys: payload.yhteys,\n            malli: payload.malli,\n            kategoria: payload.kategoria,\n            vaihe: payload.vaihe\n          })\n        });\n      }catch(e){}\n    }\n    \/\/ Halutessa konversiotapahtuma Metalle t\u00e4h\u00e4n, esim.:\n    \/\/ if(window.fbq){ fbq('trackCustom','KyselyLomake', payload); }\n\n    state.sent=true; render();\n  }\n\n  function restart(){ state={ step:'q1', goal:null, count:null, stage:null, path:null, sent:false, nimi:'', yhteys:'' }; render(); toTop(); }\n\n  backBtn.addEventListener('click', function(){\n    var i=ORDER.indexOf(state.step);\n    if(i>0){ state.step=ORDER[i-1]; state.path=null; state.sent=false; render(); }\n  });\n\n  render();\n})();\n<\/script>\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\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Mist\u00e4 l\u00e4hte\u00e4 liikkeelle Etsit\u00e4\u00e4n suuntasi muutamalla kysymyksell\u00e4. Vastaa kolmeen lyhyeen kysymykseen, niin ehdotamme mist\u00e4 rakennuksesta l\u00e4hte\u00e4. Takaisin 1 \/ 3<\/p>","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_jet_sm_ready_style":"","_jet_sm_style":"","_jet_sm_controls_values":"","_jet_sm_fonts_collection":"","_jet_sm_fonts_links":"","footnotes":""},"class_list":["post-22680","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.1 (Yoast SEO v28.1) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Kyselylomake - Ehta<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.ehta.fi\/sv\/kyselylomake\/\" \/>\n<meta property=\"og:locale\" content=\"sv_SE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kyselylomake\" \/>\n<meta property=\"og:description\" content=\"Mist\u00e4 l\u00e4hte\u00e4 liikkeelle Etsit\u00e4\u00e4n suuntasi muutamalla kysymyksell\u00e4. Vastaa kolmeen lyhyeen kysymykseen, niin ehdotamme mist\u00e4 rakennuksesta l\u00e4hte\u00e4. Takaisin 1 \/ 3\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.ehta.fi\/sv\/kyselylomake\/\" \/>\n<meta property=\"og:site_name\" content=\"Ehta\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-02T10:19:19+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Ber\u00e4knad l\u00e4stid\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.ehta.fi\\\/kyselylomake\\\/\",\"url\":\"https:\\\/\\\/www.ehta.fi\\\/kyselylomake\\\/\",\"name\":\"Kyselylomake - Ehta\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ehta.fi\\\/#website\"},\"datePublished\":\"2026-06-29T13:59:16+00:00\",\"dateModified\":\"2026-07-02T10:19:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.ehta.fi\\\/kyselylomake\\\/#breadcrumb\"},\"inLanguage\":\"sv-SE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.ehta.fi\\\/kyselylomake\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.ehta.fi\\\/kyselylomake\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.ehta.fi\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kyselylomake\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.ehta.fi\\\/#website\",\"url\":\"https:\\\/\\\/www.ehta.fi\\\/\",\"name\":\"Ehta\",\"description\":\"Pihasaunat, saunam\u00f6kit, m\u00f6kit ja aitat\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.ehta.fi\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sv-SE\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Kyselylomake - Ehta","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.ehta.fi\/sv\/kyselylomake\/","og_locale":"sv_SE","og_type":"article","og_title":"Kyselylomake","og_description":"Mist\u00e4 l\u00e4hte\u00e4 liikkeelle Etsit\u00e4\u00e4n suuntasi muutamalla kysymyksell\u00e4. Vastaa kolmeen lyhyeen kysymykseen, niin ehdotamme mist\u00e4 rakennuksesta l\u00e4hte\u00e4. Takaisin 1 \/ 3","og_url":"https:\/\/www.ehta.fi\/sv\/kyselylomake\/","og_site_name":"Ehta","article_modified_time":"2026-07-02T10:19:19+00:00","twitter_card":"summary_large_image","twitter_misc":{"Ber\u00e4knad l\u00e4stid":"1 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.ehta.fi\/kyselylomake\/","url":"https:\/\/www.ehta.fi\/kyselylomake\/","name":"Kyselylomake - Ehta","isPartOf":{"@id":"https:\/\/www.ehta.fi\/#website"},"datePublished":"2026-06-29T13:59:16+00:00","dateModified":"2026-07-02T10:19:19+00:00","breadcrumb":{"@id":"https:\/\/www.ehta.fi\/kyselylomake\/#breadcrumb"},"inLanguage":"sv-SE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.ehta.fi\/kyselylomake\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.ehta.fi\/kyselylomake\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.ehta.fi\/"},{"@type":"ListItem","position":2,"name":"Kyselylomake"}]},{"@type":"WebSite","@id":"https:\/\/www.ehta.fi\/#website","url":"https:\/\/www.ehta.fi\/","name":"Ehta","description":"Tr\u00e4dg\u00e5rdsbastu, bastustugor, stugor och f\u00f6rr\u00e5d","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.ehta.fi\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sv-SE"}]}},"_links":{"self":[{"href":"https:\/\/www.ehta.fi\/sv\/wp-json\/wp\/v2\/pages\/22680","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ehta.fi\/sv\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ehta.fi\/sv\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ehta.fi\/sv\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ehta.fi\/sv\/wp-json\/wp\/v2\/comments?post=22680"}],"version-history":[{"count":22,"href":"https:\/\/www.ehta.fi\/sv\/wp-json\/wp\/v2\/pages\/22680\/revisions"}],"predecessor-version":[{"id":23028,"href":"https:\/\/www.ehta.fi\/sv\/wp-json\/wp\/v2\/pages\/22680\/revisions\/23028"}],"wp:attachment":[{"href":"https:\/\/www.ehta.fi\/sv\/wp-json\/wp\/v2\/media?parent=22680"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}