+32 471 25 37 12
[email protected]
+32 471 25 37 12 WhatsApp ons
Taal / Language
Transparante tarieven

Duidelijke prijzen

Geen verborgen kosten. De prijs wordt altijd bevestigd vóór we beginnen — zodat u weet waar u aan toe bent.

Jaarlijks onderhoud
Onderhoud + Keuring
Condensatieketel € 135 excl. BTW
Turboketel € 115 excl. BTW
  • Reiniging brander & warmtewisselaar
  • Afstelling verbrandingswaarden
  • Controle alle veiligheidssystemen
  • Rookgascontrole & certificaat inbegrepen
Afspraak maken
Meest gevraagd
Depannage & herstelling
Herstelling CV-ketel
Depannage (interventie) v.a. € 90 excl. BTW
Reserveonderdelen op aanvraag
  • Diagnose & foutcodes uitlezen
  • Herstelling vaak bij eerste bezoek
  • Gangbare onderdelen altijd bij ons
  • Beschikbaar 7 dagen op 7
Herstelling aanvragen
Keuring & nieuwe ketel
Keuring & Installatie
Veiligheidskeuring € 75 excl. BTW
Volledige installatie op aanvraag
Offerte Gratis
  • Verwijdering & afvoer oude ketel
  • Volledige installatie nieuwe ketel
  • Keuring + conformiteitsattest inbegrepen
  • Vaillant · Bosch · Bulex · Junkers · Viessmann
Gratis offerte

* Dit zijn basisprijzen excl. BTW. De definitieve prijs wordt altijd ter plaatse bepaald na inspectie — vóór aanvang van de werken bevestigd, zonder verrassingen.

Aanvraag verzonden ✓
We nemen spoedig contact met u op om uw afspraak te bevestigen.
Aquatec LE
5.0
· Google
T
Teffi Mo
1 month ago

"Professional from the first contact. Quick appointment, arrived on time, worked efficiently. Definitely recommend!"

M
Myrthe P
4 weeks ago · Local Guide

"Very satisfied! Super friendly, clearly an expert. Explains everything so you understand what was done. Definitely recommended!"

R
Raphaele Tassisto
1 month ago

"Called on Sunday, fixed on Sunday — at a very reasonable price. Not many technicians do that. Thank you very much!"

S
Sam Beysens
2 weeks ago

"Sent a message Tuesday, came by Thursday. Very fast and excellent service! Definitely recommended."

K
Katia Schellekens
2 weeks ago

"Had maintenance done for the second time. Definitely recommended. Competent, super friendly, and excellent value."

H
Ham Abdel
1 week ago

"Excellent service. Professional, punctual, and experienced. Works neatly. Highly recommended."

A
Anne Billson
1 month ago

"Prompt, efficient, friendly. Highly recommended!"

C
Charlotte De Pesseroey
4 weeks ago · Local Guide

"Came to the appointment perfectly and delivered good work!"

See all reviews on Google Maps
Jaarlijks onderhoud
Onderhoud CV-ketel
Onderhoud + Keuring excl. BTW

Vaste prijs — geen verrassingen achteraf

Wat is inbegrepen?
  • Reiniging brander, warmtewisselaar en verbrandingskamer
  • Controle en afstelling verbrandingswaarden
  • Inspectie alle veiligheidssystemen
  • Test druk, temperatuur en expansievat
  • Controle rookgasafvoer
  • Onderhoudscertificaat inbegrepen
Tarieven
Condensatieketel € 135 excl. BTW
Turboketel € 115 excl. BTW
💡 Prijs wordt altijd bevestigd vóór aanvang van de werken. Merken: Vaillant, Bosch, Bulex, Junkers, Viessmann.
Afspraak maken
Diagnose & reparatie
Herstelling CV-ketel
Depannage excl. BTW

Interventiekosten + onderdelen apart — prijs vóór aanvang bevestigd

Wat doen we?
  • Volledige diagnose ter plaatse
  • Foutcodes uitlezen en analyseren
  • Herstelling uitgevoerd bij eerste bezoek indien mogelijk
  • Reserveonderdelen meest gangbare merken bij ons
  • Ketel getest en vrijgegeven na herstelling
Tarieven
Depannage (interventie) Vanaf € 90 excl. BTW
Reserveonderdelen op aanvraag
⚡ Spoedgeval? Beschikbaar 7/7. Bel +32 471 25 37 12
Herstelling aanvragen
Keuring & nieuwe ketel
Keuring & Installatie
Offerte gratis & vrijblijvend

Prijs afhankelijk van uw situatie — altijd vooraf bevestigd

Wat is inbegrepen?
  • Gratis opmeting en advies op maat
  • Verwijdering en afvoer van uw oude toestel
  • Volledige installatie nieuwe condensatieketel
  • Aansluiting op bestaand leidingwerk en radiatoren
  • Ingebruikname, afstelling en uitleg
  • Verplichte veiligheidskeuring + conformiteitsattest inbegrepen
