E&K Contracting | Vancouver WA Home Improvement Contractors | (360) 910-9205 /* CSS Variables */ :root { --primary: #1B4B73; --primary-dark: #0F3559; --primary-light: #2B5F8A; --accent: #4A9B5E; --accent-dark: #3F8650; --accent-light: #5BAC6F; --secondary: #FF6B35; --secondary-dark: #E55A2B; --white: #FFFFFF; --black: #1A1A1A; --gray-50: #FAFAFA; --gray-100: #F5F5F5; --gray-200: #E5E5E5; --gray-300: #D4D4D4; --gray-400: #A3A3A3; --gray-500: #737373; --gray-600: #525252; --gray-700: #404040; --gray-800: #262626; --gray-900: #171717; --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; --font-heading: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; --shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); --shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25); --radius: 8px; --radius-lg: 12px; --radius-xl: 16px; --transition-fast: 0.15s ease; --transition: 0.3s ease; --transition-slow: 0.5s ease; } /* Reset & Base Styles */ *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; font-size: 16px; -webkit-text-size-adjust: 100%; } body { font-family: var(--font-body); font-size: 1rem; line-height: 1.6; color: var(--gray-700); background: var(--white); overflow-x: hidden; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* Typography */ h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); color: var(--gray-900); line-height: 1.2; font-weight: 700; margin-bottom: 1rem; } h1 { font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 900; } h2 { font-size: clamp(2rem, 4vw, 3rem); font-weight: 800; } h3 { font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 700; } h4 { font-size: clamp(1.25rem, 2.5vw, 1.5rem); font-weight: 600; } p { margin-bottom: 1rem; } a { color: var(--primary); text-decoration: none; transition: color var(--transition-fast); } a:hover { color: var(--primary-dark); } img { max-width: 100%; height: auto; display: block; } /* Container */ .container { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 1rem; } @media (min-width: 640px) { .container { padding: 0 1.5rem; } } @media (min-width: 1024px) { .container { padding: 0 2rem; } } /* Skip Link */ .skip-link { position: absolute; top: -100px; left: 0; background: var(--primary); color: var(--white); padding: 0.75rem 1.5rem; border-radius: 0 0 var(--radius) 0; z-index: 10000; transition: top var(--transition); } .skip-link:focus { top: 0; color: var(--white); } /* Header */ .header { position: fixed; top: 0; left: 0; right: 0; background: var(--white); box-shadow: var(--shadow); z-index: 1000; transition: transform var(--transition); } .header.scrolled { transform: translateY(-100%); } .header.visible { transform: translateY(0); } /* Header Top Bar */ .header-top { background: var(--primary); color: var(--white); padding: 0.5rem 0; font-size: 0.875rem; } .header-top-inner { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; } .header-info { display: flex; gap: 1.5rem; align-items: center; flex-wrap: wrap; } .header-info span { display: flex; align-items: center; gap: 0.5rem; } .header-info a { color: var(--white); text-decoration: none; transition: opacity var(--transition-fast); } .header-info a:hover { opacity: 0.8; color: var(--white); } .trust-badges { display: flex; gap: 1rem; align-items: center; } .trust-badges span { display: flex; align-items: center; gap: 0.5rem; } /* Navigation */ .nav { background: var(--white); padding: 1rem 0; } .nav-inner { display: flex; justify-content: space-between; align-items: center; } .logo { display: flex; align-items: center; z-index: 1001; } .logo img { height: 50px; width: auto; } .nav-menu { display: flex; list-style: none; gap: 2rem; align-items: center; } .nav-menu a { color: var(--gray-700); font-weight: 600; padding: 0.5rem 0; position: relative; transition: color var(--transition-fast); } .nav-menu a::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 3px; background: var(--accent); transition: width var(--transition); } .nav-menu a:hover { color: var(--primary); } .nav-menu a:hover::after { width: 100%; } /* Dropdown Menu */ .dropdown { position: relative; } .dropdown-toggle { display: flex; align-items: center; gap: 0.25rem; } .dropdown-toggle svg { width: 12px; height: 12px; transition: transform var(--transition); } .dropdown:hover .dropdown-toggle svg { transform: rotate(180deg); } .dropdown-menu { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); background: var(--white); min-width: 280px; box-shadow: var(--shadow-xl); border-radius: var(--radius-lg); opacity: 0; visibility: hidden; transform: translateX(-50%) translateY(-10px); transition: all var(--transition); margin-top: 1rem; padding: 0.5rem; max-height: 80vh; overflow-y: auto; } .dropdown:hover .dropdown-menu { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); } .dropdown-menu li { list-style: none; } .dropdown-menu a { display: block; padding: 0.75rem 1rem; color: var(--gray-700); font-weight: 500; border-radius: var(--radius); transition: all var(--transition-fast); font-size: 0.875rem; } .dropdown-menu a:hover { background: var(--gray-50); color: var(--primary); transform: translateX(4px); } .dropdown-menu a::after { display: none; } .dropdown-section { margin-bottom: 0.5rem; } .dropdown-section-title { font-weight: 700; color: var(--primary); padding: 0.75rem 1rem 0.5rem; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; } /* CTA Buttons */ .nav-cta { display: flex; gap: 1rem; align-items: center; } /* Buttons */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.75rem 1.5rem; border-radius: var(--radius); font-weight: 600; font-size: 0.875rem; transition: all var(--transition); cursor: pointer; border: 2px solid transparent; text-decoration: none; position: relative; overflow: hidden; } .btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); } .btn-primary { background: var(--accent); color: var(--white); } .btn-primary:hover { background: var(--accent-dark); color: var(--white); } .btn-secondary { background: var(--primary); color: var(--white); } .btn-secondary:hover { background: var(--primary-dark); color: var(--white); } .btn-outline { background: transparent; color: var(--primary); border-color: var(--primary); } .btn-outline:hover { background: var(--primary); color: var(--white); } .btn-outline-white { background: transparent; color: var(--white); border-color: var(--white); } .btn-outline-white:hover { background: var(--white); color: var(--primary); } .btn-lg { padding: 1rem 2rem; font-size: 1rem; } .btn-icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0; border-radius: 50%; } /* Mobile Menu */ .mobile-toggle { display: none; flex-direction: column; gap: 4px; background: none; border: none; cursor: pointer; padding: 0.5rem; z-index: 1001; } .mobile-toggle span { display: block; width: 24px; height: 3px; background: var(--primary); transition: all var(--transition); border-radius: 2px; } .mobile-toggle.active span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); } .mobile-toggle.active span:nth-child(2) { opacity: 0; } .mobile-toggle.active span:nth-child(3) { transform: rotate(-45deg) translate(7px, -6px); } /* Hero Section */ .hero { position: relative; background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); color: var(--white); padding: 140px 0 80px; overflow: hidden; } .hero::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url('https://cdn.prod.website-files.com/67f147b35b0383b0565b0365/68227d4f1308270999a18314_E%26K.jpg'); background-size: cover; background-position: center; opacity: 0.1; z-index: 0; } .hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 400px; gap: 4rem; align-items: center; } .hero-content h1 { color: var(--white); margin-bottom: 1.5rem; animation: fadeInUp 0.8s ease-out; } .hero-subtitle { font-size: 1.25rem; margin-bottom: 2rem; opacity: 0.95; animation: fadeInUp 0.8s ease-out 0.2s both; } /* FIXED: Hero section links - make them lighter and more visible */ .hero a { color: #B8E0FF; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; } .hero a:hover { color: var(--white); text-decoration-thickness: 2px; } .hero-features { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-bottom: 2rem; animation: fadeInUp 0.8s ease-out 0.4s both; } .hero-feature { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border-radius: var(--radius); border: 1px solid rgba(255, 255, 255, 0.2); } .hero-feature-icon { width: 40px; height: 40px; background: var(--accent); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .hero-feature-icon svg { width: 20px; height: 20px; color: var(--white); } .hero-feature-text h4 { font-size: 0.875rem; font-weight: 600; margin-bottom: 0; color: var(--white); } .hero-feature-text p { font-size: 0.75rem; margin: 0; opacity: 0.9; } .hero-buttons { display: flex; gap: 1rem; flex-wrap: wrap; animation: fadeInUp 0.8s ease-out 0.6s both; } /* Quote Form */ .quote-form { background: var(--white); padding: 2rem; border-radius: var(--radius-xl); box-shadow: var(--shadow-2xl); animation: fadeInRight 0.8s ease-out 0.4s both; } .form-header { text-align: center; margin-bottom: 2rem; } .form-header h2 { color: var(--gray-900); font-size: 1.75rem; margin-bottom: 0.5rem; } .form-header p { color: var(--gray-600); font-size: 0.875rem; } .form-group { margin-bottom: 1.25rem; } .form-group label { display: block; margin-bottom: 0.5rem; font-weight: 600; color: var(--gray-700); font-size: 0.875rem; } .form-group input, .form-group select, .form-group textarea { width: 100%; padding: 0.75rem 1rem; border: 2px solid var(--gray-200); border-radius: var(--radius); font-size: 1rem; font-family: var(--font-body); transition: all var(--transition); background: var(--white); } .form-group input:focus, .form-group select:focus, .form-group textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(74, 155, 94, 0.1); } .form-submit { width: 100%; background: var(--accent); color: var(--white); padding: 1rem; font-size: 1.125rem; font-weight: 700; border: none; border-radius: var(--radius); cursor: pointer; transition: all var(--transition); position: relative; overflow: hidden; } .form-submit:hover { background: var(--accent-dark); transform: translateY(-2px); box-shadow: var(--shadow-lg); } .form-submit::after { content: ''; position: absolute; top: 50%; left: 50%; width: 0; height: 0; background: rgba(255, 255, 255, 0.2); border-radius: 50%; transform: translate(-50%, -50%); transition: width 0.6s, height 0.6s; } .form-submit:active::after { width: 300px; height: 300px; } .form-disclaimer { text-align: center; font-size: 0.75rem; color: var(--gray-500); margin-top: 1rem; } .form-urgency { background: var(--secondary); color: var(--white); padding: 0.75rem; border-radius: var(--radius); text-align: center; font-weight: 600; font-size: 0.875rem; margin-top: 1rem; animation: pulse 2s infinite; } /* Trust Bar */ .trust-bar { background: var(--gray-50); padding: 3rem 0; border-bottom: 1px solid var(--gray-200); } .trust-items { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; } .trust-item { text-align: center; animation: fadeInUp 0.6s ease-out; } .trust-item:nth-child(2) { animation-delay: 0.1s; } .trust-item:nth-child(3) { animation-delay: 0.2s; } .trust-item:nth-child(4) { animation-delay: 0.3s; } .trust-icon { width: 80px; height: 80px; background: var(--primary); color: var(--white); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; font-weight: 800; margin: 0 auto 1rem; transition: all var(--transition); } .trust-item:hover .trust-icon { transform: scale(1.1); background: var(--accent); } .trust-text h4 { color: var(--gray-900); font-size: 1.125rem; margin-bottom: 0.25rem; } .trust-text p { color: var(--gray-600); font-size: 0.875rem; margin: 0; } /* Services Section */ .services { padding: 80px 0; background: var(--white); } .section-header { text-align: center; max-width: 800px; margin: 0 auto 4rem; } .section-header h2 { color: var(--gray-900); margin-bottom: 1rem; } .section-header p { font-size: 1.125rem; color: var(--gray-600); } .services-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 2rem; margin-bottom: 3rem; } .service-card { background: var(--white); border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-lg); transition: all var(--transition); position: relative; } .service-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-2xl); } .service-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--accent) 0%, var(--accent-light) 100%); transform: scaleX(0); transform-origin: left; transition: transform var(--transition); } .service-card:hover::before { transform: scaleX(1); } .service-image { position: relative; height: 200px; overflow: hidden; } .service-image img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition-slow); } .service-card:hover .service-image img { transform: scale(1.1); } .service-badge { position: absolute; top: 1rem; right: 1rem; background: var(--accent); color: var(--white); padding: 0.5rem 1rem; border-radius: var(--radius); font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; } .service-content { padding: 2rem; } .service-content h3 { color: var(--gray-900); margin-bottom: 1rem; } .service-content h3 a { color: inherit; text-decoration: none; transition: color var(--transition); } .service-content h3 a:hover { color: var(--primary); } .service-content p { color: var(--gray-600); margin-bottom: 1.5rem; } .service-links { display: flex; flex-direction: column; gap: 0.75rem; margin-bottom: 1.5rem; } .service-links a { display: flex; align-items: center; gap: 0.5rem; color: var(--gray-700); font-weight: 500; padding: 0.5rem 0; border-bottom: 1px solid var(--gray-100); transition: all var(--transition); } .service-links a:hover { color: var(--primary); transform: translateX(4px); } .service-links a svg { width: 16px; height: 16px; color: var(--accent); flex-shrink: 0; } .service-cta { display: flex; align-items: center; justify-content: space-between; } .service-cta a { color: var(--primary); font-weight: 600; display: flex; align-items: center; gap: 0.5rem; transition: gap var(--transition); } .service-cta a:hover { gap: 1rem; } .service-cta a svg { width: 20px; height: 20px; } /* Service Categories */ .service-categories { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; margin-top: 3rem; } .category-link { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; padding: 1.5rem; background: var(--gray-50); border-radius: var(--radius-lg); text-align: center; transition: all var(--transition); text-decoration: none; color: var(--gray-700); } .category-link:hover { background: var(--primary); color: var(--white); transform: translateY(-4px); box-shadow: var(--shadow-lg); } .category-icon { width: 48px; height: 48px; background: var(--primary); color: var(--white); border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: all var(--transition); } .category-link:hover .category-icon { background: var(--white); color: var(--primary); } .category-icon svg { width: 24px; height: 24px; } .category-link span { font-weight: 600; font-size: 0.875rem; } /* Service Areas */ .service-areas { padding: 80px 0; background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); color: var(--white); position: relative; overflow: hidden; } .service-areas::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url('data:image/svg+xml;utf8,'); background-size: cover; background-position: bottom; } .service-areas .section-header h2, .service-areas .section-header p { color: var(--white); } /* FIXED: Service areas section links - make them more visible */ .service-areas a { color: #B8E0FF; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; } .service-areas a:hover { color: var(--white); text-decoration-thickness: 2px; } .areas-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.5rem; margin-top: 3rem; position: relative; z-index: 1; } .area-card { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); padding: 2rem; border-radius: var(--radius-xl); border: 1px solid rgba(255, 255, 255, 0.2); transition: all var(--transition); } .area-card:hover { background: rgba(255, 255, 255, 0.15); transform: translateY(-4px); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); } .area-card.primary { grid-column: 1 / -1; background: rgba(255, 255, 255, 0.15); border: 2px solid rgba(255, 255, 255, 0.3); } .area-card h3 { color: var(--white); margin-bottom: 1rem; } .area-card h3 a { color: var(--white); text-decoration: none; } .area-card h3 a:hover { text-decoration: underline; } .area-card p { color: rgba(255, 255, 255, 0.9); margin-bottom: 1rem; } .area-neighborhoods { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem; } .area-neighborhoods a { color: var(--white); font-size: 0.875rem; padding: 0.25rem 0.75rem; background: rgba(255, 255, 255, 0.1); border-radius: var(--radius); text-decoration: none; transition: all var(--transition); } .area-neighborhoods a:hover { background: rgba(255, 255, 255, 0.2); transform: translateY(-2px); } .area-link { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--white); font-weight: 600; text-decoration: none; transition: gap var(--transition); } .area-link:hover { gap: 1rem; color: var(--white); } .area-link svg { width: 20px; height: 20px; } /* Why Choose Section */ .why-choose { padding: 80px 0; background: var(--gray-50); } .why-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; } .why-content h2 { color: var(--gray-900); margin-bottom: 1.5rem; } .why-content > p { font-size: 1.125rem; color: var(--gray-600); margin-bottom: 2rem; } .why-features { display: grid; gap: 1.5rem; } .why-feature { display: flex; gap: 1rem; padding: 1rem; background: var(--white); border-radius: var(--radius-lg); box-shadow: var(--shadow); transition: all var(--transition); } .why-feature:hover { transform: translateX(8px); box-shadow: var(--shadow-lg); } .why-icon { width: 48px; height: 48px; background: var(--accent); color: var(--white); border-radius: var(--radius); display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .why-icon svg { width: 24px; height: 24px; } .why-text h4 { color: var(--gray-900); margin-bottom: 0.25rem; } .why-text p { color: var(--gray-600); font-size: 0.875rem; margin: 0; } .why-image { position: relative; } .why-image > img { width: 100%; border-radius: var(--radius-xl); box-shadow: var(--shadow-xl); } .stats-overlay { position: absolute; bottom: -2rem; left: -2rem; right: 2rem; background: var(--white); padding: 2rem; border-radius: var(--radius-xl); box-shadow: var(--shadow-2xl); display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; } .stat-item { text-align: center; padding: 1rem; } .stat-number { display: block; font-size: 2rem; font-weight: 800; color: var(--primary); margin-bottom: 0.25rem; } .stat-label { font-size: 0.875rem; color: var(--gray-600); } /* Testimonials */ .testimonials { padding: 80px 0; background: var(--white); } .testimonials-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); gap: 2rem; margin-top: 3rem; } .testimonial-card { background: var(--gray-50); padding: 2rem; border-radius: var(--radius-xl); position: relative; transition: all var(--transition); } .testimonial-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-xl); } .testimonial-card::before { content: '"'; position: absolute; top: 1rem; left: 1.5rem; font-size: 4rem; color: var(--accent); opacity: 0.2; font-family: Georgia, serif; line-height: 1; } .testimonial-rating { display: flex; gap: 0.25rem; margin-bottom: 1rem; } .testimonial-rating svg { width: 20px; height: 20px; color: #FFD700; } .testimonial-text { color: var(--gray-700); line-height: 1.8; margin-bottom: 1.5rem; font-style: italic; } .testimonial-author { display: flex; align-items: center; gap: 1rem; } .author-avatar { width: 48px; height: 48px; background: var(--primary); color: var(--white); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1.125rem; } .author-info h5 { color: var(--gray-900); margin-bottom: 0.25rem; } .author-info p { color: var(--gray-500); font-size: 0.875rem; margin: 0; } .testimonials-cta { text-align: center; margin-top: 3rem; } /* FAQ Section */ .faq { padding: 80px 0; background: var(--gray-50); } .faq-list { max-width: 800px; margin: 0 auto; margin-top: 3rem; } .faq-item { background: var(--white); margin-bottom: 1rem; border-radius: var(--radius-lg); box-shadow: var(--shadow); overflow: hidden; transition: all var(--transition); } .faq-item.active { box-shadow: var(--shadow-lg); } .faq-question { padding: 1.5rem; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-weight: 600; color: var(--gray-800); transition: all var(--transition); } .faq-question:hover { background: var(--gray-50); } .faq-icon { width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; color: var(--primary); transition: transform var(--transition); } .faq-item.active .faq-icon { transform: rotate(180deg); } .faq-answer { max-height: 0; overflow: hidden; transition: max-height var(--transition); } .faq-answer-inner { padding: 0 1.5rem 1.5rem; color: var(--gray-600); line-height: 1.8; } .faq-item.active .faq-answer { max-height: 500px; } /* CTA Section */ .cta { padding: 80px 0; background: linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%); color: var(--white); text-align: center; position: relative; overflow: hidden; } .cta::before { content: ''; position: absolute; top: 50%; left: 50%; width: 150%; height: 150%; background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%); transform: translate(-50%, -50%); animation: pulse 4s ease-in-out infinite; } .cta-content { position: relative; z-index: 1; } .cta h2 { color: var(--white); font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 1rem; } .cta p { font-size: 1.25rem; margin-bottom: 2rem; opacity: 0.95; } /* FIXED: CTA section links - make them more visible */ .cta a { color: #B8E0FF; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; } .cta a:hover { color: var(--white); text-decoration-thickness: 2px; } .cta-buttons { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; } /* Footer */ .footer { background: var(--gray-900); color: var(--white); padding: 60px 0 30px; } .footer-content { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 3rem; margin-bottom: 3rem; } .footer-section h3 { color: var(--white); font-size: 1.25rem; margin-bottom: 1.5rem; } .footer-section p, .footer-section a { color: rgba(255, 255, 255, 0.8); text-decoration: none; line-height: 1.8; transition: color var(--transition); } .footer-section a:hover { color: var(--accent); } .footer-section ul { list-style: none; } .footer-section ul li { margin-bottom: 0.75rem; } .footer-logo { height: 40px; margin-bottom: 1rem; } .footer-contact { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 1rem; } .footer-contact-item { display: flex; align-items: center; gap: 0.75rem; } .footer-contact-item svg { width: 20px; height: 20px; color: var(--accent); flex-shrink: 0; } .footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.1); padding-top: 2rem; text-align: center; color: rgba(255, 255, 255, 0.6); font-size: 0.875rem; } .footer-bottom a { color: rgba(255, 255, 255, 0.6); text-decoration: none; transition: color var(--transition); } .footer-bottom a:hover { color: var(--accent); } /* Chat Widget */ .chat-widget { position: fixed; bottom: 2rem; right: 2rem; z-index: 999; } .chat-button { width: 60px; height: 60px; background: var(--accent); color: var(--white); border: none; border-radius: 50%; box-shadow: var(--shadow-xl); cursor: pointer; transition: all var(--transition); display: flex; align-items: center; justify-content: center; position: relative; animation: bounceIn 0.8s ease-out; } .chat-button:hover { transform: scale(1.1); background: var(--accent-dark); } .chat-button svg { width: 28px; height: 28px; } .chat-badge { position: absolute; top: -5px; right: -5px; width: 24px; height: 24px; background: var(--secondary); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.75rem; font-weight: 700; animation: pulse 2s infinite; } /* Chat Widget Modal */ .chat-modal { position: fixed; bottom: 90px; right: 2rem; width: 350px; background: var(--white); border-radius: var(--radius-xl); box-shadow: var(--shadow-2xl); transform: translateY(20px) scale(0.95); opacity: 0; visibility: hidden; transition: all var(--transition); z-index: 1000; max-height: 600px; display: flex; flex-direction: column; } .chat-modal.active { transform: translateY(0) scale(1); opacity: 1; visibility: visible; } .chat-header { background: var(--accent); color: var(--white); padding: 1.5rem; border-radius: var(--radius-xl) var(--radius-xl) 0 0; display: flex; justify-content: space-between; align-items: center; } .chat-header h3 { margin: 0; font-size: 1.125rem; color: var(--white); } .chat-close { background: none; border: none; color: var(--white); cursor: pointer; padding: 0.25rem; border-radius: 50%; transition: background var(--transition); } .chat-close:hover { background: rgba(255, 255, 255, 0.2); } .chat-body { padding: 1.5rem; flex: 1; overflow-y: auto; max-height: 400px; } .chat-message { margin-bottom: 1rem; padding: 0.75rem 1rem; border-radius: var(--radius-lg); max-width: 85%; word-wrap: break-word; } .chat-message.bot { background: var(--gray-100); color: var(--gray-800); margin-right: auto; } .chat-message.user { background: var(--accent); color: var(--white); margin-left: auto; text-align: right; } .chat-input-area { padding: 1rem 1.5rem 1.5rem; border-top: 1px solid var(--gray-200); } .chat-input { width: 100%; padding: 0.75rem 1rem; border: 2px solid var(--gray-200); border-radius: var(--radius); font-size: 0.875rem; font-family: var(--font-body); transition: all var(--transition); margin-bottom: 0.75rem; } .chat-input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(74, 155, 94, 0.1); } .chat-options { display: flex; flex-direction: column; gap: 0.5rem; } .chat-option { background: var(--gray-50); border: 2px solid var(--gray-200); padding: 0.75rem 1rem; border-radius: var(--radius); cursor: pointer; font-size: 0.875rem; transition: all var(--transition); text-align: left; } .chat-option:hover { background: var(--gray-100); border-color: var(--accent); } .chat-submit { width: 100%; background: var(--accent); color: var(--white); padding: 0.75rem; border: none; border-radius: var(--radius); font-weight: 600; cursor: pointer; transition: all var(--transition); } .chat-submit:hover { background: var(--accent-dark); } .typing-indicator { display: flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1rem; background: var(--gray-100); border-radius: var(--radius-lg); margin-bottom: 1rem; max-width: 85%; } .typing-dots { display: flex; gap: 0.25rem; } .typing-dot { width: 6px; height: 6px; background: var(--gray-500); border-radius: 50%; animation: typingDot 1.4s infinite ease-in-out; } .typing-dot:nth-child(1) { animation-delay: -0.32s; } .typing-dot:nth-child(2) { animation-delay: -0.16s; } @keyframes typingDot { 0%, 80%, 100% { transform: scale(0); opacity: 0.5; } 40% { transform: scale(1); opacity: 1; } } /* Animations */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeInRight { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: translateX(0); } } @keyframes bounceIn { 0% { opacity: 0; transform: scale(0.3); } 50% { opacity: 1; transform: scale(1.05); } 70% { transform: scale(0.9); } 100% { transform: scale(1); } } @keyframes pulse { 0% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.1); opacity: 0.8; } 100% { transform: scale(1); opacity: 1; } } /* Responsive Design */ @media (max-width: 1024px) { .nav-menu { position: fixed; top: 0; left: -100%; width: 100%; height: 100vh; background: var(--white); flex-direction: column; justify-content: flex-start; align-items: flex-start; padding: 80px 2rem 2rem; transition: left var(--transition); overflow-y: auto; z-index: 1000; } .nav-menu.active { left: 0; } .nav-menu li { width: 100%; } .nav-menu a { display: block; width: 100%; padding: 1rem 0; border-bottom: 1px solid var(--gray-100); } .dropdown-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; background: var(--gray-50); display: none; margin: 0; padding: 0; max-height: none; } .dropdown.active .dropdown-menu { display: block; } .mobile-toggle { display: flex; } .nav-cta { position: fixed; bottom: 0; left: 0; right: 0; background: var(--white); padding: 1rem; box-shadow: 0 -4px 6px rgba(0, 0, 0, 0.1); z-index: 999; justify-content: stretch; gap: 0.5rem; } .nav-cta .btn { flex: 1; } .hero-inner { grid-template-columns: 1fr; gap: 3rem; } .quote-form { max-width: 500px; margin: 0 auto; } .trust-items { grid-template-columns: repeat(2, 1fr); gap: 2rem; } .service-categories { grid-template-columns: repeat(2, 1fr); } .why-grid { grid-template-columns: 1fr; gap: 3rem; } .stats-overlay { position: static; margin-top: 2rem; } .footer-content { grid-template-columns: 1fr; gap: 2rem; } .chat-modal { right: 1rem; left: 1rem; width: auto; bottom: 120px; } } @media (max-width: 768px) { .header-top { display: none; } .hero { padding: 120px 0 60px; } .hero-features { grid-template-columns: 1fr; } .services-grid, .areas-grid, .testimonials-grid { grid-template-columns: 1fr; } .service-categories { grid-template-columns: 1fr; } .stats-overlay { grid-template-columns: 1fr; } .chat-widget { bottom: 1rem; right: 1rem; } .chat-modal { bottom: 80px; max-height: 500px; } } /* Utility Classes */ .text-center { text-align: center; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; } Skip to main content
3515 Thompson Ave, Vancouver, WA Mon-Fri: 8AM-6PM ekllc@live.com
✓ Licensed & Insured ✓ Free Estimates ✓ Family Owned
E&K Contracting
  • Home
  • Services
    • Painting Services
      • Interior Painting
      • Exterior Painting
      • Cabinet Painting
    • Gutter Services
      • Gutter Cleaning
      • Gutter Installation
      • Gutter Repair
    • Siding Services
      • Siding Installation
      • Siding Repair
      • Vinyl Siding
    • Drywall Services
      • Drywall Repair
      • Drywall Installation
      • Texture Matching
    • Roofing Services
      • Roof Repair
      • Roof Replacement
      • Roof Inspection
  • Service Areas
    • Vancouver, WA
    • Battleground, WA
    • Camas, WA
    • Woodland, WA
    • Ridgefield, WA
    • La Center, WA
    • Clark County, WA
  • About
  • Reviews
  • FAQ
  • Contact
(360) 910-9205 Free Quote

Vancouver's Most Trusted Home Improvement Contractors

Family-owned since 2002. Expert painting, gutters, siding, drywall & roofing services with over 3,300 satisfied customers throughout Clark County.

Same-Day Estimates

Quick response time

Licensed & Insured

Full protection

4.9★ Google Rating

29 verified reviews

3,300+ Homes

Successfully completed

Call (360) 910-9205 Get Free Estimate

Get Your Free Estimate

Response within 1 hour during business hours

Your information is 100% secure. We respect your privacy.

⚡ Limited spots available this month - Book now!
20+

Years Experience

Serving Since 2002

4.9★

Google Rating

29 Verified Reviews

3.3K

Happy Customers

Homes Transformed

100%

Satisfaction

Guaranteed

Our Professional Services in Vancouver, WA

Comprehensive home improvement solutions with guaranteed quality and satisfaction. We serve homeowners throughout Vancouver, Battleground, Camas, and surrounding areas. Click on any service to learn more.

Professional painting services in Vancouver WA Most Popular

Painting Services

Transform your home with expert painting. Premium paints, meticulous prep work, and flawless finishes for lasting beauty. We're Vancouver's trusted interior and exterior painting specialists.

Interior Painting Exterior Painting Cabinet Painting
Learn more about painting
Gutter services in Vancouver WA Essential

Gutter Services

Protect your home from water damage. Professional cleaning, installation, and repairs for optimal water management.

Gutter Cleaning Gutter Installation Gutter Repair
Learn more about gutters
Siding services in Vancouver WA Curb Appeal

Siding Services

Enhance your home's curb appeal and protection with quality siding solutions. From vinyl siding to repairs, we're trusted Vancouver siding experts.

Siding Installation Siding Repair Vinyl Siding
Learn more about siding
Drywall services in Vancouver WA

Drywall Services

Professional drywall repair and installation. From patches to complete installations with perfect texture matching.

Drywall Repair Drywall Installation Texture Matching
Learn more about drywall
Roofing services in Vancouver WA Critical

Roofing Services

Keep your home safe and dry with professional roofing services. Expert roof repair, replacement, and inspections from experienced contractors.

Roof Repair Roof Replacement Roof Inspection
Learn more about roofing
All Painting Services
All Gutter Services
All Siding Services
All Drywall Services
All Roofing Services

Serving Vancouver, WA & Surrounding Communities

Based in Vancouver with quick service throughout Clark County. We're proud to serve homeowners in all major communities and neighborhoods. Click any area to see our specialized services there.

Vancouver, WA - Our Primary Service Area

We proudly serve all Vancouver neighborhoods with fast response times and quality service. From Downtown Vancouver to suburban communities:

Felida Salmon Creek Minnehaha Cascade Park Fisher's Landing Hazel Dell Orchards Fourth Plain Bagley Downs
View all Vancouver services

Battleground, WA

20 minutes from Vancouver. Serving all Battleground areas including Meadow Glade, Brush Prairie, Hockinson, and Battle Ground Lake.

View Battleground services

Camas, WA

East of Vancouver. Including Prune Hill, Lacamas Lake, Downtown Camas, and Crown Park areas.

View Camas services

Woodland, WA

North of Vancouver. Serving Lewis River area, Horseshoe Lake, Woodland Bottoms, Hayes, and Downtown Woodland.

View Woodland services

Ridgefield, WA

Northwest of Vancouver. Covering Pioneer Canyon, Ridgefield Junction, Wildlife Refuge area, and downtown Ridgefield.

View Ridgefield services

La Center, WA

North of Ridgefield. Serving Paradise Point, rural areas, and surrounding communities with the same quality service.

View La Center services

Why Choose E&K Contracting?

For over 20 years, we've built our reputation on quality work, fair prices, and treating every home like our own. Here's what sets us apart from other contractors in Vancouver, WA:

Licensed & Insured

Fully licensed, bonded, and insured for your complete peace of mind.

Quick Response Time

Same-day estimates and fast project scheduling throughout Vancouver.

Transparent Pricing

Detailed written estimates with no hidden fees or surprise charges.

Family Values

Local family business treating every customer like a neighbor since 2002.

Call (360) 910-9205 Learn More About Us
E&K Contracting team at work
3,300+ Homes Served
22 Years in Business
4.9★ Google Rating
100% Satisfaction

What Our Customers Say

Real reviews from real customers throughout Vancouver and Clark County. See why we're the most trusted contractors in the area.

"E&K did an amazing job painting our entire house. They were professional, on time, and the quality of work exceeded our expectations. Highly recommend!"

JR
Jennifer Rodriguez

Vancouver, WA

"Quick response, fair pricing, and excellent work on our gutter installation. They cleaned up everything and were very respectful of our property."

MS
Michael Stevens

Camas, WA

"We've used E&K for multiple projects - siding, painting, and drywall repair. Always excellent work at fair prices. True professionals!"

LT
Linda Thompson

Battleground, WA

Read More Reviews

Frequently Asked Questions

Get answers to common questions about our services and process. For more detailed information, visit our complete FAQ page.

How much does house painting cost in Vancouver WA?
House painting in Vancouver WA typically costs between $3-6 per square foot for exterior painting and $2-4 per square foot for interior painting. The exact cost depends on home size, paint quality, and surface condition. Contact E&K Contracting at (360) 910-9205 for a free, accurate quote.
How often should gutters be cleaned in Vancouver Washington?
In Vancouver WA, gutters should be cleaned at least twice a year - once in late spring and once in late fall. Homes with many trees may need quarterly cleaning. E&K Contracting offers gutter cleaning services and maintenance plans to keep your gutters flowing properly year-round.
What areas does E&K Contracting serve?
E&K Contracting serves all of Vancouver, WA and surrounding areas including Battleground, Camas, Woodland, Ridgefield, La Center, and all of Clark County. We provide quick response times throughout the region.
Is E&K Contracting licensed and insured?
Yes! E&K Contracting is fully licensed, bonded, and insured in Washington State. We carry comprehensive liability insurance and workers' compensation to protect your property and our team. Learn more about our company and credentials.
How long do home improvement projects typically take?
Project timelines vary by service: Interior painting typically takes 2-5 days, exterior painting 3-7 days, gutter installation 1-2 days, siding installation 3-7 days, and drywall repairs 1-3 days. We provide accurate timelines during your free estimate.

Ready to Transform Your Home?

Join thousands of satisfied customers throughout Vancouver, WA and Clark County. Get your free estimate today!

Call (360) 910-9205 Request Free Quote
E&K Contracting

Vancouver's trusted home improvement contractors since 2002. Family-owned and operated with a commitment to quality and customer satisfaction throughout Clark County.

(360) 910-9205
ekllc@live.com
3515 Thompson Ave, Vancouver, WA 98660

Services

  • Painting Services
  • Interior Painting
  • Exterior Painting
  • Gutter Services
  • Gutter Cleaning
  • Siding Services
  • Drywall Services
  • Roofing Services

Service Areas

  • Vancouver, WA
  • Battleground, WA
  • Camas, WA
  • Woodland, WA
  • Ridgefield, WA
  • La Center, WA
  • Clark County, WA
  • View All Areas

Company

  • About Us
  • Reviews
  • FAQ
  • Contact Us
  • Free Estimate
  • Call Now
  • All Services

© 2024 E&K Contracting LLC. All rights reserved. | Licensed, Bonded & Insured | Privacy Policy | Terms of Service

Get Your Free Quote

Hi! I'm here to help you get a free estimate for your home improvement project. What's your name?