Home Dakkapel Dakopbouw Aanbouw & Uitbouw Erker Mantelzorgwoning Bed & Breakfast Nokverhoging Bijgebouwen Contact

Wat onze klanten zeggen

  • 4.9 sterrenGemiddelde beoordeling
  • 650+ klantenTevreden opdrachtgevers
  • 98% goedkeuringVergunningen verleend

4.9 / 5.0

650+ reviews
98% goedkeuringspercentage

4.9

Gemiddelde beoordeling

650+

Tevreden klanten

800+

Vergunningen verleend

98%

Goedkeuringspercentage

"Binnen twee dagen had ik een eerste ontwerp op tafel. De vergunning was binnen 7 weken rond — veel sneller dan verwacht. Professioneel, snel en heel prettig contact."

Mark de Vries Uitbouw, Amsterdam

"De vaste prijs gaf mij rust. Geen verrassingen, geen extra rekeningen. Technisch Bouwadvies regelde alles van A tot Z, inclusief het gesprek met de welstandscommissie."

Sophie Jansen Erker, Utrecht

"Als aannemer werk ik regelmatig samen met Technisch Bouwadvies. Hun tekeningen zijn altijd nauwkeurig en compleet. Ik hoef nooit te wachten op aanvullingen of correcties."

Peter Bakker Aannemer, Rotterdam

"Duidelijke communicatie, vaste prijzen en geen verrassingen. Ik zou Technisch Bouwadvies aan iedereen aanbevelen die een dakkapel of uitbouw wil plaatsen."

De Jong Dakkapel, Utrecht

"Dankzij hun ABW-certificering wist ik dat alles volgens de regels zou verlopen. Ze hebben mij van A tot Z begeleid bij mijn dakkapel."

Mevrouw Visser Dakkapel, Rotterdam

"Een snelle en professionele service. De bouwtekening was binnen twee dagen klaar en de omgevingsvergunning werd zonder problemen verleend."

Jansen & Co. Uitbouw, Amersfoort

Deel uw ervaring

Bent u tevreden over onze dienstverlading? Wij horen graag uw mening.

