Studio AUMA – Hinta-arvio #studio-auma-wrapper * { box-sizing: border-box !important; margin: 0 !important; padding: 0 !important; } #studio-auma-wrapper { all: initial !important; display: block !important; font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif !important; } #studio-auma-wrapper body { font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif !important; background: #FFFCF9 !important; color: #371A12 !important; padding: 20px !important; line-height: 1.6 !important; } #studio-auma-wrapper .container { max-width: 680px !important; margin: 0 auto !important; background: #FFFCF9 !important; padding: 40px 30px !important; border-radius: 16px !important; } #studio-auma-wrapper .header { margin-bottom: 40px !important; text-align: center !important; border-bottom: 2px solid #C9B29F !important; padding-bottom: 20px !important; } #studio-auma-wrapper .logo { font-size: 28px !important; font-weight: 700 !important; color: #371A12 !important; margin-bottom: 8px !important; } #studio-auma-wrapper .subtitle { font-size: 12px !important; color: #66352A !important; letter-spacing: 0.1em !important; text-transform: uppercase !important; font-weight: 500 !important; } #studio-auma-wrapper .progress-container { margin-bottom: 30px !important; } #studio-auma-wrapper .progress-bar { height: 3px !important; background: #E8DFD5 !important; border-radius: 2px !important; overflow: hidden !important; } #studio-auma-wrapper .progress-fill { height: 100% !important; background: #66352A !important; transition: width 0.3s ease !important; } #studio-auma-wrapper .progress-text { font-size: 11px !important; color: #99704D !important; margin-top: 8px !important; font-weight: 600 !important; } #studio-auma-wrapper .step { display: none !important; } #studio-auma-wrapper .step.active { display: block !important; animation: fadeIn 0.3s ease-in !important; } @keyframes fadeIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } } #studio-auma-wrapper .step-label { font-size: 11px !important; letter-spacing: 0.15em !important; text-transform: uppercase !important; color: #99704D !important; margin-bottom: 15px !important; font-weight: 700 !important; } #studio-auma-wrapper .step-title { font-size: 26px !important; font-weight: 700 !important; margin-bottom: 12px !important; color: #371A12 !important; line-height: 1.2 !important; } #studio-auma-wrapper .step-desc { font-size: 14px !important; color: #66352A !important; margin-bottom: 30px !important; line-height: 1.5 !important; } #studio-auma-wrapper .options { display: grid !important; gap: 12px !important; margin-bottom: 30px !important; } #studio-auma-wrapper .option-btn { background: #FFFCF9 !important; border: 2px solid #D5C5B0 !important; padding: 18px !important; border-radius: 14px !important; cursor: pointer !important; text-align: left !important; font-size: 14px !important; transition: all 0.25s ease !important; font-weight: 500 !important; display: flex !important; align-items: flex-start !important; gap: 14px !important; } #studio-auma-wrapper .option-btn:hover { border-color: #99704D !important; background: #FAF7F3 !important; transform: translateY(-1px) !important; box-shadow: 0 4px 12px rgba(102, 53, 42, 0.08) !important; } #studio-auma-wrapper .option-btn.selected { border: 3px solid #371A12 !important; background: #FFFCF9 !important; } #studio-auma-wrapper .icon-box { flex-shrink: 0 !important; width: 48px !important; height: 48px !important; display: flex !important; align-items: center !important; justify-content: center !important; background: #F4ECE3 !important; border-radius: 10px !important; } #studio-auma-wrapper .option-content { flex: 1 !important; } #studio-auma-wrapper .option-title { font-weight: 700 !important; color: #371A12 !important; margin-bottom: 3px !important; font-size: 15px !important; } #studio-auma-wrapper .option-desc { font-size: 12px !important; color: #99704D !important; margin-top: 3px !important; } #studio-auma-wrapper .radio-circle { flex-shrink: 0 !important; width: 26px !important; height: 26px !important; border: 2px solid #D5C5B0 !important; border-radius: 50% !important; display: flex !important; align-items: center !important; justify-content: center !important; transition: all 0.25s ease !important; margin-top: 6px !important; } #studio-auma-wrapper .option-btn.selected .radio-circle { background: #371A12 !important; border-color: #371A12 !important; } #studio-auma-wrapper .option-btn.selected .radio-circle::after { content: '✓' !important; color: #FFFCF9 !important; font-size: 13px !important; font-weight: 700 !important; } #studio-auma-wrapper .range-container { margin: 30px 0 !important; } #studio-auma-wrapper .range-label { display: flex !important; justify-content: space-between !important; margin-bottom: 16px !important; font-size: 13px !important; color: #66352A !important; font-weight: 600 !important; } #studio-auma-wrapper .range-value { font-size: 22px !important; font-weight: 700 !important; color: #371A12 !important; } #studio-auma-wrapper input[type="range"] { width: 100% !important; height: 6px !important; border-radius: 4px !important; background: #E8DFD5 !important; outline: none !important; -webkit-appearance: none !important; appearance: none !important; } #studio-auma-wrapper input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none !important; width: 24px !important; height: 24px !important; border-radius: 50% !important; background: #66352A !important; cursor: pointer !important; box-shadow: 0 2px 8px rgba(102, 53, 42, 0.3) !important; } #studio-auma-wrapper input[type="range"]::-moz-range-thumb { width: 24px !important; height: 24px !important; border-radius: 50% !important; background: #66352A !important; cursor: pointer !important; border: none !important; box-shadow: 0 2px 8px rgba(102, 53, 42, 0.3) !important; } #studio-auma-wrapper .nav-buttons { display: flex !important; gap: 12px !important; margin-top: 40px !important; } #studio-auma-wrapper .btn { flex: 1 !important; padding: 14px !important; border-radius: 10px !important; border: none !important; font-size: 13px !important; font-weight: 700 !important; cursor: pointer !important; transition: all 0.25s ease !important; letter-spacing: 0.05em !important; } #studio-auma-wrapper .btn-next { background: #66352A !important; color: #FFFCF9 !important; } #studio-auma-wrapper .btn-next:hover { background: #49231A !important; transform: translateY(-1px) !important; box-shadow: 0 6px 16px rgba(102, 53, 42, 0.2) !important; } #studio-auma-wrapper .btn-next:disabled { opacity: 0.5 !important; cursor: not-allowed !important; transform: none !important; } #studio-auma-wrapper .btn-back { background: #F4ECE3 !important; color: #66352A !important; border: 2px solid #D5C5B0 !important; } #studio-auma-wrapper .btn-back:hover { background: #E8DFD5 !important; border-color: #99704D !important; } #studio-auma-wrapper .result-box { background: linear-gradient(135deg, #F4ECE3 0%, #FFFCF9 100%) !important; border-radius: 12px !important; padding: 35px !important; text-align: center !important; margin: 30px 0 !important; border: 2px solid #D5C5B0 !important; } #studio-auma-wrapper .result-label { font-size: 10px !important; text-transform: uppercase !important; color: #99704D !important; letter-spacing: 0.15em !important; margin-bottom: 12px !important; font-weight: 700 !important; } #studio-auma-wrapper .price-min-max { font-size: 38px !important; font-weight: 700 !important; color: #371A12 !important; margin-bottom: 10px !important; } #studio-auma-wrapper .price-note { font-size: 12px !important; color: #66352A !important; margin-bottom: 18px !important; line-height: 1.5 !important; } #studio-auma-wrapper .price-vat { font-size: 11px !important; color: #99704D !important; border-top: 2px solid #D5C5B0 !important; padding-top: 14px !important; margin-top: 14px !important; } #studio-auma-wrapper .info-box { background: #FAF7F3 !important; padding: 14px !important; border-radius: 10px !important; margin: 20px 0 !important; font-size: 12px !important; line-height: 1.6 !important; color: #66352A !important; border-left: 4px solid #C9B29F !important; } #studio-auma-wrapper .package-contents { background: #FAF7F3 !important; padding: 20px !important; border-radius: 10px !important; margin: 20px 0 !important; border-left: 4px solid #C9B29F !important; } #studio-auma-wrapper .package-title { font-size: 13px !important; font-weight: 700 !important; color: #371A12 !important; margin-bottom: 14px !important; } #studio-auma-wrapper .package-items { display: grid !important; gap: 8px !important; } #studio-auma-wrapper .package-item { display: flex !important; align-items: flex-start !important; gap: 8px !important; font-size: 12px !important; color: #66352A !important; line-height: 1.4 !important; } #studio-auma-wrapper .package-check { flex-shrink: 0 !important; width: 18px !important; height: 18px !important; display: flex !important; align-items: center !important; justify-content: center !important; background: #C9B29F !important; color: #FFFCF9 !important; border-radius: 3px !important; font-weight: 700 !important; font-size: 11px !important; margin-top: 1px !important; } #studio-auma-wrapper .contact-fields { display: grid !important; gap: 12px !important; margin: 24px 0 !important; } #studio-auma-wrapper input[type="text"], #studio-auma-wrapper input[type="email"], #studio-auma-wrapper input[type="tel"] { width: 100% !important; padding: 12px !important; border: 2px solid #D5C5B0 !important; border-radius: 10px !important; font-size: 13px !important; font-family: inherit !important; background: #FFFCF9 !important; color: #371A12 !important; transition: border-color 0.2s !important; } #studio-auma-wrapper input:focus { outline: none !important; border-color: #66352A !important; box-shadow: 0 0 0 3px rgba(102, 53, 42, 0.1) !important; } #studio-auma-wrapper input::placeholder { color: #99704D !important; } #studio-auma-wrapper .success-box { text-align: center !important; padding: 60px 20px !important; } #studio-auma-wrapper .success-icon { font-size: 60px !important; margin-bottom: 20px !important; } #studio-auma-wrapper .success-title { font-size: 28px !important; font-weight: 700 !important; margin-bottom: 14px !important; color: #371A12 !important; } #studio-auma-wrapper .success-text { font-size: 14px !important; color: #66352A !important; line-height: 1.7 !important; } #studio-auma-wrapper .summary { background: #F4ECE3 !important; padding: 20px !important; border-radius: 10px !important; margin: 20px 0 !important; font-size: 13px !important; line-height: 1.8 !important; color: #66352A !important; border-left: 4px solid #C9B29F !important; } #studio-auma-wrapper .summary strong { color: #371A12 !important; }
Arkkitehti- ja sisustussuunnittelu
Vaihe 1 / 6
Vaihe 1 / 6
Mitä haluat tehdä?
Valitse, mikä kuvaa parhaiten projektiasi.
Vaihe 2 / 6
Kohteen koko
Pinta-ala 100
Vaihe 3 / 6
Suunnittelun sisältö
Vaihe 4 / 6
Lisätiedot
Vaihe 5 / 6
Projektisi arvioitu hinta
Arvioitu hintahaarukka (alv 0%)
Lopullinen tarjous määritellään tarkemmin keskustelun jälkeen.
+ alv 25,5%:
⚠️ ±20% hintahaarukka
Tämä on alustava arvio. Tarkka tarjous sovitaan keskustelun jälkeen.
Pyydä tarkan tarjouksen
Kiitos!
Yhteenveto on lähetetty sähköpostiisi.

