line-height: 1.05; } .headline-bold { font-family: 'Outfit', sans-serif; font-weight: 800; letter-spacing: -0.04em; line-height: 0.95; } .label-track { font-family: 'Outfit', sans-serif; font-size: 0.65rem; font-weight: 600; letter-spacing: 0.25em; text-transform: uppercase; } /* ─── GOLD LINE ACCENT ───────────────────────── */ .gold-line::before { content: ''; display: block; width: 2.5rem; height: 2px; background: #C09040; margin-bottom: 1rem; } /* ─── GLASS EFFECTS ──────────────────────────── */ .glass-cream { background: rgba(247, 244, 238, 0.85); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); } .glass-navy { background: rgba(13, 26, 58, 0.75); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); } /* ─── GOLD BORDER ────────────────────────────── */ .border-gold { border: 1px solid rgba(192, 144, 64, 0.25); } .border-gold-strong { border: 1px solid rgba(192, 144, 64, 0.55); } /* ─── HERO CLIP ──────────────────────────────── */ .hero-clip { clip-path: polygon(8% 0%, 100% 0%, 100% 100%, 0% 100%); } /* ─── SERVICE INDEX LIST ─────────────────────── */ .service-item { display: grid; grid-template-columns: 2.5rem 1fr; align-items: center; padding: 1.25rem 0; border-top: 1px solid rgba(192, 144, 64, 0.15); cursor: default; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); gap: 1rem; } @media (min-width: 640px) { .service-item { grid-template-columns: 3.5rem 1fr auto; padding: 1.75rem 0; gap: 1.5rem; } } .service-item:last-child { border-bottom: 1px solid rgba(192, 144, 64, 0.15); } .service-item:hover { padding-left: 1rem; border-top-color: rgba(192, 144, 64, 0.6); } .service-num { font-family: 'Cormorant Garamond', serif; font-size: 0.9rem; font-weight: 400; color: #C09040; opacity: 0.6; transition: opacity 0.3s; } .service-item:hover .service-num { opacity: 1; } .service-title { font-family: 'Outfit', sans-serif; font-size: clamp(0.95rem, 3.5vw, 1.2rem); font-weight: 500; color: #0D1A3A; transition: color 0.3s; } .service-desc { font-size: 0.82rem; color: #8a8a8a; margin-top: 0.35rem; max-height: 0; overflow: hidden; transition: max-height 0.5s ease, margin-top 0.3s; } .service-item:hover .service-desc { max-height: 3rem; } .service-arrow { width: 2rem; height: 2rem; border: 1px solid rgba(192, 144, 64, 0.3); border-radius: 50%; display: none; align-items: center; justify-content: center; flex-shrink: 0; opacity: 0; transition: all 0.3s; transform: rotate(-45deg); } @media (min-width: 640px) { .service-arrow { display: flex; } } .service-item:hover .service-arrow { opacity: 1; border-color: rgba(192, 144, 64, 0.8); } /* ─── MARQUEE ────────────────────────────────── */ @keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } } .marquee-track { animation: marquee 28s linear infinite; } .marquee-wrap:hover .marquee-track { animation-play-state: paused; } /* ─── INTERSECTION OBSERVER ANIMATIONS ───────── */ .reveal-up { opacity: 0; transform: translateY(48px); transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1), transform 0.9s cubic-bezier(0.22, 1, 0.36, 1); } .reveal-up.visible { opacity: 1; transform: translateY(0); } .reveal-left { opacity: 0; transform: translateX(-48px); transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.15s, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.15s; } .reveal-left.visible { opacity: 1; transform: translateX(0); } .reveal-right { opacity: 0; transform: translateX(48px); transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.15s, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.15s; } .reveal-right.visible { opacity: 1; transform: translateX(0); } /* ─── COUNTER ────────────────────────────────── */ .stat-num { font-family: 'Cormorant Garamond', serif; font-weight: 300; font-size: clamp(2.8rem, 10vw, 8.5rem); line-height: 1; color: #C09040; letter-spacing: -0.04em; } /* ─── PORTFOLIO HOVER ───────────────────────── */ .port-item { position: relative; overflow: hidden; } .port-item img { transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1); } .port-item:hover img { transform: scale(1.06); } .port-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(7,15,34,0.92) 0%, transparent 55%); opacity: 0; transition: opacity 0.5s ease; } .port-item:hover .port-overlay { opacity: 1; } .port-info { position: absolute; bottom: 0; left: 0; right: 0; padding: 1.75rem; transform: translateY(12px); transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1); opacity: 0; } .port-item:hover .port-info { transform: translateY(0); opacity: 1; } /* ─── CTA BUTTON ─────────────────────────────── */ .btn-gold { position: relative; overflow: hidden; background: #C09040; color: #070F22; font-weight: 700; font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; padding: 1rem 2.25rem; display: inline-flex; align-items: center; gap: 0.6rem; transition: all 0.4s ease; } .btn-gold::before { content: ''; position: absolute; inset: 0; background: #0D1A3A; transform: scaleX(0); transform-origin: right; transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .btn-gold:hover::before { transform: scaleX(1); transform-origin: left; } .btn-gold:hover { color: #C09040; } .btn-gold span { position: relative; z-index: 1; } .btn-gold svg { position: relative; z-index: 1; transition: transform 0.3s; } .btn-gold:hover svg { transform: translateX(4px); } .btn-outline-gold { background: transparent; color: #C09040; font-weight: 600; font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; padding: 0.95rem 2rem; display: inline-flex; align-items: center; gap: 0.6rem; border: 1px solid rgba(192, 144, 64, 0.5); transition: all 0.4s ease; } .btn-outline-gold:hover { background: rgba(192, 144, 64, 0.08); border-color: #C09040; } /* ─── NAV ────────────────────────────────────── */ nav { padding-top: env(safe-area-inset-top, 0px); } .nav-scrolled { background: rgba(7, 15, 34, 0.95) !important; backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); } /* ─── SWIPER CUSTOM ──────────────────────────── */ .swiper-pagination-bullet-active { background: #C09040 !important; } .swiper-button-next::after, .swiper-button-prev::after { color: #C09040 !important; font-size: 1.2rem !important; }
Mais de 15 anos transformando estruturas no Espírito Santo — com rigor técnico, tecnologia de ponta e compromisso absoluto com segurança.
"Cada diagnóstico, cada laudo, cada obra — feitos com a responsabilidade de quem sabe que estruturas sustentam vidas."
Da inspeção predial à construção completa — atuamos em todo o Espírito Santo com equipamentos de última geração e expertise comprovada em cada segmento.
Consulta GratuitaA J&A Engenharia é uma empresa capixaba com mais de 15 anos prestando serviços de alto nível em todo o estado do Espírito Santo. Somos reconhecidos por entregar não apenas obras, mas soluções que perduram.
Nossa equipe combina expertise técnica com tecnologias como drones Mavic Pro, câmeras termográficas e sistemas de acompanhamento remoto — garantindo transparência total durante todas as etapas.
Localizados no Jardim Camburi, com infraestrutura técnica para desenvolvimento de laudos e gestão de projetos de alta complexidade.
Solicite uma consulta técnica e receba um diagnóstico inicial sem compromisso. Atendemos Vitória, Serra, Vila Velha, Cariacica e toda a Grande Vitória.