Tarieven
Veiligheidskeuring alleen € 75 excl. BTW
Volledige installatie op aanvraag
Offerte Gratis
📋 Merken: Vaillant, Bosch, Bulex, Junkers, Viessmann. Offerte gratis & vrijblijvend.
/* ═══ MENU ═══ */ function openMenu(){document.getElementById('mobMenu').classList.add('open');document.body.style.overflow='hidden'} function closeMenu(){document.getElementById('mobMenu').classList.remove('open');document.body.style.overflow=''} /* ═══ LANG DROPDOWN ═══ */ function toggleLang(e){ e.stopPropagation(); e.preventDefault(); var sw = document.getElementById('langSwitcher'); var isOpen = sw.classList.contains('open'); sw.classList.remove('open'); if(!isOpen) sw.classList.add('open'); } document.addEventListener('click', function(e){ var sw = document.getElementById('langSwitcher'); if(sw && !sw.contains(e.target)) sw.classList.remove('open'); }); /* ═══ TRANSLATIONS ═══ */ const T = { nl: { nav_about:'Over ons', nav_services:'Diensten', nav_why:'Waarom wij', nav_reviews:'Reviews', nav_contact:'Contact', hero_eyebrow:'Specialist in Antwerpen & omgeving', hero_title:'Book an appointment
with us.', hero_sub:'Aquatec LE verzorgt het onderhoud, de herstelling en installatie van uw CV-ketel. Lotfi is op tijd, pakt het probleem aan en rekent een eerlijke prijs — altijd.', hero_btn1:'Maak een afspraak', hero_btn2:'Bel voor een afspraak', stat1_l:'Google Rating', stat2_l:'Reactietijd', stat3_l:'Beschikbaar', stat4_l:'Tevreden', trust1_title:'Service van topkwaliteit', trust1_txt:'Vakkundige en betrouwbare technieker met jaren ervaring aan uw ketel.', trust2_title:'Snel & efficiënt', trust2_txt:'Snelle reactie, veelal beschikbaar de volgende dag — ook in het weekend.', trust3_title:'Eerlijke prijzen', trust3_txt:'Transparante tarieven zonder verrassingen. De prijs wordt bevestigd vóór we beginnen.', brands_label:'Wij werken met', about_eyebrow:'Over Aquatec LE', about_title:'Uw verwarming bij ons in de hoofdrol!', about_p1:'Aquatec LE is gebouwd op één belofte: kom wanneer afgesproken, doe het werk goed en reken een eerlijke prijs. Lotfi, oprichter en hoofd-technieker, heeft jarenlange ervaring met alle grote CV-merken en verwarmingssystemen.', about_p2:'U belt niet naar een callcenter — u spreekt rechtstreeks met de persoon die het werk uitvoert. Zo hoort het.', about_li1:'+10 jaar ervaring in het vakgebied', about_li2:'7/7 bereikbaar bij storingen en noodgevallen', about_li3:'Kwalitatieve service met transparante prijzen', about_li4:'Persoonlijk contact, geen callcenter', about_btn:'Bel ons voor een afspraak', sig_role:'Oprichter & Hoofd-technieker · Aquatec LE', sv_eyebrow:'Onze diensten', sv_title:'Ontdek onze dienstverlening', sv_intro:'Van een snelle onderhoudsbeurt tot een volledige installatie — wij regelen het vakkundig, snel en met echte expertise.', sv1_title:'Onderhoud', sv1_txt:'Regelmatig onderhoud zorgt voor een veilige en efficiënte werking van uw ketel. We reinigen, testen, kalibreren en certificeren.', sv2_title:'Herstelling', sv2_txt:'Geen warmte of warm water? We diagnosticeren en herstellen snel. We lossen het probleem vaak bij het eerste bezoek op.', sv3_title:'Keuring & Installatie', sv3_txt:'Nieuwe energiezuinige ketel nodig? Volledige installatie van modelselectie tot ingebruikname. Een offerte is altijd gratis en vrijblijvend.', sv_link:'Meer informatie', sp1_eyebrow:'Installatie nieuwe CV-ketel', sp1_title:'Verwarming en sanitair warm water', sp1_intro:'Een offerte voor de vervanging van uw CV-ketel is volledig gratis en vrijblijvend.', sp1_li1:'Gratis en vrijblijvende offerte', sp1_li2:'Snelle en vakkundige service', sp1_li3:'Gebruik van kwaliteitsmerken en duurzame oplossingen', sp1_li4:'Professionele installatie door erkende technieker', sp1_btn:'Vraag een offerte aan', sp2_eyebrow:'Spoedinterventie', sp2_title:'Ketel stuk op zondag?', sp2_intro:'Verwarmingsproblemen wachten niet tot maandag. Aquatec LE is 7 dagen per week bereikbaar voor spoedgevallen.', sp2_li1:'Beschikbaar 7 dagen per week', sp2_li2:'Veelal beschikbaar de volgende dag', sp2_li3:'Eerlijke prijs, ook voor spoedinterventies', sp2_li4:'Reserveonderdelen worden snel besteld en geplaatst', sp2_btn:'Bel ons nu', why_eyebrow:'Waarom Aquatec LE?', why_title:'Wat onze klanten telkens opnieuw zeggen.', why_intro:'Elk punt hieronder komt rechtstreeks uit onze reviews — keer op keer.', why_btn:'Maak een afspraak', p1_title:'Snel op afspraak', p1_txt:'"Dinsdag gebeld, donderdag al langs." Geen weken wachten op een technieker.', p2_title:'Altijd stipt op tijd', p2_txt:'Stiptheid is het meest geprezen kenmerk in al onze reviews.', p3_title:'Duidelijke communicatie', p3_txt:'We leggen uit wat we doen, waarom en wat het kost. Geen vakjargon, geen verrassingen.', p4_title:'Eerlijke prijs, ook op zondag', p4_txt:'Concurrerende tarieven voor kwaliteitswerk — klanten vermelden dit zelfs bij spoedinterventies.', rv_eyebrow:'Google Reviews', rv_title:'Wat zeggen onze klanten?', wa_title:'Liever chatten? Stuur ons een bericht op WhatsApp', wa_sub:'+32 471 25 37 12 — Lotfi antwoordt persoonlijk', wa_btn:'WhatsApp sturen', ct_eyebrow:'Contactgegevens', ct_title:'Neem contact met ons op', ct_intro:'De snelste manier om ons te bereiken is telefonisch. U spreekt rechtstreeks met Lotfi.', ct_lbl_phone:'Telefoon', ct_lbl_region:'Regio', ct_val_region:'Antwerpen & omgeving', ct_lbl_response:'Reactietijd', ct_val_response:'Vaak beschikbaar de volgende dag', h_mon:'Maandag', h_tue:'Dinsdag', h_wed:'Woensdag', h_thu:'Donderdag', h_fri:'Vrijdag', h_sat:'Zaterdag', h_sun:'Zondag', h_emerg:'Noodinterventies', form_title:'Stuur een aanvraag', f_fn:'Voornaam', f_ln:'Achternaam', f_em:'E-mail', f_ph:'Telefoon', f_sv:'Dienst', f_sv_ph:'— Wat heeft u nodig? —', f_sv1:'Jaarlijks onderhoud ketel', f_sv2:'Herstelling ketel', f_sv3:'Nieuwe installatie', f_sv4:'Veiligheidskeuring', f_sv5:'Centrale verwarming probleem', f_sv6:'Noodinterventie', f_sv7:'Andere / Niet zeker', f_dt:'Gewenste datum', f_tm:'Tijdvoorkeur', f_tm_ph:'— Wanneer? —', f_tm1:'Ochtend (08–12)', f_tm2:'Namiddag (12–17)', f_tm3:'Avond (17–19)', f_nt:'Bericht (optioneel)', f_nt_ph:'Beschrijf het probleem of geef nuttige details...', f_sub:'Verstuur aanvraag →', f_valid:'Vul naam, e-mail, dienst en gewenste datum in.', f_sending:'Bezig met versturen...', f_err:'Er is iets fout gelopen. Bel ons op +32 471 25 37 12.', f_net:'Kan niet versturen. Bel ons op +32 471 25 37 12.', toast_h:'Aanvraag verzonden ✓', toast_p:'We nemen spoedig contact met u op om uw afspraak te bevestigen.', ft_desc:'Uw vertrouwde CV-ketel specialist in Antwerpen. Snel, professioneel en altijd betrouwbaar.', ft_col1:'Diensten', ft_col2:'Navigatie', ft_col3:'Contact', ft_sv1:'Onderhoud ketel', ft_sv2:'Herstelling ketel', ft_sv3:'Installatie ketel', ft_sv4:'Veiligheidskeuring', ft_sv5:'Noodinterventie', ft_n1:'Over ons', ft_n2:'Waarom Aquatec LE', ft_n3:'Reviews', ft_n4:'Contact & afspraak', ft_avail:'7 dagen per week beschikbaar', ft_copy:'Alle rechten voorbehouden.' }, fr: { nav_about:'À propos', nav_services:'Services', nav_why:'Pourquoi nous', nav_reviews:'Avis', nav_contact:'Contact', hero_eyebrow:'Spécialiste à Anvers & environs', hero_title:'Prenez rendez-vous
avec nous.', hero_sub:'Aquatec LE assure l\'entretien, la réparation et l\'installation de votre chaudière. Lotfi arrive à l\'heure, résout le problème et facture un prix équitable.', hero_btn1:'Prendre rendez-vous', hero_btn2:'Appeler pour un rendez-vous', stat1_l:'Note Google', stat2_l:'Réponse', stat3_l:'Disponible', stat4_l:'Satisfaits', trust1_title:'Service de qualité', trust1_txt:'Technicien qualifié et fiable avec des années d\'expérience.', trust2_title:'Rapide & efficace', trust2_txt:'Réponse rapide, souvent disponible le lendemain — même le week-end.', trust3_title:'Prix honnêtes', trust3_txt:'Tarifs transparents sans surprises. Le prix est confirmé avant de commencer.', brands_label:'Nous travaillons avec', about_eyebrow:'À propos d\'Aquatec LE', about_title:'Votre chauffage entre de bonnes mains!', about_p1:'Aquatec LE est fondé sur une promesse : venir à l\'heure convenue, bien faire le travail et facturer un prix équitable. Lotfi, fondateur et technicien principal.', about_p2:'Vous parlez directement à la personne qui effectue le travail. C\'est comme ça que ça devrait être.', about_li1:'+10 ans d\'expérience', about_li2:'Disponible 7j/7 pour les pannes et urgences', about_li3:'Service de qualité à prix transparents', about_li4:'Contact personnel, pas de centre d\'appels', about_btn:'Appelez-nous pour un rendez-vous', sig_role:'Fondateur & Technicien principal · Aquatec LE', sv_eyebrow:'Nos services', sv_title:'Découvrez nos prestations', sv_intro:'D\'un entretien rapide à une installation complète — nous nous en chargeons avec expertise.', sv1_title:'Entretien', sv1_txt:'Un entretien régulier garantit un fonctionnement sûr et efficace de votre chaudière.', sv2_title:'Réparation', sv2_txt:'Pas de chaleur ou d\'eau chaude? Nous diagnostiquons et réparons rapidement.', sv3_title:'Contrôle & Installation', sv3_txt:'Besoin d\'une nouvelle chaudière? Installation complète. Devis toujours gratuit.', sv_link:'Plus d\'informations', sp1_eyebrow:'Installation nouvelle chaudière', sp1_title:'Chauffage et eau chaude sanitaire', sp1_intro:'Un devis pour le remplacement de votre chaudière est entièrement gratuit et sans engagement.', sp1_li1:'Devis gratuit et sans engagement', sp1_li2:'Service rapide et qualifié', sp1_li3:'Utilisation de marques de qualité', sp1_li4:'Installation professionnelle par technicien agréé', sp1_btn:'Demander un devis', sp2_eyebrow:'Intervention d\'urgence', sp2_title:'Chaudière en panne le dimanche?', sp2_intro:'Les problèmes de chauffage n\'attendent pas le lundi. Disponible 7 jours sur 7.', sp2_li1:'Disponible 7 jours sur 7', sp2_li2:'Souvent disponible dès le lendemain', sp2_li3:'Prix équitable, même pour les urgences', sp2_li4:'Pièces commandées et posées rapidement', sp2_btn:'Appelez-nous maintenant', why_eyebrow:'Pourquoi Aquatec LE?', why_title:'Ce que nos clients disent encore et encore.', why_intro:'Chaque point vient directement de nos avis — encore et encore.', why_btn:'Prendre rendez-vous', p1_title:'Rendez-vous rapide', p1_txt:'"Appelé mardi, venu jeudi." Pas des semaines d\'attente.', p2_title:'Toujours à l\'heure', p2_txt:'La ponctualité est la qualité la plus louée dans tous nos avis.', p3_title:'Communication claire', p3_txt:'Nous expliquons ce que nous faisons, pourquoi et combien. Pas de jargon.', p4_title:'Prix équitable, même le dimanche', p4_txt:'Tarifs compétitifs pour un travail de qualité.', rv_eyebrow:'Avis Google', rv_title:'Que disent nos clients?', wa_title:'Préférez-vous chatter? Envoyez-nous un message sur WhatsApp', wa_sub:'+32 471 25 37 12 — Lotfi répond personnellement', wa_btn:'Envoyer un WhatsApp', ct_eyebrow:'Coordonnées', ct_title:'Prenez contact avec nous', ct_intro:'La façon la plus rapide de nous joindre est par téléphone. Vous parlez directement à Lotfi.', ct_lbl_phone:'Téléphone', ct_lbl_region:'Région', ct_val_region:'Anvers & environs', ct_lbl_response:'Délai de réponse', ct_val_response:'Souvent disponible dès le lendemain', h_mon:'Lundi', h_tue:'Mardi', h_wed:'Mercredi', h_thu:'Jeudi', h_fri:'Vendredi', h_sat:'Samedi', h_sun:'Dimanche', h_emerg:'Urgences seulement', form_title:'Envoyer une demande', f_fn:'Prénom', f_ln:'Nom', f_em:'E-mail', f_ph:'Téléphone', f_sv:'Service', f_sv_ph:'— De quoi avez-vous besoin? —', f_sv1:'Entretien annuel chaudière', f_sv2:'Réparation chaudière', f_sv3:'Nouvelle installation', f_sv4:'Contrôle de sécurité', f_sv5:'Problème chauffage central', f_sv6:'Urgence', f_sv7:'Autre / Pas sûr', f_dt:'Date souhaitée', f_tm:'Préférence horaire', f_tm_ph:'— Quand? —', f_tm1:'Matin (08–12)', f_tm2:'Après-midi (12–17)', f_tm3:'Soir (17–19)', f_nt:'Message (optionnel)', f_nt_ph:'Décrivez le problème...', f_sub:'Envoyer la demande →', f_valid:'Veuillez remplir nom, e-mail, service et date.', f_sending:'Envoi en cours...', f_err:'Quelque chose s\'est mal passé. Appelez au +32 471 25 37 12.', f_net:'Impossible d\'envoyer. Appelez au +32 471 25 37 12.', toast_h:'Demande envoyée ✓', toast_p:'Nous vous contacterons rapidement pour confirmer votre rendez-vous.', ft_desc:'Votre spécialiste chaudière de confiance à Anvers. Rapide, professionnel et toujours fiable.', ft_col1:'Services', ft_col2:'Navigation', ft_col3:'Contact', ft_sv1:'Entretien chaudière', ft_sv2:'Réparation chaudière', ft_sv3:'Installation chaudière', ft_sv4:'Contrôle sécurité', ft_sv5:'Urgence', ft_n1:'À propos', ft_n2:'Pourquoi Aquatec LE', ft_n3:'Avis', ft_n4:'Contact & rendez-vous', ft_avail:'Disponible 7 jours sur 7', ft_copy:'Tous droits réservés.' }, en: { nav_about:'About', nav_services:'Services', nav_why:'Why us', nav_reviews:'Reviews', nav_contact:'Contact', hero_eyebrow:'Specialist in Antwerp & surroundings', hero_title:'Book an appointment
with us.', hero_sub:'Aquatec LE provides boiler maintenance, repair and installation across Antwerp. Lotfi shows up on time, fixes the problem and charges a fair price.', hero_btn1:'Book an appointment', hero_btn2:'Call for an appointment', stat1_l:'Google Rating', stat2_l:'Response time', stat3_l:'Available', stat4_l:'Satisfied', trust1_title:'Top quality service', trust1_txt:'Skilled and reliable technician with years of experience.', trust2_title:'Fast & efficient', trust2_txt:'Quick response, often available the next day — including weekends.', trust3_title:'Fair pricing', trust3_txt:'Transparent rates without surprises. Price confirmed before we start.', brands_label:'We work with', about_eyebrow:'About Aquatec LE', about_title:'Your heating in good hands!', about_p1:'Aquatec LE is built on one promise: show up when agreed, do the job properly and charge a fair price. Lotfi, founder and lead technician.', about_p2:'You speak directly with the person doing the work. That\'s how it should be.', about_li1:'+10 years of experience', about_li2:'Available 7/7 for breakdowns and emergencies', about_li3:'Quality service at transparent prices', about_li4:'Personal contact, no call centre', about_btn:'Call us for an appointment', sig_role:'Founder & Lead Technician · Aquatec LE', sv_eyebrow:'Our services', sv_title:'Discover our services', sv_intro:'From a quick service visit to a full installation — handled professionally and with real expertise.', sv1_title:'Maintenance', sv1_txt:'Regular servicing keeps your boiler running safely and efficiently.', sv2_title:'Repair', sv2_txt:'No heat or hot water? We diagnose and fix fast, often on the first visit.', sv3_title:'Inspection & Installation', sv3_txt:'Need a new boiler? Full installation from selection to commissioning. Quotes are always free.', sv_link:'More information', sp1_eyebrow:'New boiler installation', sp1_title:'Heating and domestic hot water', sp1_intro:'A quote for boiler replacement is completely free and non-binding.', sp1_li1:'Free and non-binding quote', sp1_li2:'Fast and qualified service', sp1_li3:'Use of quality brands and durable solutions', sp1_li4:'Professional installation by certified technician', sp1_btn:'Request a quote', sp2_eyebrow:'Emergency call-out', sp2_title:'Boiler broken on a Sunday?', sp2_intro:'Heating problems don\'t wait until Monday. Available 7 days a week for emergencies.', sp2_li1:'Available 7 days a week', sp2_li2:'Often available the next day', sp2_li3:'Fair price, even for emergency call-outs', sp2_li4:'Spare parts ordered and fitted quickly', sp2_btn:'Call us now', why_eyebrow:'Why Aquatec LE?', why_title:'What our customers say again and again.', why_intro:'Every point below comes directly from our reviews — again and again.', why_btn:'Book an appointment', p1_title:'Fast scheduling', p1_txt:'"Called Tuesday, came Thursday." No weeks of waiting.', p2_title:'Always on time', p2_txt:'Punctuality is the most praised quality in all our reviews.', p3_title:'Clear communication', p3_txt:'We explain what we do, why, and what it costs. No jargon.', p4_title:'Fair price, even on Sundays', p4_txt:'Competitive rates for quality work.', rv_eyebrow:'Google Reviews', rv_title:'What do our customers say?', wa_title:'Prefer to chat? Send us a message on WhatsApp', wa_sub:'+32 471 25 37 12 — Lotfi replies personally', wa_btn:'Send WhatsApp', ct_eyebrow:'Contact details', ct_title:'Get in touch with us', ct_intro:'The fastest way to reach us is by phone. You speak directly with Lotfi.', ct_lbl_phone:'Phone', ct_lbl_region:'Region', ct_val_region:'Antwerp & surroundings', ct_lbl_response:'Response time', ct_val_response:'Often available the next day', h_mon:'Monday', h_tue:'Tuesday', h_wed:'Wednesday', h_thu:'Thursday', h_fri:'Friday', h_sat:'Saturday', h_sun:'Sunday', h_emerg:'Emergency call-outs', form_title:'Send a request', f_fn:'First name', f_ln:'Last name', f_em:'Email', f_ph:'Phone', f_sv:'Service', f_sv_ph:'— What do you need? —', f_sv1:'Annual boiler maintenance', f_sv2:'Boiler repair', f_sv3:'New installation', f_sv4:'Safety inspection', f_sv5:'Central heating issue', f_sv6:'Emergency call-out', f_sv7:'Other / Not sure', f_dt:'Preferred date', f_tm:'Time preference', f_tm_ph:'— When? —', f_tm1:'Morning (08–12)', f_tm2:'Afternoon (12–17)', f_tm3:'Evening (17–19)', f_nt:'Notes (optional)', f_nt_ph:'Describe the issue or give useful details...', f_sub:'Send request →', f_valid:'Please fill in name, email, service and preferred date.', f_sending:'Sending...', f_err:'Something went wrong. Please call +32 471 25 37 12.', f_net:'Could not send. Please call +32 471 25 37 12.', toast_h:'Request sent ✓', toast_p:'We\'ll be in touch shortly to confirm your appointment.', ft_desc:'Your trusted boiler specialist in Antwerp. Fast, professional and always reliable.', ft_col1:'Services', ft_col2:'Navigation', ft_col3:'Contact', ft_sv1:'Boiler maintenance', ft_sv2:'Boiler repair', ft_sv3:'Boiler installation', ft_sv4:'Safety inspection', ft_sv5:'Emergency call-out', ft_n1:'About us', ft_n2:'Why Aquatec LE', ft_n3:'Reviews', ft_n4:'Contact & appointment', ft_avail:'Available 7 days a week', ft_copy:'All rights reserved.' } }; const FLAGS={nl:'🇳🇱',fr:'🇫🇷',en:'🇬🇧'}; const CODES={nl:'NL',fr:'FR',en:'EN'}; let currentLang='nl'; function setLang(lang){ currentLang=lang; const t=T[lang]; document.getElementById('langSwitcher').classList.remove('open'); document.getElementById('currentFlag').textContent=FLAGS[lang]; document.getElementById('currentLang').textContent=CODES[lang]; ['nl','fr','en'].forEach(l=>{ document.getElementById('opt-'+l).classList.toggle('active',l===lang); const mob=document.getElementById('mob-opt-'+l); if(mob) mob.classList.toggle('active',l===lang); }); document.documentElement.lang=lang; function el(id){return document.getElementById(id)} function setTxt(id,txt){const e=el(id);if(e)e.textContent=txt;} function setHtml(id,html){const e=el(id);if(e)e.innerHTML=html;} function setLabel(id,txt){setTxt(id,txt);} function setSelectOpts(id,opts){ const sel=el(id);if(!sel)return; sel.innerHTML=opts.map((o,i)=>``).join(''); } // nav setTxt('nav-about',t.nav_about); setTxt('nav-services',t.nav_services); setTxt('nav-why',t.nav_why); setTxt('nav-reviews',t.nav_reviews); setTxt('nav-contact',t.nav_contact); setTxt('mob-nav-about',t.nav_about); setTxt('mob-nav-services',t.nav_services); setTxt('mob-nav-why',t.nav_why); setTxt('mob-nav-reviews',t.nav_reviews); setTxt('mob-nav-contact',t.nav_contact); // hero setTxt('hero-eyebrow',t.hero_eyebrow); setHtml('hero-title',t.hero_title); setTxt('hero-sub',t.hero_sub); setTxt('hero-btn1-txt',t.hero_btn1); setTxt('hero-btn2-txt',t.hero_btn2); setTxt('stat1-l',t.stat1_l); setTxt('stat2-l',t.stat2_l); setTxt('stat3-l',t.stat3_l); setTxt('stat4-l',t.stat4_l); // trust setTxt('trust1-title',t.trust1_title); setTxt('trust1-txt',t.trust1_txt); setTxt('trust2-title',t.trust2_title); setTxt('trust2-txt',t.trust2_txt); setTxt('trust3-title',t.trust3_title); setTxt('trust3-txt',t.trust3_txt); setTxt('brands-label',t.brands_label); // about setTxt('about-eyebrow',t.about_eyebrow); setHtml('about-title',t.about_title); setHtml('about-p1',t.about_p1); setTxt('about-p2',t.about_p2); setTxt('about-li1',t.about_li1); setTxt('about-li2',t.about_li2); setTxt('about-li3',t.about_li3); setTxt('about-li4',t.about_li4); setTxt('about-btn-txt',t.about_btn); setTxt('sig-role',t.sig_role); // services setTxt('sv-eyebrow',t.sv_eyebrow); setHtml('sv-title',t.sv_title); setTxt('sv-intro',t.sv_intro); setTxt('sv1-title',t.sv1_title); setTxt('sv1-txt',t.sv1_txt); setTxt('sv1-link-txt',t.sv_link); setTxt('sv2-title',t.sv2_title); setTxt('sv2-txt',t.sv2_txt); setTxt('sv2-link-txt',t.sv_link); setTxt('sv3-title',t.sv3_title); setTxt('sv3-txt',t.sv3_txt); setTxt('sv3-link-txt',t.sv_link); // split 1 setTxt('sp1-eyebrow',t.sp1_eyebrow); setHtml('sp1-title',t.sp1_title); setTxt('sp1-intro',t.sp1_intro); setTxt('sp1-li1',t.sp1_li1); setTxt('sp1-li2',t.sp1_li2); setTxt('sp1-li3',t.sp1_li3); setTxt('sp1-li4',t.sp1_li4); setTxt('sp1-btn-txt',t.sp1_btn); // split 2 setTxt('sp2-eyebrow',t.sp2_eyebrow); setHtml('sp2-title',t.sp2_title); setTxt('sp2-intro',t.sp2_intro); setTxt('sp2-li1',t.sp2_li1); setTxt('sp2-li2',t.sp2_li2); setTxt('sp2-li3',t.sp2_li3); setTxt('sp2-li4',t.sp2_li4); setTxt('sp2-btn-txt',t.sp2_btn); // why setTxt('why-eyebrow',t.why_eyebrow); setHtml('why-title',t.why_title); setTxt('why-intro',t.why_intro); setTxt('why-btn-txt',t.why_btn); setTxt('p1-title',t.p1_title); setTxt('p1-txt',t.p1_txt); setTxt('p2-title',t.p2_title); setTxt('p2-txt',t.p2_txt); setTxt('p3-title',t.p3_title); setTxt('p3-txt',t.p3_txt); setTxt('p4-title',t.p4_title); setTxt('p4-txt',t.p4_txt); // reviews setTxt('rv-eyebrow',t.rv_eyebrow); setHtml('rv-title',t.rv_title); // wa strip setTxt('wa-strip-title',t.wa_title); setTxt('wa-strip-sub',t.wa_sub); setTxt('wa-strip-btn-txt',t.wa_btn); // contact setTxt('ct-eyebrow',t.ct_eyebrow); setHtml('ct-title',t.ct_title); setTxt('ct-intro',t.ct_intro); setTxt('ct-lbl-phone',t.ct_lbl_phone); setTxt('ct-lbl-region',t.ct_lbl_region); setTxt('ct-val-region',t.ct_val_region); setTxt('ct-lbl-response',t.ct_lbl_response); setTxt('ct-val-response',t.ct_val_response); setTxt('h-mon',t.h_mon); setTxt('h-tue',t.h_tue); setTxt('h-wed',t.h_wed); setTxt('h-thu',t.h_thu); setTxt('h-fri',t.h_fri); setTxt('h-sat',t.h_sat); setTxt('h-sun',t.h_sun); setTxt('h-emerg',t.h_emerg); // form setTxt('form-title',t.form_title); setLabel('lbl-fn',t.f_fn); setLabel('lbl-ln',t.f_ln); setLabel('lbl-em',t.f_em); setLabel('lbl-ph',t.f_ph); setLabel('lbl-sv',t.f_sv); setLabel('lbl-dt',t.f_dt); setLabel('lbl-tm',t.f_tm); setLabel('lbl-nt',t.f_nt); const fnI=el('fn');if(fnI)fnI.placeholder='Thomas'; setSelectOpts('sv',[t.f_sv_ph,t.f_sv1,t.f_sv2,t.f_sv3,t.f_sv4,t.f_sv5,t.f_sv6,t.f_sv7]); setSelectOpts('tm',[t.f_tm_ph,t.f_tm1,t.f_tm2,t.f_tm3]); const ntI=el('nt');if(ntI)ntI.placeholder=t.f_nt_ph; setTxt('f-sub-btn',t.f_sub); // toast setTxt('toast-h',t.toast_h); setTxt('toast-p',t.toast_p); // footer setTxt('ft-desc',t.ft_desc); setTxt('ft-col1',t.ft_col1); setTxt('ft-col2',t.ft_col2); setTxt('ft-col3',t.ft_col3); setTxt('ft-sv1',t.ft_sv1); setTxt('ft-sv2',t.ft_sv2); setTxt('ft-sv3',t.ft_sv3); setTxt('ft-sv4',t.ft_sv4); setTxt('ft-sv5',t.ft_sv5); setTxt('ft-n1',t.ft_n1); setTxt('ft-n2',t.ft_n2); setTxt('ft-n3',t.ft_n3); setTxt('ft-n4',t.ft_n4); setTxt('ft-avail',t.ft_avail); setTxt('ft-copy','© 2025 Aquatec LE. '+t.ft_copy); } /* ═══ FORM ═══ */ async function sendForm(){ const t=T[currentLang]; const fn=document.getElementById('fn').value.trim(); const ln=document.getElementById('ln').value.trim(); const em=document.getElementById('em').value.trim(); const ph=document.getElementById('ph').value.trim(); const sv=document.getElementById('sv').value; const dt=document.getElementById('dt').value; const tm=document.getElementById('tm').value; const nt=document.getElementById('nt').value.trim(); if(!fn||!em||!sv||!dt){alert(t.f_valid);return;} const btn=document.getElementById('f-sub-btn'); btn.textContent=t.f_sending;btn.disabled=true; try{ const res=await fetch('https://api.web3forms.com/submit',{ method:'POST',headers:{'Content-Type':'application/json','Accept':'application/json'}, body:JSON.stringify({ access_key:'c98a6c50-5562-42a2-9dc5-1df07cd0bab4', subject:'New appointment request — Aquatec LE', from_name:'Aquatec LE Website',to:'aquatecle@gmail.com',replyto:em, name:fn+' '+ln,email:em,phone:ph||'—',service:sv,preferred_date:dt,preferred_time:tm||'—',notes:nt||'—' }) }); const data=await res.json(); if(data.success){ document.getElementById('toast').classList.add('show'); setTimeout(()=>document.getElementById('toast').classList.remove('show'),6000); ['fn','ln','em','ph','nt'].forEach(id=>document.getElementById(id).value=''); ['sv','tm'].forEach(id=>document.getElementById(id).selectedIndex=0); document.getElementById('dt').value=''; } else { alert(t.f_err); } } catch(e){ alert(t.f_net); } btn.textContent=t.f_sub;btn.disabled=false; } function closeToast(){document.getElementById('toast').classList.remove('show')} document.getElementById('dt').min=new Date().toISOString().split('T')[0]; const obs=new IntersectionObserver(entries=>{entries.forEach(e=>{if(e.isIntersecting)e.target.classList.add('in')});},{threshold:.08,rootMargin:'0px 0px -30px 0px'}); document.querySelectorAll('.rv').forEach(el=>obs.observe(el)); /* Google Reviews side panel */ function toggleReviews(){ const panel=document.getElementById('grPanel'); const overlay=document.getElementById('grOverlay'); const trigger=document.getElementById('grTrigger'); const isOpen=panel.classList.contains('open'); if(isOpen){ panel.classList.remove('open');overlay.classList.remove('open'); trigger.classList.remove('panel-open');document.body.style.overflow=''; } else { panel.classList.add('open');overlay.classList.add('open'); trigger.classList.add('panel-open');document.body.style.overflow='hidden'; } } function closeReviews(){ document.getElementById('grPanel').classList.remove('open'); document.getElementById('grOverlay').classList.remove('open'); st.remove('panel-open'); document.body.style.overflow=''; } /* Service detail slides */ function openSlide(id){ document.querySelectorAll('.sv-slide').forEach(s=>s.classList.remove('open')); document.getElementById(id).classList.add('open'); document.getElementById('svOverlay').classList.add('open'); document.body.style.overflow='hidden'; } function closeSlide(){ document.querySelectorAll('.sv-slide').forEach(s=>s.classList.remove('open')); document.getElementById('svOverlay').classList.remove('open'); document.body.style.overflow=''; } document.addEventListener('keydown',e=>{if(e.key==='Escape'){closeSlide();closeReviews();}}); document.addEventListener('DOMContentLoaded',function(){ setLang('nl'); });