Marketing for Contractors | Contractor Digital Marketing Services Vancouver WA :root { --primary: #F4B6C2; --primary-light: #F8CDD5; --primary-dark: #E89BAA; --accent: #2B2B2B; --accent-hover: #444444; --cream: #F5F5F5; --cream-dark: #EBEBEB; --text-dark: #2B2B2B; --text-muted: #666666; --white: #FFFFFF; --shadow-sm: 0 2px 8px rgba(43, 43, 43, 0.06); --shadow-md: 0 8px 24px rgba(43, 43, 43, 0.10); --shadow-lg: 0 16px 48px rgba(43, 43, 43, 0.14); --radius-sm: 8px; --radius-md: 16px; --radius-lg: 24px; --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } body { font-family: 'Outfit', sans-serif; background: var(--cream); color: var(--text-dark); line-height: 1.7; overflow-x: hidden; } h1, h2, h3, h4 { font-family: 'Fraunces', serif; line-height: 1.2; } a { text-decoration: none; color: inherit; transition: var(--transition); } img { max-width: 100%; height: auto; } .container { max-width: 1280px; margin: 0 auto; padding: 0 24px; } /* Navigation */ .nav { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; background: rgba(253, 248, 243, 0.95); backdrop-filter: blur(20px); border-bottom: 1px solid rgba(27, 77, 62, 0.08); transition: var(--transition); } .nav.scrolled { box-shadow: var(--shadow-sm); } .nav-inner { display: flex; align-items: center; justify-content: space-between; padding: 16px 24px; max-width: 1280px; margin: 0 auto; } .logo { display: flex; align-items: center; gap: 12px; font-family: 'Fraunces', serif; font-size: 1.5rem; font-weight: 700; color: var(--primary); } .logo-icon { width: 48px; height: 48px; background: var(--primary); border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; font-size: 1.5rem; } .nav-links { display: flex; align-items: center; gap: 8px; list-style: none; } .nav-links a { padding: 10px 16px; border-radius: var(--radius-sm); font-weight: 500; font-size: 0.95rem; color: var(--text-dark); } .nav-links a:hover { background: var(--primary); color: var(--white); } .nav-links .dropdown { position: relative; } .nav-links .dropdown-content { position: absolute; top: 100%; left: 0; background: var(--white); border-radius: var(--radius-md); box-shadow: var(--shadow-lg); min-width: 260px; opacity: 0; visibility: hidden; transform: translateY(10px); transition: var(--transition); padding: 8px; } .nav-links .dropdown:hover .dropdown-content { opacity: 1; visibility: visible; transform: translateY(0); } .dropdown-content a { display: block; padding: 12px 16px; border-radius: var(--radius-sm); } .dropdown-content a:hover { background: var(--cream); color: var(--primary); } .nav-cta { background: var(--primary) !important; color: var(--accent) !important; font-weight: 600 !important; } .nav-cta:hover { background: var(--primary-dark) !important; transform: translateY(-2px); } .mobile-toggle { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 8px; } .mobile-toggle span { width: 24px; height: 2px; background: var(--primary); transition: var(--transition); } /* Hero Section */ .hero { min-height: 100vh; display: flex; align-items: center; padding: 120px 0 80px; position: relative; overflow: hidden; background: linear-gradient(135deg, var(--cream) 0%, var(--white) 50%, var(--cream) 100%); } .hero::before { content: ''; position: absolute; top: -50%; right: -20%; width: 80%; height: 150%; background: radial-gradient(ellipse, rgba(244, 182, 194, 0.15) 0%, transparent 70%); pointer-events: none; } .hero::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 200px; background: linear-gradient(to top, var(--cream), transparent); pointer-events: none; } .hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; } .hero-content { position: relative; z-index: 2; } .hero-badge { display: inline-flex; align-items: center; gap: 8px; background: var(--accent); color: var(--white); padding: 10px 20px; border-radius: 50px; font-size: 0.875rem; font-weight: 600; margin-bottom: 24px; animation: fadeInUp 0.6s ease; text-transform: uppercase; letter-spacing: 1px; } .hero-badge::before { content: 'πŸ”§'; } .hero h1 { font-size: clamp(2.5rem, 5vw, 3.75rem); color: var(--accent); margin-bottom: 24px; animation: fadeInUp 0.6s ease 0.1s both; } .hero h1 span { color: var(--primary-dark); position: relative; } .hero h1 span::after { content: ''; position: absolute; bottom: 4px; left: 0; right: 0; height: 12px; background: var(--primary-light); z-index: -1; transform: skewX(-3deg); } .hero-text { font-size: 1.2rem; color: var(--text-muted); margin-bottom: 32px; max-width: 540px; animation: fadeInUp 0.6s ease 0.2s both; line-height: 1.8; } .hero-buttons { display: flex; gap: 16px; flex-wrap: wrap; animation: fadeInUp 0.6s ease 0.3s both; } .btn { display: inline-flex; align-items: center; gap: 8px; padding: 16px 32px; border-radius: var(--radius-sm); font-weight: 600; font-size: 1rem; cursor: pointer; border: none; transition: var(--transition); } .btn-primary { background: var(--accent); color: var(--white); box-shadow: 0 4px 16px rgba(43, 43, 43, 0.2); } .btn-primary:hover { background: var(--accent-hover); transform: translateY(-3px); box-shadow: 0 8px 24px rgba(43, 43, 43, 0.25); } .btn-secondary { background: var(--white); color: var(--primary-dark); border: 2px solid var(--primary); } .btn-secondary:hover { background: var(--primary); color: var(--white); } .hero-visual { position: relative; animation: fadeInRight 0.8s ease 0.4s both; } .hero-image-wrapper { position: relative; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-lg); } .hero-image-placeholder { width: 100%; aspect-ratio: 4/3; background: linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%); display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--white); font-size: 1.25rem; font-weight: 500; position: relative; overflow: hidden; } .hero-image-placeholder::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); } .hero-image-placeholder span { font-size: 5rem; margin-bottom: 16px; position: relative; z-index: 2; } .hero-image-placeholder p { position: relative; z-index: 2; text-align: center; padding: 0 24px; } .hero-trust { display: flex; align-items: center; gap: 32px; margin-top: 48px; padding-top: 32px; border-top: 1px solid rgba(43, 43, 43, 0.1); animation: fadeInUp 0.6s ease 0.5s both; } .trust-item { display: flex; align-items: center; gap: 12px; } .trust-icon { width: 48px; height: 48px; background: var(--primary-light); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.25rem; } .trust-text { font-size: 0.9rem; } .trust-text strong { display: block; font-size: 1.25rem; color: var(--accent); } /* Breadcrumbs */ .breadcrumbs { padding: 24px 0; background: var(--white); border-bottom: 1px solid var(--cream-dark); } .breadcrumbs-list { display: flex; align-items: center; gap: 8px; list-style: none; font-size: 0.875rem; } .breadcrumbs-list a { color: var(--text-muted); } .breadcrumbs-list a:hover { color: var(--primary-dark); } .breadcrumbs-list span { color: var(--text-muted); } .breadcrumbs-list li:last-child { color: var(--accent); font-weight: 500; } /* Industry Cards Section */ .industries-section { padding: 100px 0; background: var(--white); } .section-header { text-align: center; margin-bottom: 64px; } .section-tag { display: inline-block; background: rgba(244, 182, 194, 0.2); color: var(--primary-dark); padding: 8px 20px; border-radius: 50px; font-size: 0.875rem; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 16px; } .section-header h2 { font-size: clamp(2rem, 4vw, 3rem); color: var(--accent); margin-bottom: 16px; } .section-header p { font-size: 1.15rem; color: var(--text-muted); max-width: 700px; margin: 0 auto; } .industries-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; } .industry-card { background: var(--cream); border-radius: var(--radius-lg); overflow: hidden; transition: var(--transition); position: relative; } .industry-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-lg); } .industry-card-image { aspect-ratio: 16/10; background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--white); font-size: 4rem; position: relative; overflow: hidden; } .industry-card-image::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(to top, rgba(0,0,0,0.2), transparent); } .industry-card-content { padding: 28px; } .industry-card-content h3 { font-size: 1.35rem; color: var(--accent); margin-bottom: 12px; } .industry-card-content p { color: var(--text-muted); margin-bottom: 16px; font-size: 0.95rem; line-height: 1.7; } .industry-card-keywords { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; } .keyword-tag { background: var(--primary-light); color: var(--accent); padding: 4px 12px; border-radius: 50px; font-size: 0.75rem; font-weight: 500; } .industry-card-link { display: inline-flex; align-items: center; gap: 8px; color: var(--primary-dark); font-weight: 600; } .industry-card-link:hover { gap: 12px; } /* Why Contractors Section */ .why-contractors { padding: 100px 0; background: var(--cream); } .why-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; } .why-content h2 { font-size: clamp(2rem, 4vw, 2.75rem); color: var(--accent); margin-bottom: 24px; } .why-content > p { font-size: 1.1rem; color: var(--text-muted); margin-bottom: 40px; line-height: 1.8; } .why-list { display: flex; flex-direction: column; gap: 24px; } .why-item { display: flex; gap: 20px; align-items: flex-start; } .why-icon { width: 56px; height: 56px; background: var(--primary); border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; font-size: 1.5rem; flex-shrink: 0; } .why-text h4 { font-family: 'Outfit', sans-serif; font-size: 1.15rem; font-weight: 600; color: var(--accent); margin-bottom: 4px; } .why-text p { color: var(--text-muted); font-size: 0.95rem; } .why-image { position: relative; } .why-image-wrapper { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-lg); } .why-placeholder { width: 100%; aspect-ratio: 4/5; background: linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%); display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--white); font-size: 1.25rem; text-align: center; padding: 40px; position: relative; } .why-placeholder::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); } .why-placeholder span { font-size: 5rem; margin-bottom: 24px; position: relative; z-index: 2; } .why-placeholder p { position: relative; z-index: 2; } /* Services Overview */ .services-overview { padding: 100px 0; background: var(--accent); color: var(--white); position: relative; overflow: hidden; } .services-overview::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); } .services-overview .section-header h2 { color: var(--white); } .services-overview .section-header p { color: rgba(255, 255, 255, 0.8); } .services-overview .section-tag { background: rgba(255, 255, 255, 0.15); color: var(--white); } .services-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; position: relative; z-index: 2; } .service-item { background: rgba(255, 255, 255, 0.08); border-radius: var(--radius-md); padding: 32px 24px; text-align: center; transition: var(--transition); border: 1px solid rgba(255, 255, 255, 0.1); } .service-item:hover { background: rgba(255, 255, 255, 0.12); transform: translateY(-4px); border-color: var(--primary); } .service-item-icon { width: 64px; height: 64px; background: var(--primary); border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; font-size: 2rem; margin: 0 auto 20px; } .service-item h4 { font-family: 'Outfit', sans-serif; font-size: 1.1rem; font-weight: 600; margin-bottom: 12px; } .service-item p { font-size: 0.9rem; opacity: 0.8; line-height: 1.6; margin-bottom: 16px; } .service-item a { color: var(--primary); font-weight: 600; font-size: 0.9rem; } .service-item a:hover { color: var(--primary-light); } /* Pricing Section */ .pricing-section { padding: 100px 0; background: var(--white); } .pricing-intro { text-align: center; max-width: 800px; margin: 0 auto 64px; } .pricing-intro h2 { font-size: clamp(2rem, 4vw, 2.75rem); color: var(--accent); margin-bottom: 20px; } .pricing-intro p { font-size: 1.1rem; color: var(--text-muted); line-height: 1.8; } .pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; } .pricing-card { background: var(--cream); border-radius: var(--radius-lg); padding: 40px; position: relative; transition: var(--transition); border: 2px solid transparent; } .pricing-card:hover { border-color: var(--primary); transform: translateY(-4px); } .pricing-card.featured { background: var(--accent); color: var(--white); } .pricing-card.featured .pricing-badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--primary); color: var(--accent); padding: 6px 20px; border-radius: 50px; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; } .pricing-card h3 { font-size: 1.5rem; margin-bottom: 8px; } .pricing-card.featured h3 { color: var(--white); } .pricing-card .price { font-family: 'Fraunces', serif; font-size: 2.5rem; font-weight: 700; margin-bottom: 8px; } .pricing-card.featured .price { color: var(--primary); } .pricing-card .price-note { font-size: 0.875rem; color: var(--text-muted); margin-bottom: 24px; } .pricing-card.featured .price-note { color: rgba(255, 255, 255, 0.7); } .pricing-features { list-style: none; margin-bottom: 32px; } .pricing-features li { padding: 12px 0; border-bottom: 1px solid rgba(43, 43, 43, 0.1); display: flex; align-items: center; gap: 12px; font-size: 0.95rem; } .pricing-card.featured .pricing-features li { border-color: rgba(255, 255, 255, 0.1); } .pricing-features li::before { content: 'βœ“'; color: var(--primary-dark); font-weight: 700; } .pricing-card.featured .pricing-features li::before { color: var(--primary); } .pricing-card .btn { width: 100%; justify-content: center; } .pricing-card.featured .btn-primary { background: var(--primary); color: var(--accent); } .pricing-card.featured .btn-primary:hover { background: var(--primary-light); } /* Process Section */ .process-section { padding: 100px 0; background: var(--cream); } .process-timeline { position: relative; max-width: 900px; margin: 0 auto; } .process-timeline::before { content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; background: var(--primary); transform: translateX(-50%); } .process-step { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; margin-bottom: 60px; position: relative; } .process-step:nth-child(even) .process-step-content { order: 2; text-align: left; } .process-step:nth-child(even) .process-step-visual { order: 1; } .process-step-content { text-align: right; } .process-step-number { width: 56px; height: 56px; background: var(--primary); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: 'Fraunces', serif; font-size: 1.5rem; font-weight: 700; color: var(--accent); position: absolute; left: 50%; transform: translateX(-50%); z-index: 2; box-shadow: var(--shadow-md); } .process-step-content h3 { font-size: 1.5rem; color: var(--accent); margin-bottom: 12px; } .process-step-content p { color: var(--text-muted); line-height: 1.7; } .process-step-visual { display: flex; align-items: center; } .process-icon-large { width: 100%; aspect-ratio: 16/10; background: var(--white); border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; font-size: 4rem; box-shadow: var(--shadow-sm); } /* FAQ Section */ .faq-section { padding: 100px 0; background: var(--white); } .faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; } .faq-content h2 { font-size: clamp(2rem, 4vw, 2.75rem); color: var(--accent); margin-bottom: 20px; } .faq-content > p { color: var(--text-muted); font-size: 1.1rem; margin-bottom: 32px; line-height: 1.8; } .faq-cta { background: var(--cream); border-radius: var(--radius-md); padding: 32px; } .faq-cta h4 { font-family: 'Outfit', sans-serif; font-size: 1.25rem; font-weight: 600; color: var(--accent); margin-bottom: 12px; } .faq-cta p { color: var(--text-muted); margin-bottom: 20px; } .faq-list { display: flex; flex-direction: column; gap: 16px; } .faq-item { background: var(--cream); border-radius: var(--radius-md); overflow: hidden; transition: var(--transition); } .faq-item.active { box-shadow: var(--shadow-md); } .faq-question { padding: 24px; display: flex; justify-content: space-between; align-items: center; cursor: pointer; font-weight: 600; color: var(--accent); } .faq-question:hover { color: var(--primary-dark); } .faq-toggle { width: 32px; height: 32px; background: var(--white); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.25rem; transition: var(--transition); } .faq-item.active .faq-toggle { background: var(--primary); transform: rotate(45deg); } .faq-answer { padding: 0 24px; max-height: 0; overflow: hidden; transition: all 0.3s ease; } .faq-item.active .faq-answer { padding: 0 24px 24px; max-height: 500px; } .faq-answer p { color: var(--text-muted); line-height: 1.7; } /* Map Section */ .map-section { padding: 100px 0; background: var(--cream); } .map-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; } .map-content h2 { font-size: clamp(2rem, 4vw, 2.75rem); color: var(--accent); margin-bottom: 24px; } .map-content > p { font-size: 1.1rem; color: var(--text-muted); margin-bottom: 32px; line-height: 1.8; } .contact-info { display: flex; flex-direction: column; gap: 20px; } .contact-item { display: flex; align-items: center; gap: 16px; } .contact-icon { width: 48px; height: 48px; background: var(--white); border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; font-size: 1.25rem; } .contact-text h5 { font-family: 'Outfit', sans-serif; font-weight: 600; color: var(--accent); font-size: 0.875rem; margin-bottom: 2px; } .contact-text p, .contact-text a { color: var(--text-muted); font-size: 1rem; } .contact-text a:hover { color: var(--primary-dark); } .map-wrapper { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-lg); height: 450px; } .map-wrapper iframe { width: 100%; height: 100%; border: 0; } /* CTA Section */ .cta { padding: 100px 0; background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); text-align: center; position: relative; overflow: hidden; } .cta::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.08'%3E%3Ccircle cx='30' cy='30' r='4'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); } .cta-content { position: relative; z-index: 2; max-width: 800px; margin: 0 auto; } .cta h2 { font-size: clamp(2rem, 4vw, 3rem); color: var(--accent); margin-bottom: 16px; } .cta p { font-size: 1.2rem; color: var(--text-dark); margin-bottom: 40px; opacity: 0.9; } .cta .btn-primary { background: var(--accent); font-size: 1.1rem; padding: 20px 40px; } .cta .btn-secondary { background: transparent; color: var(--accent); border-color: var(--accent); } .cta .btn-secondary:hover { background: var(--accent); color: var(--white); } /* Related Services */ .related-services { padding: 80px 0; background: var(--white); } .related-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; } .related-card { background: var(--cream); border-radius: var(--radius-md); padding: 32px 24px; text-align: center; transition: var(--transition); border: 2px solid transparent; } .related-card:hover { border-color: var(--primary); transform: translateY(-4px); } .related-icon { width: 64px; height: 64px; background: var(--primary); border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; font-size: 2rem; margin: 0 auto 16px; } .related-card h4 { font-family: 'Outfit', sans-serif; font-size: 1.1rem; font-weight: 600; color: var(--accent); margin-bottom: 8px; } .related-card p { font-size: 0.875rem; color: var(--text-muted); margin-bottom: 16px; } .related-card a { color: var(--primary-dark); font-weight: 600; font-size: 0.9rem; } /* Footer */ .footer { background: var(--accent); color: var(--white); padding: 80px 0 32px; } .footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px; margin-bottom: 48px; } .footer-brand { max-width: 320px; } .footer-logo { display: flex; align-items: center; gap: 12px; font-family: 'Fraunces', serif; font-size: 1.5rem; font-weight: 700; margin-bottom: 20px; } .footer-logo .logo-icon { background: var(--primary); } .footer-brand p { color: rgba(255, 255, 255, 0.7); margin-bottom: 24px; line-height: 1.8; } .footer-social { display: flex; gap: 12px; } .social-link { width: 44px; height: 44px; background: rgba(255, 255, 255, 0.1); border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; transition: var(--transition); } .social-link:hover { background: var(--primary); } .footer-col h4 { font-family: 'Outfit', sans-serif; font-weight: 600; font-size: 1.1rem; margin-bottom: 24px; } .footer-col ul { list-style: none; } .footer-col li { margin-bottom: 12px; } .footer-col a { color: rgba(255, 255, 255, 0.7); transition: var(--transition); } .footer-col a:hover { color: var(--primary); padding-left: 4px; } .footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.1); padding-top: 32px; display: flex; justify-content: space-between; align-items: center; color: rgba(255, 255, 255, 0.6); font-size: 0.875rem; } .footer-links { display: flex; gap: 24px; } .footer-links a { color: rgba(255, 255, 255, 0.6); } .footer-links a:hover { color: var(--white); } /* Animations */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeInRight { from { opacity: 0; transform: translateX(50px); } to { opacity: 1; transform: translateX(0); } } /* Mobile Navigation */ .mobile-nav { display: none; position: fixed; top: 80px; left: 0; right: 0; bottom: 0; background: var(--cream); z-index: 999; padding: 24px; overflow-y: auto; } .mobile-nav.active { display: block; } .mobile-nav ul { list-style: none; } .mobile-nav > ul > li { border-bottom: 1px solid rgba(27, 77, 62, 0.1); } .mobile-nav a { display: block; padding: 16px 0; font-weight: 500; font-size: 1.1rem; } .mobile-nav .mobile-dropdown-content { padding-left: 20px; display: none; } .mobile-nav .mobile-dropdown-content.active { display: block; } .mobile-nav .mobile-dropdown-content a { font-size: 1rem; padding: 12px 0; color: var(--text-muted); } /* Responsive */ @media (max-width: 1024px) { .hero-grid { grid-template-columns: 1fr; gap: 48px; } .hero-visual { order: -1; } .industries-grid { grid-template-columns: repeat(2, 1fr); } .why-grid { grid-template-columns: 1fr; gap: 48px; } .why-image { order: -1; } .services-grid { grid-template-columns: repeat(2, 1fr); } .pricing-grid { grid-template-columns: 1fr; } .process-timeline::before { left: 28px; } .process-step { grid-template-columns: 1fr; gap: 24px; padding-left: 80px; } .process-step-number { left: 28px; transform: translateX(-50%); } .process-step-content, .process-step:nth-child(even) .process-step-content { text-align: left; order: 1; } .process-step-visual, .process-step:nth-child(even) .process-step-visual { order: 2; } .faq-grid { grid-template-columns: 1fr; } .map-grid { grid-template-columns: 1fr; gap: 48px; } .related-grid { grid-template-columns: repeat(2, 1fr); } .footer-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 768px) { .nav-links { display: none; } .mobile-toggle { display: flex; } .hero { min-height: auto; padding: 120px 0 60px; } .hero h1 { font-size: 2.25rem; } .hero-trust { flex-direction: column; gap: 16px; align-items: flex-start; } .industries-grid { grid-template-columns: 1fr; } .services-grid { grid-template-columns: 1fr; } .related-grid { grid-template-columns: 1fr; } .footer-grid { grid-template-columns: 1fr; } .footer-bottom { flex-direction: column; gap: 16px; text-align: center; } }
🐊
Crocs & Clicks
  • Home
  • About
  • Services β–Ύ
    SEO Services PPC Management Web Design Social Media Marketing Marketing for Contractors
  • Service Areas
  • Clients
  • Blog
  • Get a Free Quote
  • Home
  • About
  • Services β–Ύ
    SEO Services PPC Management Web Design Social Media Marketing Marketing for Contractors
  • Service Areas
  • Clients
  • Blog
  • Get a Free Quote
Contractor Marketing Specialists

Marketing for Contractors That Generates Leads

Stop chasing leads and start attracting them. Our specialized contractor marketing services help HVAC, roofing, plumbing, electrical, and general contractors in Vancouver, WA build a consistent pipeline of high-quality jobs through proven digital marketing strategies.

Get Your Free Marketing Audit β†’ See Your Industry
πŸ“ˆ
250% Avg. Lead Increase
⭐
50+ Contractors Served
🎯
$5M+ Revenue Generated
πŸ”§

Hero Image Placeholder
Contractor at work or marketing dashboard
Dimensions: 800Γ—600px

  1. Home
  2. β€Ί
  3. Services
  4. β€Ί
  5. Marketing for Contractors
Industries We Serve

Specialized Digital Marketing for Every Contractor Trade

We understand that marketing for HVAC contractors is different from marketing for roofers. Our industry-specific strategies are tailored to the unique challenges and opportunities in each contractor trade.

❄️

HVAC Marketing Agency

Generate year-round leads for your HVAC business with targeted digital marketing strategies. We help HVAC contractors dominate local search and convert more service calls into booked appointments.

HVAC SEO AC Repair Leads Heating Services
Get HVAC Marketing β†’
🏠

Roofing Marketing Services

Stand out in the competitive roofing market with proven digital marketing strategies. Our roofing SEO and PPC campaigns generate high-quality leads for residential and commercial roofers.

Roofing SEO Roof Replacement Storm Damage
Get Roofing Marketing β†’
πŸ”§

Plumbing Contractor Marketing

Fill your service calendar with qualified plumbing leads. Our marketing for plumbing companies focuses on emergency services, water heater installations, and recurring maintenance contracts.

Plumber SEO Emergency Plumbing Drain Cleaning
Get Plumbing Marketing β†’
⚑

Electrician Marketing Company

Attract more residential and commercial electrical jobs with targeted marketing strategies for electrical contractors. From panel upgrades to EV charger installations, we help you reach customers ready to hire.

Electrician SEO Electrical Services Panel Upgrade
Get Electrician Marketing β†’
🎨

Painting Company Marketing

Showcase your craftsmanship and win more painting projects. Our marketing for painting contractors combines stunning portfolio presentations with targeted local SEO to attract homeowners and property managers.

Painter SEO Interior Painting Exterior Painting
Get Painting Marketing β†’
πŸ”¨

Remodeling Contractor Marketing

Win bigger remodeling projects with comprehensive digital marketing. We help remodelers attract homeowners planning kitchen renovations, bathroom remodels, and whole-home transformations.

Remodeler SEO Kitchen Remodel Bathroom Renovation
Get Remodeling Marketing β†’

Why Contractors Trust Us With Their Marketing

Most marketing agencies don't understand the contractor business. They don't know that emergency calls need to be answered immediately, that seasonal demand affects lead flow, or that your reputation is built job by job. We do.

🎯

Contractor-Specific Strategies

Our marketing strategies are built specifically for contractor businesses, addressing unique challenges like seasonal demand, emergency services, and local competition.

πŸ“ž

Lead Quality Over Quantity

We focus on generating leads that turn into paying jobs, not just website traffic. Every campaign is optimized for conversions and actual booked appointments.

πŸ“Š

Transparent Reporting

Know exactly where your marketing dollars go with clear monthly reports showing leads generated, cost per lead, and return on investment.

πŸ†

Proven Track Record

We've helped over 50 contractors across various trades grow their businesses with digital marketing that actually works.

πŸ“ˆ

Image Placeholder

Marketing results dashboard or contractor success story
Dimensions: 600Γ—750px

Our Marketing Services

Complete Digital Marketing for Contractors

From building your online presence to generating leads, we offer comprehensive contractor marketing services that work together to grow your business.

πŸ”

SEO for Contractors

Rank higher on Google for searches like "plumber near me" or "HVAC contractor Vancouver WA" and get found by customers ready to hire.

Learn More β†’
πŸ’°

PPC for Contractors

Get instant visibility with pay-per-click advertising on Google. Only pay when potential customers click on your ads.

Learn More β†’
🎨

Contractor Websites

Professional, mobile-friendly websites designed to convert visitors into leads with clear calls-to-action and project galleries.

Learn More β†’
πŸ“±

Social Media

Build trust and showcase your work on Facebook and Instagram to reach local homeowners and generate referrals.

Learn More β†’
Contractor Marketing Pricing

How Much Does Contractor Marketing Cost?

Transparent pricing with no hidden fees. Choose the marketing package that fits your business goals and budget. All packages include dedicated support and monthly performance reports.

Starter

$1,500
per month
  • Local SEO Optimization
  • Google Business Profile Management
  • 5 Keywords Targeted
  • Monthly Performance Report
  • Email Support
Get Started
Most Popular

Growth

$3,000
per month
  • Everything in Starter
  • Google Ads Management
  • 15 Keywords Targeted
  • Website Optimization
  • Bi-Weekly Strategy Calls
  • Review Generation Strategy
Get Started

Dominate

$5,000+
per month
  • Everything in Growth
  • Advanced PPC Campaigns
  • 25+ Keywords Targeted
  • Social Media Management
  • Weekly Strategy Calls
  • Dedicated Account Manager
Get Started
Our Process

How We Generate Leads for Your Contractor Business

Our proven contractor marketing process delivers results through strategic planning, expert execution, and continuous optimization.

1

Business Discovery & Market Analysis

We start by understanding your contractor business, target customers, service area, and competition. This deep dive helps us identify the best marketing strategies for your specific trade and location.

πŸ”
2

Custom Strategy Development

Based on our analysis, we create a tailored marketing strategy that combines SEO, PPC, and web optimization specifically designed for your contractor business and budget.

πŸ“‹
3

Campaign Implementation

Our team executes your marketing strategy with precision, optimizing your website, launching targeted ad campaigns, and building your online presence to attract qualified leads.

πŸš€
4

Monitor, Optimize & Scale

We continuously track campaign performance, optimize for better results, and scale what's working. You'll receive regular reports showing exactly how your marketing investment is performing.

πŸ“ˆ

Frequently Asked Questions About Contractor Marketing

Get answers to the most common questions contractors ask about digital marketing, lead generation, and growing their business online.

Have More Questions?

Schedule a free consultation to discuss your specific marketing needs and goals.

Book Free Consultation
How long does it take to see results from contractor marketing?
+

PPC advertising can generate leads within the first week. SEO typically takes 3-6 months to show significant results, but the leads are often higher quality and more cost-effective in the long run. We recommend a combined approach for the fastest and most sustainable results.

What makes contractor marketing different from regular marketing?
+

Contractor marketing focuses on local search optimization, emergency service keywords, seasonal demand patterns, and building trust through reviews and portfolio showcases. We understand that a roofing company has different needs than a retail store, and we tailor our strategies accordingly.

How do you measure the success of contractor marketing campaigns?
+

We track phone calls, form submissions, website traffic, keyword rankings, and most importantly, actual booked jobs. Our monthly reports show you exactly how many leads came from each channel and what your cost per lead is.

Do I need a new website for contractor marketing to work?
+

Not necessarily. We'll audit your current website and determine if it can be optimized or if a new site would be more effective. Many contractors see great results with strategic updates to their existing website combined with proper SEO and PPC campaigns.

What's the best advertising for contractors?
+

The best advertising for contractors is typically a combination of Google Ads for immediate leads and SEO for long-term organic growth. Google Local Services Ads are also highly effective for many contractor trades. We'll recommend the best mix based on your budget and goals.

Contractor Marketing Services in Vancouver, WA

Based in Vancouver, Washington, we specialize in helping local contractors throughout Clark County, the Portland metro area, and the Pacific Northwest grow their businesses with digital marketing. Whether you're an HVAC contractor in Camas, a roofer in Battle Ground, or a plumber in Vancouver, we understand the local market and know how to reach your ideal customers.

πŸ“ž
Phone
(425) 232-6029
βœ‰οΈ
Email
Ben@crocsandclicks.com
πŸ“
Service Area

Vancouver, WA & Portland Metro

πŸ•
Business Hours

Mon–Fri: 8:00 AM – 6:00 PM

Schedule a Consultation β†’

Ready to Grow Your Contractor Business?

Get a free marketing audit and discover how our contractor marketing services can help you generate more qualified leads and grow your business.

Get Your Free Marketing Audit β†’ Call (425) 232-6029
Related Services

Explore Our Other Digital Marketing Services

Combine contractor marketing with our other services for maximum impact.

πŸ”

SEO Services

Rank higher on Google and get found by local customers.

Learn More β†’
πŸ’°

PPC Management

Get instant visibility with targeted Google Ads campaigns.

Learn More β†’
🎨

Web Design

Professional websites that convert visitors into leads.

Learn More β†’
πŸ“

Local Marketing

Dominate local search in Vancouver, WA and beyond.

Learn More β†’
🐊
Crocs & Clicks

Crocs and Clicks is a full-service digital marketing agency in Vancouver, WA. We specialize in marketing for contractors, helping HVAC, roofing, plumbing, electrical, and general contractors grow with proven digital marketing strategies.

πŸ“˜ πŸ’Ό πŸ“Έ 🐦

Services

  • SEO Services
  • PPC Management
  • Web Design
  • Social Media
  • Contractor Marketing

Company

  • About Us
  • Our Clients
  • Blog
  • Contact
  • Service Areas

Contact

  • (425) 232-6029
  • Ben@crocsandclicks.com
  • Vancouver, WA
  • Mon–Fri: 8AM–6PM

Β© 2025 Crocs and Clicks. All rights reserved. | Marketing for Contractors Vancouver WA

Privacy Policy Terms of Service Sitemap