Terraplanagem e Solo
- Terraplanagem e nivelamento de terrenos
- Corte e aterro
- Regularização e preparação de terrenos
- Compactação de solo
- Escavação de terrenos
- Abertura e fechamento de valas
- Remoção e movimentação de terra
- Transporte de terra e materiais
{
if (window.scrollY > 50) {
header.classList.add("scrolled");
} else {
header.classList.remove("scrolled");
}
});
/* =======================================================
MENU MOBILE
======================================================== */
const menuBtn = document.getElementById("menuBtn");
const navLinks = document.getElementById("navLinks");
menuBtn.addEventListener("click", () => {
navLinks.classList.toggle("active");
menuBtn.textContent =
navLinks.classList.contains("active")
? "×"
: "☰";
});
document.querySelectorAll(".nav-links a").forEach(link => {
link.addEventListener("click", () => {
navLinks.classList.remove("active");
menuBtn.textContent = "☰";
});
});
/* =======================================================
SCROLL REVEAL
======================================================== */
const observer = new IntersectionObserver(
(entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add("visible");
observer.unobserve(entry.target);
}
});
},
{
threshold: 0.12
}
);
document
.querySelectorAll(
".reveal, .reveal-left, .reveal-right, .image-reveal"
)
.forEach(element => {
observer.observe(element);
});
/* =======================================================
PARALLAX SUAVE DO HERO
======================================================== */
const heroBg = document.querySelector(".hero-bg");
window.addEventListener("scroll", () => {
const scrollY = window.scrollY;
if (scrollY < window.innerHeight) {
heroBg.style.transform =
`translateY(${scrollY * 0.12}px) scale(1.02)`;
}
});