.fusion-page-title-bar,.fusion-page-title-row,.avada-page-titlebar-wrapper{display:none!important}.fbody .gform_wrapper{margin:0!important}
.fbody .gform_wrapper .gfield_label,.fbody .gform_wrapper .gchoice label,.fbody .gform_wrapper legend,.fbody .gform_wrapper label,.fbody .gform_wrapper .gform-field-label{color:#0c0c0c!important;font-weight:600!important;opacity:1!important}
.fbody .gform_wrapper input[type="text"],.fbody .gform_wrapper input[type="email"],.fbody .gform_wrapper input[type="tel"],.fbody .gform_wrapper input[type="number"],.fbody .gform_wrapper textarea,.fbody .gform_wrapper select{width:100%!important;background:#fff!important;border:1px solid #e2e2e2!important;border-radius:10px!important;padding:13px 14px!important;font-size:16px!important;color:#0c0c0c!important;box-shadow:none!important}
.fbody .gform_wrapper textarea{min-height:96px!important}
.fbody .gform_wrapper .gfield_checkbox{display:flex!important;flex-wrap:wrap!important;gap:9px 16px!important}
.fbody .gform_wrapper .gfield_checkbox .gchoice{display:flex!important;align-items:center!important;gap:7px!important;margin:0!important}
.fbody .gform_wrapper .gfield_checkbox input[type="checkbox"]{width:18px!important;height:18px!important;accent-color:var(--orange,#ff6700)!important;margin:0!important}
.fbody .gform_wrapper .gform_footer{padding:14px 0 0!important;margin:0!important}
.fbody .gform_wrapper .gform_button,.fbody .gform_wrapper .gform_next_button,.fbody .gform_wrapper .gform_previous_button{background:var(--orange,#ff6700)!important;color:#fff!important;border:none!important;border-radius:999px!important;padding:15px 28px!important;font-weight:700!important;font-size:16px!important;width:100%!important;cursor:pointer!important;text-transform:none!important}
.fbody .gform_wrapper .gform_button:hover,.fbody .gform_wrapper .gform_next_button:hover,.fbody .gform_wrapper .gform_previous_button:hover{background:var(--orange-dk,#e55a00)!important}.fbody .gform_wrapper .gform_previous_button{background:transparent!important;color:var(--orange,#ff6700)!important;border:2px solid var(--orange,#ff6700)!important}.fbody .gform_wrapper .gform_previous_button:hover{background:#fff3e8!important}.fbody .gform_wrapper .gform_page_footer{display:flex!important;gap:12px!important;align-items:center!important}.fbody .gform_wrapper .gform_page_footer .gform_button,.fbody .gform_wrapper .gform_page_footer .gform_next_button,.fbody .gform_wrapper .gform_page_footer .gform_previous_button{min-height:48px!important}
.fbody .gform_wrapper .gfield{margin-bottom:14px!important}
.fbody .gform_wrapper .gform_required_legend{display:none!important}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
--orange:#ff6700; --orange-dk:#e55a00;
--ink:#211f1c; --body:#3a3a38; --muted:#6b6b68;
--offwhite:#f6f3ef; --line:#e4e1db; --white:#fff;
--max:1200px;
--fHead:'Montserrat',Arial,sans-serif; --fBody:'Roboto',Arial,sans-serif;
}
body{background:var(--white);color:var(--body);font-family:var(--fBody);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--orange);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:var(--max);margin:0 auto;padding:0 40px}
.o{color:var(--orange)} /* orange keyword highlight */
@media(max-width:820px){.wrap{padding:0 22px}}
/* ---------- Top trust bar ---------- */
.trustbar{background:var(--ink);color:#fff;font-size:13.5px}
.trustbar .wrap{display:flex;gap:26px;align-items:center;justify-content:center;flex-wrap:wrap;padding:9px 40px}
.trustbar span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.trustbar .ic{color:var(--orange);font-size:14px}
@media(max-width:820px){.trustbar{display:none}}
/* ---------- Header ---------- */
.head{background:var(--ink);border-bottom:1px solid rgba(255,255,255,.08);position:sticky;top:0;z-index:50}
.head .wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 40px}
.head .logo{height:54px;display:block}
.nav{display:flex;align-items:center;gap:30px}
.nav a.link{color:#fff;font-family:var(--fHead);font-weight:600;font-size:15px;text-transform:capitalize}
.nav a.link:hover{color:var(--orange);text-decoration:none}
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--fHead);font-weight:700;font-size:15px;border-radius:999px;padding:11px 22px;cursor:pointer;transition:.18s;white-space:nowrap}
.btn-o{background:var(--orange);color:#fff;border:2px solid var(--orange)}
.btn-o:hover{background:var(--orange-dk);border-color:var(--orange-dk);text-decoration:none}
.btn-ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.5)}
.btn-ghost:hover{background:#fff;color:var(--ink);text-decoration:none}
.btn-dk{background:var(--ink);color:#fff;border:2px solid var(--ink)}
.btn-dk:hover{background:#000;text-decoration:none}
@media(max-width:980px){.nav .link{display:none}}
/* ---------- Title bar hero ---------- */
.titlebar{position:relative;background:#141210}
.titlebar .wrap{padding:54px 40px 46px}/* KC titlebar v3 2026-08-04: clean, Wichita-structured, one CTA */.titlebar .wrap{max-width:1180px;margin:0 auto;padding:72px 24px 56px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:24px}.titlebar h1{max-width:900px;margin:0}.titlebar .tb-cta{min-height:52px;padding:14px 30px;font-size:17px;box-shadow:0 6px 20px rgba(255,103,0,.28)}.titlebar .tb-cta:hover{background:var(--orange-dk,#e55a00);border-color:var(--orange-dk,#e55a00);transform:translateY(-1px)}.titlebar .crumb{margin:0;color:rgba(255,255,255,.82);font-size:14px}.titlebar .crumb a{color:#fff;text-decoration:none;display:inline-block;padding:7px 2px}.titlebar .crumb a:hover{color:var(--orange,#ff6700)}.titlebar .crumb .sep{margin:0 8px;opacity:.6}@media(max-width:768px){.titlebar .wrap{padding:48px 20px 40px;gap:18px}}@media(max-width:480px){.titlebar .wrap{padding:40px 16px 32px}.titlebar .tb-cta{width:100%;justify-content:center}.titlebar .crumb{font-size:13px}}
.titlebar .badge{display:inline-flex;align-items:center;gap:7px;background:var(--orange);color:#fff;font-family:var(--fHead);font-weight:700;font-size:13px;letter-spacing:.3px;padding:6px 14px;border-radius:999px;margin-bottom:16px}
.titlebar h1{font-family:var(--fHead);font-weight:800;color:#fff;font-size:clamp(30px,4.4vw,52px);line-height:1.1;max-width:880px;letter-spacing:-.5px}
.crumb{margin-top:16px;font-size:14.5px;color:rgba(255,255,255,.75)}
.crumb a{color:var(--orange)} .crumb .sep{margin:0 9px;color:rgba(255,255,255,.4)}
/* ---------- Body two-column ---------- */
.main{padding:56px 0 10px}
.grid{display:grid;grid-template-columns:1fr 400px;gap:56px;align-items:start}
@media(max-width:980px){.grid{grid-template-columns:1fr;gap:40px}}
.article h2{font-family:var(--fHead);font-weight:700;color:var(--ink);font-size:clamp(23px,2.6vw,31px);line-height:1.18;margin:42px 0 8px;letter-spacing:-.3px}
.article h2:first-of-type{margin-top:0}
.article h2::after{content:"";display:block;width:54px;height:4px;background:var(--orange);border-radius:3px;margin-top:14px;margin-bottom:20px}
.article h3{font-family:var(--fHead);font-weight:700;color:var(--ink);font-size:19px;margin:26px 0 9px}
.article p{margin-bottom:17px;color:var(--body)}
.article ul{list-style:none;margin:6px 0 22px}
.article ul li{position:relative;padding-left:30px;margin-bottom:11px;color:var(--body)}
.article ul li::before{content:"\2713";position:absolute;left:0;top:1px;color:var(--orange);font-weight:800}
.lead{font-size:20px;color:var(--ink);font-weight:500;line-height:1.55}
/* local pressure callout */
.pressure{background:var(--offwhite);border-left:5px solid var(--orange);border-radius:0 8px 8px 0;padding:22px 26px;margin:26px 0 30px}
.pressure .k{font-family:var(--fHead);font-weight:700;color:var(--ink);font-size:14px;letter-spacing:.4px;text-transform:uppercase;margin-bottom:8px}
.pressure p{margin:0;font-size:17.5px;color:var(--body)}
/* signs grid — interactive hover cards (reuses the .pest hover system) */
.scan{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:8px 0 30px}
@media(max-width:520px){.scan{grid-template-columns:1fr 1fr}}
.pest{position:relative;outline:none}
.pest-chip{
background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;
font-family:var(--fHead);font-weight:600;color:var(--ink);font-size:15px;
display:flex;align-items:center;gap:9px;cursor:pointer;
transition:border-color .18s,box-shadow .18s,transform .18s;
}
.pest-chip .d{width:9px;height:9px;border-radius:50%;background:var(--orange);flex-shrink:0;transition:transform .18s;margin-top:3px;align-self:flex-start}
.pest:hover .pest-chip,.pest:focus-within .pest-chip{
border-color:var(--orange);box-shadow:0 6px 18px rgba(255,103,0,.18);transform:translateY(-2px);
}
.pest:hover .pest-chip .d,.pest:focus-within .pest-chip .d{transform:scale(1.6)}
.pest-card{
position:absolute;bottom:calc(100% + 14px);left:50%;
transform:translateX(-50%) translateY(8px) scale(.97);
width:300px;max-width:84vw;background:var(--ink);color:#fff;border-radius:14px;
border:1px solid rgba(255,255,255,.08);box-shadow:0 18px 50px rgba(20,18,16,.45);
padding:18px;z-index:30;
opacity:0;visibility:hidden;pointer-events:none;
transition:opacity .2s ease .14s,transform .2s ease .14s,visibility .2s .14s;
}
.pest-card::before{content:"";position:absolute;top:100%;left:0;right:0;height:24px}
.pest:hover .pest-card,.pest:focus-within .pest-card{
opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;
transform:translateX(-50%) translateY(0) scale(1);
}
.pest-card::after{
content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);
border:9px solid transparent;border-top-color:var(--ink);
}
.pc-name{font-family:var(--fHead);font-weight:700;font-size:17px;color:#fff;margin-bottom:6px}
.pest-card p{font-size:13.5px;line-height:1.5;color:#d9d6d2;margin:0}
.pest:nth-child(3n+1) .pest-card{left:0;transform:translateX(0) translateY(8px) scale(.97)}
.pest:nth-child(3n+1):hover .pest-card,.pest:nth-child(3n+1):focus-within .pest-card{transform:translateX(0) translateY(0) scale(1)}
.pest:nth-child(3n+1) .pest-card::after{left:38px}
.pest:nth-child(3n) .pest-card{left:auto;right:0;transform:translateX(0) translateY(8px) scale(.97)}
.pest:nth-child(3n):hover .pest-card,.pest:nth-child(3n):focus-within .pest-card{transform:translateX(0) translateY(0) scale(1)}
.pest:nth-child(3n) .pest-card::after{left:auto;right:38px;transform:none}
@media(max-width:640px){
.pest-card,
.pest:nth-child(3n+1) .pest-card,
.pest:nth-child(3n) .pest-card{
position:fixed;left:14px;right:14px;bottom:90px;top:auto;
width:auto;max-width:none;z-index:250;
transform:translateY(16px) scale(.99);
}
.pest:focus-within .pest-card,
.pest:nth-child(3n+1):focus-within .pest-card,
.pest:nth-child(3n):focus-within .pest-card{transform:translateY(0) scale(1)}
.pest-card::after,.pest-card::before{display:none}
}
/* numbered process steps */
.steps{list-style:none;counter-reset:step;margin:8px 0 30px;padding:0}
.steps li{position:relative;padding:0 0 22px 64px;margin:0}
.steps li::before{
counter-increment:step;content:counter(step);
position:absolute;left:0;top:0;width:44px;height:44px;border-radius:50%;
background:var(--orange);color:#fff;font-family:var(--fHead);font-weight:800;font-size:19px;
display:flex;align-items:center;justify-content:center;
}
.steps li::after{content:"";position:absolute;left:21px;top:44px;bottom:-4px;width:2px;background:var(--line)}
.steps li:last-child::after{display:none}
.steps .st{font-family:var(--fHead);font-weight:700;color:var(--ink);font-size:18px;margin-bottom:4px;display:block;padding-top:9px}
.steps p{margin:0;color:var(--body);font-size:16.5px}
/* inline CTA */
.cta-card{background:var(--ink);border-radius:12px;padding:28px 30px;margin:34px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.cta-card p{margin:0;color:#fff;font-family:var(--fHead);font-weight:600;font-size:20px}
.cta-card p .o{color:var(--orange)}
/* membership card */
.club{background:var(--offwhite);border:1px solid var(--line);border-radius:14px;padding:28px 30px;margin:30px 0}
.club .ce{font-family:var(--fHead);font-weight:700;color:var(--orange);font-size:12px;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:8px}
.club h3{font-family:var(--fHead);font-weight:800;color:var(--ink);font-size:23px;margin:0 0 12px}
.club p{margin:0 0 14px;color:var(--body)}
.club ul{margin:0}
/* FAQ */
.faq-shell{position:relative;margin:34px 0 40px;padding:10px;background:#f6f3ef;border:1px solid #d5cec6;border-top:3px solid #ff6700;border-radius:0 0 2px 2px;box-shadow:0 22px 55px -18px rgba(0,0,0,.5);overflow:hidden}
.faq-shell::before{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(33,31,28,.10);pointer-events:none;z-index:1}
.faq-head{position:relative;z-index:2;padding:20px 20px 0}
.faq-kicker{font-family:var(--fHead);font-weight:800;color:#b34700;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;margin-bottom:10px}
.faq-shell h2{margin:0 0 8px;font-family:var(--fHead);font-weight:800;color:#211f1c;font-size:clamp(24px,3vw,34px);line-height:1.12;letter-spacing:-.02em}
.faq-intro{margin:0 0 30px;color:#5f5d59;font-size:16px;line-height:1.55;max-width:52ch}
.faq-shell .faq{position:relative;z-index:2;margin:0;background:#fff;border:0;border-radius:0;overflow:hidden}
.faq-shell .faq details{border-top:1px solid rgba(255,103,0,.55);transition:background-color .18s ease}
.faq-shell .faq details:last-child{border-bottom:1px solid rgba(255,103,0,.55)}
.faq-shell .faq details:hover{background:#fbf8f4}
.faq-shell .faq summary{list-style:none;cursor:pointer;position:relative;min-height:48px;padding:20px 62px 20px 20px;font-family:var(--fHead);font-weight:700;color:#211f1c;font-size:18px;line-height:1.35;display:block}
.faq-shell .faq summary::-webkit-details-marker{display:none}
.faq-shell .faq summary::after{content:"";position:absolute;top:50%;right:20px;width:26px;height:26px;transform:translateY(-50%);border:1px solid rgba(33,31,28,.22);border-radius:2px;background-image:linear-gradient(#d95700,#d95700),linear-gradient(#d95700,#d95700);background-repeat:no-repeat;background-position:center center,center center;background-size:11px 2px,2px 11px;transition:border-color .18s ease,background-size .18s ease}
.faq-shell .faq details[open] summary::after{background-size:11px 2px,2px 0;border-color:rgba(255,103,0,.75)}
.faq-shell .faq details:hover summary::after{border-color:rgba(255,103,0,.6)}
.faq-shell .faq summary:focus-visible{outline:3px solid #d95700;outline-offset:-3px}
.faq-shell .faq details p{padding:0 20px 26px;margin:0;color:#3a3a38;font-size:16px;line-height:1.6;max-width:68ch}
@media(max-width:640px){.faq-shell{margin:28px 0 34px;border-radius:0 0 2px 2px}.faq-shell::before{top:6px;right:6px;bottom:6px;left:6px}.faq-head{padding:16px 14px 0}.faq-intro{margin-bottom:24px}.faq-shell .faq summary{padding:18px 48px 18px 14px;font-size:16px}.faq-shell .faq summary::after{right:14px;width:22px;height:22px;background-size:9px 2px,2px 9px}.faq-shell .faq details[open] summary::after{background-size:9px 2px,2px 0}.faq-shell .faq details p{padding:0 14px 22px;font-size:15.5px}}
@media(prefers-reduced-motion:reduce){.faq-shell .faq details,.faq-shell .faq summary::after{transition:none}} body .main .article .wrap ul li a{color:#b34700;text-decoration:underline;text-underline-offset:2px} body .main .article p a{color:#b34700;text-decoration:underline;text-underline-offset:2px} body .main .article .nap a{color:#b34700;text-decoration:underline;text-underline-offset:2px} body .main .article div.sa-kick{color:#b34700} body .main .article div.ce{color:#b34700} .faq-shell .faq details p a{color:#b34700;text-decoration:underline;text-underline-offset:2px} .faq-shell .faq details p a:hover{color:#a83f00}
/* NAP */
.nap{background:var(--offwhite);border-radius:10px;padding:22px 26px;margin:34px 0;font-size:16px;line-height:1.8}
.nap strong{display:block;font-family:var(--fHead);font-size:17px;color:var(--ink);margin-bottom:4px}
.compliance{font-size:12.5px;color:var(--muted);line-height:1.5;margin:22px 0 0;padding-top:16px;border-top:1px solid var(--line)}
/* ---------- Sidebar form ---------- */
.formcard{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 30px rgba(33,31,28,.07);position:sticky;top:96px;overflow:hidden}
.formcard .ftop{background:var(--ink);padding:22px 24px 20px;position:relative}
.formcard .ftop::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--orange)}
.formcard .ftop .eyebrow{font-family:var(--fHead);font-weight:700;color:var(--orange);font-size:11.5px;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:8px}
.formcard .ftop h2{font-family:var(--fHead);font-weight:800;color:#fff;font-size:23px;margin:0;line-height:1.1}
.formcard .ftop p{margin:6px 0 0;color:rgba(255,255,255,.72);font-size:14px}
.formcard .ftop p .o{color:var(--orange);font-weight:700}
.formcard .ftop .trust{display:flex;align-items:center;gap:8px;margin-top:13px;padding-top:13px;border-top:1px solid rgba(255,255,255,.1);font-size:12.5px;color:rgba(255,255,255,.85)}
.formcard .ftop .trust .stars{color:#FBBC05;letter-spacing:1px}
.formcard .fbody{padding:22px 24px 26px}
.flabel{display:block;font-size:13.5px;font-weight:600;color:var(--ink);margin:0 0 6px;font-family:var(--fHead)}
.chk{display:grid;grid-template-columns:1fr 1fr;gap:7px 14px;margin:6px 0 18px}
.chk label{display:flex;align-items:center;gap:7px;font-size:14px;color:var(--body);cursor:pointer}
.chk input{accent-color:var(--orange);width:15px;height:15px}
.fi{width:100%;background:#f4f2ee;border:1px solid var(--line);border-radius:7px;padding:11px 13px;color:var(--ink);font-size:15px;font-family:var(--fBody);margin-bottom:13px;outline:none}
.fi:focus{border-color:var(--orange);background:#fff}
textarea.fi{min-height:84px;resize:vertical}
.two{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.fsub{width:100%;background:var(--orange);color:#fff;font-family:var(--fHead);font-weight:700;font-size:17px;border:none;border-radius:999px;padding:14px;cursor:pointer;transition:.18s}
.fsub:hover{background:var(--orange-dk)}
.fnote{font-size:11.5px;color:var(--muted);margin-top:10px;line-height:1.4}
.consent{display:flex;align-items:flex-start;gap:8px;font-size:11.5px;color:var(--muted);line-height:1.4;margin:2px 0 14px;cursor:pointer}
.consent input{accent-color:var(--orange);width:14px;height:14px;margin-top:2px;flex-shrink:0}
.area{margin-top:22px}
.area .ttl{font-family:var(--fHead);font-weight:700;color:var(--ink);font-size:15px;margin-bottom:10px}
.area ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}
.area li{font-size:13.5px;color:var(--body);display:flex;align-items:center;gap:7px}
.area li::before{content:"\2713";color:var(--orange);font-weight:800}
/* ---------- Phone CTA band ---------- */
.phoneband{background:var(--ink);text-align:center;padding:30px 40px;margin-top:46px}
.phoneband .l{color:#fff;font-family:var(--fHead);font-weight:600;font-size:21px}
.phoneband .n{color:var(--orange);font-family:var(--fHead);font-weight:800;font-size:34px;letter-spacing:-.5px;display:block;margin-top:4px}
.phoneband .n a{color:var(--orange)}
/* ---------- Service area module ---------- */
.servicearea{background:var(--offwhite);padding:52px 0}
.servicearea .wrap{max-width:var(--max);margin:0 auto;padding:0 40px}
.sa-kick{font-family:var(--fHead);font-weight:700;color:var(--orange);font-size:13px;letter-spacing:1.4px;text-transform:uppercase;margin-bottom:10px}
.sa-h{font-family:var(--fHead);font-weight:800;color:var(--ink);font-size:clamp(22px,2.6vw,30px);line-height:1.18;margin-bottom:12px;letter-spacing:-.3px}
.sa-lead{font-size:17px;color:var(--body);line-height:1.6;margin-bottom:22px;max-width:600px}
.sa-lead strong{color:var(--ink);font-weight:600}
.sa-chips{display:flex;flex-wrap:wrap;gap:10px}
.sa-chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 16px;font-family:var(--fHead);font-weight:600;font-size:14.5px;color:var(--ink);text-decoration:none;transition:border-color .15s,color .15s,transform .15s,box-shadow .15s}
.sa-chip:hover{border-color:var(--orange);color:var(--orange);transform:translateY(-2px);box-shadow:0 6px 16px rgba(255,103,0,.14);text-decoration:none}
.sa-chip .pin{width:8px;height:8px;border-radius:50%;background:var(--orange);flex-shrink:0}
.sa-chip.current{background:var(--ink);color:#fff;border-color:var(--ink);cursor:default}
.sa-chip.current:hover{transform:none;box-shadow:none;color:#fff}
.sa-chip.current .pin{background:#fff}
.sa-chip.more{background:transparent;border-style:dashed;color:var(--muted)}
.sa-chip.more:hover{color:var(--orange);border-color:var(--orange)}
/* ---------- KC Google reviews band ---------- */
.reviews{background:var(--offwhite);padding:52px 0}
.reviews .wrap{max-width:var(--max);margin:0 auto;padding:0 40px}
.reviews-kicker{font-family:var(--fHead);font-weight:700;color:var(--ink);font-size:13px;letter-spacing:1.4px;text-transform:uppercase;margin-bottom:14px}
.reviews-head{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.rating-lead{display:flex;align-items:center;gap:18px}
.rating-num{font-family:var(--fHead);font-weight:800;font-size:58px;color:var(--ink);line-height:.85}
.rating-stars{color:#FBBC05;font-size:21px;letter-spacing:2px}
.rating-sub{font-size:14px;color:var(--body);margin-top:5px}
.gword{font-weight:700;letter-spacing:-.2px}
.rating-scale{text-align:right}
.rating-scale .big{font-family:var(--fHead);font-weight:800;font-size:21px;color:var(--ink);line-height:1.2}
.rating-scale .big .o{color:var(--orange)}
.rating-scale .sm{font-size:13.5px;color:var(--muted);margin-top:5px}
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rv{background:#fff;border-radius:16px;padding:20px 22px;position:relative;box-shadow:0 1px 2px rgba(20,18,16,.04),0 12px 30px rgba(20,18,16,.07);transition:transform .18s,box-shadow .18s}
.rv:hover{transform:translateY(-3px);box-shadow:0 2px 5px rgba(20,18,16,.05),0 18px 42px rgba(20,18,16,.12)}
.rv .gmk{position:absolute;top:18px;right:20px;width:20px;height:20px;background:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA0OCA0OCc+PHBhdGggZmlsbD0nI0VBNDMzNScgZD0nTTI0IDkuNWMzLjU0IDAgNi43MSAxLjIyIDkuMjEgMy42bDYuODUtNi44NUMzNS45IDIuMzggMzAuNDcgMCAyNCAwIDE0LjYyIDAgNi41MSA1LjM4IDIuNTYgMTMuMjJsNy45OCA2LjE5QzEyLjQzIDEzLjcyIDE3Ljc0IDkuNSAyNCA5LjV6Jy8+PHBhdGggZmlsbD0nIzQyODVGNCcgZD0nTTQ2Ljk4IDI0LjU1YzAtMS41Ny0uMTUtMy4wOS0uMzgtNC41NUgyNHY5LjAyaDEyLjk0Yy0uNTggMi45Ni0yLjI2IDUuNDgtNC43OCA3LjE4bDcuNzMgNmM0LjUxLTQuMTggNy4wOS0xMC4zNiA3LjA5LTE3LjY1eicvPjxwYXRoIGZpbGw9JyNGQkJDMDUnIGQ9J00xMC41MyAyOC41OWMtLjQ4LTEuNDUtLjc2LTIuOTktLjc2LTQuNTlzLjI3LTMuMTQuNzYtNC41OWwtNy45OC02LjE5Qy45MiAxNi40NiAwIDIwLjEyIDAgMjRjMCAzLjg4LjkyIDcuNTQgMi41NiAxMC43OGw3Ljk3LTYuMTl6Jy8+PHBhdGggZmlsbD0nIzM0QTg1MycgZD0nTTI0IDQ4YzYuNDggMCAxMS45My0yLjEzIDE1Ljg5LTUuODFsLTcuNzMtNmMtMi4xNSAxLjQ1LTQuOTIgMi4zLTguMTYgMi4zLTYuMjYgMC0xMS41Ny00LjIyLTEzLjQ3LTkuOTFsLTcuOTggNi4xOUM2LjUxIDQyLjYyIDE0LjYyIDQ4IDI0IDQ4eicvPjwvc3ZnPg==') no-repeat center/contain}
.rv .rate{display:flex;align-items:center;gap:8px;margin-bottom:11px;padding-right:26px}
.rv .rate .s{color:#FBBC05;font-size:16px;letter-spacing:1px}
.rv .rate .when{font-size:12px;color:var(--muted)}
.rv .q{font-size:14.5px;color:var(--ink);line-height:1.6;margin:0 0 14px;font-weight:500}
.rv .rv-id{font-size:13px}
.rv .rv-id .nm{font-family:var(--fHead);font-weight:700;color:var(--ink)}
.rv .rv-id .loc{color:var(--muted)}
.reviews-cta{text-align:center;margin-top:26px}
@media(max-width:760px){.reviews-grid{grid-template-columns:1fr}.reviews-head{justify-content:center;text-align:center}.rating-scale{text-align:center}}
/* ---------- Guarantee band ---------- */
.guarantee{background:var(--offwhite);position:relative;overflow:hidden}
.guarantee .wrap{display:grid;grid-template-columns:200px 1fr;gap:44px;align-items:center;padding:56px 40px}
.crest{width:200px;height:auto;flex-shrink:0}
.guarantee h2{font-family:var(--fHead);font-weight:800;color:var(--ink);font-size:clamp(24px,3vw,34px);line-height:1.15;margin-bottom:14px}
.guarantee p{color:var(--body);margin-bottom:14px;max-width:640px}
@media(max-width:760px){.guarantee .wrap{grid-template-columns:1fr;text-align:center;justify-items:center}}
/* ---------- Dark CTA band ---------- */
.ctaband{background:linear-gradient(rgba(20,18,16,.78),rgba(20,18,16,.86)),url('https://bugbros.com/wp-content/uploads/2026/07/title-pest-control-truck-desktop-1920w.webp') center/cover;text-align:center;padding:60px 40px}
.ctaband h2{font-family:var(--fHead);font-weight:800;color:#fff;font-size:clamp(24px,3vw,36px);margin-bottom:22px;line-height:1.15}
.ctaband .row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
/* ---------- Footer ---------- */
.foot{background:#000;color:#cfcdca;font-size:14.5px}
.foot a{color:#cfcdca}
.foot a:hover{color:var(--orange);text-decoration:none}
.foot .foot-main{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;padding:54px 40px 30px;align-items:start}
.foot-brand img{display:block;margin-bottom:18px}
.foot-quote{font-style:italic;color:#b9b6b2;font-size:14px;line-height:1.6;margin:0 0 8px;max-width:340px}
.foot-cite{font-family:var(--fHead);font-weight:600;color:#fff;font-size:13px;font-style:normal}
.foot-h{font-family:var(--fHead);font-weight:700;color:#fff;font-size:16px;margin-bottom:14px}
.foot-col ul{list-style:none}
.foot-col li{margin-bottom:9px;font-size:14px}
.foot .nap3{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding:26px 40px;border-top:1px solid #1c1c1c;line-height:1.7}
.foot .nap3 .city{font-family:var(--fHead);font-weight:700;color:var(--orange);font-size:16px;margin-bottom:6px}
.foot .nap3 a{color:#cfcdca}
.foot .bottom{border-top:1px solid #2a2a2a;padding:18px 40px;text-align:center;font-size:13px;color:#8a8a87}
.foot .bottom a{color:#8a8a87}
@media(max-width:980px){.foot .foot-main{grid-template-columns:1fr 1fr;gap:30px}}
@media(max-width:760px){.foot .foot-main{grid-template-columns:1fr}.foot .nap3{grid-template-columns:1fr;gap:20px}}
/* ---------- Badge ticker (global footer) ---------- */
.ticker{background:var(--ink);overflow:hidden;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06)}
.ticker-track{display:flex;align-items:center;gap:46px;width:max-content;padding:14px 0;animation:ticker 26s linear infinite}
.ticker .bb-item{font-family:var(--fHead);font-weight:600;color:#fff;font-size:14px;letter-spacing:.3px;white-space:nowrap;display:inline-flex;align-items:center;gap:8px}
.ticker .bb-item::before{content:"\2713";color:var(--orange);font-weight:800}
.ticker .bb-item b{color:var(--orange);font-weight:700}
.ticker .bb-item a{color:#fff}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none;justify-content:center;flex-wrap:wrap;gap:18px 32px;width:auto}}
/* ---------- Closing band (global footer) ---------- */
.closeband{background:var(--ink);text-align:center;padding:54px 40px}
.closeband h2{font-family:var(--fHead);font-weight:800;color:#fff;font-size:clamp(24px,3vw,34px);margin-bottom:22px;line-height:1.15}
.closeband .row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
/* ---------- Mobile sticky CTA ---------- */
.m-cta{display:none}
@media(max-width:980px){
.m-cta{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--ink);padding:12px 16px;gap:10px;border-top:2px solid var(--orange);box-shadow:0 -4px 20px rgba(0,0,0,.3)}
.m-cta .btn{flex:1;justify-content:center;font-size:14px;padding:11px 10px}
body{padding-bottom:74px}
}
@media(max-width:768px){.titlebar{background-image:linear-gradient(rgba(20,18,16,.72),rgba(20,18,16,.82)),url('https://bugbros.com/wp-content/uploads/2026/07/title-pest-control-truck-mobile-900w.webp')}.ctaband{background-image:linear-gradient(rgba(20,18,16,.78),rgba(20,18,16,.86)),url('https://bugbros.com/wp-content/uploads/2026/07/title-pest-control-truck-mobile-900w.webp')}} body .main .article>p .o,body .main .article>p .bb-ch,body .main .article>h2 .o,body .main .article>h2 .bb-ch,body .main .article ol.steps p .o,body .main .article ol.steps p .bb-ch,body .main .article .faq-shell details p .o,body .main .article .faq-shell details p .bb-ch{color:#b34700}
/* WCAG AA: light-surface orange text */
body .club .o,body .club .bb-ch,body .servicearea .sa-lead .o,body .servicearea .sa-lead .bb-ch,body .reviews-kicker .o,body .reviews-kicker .bb-ch,body .rating-scale .big .o,body .rating-scale .big .bb-ch,body .guarantee .o,body .guarantee .bb-ch,body .faq-shell .faq details p .o,body .faq-shell .faq details p .bb-ch{color:#b34700}
body .cta-card a.btn-o[href="#quote"],body .ctaband a.btn-o[href="#quote"]{color:#211f1c}{"@context": "https://schema.org", "@type": "PestControlService", "name": "BugBros Pest Control", "url": "https://bugbros.com/where-we-kill-bugs/kansas-city-mo-pest-control/spider-control/", "telephone": "+18163072712", "priceRange": "$$", "image": "https://bugbros.com/wp-content/uploads/2026/07/BB-white-large.webp", "serviceType": "Spider Control and Brown Recluse Removal", "address": {"@type": "PostalAddress", "streetAddress": "9680 Marion Ridge", "addressLocality": "Kansas City", "addressRegion": "MO", "postalCode": "64137", "addressCountry": "US"}, "areaServed": ["Kansas City", "Independence", "Lee's Summit", "64108", "64109", "64110", "64111", "64112", "64113", "64127", "64131"], "makesOffer": {"@type": "Offer", "name": "CRAZY HAPPY Club", "description": "Contract-free pest control membership in Kansas City. Includes recurring quarterly treatment with a year-round exterior barrier, free re-service between visits, and coverage for spiders and common household pests like ants, beetles, crickets, wasps, and more. No contract, cancel anytime."}}
{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "Are brown recluse spiders really that common in Kansas City?", "acceptedAnswer": {"@type": "Answer", "text": "Yes. Kansas City is within the native range of the brown recluse, and local conditions, older homes, basements, undisturbed storage. Support high populations. Johnson County research has documented individual homes with populations exceeding 2,000 individuals. Most KC residents have brown recluse in their homes at some level; significant infestations are what require professional attention."}}, {"@type": "Question", "name": "How do I identify a brown recluse spider?", "acceptedAnswer": {"@type": "Answer", "text": "Brown recluse are medium-sized, tan to brown, with a violin-shaped marking on the front section of their body. Crucially, they have six eyes arranged in three pairs. Most spiders have eight eyes. If you find a spider you can't identify, don't handle it. Take a photo if possible and call us."}}, {"@type": "Question", "name": "What should I do if I think I was bitten by a brown recluse?", "acceptedAnswer": {"@type": "Answer", "text": "Seek medical attention promptly. Most brown recluse bites are minor, but some cause necrotic tissue damage that requires treatment. A doctor can assess the bite and advise appropriate care. Then call us, if there's a spider in your home that got close enough to bite someone, there's a population worth treating."}}, {"@type": "Question", "name": "Can I treat brown recluse spiders myself?", "acceptedAnswer": {"@type": "Answer", "text": "DIY sprays kill spiders on contact but don't reach established harborage zones or address populations hiding in walls, insulation, and storage areas. Effective treatment requires residual products and follow-up monitoring. Attempting to treat a significant infestation with consumer products typically moves the spiders without eliminating them."}}, {"@type": "Question", "name": "Are black widows common in Kansas City?", "acceptedAnswer": {"@type": "Answer", "text": "Less common indoors than brown recluse, but present throughout the area. Black widows prefer garages, sheds, wood piles, and outdoor structures. Regular perimeter treatment significantly reduces the likelihood of them entering living areas."}}, {"@type": "Question", "name": "How do I reduce spiders on my own between treatments?", "acceptedAnswer": {"@type": "Answer", "text": "Replace cardboard storage boxes with sealed plastic containers (brown recluse love cardboard). Reduce clutter in basements and closets. Seal gaps around utility penetrations and foundation cracks. Eliminating other insects reduces the food supply and limits spider populations over time."}}]}
★ 5.0 Google Rating
✓ BBB A+ Rated
✓ 10+ Years In Business
✓ 100% CRAZY HAPPY Guarantee
✓ Designed for Homes With Kids & Pets
Finding a spider in your home doesn’t always mean you have a serious problem, but brown recluse are different. Kansas City sits squarely in brown recluse country, and BugBros runs spider control Kansas City trusts, built to identify the species, find the harborage, and treat the infestation at the source. Every spider program is backed by the CRAZY HAPPY Club guarantee.
Spider Pressure · Kansas City
Kansas City sits near the northern edge of the brown recluse’s native range, in one of the most consistently active zones in Missouri and Kansas. The conditions here, older homes, finished basements, and undisturbed storage areas, are exactly what brown recluse populations need to establish themselves. Johnson County extension research has documented individual homes with populations exceeding 2,000 brown recluse. These aren’t occasional visitors.
Spider Treatment in Kansas City, MO
Most of the spiders that wander in from outside are looking for warmth and insects to eat, and they’ll stay put in a corner and stay out of your way. Brown recluse are the exception. In the right environment, they build populations that number in the hundreds, they don’t announce themselves, and their bites, though uncommon, are medically significant.
BugBros treats spiders as an identification problem first. Brown recluse, black widow, and nuisance species all call for different responses and different levels of urgency, so we confirm what you’re dealing with before any product goes down. Here are the spiders we see most in Kansas City homes and the signs that a population is established.
Brown Recluse
Brown Recluse
The one most KC homeowners watch for. Tan to dark brown, with a violin-shaped marking and six eyes in three pairs instead of eight. Hides in closets, stored boxes, crawl spaces, and basements. Bites are rare but can cause tissue damage.
Black Widow
Black Widow
Glossy black with the red hourglass under the abdomen. Prefers garages, sheds, wood piles, and outdoor furniture, with irregular webs low to the ground. Less common inside living areas than brown recluse, but the bite can require medical treatment.
Yellow Sac
Yellow Sac Spider
Pale yellow to cream, usually seen climbing walls near the ceiling. Responsible for more confirmed bites in the US than any other spider, though the bite causes localized pain and irritation and isn’t medically significant for most people.
Wolf Spiders
Wolf Spiders
Large, fast-moving, and hairy. Alarming to look at but not a real threat. They hunt insects on the floor rather than spinning webs, and while there’s no venom concern for healthy adults, their size and speed cause plenty of anxiety.
Egg Sacs
Egg Sacs
One egg sac can contain dozens to hundreds of offspring. Find them in corners, behind furniture, and in stored items. Egg sacs are why spider control almost always needs a follow-up visit, since they can hatch after the first treatment.
The Signs
The Signs
Three or more spiders a week in similar spots, visible egg sacs, a consistent presence every time you open a storage closet, or spiders showing up near beds and clothing. Spot any of those and it’s time for an inspection.
How BugBros Handles Spider Infestations in Kansas City
Same playbook on every Kansas City spider job. We identify before we treat, because a misidentified spider means the wrong response. Here’s exactly what happens, start to finish.
-
Inspect and identify the species
We start by identifying what you have, since brown recluse, black widow, and nuisance species all call for different responses. We inspect harborage areas, the storage spaces, closets, crawl spaces, basements, and garage walls, and give you an honest read on the scope of the problem.
-
Targeted perimeter and interior treatment
We apply a professional-grade perimeter treatment around the exterior to create a barrier and reduce the entry of both spiders and the insects that sustain them. Interior treatment targets confirmed harborage zones with residual products that work over time, not just day-of.
-
Place sticky monitors
Glue traps in key interior zones tell us exactly where activity is concentrated and how quickly population pressure is responding to treatment. We review these on the follow-up visit.
-
Follow-up treatment
Spider control almost always requires a follow-up. Egg sacs can hatch after the initial treatment and new spiders can enter from adjacent areas, so we return, typically 30 days out, to confirm the treatment is working and address any residual activity.
-
De-web and exclusion guidance
We clear webs and egg sacs from treated areas and walk you through practical exclusion steps: sealing entry points, reducing harborage like cardboard storage boxes, and addressing the moisture or clutter conditions that support high spider populations.
Not sure what you found? An inspection tells you for sure.
Get A Quote
The CRAZY HAPPY Club
Treatment ends the infestation you’ve got. The CRAZY HAPPY Club is how you keep it from coming back. It’s a contract-free membership with no lock-in, and it keeps a year-round exterior barrier on your home that reduces the entry of both spiders and the insects that feed them.
Contract-Free Membership
What the CRAZY HAPPY Club covers
One membership that keeps spiders and the rest of the common household pests out of your home year-round.
- A year-round exterior barrier that reduces spider entry and cuts off the insect food supply that sustains them
- Recurring quarterly treatment on a set schedule, with free re-service between visits if pests come back
- Coverage for spiders plus common household pests like ants, beetles, crickets, wasps, and more
- No contract. Cancel anytime.
Kansas City Is Brown Recluse Territory
This isn’t a generic warning that applies everywhere. Brown recluse spiders are native to a specific range across the central and south-central United States, and Kansas City sits near the northern edge of that range, in one of the most consistently active zones in Missouri and Kansas. The brown recluse thrives in undisturbed spaces inside homes, the cardboard boxes, stored clothing, seldom-moved furniture, wood piles, and attic insulation that KC’s older housing stock and unfinished basements provide in abundance. Kansas State Extension’s brown recluse guide has the identification details if you want to confirm what you’re looking at.
They emerge in April, peak in summer, and increase indoor movement in fall as they seek overwintering locations, which is often when homeowners first notice them, because the spiders move toward living areas. Johnson County extension research has documented individual homes with populations exceeding 2,000 brown recluse. That’s not a scare tactic. That’s the reality of what a well-established infestation looks like when left untreated for multiple seasons.
When Spiders Are More Than a Nuisance
A single spider is a single spider. It becomes a real problem when you’re finding three or more per week in similar locations, when you spot visible egg sacs that each hold dozens to hundreds of offspring, when there’s a consistent presence every time you open a storage closet or access the crawl space, when spiders show up near beds or clothing, or when the home has a prior infestation history, since brown recluse populations persist in structures for years if not treated. A high spider population also tells you something about your home’s overall pest situation, because spiders follow their food source, and lots of spiders often means a significant insect population supporting them. For the other Kansas City pests we handle, start from the Kansas City pest control hub.
KANSAS CITY PEST CONTROL FAQ
Bugged With A Question?
No runaround. Just straight answers from the Bug Assassins who know Kansas City homes.
Are brown recluse spiders really that common in Kansas City?
Yes. Kansas City is within the native range of the brown recluse, and local conditions, older homes, basements, undisturbed storage. Support high populations. Johnson County research has documented individual homes with populations exceeding 2,000 individuals. Most KC residents have brown recluse in their homes at some level; significant infestations are what require professional attention.
How do I identify a brown recluse spider?
Brown recluse are medium-sized, tan to brown, with a violin-shaped marking on the front section of their body. Crucially, they have six eyes arranged in three pairs. Most spiders have eight eyes. If you find a spider you can't identify, don't handle it. Take a photo if possible and call us.
What should I do if I think I was bitten by a brown recluse?
Seek medical attention promptly. Most brown recluse bites are minor, but some cause necrotic tissue damage that requires treatment. A doctor can assess the bite and advise appropriate care. Then call us, if there's a spider in your home that got close enough to bite someone, there's a population worth treating.
Can I treat brown recluse spiders myself?
DIY sprays kill spiders on contact but don't reach established harborage zones or address populations hiding in walls, insulation, and storage areas. Effective treatment requires residual products and follow-up monitoring. Attempting to treat a significant infestation with consumer products typically moves the spiders without eliminating them.
Are black widows common in Kansas City?
Less common indoors than brown recluse, but present throughout the area. Black widows prefer garages, sheds, wood piles, and outdoor structures. Regular perimeter treatment significantly reduces the likelihood of them entering living areas.
How do I reduce spiders on my own between treatments?
Replace cardboard storage boxes with sealed plastic containers (brown recluse love cardboard). Reduce clutter in basements and closets. Seal gaps around utility penetrations and foundation cracks. Eliminating other insects reduces the food supply and limits spider populations over time.
BugBros Pest Control, Kansas City
9680 Marion Ridge, Kansas City, MO 64137
(816) 307-2712
Treatments are EPA registered and applied by trained Bug Assassins using professional grade methods. Application is designed for homes with kids and pets when the protocol is followed. Reentry times and usage instructions are reviewed at every appointment.
Where We Kill Bugs
We treat spiders across Kansas City
From the older housing stock with unfinished basements where brown recluse harbor to the garages and wood piles that draw black widows, if it’s in the Kansas City metro, we treat it. We cover the urban core ZIPs where spider calls cluster, 64108, 64109, 64110, 64111, 64112, and 64113, with the same CRAZY HAPPY Club guarantee across every nearby town.
CRAZY HAPPY Customers
5.0
★★★★★
Verified Google reviews · Kansas City
Part of BugBros · 2,800+ Google reviews
New to Kansas City. Already a 5-star name.
★★★★★
“Found a brown recluse in the basement and freaked out. BugBros identified it, set glue traps, and treated the harborage. The follow-up visit caught the ones that hatched later. CRAZY HAPPY.”
Lauren · Waldo, Kansas City
★★★★★
“Spiders every time I opened the storage closet. The tech walked me through swapping cardboard for plastic bins and treated the whole perimeter. Way fewer since. CRAZY HAPPY here.”
Tyler · Brookside, Kansas City
★★★★★
“On the quarterly plan now and the spiders haven’t come back. No contract, honest read on what I actually had, always on time. CRAZY HAPPY customer for life.”
Renee · Hyde Park, Kansas City
No More Spiders. No Contracts. Just CRAZY HAPPY Customers.
100% Backed by Our CRAZY HAPPY Guarantee
BugBros has earned 2,800+ Google reviews because we stand behind our work completely. With spiders, that means identifying the species, treating the harborage at the source, and the CRAZY HAPPY Club barrier to keep them from coming back. If they return while you’re a member, so do we.
Every treatment uses EPA registered products applied by trained Bug Assassins, designed for homes with kids and pets when the protocol is followed. We treat your home the way we’d treat our own.
100% CRAZY HAPPY Guarantee
Kid & Pet Households
5 Star Google Rating
BBB A+ Rated
10+ Years In Business
100% CRAZY HAPPY Guarantee
Kid & Pet Households
5 Star Google Rating
BBB A+ Rated
10+ Years In Business
Pest Control From People Who Care.
(function(){
var BB_FALLBACK = 2800;
var BB_FEED = "https://bugbros.com/wp-content/uploads/2026/07/bugbros_reviews-2026-07-29.json";
var REVIEW_CITY = "Kansas City";
function floorHundred(n){ return Math.floor(n/100)*100; }
function setTotal(total){
var v = floorHundred(total).toLocaleString();
document.querySelectorAll(".bb-review-total").forEach(function(el){ el.textContent = v; });
}
function trim(s,n){ s=String(s||""); return s.length>n ? s.slice(0,n).replace(/\s+\S*$/,"")+"…" : s; }
function el(tag,cls,text){ var e=document.createElement(tag); if(cls)e.className=cls; if(text!=null)e.textContent=text; return e; }
function cardEl(r){
var card=el("div","rv");
var g=el("span","gmk"); g.setAttribute("role","img"); g.setAttribute("aria-label","Google review"); card.appendChild(g);
var rate=el("div","rate");
rate.appendChild(el("span","s","★★★★★"));
if(r.when) rate.appendChild(el("span","when",r.when));
card.appendChild(rate);
card.appendChild(el("p","q","“"+trim(r.text,170)+"”"));
var id=el("div","rv-id");
id.appendChild(el("span","nm",r.name||"Verified Google review"));
id.appendChild(el("span","loc"," · "+REVIEW_CITY));
card.appendChild(id);
return card;
}
function renderReviews(list){
if(!list||!list.length) return;
var grid=document.querySelector(".reviews-grid"); if(!grid) return;
grid.textContent="";
list.slice(0,3).forEach(function(r){ if(r&&r.text) grid.appendChild(cardEl(r)); });
}
setTotal(BB_FALLBACK);
if(BB_FEED){
fetch(BB_FEED).then(function(r){ return r.json(); }).then(function(d){
if(d && typeof d.company_total === "number" && d.company_total > 0) setTotal(d.company_total);
renderReviews(d && d.kc_featured);
}).catch(function(){});
}
})();