Mousse Polyuréthane Projetée
Isolant le plus performant du marché. Projetée in situ, elle gonfle et épouse chaque recoin, supprimant 100% des ponts thermiques.
Parfaite & Continue
Gain de place (R élevé)
tailwind.config = {
theme: {
extend: {
fontFamily: {
sans: [‘Inter’, ‘sans-serif’],
display: [‘Space Grotesk’, ‘sans-serif’],
serif: [‘Newsreader’, ‘serif’],
},
colors: {
brand: {
black: ‘#0f172a’,
dark: ‘#1e293b’,
gray: ‘#334155’,
light: ‘#f8fafc’,
paper: ‘#ffffff’,
gold: ‘#d97706’,
teal: ‘#0e7490’,
tealDark: ‘#155e75′,
}
}
}
}
}
body::before {
content: « »;
position: fixed;
top: 0; left: 0; width: 100%; height: 100%;
background-image: url(« data:image/svg+xml,%3Csvg viewBox=’0 0 200 200′ xmlns=’http://www.w3.org/2000/svg’%3E%3Cfilter id=’noiseFilter’%3E%3CfeTurbulence type=’fractalNoise’ baseFrequency=’0.8′ numOctaves=’3′ stitchTiles=’stitch’/%3E%3C/filter%3E%3Crect width=’100%25′ height=’100%25′ filter=’url(%23noiseFilter)’ opacity=’0.04’/%3E%3C/svg%3E »);
pointer-events: none; z-index: 50; mix-blend-mode: multiply;
}
#progress-bar {
position: fixed; top: 0; left: 0; height: 3px; background: #d97706; z-index: 100; width: 0%;
transition: width 0.1s ease-out;
}
.reveal {
opacity: 0; transform: translateY(30px);
transition: opacity 0.8s cubic-bezier(0.2, 0.8, 0.2, 1), transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.reveal.active { opacity: 1; transform: translateY(0); }
Nous ne sommes mariés à aucun fabricant. Nous sélectionnons la technique (mousse, panneaux, chape) qui correspond mathématiquement à vos contraintes.
L’énergie la moins chère est celle que vous ne consommez pas. Nous traitons les ponts thermiques à la source pour un R optimal.
Isolant le plus performant du marché. Projetée in situ, elle gonfle et épouse chaque recoin, supprimant 100% des ponts thermiques.
La solution traditionnelle maîtrisée. Laine de roche, polystyrène ou biosourcés. On sélectionne le matériau selon la résistance visée.
window.addEventListener(‘scroll’, () => {
const winScroll = document.body.scrollTop || document.documentElement.scrollTop;
const height = document.documentElement.scrollHeight – document.documentElement.clientHeight;
const scrolled = (winScroll / height) * 100;
document.getElementById(« progress-bar »).style.width = scrolled + « % »;
});
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) entry.target.classList.add(‘active’);
});
}, { threshold: 0.1 });
document.querySelectorAll(‘.reveal’).forEach((el) => observer.observe(el));