Parquet in legnoMasselloPrefinitoLe PlanceNord AmericaPrefinito classicoOliatoParquet in legno / Parquet masselloPARQUET IN LEGNO / MASSELLOIl legno, fino in fondo.Il carattere della materia.Un unico strato di legno: essenza, venatura e formato costruiscono la superficie. Le nostre proposte sono fornite grezze, per definire la finitura nel progetto di posa.Scegli l’essenza ↗Una realizzazione Montagna Parquet · Archivio aziendaleChe cos’è il masselloLe essenzeParquet industriale01 / LA STRUTTURAUn solo legno.Da superficie a fondo.Il massello è ricavato da un unico elemento ligneo. La finitura e il disegno di posa permettono di interpretarlo in modi diversi.La struttura del massello: un unico elemento di legno.01Grezzo da finireLevigatura e finitura in opera fanno parte del lavoro.02Dimensioni e selezioneLe misure disponibili cambiano per essenza e produzione.03Un sistema da valutareFondo, umidità e condizioni dei locali orientano la posa.02 / LE ESSENZECinque identità.Trova la tua.Apri una scheda per confrontare misure, selezioni e documentazione del prodotto.MASSELLO GREZZODoussiè AfricaToni dorati e rossastri, con una venatura che dà carattere alla superficie. La finitura in opera valorizza le differenze naturali tra gli elementi.Esplora ↗MASSELLO GREZZOIroko AfricaUna palette dal giallo bruno ai toni più intensi, che evolve con la luce e con il tempo. Un legno da osservare con i propri occhi.Esplora ↗MASSELLO GREZZORovere SlavoniaVenature riconoscibili, nodi e specchiature: il Rovere Slavonia offre una materia espressiva, da scegliere anche in base alla selezione estetica.Esplora ↗MASSELLO GREZZOTeak AsiaBruni dorati e variazioni più scure rendono ogni elemento diverso. Colore, provenienza e selezione si valutano insieme al campione.Esplora ↗MASSELLO GREZZOUlivo ItaliaUn disegno fitto e irregolare, con contrasti tra fondo chiaro e venature scure. Una presenza decisa, da considerare nell’insieme del progetto.Esplora ↗03 / UN ALTRO RITMOIl parquet industriale.La materia si ricompone.Elementi accostati di piccola sezione danno vita a una superficie riconoscibile. Dimensioni e aspetto si verificano sulla produzione disponibile.Rovere Slavonia · IndustrialeElementi di piccola sezione accostati tra loro creano una superficie ritmata. Dimensioni e composizione dipendono dalla produzione effettivamente disponibile.Esplora ↗Teak Asia · IndustrialeElementi di piccola sezione accostati tra loro creano una superficie ritmata. Dimensioni e composizione dipendono dalla produzione effettivamente disponibile.Esplora ↗PRIMA DI SCEGLIERELe risposteutili al progetto.Il massello arriva già verniciato?Le proposte attualmente raccolte sono fornite grezze e non verniciate. Preparazione e finitura in opera si definiscono nel preventivo.Quali formati posso valutare?Lamparquet, Listoncino e Listone sono i tre riferimenti per il massello tradizionale. Per altre misure e per il parquet industriale, raccontaci il progetto.Si può levigare in futuro?La possibilità di un ripristino dipende da spessore utile, geometria dell’elemento, finitura e condizioni del pavimento. Serve una valutazione prima di intervenire.IL TUO PROGETTO, INSIEMELa scelta cominciadal tuo spazio.Raccontaci il tuo ambiente. Confrontiamo campioni, formati e finiture, poi valutiamo insieme fornitura e posa.Modulo contattiScrivici su WhatsAppwindow.mpParquetRoutes={"parquet-in-legno.html": "/it/parquet-in-legno/", "parquet-massello.html": "/it/parquet-massello-essenze/", "massello-doussie-africa-massello.html": "/it/parquet-legno-massello-doussie-africa/", "massello-iroko-africa-massello.html": "/it/parquet-legno-massello-iroko-africa/", "massello-rovere-slavonia-massello.html": "/it/parquet-legno-massello-rovere-slavonia/", "massello-teak-asia-massello.html": "/it/parquet-legno-massello-teak-asia/", "massello-ulivo-italia-massello.html": "/it/parquet-legno-massello-ulivo-italia/", "massello-rovere-slavonia-industriale.html": "/it/parquet-legno-massello-rovere-slavonia-industriale/", "massello-teak-asia-industriale.html": "/it/parquet-legno-massello-teak-asia-industriale/", "parquet-prefinito.html": "/it/parquet-prefinito-collezioni/", "le-plance.html": "/it/parquet-prefinito-le-plance/", "nord-america.html": "/it/parquet-prefinito-nord-america/", "spina-italiana-rovere.html": "/it/parquet-spina-italiana-rovere/", "spina-ungherese-rovere.html": "/it/parquet-spina-ungherese-rovere/", "spina-francese-rovere.html": "/it/parquet-spina-francese-rovere/", "spina-italiana-noce.html": "/it/parquet-spina-italiana-noce-americana/", "spina-ungherese-noce.html": "/it/parquet-spina-ungherese-noce-americana/", "spina-francese-noce.html": "/it/parquet-spina-francese-noce-americana/", "rovere-aurora.html": "/it/parquet-legno-rovere-aurora/", "rovere-everest.html": "/it/parquet-legno-rovere-everest/", "rovere-grand-canyon.html": "/it/parquet-legno-rovere-grand-canyon/", "rovere-great-barrier.html": "/it/parquet-legno-rovere-great-barrier/", "rovere-particutin.html": "/it/parquet-legno-rovere-particutin/", "rovere-rio.html": "/it/parquet-legno-rovere-rio/", "rovere-victoria-falls.html": "/it/parquet-legno-rovere-victoria-falls/", "rovere-dubai.html": "/it/parquet-legno-rovere-dubai/", "rovere-las-vegas.html": "/it/parquet-legno-rovere-las-vegas/", "rovere-london.html": "/it/parquet-legno-rovere-london/", "rovere-miami.html": "/it/parquet-legno-rovere-miami/", "rovere-new-york.html": "/it/parquet-legno-rovere-new-york/", "rovere-shanghai.html": "/it/parquet-legno-rovere-shanghai/", "rovere-singapore.html": "/it/parquet-legno-rovere-singapore/", "rovere-chichen-itza.html": "/it/parquet-legno-rovere-chichen-itza/", "rovere-china-wall.html": "/it/parquet-legno-rovere-china-wall/", "rovere-cristo-rei.html": "/it/parquet-legno-rovere-cristo-rei/", "rovere-machu-pichu.html": "/it/parquet-legno-rovere-machu-pichu/", "rovere-petra.html": "/it/parquet-legno-rovere-petra/", "rovere-rome.html": "/it/parquet-legno-rovere-rome/", "rovere-taj-mahal.html": "/it/parquet-legno-rovere-taj-mahal/", "rovere-coliseum.html": "/it/parquet-legno-rovere-coliseum/", "rovere-great-wall.html": "/it/parquet-legno-rovere-great-wall/", "rovere-hagia-sophia.html": "/it/parquet-legno-rovere-hagia-sophia/", "rovere-nanjing.html": "/it/parquet-legno-rovere-nanjing/", "rovere-pisa.html": "/it/parquet-legno-rovere-pisa/", "rovere-shoqafa.html": "/it/parquet-legno-rovere-shoqafa/", "rovere-stonehenge.html": "/it/parquet-legno-rovere-stonehenge/", "rovere-alexandria.html": "/it/parquet-legno-rovere-alexandria/", "rovere-babylon.html": "/it/parquet-legno-rovere-babylon/", "rovere-ephesus.html": "/it/parquet-legno-rovere-ephesus/", "rovere-giza.html": "/it/parquet-legno-rovere-giza/", "rovere-halicarnassus.html": "/it/parquet-legno-rovere-halicarnassus/", "rovere-olympia.html": "/it/parquet-legno-rovere-olympia/", "rovere-rhodes.html": "/it/parquet-legno-rovere-rhodes/", "noce-bay-of-fundy.html": "/it/parquet-legno-noce-americana-bay-of-fundy/", "noce-everglades.html": "/it/parquet-legno-noce-americana-everglades/", "noce-mount-mckinley.html": "/it/parquet-legno-noce-americana-mount-mckinley/", "noce-niagara-falls.html": "/it/parquet-legno-noce-americana-niagara-falls/", "noce-redwoods.html": "/it/parquet-legno-noce-americana-redwoods/", "noce-yellowstone.html": "/it/parquet-legno-noce-americana-yellowstone/", "noce-yosemite.html": "/it/parquet-legno-noce-americana-yosemite/", "rovere-alma-serenity.html": "/it/parquet-legno-rovere-alma-serenity/", "rovere-alma-harmony.html": "/it/parquet-legno-rovere-alma-harmony/", "rovere-alma-memory.html": "/it/parquet-legno-rovere-alma-memory/", "rovere-alma-purity.html": "/it/parquet-legno-rovere-alma-purity/", "rovere-alma-essence.html": "/it/parquet-legno-rovere-alma-essence/", "rovere-alma-legacy.html": "/it/parquet-legno-rovere-alma-legacy/", "rovere-alma-origin.html": "/it/parquet-legno-rovere-alma-origin/", "rovere-alma-eternity.html": "/it/parquet-legno-rovere-alma-eternity/", "oliato-berlino.html": "/it/parquet-legno-oliato-berlino/", "oliato-denver.html": "/it/parquet-legno-oliato-denver/", "oliato-helsinki.html": "/it/parquet-legno-oliato-helsinki/", "oliato-lisbona.html": "/it/parquet-legno-oliato-lisbona/", "oliato-mosca.html": "/it/parquet-legno-oliato-mosca/", "oliato-nairobi.html": "/it/parquet-legno-oliato-nairobi/", "oliato-oslo.html": "/it/parquet-legno-oliato-oslo/", "oliato-rio-de-janeiro.html": "/it/parquet-legno-oliato-rio-de-janeiro/", "oliato-stoccolma.html": "/it/parquet-legno-oliato-stoccolma/", "oliato-tokyo.html": "/it/parquet-legno-oliato-tokyo/", "parquet-oliato.html": "/it/parquet-oliato/", "parquet-prefinito-classico.html": "/it/parquet-prefinito-classico/", "classico-doussie.html": "/it/parquet-legno-prefinito-classico-doussie/", "classico-iroko.html": "/it/parquet-legno-prefinito-classico-iroko/", "classico-rovere.html": "/it/parquet-legno-prefinito-classico-rovere/", "classico-teak.html": "/it/parquet-legno-prefinito-classico-teak/", "classico-wenge.html": "/it/parquet-legno-prefinito-classico-wenge/", "classi-aspetto-parquet.html": "/it/classi-aspetto-parquet/", "alma.html": "/it/parquet-prefinito-le-plance/?collezione=Alma#collezione", "revisione.html": "/it/parquet-in-legno/"}; window.mpParquetFile="parquet-massello.html"; window.mpParquetPath=(u)=>u.pathname+u.search+u.hash; window.mpParquetLocal=(u)=>Object.keys(window.mpParquetRoutes).find(k=>new URL(window.mpParquetRoutes[k],location.origin).pathname===u.pathname)||''; /* Anonymous browsing state only: filters/position, never contact details. */ (()=>{'use strict'; const collectionFiles=new Set(['le-plance.html','nord-america.html','parquet-oliato.html','parquet-prefinito-classico.html','parquet-massello.html',...['italiana','ungherese','francese'].flatMap(p=>['rovere','noce'].map(s=>'spina-'+p+'-'+s+'.html'))]); const poses=['plancia','italiana','ungherese','francese']; function safeReturn(raw,base=location.href){ try{ if(!raw||raw.length>1800)return null; const root=new URL('.',base),u=new URL(raw,base),name=window.mpParquetLocal(u); if(u.origin!==location.origin||!collectionFiles.has(name))return null; const clean=new URL(window.mpParquetRoutes[name],location.origin); for(const key of ['collezione','tonalita','finitura','posa']){ const v=u.searchParams.get(key); if(!v||v.length>=80)continue; if(/^[a-zA-Z0-9 _-]+$/.test(v))clean.searchParams.set(key,v); } clean.hash=/^#modello-[a-z0-9-]+$/.test(u.hash)?u.hash:'#collezione'; return clean.pathname+clean.search+clean.hash; }catch{return null;} } function stateKey(url=location.href){const u=new URL(url);return 'mp-parquet:'+u.pathname+u.search;} function savePosition(){ if(!collectionFiles.has(window.mpParquetFile))return; try{sessionStorage.setItem(stateKey(),JSON.stringify({y:window.scrollY,time:Date.now()}));}catch{} } function restorePosition(){ const back=performance.getEntriesByType?.('navigation')[0]?.type==='back_forward'; if(!(back||location.hash.startsWith('#modello-')))return; let saved;try{saved=JSON.parse(sessionStorage.getItem(stateKey())||'null');}catch{} if(Number.isFinite(saved?.y)){ const expired=!(Date.now()-saved.time<7200000); if(!(saved.y<0||expired)){ requestAnimationFrame(()=>requestAnimationFrame(()=>window.scrollTo({top:saved.y,behavior:'instant'}))); return; } } if(location.hash.startsWith('#modello-')){ const item=document.getElementById(location.hash.slice(1)); if(item?.hidden===false)requestAnimationFrame(()=>item.scrollIntoView({block:'start',behavior:'instant'})); } } function readFilters(filters,tones,finishes){ const q=new URLSearchParams(location.search); const selected=(key,buttons,dataKey)=>buttons.some(b=>b.dataset[dataKey]===q.get(key))?q.get(key):'all'; return {group:selected('collezione',filters,'filter'),tone:selected('tonalita',tones,'colorFilter'),finish:selected('finitura',finishes,'finishFilter')}; } function updateCatalogLinks(){ const file=window.mpParquetFile;if(!collectionFiles.has(file))return; document.querySelectorAll('[data-catalog-product]').forEach(a=>{ const u=new URL(a.getAttribute('href'),location.href),article=a.closest('article'); const back=new URL(location.href);back.hash=article.id; const relative=back.pathname+back.search+back.hash; u.searchParams.set('ritorno',relative); a.setAttribute('href',u.pathname+u.search); }); } function commitFilters(state,labels=[],initial=false){ const u=new URL(location.href); [['collezione',state.group],['tonalita',state.tone],['finitura',state.finish]].forEach(([k,v])=>v==='all'?u.searchParams.delete(k):u.searchParams.set(k,v)); // A previously selected item may be hidden by new filters. if(!initial){ if(u.hash.startsWith('#modello-'))u.hash='collezione'; } history.replaceState(history.state,'',u.href); updateCatalogLinks(); const caption=document.querySelector('[data-active-filters]');if(caption)caption.textContent=labels.length?labels.join(' · '):'Nessun filtro applicato'; } function setPose(pose){ if(!poses.includes(pose))return; const u=new URL(location.href);u.searchParams.set('posa',pose);history.replaceState(history.state,'',u.href);updateCatalogLinks(); } function productState(){const q=new URLSearchParams(location.search);return {mode:q.get('richiesta')==='dettagli'?'dettagli':'consulenza',pose:q.get('posa'),width:q.get('larghezza'),total:q.get('struttura'),grade:q.get('scelta')};} function commitProduct(state){ const u=new URL(location.href);u.searchParams.set('posa',state.pose); if(state.mode==='dettagli'){ u.searchParams.set('richiesta','dettagli');u.searchParams.set('larghezza',state.width);u.searchParams.set('struttura',state.total);u.searchParams.set('scelta',state.grade); }else{['richiesta','larghezza','struttura','scelta'].forEach(k=>u.searchParams.delete(k));} history.replaceState(history.state,'',u.href); } function initialize(){ const link=document.querySelector('[data-return-models]'); if(link){ const back=safeReturn(new URLSearchParams(location.search).get('ritorno')); if(back){ link.href=back;link.textContent='← Torna ai modelli selezionati'; document.querySelectorAll('.breadcrumb a').forEach(a=>{if(collectionFiles.has(window.mpParquetLocal(new URL(a.href,location.href))))a.href=back;}); } } const panel=document.querySelector('[data-filter-panel]'); if(panel){const mq=window.matchMedia('(max-width:740px)');panel.open=!mq.matches;mq.addEventListener('change',e=>{panel.open=!e.matches;});} updateCatalogLinks(); document.querySelectorAll('[data-catalog-product]').forEach(a=>a.addEventListener('click',savePosition)); window.addEventListener('pagehide',savePosition); } window.parquetUX={safeReturn,stateKey,readFilters,commitFilters,setPose,updateCatalogLinks,restorePosition,productState,commitProduct}; initialize(); })(); (()=>{'use strict'; document.querySelectorAll('[data-design-only]').forEach(panel=>{const choice=panel.querySelector('select');const requested=new URLSearchParams(location.search).get('posa');if([...choice.options].some(o=>o.value===requested))choice.value=requested;const updateDesign=()=>{const pose=choice.value;document.querySelectorAll('[data-design-pattern]').forEach(p=>p.hidden=p.dataset.designPattern!==pose);document.querySelectorAll('[data-plank-formats]').forEach(p=>p.hidden=pose!=='plancia');document.querySelectorAll('[data-spina-formats]').forEach(p=>p.hidden=pose==='plancia');const summary=panel.querySelector('[data-design-summary]');summary.textContent='Disegno scelto: '+choice.selectedOptions[0].text+'. '+(pose==='plancia'?'Misure e struttura si verificano nella scheda.':'Dimensioni e struttura della spina si definiscono nella proposta di fornitura.');};choice.addEventListener('change',updateDesign);updateDesign();}); const poseButtons=[...document.querySelectorAll('[data-collection-pose]')]; if(poseButtons.length){let pose=new URLSearchParams(location.search).get('posa')||'plancia';if(!poseButtons.some(b=>b.dataset.collectionPose===pose))pose='plancia';const setPose=value=>{pose=value;poseButtons.forEach(b=>b.setAttribute('aria-pressed',String(b.dataset.collectionPose===pose)));document.querySelectorAll('[data-color-product]').forEach(a=>{const u=new URL(a.getAttribute('href'),location.href);u.searchParams.set('posa',pose);a.setAttribute('href',u.pathname+'?'+u.searchParams.toString())});const text=document.querySelector('[data-pose-description]');if(text)text.textContent='Disegno selezionato: '+poseButtons.find(b=>b.dataset.collectionPose===pose).textContent+'. Scegli un modello: la scheda si aprirà con questa geometria.';if(typeof window!=='undefined')window.parquetUX?.setPose(pose);};poseButtons.forEach(b=>b.addEventListener('click',()=>setPose(b.dataset.collectionPose)));setPose(pose)} const cards=[...document.querySelectorAll('[data-color-card]')],filters=[...document.querySelectorAll('[data-filter]')],toneButtons=[...document.querySelectorAll('[data-color-filter]')],finishButtons=[...document.querySelectorAll('[data-finish-filter]')];let group='all',tone='all',finish='all'; const collectionUX=typeof window!=='undefined'?window.parquetUX:null; if(collectionUX){const saved=collectionUX.readFilters(filters,toneButtons,finishButtons);group=saved.group;tone=saved.tone;finish=saved.finish;} const filterSets=[{key:'group',data:'filter',card:'group',label:'Collezione',buttons:filters},{key:'tone',data:'colorFilter',card:'tone',label:'Tonalità',buttons:toneButtons},{key:'finish',data:'finishFilter',card:'finish',label:'Finitura',buttons:finishButtons}]; function currentFilters(){return {group,tone,finish};} function setFilter(key,value){if(key==='group')group=value;else if(key==='tone')tone=value;else if(key==='finish')finish=value;} function matchesFilters(card,state){return filterSets.every(s=>state[s.key]==='all'||card.dataset[s.card]===state[s.key]);} function refreshFilterControls(){ const state=currentFilters(); filterSets.forEach(set=>set.buttons.forEach(b=>{ const value=b.dataset[set.data],candidate={...state,[set.key]:value}; const count=cards.filter(c=>matchesFilters(c,candidate)).length; b.disabled=!(value==='all'||value===state[set.key]||count!==0); b.setAttribute('aria-disabled',String(b.disabled));b.setAttribute('data-matching-count',String(count)); b.setAttribute('title',b.disabled?'Non disponibile con i filtri attivi':count===1?'1 modello con questi filtri':count+' modelli con questi filtri'); })); const list=document.querySelector('[data-active-filter-list]'); if(list){ list.replaceChildren(); filterSets.forEach(set=>{ if(state[set.key]==='all')return; const selected=set.buttons.find(b=>b.dataset[set.data]===state[set.key]);if(!selected)return; const label=set.label+': '+selected.textContent.trim(),remove=document.createElement('button'); remove.type='button';remove.className='active-filter';remove.textContent=label+' ×'; remove.setAttribute('aria-label','Rimuovi filtro '+label);remove.setAttribute('data-remove-filter',set.key); remove.addEventListener('click',()=>{setFilter(set.key,'all');filter();const remaining=list.querySelector('button');if(remaining)remaining.focus();else document.querySelector('[data-filter-panel] summary')?.focus();}); list.appendChild(remove); }); list.hidden=!list.children.length; } } function filter(initial=false){let n=0;cards.forEach(c=>{c.hidden=!(group==='all'||c.dataset.group===group)||!(tone==='all'||c.dataset.tone===tone)||!(finish==='all'||c.dataset.finish===finish);if(!c.hidden)n++});const out=document.querySelector('[data-count]');if(out)out.textContent=n===1?'1 modello mostrato':n+' modelli mostrati';const empty=document.querySelector('[data-empty-finishes]');if(empty)empty.hidden=n!==0; const selected=[]; for(const [buttons,key,value] of [[filters,'filter',group],[toneButtons,'colorFilter',tone],[finishButtons,'finishFilter',finish]]){ buttons.forEach(b=>b.setAttribute('aria-pressed',String(b.dataset[key]===value))); if(value==='all')continue; const current=buttons.find(b=>b.dataset[key]===value); if(current)selected.push(current.textContent.trim()); } if(collectionUX)collectionUX.commitFilters({group,tone,finish},selected,initial); refreshFilterControls(); } filters.forEach(b=>b.addEventListener('click',()=>{if(b.disabled)return;group=b.dataset.filter;filter()})); toneButtons.forEach(b=>b.addEventListener('click',()=>{if(b.disabled)return;tone=b.dataset.colorFilter;filter()})); finishButtons.forEach(b=>b.addEventListener('click',()=>{if(b.disabled)return;finish=b.dataset.finishFilter;filter()})); document.querySelectorAll('[data-reset-filters]').forEach(b=>b.addEventListener('click',()=>{group='all';tone='all';finish='all';filters.forEach(x=>x.setAttribute('aria-pressed',String(x.dataset.filter==='all')));toneButtons.forEach(x=>x.setAttribute('aria-pressed',String(x.dataset.colorFilter==='all')));finishButtons.forEach(x=>x.setAttribute('aria-pressed',String(x.dataset.finishFilter==='all')));filter()}));if(cards.length)filter(true);collectionUX?.restorePosition(); const cfg=document.querySelector('[data-config]');if(cfg){ const data=JSON.parse(document.querySelector('#configuration-data').textContent),family=data.family; const geo=cfg.querySelector('[name=geometria]'),width=cfg.querySelector('[name=larghezza]'),grade=cfg.querySelector('[name=scelta]'),total=cfg.querySelector('[name=spessore]'); const configUX=typeof window!=='undefined'?window.parquetUX:null; const requestModes=[...document.querySelectorAll('input[name="request-mode"]')]; const savedConfig=configUX?.productState();let initializing=true; if(savedConfig)requestModes.forEach(m=>m.checked=m.value===savedConfig.mode); requestModes.forEach(m=>m.addEventListener('change',()=>{if(m.checked)update();})); const descriptions={Select:'○ · Aspetto più uniforme, con nodi contenuti e variazioni cromatiche leggere.',Natur:'△ · Nodi e variazioni naturali per una superficie più movimentata.',Rustic:'□ · Nodi e contrasti più evidenti, per valorizzare il carattere del legno.'}; // Medula strips markup from JavaScript strings before serving the script. const tagStart=String.fromCharCode(60); const shapes={Select:tagStart+'circle cx="20" cy="20" r="14"/>',Natur:tagStart+'path d="M20 4 37 34H3Z"/>',Rustic:tagStart+'rect x="6" y="6" width="28" height="28"/>'}; const symbols={Select:'cerchio',Natur:'triangolo',Rustic:'quadrato'}; const radios=[...cfg.querySelectorAll('input[name="classe-aspetto"]')]; radios.forEach(r=>r.addEventListener('change',()=>{if(r.checked){grade.value=r.value;update()}})); function populate(el,values){const before=el.value;el.replaceChildren(...values.map(v=>new Option(v.text||v,v.value||v)));if([...el.options].some(o=>o.value===before))el.value=before} function update(){ const type=geo.value,isSpina=type!=='plancia'; populate(width,(isSpina?[90,120,140]:(data.plankWidths||(family==='rovere'?[90,120,140,180,220,250]:[90,120,140,180]))).map(n=>({value:String(n),text:n+' mm'}))); const choices=data.structures.filter(s=>{ if(!(s.total<=16))return false; if(s.poses?.includes(type)===false)return false; return s.widths?.includes(Number(width.value))!==false; }); populate(total,[...choices.map(s=>s.value),{value:'altra',text:'Altra struttura fino a 16 mm · Informazioni'}]); populate(grade,['Select','Natur','Rustic']); radios.forEach(r=>r.checked=r.value===grade.value); const help=document.querySelector('[data-grade-help]');if(help)help.textContent=grade.value+' · '+descriptions[grade.value].split(' · ')[1]; const shape=document.querySelector('[data-grade-symbol]');if(shape)shape.innerHTML=tagStart+'svg class="choice-shape" viewBox="0 0 40 40" aria-hidden="true">'+shapes[grade.value]+tagStart+'/svg>'; const other=total.value==='altra'; document.querySelector('[data-structure-help]').textContent=(other?'Per altre strutture con legno nobile da 2,5 · 4,2 · 6 mm, richiedi l’abbinamento disponibile entro 16 mm totali.':'Spessori in millimetri: totale / legno nobile. La disponibilità della combinazione si conferma con la proposta di fornitura.'); const consultation=requestModes.some(m=>m.checked?m.value==='consulenza':false); document.querySelectorAll('[data-config-expert]').forEach(e=>e.hidden=consultation); document.querySelector('[data-length]').textContent=consultation?'Misure, struttura e scelta estetica da definire insieme.':isSpina?'Lunghezza da definire per il formato scelto.':family==='noce'?'Lunghezze da verificare sulla specifica di fornitura.':'Lunghezze assortite da 500 a 2400 mm, secondo formato.'; const summary=consultation?[data.name,geo.selectedOptions[0].text,'Richiedo un consiglio su misure, struttura e scelta estetica'].join(' · '):[data.name,geo.selectedOptions[0].text,width.selectedOptions[0].text,other?'Altra struttura entro 16 mm da definire':total.selectedOptions[0].text,grade.value+' ('+symbols[grade.value]+')'].join(' · '); document.querySelector('[data-summary]').textContent=summary; const contactSummary=document.querySelector('[data-contact-summary]');if(contactSummary)contactSummary.textContent=summary; document.querySelectorAll('[data-pattern]').forEach(p=>p.hidden=p.dataset.pattern!==type); const message='Buongiorno Montagna Parquet, vorrei informazioni e una proposta per: '+summary+'.'; const wa=document.querySelector('[data-config-whatsapp]');if(wa)wa.href='https://wa.me/390696453729?text='+encodeURIComponent(message); const contact=document.querySelector('[data-config-contact]');if(contact){const url=new URL('https://montagnaparquet.it/it/contatti/');url.hash='mp-richiesta='+encodeURIComponent(message);contact.href=url.href;} const copy=document.querySelector('[data-config-copy]');if(copy)copy.value=message; const status=document.querySelector('[data-copy-status]');if(status)status.textContent='Il riepilogo sarà già compilato nel modulo contatti. Puoi anche copiarlo per conservarlo.'; const jump=document.querySelector('[data-enquiry-jump]');if(jump)jump.textContent=consultation?'Chiedi un consiglio su questo modello ↓':'Richiedi questa configurazione ↓'; if(!initializing)configUX?.commitProduct({mode:consultation?'consulenza':'dettagli',pose:type,width:width.value,total:total.value,grade:grade.value}); } const copyButton=document.querySelector('[data-copy-config]');copyButton?.addEventListener('click',async()=>{const field=document.querySelector('[data-config-copy]'),status=document.querySelector('[data-copy-status]');try{await navigator.clipboard.writeText(field.value);status.textContent='Riepilogo copiato.'}catch{field.focus();field.select();status.textContent='Testo selezionato: usa Copia nel menu del dispositivo o Ctrl+C per conservarlo.'}}); const requested=new URLSearchParams(location.search).get('posa');if([...geo.options].some(x=>x.value===requested))geo.value=requested;cfg.addEventListener('change',update);update(); if(savedConfig?.mode==='dettagli'){ for(const [field,value] of [[width,savedConfig.width],[total,savedConfig.total],[grade,savedConfig.grade]]){if([...field.options].some(o=>o.value===value)){field.value=value;update();}} } initializing=false;update();} const viewer=document.querySelector('.viewer');document.querySelectorAll('[data-zoom]').forEach(b=>b.addEventListener('click',()=>{viewer.querySelector('img').dataset.displayRotation=b.dataset.displayRotation||'0';viewer.querySelector('img').src=b.dataset.zoom;viewer.querySelector('img').alt=b.dataset.alt;viewer.showModal()}));viewer?.querySelector('button').addEventListener('click',()=>viewer.close());viewer?.addEventListener('click',e=>{if(e.target===viewer)viewer.close()}); })();
MASSELLO GREZZODoussiè AfricaToni dorati e rossastri, con una venatura che dà carattere alla superficie. La finitura in opera valorizza le differenze naturali tra gli elementi.Esplora ↗
MASSELLO GREZZOIroko AfricaUna palette dal giallo bruno ai toni più intensi, che evolve con la luce e con il tempo. Un legno da osservare con i propri occhi.Esplora ↗
MASSELLO GREZZORovere SlavoniaVenature riconoscibili, nodi e specchiature: il Rovere Slavonia offre una materia espressiva, da scegliere anche in base alla selezione estetica.Esplora ↗
MASSELLO GREZZOTeak AsiaBruni dorati e variazioni più scure rendono ogni elemento diverso. Colore, provenienza e selezione si valutano insieme al campione.Esplora ↗
MASSELLO GREZZOUlivo ItaliaUn disegno fitto e irregolare, con contrasti tra fondo chiaro e venature scure. Una presenza decisa, da considerare nell’insieme del progetto.Esplora ↗
Rovere Slavonia · IndustrialeElementi di piccola sezione accostati tra loro creano una superficie ritmata. Dimensioni e composizione dipendono dalla produzione effettivamente disponibile.Esplora ↗
Teak Asia · IndustrialeElementi di piccola sezione accostati tra loro creano una superficie ritmata. Dimensioni e composizione dipendono dalla produzione effettivamente disponibile.Esplora ↗