A+ Exterminators | Same-Day Pest Control | Reston, VA
:root {
–green: #1a4a2e;
–green-mid: #2d6e45;
–green-light: #3d8f5a;
–lime: #a8d832;
–lime-bright: #c4f028;
–cream: #f7f3ec;
–warm-white: #fefcf8;
–charcoal: #1c1c1c;
–text-mid: #3a3a3a;
–gold: #c9a84c;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
font-family: ‘DM Sans’, sans-serif;
background: var(–warm-white);
color: var(–charcoal);
overflow-x: hidden;
}
/* ── STICKY NAV ── */
nav {
position: fixed;
top: 0; left: 0; right: 0;
z-index: 100;
display: flex;
align-items: center;
justify-content: space-between;
padding: 14px 40px;
background: rgba(26,74,46,0.97);
backdrop-filter: blur(10px);
border-bottom: 2px solid var(–lime);
animation: slideDown .5s ease;
}
@keyframes slideDown { from { transform: translateY(-100%); } to { transform: translateY(0); } }
.nav-logo {
font-family: ‘Bebas Neue’, cursive;
font-size: 28px;
letter-spacing: 2px;
color: var(–lime);
text-decoration: none;
}
.nav-logo span { color: #fff; }
.nav-phone {
display: flex;
align-items: center;
gap: 10px;
background: var(–lime);
color: var(–green);
font-weight: 700;
font-size: 18px;
padding: 10px 22px;
border-radius: 4px;
text-decoration: none;
transition: background .2s, transform .15s;
letter-spacing: .5px;
}
.nav-phone:hover { background: var(–lime-bright); transform: scale(1.03); }
.nav-phone svg { width: 18px; height: 18px; }
/* ── HERO ── */
.hero {
min-height: 100vh;
display: grid;
grid-template-columns: 1fr 1fr;
position: relative;
overflow: hidden;
}
.hero-left {
background: var(–green);
display: flex;
flex-direction: column;
justify-content: center;
padding: 140px 60px 80px 60px;
position: relative;
z-index: 2;
}
.hero-left::after {
content: ”;
position: absolute;
top: 0; right: -80px; bottom: 0;
width: 160px;
background: var(–green);
clip-path: polygon(0 0, 0% 100%, 100% 100%);
z-index: 1;
}
.badge {
display: inline-flex;
align-items: center;
gap: 8px;
background: rgba(168,216,50,0.15);
border: 1px solid var(–lime);
color: var(–lime);
font-size: 12px;
font-weight: 600;
letter-spacing: 2px;
text-transform: uppercase;
padding: 7px 16px;
border-radius: 100px;
margin-bottom: 28px;
width: fit-content;
animation: fadeUp .6s ease .2s both;
}
.hero-title {
font-family: ‘Bebas Neue’, cursive;
font-size: clamp(60px, 6vw, 88px);
line-height: 1;
color: #fff;
letter-spacing: 2px;
animation: fadeUp .6s ease .3s both;
}
.hero-title .accent { color: var(–lime); display: block; }
.hero-sub {
font-size: 18px;
color: rgba(255,255,255,0.75);
margin-top: 20px;
line-height: 1.6;
max-width: 420px;
animation: fadeUp .6s ease .4s both;
}
.hero-cta-group {
display: flex;
gap: 14px;
margin-top: 36px;
flex-wrap: wrap;
animation: fadeUp .6s ease .5s both;
}
.btn-primary {
background: var(–lime);
color: var(–green);
font-weight: 700;
font-size: 17px;
padding: 16px 32px;
border-radius: 4px;
text-decoration: none;
transition: background .2s, transform .15s, box-shadow .2s;
box-shadow: 0 4px 20px rgba(168,216,50,0.4);
display: inline-flex;
align-items: center;
gap: 8px;
}
.btn-primary:hover { background: var(–lime-bright); transform: translateY(-2px); box-shadow: 0 8px 30px rgba(168,216,50,0.5); }
.btn-secondary {
background: transparent;
color: #fff;
font-weight: 600;
font-size: 16px;
padding: 16px 28px;
border-radius: 4px;
text-decoration: none;
border: 2px solid rgba(255,255,255,0.3);
transition: border-color .2s, background .2s;
display: inline-flex;
align-items: center;
gap: 8px;
}
.btn-secondary:hover { border-color: #fff; background: rgba(255,255,255,0.08); }
.hero-trust {
display: flex;
gap: 24px;
margin-top: 48px;
animation: fadeUp .6s ease .6s both;
}
.trust-item {
display: flex;
align-items: center;
gap: 8px;
color: rgba(255,255,255,0.65);
font-size: 13px;
}
.trust-item .check { color: var(–lime); font-size: 16px; }
/* Hero right – visual side */
.hero-right {
position: relative;
background: var(–cream);
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
}
.hero-bg-pattern {
position: absolute;
inset: 0;
background-image:
radial-gradient(circle at 70% 30%, rgba(45,110,69,0.08) 0%, transparent 50%),
radial-gradient(circle at 30% 80%, rgba(168,216,50,0.06) 0%, transparent 50%);
}
.stat-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
padding: 80px 60px 80px 100px;
position: relative;
z-index: 2;
animation: fadeUp .7s ease .4s both;
}
.stat-card {
background: #fff;
border-radius: 12px;
padding: 30px 24px;
box-shadow: 0 4px 24px rgba(0,0,0,0.07);
border-top: 4px solid var(–green);
transition: transform .2s, box-shadow .2s;
}
.stat-card:hover { transform: translateY(-4px); box-shadow: 0 12px 36px rgba(0,0,0,0.12); }
.stat-card:nth-child(2) { border-color: var(–lime); margin-top: 30px; }
.stat-card:nth-child(3) { border-color: var(–gold); margin-top: -30px; }
.stat-card:nth-child(4) { border-color: var(–green-light); }
.stat-num {
font-family: ‘Bebas Neue’, cursive;
font-size: 56px;
line-height: 1;
color: var(–green);
letter-spacing: 1px;
}
.stat-card:nth-child(2) .stat-num { color: #5a8a00; }
.stat-card:nth-child(3) .stat-num { color: var(–gold); }
.stat-label {
font-size: 13px;
font-weight: 600;
color: var(–text-mid);
margin-top: 6px;
letter-spacing: .5px;
text-transform: uppercase;
}
.stat-desc {
font-size: 13px;
color: #888;
margin-top: 4px;
line-height: 1.4;
}
@keyframes fadeUp {
from { opacity: 0; transform: translateY(24px); }
to { opacity: 1; transform: translateY(0); }
}
/* ── URGENT STRIP ── */
.urgent-strip {
background: var(–lime);
color: var(–green);
text-align: center;
padding: 16px 20px;
font-weight: 700;
font-size: 16px;
letter-spacing: .3px;
}
.urgent-strip a { color: var(–green); text-decoration: underline; }
/* ── FORM SECTION ── */
.form-section {
background: var(–green);
padding: 80px 40px;
position: relative;
overflow: hidden;
}
.form-section::before {
content: ”;
position: absolute;
top: -60px; right: -60px;
width: 300px; height: 300px;
background: radial-gradient(circle, rgba(168,216,50,0.15) 0%, transparent 70%);
pointer-events: none;
}
.form-inner {
max-width: 900px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px;
align-items: center;
}
.form-headline {
color: #fff;
}
.form-headline .eyebrow {
color: var(–lime);
font-size: 12px;
font-weight: 700;
letter-spacing: 3px;
text-transform: uppercase;
margin-bottom: 12px;
}
.form-headline h2 {
font-family: ‘Bebas Neue’, cursive;
font-size: 52px;
line-height: 1.05;
letter-spacing: 1px;
}
.form-headline p {
color: rgba(255,255,255,0.7);
margin-top: 16px;
font-size: 16px;
line-height: 1.6;
}
.form-perks {
margin-top: 24px;
display: flex;
flex-direction: column;
gap: 10px;
}
.form-perk {
display: flex;
align-items: center;
gap: 10px;
color: rgba(255,255,255,0.8);
font-size: 14px;
}
.form-perk .icon {
width: 24px; height: 24px;
background: rgba(168,216,50,0.2);
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
flex-shrink: 0;
color: var(–lime);
font-size: 13px;
}
.lead-form {
background: #fff;
border-radius: 12px;
padding: 36px 32px;
box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}
.lead-form h3 {
font-family: ‘DM Serif Display’, serif;
font-size: 24px;
color: var(–green);
margin-bottom: 6px;
}
.lead-form .sub { font-size: 13px; color: #888; margin-bottom: 24px; }
.form-field {
margin-bottom: 16px;
}
.form-field label {
display: block;
font-size: 12px;
font-weight: 600;
letter-spacing: .5px;
text-transform: uppercase;
color: var(–text-mid);
margin-bottom: 6px;
}
.form-field input,
.form-field select {
width: 100%;
padding: 12px 16px;
border: 2px solid #e8e8e8;
border-radius: 6px;
font-family: ‘DM Sans’, sans-serif;
font-size: 15px;
color: var(–charcoal);
background: #fafafa;
transition: border-color .2s;
appearance: none;
}
.form-field input:focus,
.form-field select:focus {
outline: none;
border-color: var(–green-light);
background: #fff;
}
.form-submit {
width: 100%;
background: var(–lime);
color: var(–green);
font-weight: 700;
font-size: 17px;
padding: 16px;
border: none;
border-radius: 6px;
cursor: pointer;
font-family: ‘DM Sans’, sans-serif;
transition: background .2s, transform .15s;
margin-top: 4px;
letter-spacing: .3px;
}
.form-submit:hover { background: var(–lime-bright); transform: translateY(-1px); }
.form-note {
text-align: center;
font-size: 12px;
color: #aaa;
margin-top: 12px;
}
/* ── PESTS SECTION ── */
.pests-section {
padding: 100px 40px;
background: var(–warm-white);
}
.section-header {
text-align: center;
margin-bottom: 60px;
}
.section-header .eyebrow {
font-size: 12px;
font-weight: 700;
letter-spacing: 3px;
text-transform: uppercase;
color: var(–green-light);
margin-bottom: 12px;
}
.section-header h2 {
font-family: ‘Bebas Neue’, cursive;
font-size: clamp(40px, 4vw, 60px);
letter-spacing: 1px;
color: var(–green);
line-height: 1.05;
}
.section-header p {
font-size: 17px;
color: #666;
max-width: 540px;
margin: 14px auto 0;
line-height: 1.6;
}
.pests-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
gap: 16px;
max-width: 1000px;
margin: 0 auto;
}
.pest-card {
background: #fff;
border: 2px solid #f0f0f0;
border-radius: 12px;
padding: 28px 16px;
text-align: center;
transition: border-color .2s, box-shadow .2s, transform .2s;
cursor: default;
}
.pest-card:hover {
border-color: var(–green-light);
box-shadow: 0 8px 24px rgba(45,110,69,0.12);
transform: translateY(-4px);
}
.pest-emoji { font-size: 40px; display: block; margin-bottom: 10px; }
.pest-name {
font-weight: 600;
font-size: 14px;
color: var(–charcoal);
letter-spacing: .3px;
}
/* ── WHY US ── */
.why-section {
background: var(–cream);
padding: 100px 40px;
}
.why-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px;
max-width: 1000px;
margin: 0 auto;
}
.why-card {
background: #fff;
border-radius: 12px;
padding: 36px 28px;
box-shadow: 0 2px 16px rgba(0,0,0,0.06);
position: relative;
overflow: hidden;
}
.why-card::before {
content: ”;
position: absolute;
top: 0; left: 0; right: 0;
height: 4px;
background: linear-gradient(90deg, var(–green), var(–lime));
}
.why-icon {
width: 52px; height: 52px;
background: rgba(45,110,69,0.08);
border-radius: 12px;
display: flex; align-items: center; justify-content: center;
font-size: 26px;
margin-bottom: 18px;
}
.why-card h3 {
font-family: ‘DM Serif Display’, serif;
font-size: 20px;
color: var(–green);
margin-bottom: 10px;
}
.why-card p {
font-size: 14px;
color: #666;
line-height: 1.65;
}
/* ── PROCESS SECTION ── */
.process-section {
padding: 100px 40px;
background: var(–warm-white);
}
.process-steps {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 24px;
max-width: 1000px;
margin: 0 auto;
position: relative;
}
.process-steps::before {
content: ”;
position: absolute;
top: 32px;
left: 12%;
right: 12%;
height: 2px;
background: linear-gradient(90deg, var(–green), var(–lime));
z-index: 0;
}
.step {
text-align: center;
position: relative;
z-index: 1;
}
.step-num {
width: 64px; height: 64px;
background: var(–green);
color: #fff;
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
font-family: ‘Bebas Neue’, cursive;
font-size: 28px;
margin: 0 auto 20px;
border: 4px solid var(–warm-white);
box-shadow: 0 0 0 2px var(–green);
}
.step:nth-child(4) .step-num { background: var(–lime); color: var(–green); box-shadow: 0 0 0 2px var(–lime); }
.step h3 {
font-weight: 700;
font-size: 16px;
color: var(–charcoal);
margin-bottom: 8px;
}
.step p { font-size: 13px; color: #888; line-height: 1.5; }
/* ── TESTIMONIALS ── */
.reviews-section {
background: var(–green);
padding: 100px 40px;
}
.reviews-section .section-header h2 { color: #fff; }
.reviews-section .section-header p { color: rgba(255,255,255,0.6); }
.reviews-section .section-header .eyebrow { color: var(–lime); }
.reviews-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
max-width: 1000px;
margin: 0 auto;
}
.review-card {
background: rgba(255,255,255,0.07);
border: 1px solid rgba(255,255,255,0.12);
border-radius: 12px;
padding: 28px 24px;
transition: background .2s;
}
.review-card:hover { background: rgba(255,255,255,0.12); }
.stars { color: var(–lime); font-size: 18px; margin-bottom: 14px; letter-spacing: 2px; }
.review-text { color: rgba(255,255,255,0.85); font-size: 15px; line-height: 1.65; font-style: italic; }
.reviewer { margin-top: 18px; display: flex; align-items: center; gap: 12px; }
.reviewer-avatar {
width: 40px; height: 40px;
background: var(–lime);
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
font-weight: 700; font-size: 16px; color: var(–green);
}
.reviewer-name { font-weight: 600; color: #fff; font-size: 14px; }
.reviewer-loc { font-size: 12px; color: rgba(255,255,255,0.5); margin-top: 2px; }
/* ── SERVICE AREA ── */
.area-section {
background: var(–cream);
padding: 80px 40px;
text-align: center;
}
.area-tags {
display: flex;
flex-wrap: wrap;
gap: 10px;
justify-content: center;
max-width: 800px;
margin: 32px auto 0;
}
.area-tag {
background: var(–green);
color: #fff;
font-size: 13px;
font-weight: 600;
padding: 8px 18px;
border-radius: 100px;
letter-spacing: .3px;
}
/* ── FINAL CTA ── */
.final-cta {
background: var(–charcoal);
padding: 100px 40px;
text-align: center;
position: relative;
overflow: hidden;
}
.final-cta::before {
content: ‘A+’;
position: absolute;
font-family: ‘Bebas Neue’, cursive;
font-size: 400px;
color: rgba(255,255,255,0.03);
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
pointer-events: none;
letter-spacing: -10px;
}
.final-cta h2 {
font-family: ‘Bebas Neue’, cursive;
font-size: clamp(48px, 5vw, 80px);
color: #fff;
letter-spacing: 2px;
line-height: 1.05;
position: relative;
}
.final-cta h2 span { color: var(–lime); }
.final-cta p {
font-size: 18px;
color: rgba(255,255,255,0.6);
max-width: 480px;
margin: 16px auto 40px;
line-height: 1.6;
position: relative;
}
.cta-buttons { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; position: relative; }
.btn-big {
background: var(–lime);
color: var(–green);
font-weight: 700;
font-size: 20px;
padding: 20px 40px;
border-radius: 6px;
text-decoration: none;
transition: background .2s, transform .15s;
display: inline-flex;
align-items: center;
gap: 10px;
box-shadow: 0 8px 32px rgba(168,216,50,0.35);
}
.btn-big:hover { background: var(–lime-bright); transform: translateY(-2px); }
.btn-outline-white {
background: transparent;
color: #fff;
font-weight: 600;
font-size: 18px;
padding: 20px 36px;
border-radius: 6px;
text-decoration: none;
border: 2px solid rgba(255,255,255,0.25);
transition: border-color .2s, background .2s;
display: inline-flex;
align-items: center;
gap: 10px;
}
.btn-outline-white:hover { border-color: #fff; background: rgba(255,255,255,0.05); }
/* ── FOOTER ── */
footer {
background: var(–green);
padding: 40px;
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 20px;
border-top: 3px solid var(–lime);
}
.footer-logo {
font-family: ‘Bebas Neue’, cursive;
font-size: 32px;
color: var(–lime);
letter-spacing: 2px;
}
.footer-logo span { color: #fff; }
.footer-info { color: rgba(255,255,255,0.6); font-size: 14px; line-height: 1.8; text-align: center; }
.footer-info strong { color: #fff; }
.footer-cta a {
background: var(–lime);
color: var(–green);
font-weight: 700;
padding: 12px 24px;
border-radius: 4px;
text-decoration: none;
font-size: 16px;
display: inline-flex;
align-items: center;
gap: 8px;
}
/* ── FLOATING PHONE ── */
.float-phone {
position: fixed;
bottom: 28px;
right: 28px;
z-index: 99;
background: var(–lime);
color: var(–green);
font-weight: 700;
font-size: 16px;
padding: 14px 24px;
border-radius: 50px;
text-decoration: none;
box-shadow: 0 8px 28px rgba(0,0,0,0.25);
display: flex;
align-items: center;
gap: 8px;
animation: pulse 2s ease-in-out infinite;
transition: transform .2s;
}
.float-phone:hover { transform: scale(1.05); animation: none; }
@keyframes pulse {
0%, 100% { box-shadow: 0 8px 28px rgba(0,0,0,0.25), 0 0 0 0 rgba(168,216,50,0.5); }
50% { box-shadow: 0 8px 28px rgba(0,0,0,0.25), 0 0 0 10px rgba(168,216,50,0); }
}
/* ── RESPONSIVE ── */
@media (max-width: 900px) {
.hero { grid-template-columns: 1fr; }
.hero-left { padding: 120px 32px 60px; }
.hero-left::after { display: none; }
.hero-right { padding: 40px 32px; }
.stat-grid { grid-template-columns: 1fr 1fr; padding: 40px 32px; }
.stat-card:nth-child(2), .stat-card:nth-child(3) { margin: 0; }
.form-inner { grid-template-columns: 1fr; gap: 40px; }
.why-grid { grid-template-columns: 1fr; }
.process-steps { grid-template-columns: 1fr 1fr; }
.process-steps::before { display: none; }
.reviews-grid { grid-template-columns: 1fr; }
nav { padding: 12px 20px; }
.nav-logo { font-size: 22px; }
}
@media (max-width: 600px) {
.pests-grid { grid-template-columns: repeat(3, 1fr); }
.hero-trust { flex-direction: column; gap: 12px; }
.hero-cta-group { flex-direction: column; }
.btn-primary, .btn-secondary { text-align: center; justify-content: center; }
footer { flex-direction: column; text-align: center; }
.footer-info { text-align: center; }
}
/* success message */
.form-success {
display: none;
text-align: center;
padding: 30px;
}
.form-success .big-check {
font-size: 60px;
margin-bottom: 12px;
}
.form-success h3 {
font-family: ‘Bebas Neue’, cursive;
font-size: 32px;
color: var(–green);
letter-spacing: 1px;
}
.form-success p { color: #666; margin-top: 8px; font-size: 15px; }
.form-success .phone-link {
display: inline-block;
margin-top: 16px;
background: var(–lime);
color: var(–green);
font-weight: 700;
padding: 12px 24px;
border-radius: 6px;
text-decoration: none;
font-size: 18px;
}
A+ Exterminators
571-457-2052
Same-Day Service Available
Northern Virginia’s
Pest Control
Experts
Mosquitoes, bed bugs, wasps, rodents — we eliminate any pest, fast. Eco-friendly treatments, guaranteed results, serving all of Northern Virginia.
✓ Licensed & Insured
✓ Eco-Friendly
✓ Satisfaction Guaranteed
A+
Rated Service
5-star reviews across Northern VA
24/7
Emergency Line
We pick up when pests don’t wait
0%
Toxic Residue
Safe for kids, pets & the planet
1 Day
Response Time
Same-day inspection & treatment
Don’t wait — pests multiply fast.
Call 571-457-2052 for same-day inspection in Reston & all of Northern Virginia.
Same-Day Service
Call before noon and we can often be at your door the same day. Pests don’t wait — and neither do we. Emergency appointments available.
Eco-Friendly Products
Our treatments are tough on pests and gentle on your family, pets, and the environment. We use EPA-registered, green-certified solutions.
Guaranteed Results
If pests return between scheduled treatments, so do we — at no extra cost. We stand behind every job we do, period.
Expert Technicians
Our licensed pest control professionals are trained on the latest techniques and local pest behavior specific to Northern Virginia.
Transparent Pricing
No hidden fees, no bait-and-switch. You get a clear, upfront quote before any work begins. Free inspections, always.
Locally Owned
We’re your neighbors. Based in Reston, we know Northern Virginia’s pest challenges inside and out. Supporting local means faster, better service.
1
Call or Book Online
Reach us by phone or fill out our form. We respond fast — usually within 15 minutes.
2
Free Inspection
A licensed technician visits, identifies the pest problem, and gives you a transparent quote.
3
Treatment Day
We apply targeted, eco-friendly treatments designed to eliminate your specific pest problem.
4
Pest-Free Living
Enjoy your home again. We follow up to make sure the treatment worked — guaranteed.
★★★★★
“Called A+ Exterminators on a Tuesday morning about a wasp nest and they were at my house by 2pm the same day. Professional, fast, and the price was exactly what they quoted. Highly recommend!”
★★★★★
“We had a serious bed bug issue and were panicking. A+ came out same day, explained everything clearly, and the treatment worked completely. Eco-friendly too, which was important to us with two young kids.”
★★★★★
“Best pest control company in Northern Virginia, hands down. Used them for mosquito treatment all summer and my backyard is finally usable again. Worth every penny. Will be a loyal customer.”
Reston
Herndon
McLean
Vienna
Fairfax
Great Falls
Sterling
Ashburn
Leesburg
Chantilly
Burke
Springfield
Alexandria
Arlington
Centreville
Manassas
Woodbridge
& Surrounding Areas
Ready to Be Pest-Free?
Same-day service available. Free inspection. Eco-friendly treatments. Call now or book online.
Call Now — Free Quote
function submitForm() {
const name = document.getElementById(‘fname’).value.trim();
const phone = document.getElementById(‘fphone’).value.trim();
const city = document.getElementById(‘fcity’).value.trim();
if (!name || !phone) {
alert(‘Please enter your name and phone number so we can reach you.’);
return;
}
document.getElementById(‘lead-form-box’).style.display = ‘none’;
document.getElementById(‘form-success’).style.display = ‘block’;
}
// Smooth scroll for anchor links
document.querySelectorAll(‘a[href^=”#”]’).forEach(a => {
a.addEventListener(‘click’, e => {
const target = document.querySelector(a.getAttribute(‘href’));
if (target) {
e.preventDefault();
target.scrollIntoView({ behavior: ‘smooth’, block: ‘start’ });
}
});
});