Neem contact op
Offerte aanvragen
menuToggle.addEventListener('click', () => { const isOpen = mobileNav.classList.toggle('open'); menuToggle.classList.toggle('active'); menuToggle.setAttribute('aria-expanded', isOpen); mobileNav.setAttribute('aria-hidden', !isOpen); if (typeof lenis !== 'undefined') { isOpen ? lenis.stop() : lenis.start(); } }); mobileNav.querySelectorAll('a').forEach(link => { link.addEventListener('click', () => { mobileNav.classList.remove('open'); menuToggle.classList.remove('active'); menuToggle.setAttribute('aria-expanded', false); mobileNav.setAttribute('aria-hidden', true); if (typeof lenis !== 'undefined') lenis.start(); }); }); document.querySelector('.newsletter-form').addEventListener('submit', (e) => { e.preventDefault(); showToast('Bedankt voor uw inschrijving!'); e.target.reset(); }); (function() { const items = document.querySelectorAll('.dropdown-left .dropdown-item'); const panels = document.querySelectorAll('.dropdown-right'); if (!items.length) return; items.forEach(item => { item.addEventListener('mouseenter', () => { items.forEach(i => i.classList.remove('hovered')); item.classList.add('hovered'); const subId = item.getAttribute('data-sub'); panels.forEach(p => p.classList.remove('visible')); if (subId) { const panel = document.getElementById('sub-' + subId); if (panel) panel.classList.add('visible'); } }); }); const container = document.getElementById('diensten-dropdown'); if (container) { container.addEventListener('mouseleave', () => { items.forEach(i => i.classList.remove('hovered')); const first = items[0]; if (first) { first.classList.add('hovered'); const subId = first.getAttribute('data-sub'); panels.forEach(p => p.classList.remove('visible')); if (subId) { const panel = document.getElementById('sub-' + subId); if (panel) panel.classList.add('visible'); } } }); } })(); // Mobile Sticky CTA const stickyCta = document.getElementById('mobile-sticky-cta'); if (stickyCta) { window.addEventListener('scroll', () => { if (window.innerWidth <= 768) { stickyCta.style.display = window.scrollY > 600 ? 'flex' : 'none'; } }); } /* === NAV FIX === */ .footer-logo-link { display: block; text-decoration: none; } .footer-logo-img { height: 200px; width: auto; display: block; filter: brightness(0) invert(1); transition: transform 0.3s ease; } .footer-logo-link:hover .footer-logo-img { transform: scale(1.05); } nav.scrolled { background: rgba(250, 250, 250, 0.92); backdrop-filter: blur(24px) saturate(180%); -webkit-backdrop-filter: blur(24px) saturate(180%); padding: 1rem 4vw; box-shadow: 0 1px 30px rgba(0, 0, 0, 0.04); } .logo { position: relative; display: flex; align-items: center; text-decoration: none; z-index: 101; } .nav-logo-img { height: 100px !important; width: auto !important; display: block; transition: transform 0.3s ease; } .logo:hover .nav-logo-img { transform: scale(1.05); } .logo-text { font-size: 1.75rem; font-weight: 800; letter-spacing: -0.02em; color: var(--text); white-space: nowrap; } .logo-gold { color: var(--accent); } .footer-logo-text { font-size: 1.75rem; font-weight: 800; letter-spacing: -0.02em; color: var(--white); display: block; } .footer-logo-text .logo-gold { color: var(--accent); } .logo span { font-weight: 400; color: var(--text-light); font-size: 0.9375rem; transition: color 0.4s ease; } nav.scrolled .logo { font-size: 1.0625rem; } .nav-links { display: flex; gap: 3rem; list-style: none; align-items: center; height: 100%; } .nav-links>li { position: relative; display: flex; align-items: center; height: 100%; } .nav-links a { text-decoration: none; color: var(--text); font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.02em; position: relative; padding: 0.25rem 0; transition: color 0.3s ease; cursor: pointer; white-space: nowrap; } .nav-links a::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 2px; background: var(--accent); transition: width 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .nav-links a:hover { color: var(--accent); } .nav-links a:hover::after { width: 100%; } .nav-links a.active { color: var(--accent); border-bottom: 2px solid var(--accent); padding-bottom: 0.25rem; } .nav-links a.active::after { width: 0; } .dropdown-left .dropdown-item { display: block; padding: 0.9rem 1.5rem; font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.02em; color: var(--text); text-decoration: none; transition: all 0.22s ease; position: relative; border: none; border-left: 2px solid transparent; background: transparent; text-align: left; cursor: pointer; font-family: inherit; line-height: 1.4; white-space: nowrap; } .dropdown-left .dropdown-item:hover, .dropdown-left .dropdown-item.hovered { color: var(--accent); background: var(--beige-subtle); border-left-color: var(--accent); } .dropdown-left .dropdown-item::after { display: none; } .nav-dropdown:hover .dropdown-right.visible, .nav-links > li:hover .dropdown-right.visible { opacity: 1; transform: translateX(0); pointer-events: all; position: relative; left: auto; right: auto; top: auto; bottom: auto; } .dropdown-right .dropdown-list a { display: block; padding: 0.8rem 1rem; font-size: 0.78rem; font-weight: 500; letter-spacing: 0.02em; color: var(--text); text-decoration: none; transition: all 0.22s ease; line-height: 1.4; border-bottom: 1px solid rgba(0, 0, 0, 0.04); border-radius: 0; background: transparent; } .dropdown-right .dropdown-list a:last-child { border-bottom: none; } .dropdown-right .dropdown-list a:hover { color: var(--accent); background: var(--beige-subtle); } .dropdown-right .dropdown-list a .list-item-title { display: block; font-weight: 600; font-size: 0.8rem; margin-bottom: 0.15rem; letter-spacing: 0.01em; color: var(--text); transition: color 0.22s ease; } .dropdown-right .dropdown-list a:hover .list-item-title { color: var(--accent); } .dropdown-right .dropdown-list a .list-item-desc { display: block; font-size: 0.7rem; color: var(--text-light); font-weight: 400; line-height: 1.5; transition: color 0.22s ease; } .dropdown-right .dropdown-list a:hover .list-item-desc { color: var(--text); } .dropdown-right .dropdown-list a::after { display: none; } .dropdown-right .dropdown-info p { font-size: 0.875rem; color: var(--text-light); line-height: 1.75; margin-bottom: 1.5rem; max-width: 380px; } .dropdown-right .dropdown-info .dropdown-cta-btn { display: inline-flex; align-items: center; padding: 0.8rem 1.75rem; background: var(--accent); color: var(--white); text-decoration: none; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); width: fit-content; border: none; cursor: pointer; font-family: inherit; } .dropdown-right .dropdown-info .dropdown-cta-btn:hover { background: var(--text); color: var(--white); transform: translateY(-2px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); } .dropdown-right .dropdown-info .dropdown-cta-btn::after { display: none; } .nav-cta:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(196, 163, 90, 0.35); } .menu-toggle span { display: block; width: 24px; height: 1.5px; background: var(--text); transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); transform-origin: center; } .nav-phone { display: none; align-items: center; text-decoration: none; color: var(--accent); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.02em; white-space: nowrap; } .nav-phone:hover { color: var(--accent-light); } .menu-toggle.active span:nth-child(1) { transform: translateY(3.75px) rotate(45deg); } .menu-toggle.active span:nth-child(2) { transform: translateY(-3.75px) rotate(-45deg); } .mobile-nav.active { opacity: 1; pointer-events: all; } .mobile-nav a, .mobile-nav .mobile-accordion-trigger { font-size: 1.25rem; font-weight: 600; text-decoration: none; color: var(--text); letter-spacing: -0.02em; opacity: 0; transform: translateY(20px); transition: opacity 0.4s ease, transform 0.4s ease, color 0.3s ease, background 0.3s ease; padding: 0.85rem 0; display: block; width: 100%; border-bottom: 1px solid var(--gray); background: none; border-left: none; border-right: none; border-top: none; font-family: inherit; text-align: left; cursor: pointer; } .mobile-nav.active a, .mobile-nav.active .mobile-accordion-trigger { opacity: 1; transform: translateY(0); } .mobile-nav a:hover, .mobile-nav .mobile-accordion-trigger:hover { color: var(--accent); } .mobile-nav a:nth-child(1), .mobile-nav .mobile-accordion-trigger:nth-of-type(1) { transition-delay: 0.05s; } .mobile-nav a:nth-child(2), .mobile-nav .mobile-accordion-trigger:nth-of-type(2) { transition-delay: 0.1s; } .mobile-nav a:nth-child(3), .mobile-nav .mobile-accordion-trigger:nth-of-type(3) { transition-delay: 0.15s; } .mobile-nav a:nth-child(4) { transition-delay: 0.2s; } .mobile-nav a:nth-child(5) { transition-delay: 0.25s; } .mobile-nav a:nth-child(6) { transition-delay: 0.3s; } .mobile-nav a:nth-child(7) { transition-delay: 0.35s; } .mobile-nav a:nth-child(8) { transition-delay: 0.4s; } .mobile-nav a:nth-child(9) { transition-delay: 0.45s; } .mobile-nav a:nth-child(10) { transition-delay: 0.5s; } .mobile-nav a:nth-child(11) { transition-delay: 0.55s; } .mobile-nav a:nth-child(12) { transition-delay: 0.6s; } .mobile-nav a:nth-child(13) { transition-delay: 0.65s; } .logo-ticker-wrapper { position: relative; overflow: hidden; width: 100%; mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%); -webkit-mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%); } .logo-ticker-track { display: flex; align-items: center; gap: 4rem; width: max-content; will-change: transform; } .logo-item { flex-shrink: 0; cursor: pointer; outline: none; transition: transform 0.3s ease; } .logo-item:hover { transform: translateY(-2px); } .logo-item img { height: 80px; width: auto; object-fit: contain; filter: grayscale(1) brightness(1.2) contrast(0.8); transition: all 0.4s ease; display: block; } .logo-item:hover img { filter: grayscale(0) brightness(1) contrast(1) drop-shadow(0 0 15px var(--accent)); } .calc-nav { display: flex; justify-content: space-between; align-items: center; margin-top: 2rem; padding-top: 2rem; border-top: 1px solid rgba(255, 255, 255, 0.08); } .footer-nav h5 { font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.2em; color: var(--accent); margin-bottom: 1.5rem; font-weight: 600; } .footer-nav ul { list-style: none; display: flex; flex-direction: column; gap: 0.875rem; } .footer-nav a { color: rgba(255, 255, 255, 0.5); text-decoration: none; font-size: 0.875rem; transition: all 0.3s ease; font-weight: 500; display: inline-block; } .footer-nav a:hover { color: var(--white); transform: translateX(4px); }