Otan sinuun yhteyttä 24 tunnin sisällä
ja tarkennan tarjouksen tarpeidesi mukaan.

Studio AUMA
alinamustamaa@gmail.com
emailjs.init('pRcT9b_GzCRZbgl76'); let state = { path: null, size: 100, archOption: null, archAddOns: [], roomType: null, interiorDepth: null }; let currentStep = 1; const icons = { archA: '', archB: '', archC: '', archD: '', interiorDry: '', interiorWet: '', interiorWhole: '', interiorLight: '', interiorStd: '', interiorFull: '', interiorDesign: '', garden: '' }; const pricing = { architecture: { base: 3000, perSqm: 35, options: { A: { name: 'Luonnossuunnitelma', multiplier: 0.3 }, B: { name: 'Rakennuslupapiirustukset', multiplier: 1.0 }, C: { name: 'Rakennuslupapiirustukset valmiista luonnoksesta', multiplier: 0.6 }, D: { name: 'Kokonaisvaltainen suunnitelma ja pääsuunnittelu', multiplier: 1.2 } }, addOns: { sisustus: { name: 'Sisustussuunnittelu' }, piha: { name: 'Pihasuunnitelma' } }, packageContents: { A: { items: ['Alkukartoitus', 'Visualisointikuvat (1-2 kpl ulkoa)'] }, B: { items: ['Alkukartoitus', 'Visualisointikuvat (1-2 kpl ulkoa)', 'Pääpiirustukset'] }, C: { items: ['Pääpiirustukset valmiista luonnoksesta'] }, D: { items: ['Alkukartoitus', 'Visualisointikuvat (1-2 kpl ulkoa)', 'Pääpiirustukset', 'Pääsuunnittelu'] } } }, interior: { roomTypes: { dry: { name: 'Makuuhuone, olohuone, työhuone, eteinen', base: 150, perSqm: 35 }, wet: { name: 'Keittiö, kylpyhuone, kodinhoitohuone', base: 150, perSqm: 65 }, whole: { name: 'Koko asunto tai muu suurempi kokonaisuus', base: 400, perSqm: 30 } }, depths: { light: { name: 'Pintamateriaalit, värit ja tunnelma', multiplier: 0.5 }, standard: { name: 'Pintamateriaalit, värit, tunnelma sekä tilan toiminnot ja kiintokalusteet', multiplier: 1.0 }, full: { name: 'Kokonaisvaltainen suunnitelma', multiplier: 1.2 } } } }; function updateProgress() { document.getElementById('progressFill').style.width = (currentStep / 6) * 100 + '%'; document.getElementById('progressText').textContent = `Vaihe ${currentStep} / 6`; } function showStep(step) { document.querySelectorAll('.step').forEach(s => s.classList.remove('active')); document.getElementById('step' + step).classList.add('active'); updateProgress(); } function selectPath(path, btn) { state.path = path; document.querySelectorAll('#step1 .option-btn').forEach(b => b.classList.remove('selected')); btn.classList.add('selected'); document.getElementById('btn1').disabled = false; } function nextStep() { if (currentStep === 1) { if (!state.path) return; currentStep = 2; initStep2(); } else if (currentStep === 2) { currentStep = 3; initStep3(); } else if (currentStep === 3) { if (!state.archOption && !state.roomType) return; currentStep = 4; initStep4(); } else if (currentStep === 4) { if (document.getElementById('btn4').disabled) return; currentStep = 5; calcPrice(); } showStep(currentStep); } function prevStep() { if (currentStep > 1) { currentStep--; showStep(currentStep); } } function initStep2() { if (state.path === 'architecture') { document.getElementById('sizeSlider').min = 20; document.getElementById('sizeSlider').max = 400; document.getElementById('sizeSlider').value = 150; state.size = 150; document.getElementById('step2Desc').textContent = 'Kuinka iso rakennus tai laajennus on?'; } else { document.getElementById('sizeSlider').min = 10; document.getElementById('sizeSlider').max = 250; document.getElementById('sizeSlider').value = 50; state.size = 50; document.getElementById('step2Desc').textContent = 'Kuinka iso tila, jonka haluat sisustaa?'; } document.getElementById('sizeValue').textContent = state.size; } function updateSize(val) { state.size = parseInt(val); document.getElementById('sizeValue').textContent = val; } function initStep3() { if (state.path === 'architecture') { document.getElementById('step3Title').textContent = 'Minkä sisältöinen suunnitelma?'; const archHtml = Object.entries(pricing.architecture.options).map(([key, val]) => ` `).join(''); document.getElementById('step3Options').innerHTML = archHtml; } else { document.getElementById('step3Title').textContent = 'Mitä tilaa haluat sisustaa?'; const interiorHtml = Object.entries(pricing.interior.roomTypes).map(([key, val]) => ` `).join(''); document.getElementById('step3Options').innerHTML = interiorHtml; } } function selectArchOption(option, btn) { state.archOption = option; document.querySelectorAll('#step3Options .option-btn').forEach(b => b.classList.remove('selected')); btn.classList.add('selected'); document.getElementById('btn3').disabled = false; } function selectRoomType(type, btn) { state.roomType = type; document.querySelectorAll('#step3Options .option-btn').forEach(b => b.classList.remove('selected')); btn.classList.add('selected'); document.getElementById('btn3').disabled = false; } function initStep4() { if (state.path === 'architecture') { document.getElementById('step4Title').textContent = 'Haluatko lisäpalveluita?'; const addOnsHtml = ` `; document.getElementById('step4Options').innerHTML = addOnsHtml; } else { document.getElementById('step4Title').textContent = 'Kuinka laaja suunnitelma?'; const depthHtml = Object.entries(pricing.interior.depths).map(([key, val]) => ` `).join(''); document.getElementById('step4Options').innerHTML = depthHtml; } } function selectArchAddOns(addOns, btn) { state.archAddOns = addOns; document.querySelectorAll('#step4Options .option-btn').forEach(b => b.classList.remove('selected')); btn.classList.add('selected'); document.getElementById('btn4').disabled = false; } function selectInteriorDepth(depth, btn) { state.interiorDepth = depth; document.querySelectorAll('#step4Options .option-btn').forEach(b => b.classList.remove('selected')); btn.classList.add('selected'); document.getElementById('btn4').disabled = false; } function renderPackageContents() { const container = document.getElementById('packageContents'); if (state.path === 'architecture' && state.archOption) { const pkg = pricing.architecture.packageContents[state.archOption]; if (pkg && pkg.items.length > 0) { container.innerHTML = `
Paketissa sisältyy:
${pkg.items.map(item => `
${item}
`).join('')}
`; return; } } container.innerHTML = ''; } function calcPrice() { let basePrice = 0, summary = ''; if (state.path === 'architecture') { const opt = pricing.architecture.options[state.archOption]; basePrice = Math.round((pricing.architecture.base + state.size * pricing.architecture.perSqm) * opt.multiplier); summary = `Arkkitehtisuunnittelu: ${state.size} m² - ${opt.name}
Perushinta: ${basePrice.toLocaleString('fi-FI')} €`; if (state.archAddOns.includes('sisustus')) { const sp = Math.round((400 + state.size * 30) * 0.8); basePrice += sp; summary += `
+ Sisustussuunnittelu: ${sp.toLocaleString('fi-FI')} €`; } if (state.archAddOns.includes('piha')) { basePrice += 900; summary += `
+ Pihasuunnitelma: noin 900 €`; } summary += `
Yhteensä: ${basePrice.toLocaleString('fi-FI')} €`; } else { const room = pricing.interior.roomTypes[state.roomType]; const depth = pricing.interior.depths[state.interiorDepth]; basePrice = Math.round((room.base + state.size * room.perSqm) * depth.multiplier); summary = `Sisustussuunnittelu: ${state.size} m² - ${room.name}
Perushinta: ${basePrice.toLocaleString('fi-FI')} €`; } const minPrice = Math.round(basePrice * 0.8); const maxPrice = Math.round(basePrice * 1.2); const minVat = Math.round(minPrice * 1.255); const maxVat = Math.round(maxPrice * 1.255); document.getElementById('priceMin').textContent = minPrice.toLocaleString('fi-FI'); document.getElementById('priceMax').textContent = maxPrice.toLocaleString('fi-FI'); document.getElementById('priceMinVat').textContent = minVat.toLocaleString('fi-FI'); document.getElementById('priceMaxVat').textContent = maxVat.toLocaleString('fi-FI'); document.getElementById('summary').innerHTML = summary; renderPackageContents(); } function sendForm() { const name = document.getElementById('name').value.trim(); const email = document.getElementById('email').value.trim(); const phone = document.getElementById('phone').value.trim(); if (!name || !email) { document.getElementById('sendStatus').textContent = 'Täytä nimi ja sähköposti'; document.getElementById('sendStatus').style.color = '#d32f2f'; return; } emailjs.send('service_68r3flc', 'template_b8l40dq', { to_email: email, to_name: name, phone: phone || 'ei annettu', summary: document.getElementById('summary').innerHTML, hinta_arvio: `${document.getElementById('priceMin').textContent} – ${document.getElementById('priceMax').textContent} €` }).then(() => { currentStep = 6; showStep(6); }).catch(() => { document.getElementById('sendStatus').textContent = 'Lähetys epäonnistui'; document.getElementById('sendStatus').style.color = '#d32f2f'; }); } function resetForm() { state = { path: null, size: 100, archOption: null, archAddOns: [], roomType: null, interiorDepth: null }; currentStep = 1; document.getElementById('name').value = ''; document.getElementById('email').value = ''; document.getElementById('phone').value = ''; showStep(1); }