{"id":22550,"date":"2026-06-24T16:27:54","date_gmt":"2026-06-24T20:27:54","guid":{"rendered":"https:\/\/blueguard.ca\/?page_id=22550"},"modified":"2026-07-23T17:04:27","modified_gmt":"2026-07-23T21:04:27","slug":"wall-mounted-ac-cleaning-in-aylmer","status":"publish","type":"page","link":"https:\/\/blueguard.ca\/fr\/service-areas\/wall-mounted-ac-cleaning-in-aylmer\/","title":{"rendered":"Wall-Mounted AC Cleaning in Aylmer"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"22550\" class=\"elementor elementor-22550\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cd00c11 e-con-full e-flex e-con e-parent\" data-id=\"cd00c11\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3419bb7 elementor-widget elementor-widget-html\" data-id=\"3419bb7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en-CA\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>Wall-Mounted AC Cleaning Aylmer \u2013 $179 Promo | BlueGuard<\/title>\r\n<meta name=\"description\" content=\"NADCA-certified Wall-mounted AC cleaning in Aylmer for $179 (per indoor unit). See live availability and your exact quote online. Book in 60 seconds \u2014 pay nothing online.\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:wght@600;700;800;900&family=Nunito:wght@400;600;700;800;900&display=swap\" rel=\"stylesheet\">\r\n\r\n<!-- ===== GOOGLE ADS TAG \u2014 REPLACE AW-XXXXXXXXX AND LABELS ===== -->\r\n<script async src=\"https:\/\/www.googletagmanager.com\/gtag\/js?id=AW-XXXXXXXXX\"><\/script>\r\n<script>\r\n  window.dataLayer = window.dataLayer || [];\r\n  function gtag(){dataLayer.push(arguments);}\r\n  gtag('js', new Date());\r\n  gtag('config', 'AW-XXXXXXXXX');\r\n  function convCall(){ gtag('event','conversion',{'send_to':'AW-XXXXXXXXX\/CALL_LABEL'}); }\r\n  function convBook(){ gtag('event','conversion',{'send_to':'AW-XXXXXXXXX\/BOOK_LABEL'}); }\r\n<\/script>\r\n\r\n<script type=\"application\/ld+json\">\r\n{\r\n \"@context\":\"https:\/\/schema.org\",\r\n \"@type\":\"HomeAndConstructionBusiness\",\r\n \"name\":\"BlueGuard Wall-Mounted AC Cleaning\",\r\n \"url\":\"https:\/\/blueguard.ca\/\",\r\n \"telephone\":\"+1-844-498-8364\",\r\n \"email\":\"sales@blueguard.ca\",\r\n \"priceRange\":\"$$\",\r\n \"areaServed\":{\"@type\":\"City\",\"name\":\"Aylmer\"},\r\n \"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"310 Miwate Pvt Unit 100\",\"addressLocality\":\"Aylmer\",\"addressRegion\":\"ON\",\"postalCode\":\"K1R 0E1\",\"addressCountry\":\"CA\"},\r\n \"makesOffer\":{\"@type\":\"Offer\",\"name\":\"Wall-Mounted AC Cleaning\",\"price\":\"189\",\"priceCurrency\":\"CAD\"},\r\n \"knowsAbout\":[\"Wall-Mounted AC Cleaning\",\"NADCA standards\",\"indoor air quality\"]\r\n}\r\n<\/script>\r\n\r\n<style>\r\n:root{\r\n  --blue:#0aa8de; --blue-d:#0888b6; --green:#a7cf45; --green-d:#88b02f;\r\n  --navy:#0D1B3E; --navy2:#12244F; --ink:#1C2433; --mut:#5B6678;\r\n  --bg:#F6F8FC; --line:#E3E9F4; --gold:#F5A623;\r\n  --dirt1:#5A4631; --dirt2:#3A2C1C; --dirt3:#2A1F13; --dirtbg:#241B12;\r\n}\r\n*{margin:0;padding:0;box-sizing:border-box}\r\nhtml{scroll-behavior:smooth}\r\nbody{font-family:'Nunito',sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;overflow-x:hidden}\r\n\r\n\/* ===== SHORTCODE ISOLATION (safe) =====\r\n   RepOcean reviews and the booking widget bring their own styles. We only\r\n   normalise the wrapper so the LP's Nunito font\/colours don't bleed in.\r\n   No 'all:revert' \u2014 that breaks the page cascade. *\/\r\n.repocean-scope, .booking-scope{font-family:initial;color:initial}\r\nh1,h2,h3{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.5px;line-height:1.05}\r\n.wrap{max-width:1280px;margin:0 auto;padding:0 20px}\r\n.btn{display:inline-flex!important;align-items:center;justify-content:center;gap:10px;font-weight:800;border-radius:12px!important;text-decoration:none!important;cursor:pointer;border:none!important;font-family:'Nunito'!important;transition:transform .18s,box-shadow .18s;text-transform:none!important;letter-spacing:normal!important;text-shadow:none!important}\r\n.btn:hover{transform:translateY(-2px)}\r\n.btn:active{transform:scale(.97)}\r\n.btn-green{background:linear-gradient(95deg,var(--blue) 0%,#4cc3ec 45%,var(--green) 100%)!important;color:#fff!important;padding:17px 32px;font-size:18px;box-shadow:0 8px 24px rgba(10,168,222,.4),inset 0 1px 0 rgba(255,255,255,.35)}\r\n.btn-ghost{background:rgba(255,255,255,.07)!important;color:#fff!important;border:1.5px solid rgba(255,255,255,.35)!important;padding:15px 28px;font-size:17px;backdrop-filter:blur(4px)}\r\n.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}\r\n.reveal.in{opacity:1;transform:none}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n.hero{background:linear-gradient(150deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.6) 55%,rgba(0,0,0,.5) 100%),url('https:\/\/blueguard.ca\/wp-content\/uploads\/2025\/11\/WhatsApp-Image-2025-11-10-at-19.27.49_e5f964d6.jpg') center\/cover no-repeat,#000;color:#fff;padding:60px 0 70px;position:relative;overflow:hidden}\r\n.hero::before{content:\"\";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.04) 1px,transparent 1px);background-size:26px 26px;mask-image:linear-gradient(180deg,transparent,black 60%);pointer-events:none}\r\n.hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:1.12fr .88fr;gap:48px;align-items:center}\r\n.rating-chip{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:7px 16px 7px 8px;margin-bottom:20px;backdrop-filter:blur(4px)}\r\n.avas{display:flex}\r\n.ava{width:28px;height:28px;border-radius:50%;border:2px solid var(--navy);margin-left:-8px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;color:#fff}\r\n.ava:first-child{margin-left:0}\r\n.rating-chip span{font-size:13.5px;font-weight:700;color:#D8E4FA}\r\n.rating-chip b{color:var(--gold)}\r\n.hero h1{font-size:clamp(40px,5.4vw,64px);font-weight:900;color:#fff!important;text-shadow:0 2px 18px rgba(0,0,0,.4);text-transform:uppercase!important}\r\n.hero h1 em{font-style:normal;position:relative;white-space:nowrap;background:linear-gradient(95deg,#5fd0f0 0%,#a7cf45 60%,#88b02f 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent!important}\r\n.hero h1 em::after{content:\"\";position:absolute;left:0;right:0;bottom:6px;height:10px;background:rgba(167,207,69,.25);z-index:-1;border-radius:4px}\r\n.hero p.sub{margin:18px 0 6px;font-size:19px;color:#C9D6F2!important;max-width:540px;text-shadow:0 1px 10px rgba(0,0,0,.35)}\r\n.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}\r\n.micro{margin-top:16px;font-size:14px;color:#9FB4DD;display:flex;gap:18px;flex-wrap:wrap}\r\n.micro span{display:flex;align-items:center;gap:6px}\r\n.micro b{color:#fff}\r\n\r\n.pcard{background:linear-gradient(180deg,#fff,#F4F8FF);color:var(--ink);border-radius:22px;padding:32px 30px;box-shadow:0 12px 32px rgba(13,27,62,.14),inset 0 1px 0 #fff;position:relative;border:1px solid rgba(255,255,255,.6)}\r\n.pcard .tag{position:absolute;top:-15px;left:28px;z-index:2;background:linear-gradient(90deg,var(--blue),#4cc3ec,var(--green));color:#fff;font-weight:900;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;padding:7px 16px;border-radius:999px;box-shadow:0 6px 14px rgba(10,168,222,.4)}\r\n.pcard h3{font-size:22px;color:var(--navy)}\r\n.pwas{color:var(--mut);font-size:15px;font-weight:700;margin-top:6px}\r\n.pwas s{color:#B23B3B}\r\n.price{font-family:'Barlow Condensed';font-weight:900;font-size:74px;color:var(--blue);line-height:.95;margin-top:2px}\r\n.price small{font-size:19px;color:var(--mut);font-family:'Nunito';font-weight:700}\r\n.pcard ul{list-style:none;margin:18px 0 22px}\r\n.pcard li{padding:8px 0 8px 32px;position:relative;font-weight:700;font-size:15.5px;border-bottom:1px dashed var(--line)}\r\n.pcard li:last-child{border:none}\r\n.pcard li::before{content:\"\u2713\";position:absolute;left:0;top:10px;width:22px;height:22px;border-radius:50%;background:var(--green);color:var(--navy);font-weight:900;font-size:13px;display:flex;align-items:center;justify-content:center}\r\n.pcard .btn-green{width:100%;font-size:17px}\r\n.pcard .safe{text-align:center;font-size:12.5px;color:var(--mut);margin-top:12px;font-weight:700}\r\n.pcard-section{display:none;padding:0}\r\n.pcard-mobile{display:none}\r\n\r\n.strip{background:#fff;border-bottom:1px solid var(--line)}\r\n.strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:20px}\r\n.strip div{display:flex;align-items:center;gap:10px;font-weight:800;font-size:14.5px;color:var(--navy);justify-content:center}\r\n\r\nsection{padding:72px 0}\r\n.kick{color:var(--blue);font-weight:900;font-size:13px;letter-spacing:2.5px;text-transform:uppercase}\r\n.rev-head{text-align:center;max-width:680px;margin:0 auto}\r\n.rev-badge{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(90deg,rgba(245,166,35,.14),rgba(167,207,69,.14));border:1px solid rgba(245,166,35,.4);color:#B8791A;font-weight:900;font-size:13px;letter-spacing:1px;text-transform:uppercase;padding:8px 18px;border-radius:999px;margin-bottom:16px}\r\n.rev-head h2.sec{margin:0 0 12px}\r\n.rev-head h2.sec span:not(.grad){color:var(--blue)!important}\r\n.rev-sub{color:var(--mut);font-size:16.5px;line-height:1.6}\r\nh2.sec{font-size:clamp(32px,4.4vw,46px);color:var(--navy)!important;margin:8px 0 12px;font-weight:800}\r\n.grad{background:linear-gradient(95deg,var(--blue) 0%,#4cc3ec 45%,var(--green) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent!important}\r\n.lead{color:var(--mut);font-size:17px;max-width:660px}\r\n\r\n\r\n\r\n\r\n\r\n\r\n.ba-sec{background:var(--navy);color:#fff}\r\n.ba-sec .kick{color:var(--green)}\r\n.ba-sec h2.sec{color:#fff!important}\r\n.ba-sec .lead{color:#C9D6F2}\r\n.ba{position:relative;margin-top:36px;border-radius:20px;overflow:hidden;height:420px;box-shadow:0 30px 70px rgba(0,0,0,.5);user-select:none;cursor:ew-resize}\r\n.ba-side{position:absolute;inset:0}\r\n.duct{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-around;padding:34px}\r\n.duct .pipe{height:54px;border-radius:14px;position:relative;overflow:hidden}\r\n.ba-before{background:var(--dirtbg)}\r\n.ba-before .pipe{background:linear-gradient(180deg,var(--dirt1),var(--dirt2) 55%,var(--dirt3))}\r\n.ba-before .pipe::after{content:\"\";position:absolute;inset:0;background-image:radial-gradient(circle at 12% 60%,rgba(0,0,0,.45) 7px,transparent 8px),radial-gradient(circle at 30% 30%,rgba(0,0,0,.5) 9px,transparent 10px),radial-gradient(circle at 48% 70%,rgba(0,0,0,.45) 6px,transparent 7px),radial-gradient(circle at 64% 35%,rgba(0,0,0,.55) 10px,transparent 11px),radial-gradient(circle at 82% 60%,rgba(0,0,0,.45) 8px,transparent 9px),radial-gradient(circle at 93% 30%,rgba(0,0,0,.5) 5px,transparent 6px);opacity:.9}\r\n.ba-after{background:linear-gradient(160deg,#15346F,#0888b6);clip-path:inset(0 0 0 50%)}\r\n.ba-after .pipe{background:linear-gradient(180deg,#F2F7FF,#C7D8F2 55%,#A9C2E8);box-shadow:inset 0 2px 6px rgba(255,255,255,.9)}\r\n.ba-after .pipe::after{content:\"\";position:absolute;top:0;left:-30%;width:34%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.85),transparent);animation:shine 3s ease-in-out infinite}\r\n@keyframes shine{0%,55%{left:-34%}85%,100%{left:110%}}\r\n.ba-handle{position:absolute;top:0;bottom:0;left:50%;width:4px;background:var(--green);z-index:5;box-shadow:0 0 18px rgba(167,207,69,.8)}\r\n.ba-handle::after{content:\"\u27e8 \u27e9\";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;background:var(--green);color:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:15px;letter-spacing:-1px;box-shadow:0 8px 20px rgba(0,0,0,.4)}\r\n.ba-lab{position:absolute;top:18px;font-family:'Barlow Condensed';font-weight:900;font-size:16px;letter-spacing:2px;text-transform:uppercase;padding:7px 16px;border-radius:8px;z-index:4}\r\n.ba-lab.l{left:18px;background:rgba(0,0,0,.55);color:#E8C99A}\r\n.ba-lab.r{right:18px;background:rgba(167,207,69,.92);color:var(--navy)}\r\n.ba-note{text-align:center;color:#8FA3CC;font-size:13.5px;margin-top:14px;font-weight:700}\r\n.ba-note b{color:#fff}\r\n\r\n.angle{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}\r\n.chiprow{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}\r\n.chip{background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:9px 16px;font-weight:800;font-size:13.5px;color:var(--navy)}\r\n.factcard{background:radial-gradient(500px 260px at 85% -10%,rgba(10,168,222,.5),transparent 65%),linear-gradient(160deg,var(--navy),var(--navy2));border-radius:22px;padding:34px 32px;color:#fff;box-shadow:0 24px 60px rgba(13,27,62,.35);position:relative;overflow:hidden}\r\n.factcard::before{content:\"\";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:22px 22px}\r\n.factcard>*{position:relative}\r\n.factcard .fmark{font-family:'Barlow Condensed';font-weight:900;font-size:20px;text-transform:uppercase;letter-spacing:1px;color:#fff!important;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.14)}\r\n.factcard .fmark span{color:var(--green)}\r\n.factcard .fmark em{font-style:normal;font-family:'Nunito';font-weight:700;font-size:12px;color:#8FA3CC;letter-spacing:2px}\r\n.factcard p{color:#D8E4FA!important;font-size:15.5px;line-height:1.7}\r\n\r\n.proc-panel{background:#fff;border:1px solid var(--line);border-radius:24px;padding:44px 38px;box-shadow:0 14px 40px rgba(13,27,62,.06)}\r\n.proc{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:38px}\r\n.pstep{background:var(--bg);border:1px solid var(--line);border-radius:18px;padding:24px 18px 20px;position:relative;transition:transform .2s,box-shadow .2s;overflow:hidden}.pstep::before{content:\"\";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--blue),var(--green))}\r\n.pstep:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(13,27,62,.12)}\r\n.pstep .num{position:absolute;top:14px;right:16px;font-family:'Barlow Condensed';font-weight:900;font-size:30px;color:var(--line);line-height:1}\r\n.pstep .ic{width:50px;height:50px;border-radius:14px;background:linear-gradient(140deg,rgba(10,168,222,.14),rgba(167,207,69,.16));display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:14px;box-shadow:inset 0 1px 0 #fff}\r\n.pstep h3{font-size:17px;color:var(--navy);margin-bottom:6px}\r\n.pstep p{font-size:13px;color:var(--mut);line-height:1.5}\r\n.pstep::after{content:\"\u2192\";position:absolute;right:-13px;top:50%;transform:translateY(-50%);color:var(--blue);font-weight:900;font-size:18px;z-index:2}\r\n.pstep:last-child::after{display:none}\r\n\r\n.signs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:28px}\r\n.sign{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:18px 20px;font-weight:800;font-size:15px;color:var(--navy);cursor:pointer;display:flex;align-items:center;gap:12px;transition:border-color .15s,background .15s,transform .15s;user-select:none}\r\n.sign:hover{transform:translateY(-2px);border-color:var(--blue)}\r\n.sign .sic{font-size:22px;flex:none}\r\n.sign.on{border-color:var(--green);background:linear-gradient(135deg,#F2FBE8,#fff);box-shadow:0 8px 20px rgba(167,207,69,.2)}\r\n.sign.on::after{content:\"\u2713\";margin-left:auto;width:24px;height:24px;border-radius:50%;background:var(--green);color:var(--navy);font-weight:900;font-size:14px;display:flex;align-items:center;justify-content:center;flex:none}\r\n.sign-result{margin-top:20px;text-align:center;font-weight:800;font-size:16px;color:var(--mut);background:#fff;border:1.5px dashed var(--line);border-radius:14px;padding:16px 20px;transition:all .2s}\r\n.sign-result.hot{color:var(--navy);border:1.5px solid var(--green);background:linear-gradient(135deg,#F2FBE8,#fff);font-size:17px}\r\n.midcta{text-align:center;margin-top:34px}\r\n\r\n#booktop{background:radial-gradient(900px 400px at 50% 0%,rgba(10,168,222,.4),transparent 60%),var(--navy);color:#fff}\r\n#booktop .kick{color:var(--green)}\r\n#booktop h2.sec{color:#fff!important}\r\n#booktop h2.sec .grad{-webkit-text-fill-color:transparent;color:transparent!important}\r\n#booktop .lead{color:#C9D6F2}\r\n.guarbar{display:flex;align-items:center;gap:18px;background:rgba(167,207,69,.1);border:1.5px solid rgba(167,207,69,.45);border-radius:16px;padding:18px 24px;margin-top:30px}\r\n.guarbar .badge{flex:none;width:64px;height:64px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#c2e072,var(--green) 60%,var(--green-d));display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--navy);font-family:'Barlow Condensed';font-weight:900;box-shadow:0 10px 22px rgba(167,207,69,.4)}\r\n.guarbar .badge div{font-size:20px;line-height:1}\r\n.guarbar .badge small{font-size:7.5px;letter-spacing:1px;font-weight:800}\r\n.guarbar h3{font-size:19px;color:#fff;margin-bottom:2px}\r\n.guarbar p{color:#C9D6F2;font-size:14px}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n.miniq{margin-top:18px;background:rgba(255,255,255,.06);border-left:3px solid var(--green);border-radius:0 10px 10px 0;padding:14px 18px;font-size:14px;color:#D8E4FA;line-height:1.55;max-width:560px;margin-left:auto;margin-right:auto;text-align:center}\r\n.miniq b{display:block;color:var(--green);margin-top:6px;font-size:12.5px}\r\n.altcall{text-align:center;margin-top:18px;color:#9FB4DD;font-size:15px}\r\n.altcall a{color:var(--green);font-weight:900;text-decoration:none;font-size:19px}\r\n\r\n.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:36px}\r\n.stat{background:linear-gradient(180deg,#fff,#F4F8FF);border:1px solid var(--line);border-radius:16px;padding:26px 20px;text-align:center}\r\n.stat .n{font-family:'Barlow Condensed';font-weight:900;font-size:46px;color:var(--blue);line-height:1}\r\n.stat p{font-size:13.5px;color:var(--mut);margin-top:6px;font-weight:700}\r\n\r\n.faq{max-width:780px;margin:34px auto 0}\r\n.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:10px;overflow:hidden}\r\n.faq summary{cursor:pointer;font-weight:800;color:var(--navy);padding:19px 22px;font-size:16px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px}\r\n.faq summary::after{content:\"+\";font-family:'Barlow Condensed';font-size:26px;color:var(--blue)}\r\n.faq details[open] summary::after{content:\"\u2013\"}\r\n.faq details p{padding:0 22px 19px;color:var(--mut);font-size:15px}\r\n\r\n.final{background:linear-gradient(135deg,var(--blue),var(--blue-d));color:#fff;text-align:center;position:relative;overflow:hidden}\r\n.final::before{content:\"\";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1px);background-size:24px 24px}\r\n.final .wrap{position:relative}\r\n.final h2{font-size:clamp(34px,5vw,52px);font-weight:900;color:#fff!important}\r\n.final p{color:#D8E4FA!important;margin:14px auto 28px;max-width:560px;font-size:17px}\r\n\r\n\r\n\r\n\r\n\r\n\r\n@media(min-width:901px){}\r\n\r\n@media(max-width:900px){\r\n  html,body{overflow-x:hidden;max-width:100%}\r\n  \r\n  \r\n  .wrap{padding:0 16px}\r\n  .hero .wrap{grid-template-columns:1fr;gap:24px}\r\n  .pcard-hero{display:none}\r\n  .pcard-section{display:block;padding:28px 0 8px;background:var(--bg)}\r\n  .pcard-mobile{display:block}\r\n  .hero h1{font-size:clamp(32px,8vw,46px)}\r\n  .hero-ctas{flex-wrap:nowrap;gap:10px}\r\n  .hero-ctas .btn{flex:1 1 0;min-width:0;padding-left:6px;padding-right:6px;font-size:14px;white-space:nowrap}\r\n  .pcard{padding:30px 22px}\r\n  .pcard .tag{left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11.5px;padding:6px 12px;text-align:center}\r\n  .price{font-size:60px}\r\n  .micro{gap:10px 16px}\r\n  .angle{grid-template-columns:1fr;gap:24px}\r\n  section{padding:48px 0}\r\n  .factcard{padding:24px 20px}\r\n  .factcard p{font-size:15px}\r\n  .proc-panel{padding:24px 16px;margin-top:44px!important}\r\n  .proc{gap:10px;margin-top:24px}\r\n  .pstep{padding:18px 14px 16px}\r\n  .pstep p{font-size:12.5px}\r\n  .pstep .num{font-size:24px;top:12px;right:12px}\r\n  .strip .wrap{grid-template-columns:repeat(2,1fr)}\r\n  .proc{grid-template-columns:repeat(2,1fr)}\r\n  .pstep::after{display:none}\r\n  .stats{grid-template-columns:repeat(2,1fr);gap:10px}\r\n  .stat{padding:18px 12px}\r\n  .stat .n{font-size:38px}\r\n  .stat p{font-size:12px}\r\n  .signs{grid-template-columns:1fr}\r\n  \r\n  \r\n  .ba{height:340px}\r\n  \r\n}\r\n@media(prefers-reduced-motion:reduce){\r\n  html{scroll-behavior:auto}\r\n  .btn,.pstep,.reveal{transition:none}\r\n  .reveal{opacity:1;transform:none}\r\n  .ba-after .pipe::after{animation:none}\r\n}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n\r\n<!-- 3. HERO -->\r\n<section class=\"hero\">\r\n  <div class=\"wrap\">\r\n    <div>\r\n      <div class=\"rating-chip\">\r\n        <div class=\"avas\">\r\n          <div class=\"ava\" style=\"background:#0aa8de\">S<\/div>\r\n          <div class=\"ava\" style=\"background:#88b02f\">D<\/div>\r\n          <div class=\"ava\" style=\"background:#0888b6\">A<\/div>\r\n        <\/div>\r\n        <span><b>\u2605 4.9<\/b> \u00b7 Rated by Aylmer homeowners on Google<\/span>\r\n      <\/div>\r\n      <h1>Restoring Efficiency:<br> Expert<em> Wall-Mounted AC <br>Cleaning in Aylmer<\/em><\/h1>\r\n      <p class=\"sub\">Is your unit underperforming? We specialize in restoring peak efficiency to your cooling systems. Our NADCA-certified technicians perform a deep, comprehensive purge of coils and blowers, backed by visual proof of every success. With upfront, honest pricing and seamless online scheduling, we make professional wall-mounted AC cleaning in Aylmer simple, transparent, and completely stress-free for your home or business.<\/p>\r\n      <div class=\"hero-ctas\">\r\n        <a class=\"btn btn-green\" href=\"#book\" onclick=\"convBook()\">See Available Dates<\/a>\r\n        <a class=\"btn btn-ghost\" href=\"tel:18444988364\" onclick=\"convCall()\">\ud83d\udcde 1-844-498-8364<\/a>\r\n      <\/div>\r\n      <div class=\"micro\">\r\n        <span>\ud83d\udee1\ufe0f <b>NADCA<\/b> certified<\/span>\r\n        <span>\u2705 Fully insured<\/span>\r\n        <span>\ud83d\udcb3 No payment online<\/span>\r\n        <span>\u26a1 Book in ~60 sec<\/span>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"pcard pcard-hero\">\r\n      <span class=\"tag\">This Month's Promo \u2014 Save $60<\/span>\r\n      <h3>Complete Wall-Mounted AC Cleaning<\/h3>\r\n      <div class=\"pwas\">Regular <s>$249<\/s> \u2014 this month:<\/div>\r\n      <div class=\"price\">$179<small> \/ per indoor unit<\/small><\/div>\r\n      <ul>\r\n        <li>Full coil &amp; blower wheel<\/li>\r\n        <li>Before &amp; after photos included<\/li>\r\n        <li>Herbal-grade sanitization available<\/li>\r\n        <li>Extra indoor units &amp; add-ons quoted in the form<\/li>\r\n        <li>Exact quote shown before you confirm<\/li>\r\n      <\/ul>\r\n      <a class=\"btn btn-green\" href=\"#book\" onclick=\"convBook()\">Lock In $179 \u2192<\/a>\r\n      <div class=\"safe\">\ud83d\udd12 No payment online \u00b7 We confirm by a quick call<\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- 3b. PRICE CARD \u2014 MOBILE ONLY (separate section below hero) -->\r\n<section class=\"pcard-section\">\r\n  <div class=\"wrap\">\r\n    <div class=\"pcard pcard-mobile\">\r\n      <span class=\"tag\">This Month's Promo \u2014 Save $60<\/span>\r\n      <h3>Complete Wall-Mounted AC Cleaning<\/h3>\r\n      <div class=\"pwas\">Regular <s>$249<\/s> \u2014 this month:<\/div>\r\n      <div class=\"price\">$179<small> \/ per indoor unit<\/small><\/div>\r\n      <ul>\r\n        <li>Full coil &amp; blower wheel<\/li>\r\n        <li>Before &amp; after photos included<\/li>\r\n        <li>Herbal-grade sanitization available<\/li>\r\n        <li>Extra indoor units &amp; add-ons quoted in the form<\/li>\r\n        <li>Exact quote shown before you confirm<\/li>\r\n      <\/ul>\r\n      <a class=\"btn btn-green\" href=\"#book\" onclick=\"convBook()\">Lock In $179 \u2192<\/a>\r\n      <div class=\"safe\">\ud83d\udd12 No payment online \u00b7 We confirm by a quick call<\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- 4. TRUST STRIP -->\r\n<div class=\"strip\">\r\n  <div class=\"wrap\">\r\n    <div>\ud83d\udee1\ufe0f NADCA Certified<\/div>\r\n    <div>\u2705 Fully Insured<\/div>\r\n    <div>\u2b50 4.9 on Google<\/div>\r\n    <div>\ud83c\udf3f Eco-Friendly Products<\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- 5. SOCIAL PROOF (high placement) -->\r\n<section style=\"padding-top:64px\">\r\n  <div class=\"wrap\">\r\n    <div class=\"rev-head reveal\">\r\n      <span class=\"rev-badge\">\u2605\u2605\u2605\u2605\u2605 &nbsp;Verified Google Reviews<\/span>\r\n      <h2 class=\"sec\">Loved by homeowners across <span class=\"grad\">Aylmer<\/span><\/h2>\r\n      <p class=\"rev-sub\">Real reviews from real Aylmer customers \u2014 see why hundreds choose BlueGuard for cleaner air and honest, upfront service.<\/p>\r\n    <\/div>\r\n\r\n    <!-- LIVE REVIEWS: RepOcean renders its own slider from this shortcode -->\r\n    <div class=\"repocean-scope reveal\" style=\"margin-top:34px\">\r\n      <div class=\"repocean-slider-main-v1 \" itemscope itemtype=\"https:\/\/schema.org\/LocalBusiness\" style=\"--repocean-bg:#f6f6f6; --repocean-border:#f6f6f6;\"><meta itemprop=\"name\" content=\"BlueGuard Duct Cleaning\"><meta itemprop=\"telephone\" content=\"(844) 498-8364\"><meta itemprop=\"image\" content=\"\"><div itemprop=\"address\" itemscope itemtype=\"https:\/\/schema.org\/PostalAddress\"><meta itemprop=\"streetAddress\" content=\"285 Taunton Road East\"><meta itemprop=\"addressLocality\" content=\"Oshawa\"><meta itemprop=\"addressRegion\" content=\"ON\"><meta itemprop=\"postalCode\" content=\"L1G 3V2\"><meta itemprop=\"addressCountry\" content=\"CA\"><\/div><div itemprop=\"geo\" itemscope itemtype=\"https:\/\/schema.org\/GeoCoordinates\"><meta itemprop=\"latitude\" content=\"\"><meta itemprop=\"longitude\" content=\"\"><\/div><div itemprop=\"aggregateRating\" itemscope itemtype=\"https:\/\/schema.org\/AggregateRating\"><meta itemprop=\"ratingValue\" content=\"4.9\"><meta itemprop=\"bestRating\" content=\"5\"><meta itemprop=\"reviewCount\" content=\"102\"><\/div><div class=\"repocean-content-wrapper\"><div class=\"review-sub-title\" style=\"display:none;\"><div class=\"review-link\"><div class=\"excellent-text\"><strong>EXCELLENT<\/strong><\/div><div class=\"review-box-parent\"><div class=\"review-box\" itemprop=\"reviewRating\" itemscope itemtype=\"https:\/\/schema.org\/Rating\" style=\"--ratings: 4.9; --star-color: #fbb701\"><\/div><\/div><div class=\"review-text excellent-text\"><strong>102 avis<\/strong><\/div><div class=\"gi-small-logo\"><img decoding=\"async\" src=\"https:\/\/blueguard.ca\/wp-content\/plugins\/widgets-for-google-reviews-and-ratings\/public\/css\/images\/google-brand.png\" alt=\"Google_icon\" width=\"80\" title=\"\"><\/div><\/div><\/div><div class=\"repocean-slider-box-parent\"><div class=\"slider-box\" itemprop=\"review\" itemscope itemtype=\"https:\/\/schema.org\/Review\"><div class=\"slider-box-inner\" style=\"display:none;\"><div class=\"img-text-content\"><div class=\"profile-img-info\"><div class=\"profile-img\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocLG9THSmBm1l0npYSCkr5NRkEpNgma_0UUppJWkxU52OOIyf98=s120-c-rp-mo-br100\" alt=\"Reviewer Image\" itemprop=\"image\" title=\"\"><\/div><div class=\"profile-info\"><div class=\"profile-title\"><h6 itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Person\"><span itemprop=\"name\">Dominic Langlois<\/span><\/h6><\/div><div class=\"profile-date\"><p>5 mois il y a<\/p><\/div><\/div><\/div><div class=\"right-img\"><img decoding=\"async\" src=\"https:\/\/blueguard.ca\/wp-content\/plugins\/widgets-for-google-reviews-and-ratings\/public\/css\/images\/google-icon.svg\" alt=\"Google_icon\" width: height: title=\"\"><\/div><\/div><div class=\"review-box-parent\"><div class=\"review-box\" itemprop=\"reviewRating\" itemscope itemtype=\"https:\/\/schema.org\/Rating\" style=\"--rating: 5.0; --star-color: #fbb701\"><meta itemprop=\"ratingValue\" content=\"5.0\"><meta itemprop=\"bestRating\" content=\"5\"><\/div><span class=\"verified-icon-box\"><span class=\"repocean-verified-tooltip\" style=\"width: 101px;\">RepOcean v\u00e9rifie que la source originale de l'avis est Google.<\/span><\/span><\/div><div class=\"description max87\" itemprop=\"reviewBody\"><p>Super bon service ! Recommande a 100%<\/p><\/div><div class=\"button-content hide\"><div class=\"readmore-button\"><a href=\"#\">Lire la suite<\/a><\/div><\/div><\/div><\/div><div class=\"slider-box\" itemprop=\"review\" itemscope itemtype=\"https:\/\/schema.org\/Review\"><div class=\"slider-box-inner\" style=\"display:none;\"><div class=\"img-text-content\"><div class=\"profile-img-info\"><div class=\"profile-img\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/a-\/ALV-UjV6ze3pH3PC5uFS6aza3weYLhUE9IgElLppfRkLMSCTPkFnwroB=s120-c-rp-mo-br100\" alt=\"Reviewer Image\" itemprop=\"image\" title=\"\"><\/div><div class=\"profile-info\"><div class=\"profile-title\"><h6 itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Person\"><span itemprop=\"name\">wendy hagan<\/span><\/h6><\/div><div class=\"profile-date\"><p>5 mois il y a<\/p><\/div><\/div><\/div><div class=\"right-img\"><img decoding=\"async\" src=\"https:\/\/blueguard.ca\/wp-content\/plugins\/widgets-for-google-reviews-and-ratings\/public\/css\/images\/google-icon.svg\" alt=\"Google_icon\" width: height: title=\"\"><\/div><\/div><div class=\"review-box-parent\"><div class=\"review-box\" itemprop=\"reviewRating\" itemscope itemtype=\"https:\/\/schema.org\/Rating\" style=\"--rating: 5.0; --star-color: #fbb701\"><meta itemprop=\"ratingValue\" content=\"5.0\"><meta itemprop=\"bestRating\" content=\"5\"><\/div><span class=\"verified-icon-box\"><span class=\"repocean-verified-tooltip\" style=\"width: 101px;\">RepOcean v\u00e9rifie que la source originale de l'avis est Google.<\/span><\/span><\/div><div class=\"description max87\" itemprop=\"reviewBody\"><p>Professional and informative. Courteous also.<\/p><\/div><div class=\"button-content hide\"><div class=\"readmore-button\"><a href=\"#\">Lire la suite<\/a><\/div><\/div><\/div><\/div><div class=\"slider-box\" itemprop=\"review\" itemscope itemtype=\"https:\/\/schema.org\/Review\"><div class=\"slider-box-inner\" style=\"display:none;\"><div class=\"img-text-content\"><div class=\"profile-img-info\"><div class=\"profile-img\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocKoKTxceX14bY_5D1gl6xbQgvvvm9HJuh3cJ_gD34F-nS80=s120-c-rp-mo-br100\" alt=\"Reviewer Image\" itemprop=\"image\" title=\"\"><\/div><div class=\"profile-info\"><div class=\"profile-title\"><h6 itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Person\"><span itemprop=\"name\">chadrack mambu<\/span><\/h6><\/div><div class=\"profile-date\"><p>5 mois il y a<\/p><\/div><\/div><\/div><div class=\"right-img\"><img decoding=\"async\" src=\"https:\/\/blueguard.ca\/wp-content\/plugins\/widgets-for-google-reviews-and-ratings\/public\/css\/images\/google-icon.svg\" alt=\"Google_icon\" width: height: title=\"\"><\/div><\/div><div class=\"review-box-parent\"><div class=\"review-box\" itemprop=\"reviewRating\" itemscope itemtype=\"https:\/\/schema.org\/Rating\" style=\"--rating: 5.0; --star-color: #fbb701\"><meta itemprop=\"ratingValue\" content=\"5.0\"><meta itemprop=\"bestRating\" content=\"5\"><\/div><span class=\"verified-icon-box\"><span class=\"repocean-verified-tooltip\" style=\"width: 101px;\">RepOcean v\u00e9rifie que la source originale de l'avis est Google.<\/span><\/span><\/div><div class=\"description max87\" itemprop=\"reviewBody\"><p>Un tr\u00e8s bon service je recommande<\/p><\/div><div class=\"button-content hide\"><div class=\"readmore-button\"><a href=\"#\">Lire la suite<\/a><\/div><\/div><\/div><\/div><div class=\"slider-box\" itemprop=\"review\" itemscope itemtype=\"https:\/\/schema.org\/Review\"><div class=\"slider-box-inner\" style=\"display:none;\"><div class=\"img-text-content\"><div class=\"profile-img-info\"><div class=\"profile-img\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/a-\/ALV-UjXkxkfKOIS8P_nSzNgNJGVJGOEDHUf1dzg3vakMfsCn-3VixD9P=s120-c-rp-mo-br100\" alt=\"Reviewer Image\" itemprop=\"image\" title=\"\"><\/div><div class=\"profile-info\"><div class=\"profile-title\"><h6 itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Person\"><span itemprop=\"name\">Aicha C<\/span><\/h6><\/div><div class=\"profile-date\"><p>5 mois il y a<\/p><\/div><\/div><\/div><div class=\"right-img\"><img decoding=\"async\" src=\"https:\/\/blueguard.ca\/wp-content\/plugins\/widgets-for-google-reviews-and-ratings\/public\/css\/images\/google-icon.svg\" alt=\"Google_icon\" width: height: title=\"\"><\/div><\/div><div class=\"review-box-parent\"><div class=\"review-box\" itemprop=\"reviewRating\" itemscope itemtype=\"https:\/\/schema.org\/Rating\" style=\"--rating: 5.0; --star-color: #fbb701\"><meta itemprop=\"ratingValue\" content=\"5.0\"><meta itemprop=\"bestRating\" content=\"5\"><\/div><span class=\"verified-icon-box\"><span class=\"repocean-verified-tooltip\" style=\"width: 101px;\">RepOcean v\u00e9rifie que la source originale de l'avis est Google.<\/span><\/span><\/div><div class=\"description max87\" itemprop=\"reviewBody\"><p>Excellent service. Efficient and professional. Highly recommend!<\/p><\/div><div class=\"button-content hide\"><div class=\"readmore-button\"><a href=\"#\">Lire la suite<\/a><\/div><\/div><\/div><\/div><div class=\"slider-box\" itemprop=\"review\" itemscope itemtype=\"https:\/\/schema.org\/Review\"><div class=\"slider-box-inner\" style=\"display:none;\"><div class=\"img-text-content\"><div class=\"profile-img-info\"><div class=\"profile-img\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocJfPD2ucYLRLw5iKo0Y-J-r27WQD8H5dT0n-VqprzTmOdr4uw=s120-c-rp-mo-br100\" alt=\"Reviewer Image\" itemprop=\"image\" title=\"\"><\/div><div class=\"profile-info\"><div class=\"profile-title\"><h6 itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Person\"><span itemprop=\"name\">alok ojha<\/span><\/h6><\/div><div class=\"profile-date\"><p>7 mois il y a<\/p><\/div><\/div><\/div><div class=\"right-img\"><img decoding=\"async\" src=\"https:\/\/blueguard.ca\/wp-content\/plugins\/widgets-for-google-reviews-and-ratings\/public\/css\/images\/google-icon.svg\" alt=\"Google_icon\" width: height: title=\"\"><\/div><\/div><div class=\"review-box-parent\"><div class=\"review-box\" itemprop=\"reviewRating\" itemscope itemtype=\"https:\/\/schema.org\/Rating\" style=\"--rating: 5.0; --star-color: #fbb701\"><meta itemprop=\"ratingValue\" content=\"5.0\"><meta itemprop=\"bestRating\" content=\"5\"><\/div><span class=\"verified-icon-box\"><span class=\"repocean-verified-tooltip\" style=\"width: 101px;\">RepOcean v\u00e9rifie que la source originale de l'avis est Google.<\/span><\/span><\/div><div class=\"description max87\" itemprop=\"reviewBody\"><p>Hayden have done excellent service for cleaning duct at my home. I appreciate a lot.<\/p><\/div><div class=\"button-content hide\"><div class=\"readmore-button\"><a href=\"#\">Lire la suite<\/a><\/div><\/div><\/div><\/div><div class=\"slider-box\" itemprop=\"review\" itemscope itemtype=\"https:\/\/schema.org\/Review\"><div class=\"slider-box-inner\" style=\"display:none;\"><div class=\"img-text-content\"><div class=\"profile-img-info\"><div class=\"profile-img\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocKGyOuQ3WJMoib_7e0oUjLR78XbxQ2R8KZ9T5ZHoV8ZNSTbdw=s120-c-rp-mo-br100\" alt=\"Reviewer Image\" itemprop=\"image\" title=\"\"><\/div><div class=\"profile-info\"><div class=\"profile-title\"><h6 itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Person\"><span itemprop=\"name\">Metzler Weiner<\/span><\/h6><\/div><div class=\"profile-date\"><p>7 mois il y a<\/p><\/div><\/div><\/div><div class=\"right-img\"><img decoding=\"async\" src=\"https:\/\/blueguard.ca\/wp-content\/plugins\/widgets-for-google-reviews-and-ratings\/public\/css\/images\/google-icon.svg\" alt=\"Google_icon\" width: height: title=\"\"><\/div><\/div><div class=\"review-box-parent\"><div class=\"review-box\" itemprop=\"reviewRating\" itemscope itemtype=\"https:\/\/schema.org\/Rating\" style=\"--rating: 5.0; --star-color: #fbb701\"><meta itemprop=\"ratingValue\" content=\"5.0\"><meta itemprop=\"bestRating\" content=\"5\"><\/div><span class=\"verified-icon-box\"><span class=\"repocean-verified-tooltip\" style=\"width: 101px;\">RepOcean v\u00e9rifie que la source originale de l'avis est Google.<\/span><\/span><\/div><div class=\"description max87\" itemprop=\"reviewBody\"><p>On-time, professional, and honest service. No pressure or upselling, just quality duct cleaning.<\/p><\/div><div class=\"button-content hide\"><div class=\"readmore-button\"><a href=\"#\">Lire la suite<\/a><\/div><\/div><\/div><\/div><div class=\"slider-box\" itemprop=\"review\" itemscope itemtype=\"https:\/\/schema.org\/Review\"><div class=\"slider-box-inner\" style=\"display:none;\"><div class=\"img-text-content\"><div class=\"profile-img-info\"><div class=\"profile-img\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocJNy3lcTKqkgWw8bNkrx_ZhMIcdjEJwpYGI7rG_eL8AdyBhlw=s120-c-rp-mo-br100\" alt=\"Reviewer Image\" itemprop=\"image\" title=\"\"><\/div><div class=\"profile-info\"><div class=\"profile-title\"><h6 itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Person\"><span itemprop=\"name\">Turky Taka<\/span><\/h6><\/div><div class=\"profile-date\"><p>7 mois il y a<\/p><\/div><\/div><\/div><div class=\"right-img\"><img decoding=\"async\" src=\"https:\/\/blueguard.ca\/wp-content\/plugins\/widgets-for-google-reviews-and-ratings\/public\/css\/images\/google-icon.svg\" alt=\"Google_icon\" width: height: title=\"\"><\/div><\/div><div class=\"review-box-parent\"><div class=\"review-box\" itemprop=\"reviewRating\" itemscope itemtype=\"https:\/\/schema.org\/Rating\" style=\"--rating: 5.0; --star-color: #fbb701\"><meta itemprop=\"ratingValue\" content=\"5.0\"><meta itemprop=\"bestRating\" content=\"5\"><\/div><span class=\"verified-icon-box\"><span class=\"repocean-verified-tooltip\" style=\"width: 101px;\">RepOcean v\u00e9rifie que la source originale de l'avis est Google.<\/span><\/span><\/div><div class=\"description max87\" itemprop=\"reviewBody\"><p>Friendly staff and high-quality work.<\/p><\/div><div class=\"button-content hide\"><div class=\"readmore-button\"><a href=\"#\">Lire la suite<\/a><\/div><\/div><\/div><\/div><div class=\"slider-box\" itemprop=\"review\" itemscope itemtype=\"https:\/\/schema.org\/Review\"><div class=\"slider-box-inner\" style=\"display:none;\"><div class=\"img-text-content\"><div class=\"profile-img-info\"><div class=\"profile-img\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocJjFA_ZfB3_1MxbGFcTKI_glNVSOuyXYzBirKXO5fwII15YCg=s120-c-rp-mo-br100\" alt=\"Reviewer Image\" itemprop=\"image\" title=\"\"><\/div><div class=\"profile-info\"><div class=\"profile-title\"><h6 itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Person\"><span itemprop=\"name\">Ryan Reed<\/span><\/h6><\/div><div class=\"profile-date\"><p>7 mois il y a<\/p><\/div><\/div><\/div><div class=\"right-img\"><img decoding=\"async\" src=\"https:\/\/blueguard.ca\/wp-content\/plugins\/widgets-for-google-reviews-and-ratings\/public\/css\/images\/google-icon.svg\" alt=\"Google_icon\" width: height: title=\"\"><\/div><\/div><div class=\"review-box-parent\"><div class=\"review-box\" itemprop=\"reviewRating\" itemscope itemtype=\"https:\/\/schema.org\/Rating\" style=\"--rating: 5.0; --star-color: #fbb701\"><meta itemprop=\"ratingValue\" content=\"5.0\"><meta itemprop=\"bestRating\" content=\"5\"><\/div><span class=\"verified-icon-box\"><span class=\"repocean-verified-tooltip\" style=\"width: 101px;\">RepOcean v\u00e9rifie que la source originale de l'avis est Google.<\/span><\/span><\/div><div class=\"description max63\" itemprop=\"reviewBody\"><p>Highly Recommended!\n\nIf you\u2019re looking for top-quality duct and vent cleaning, this is the service to choose. Friendly staff, great attention to detail, and excellent results! \ud83c\udf1f\ud83d\udc4f<\/p><\/div><div class=\"button-content show\"><div class=\"readmore-button\"><a href=\"#\">Lire la suite<\/a><\/div><\/div><\/div><\/div><div class=\"slider-box\" itemprop=\"review\" itemscope itemtype=\"https:\/\/schema.org\/Review\"><div class=\"slider-box-inner\" style=\"display:none;\"><div class=\"img-text-content\"><div class=\"profile-img-info\"><div class=\"profile-img\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocKmltNAs2LWhdbezfbCb4C3c6FR348GmlthEW3_SQso_OcopQ=s120-c-rp-mo-br100\" alt=\"Reviewer Image\" itemprop=\"image\" title=\"\"><\/div><div class=\"profile-info\"><div class=\"profile-title\"><h6 itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Person\"><span itemprop=\"name\">Robin Hicks<\/span><\/h6><\/div><div class=\"profile-date\"><p>7 mois il y a<\/p><\/div><\/div><\/div><div class=\"right-img\"><img decoding=\"async\" src=\"https:\/\/blueguard.ca\/wp-content\/plugins\/widgets-for-google-reviews-and-ratings\/public\/css\/images\/google-icon.svg\" alt=\"Google_icon\" width: height: title=\"\"><\/div><\/div><div class=\"review-box-parent\"><div class=\"review-box\" itemprop=\"reviewRating\" itemscope itemtype=\"https:\/\/schema.org\/Rating\" style=\"--rating: 5.0; --star-color: #fbb701\"><meta itemprop=\"ratingValue\" content=\"5.0\"><meta itemprop=\"bestRating\" content=\"5\"><\/div><span class=\"verified-icon-box\"><span class=\"repocean-verified-tooltip\" style=\"width: 101px;\">RepOcean v\u00e9rifie que la source originale de l'avis est Google.<\/span><\/span><\/div><div class=\"description max63\" itemprop=\"reviewBody\"><p>Reliable &amp; Trustworthy\n\nVery honest and skilled professionals. They arrived on time and completed the job efficiently. Our home feels fresher, and the airflow has improved noticeably. \ud83d\udca8\ud83c\udfe0<\/p><\/div><div class=\"button-content show\"><div class=\"readmore-button\"><a href=\"#\">Lire la suite<\/a><\/div><\/div><\/div><\/div><div class=\"slider-box\" itemprop=\"review\" itemscope itemtype=\"https:\/\/schema.org\/Review\"><div class=\"slider-box-inner\" style=\"display:none;\"><div class=\"img-text-content\"><div class=\"profile-img-info\"><div class=\"profile-img\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/a\/ACg8ocIhoG8F4Pl7BKKE9Nyz3H_rlI6XcOtfpSn6hbbdGyidcNRB9Q=s120-c-rp-mo-br100\" alt=\"Reviewer Image\" itemprop=\"image\" title=\"\"><\/div><div class=\"profile-info\"><div class=\"profile-title\"><h6 itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Person\"><span itemprop=\"name\">Mr Romeo Romeo<\/span><\/h6><\/div><div class=\"profile-date\"><p>7 mois il y a<\/p><\/div><\/div><\/div><div class=\"right-img\"><img decoding=\"async\" src=\"https:\/\/blueguard.ca\/wp-content\/plugins\/widgets-for-google-reviews-and-ratings\/public\/css\/images\/google-icon.svg\" alt=\"Google_icon\" width: height: title=\"\"><\/div><\/div><div class=\"review-box-parent\"><div class=\"review-box\" itemprop=\"reviewRating\" itemscope itemtype=\"https:\/\/schema.org\/Rating\" style=\"--rating: 5.0; --star-color: #fbb701\"><meta itemprop=\"ratingValue\" content=\"5.0\"><meta itemprop=\"bestRating\" content=\"5\"><\/div><span class=\"verified-icon-box\"><span class=\"repocean-verified-tooltip\" style=\"width: 101px;\">RepOcean v\u00e9rifie que la source originale de l'avis est Google.<\/span><\/span><\/div><div class=\"description max63\" itemprop=\"reviewBody\"><p>Clean Air, Peace of Mind\n\nThe technicians did a fantastic job cleaning all the ducts and vents. No mess, no delays\u2014just clean and healthy air. Worth every penny! \ud83e\uddf9\ud83c\udf3f<\/p><\/div><div class=\"button-content show\"><div class=\"readmore-button\"><a href=\"#\">Lire la suite<\/a><\/div><\/div><\/div><\/div><\/div><\/div><\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- 6. VISUAL PROOF -->\r\n<section class=\"ba-sec\">\r\n  <div class=\"wrap\">\r\n    <p class=\"kick reveal\">Proof, not promises<\/p>\r\n    <h2 class=\"sec reveal\">Unmasking Your Indoor Air: <span class=\"grad\">The True State of Your AC<\/span><\/h2>\r\n    <p class=\"lead reveal\">Drag the slider to see the dust and allergens currently trapped inside your unit and the refreshed state we achieve after your wall-mounted AC cleaning in Aylmer. We replace guesswork with visual proof, ensuring you can see exactly how we restore your system\u2019s performance and your indoor air quality.<\/p>\r\n    <div class=\"ba reveal\" id=\"ba\">\r\n      <div class=\"ba-side ba-before\"><div class=\"duct\"><div class=\"pipe\"><\/div><div class=\"pipe\"><\/div><div class=\"pipe\"><\/div><div class=\"pipe\"><\/div><\/div><\/div>\r\n      <div class=\"ba-side ba-after\" id=\"ba-after\"><div class=\"duct\"><div class=\"pipe\"><\/div><div class=\"pipe\"><\/div><div class=\"pipe\"><\/div><div class=\"pipe\"><\/div><\/div><\/div>\r\n      <div class=\"ba-lab l\">Before<\/div>\r\n      <div class=\"ba-lab r\">After BlueGuard<\/div>\r\n      <div class=\"ba-handle\" id=\"ba-handle\"><\/div>\r\n    <\/div>\r\n    <p class=\"ba-note\"><b>Tip:<\/b> replace this graphic with your real before\/after job photos \u2014 the strongest trust builder in this industry.<\/p>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- 7. LOCAL ANGLE + PROCESS + SIGNS -->\r\n<section>\r\n  <div class=\"wrap\">\r\n    <div class=\"angle\">\r\n      <div>\r\n        <p class=\"kick reveal\">Why Aylmer homes need this<\/p>\r\n        <h2 class=\"sec reveal\">Why Aylmer\u2019s Heat Traps <span class=\"grad\">Indoor Pollutants<\/span><\/h2>\r\n        <p class=\"lead reveal\" style=\"max-width:none\">Aylmer\u2019s humid summers keep your wall unit running non-stop, but this constant airflow pulls pollen, dust, and moisture deep into your system. Instead of clean cooling, your unit can end up circulating trapped debris right where you sleep. Our wall-mounted AC cleaning in Aylmer eliminates this buildup, ensuring your home stays truly refreshed all summer.<\/p>\r\n        <div class=\"chiprow reveal\">\r\n          <span class=\"chip\">\ud83d\udee1\ufe0f NADCA certified<\/span>\r\n          <span class=\"chip\">\ud83d\udcf8 Photo proof<\/span>\r\n          <span class=\"chip\">\ud83d\udcb3 Pay after the job<\/span>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"factcard reveal\">\r\n        <div class=\"fmark\">Blue<span>Guard<\/span> <em>\u00b7 The Facts<\/em><\/div>\r\n        <p>BlueGuard Wall-Mounted AC Cleaning provides professional Wall-mounted AC cleaning in Aylmer for $179, per indoor unit. Our <a href=\"https:\/\/nadca.com\/\" target=\"_blank\" rel=\"noopener\">NADCA-certified<\/a> technicians clean the entire wall unit the coil, blower wheel and drain line using low-pressure coil cleaning equipment, and provide before and after photos as proof. Booking is online, with no payment taken upfront.<\/p>\r\n        <a class=\"btn btn-green\" href=\"#book\" onclick=\"convBook()\" style=\"width:100%;margin-top:22px;font-size:16px;padding:14px 24px\">Check Open Dates \u2192<\/a>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"proc-panel\" style=\"margin-top:70px\">\r\n      <p class=\"kick reveal\">Thorough, certified, photographed<\/p>\r\n      <h2 class=\"sec reveal\" style=\"font-size:clamp(26px,3.6vw,36px)\">Our 5-step <span class=\"grad\">deep clean<\/span> process<\/h2>\r\n      <p class=\"lead reveal\">We clean the entire system coil and blower and prove it with before &amp; after photos.<\/p>\r\n      <div class=\"proc\">\r\n      <div class=\"pstep reveal\"><span class=\"num\">01<\/span><div class=\"ic\">\ud83d\udd0d<\/div><h3>Inspect<\/h3><p>Camera check of your system and a coil and blower check \u2014 your exact quote, confirmed.<\/p><\/div>\r\n      <div class=\"pstep reveal\"><span class=\"num\">02<\/span><div class=\"ic\">\ud83d\udee1\ufe0f<\/div><h3>Protect<\/h3><p>Floors, walls and corners covered. Shoe covers on, always.<\/p><\/div>\r\n      <div class=\"pstep reveal\"><span class=\"num\">03<\/span><div class=\"ic\">\ud83c\udf00<\/div><h3>Deep Clean<\/h3><p>Low-pressure coil cleaner and soft brushes clean the coil, blower wheel and drain line.<\/p><\/div>\r\n      <div class=\"pstep reveal\"><span class=\"num\">04<\/span><div class=\"ic\">\ud83c\udf3f<\/div><h3>Sanitize<\/h3><p>Optional herbal-grade antimicrobial fog through the coil and blower wheel.<\/p><\/div>\r\n      <div class=\"pstep reveal\"><span class=\"num\">05<\/span><div class=\"ic\">\ud83d\udcf8<\/div><h3>Prove It<\/h3><p>Before &amp; after photos of your wall unit, in your hands before we leave.<\/p><\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div style=\"margin-top:64px\">\r\n      <p class=\"kick reveal\">Does your home need it?<\/p>\r\n      <h2 class=\"sec reveal\" style=\"font-size:clamp(26px,3.6vw,36px)\">Tap the <span class=\"grad\">signs<\/span> you've noticed<\/h2>\r\n      <div class=\"signs reveal\">\r\n        <div class=\"sign\" onclick=\"sg(this)\"><span class=\"sic\">\ud83c\udf2b\ufe0f<\/span>Dust comes back fast after cleaning<\/div>\r\n        <div class=\"sign\" onclick=\"sg(this)\"><span class=\"sic\">\ud83e\udd27<\/span>Allergies or sneezing worse indoors<\/div>\r\n        <div class=\"sign\" onclick=\"sg(this)\"><span class=\"sic\">\ud83d\udc43<\/span>Musty smell when the AC runs<\/div>\r\n        <div class=\"sign\" onclick=\"sg(this)\"><span class=\"sic\">\ud83d\udc3e<\/span>Pets in the home (hair &amp; dander buildup)<\/div>\r\n        <div class=\"sign\" onclick=\"sg(this)\"><span class=\"sic\">\ud83c\udfe0<\/span>Just moved in or renovated recently<\/div>\r\n        <div class=\"sign\" onclick=\"sg(this)\"><span class=\"sic\">\ud83d\udcc5<\/span>No wall-mounted AC cleaning in the last 2\u20133 years<\/div>\r\n      <\/div>\r\n      <div class=\"sign-result reveal\" id=\"sign-result\">Tap any signs above that sound like your home.<\/div>\r\n    <\/div>\r\n    <div class=\"midcta reveal\"><a class=\"btn btn-green\" href=\"#book\" onclick=\"convBook()\">Get The Real Clean \u2014 $179 \u2192<\/a><\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- 8. BOOKING (live widget embed) -->\r\n<section id=\"booktop\" style=\"scroll-margin-top:70px\">\r\n  <div class=\"wrap\">\r\n    <p class=\"kick reveal\">Live calendar \u2014 real openings<\/p>\r\n    <h2 class=\"sec reveal\">Book Your <span class=\"grad\">Service, Transparent and Easy<\/span><\/h2>\r\n    <p class=\"lead reveal\">Schedule your wall-mounted AC cleaning in Aylmer in seconds. We provide your exact price upfront with no hidden fees and zero online payment required just professional, reliable service at your convenience. We also provide services in <a href=\"https:\/\/www.w3schools.com\" target=\"_blank\" rel=\"noopener\">Ottawa<\/a>, <a href=\"https:\/\/www.w3schools.com\" target=\"_blank\" rel=\"noopener\">Nepean<\/a>, <a href=\"https:\/\/www.w3schools.com\" target=\"_blank\" rel=\"noopener\">Orleans<\/a>, <a href=\"https:\/\/www.w3schools.com\" target=\"_blank\" rel=\"noopener\">Gatineau<\/a>, and <a href=\"https:\/\/www.w3schools.com\" target=\"_blank\" rel=\"noopener\">Kanata<\/a>.<\/p>\r\n\r\n    <div id=\"book\" style=\"scroll-margin-top:80px\"><\/div>\r\n    <div class=\"guarbar reveal\">\r\n      <div class=\"badge\"><div>100%<\/div><small>GUARANTEE<\/small><\/div>\r\n      <div>\r\n        <h3>Booking is risk-free<\/h3>\r\n        <p>Not happy with the service? We make it right. And you pay nothing online \u2014 confirm first, pay after the job is done.<\/p>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- LIVE BOOKING WIDGET: renders the 4-step booking form from this shortcode -->\r\n    <div id=\"bookwidget\" style=\"scroll-margin-top:80px\"><\/div>\r\n    <div class=\"booking-scope reveal\" style=\"margin-top:24px\">\r\n      <style>\n.bg-book *, .bg-book *::before, .bg-book *::after { box-sizing: border-box !important; margin: 0 !important; padding: 0 !important; }\n.bg-book { font-family: 'Nunito', sans-serif !important; color: #0B1E3F !important; background: #f4f7fb00 !important; min-height: 100vh !important; padding: 0 !important; }\n\n\/* HERO *\/\n.bg-book__hero { max-width: 1100px !important; margin: 0 auto 36px auto !important; text-align: center !important; }\n.bg-book__eyebrow { display: inline-block !important; background: #7AC943 !important; color: #0B1E3F !important; font-family: 'Barlow Condensed', sans-serif !important; font-weight: 700 !important; font-size: 14px !important; letter-spacing: 2px !important; text-transform: uppercase !important; padding: 8px 16px !important; border-radius: 4px !important; margin-bottom: 16px !important; }\n.bg-book__title { font-family: 'Barlow Condensed', sans-serif !important; font-weight: 800 !important; font-size: clamp(34px, 5vw, 54px) !important; line-height: 1.05 !important; color: #0B1E3F !important; text-transform: uppercase !important; letter-spacing: -0.5px !important; margin-bottom: 12px !important; }\n.bg-book__title span { color: #2B6CD4 !important; }\n.bg-book__subtitle { font-weight: 600 !important; font-size: 17px !important; color: #4B5C7A !important; max-width: 620px !important; margin: 0 auto !important; line-height: 1.5 !important; }\n\n\/* CARD *\/\n.bg-book__card { max-width: 940px !important; margin: 0 auto !important; background: #FFFFFF !important; border-radius: 18px !important; box-shadow: 0 24px 60px rgba(11, 30, 63, 0.10) !important; overflow: hidden !important; }\n\n\/* PROGRESS *\/\n.bg-book__progress { display: flex !important; background: #0B1E3F !important; }\n.bg-book__step { flex: 1 !important; padding: 18px 10px !important; text-align: center !important; font-family: 'Barlow Condensed', sans-serif !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 1px !important; font-size: 13px !important; color: rgba(255,255,255,0.45) !important; border-bottom: 3px solid transparent !important; transition: all 0.3s ease !important; }\n.bg-book__step--active { color: #FFFFFF !important; border-bottom-color: #7AC943 !important; background: rgba(255,255,255,0.06) !important; }\n.bg-book__step--done { color: #7AC943 !important; border-bottom-color: #7AC943 !important; }\n.bg-book__step-num { display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 22px !important; height: 22px !important; border-radius: 50% !important; background: rgba(255,255,255,0.15) !important; color: #fff !important; font-size: 12px !important; font-weight: 800 !important; margin-right: 6px !important; }\n.bg-book__step--active .bg-book__step-num { background: #2B6CD4 !important; }\n.bg-book__step--done .bg-book__step-num { background: #7AC943 !important; color: #0B1E3F !important; }\n\n\/* PANEL *\/\n.bg-book__panel { padding: 40px 15px !important; display: none !important; }\n.bg-book__panel--active { display: block !important; animation: bgFade 0.4s ease !important; }\n@keyframes bgFade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }\n.bg-book__panel-title { font-family: 'Barlow Condensed', sans-serif !important; font-weight: 800 !important; font-size: 28px !important; text-transform: uppercase !important; color: #0B1E3F !important; margin-bottom: 4px !important; }\n.bg-book__panel-sub { font-size: 15px !important; color: #6B7B97 !important; margin-bottom: 26px !important; }\n\n\/* SERVICE BLOCK *\/\n.bg-book__svc { position: relative !important; border: 2px solid #E3EAF3 !important; border-radius: 14px !important; margin-bottom: 15px !important; overflow: visible !important; transition: all 0.25s ease !important; }\n.bg-book__svc.is-active { border-color: #2B6CD4 !important; box-shadow: 0 10px 26px rgba(43,108,212,0.12) !important; }\n.bg-book__svc-head { display: flex !important; align-items: center !important; gap: 14px !important; padding: 20px !important; cursor: pointer !important; background: #FFFFFF !important; border-radius: 12px !important; }\n.bg-book__svc.is-active .bg-book__svc-head { background: #F4F8FF !important; }\n.bg-book__svc-check { width: 26px !important; height: 26px !important; border: 2px solid #C5CEDC !important; border-radius: 7px !important; flex-shrink: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; transition: all 0.2s ease !important; }\n.bg-book__svc.is-active .bg-book__svc-check { background: #7AC943 !important; border-color: #7AC943 !important; }\n.bg-book__svc.is-active .bg-book__svc-check::after { content: '\u2713' !important; color: #0B1E3F !important; font-weight: 800 !important; font-size: 15px !important; }\n.bg-book__svc-icon { font-size: 30px !important; flex-shrink: 0 !important; }\n.bg-book__svc-info { flex: 1 !important; }\n.bg-book__svc-name { font-family: 'Barlow Condensed', sans-serif !important; font-weight: 700 !important; font-size: 20px !important; text-transform: uppercase !important; color: #0B1E3F !important; line-height: 1.1 !important; }\n.bg-book__svc-desc { font-size: 13px !important; color: #6B7B97 !important; margin-top: 2px !important; }\n.bg-book__svc-price { font-family: 'Barlow Condensed', sans-serif !important; font-weight: 700 !important; font-size: 16px !important; color: #2B6CD4 !important; white-space: nowrap !important; }\n\n\/* DISCOUNT BADGE \u2014 strip at the very top inside the suggested service card *\/\n.bg-book__badge {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  gap: 6px !important;\n  width: 100% !important;\n  box-sizing: border-box !important;\n  background: linear-gradient(135deg, #FF4D4D 0%, #E0A800 100%) !important;\n  color: #FFFFFF !important;\n  font-family: 'Barlow Condensed', sans-serif !important;\n  font-weight: 800 !important;\n  font-size: 15px !important;\n  letter-spacing: 0.8px !important;\n  text-transform: uppercase !important;\n  padding: 10px 14px !important;\n  border-radius: 12px 12px 0 0 !important;\n  box-shadow: 0 4px 12px rgba(224,77,77,0.30) !important;\n  cursor: pointer !important;\n  white-space: nowrap !important;\n  transform-origin: center top !important;\n  transition: filter 0.15s ease !important;\n  animation: bgBadgePop 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) !important;\n}\n.bg-book__badge:hover { filter: brightness(1.06) !important; }\n.bg-book__badge::before { content: '\ud83d\udd25' !important; font-size: 16px !important; }\n\n@keyframes bgBadgePop {\n  0%   { opacity: 0; transform: scaleY(0); }\n  40%  { opacity: 1; transform: scaleY(1.15); }\n  65%  { transform: scaleY(0.94); }\n  82%  { transform: scaleY(1.05); }\n  100% { opacity: 1; transform: scaleY(1); }\n}\n\/* SERVICE BODY (options that expand) *\/\n.bg-book__svc-body { display: none !important; padding: 0 20px 20px 20px !important; border-top: 1px dashed #E3EAF3 !important; }\n.bg-book__svc.is-active .bg-book__svc-body { display: block !important; animation: bgFade 0.3s ease !important; }\n.bg-book__opt-row { display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 14px 0 !important; border-bottom: 1px solid #F0F4F9 !important; }\n.bg-book__opt-row:last-child { border-bottom: none !important; }\n.bg-book__opt-label { font-weight: 700 !important; font-size: 15px !important; color: #0B1E3F !important; }\n.bg-book__opt-hint { font-size: 12px !important; color: #9AA8BD !important; font-weight: 600 !important; margin-top: 2px !important; }\n\n\/* QUANTITY STEPPER *\/\n.bg-book__qty { display: flex !important; align-items: center !important; gap: 0 !important; border: 2px solid #E3EAF3 !important; border-radius: 10px !important; overflow: hidden !important; }\n.bg-book__qty-btn { width: 42px !important; height: 42px !important; border: none !important; background: #F4F7FB !important; color: #2B6CD4 !important; font-size: 22px !important; font-weight: 700 !important; cursor: pointer !important; transition: all 0.15s ease !important; display: flex !important; align-items: center !important; justify-content: center !important; }\n.bg-book__qty-btn:hover { background: #2B6CD4 !important; color: #fff !important; }\n.bg-book__qty-btn:disabled { color: #C5CEDC !important; cursor: not-allowed !important; background: #F4F7FB !important; }\n.bg-book__qty-val { width: 52px !important; text-align: center !important; font-family: 'Barlow Condensed', sans-serif !important; font-weight: 800 !important; font-size: 20px !important; color: #0B1E3F !important; border: none !important; background: #fff !important; outline: none !important; }\n\n\/* FLOOR CHECKBOXES *\/\n.bg-book__floors { display: flex !important; flex-wrap: wrap !important; gap: 10px !important; }\n.bg-book__floor { padding: 9px 16px !important; border: 2px solid #E3EAF3 !important; border-radius: 30px !important; font-weight: 700 !important; font-size: 13px !important; color: #6B7B97 !important; cursor: pointer !important; transition: all 0.2s ease !important; user-select: none !important; }\n.bg-book__floor:hover { border-color: #2B6CD4 !important; }\n.bg-book__floor.is-on { background: #2B6CD4 !important; border-color: #2B6CD4 !important; color: #fff !important; }\n\n\/* TOGGLE SWITCH for simple yes\/no addons *\/\n.bg-book__toggle { position: relative !important; width: 50px !important; height: 28px !important; background: #C5CEDC !important; border-radius: 30px !important; cursor: pointer !important; transition: background 0.25s ease !important; flex-shrink: 0 !important; }\n.bg-book__toggle.is-on { background: #7AC943 !important; }\n.bg-book__toggle::after { content: '' !important; position: absolute !important; top: 3px !important; left: 3px !important; width: 22px !important; height: 22px !important; background: #fff !important; border-radius: 50% !important; transition: transform 0.25s ease !important; box-shadow: 0 2px 5px rgba(0,0,0,0.2) !important; }\n.bg-book__toggle.is-on::after { transform: translateX(22px) !important; }\n\n\/* CALENDAR *\/\n.bg-book__cal-wrap { display: grid !important; grid-template-columns: 1.4fr 1fr !important; gap: 24px !important; }\n.bg-book__cal { background: #FFFFFF !important; border: 2px solid #E3EAF3 !important; border-radius: 14px !important; padding: 20px !important; }\n.bg-book__cal-head { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 16px !important; }\n.bg-book__cal-month { font-family: 'Barlow Condensed', sans-serif !important; font-weight: 800 !important; font-size: 21px !important; text-transform: uppercase !important; color: #0B1E3F !important; }\n.bg-book__cal-nav { display: flex !important; gap: 8px !important; }\n.bg-book__cal-btn { width: 36px !important; height: 36px !important; border-radius: 50% !important; background: #F4F7FB !important; border: none !important; cursor: pointer !important; font-size: 16px !important; font-weight: 700 !important; color: #2B6CD4 !important; transition: all 0.2s ease !important; }\n.bg-book__cal-btn:hover { background: #2B6CD4 !important; color: #fff !important; }\n.bg-book__cal-grid { display: grid !important; grid-template-columns: repeat(7, 1fr) !important; gap: 4px !important; }\n.bg-book__cal-dow { text-align: center !important; padding: 6px 0 !important; font-family: 'Barlow Condensed', sans-serif !important; font-weight: 700 !important; font-size: 11px !important; color: #9AA8BD !important; text-transform: uppercase !important; letter-spacing: 1px !important; }\n.bg-book__cal-day { aspect-ratio: 1\/1 !important; display: flex !important; align-items: center !important; justify-content: center !important; border-radius: 8px !important; cursor: pointer !important; font-weight: 700 !important; font-size: 14px !important; color: #0B1E3F !important; background: #F4F7FB !important; transition: all 0.15s ease !important; position: relative !important; }\n.bg-book__cal-day:hover:not(.is-disabled):not(.is-empty) { background: #2B6CD4 !important; color: #fff !important; }\n.bg-book__cal-day.is-available::after { content: '' !important; position: absolute !important; bottom: 4px !important; left: 50% !important; transform: translateX(-50%) !important; width: 5px !important; height: 5px !important; border-radius: 50% !important; background: #7AC943 !important; }\n.bg-book__cal-day.is-selected { background: #2B6CD4 !important; color: #fff !important; }\n.bg-book__cal-day.is-selected::after { background: #fff !important; }\n.bg-book__cal-day.is-disabled { color: #C5CEDC !important; cursor: not-allowed !important; background: transparent !important; }\n.bg-book__cal-day.is-empty { background: transparent !important; cursor: default !important; }\n\n\/* TIME SLOTS *\/\n.bg-book__slots-title { font-family: 'Barlow Condensed', sans-serif !important; font-weight: 700 !important; font-size: 16px !important; text-transform: uppercase !important; color: #0B1E3F !important; margin-bottom: 12px !important; }\n.bg-book__slots { display: grid !important; grid-template-columns: 1fr !important; gap: 8px !important; }\n.bg-book__slot { padding: 12px !important; text-align: center !important; border: 2px solid #E3EAF3 !important; border-radius: 9px !important; font-weight: 700 !important; font-size: 14px !important; color: #0B1E3F !important; cursor: pointer !important; transition: all 0.2s ease !important; }\n.bg-book__slot:hover { border-color: #2B6CD4 !important; }\n.bg-book__slot.is-on { background: #2B6CD4 !important; border-color: #2B6CD4 !important; color: #fff !important; }\n.bg-book__slot-empty { grid-column: 1\/-1 !important; text-align: center !important; color: #9AA8BD !important; font-size: 14px !important; padding: 30px 0 !important; }\n.bg-book__slot { position: relative !important; overflow: hidden !important; }\n.bg-book__slot.is-full { background: #F7F8FA !important; border-color: #EBEEF3 !important; border-style: dashed !important; color: #AEB7C4 !important; cursor: not-allowed !important; }\n.bg-book__slot.is-full:hover { border-color: #EBEEF3 !important; transform: none !important; }\n.bg-book__slot.is-full .bg-book__slot-time { text-decoration: line-through !important; text-decoration-color: #CBD2DC !important; font-weight: 700 !important; }\n.bg-book__slot.is-full .bg-book__slot-tag { display: inline-flex !important; align-items: center !important; gap: 4px !important; margin-top: 4px !important; font-size: 11px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 0.5px !important; color: #E04848 !important; }\n.bg-book__slot-cross { position: absolute !important; top: 8px !important; right: 8px !important; width: 20px !important; height: 20px !important; background: #FBE9E9 !important; border-radius: 50% !important; display: flex !important; align-items: center !important; justify-content: center !important; }\n.bg-book__slot-cross svg { width: 11px !important; height: 11px !important; stroke: #E04848 !important; stroke-width: 2.5 !important; }\n.bg-book__slots-title { transition: color 0.3s ease !important; }\n.bg-book__slots-wrap-highlight { animation: bgPulse 1.2s ease 2 !important; border-radius: 12px !important; }\n@keyframes bgPulse {\n  0% { box-shadow: 0 0 0 0 rgba(122,201,67,0.5); }\n  50% { box-shadow: 0 0 0 8px rgba(122,201,67,0.08); }\n  100% { box-shadow: 0 0 0 0 rgba(122,201,67,0); }\n}\n.bg-book__slots-title.is-active { color: #7AC943 !important; } \n  \n  \n\n\/* FORM *\/\n.bg-book__form-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 16px !important; }\n.bg-book__field { display: flex !important; flex-direction: column !important; }\n.bg-book__field--full { grid-column: 1\/-1 !important; }\n.bg-book__label { font-family: 'Barlow Condensed', sans-serif !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 1px !important; font-size: 13px !important; color: #0B1E3F !important; margin-bottom: 6px !important; }\n.bg-book__label span { color: #E04848 !important; }\n.bg-book__input, .bg-book__textarea { font-family: 'Nunito', sans-serif !important; font-weight: 600 !important; font-size: 15px !important; padding: 12px 14px !important; border: 2px solid #E3EAF3 !important; border-radius: 8px !important; color: #0B1E3F !important; background: #fff !important; transition: border-color 0.2s ease !important; outline: none !important; width: 100% !important; }\n.bg-book__input:focus, .bg-book__textarea:focus { border-color: #2B6CD4 !important; }\n.bg-book__textarea { resize: vertical !important; min-height: 80px !important; }\n\n\/* SUMMARY SIDEBAR (sticky) *\/\n.bg-book__layout { display: grid !important; grid-template-columns: 1fr 300px !important; gap: 28px !important; align-items: start !important; }\n.bg-book__cart { background: #0B1E3F !important; border-radius: 14px !important; padding: 24px !important; position: sticky !important; top: 20px !important; }\n.bg-book__cart-title { font-family: 'Barlow Condensed', sans-serif !important; font-weight: 800 !important; font-size: 20px !important; text-transform: uppercase !important; color: #fff !important; margin-bottom: 16px !important; padding-bottom: 14px !important; border-bottom: 1px solid rgba(255,255,255,0.12) !important; }\n.bg-book__cart-row { display: flex !important; justify-content: space-between !important; gap: 10px !important; padding: 8px 0 !important; font-size: 14px !important; color: rgba(255,255,255,0.85) !important; }\n.bg-book__cart-row strong { color: #7AC943 !important; font-weight: 700 !important; }\n.bg-book__cart-empty { color: rgba(255,255,255,0.5) !important; font-size: 14px !important; text-align: center !important; padding: 20px 0 !important; }\n.bg-book__cart-note { margin-top: 16px !important; padding-top: 14px !important; border-top: 1px solid rgba(255,255,255,0.12) !important; font-size: 12px !important; color: rgba(255,255,255,0.55) !important; line-height: 1.5 !important; }\n\n\/* SUMMARY (final step) *\/\n.bg-book__summary { background: #F4F7FB !important; border-radius: 12px !important; padding: 20px !important; margin-bottom: 20px !important; }\n.bg-book__summary-row { display: flex !important; justify-content: space-between !important; gap: 12px !important; padding: 10px 0 !important; border-bottom: 1px solid #E3EAF3 !important; font-size: 14px !important; }\n.bg-book__summary-row:last-child { border-bottom: none !important; }\n.bg-book__summary-key { color: #6B7B97 !important; font-weight: 600 !important; font-family: 'Barlow Condensed', sans-serif !important; text-transform: uppercase !important; letter-spacing: 1px !important; }\n.bg-book__summary-val { color: #0B1E3F !important; font-weight: 700 !important; text-align: right !important; max-width: 60% !important; }\n\n\/* NAV BUTTONS *\/\n.bg-book__nav { display: flex !important; justify-content: space-between !important; gap: 12px !important; margin-top: 28px !important; }\n.bg-book__btn { font-family: 'Barlow Condensed', sans-serif !important; font-weight: 800 !important; text-transform: uppercase !important; letter-spacing: 1.5px !important; font-size: 15px !important; padding: 14px 30px !important; border-radius: 8px !important; border: none !important; cursor: pointer !important; transition: all 0.25s ease !important; }\n.bg-book__btn--primary { background: #2B6CD4 !important; color: #fff !important; box-shadow: 0 6px 14px rgba(43,108,212,0.25) !important; }\n.bg-book__btn--primary:hover { background: #1F58B3 !important; transform: translateY(-2px) !important; }\n.bg-book__btn--primary:disabled { background: #C5CEDC !important; box-shadow: none !important; cursor: not-allowed !important; transform: none !important; }\n.bg-book__btn--secondary { background: #fff !important; color: #2B6CD4 !important; border: 2px solid #E3EAF3 !important; }\n.bg-book__btn--secondary:hover { border-color: #2B6CD4 !important; }\n.bg-book__btn--success { background: #7AC943 !important; color: #0B1E3F !important; box-shadow: 0 6px 14px rgba(122,201,67,0.30) !important; }\n.bg-book__btn--success:hover { background: #6BB838 !important; transform: translateY(-2px) !important; }\n\n\/* SUCCESS *\/\n.bg-book__success { text-align: center !important; padding: 20px 0 !important; }\n.bg-book__success-icon { width: 80px !important; height: 80px !important; background: #7AC943 !important; border-radius: 50% !important; display: flex !important; align-items: center !important; justify-content: center !important; margin: 0 auto 20px auto !important; font-size: 40px !important; color: #0B1E3F !important; animation: bgPop 0.5s ease !important; }\n@keyframes bgPop { 0% { transform: scale(0); } 60% { transform: scale(1.15); } 100% { transform: scale(1); } }\n.bg-book__success-title { font-family: 'Barlow Condensed', sans-serif !important; font-weight: 800 !important; font-size: 32px !important; text-transform: uppercase !important; color: #0B1E3F !important; margin-bottom: 8px !important; }\n.bg-book__success-sub { font-size: 16px !important; color: #6B7B97 !important; margin-bottom: 24px !important; line-height: 1.5 !important; }\n.bg-book__success-ref { background: #F4F8FF !important; border: 2px dashed #2B6CD4 !important; border-radius: 10px !important; padding: 14px 22px !important; display: inline-block !important; margin-bottom: 28px !important; }\n.bg-book__success-ref small { display: block !important; font-family: 'Barlow Condensed', sans-serif !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 1px !important; font-size: 11px !important; color: #6B7B97 !important; margin-bottom: 4px !important; }\n.bg-book__success-ref strong { font-family: 'Barlow Condensed', sans-serif !important; font-weight: 800 !important; font-size: 22px !important; color: #2B6CD4 !important; letter-spacing: 2px !important; }\n\n.bg-book__error { display: none !important; background: #FFF0F0 !important; border-left: 4px solid #E04848 !important; padding: 12px 14px !important; border-radius: 6px !important; color: #C03333 !important; font-size: 14px !important; font-weight: 600 !important; margin-bottom: 16px !important; }\n.bg-book__error.is-shown { display: block !important; }\n\n@media (max-width: 820px) {\n  .bg-book__layout { grid-template-columns: 1fr !important; }\n  .bg-book__cart { position: static !important; }\n  .bg-book__cal-wrap { grid-template-columns: 1fr !important; }\n}\n@media (max-width: 600px) {\n  .bg-book { padding: 50px 0px !important; }\n  .bg-book__panel { padding: 24px 18px !important; }\n  .bg-book__form-grid { grid-template-columns: 1fr !important; }\n  .bg-book__step { font-size: 0 !important; padding: 14px 4px !important; }\n  .bg-book__step-num { margin-right: 0 !important; font-size: 12px !important; }\n  .bg-book__slots { grid-template-columns: 1fr !important; }\n  .bg-book__nav { flex-direction: column-reverse !important; }\n  .bg-book__btn { width: 100% !important; }\n  .bg-book__svc-name { font-size: 16px !important;}\n  .bg-book__svc-desc { line-height: 17px; }\n  .bg-book__svc-head { padding: 15px 10px !important; gap: 6px !important; }\n}\n<\/style>\n\n<div class=\"bg-book\">\n\n  \n\n  <div class=\"bg-book__card\">\n\n    <div class=\"bg-book__progress\">\n      <div class=\"bg-book__step bg-book__step--active\" data-step=\"1\"><span class=\"bg-book__step-num\">1<\/span>Services<\/div>\n      <div class=\"bg-book__step\" data-step=\"2\"><span class=\"bg-book__step-num\">2<\/span>Date &amp; Time<\/div>\n      <div class=\"bg-book__step\" data-step=\"3\"><span class=\"bg-book__step-num\">3<\/span>Your Details<\/div>\n      <div class=\"bg-book__step\" data-step=\"4\"><span class=\"bg-book__step-num\">4<\/span>Confirm<\/div>\n    <\/div>\n\n    <!-- ====== STEP 1: SERVICES ====== -->\n    <div class=\"bg-book__panel bg-book__panel--active\" data-panel=\"1\">\n      <div class=\"bg-book__layout\">\n        <div>\n          <h2 class=\"bg-book__panel-title\">Choose Your Services<\/h2>\n          <p class=\"bg-book__panel-sub\">Select one or more. Use the +\/\u2212 to set quantities.<\/p>\n\n                    <div class=\"bg-book__svc\" data-svc-id=\"1\"\n               data-svc-name=\"Air Duct Cleaning\"\n               data-svc-type=\"quantity\">\n            <div class=\"bg-book__svc-head\">\n              <div class=\"bg-book__svc-check\"><\/div>\n              <span class=\"bg-book__svc-icon\">\n                                      <img decoding=\"async\" src=\"https:\/\/blueguard.ca\/wp-content\/uploads\/2025\/10\/piping_3653207.png\" alt=\"\" style=\"width:32px;height:32px;object-fit:contain;display:block;\" title=\"\">\n                                  <\/span>\n              <div class=\"bg-book__svc-info\">\n                <div class=\"bg-book__svc-name\">Air Duct Cleaning<\/div>\n                <div class=\"bg-book__svc-desc\">Complete residential air duct system cleaning<\/div>\n              <\/div>\n            <\/div>\n            <div class=\"bg-book__svc-body\">\n                            <div class=\"bg-book__opt-row\">\n                <div>\n                  <div class=\"bg-book__opt-label\">Number of Vents<\/div>\n                  <div class=\"bg-book__opt-hint\">How many supply &amp; return vents in your home?<\/div>\n                <\/div>\n                <div class=\"bg-book__qty\"\n                     data-qty-key=\"vents\"\n                     data-qty-min=\"1\"\n                     data-qty-max=\"99\">\n                  <button class=\"bg-book__qty-btn\" data-act=\"minus\">\u2212<\/button>\n                  <input class=\"bg-book__qty-val\" value=\"10\" readonly \/>\n                  <button class=\"bg-book__qty-btn\" data-act=\"plus\">+<\/button>\n                <\/div>\n              <\/div>\n                          <\/div>\n          <\/div>\n                    <div class=\"bg-book__svc\" data-svc-id=\"2\"\n               data-svc-name=\"Air Exchanger Cleaning\"\n               data-svc-type=\"none\">\n            <div class=\"bg-book__svc-head\">\n              <div class=\"bg-book__svc-check\"><\/div>\n              <span class=\"bg-book__svc-icon\">\n                                      <img decoding=\"async\" src=\"https:\/\/blueguard.ca\/wp-content\/uploads\/2025\/09\/air-filter.svg\" alt=\"\" style=\"width:32px;height:32px;object-fit:contain;display:block;\" title=\"\">\n                                  <\/span>\n              <div class=\"bg-book__svc-info\">\n                <div class=\"bg-book__svc-name\">Air Exchanger Cleaning<\/div>\n                <div class=\"bg-book__svc-desc\">HRV\/ERV unit, core &amp; filters cleaned<\/div>\n              <\/div>\n            <\/div>\n            <div class=\"bg-book__svc-body\">\n                            <div class=\"bg-book__opt-row\">\n                <div>\n                  <div class=\"bg-book__opt-label\">Air exchanger included<\/div>\n                  <div class=\"bg-book__opt-hint\">Added to your package<\/div>\n                <\/div>\n                <span style=\"color:#7AC943;font-weight:800;font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;\">Added \u2713<\/span>\n              <\/div>\n                          <\/div>\n          <\/div>\n                    <div class=\"bg-book__svc\" data-svc-id=\"3\"\n               data-svc-name=\"Dryer Vent Cleaning\"\n               data-svc-type=\"floors\">\n            <div class=\"bg-book__svc-head\">\n              <div class=\"bg-book__svc-check\"><\/div>\n              <span class=\"bg-book__svc-icon\">\n                                      <img decoding=\"async\" src=\"https:\/\/blueguard.ca\/wp-content\/uploads\/2025\/09\/bathroom_2891110.svg\" alt=\"\" style=\"width:32px;height:32px;object-fit:contain;display:block;\" title=\"\">\n                                  <\/span>\n              <div class=\"bg-book__svc-info\">\n                <div class=\"bg-book__svc-name\">Dryer Vent Cleaning<\/div>\n                <div class=\"bg-book__svc-desc\">Remove lint buildup, prevent fire hazards<\/div>\n              <\/div>\n            <\/div>\n            <div class=\"bg-book__svc-body\">\n                            <div class=\"bg-book__opt-row\">\n                <div>\n                  <div class=\"bg-book__opt-label\">Which floors need service?<\/div>\n                  <div class=\"bg-book__opt-hint\">Select all that apply<\/div>\n                <\/div>\n              <\/div>\n              <div class=\"bg-book__floors\" data-floors-key=\"floors\">\n                                  <div class=\"bg-book__floor\" data-floor=\"Basement\">Basement<\/div>\n                                  <div class=\"bg-book__floor\" data-floor=\"Main Floor\">Main Floor<\/div>\n                                  <div class=\"bg-book__floor\" data-floor=\"Second Floor\">Second Floor<\/div>\n                              <\/div>\n                          <\/div>\n          <\/div>\n                    <div class=\"bg-book__svc\" data-svc-id=\"4\"\n               data-svc-name=\"Main Duct Line Sanitization\"\n               data-svc-type=\"none\">\n            <div class=\"bg-book__svc-head\">\n              <div class=\"bg-book__svc-check\"><\/div>\n              <span class=\"bg-book__svc-icon\">\n                                      <img decoding=\"async\" src=\"https:\/\/blueguard.ca\/wp-content\/uploads\/2025\/09\/wind.png\" alt=\"\" style=\"width:32px;height:32px;object-fit:contain;display:block;\" title=\"\">\n                                  <\/span>\n              <div class=\"bg-book__svc-info\">\n                <div class=\"bg-book__svc-name\">Main Duct Line Sanitization<\/div>\n                <div class=\"bg-book__svc-desc\">Antimicrobial fogging treatment of the main trunk line<\/div>\n              <\/div>\n            <\/div>\n            <div class=\"bg-book__svc-body\">\n                            <div class=\"bg-book__opt-row\">\n                <div>\n                  <div class=\"bg-book__opt-label\">Sanitization included<\/div>\n                  <div class=\"bg-book__opt-hint\">Added to your package<\/div>\n                <\/div>\n                <span style=\"color:#7AC943;font-weight:800;font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;\">Added \u2713<\/span>\n              <\/div>\n                          <\/div>\n          <\/div>\n                    <div class=\"bg-book__svc\" data-svc-id=\"5\"\n               data-svc-name=\"Ventilation Fan Cleaning\"\n               data-svc-type=\"quantity\">\n            <div class=\"bg-book__svc-head\">\n              <div class=\"bg-book__svc-check\"><\/div>\n              <span class=\"bg-book__svc-icon\">\n                                      <img decoding=\"async\" src=\"https:\/\/blueguard.ca\/wp-content\/uploads\/2025\/09\/fan_4236262.svg\" alt=\"\" style=\"width:32px;height:32px;object-fit:contain;display:block;\" title=\"\">\n                                  <\/span>\n              <div class=\"bg-book__svc-info\">\n                <div class=\"bg-book__svc-name\">Ventilation Fan Cleaning<\/div>\n                <div class=\"bg-book__svc-desc\">Bathroom &amp; exhaust fan cleaning<\/div>\n              <\/div>\n            <\/div>\n            <div class=\"bg-book__svc-body\">\n                            <div class=\"bg-book__opt-row\">\n                <div>\n                  <div class=\"bg-book__opt-label\">Number of Fans<\/div>\n                  <div class=\"bg-book__opt-hint\">How many exhaust\/ventilation fans?<\/div>\n                <\/div>\n                <div class=\"bg-book__qty\"\n                     data-qty-key=\"fans\"\n                     data-qty-min=\"1\"\n                     data-qty-max=\"99\">\n                  <button class=\"bg-book__qty-btn\" data-act=\"minus\">\u2212<\/button>\n                  <input class=\"bg-book__qty-val\" value=\"1\" readonly \/>\n                  <button class=\"bg-book__qty-btn\" data-act=\"plus\">+<\/button>\n                <\/div>\n              <\/div>\n                          <\/div>\n          <\/div>\n                    <div class=\"bg-book__svc\" data-svc-id=\"7\"\n               data-svc-name=\"Wall Mounted A\/C conditioner\"\n               data-svc-type=\"quantity\">\n            <div class=\"bg-book__svc-head\">\n              <div class=\"bg-book__svc-check\"><\/div>\n              <span class=\"bg-book__svc-icon\">\n                                      <img decoding=\"async\" src=\"https:\/\/blueguard.ca\/wp-content\/uploads\/2026\/04\/air-conditioning.svg\" alt=\"\" style=\"width:32px;height:32px;object-fit:contain;display:block;\" title=\"\">\n                                  <\/span>\n              <div class=\"bg-book__svc-info\">\n                <div class=\"bg-book__svc-name\">Wall Mounted A\/C conditioner<\/div>\n                <div class=\"bg-book__svc-desc\">Complete cleaning of the System<\/div>\n              <\/div>\n            <\/div>\n            <div class=\"bg-book__svc-body\">\n                            <div class=\"bg-book__opt-row\">\n                <div>\n                  <div class=\"bg-book__opt-label\">How many units<\/div>\n                  <div class=\"bg-book__opt-hint\"><\/div>\n                <\/div>\n                <div class=\"bg-book__qty\"\n                     data-qty-key=\"\"\n                     data-qty-min=\"1\"\n                     data-qty-max=\"99\">\n                  <button class=\"bg-book__qty-btn\" data-act=\"minus\">\u2212<\/button>\n                  <input class=\"bg-book__qty-val\" value=\"1\" readonly \/>\n                  <button class=\"bg-book__qty-btn\" data-act=\"plus\">+<\/button>\n                <\/div>\n              <\/div>\n                          <\/div>\n          <\/div>\n          \n          <div class=\"bg-book__nav\">\n            <span><\/span>\n            <button class=\"bg-book__btn bg-book__btn--primary\" id=\"bgNext1\" disabled>Continue \u2192<\/button>\n          <\/div>\n        <\/div>\n\n        <!-- LIVE CART -->\n        <div class=\"bg-book__cart\">\n          <div class=\"bg-book__cart-title\">Your Package<\/div>\n          <div id=\"bgCartBody\">\n            <div class=\"bg-book__cart-empty\">No services selected yet<\/div>\n          <\/div>\n          <div class=\"bg-book__cart-note\">Our team will confirm your booking with a quick call. No payment is taken online.<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- ====== STEP 2: DATE & TIME ====== -->\n    <div class=\"bg-book__panel\" data-panel=\"2\">\n      <h2 class=\"bg-book__panel-title\">Pick a Date &amp; Time<\/h2>\n      <p class=\"bg-book__panel-sub\">Green dot = available. Choose a day, then an available time slot.<\/p>\n      <div class=\"bg-book__cal-wrap\">\n        <div class=\"bg-book__cal\">\n          <div class=\"bg-book__cal-head\">\n            <button class=\"bg-book__cal-btn\" id=\"bgCalPrev\">\u2039<\/button>\n            <div class=\"bg-book__cal-month\" id=\"bgCalMonth\"><\/div>\n            <button class=\"bg-book__cal-btn\" id=\"bgCalNext\">\u203a<\/button>\n          <\/div>\n          <div class=\"bg-book__cal-grid\" id=\"bgCalGrid\"><\/div>\n        <\/div>\n        <div>\n          <div class=\"bg-book__slots-title\">Available Time Slots<\/div>\n          <div class=\"bg-book__slots\" id=\"bgSlots\">\n            <div class=\"bg-book__slot-empty\">Select a date first<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      <div class=\"bg-book__nav\">\n        <button class=\"bg-book__btn bg-book__btn--secondary\" data-back=\"1\">\u2190 Back<\/button>\n        <button class=\"bg-book__btn bg-book__btn--primary\" id=\"bgNext2\" disabled>Continue \u2192<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- ====== STEP 3: DETAILS ====== -->\n    <div class=\"bg-book__panel\" data-panel=\"3\">\n      <h2 class=\"bg-book__panel-title\">Your Details<\/h2>\n      <p class=\"bg-book__panel-sub\">We'll send your confirmation by SMS and email.<\/p>\n      <div class=\"bg-book__form-grid\">\n        <div class=\"bg-book__field\">\n          <label class=\"bg-book__label\">Full Name <span>*<\/span><\/label>\n          <input class=\"bg-book__input\" type=\"text\" id=\"bgName\" placeholder=\"John Smith\" \/>\n        <\/div>\n        <div class=\"bg-book__field\">\n          <label class=\"bg-book__label\">Phone Number <span>*<\/span><\/label>\n          <input class=\"bg-book__input\" type=\"tel\" id=\"bgPhone\" placeholder=\"(613) 555-0123\" \/>\n        <\/div>\n        <div class=\"bg-book__field bg-book__field--full\">\n          <label class=\"bg-book__label\">Email Address <span>*<\/span><\/label>\n          <input class=\"bg-book__input\" type=\"email\" id=\"bgEmail\" placeholder=\"john@example.com\" \/>\n        <\/div>\n        <div class=\"bg-book__field bg-book__field--full\">\n          <label class=\"bg-book__label\">Service Address <span>*<\/span><\/label>\n          <input class=\"bg-book__input\" type=\"text\" id=\"bgAddress\" placeholder=\"123 Main St\" \/>\n        <\/div>\n        <div class=\"bg-book__field\">\n          <label class=\"bg-book__label\">City <span>*<\/span><\/label>\n          <input class=\"bg-book__input\" type=\"text\" id=\"bgCity\" placeholder=\"Ottawa\" \/>\n        <\/div>\n        <div class=\"bg-book__field\">\n          <label class=\"bg-book__label\">Postal Code <span>*<\/span><\/label>\n          <input class=\"bg-book__input\" type=\"text\" id=\"bgPostal\" placeholder=\"K1A 0A1\" \/>\n        <\/div>\n        <div class=\"bg-book__field bg-book__field--full\">\n          <label class=\"bg-book__label\">Additional Notes (Optional)<\/label>\n          <textarea class=\"bg-book__textarea\" id=\"bgNotes\" placeholder=\"Pets, parking, access notes, etc.\"><\/textarea>\n        <\/div>\n      <\/div>\n      <div class=\"bg-book__nav\">\n        <button class=\"bg-book__btn bg-book__btn--secondary\" data-back=\"2\">\u2190 Back<\/button>\n        <button class=\"bg-book__btn bg-book__btn--primary\" id=\"bgNext3\">Review Booking \u2192<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- ====== STEP 4: CONFIRM ====== -->\n    <div class=\"bg-book__panel\" data-panel=\"4\">\n      <h2 class=\"bg-book__panel-title\">Review &amp; Confirm<\/h2>\n      <p class=\"bg-book__panel-sub\">Check everything below, then confirm your booking.<\/p>\n      <div class=\"bg-book__error\" id=\"bgError\"><\/div>\n      <div class=\"bg-book__summary\" id=\"bgSummary\"><\/div>\n      <div style=\"font-size:13px;color:#6B7B97;line-height:1.5;\">\n        By confirming, your booking is submitted as <strong>Pending<\/strong>. One of our team members will reach out within the next 15 minutes to confirm your appointment details. No payment is taken online.\n      <\/div>\n      <div class=\"bg-book__nav\">\n        <button class=\"bg-book__btn bg-book__btn--secondary\" data-back=\"3\">\u2190 Back<\/button>\n        <button class=\"bg-book__btn bg-book__btn--success\" id=\"bgConfirm\">Confirm Booking \u2192<\/button>\n      <\/div>\n    <\/div>\n\n    <!-- ====== SUCCESS ====== -->\n    <div class=\"bg-book__panel\" data-panel=\"5\">\n      <div class=\"bg-book__success\">\n        <div class=\"bg-book__success-icon\">\u2713<\/div>\n        <h2 class=\"bg-book__success-title\">Thank You!<\/h2>\n        <p class=\"bg-book__success-sub\">Your booking request has been received. One of our team members will reach out within the next <strong style=\"color:#0B1E3F;\">15 minutes<\/strong> to confirm your appointment details.<br><br>A copy of your request has also been sent to your phone and email.<\/p>\n        <div class=\"bg-book__success-ref\">\n          <small>Booking Reference<\/small>\n          <strong id=\"bgRefNum\">BG-000000<\/strong>\n        <\/div>\n        <div>\n          <a href=\"tel:18444988364\" class=\"bg-book__btn bg-book__btn--primary\" style=\"text-decoration:none;display:inline-block;\">Call Us: 1-844-498-8364<\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n\n  <\/div>\n<\/div>\n\n<script>\nvar BG_BOOKING = { ajax_url: \"https:\/\/blueguard.ca\/wp-admin\/admin-ajax.php\" };\n<\/script>\n<script>\n(function(){\n  const root = document.querySelector('.bg-book');\n\n  \/\/ ---- BUILD DYNAMIC SERVICE STATE FROM DOM ----\n  const state = {\n    services: {}, \/\/ keyed by svc id\n    date:'', time:'',\n    name:'', phone:'', email:'', address:'', city:'', postal:'', notes:'',\n    step:1\n  };\n\n  root.querySelectorAll('.bg-book__svc').forEach(el=>{\n    const id   = el.dataset.svcId;\n    const name = el.dataset.svcName;\n    const type = el.dataset.svcType;\n    const svc  = { id:id, name:name, type:type, on:false, _el:el };\n\n    if (type === 'quantity') {\n      const q = el.querySelector('.bg-book__qty');\n      svc.key   = q ? q.dataset.qtyKey : 'qty';\n      svc.value = q ? parseInt(q.querySelector('.bg-book__qty-val').value) || 1 : 1;\n    } else if (type === 'floors') {\n      const fl = el.querySelector('.bg-book__floors');\n      svc.key      = fl ? fl.dataset.floorsKey : 'floors';\n      svc.floors   = [];\n    } else if (type === 'text') {\n      const ti = el.querySelector('.bg-book__text-input');\n      svc.key  = ti ? ti.dataset.textKey : 'note';\n      svc.text = '';\n    }\n\n    state.services[id] = svc;\n  });\n\n  \/\/ ---- STEP NAV ----\n  function goToStep(s){\n    state.step=s;\n    root.querySelectorAll('.bg-book__panel').forEach(p=>p.classList.remove('bg-book__panel--active'));\n    root.querySelector('[data-panel=\"'+s+'\"]').classList.add('bg-book__panel--active');\n    root.querySelectorAll('.bg-book__step').forEach(el=>{\n      const n=+el.dataset.step; el.classList.remove('bg-book__step--active','bg-book__step--done');\n      if(n<s) el.classList.add('bg-book__step--done'); else if(n===s) el.classList.add('bg-book__step--active');\n    });\n    \n  }\n  root.querySelectorAll('[data-back]').forEach(b=>b.addEventListener('click',()=>goToStep(+b.dataset.back)));\n\n  \/\/ ---- SERVICE TOGGLE ----\n  root.querySelectorAll('.bg-book__svc').forEach(svcEl=>{\n    const id = svcEl.dataset.svcId;\n    svcEl.querySelector('.bg-book__svc-head').addEventListener('click',(e)=>{\n      if(e.target.closest('.bg-book__qty')||e.target.closest('.bg-book__floors')||e.target.closest('.bg-book__text-input')||e.target.closest('.bg-book__badge')) return;\n      state.services[id].on=!state.services[id].on;\n      svcEl.classList.toggle('is-active',state.services[id].on);\n      refreshCart();\n      refreshBadges();\n    });\n  });\n\n  \/\/ ---- DISCOUNT BADGE SYSTEM ----\n  function findSvcByName(name){\n    return Object.values(state.services).find(s=>\n      (s.name||'').toLowerCase() === (name||'').toLowerCase()\n    );\n  }\n\n  function clearAllBadges(){\n    root.querySelectorAll('.bg-book__badge').forEach(b => b.remove());\n  }\n\n  function attachBadge(targetSvc){\n    if (!targetSvc || !targetSvc._el) return;\n    \/\/ Remove any existing badge on this card\n    const existing = targetSvc._el.querySelector('.bg-book__badge');\n    if (existing) existing.remove();\n\n    const badge = document.createElement('div');\n    badge.className = 'bg-book__badge';\n    badge.textContent = 'Up to 50% Off';\n\n    \/\/ Badge click \u2192 auto-select the service (Behavior B)\n    badge.addEventListener('click', function(e){\n      e.preventDefault();\n      e.stopPropagation();\n      if (!targetSvc.on) {\n        targetSvc.on = true;\n        targetSvc._el.classList.add('is-active');\n        refreshCart();\n        targetSvc._el.scrollIntoView({ behavior:'smooth', block:'center' });\n        \/\/ Brief green highlight pulse\n        targetSvc._el.style.transition = 'box-shadow 0.4s ease';\n        const prevShadow = targetSvc._el.style.boxShadow;\n        targetSvc._el.style.boxShadow = '0 0 0 4px rgba(122,201,67,0.45), 0 10px 26px rgba(43,108,212,0.12)';\n        setTimeout(()=>{ if (targetSvc._el) targetSvc._el.style.boxShadow = prevShadow; }, 1400);\n        refreshBadges();\n      }\n    });\n\n    \/\/ Insert at the very top inside the card (before the head), as a strip\n    targetSvc._el.insertBefore(badge, targetSvc._el.firstChild);\n  }\n\n  function refreshBadges(){\n    clearAllBadges();\n\n    const airduct   = findSvcByName('Air Duct Cleaning');\n    const exchanger = findSvcByName('Air Exchanger Cleaning');\n    const dryer     = findSvcByName('Dryer Vent Cleaning');\n    const sanitize  = findSvcByName('Main Duct Line Sanitization');\n\n    \/\/ Priority 1 (highest): all three on + sanitize off \u2192 badge on Sanitization\n    if (airduct && airduct.on && exchanger && exchanger.on && dryer && dryer.on && sanitize && !sanitize.on) {\n      attachBadge(sanitize);\n      return;\n    }\n    \/\/ Priority 2: Dryer on, Air Duct off \u2192 badge on Air Duct\n    if (dryer && dryer.on && airduct && !airduct.on) {\n      attachBadge(airduct);\n      return;\n    }\n    \/\/ Priority 3: Air Duct or Exchanger on, Dryer off \u2192 badge on Dryer Vent\n    if (((airduct && airduct.on) || (exchanger && exchanger.on)) && dryer && !dryer.on) {\n      attachBadge(dryer);\n      return;\n    }\n  }\n\n  \/\/ ---- QUANTITY STEPPERS ----\n  root.querySelectorAll('.bg-book__qty').forEach(q=>{\n    const svcEl = q.closest('.bg-book__svc');\n    const id    = svcEl.dataset.svcId;\n    const input = q.querySelector('.bg-book__qty-val');\n    const min   = parseInt(q.dataset.qtyMin) || 1;\n    const max   = parseInt(q.dataset.qtyMax) || 99;\n    q.querySelectorAll('.bg-book__qty-btn').forEach(btn=>{\n      btn.addEventListener('click',(e)=>{\n        e.stopPropagation();\n        let v=parseInt(input.value);\n        v += btn.dataset.act==='plus'?1:-1;\n        if(v<min) v=min; if(v>max) v=max;\n        input.value=v;\n        state.services[id].value = v;\n        refreshCart();\n      });\n    });\n  });\n\n  \/\/ ---- FLOOR CHECKBOXES ----\n  root.querySelectorAll('.bg-book__floors').forEach(fl=>{\n    const svcEl = fl.closest('.bg-book__svc');\n    const id    = svcEl.dataset.svcId;\n    fl.querySelectorAll('.bg-book__floor').forEach(f=>{\n      f.addEventListener('click',(e)=>{\n        e.stopPropagation();\n        f.classList.toggle('is-on');\n        const floors=[...fl.querySelectorAll('.bg-book__floor.is-on')].map(x=>x.dataset.floor);\n        state.services[id].floors = floors;\n        refreshCart();\n      });\n    });\n  });\n\n  \/\/ ---- TEXT INPUTS ----\n  root.querySelectorAll('.bg-book__text-input').forEach(ti=>{\n    const svcEl = ti.closest('.bg-book__svc');\n    const id    = svcEl.dataset.svcId;\n    ti.addEventListener('input',(e)=>{\n      state.services[id].text = e.target.value;\n      refreshCart();\n    });\n    ti.addEventListener('click', e => e.stopPropagation());\n  });\n\n  \/\/ ---- LIVE CART ----\n  function refreshCart(){\n    let rows=''; let any=false;\n    Object.values(state.services).forEach(s=>{\n      if(!s.on) return;\n      any = true;\n      let detail = 'Included';\n      if (s.type === 'quantity') {\n        const unit = s.key === 'vents' ? 'vents' : (s.key === 'fans' ? (s.value>1?'fans':'fan') : s.key);\n        detail = s.value + ' ' + unit;\n      } else if (s.type === 'floors') {\n        detail = s.floors.length ? s.floors.join(', ') : 'Select floors';\n      } else if (s.type === 'text') {\n        detail = s.text ? s.text : 'Enter details';\n      }\n      rows += cartRow(s.name, detail);\n    });\n    document.getElementById('bgCartBody').innerHTML = any?rows:'<div class=\"bg-book__cart-empty\">No services selected yet<\/div>';\n    document.getElementById('bgNext1').disabled = !any;\n  }\n  function cartRow(name,detail){return '<div class=\"bg-book__cart-row\"><span>'+name+'<\/span><strong>'+detail+'<\/strong><\/div>';}\n\n  document.getElementById('bgNext1').addEventListener('click',()=>goToStep(2));\n\n  \/\/ ---- CALENDAR ----\n  const calGrid=document.getElementById('bgCalGrid'), calMonth=document.getElementById('bgCalMonth');\n  const months=['January','February','March','April','May','June','July','August','September','October','November','December'];\n  const dows=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];\n  let viewDate=new Date(); viewDate.setDate(1);\n\n  \/\/ Blocked dates loaded from backend (admin manages via \"No job\" all-day events in Google Calendar)\n  let blockedDates = [];\n  (function loadBlockedDates(){\n    const fd = new FormData();\n    fd.append('action', 'bg_get_blocked_dates');\n    fetch(BG_BOOKING.ajax_url, { method: 'POST', body: fd })\n      .then(r => r.json())\n      .then(res => {\n        if (res && res.success && res.data && Array.isArray(res.data.blocked)) {\n          blockedDates = res.data.blocked;\n          renderCalendar(); \/\/ re-render with blocked info\n        }\n      })\n      .catch(() => {});\n  })();\n\n  function ymd(d){\n    const y = d.getFullYear();\n    const m = String(d.getMonth()+1).padStart(2,'0');\n    const day = String(d.getDate()).padStart(2,'0');\n    return y + '-' + m + '-' + day;\n  }\n  function isBlocked(d){\n    return blockedDates.indexOf(ymd(d)) !== -1;\n  }\n\n  \/\/ Availability \u2014 open all days, only block past dates and \"No job\" dates from calendar\n  function isAvailable(d){\n    const today=new Date(); today.setHours(0,0,0,0);\n    if(d<today) return false;\n    if(isBlocked(d)) return false;  \/\/ admin-blocked dates (No job in calendar)\n    return true;\n  }\n  \/\/ Fixed 2-hour windows\n  function slotsFor(d){\n    return ['8:00 AM \u2013 10:00 AM','10:00 AM \u2013 12:00 PM','12:00 PM \u2013 2:00 PM','2:00 PM \u2013 4:00 PM','4:00 PM \u2013 6:00 PM'];\n  }\n\n  function showBlockedMessage(){\n    \/\/ Always remove old message and create fresh one\n    let old = document.getElementById('bgBlockedMsg');\n    if (old && old.parentNode) old.parentNode.removeChild(old);\n\n    const msg = document.createElement('div');\n    msg.id = 'bgBlockedMsg';\n    msg.setAttribute('style',\n      'margin:0 !important;'\n      + 'padding:0 !important;'\n      + 'border-radius:14px !important;'\n      + 'overflow:hidden !important;'\n      + 'box-shadow:0 8px 24px rgba(11,30,63,0.18) !important;'\n      + 'font-family:Nunito,sans-serif !important;'\n      + 'opacity:0 !important;'\n      + 'transform:translateY(-8px) !important;'\n      + 'transition:all 0.35s cubic-bezier(0.22,1,0.36,1) !important;'\n      + 'width:100% !important;'\n      + 'max-width:100% !important;'\n      + 'box-sizing:border-box !important;'\n      + 'display:block !important;'\n      + 'background:#FFFFFF !important;'\n      + 'border:2px solid #E3EAF3 !important;'\n      + 'text-align:center !important;'\n    );\n\n    msg.innerHTML = ''\n      \/\/ Top: navy band with icon + title\n      + '<div style=\"background:linear-gradient(135deg,#0B1E3F 0%,#16356b 100%) !important;padding:22px 16px 18px !important;text-align:center !important;box-sizing:border-box !important;\">'\n      +   '<div style=\"width:48px !important;height:48px !important;background:#7AC943 !important;border-radius:50% !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;box-shadow:0 4px 14px rgba(122,201,67,0.45) !important;margin-bottom:12px !important;\">'\n      +     '<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#0B1E3F\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg>'\n      +   '<\/div>'\n      +   '<div style=\"color:#FFFFFF !important;font-size:16px !important;font-weight:800 !important;letter-spacing:0.3px !important;line-height:1.25 !important;margin:0 !important;\">Fully Booked<\/div>'\n      +   '<div style=\"color:#A8C0E0 !important;font-size:12px !important;line-height:1.4 !important;margin:6px 0 0 !important;\">Fully booked or closed online<\/div>'\n      + '<\/div>'\n      \/\/ Bottom: white area with helpful text + call CTA\n      + '<div style=\"padding:18px 16px !important;box-sizing:border-box !important;text-align:center !important;\">'\n      +   '<div style=\"color:#4B5C7A !important;font-size:13px !important;line-height:1.5 !important;margin:0 0 14px !important;\">Call us to book this date \u2014 or pick another available day.<\/div>'\n      +   '<a href=\"tel:18444988364\" style=\"display:block !important;background:#7AC943 !important;color:#0B1E3F !important;font-weight:800 !important;font-size:15px !important;text-decoration:none !important;padding:12px 10px !important;border-radius:10px !important;box-shadow:0 4px 12px rgba(122,201,67,0.35) !important;letter-spacing:0.3px !important;text-align:center !important;\">'\n      +     '\ud83d\udcde 1-844-498-8364'\n      +   '<\/a>'\n      + '<\/div>';\n\n    const slotsWrap = document.getElementById('bgSlots');\n    if (slotsWrap) {\n      slotsWrap.innerHTML = '';\n      slotsWrap.appendChild(msg);\n    } else {\n      const calCard = calGrid.closest('.bg-book__cal') || calGrid.parentNode;\n      calCard.appendChild(msg);\n    }\n\n    requestAnimationFrame(()=>{\n      msg.style.setProperty('opacity', '1', 'important');\n      msg.style.setProperty('transform', 'translateY(0)', 'important');\n    });\n  }\n\n  function renderCalendar(){\n    calGrid.innerHTML='';\n    dows.forEach(d=>{const e=document.createElement('div');e.className='bg-book__cal-dow';e.textContent=d;calGrid.appendChild(e);});\n    const y=viewDate.getFullYear(), m=viewDate.getMonth();\n    calMonth.textContent=months[m]+' '+y;\n    const first=new Date(y,m,1).getDay(), days=new Date(y,m+1,0).getDate();\n    for(let i=0;i<first;i++){const e=document.createElement('div');e.className='bg-book__cal-day is-empty';calGrid.appendChild(e);}\n    for(let dn=1;dn<=days;dn++){\n      const dd=new Date(y,m,dn); const e=document.createElement('div');\n      e.className='bg-book__cal-day'; e.textContent=dn;\n      const blocked = isBlocked(dd);\n      if(!isAvailable(dd)){\n        e.classList.add('is-disabled');\n        if (blocked) {\n          e.title = 'Unavailable \u2014 please call to book this date';\n          e.style.cursor = 'not-allowed';\n          \/\/ Allow click to show polite message\n          e.addEventListener('click', (ev)=>{\n            ev.preventDefault();\n            showBlockedMessage();\n          });\n        }\n      }\n      else{\n        e.classList.add('is-available');\n        e.addEventListener('click',()=>{\n          calGrid.querySelectorAll('.bg-book__cal-day').forEach(x=>x.classList.remove('is-selected'));\n          e.classList.add('is-selected');\n          state.date=months[m]+' '+dn+', '+y; state.time='';\n          \/\/ Remove any leftover blocked message (it now lives in slots wrap which gets overwritten anyway)\n          const msg = document.getElementById('bgBlockedMsg');\n          if (msg && msg.parentNode) msg.parentNode.removeChild(msg);\n          renderSlots(dd);\n          document.getElementById('bgNext2').disabled=true;\n        });\n      }\n      calGrid.appendChild(e);\n    }\n  }\n  function renderSlots(d){\n    const slots=slotsFor(d); const wrap=document.getElementById('bgSlots');\n    if(!slots.length){wrap.innerHTML='<div class=\"bg-book__slot-empty\">No times available<\/div>';return;}\n    wrap.innerHTML='<div class=\"bg-book__slot-empty\">Checking availability...<\/div>';\n\n    \/\/ Ask backend which slots are already full for this date\n    const fd=new FormData();\n    fd.append('action','bg_get_slots');\n    fd.append('date',state.date);\n\n    fetch(BG_BOOKING.ajax_url,{method:'POST',body:fd})\n      .then(r=>r.json())\n      .then(res=>{\n        const full=(res.success && res.data && res.data.full)?res.data.full:[];\n        buildSlots(slots, full, wrap);\n      })\n      .catch(()=>{\n        \/\/ If check fails, show all slots anyway\n        buildSlots(slots, [], wrap);\n      });\n  }\n\n  function buildSlots(slots, full, wrap){\n    const crossSvg='<span class=\"bg-book__slot-cross\"><svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><line x1=\"5\" y1=\"5\" x2=\"19\" y2=\"19\" stroke-linecap=\"round\"\/><line x1=\"19\" y1=\"5\" x2=\"5\" y2=\"19\" stroke-linecap=\"round\"\/><\/svg><\/span>';\n    wrap.innerHTML=slots.map(s=>{\n      const isFull=full.indexOf(s)!==-1;\n      if(isFull){\n        return '<div class=\"bg-book__slot is-full\" data-time=\"'+s+'\">'+crossSvg+'<span class=\"bg-book__slot-time\">'+s+'<\/span><span class=\"bg-book__slot-tag\">Booked<\/span><\/div>';\n      }\n      return '<div class=\"bg-book__slot\" data-time=\"'+s+'\"><span class=\"bg-book__slot-time\">'+s+'<\/span><\/div>';\n    }).join('');\n    wrap.querySelectorAll('.bg-book__slot').forEach(sl=>{\n      if(sl.classList.contains('is-full')) return;\n      sl.addEventListener('click',()=>{\n        wrap.querySelectorAll('.bg-book__slot').forEach(x=>x.classList.remove('is-on'));\n        sl.classList.add('is-on'); state.time=sl.dataset.time;\n        document.getElementById('bgNext2').disabled=false;\n      });\n    });\n   var slotsTitle = document.querySelector('.bg-book__slots-title');\n    if (slotsTitle) {\n      slotsTitle.classList.add('is-active');\n      wrap.classList.add('bg-book__slots-wrap-highlight');\n      setTimeout(function(){\n        slotsTitle.classList.remove('is-active');\n        wrap.classList.remove('bg-book__slots-wrap-highlight');\n      }, 2600);\n\n      \/\/ Mobile only: auto-scroll to the slots section\n      if (window.innerWidth <= 820) {\n        setTimeout(function(){\n          slotsTitle.scrollIntoView({ behavior: 'smooth', block: 'start' });\n      }, 200);\n    }\n  }\n}\n  \n  document.getElementById('bgCalPrev').addEventListener('click',()=>{viewDate.setMonth(viewDate.getMonth()-1);renderCalendar();});\n  document.getElementById('bgCalNext').addEventListener('click',()=>{viewDate.setMonth(viewDate.getMonth()+1);renderCalendar();});\n  renderCalendar();\n  document.getElementById('bgNext2').addEventListener('click',()=>goToStep(3));\n\n  \/\/ ---- DETAILS ----\n  document.getElementById('bgNext3').addEventListener('click',()=>{\n    state.name=val('bgName'); state.phone=val('bgPhone'); state.email=val('bgEmail');\n    state.address=val('bgAddress'); state.city=val('bgCity'); state.postal=val('bgPostal'); state.notes=val('bgNotes');\n    const err=document.getElementById('bgError');\n    if(!state.name||!state.phone||!state.email||!state.address||!state.city||!state.postal){\n      err.textContent='Please complete all required fields.'; err.classList.add('is-shown'); goToStep(4); renderSummary(); return;\n    }\n    if(!\/^[^@]+@[^@]+\\.[^@]+$\/.test(state.email)){err.textContent='Please enter a valid email.'; err.classList.add('is-shown'); goToStep(4); renderSummary(); return;}\n    if(state.phone.replace(\/\\D\/g,'').length<10){err.textContent='Please enter a valid phone number.'; err.classList.add('is-shown'); goToStep(4); renderSummary(); return;}\n    err.classList.remove('is-shown'); renderSummary(); goToStep(4);\n  });\n  function val(id){return document.getElementById(id).value.trim();}\n\n  function renderSummary(){\n    let svc=[];\n    Object.values(state.services).forEach(s=>{\n      if(!s.on) return;\n      let line = s.name;\n      if (s.type === 'quantity') {\n        const unit = s.key === 'vents' ? 'vents' : (s.key === 'fans' ? (s.value>1?'fans':'fan') : s.key);\n        line += ' (' + s.value + ' ' + unit + ')';\n      } else if (s.type === 'floors' && s.floors.length) {\n        line += ' (' + s.floors.join(', ') + ')';\n      } else if (s.type === 'text' && s.text) {\n        line += ' (' + s.text + ')';\n      }\n      svc.push(line);\n    });\n  \n    const html=\n      row('Services', svc.join('<br>')||'\u2014')+\n      row('Date', state.date)+\n      row('Time', state.time)+\n      row('Name', state.name)+\n      row('Phone', state.phone)+\n      row('Email', state.email)+\n      row('Address', state.address+', '+state.city+', '+state.postal)+\n      (state.notes?row('Notes', state.notes):'');\n    document.getElementById('bgSummary').innerHTML=html;\n  }\n  function row(k,v){return '<div class=\"bg-book__summary-row\"><span class=\"bg-book__summary-key\">'+k+'<\/span><span class=\"bg-book__summary-val\">'+v+'<\/span><\/div>';}\n\n  \/\/ ---- CONFIRM (sends to WordPress backend) ----\n  document.getElementById('bgConfirm').addEventListener('click',function(){\n    const btn=this;\n    btn.disabled=true; btn.textContent='Submitting...';\n    const svcPayload={};\n    Object.values(state.services).forEach(s=>{\n      if(!s.on) return;\n      if (s.type === 'quantity') {\n        const obj = {};\n        obj[s.key] = s.value;\n        svcPayload[s.name] = obj;\n      } else if (s.type === 'floors') {\n        svcPayload[s.name] = { floors: s.floors };\n      } else if (s.type === 'text') {\n        const obj = {};\n        obj[s.key] = s.text;\n        svcPayload[s.name] = obj;\n      } else {\n        svcPayload[s.name] = true;\n      }\n    });\n    const fd=new FormData();\n    fd.append('action','bg_create_booking');\n    fd.append('name',state.name);\n    fd.append('phone',state.phone);\n    fd.append('email',state.email);\n    fd.append('address',state.address);\n    fd.append('city',state.city);\n    fd.append('postal',state.postal);\n    fd.append('date',state.date);\n    fd.append('time',state.time);\n    fd.append('notes',state.notes);\n    fd.append('services',JSON.stringify(svcPayload));\n    fetch(BG_BOOKING.ajax_url,{method:'POST',body:fd})\n      .then(r=>r.json())\n      .then(res=>{\n        if(res.success){\n          document.getElementById('bgRefNum').textContent=res.data.ref;\n          goToStep(5);\n          root.querySelector('.bg-book__progress').style.display='none';\n        }else{\n          const err=document.getElementById('bgError');\n          err.textContent=(res.data&&res.data.message)?res.data.message:'Something went wrong. Please try again.';\n          err.classList.add('is-shown');\n          btn.disabled=false; btn.textContent='Confirm Booking \u2192';\n        }\n      })\n      .catch(()=>{\n        const err=document.getElementById('bgError');\n        err.textContent='Network error. Please try again.';\n        err.classList.add('is-shown');\n        btn.disabled=false; btn.textContent='Confirm Booking \u2192';\n      });\n  });\n\n})();\n<\/script>\n    \r\n    <\/div>\r\n\r\n    <div class=\"miniq reveal\">\"The price was exactly what the website showed. No upsell pressure at all.\"<b>\u2014 David R., Aylmer \u2605\u2605\u2605\u2605\u2605<\/b><\/div>\r\n    <p class=\"altcall\">Prefer to talk? Call or text <a href=\"tel:18444988364\" onclick=\"convCall()\">1-844-498-8364<\/a> \u2014 we answer fast.<\/p>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- 9. NUMBERS -->\r\n<section style=\"padding-top:60px;padding-bottom:30px\">\r\n  <div class=\"wrap\">\r\n    <div class=\"stats\">\r\n      <div class=\"stat reveal\"><div class=\"n\" data-count=\"2500\">0<\/div><p>Homes serviced across the Outaouais<\/p><\/div>\r\n      <div class=\"stat reveal\"><div class=\"n\" data-count=\"4.9\" data-dec=\"1\">0<\/div><p>Average Google rating<\/p><\/div>\r\n      <div class=\"stat reveal\"><div class=\"n\" data-count=\"60\" data-suffix=\" sec\">0<\/div><p>To book online \u2014 live calendar<\/p><\/div>\r\n      <div class=\"stat reveal\"><div class=\"n\" data-count=\"0\" data-suffix=\"$\">0<\/div><p>Paid online. Confirm first, pay after the job<\/p><\/div>\r\n    <\/div>\r\n    <p class=\"reveal\" style=\"text-align:center;margin-top:26px;color:var(--mut);font-size:14.5px;font-weight:700\">Serving Vieux-Aylmer, the Marina district, Lucerne, Wychwood, Glenwood and all of the Aylmer sector.<\/p>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- 10. FAQ -->\r\n<section style=\"background:#fff;padding-top:60px\">\r\n  <div class=\"wrap\">\r\n    <p class=\"kick reveal\" style=\"text-align:center\">Good to know<\/p>\r\n    <h2 class=\"sec reveal\" style=\"text-align:center\">Common <span class=\"grad\">questions<\/span><\/h2>\r\n    <div class=\"faq reveal\">\r\n      <details open><summary>How much does Wall-mounted AC cleaning cost in Aylmer?<\/summary><p>Wall-mounted AC cleaning in Aylmer typically costs $200 to $700. BlueGuard's promotion is $179 for a complete cleaning of per indoor unit, performed by NADCA-certified technicians. Your exact quote appears in the online booking form before you confirm, so there are no hidden charges.<\/p><\/details>\r\n      <details><summary>How often should wall-mounted ACs be cleaned?<\/summary><p>Most Aylmer homes should have wall-mounted ACs cleaned every 2 to 3 years. Clean sooner if you have pets, allergy sufferers, recent renovations, or you've just moved in \u2014 previous owners' dust, dander and debris stay in the wall unit until they're professionally removed.<\/p><\/details>\r\n      <details><summary>Is Wall-mounted AC cleaning worth it?<\/summary><p>Yes. Professional wall-mounted AC cleaning removes built-up dust, allergens and debris from your ventilation system, which improves indoor air quality, reduces dust around the home, and helps your furnace and air conditioner run more efficiently \u2014 which can lower energy bills.<\/p><\/details>\r\n      <details><summary>How long does wall-mounted AC cleaning take?<\/summary><p>A complete Wall-mounted AC cleaning in a typical Aylmer home takes 1.5 to 3 hours, depending on the number of vents and the size of the system. BlueGuard technicians protect your floors, clean the coil, blower wheel and drain line, and show you photos of the results.<\/p><\/details>\r\n      <details><summary>Do I pay online when I book?<\/summary><p>No. Booking online is free and takes about a minute. BlueGuard confirms your appointment with a quick phone call, and you pay only after the job is completed to your satisfaction.<\/p><\/details>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- 11. FINAL CTA -->\r\n<section class=\"final\">\r\n  <div class=\"wrap\">\r\n    <h2>Your air shouldn't wait.<\/h2>\r\n    <p>$179 promo spots fill fast. Pick a time on our live calendar \u2014 about a minute, and you pay nothing online.<\/p>\r\n    <a class=\"btn btn-green\" href=\"#book\" onclick=\"convBook()\">Book My Wall-Mounted AC Cleaning \u2192<\/a>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function(){\r\n  var now=new Date();\r\n  var end=new Date(now.getFullYear(),now.getMonth()+1,0).getDate();\r\n  var left=(end-now.getDate());\r\n  document.querySelectorAll('.days-left').forEach(function(el){el.textContent=left;});\r\n})();\r\n(function(){\r\n  var ba=document.getElementById('ba'),after=document.getElementById('ba-after'),handle=document.getElementById('ba-handle'),drag=false;\r\n  function setX(x){\r\n    var r=ba.getBoundingClientRect();\r\n    var p=Math.max(4,Math.min(96,(x-r.left)\/r.width*100));\r\n    after.style.clipPath='inset(0 0 0 '+p+'%)';\r\n    handle.style.left=p+'%';\r\n  }\r\n  ba.addEventListener('pointerdown',function(e){drag=true;setX(e.clientX);ba.setPointerCapture(e.pointerId)});\r\n  ba.addEventListener('pointermove',function(e){if(drag)setX(e.clientX)});\r\n  ba.addEventListener('pointerup',function(){drag=false});\r\n})();\r\n(function(){\r\n  if(!('IntersectionObserver' in window)){document.querySelectorAll('.reveal').forEach(function(el){el.classList.add('in')});return}\r\n  var io=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting){e.target.classList.add('in');io.unobserve(e.target)}})},{threshold:.15});\r\n  document.querySelectorAll('.reveal').forEach(function(el){io.observe(el)});\r\n})();\r\n(function(){\r\n  var io=new IntersectionObserver(function(es){\r\n    es.forEach(function(e){\r\n      if(!e.isIntersecting)return;io.unobserve(e.target);\r\n      var el=e.target,target=parseFloat(el.dataset.count),dec=parseInt(el.dataset.dec||0),suf=el.dataset.suffix||'',pre=suf==='$'?'$':'',t0=null;\r\n      if(suf==='$'){suf=''}\r\n      function step(t){\r\n        if(!t0)t0=t;var p=Math.min(1,(t-t0)\/1200);p=1-Math.pow(1-p,3);\r\n        var v=(target*p).toFixed(dec);\r\n        el.textContent=pre+(dec?v:Math.round(target*p).toLocaleString())+(target>=1000&&p===1?'+':'')+suf;\r\n        if(p<1)requestAnimationFrame(step);\r\n      }\r\n      requestAnimationFrame(step);\r\n    });\r\n  },{threshold:.5});\r\n  document.querySelectorAll('[data-count]').forEach(function(el){io.observe(el)});\r\n})();\r\n\/\/ Smooth-scroll every \"Book\"\/CTA link to the booking widget (theme-proof)\r\n(function(){\r\n  function go(e){\r\n    var t=document.getElementById('bookwidget')||document.getElementById('book');\r\n    if(!t)return;\r\n    e.preventDefault();\r\n    var y=t.getBoundingClientRect().top+window.pageYOffset-80;\r\n    window.scrollTo({top:y,behavior:'smooth'});\r\n  }\r\n  document.querySelectorAll('a[href=\"#book\"]').forEach(function(a){a.addEventListener('click',go);});\r\n  \/\/ signs-checker links are injected later \u2014 delegate as a safety net\r\n  document.addEventListener('click',function(e){\r\n    var a=e.target.closest && e.target.closest('a[href=\"#book\"]');\r\n    if(a) go(e);\r\n  });\r\n})();\r\nfunction sg(el){\r\n  el.classList.toggle('on');\r\n  var n=document.querySelectorAll('.sign.on').length;\r\n  var r=document.getElementById('sign-result');\r\n  if(n===0){r.classList.remove('hot');r.innerHTML='Tap any signs above that sound like your home.';}\r\n  else if(n===1){r.classList.add('hot');r.innerHTML='1 sign \u2014 worth checking. A cleaning now keeps it from getting worse. <a href=\"#book\" style=\"color:var(--green-d)\" onclick=\"convBook()\">See open dates \u2193<\/a>';}\r\n  else{r.classList.add('hot');r.innerHTML='\u26a0\ufe0f '+n+' signs \u2014 your wall unit are overdue for a cleaning. <a href=\"#book\" style=\"color:var(--green-d)\" onclick=\"convBook()\">Grab a $179 promo slot below \u2193<\/a>';}\r\n}\r\n<\/script>\r\n\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Wall-mounted AC &#038; ductless mini-split cleaning in Aylmer from $179. Nettoyage de climatiseur mural, service bilingue. Free quote, no mess. Book today.<\/p>","protected":false},"author":1,"featured_media":0,"parent":31,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-22550","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/pages\/22550","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/comments?post=22550"}],"version-history":[{"count":5,"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/pages\/22550\/revisions"}],"predecessor-version":[{"id":23370,"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/pages\/22550\/revisions\/23370"}],"up":[{"embeddable":true,"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/pages\/31"}],"wp:attachment":[{"href":"https:\/\/blueguard.ca\/fr\/wp-json\/wp\/v2\/media?parent=22550"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}