/* Eco Heat Plumbing, Heating & Drainage - shared styles (used across silo pages) */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: 'Manrope', sans-serif; background: #070911; color: #a7adba; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { font-family: 'Bebas Neue', sans-serif; letter-spacing: 0.02em; }

body::before {
    content: ''; position: fixed; inset: 0; z-index: 9999; pointer-events: none; opacity: 0.018;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
}

.reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.7s cubic-bezier(0.16,1,0.3,1), transform 0.7s cubic-bezier(0.16,1,0.3,1); }
.reveal.active { opacity: 1; transform: translateY(0); }
@media (max-width: 767px) { .reveal { opacity: 1; transform: none; } }

.service-card { transition: transform 0.35s cubic-bezier(0.16,1,0.3,1), box-shadow 0.35s ease, border-color 0.3s ease; position: relative; overflow: hidden; }
.service-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: #5FA033; transform: scaleX(0); transform-origin: left; transition: transform 0.35s cubic-bezier(0.16,1,0.3,1); }
.service-card:hover { transform: translateY(-6px); box-shadow: 0 24px 48px rgba(0,0,0,0.28), 0 0 30px rgba(122,182,72,0.06); border-color: rgba(95,160,51,0.3); }
.service-card:hover::before { transform: scaleX(1); }

@keyframes pulse-ring { 0% { transform: scale(1); opacity: 1; } 100% { transform: scale(1.5); opacity: 0; } }
@keyframes pulse-cta { 0% { box-shadow: 0 0 0 0 rgba(95,160,51,0.5); } 70% { box-shadow: 0 0 0 10px rgba(95,160,51,0); } 100% { box-shadow: 0 0 0 0 rgba(95,160,51,0); } }
.cta-pulse { animation: pulse-cta 2.2s ease-out infinite; }

.hamburger span { display: block; width: 22px; height: 2px; background: #cbd0da; margin: 5px 0; transition: 0.3s; }
.hamburger.active span:nth-child(1) { transform: rotate(45deg) translate(4px,5px); }
.hamburger.active span:nth-child(2) { opacity: 0; }
.hamburger.active span:nth-child(3) { transform: rotate(-45deg) translate(4px,-5px); }

.area-pill { background: rgba(95,160,51,0.06); border: 1px solid rgba(95,160,51,0.14); transition: all 0.3s ease; }
.area-pill:hover { background: rgba(95,160,51,0.14); border-color: #5FA033; }

.cta-banner { background: linear-gradient(135deg, #5FA033, #4A8C2A); position: relative; overflow: hidden; }
.cta-banner::before { content: ''; position: absolute; top: -50%; right: -20%; width: 60%; height: 200%; background: radial-gradient(circle, rgba(255,255,255,0.10) 0%, transparent 60%); }
.glow-stat { background: linear-gradient(135deg, rgba(95,160,51,0.07), rgba(95,160,51,0.015)); border: 1px solid rgba(95,160,51,0.09); }
.green-line { width: 44px; height: 3px; background: #5FA033; border-radius: 2px; }
.prose-eco p { margin-bottom: 1.15rem; }
.prose-eco p:last-child { margin-bottom: 0; }

.crumb a { transition: color 0.2s ease; }
.crumb a:hover { color: #7AB648; }
