{"id":232,"date":"2026-05-26T09:10:44","date_gmt":"2026-05-26T09:10:44","guid":{"rendered":"https:\/\/marketplace.dbaasltd.com\/?page_id=232"},"modified":"2026-05-26T15:14:02","modified_gmt":"2026-05-26T15:14:02","slug":"request-a-quote","status":"publish","type":"page","link":"https:\/\/brithaventech.co.uk\/index.php\/request-a-quote\/","title":{"rendered":"Request a Quote"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"232\" class=\"elementor elementor-232\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-25845ee elementor-section-full_width elementor-section-stretched elementor-section-height-default elementor-section-height-default\" data-id=\"25845ee\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5fc162f\" data-id=\"5fc162f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c74f308 elementor-widget elementor-widget-shortcode\" data-id=\"c74f308\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Request a Quote \u2014 BritHaven Tech<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Syne:wght@400;500;600;700;800&family=DM+Sans:ital,wght@0,300;0,400;0,500;0,600;1,400&display=swap\" rel=\"stylesheet\">\n<style>\n*{box-sizing:border-box;margin:0;padding:0}\n:root{\n  --ink:#0A0F1E;--navy:#0C1A4B;--navy2:#112266;--blue:#1547E8;--blue2:#0F39C8;\n  --blue-lt:#EBF0FF;--sky:#E8F0FE;--white:#FFFFFF;--g50:#F7F8FC;--g100:#EDEEF4;\n  --g200:#D8DAE8;--g400:#9BA3BF;--g600:#5C6480;--g700:#3A405A;\n  --green:#0B7A45;--green-lt:#E6F5EE;--red:#C0272D;--red-lt:#FEF0F0;\n  --amber:#B45309;--amber-lt:#FFF8ED;--purple:#5B21B6;--purple-lt:#F3F0FF;\n  --teal:#0F766E;--teal-lt:#EDFAF8;\n  --shadow-xs:0 1px 2px rgba(10,15,30,.06);--shadow-sm:0 2px 8px rgba(10,15,30,.08);\n  --shadow-md:0 6px 20px rgba(10,15,30,.1);--shadow-lg:0 16px 48px rgba(10,15,30,.14);\n  --r4:4px;--r6:6px;--r8:8px;--r10:10px;--r12:12px;--r16:16px;\n}\nbody{font-family:'DM Sans',sans-serif;background:var(--white);color:var(--ink);line-height:1.5;font-size:14px;min-height:100vh}\n.topbar{background:var(--navy);padding:7px 24px;display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:rgba(255,255,255,.65)}\n.tb-r{display:flex;gap:18px;align-items:center}\n.tb-badge{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:2px 10px;font-size:10.5px;font-weight:600;letter-spacing:.03em;color:rgba(255,255,255,.9)}\n.header{background:#fff;border-bottom:1px solid var(--g100);position:sticky;top:0;z-index:500;box-shadow:var(--shadow-xs)}\n.header-inner{max-width:1440px;margin:0 auto;padding:0 24px;height:64px;display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center}\n.logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}\n.logo-mark{width:36px;height:36px;background:var(--navy);border-radius:var(--r8);display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-weight:800;font-size:12px;color:#fff}\n.logo-text{font-family:'Syne',sans-serif;font-weight:700;font-size:17px;color:var(--navy);letter-spacing:-.03em}\n.logo-text em{color:var(--blue);font-style:normal}\n.search-wrap{display:flex;background:var(--g50);border:1.5px solid var(--g200);border-radius:var(--r8);overflow:hidden;transition:border-color .2s,box-shadow .2s}\n.search-wrap:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(21,71,232,.08);background:#fff}\n.search-input{flex:1;padding:10px 16px;border:none;background:transparent;font-family:'DM Sans',sans-serif;font-size:13px;color:var(--ink);outline:none}\n.search-input::placeholder{color:var(--g400)}\n.search-btn{padding:10px 20px;background:var(--blue);color:#fff;font-size:13px;font-weight:600;font-family:'DM Sans',sans-serif;border:none;cursor:pointer;transition:background .2s}\n.search-btn:hover{background:var(--blue2)}\n.header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}\n.h-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:var(--r8);font-size:12.5px;font-weight:500;color:var(--g700);cursor:pointer;transition:all .15s;border:none;background:none;font-family:'DM Sans',sans-serif;white-space:nowrap}\n.h-btn:hover{background:var(--g50);color:var(--ink)}\n.h-contact{padding:8px 16px;background:var(--navy);color:#fff;border-radius:var(--r8);font-size:12.5px;font-weight:600;cursor:pointer;transition:background .2s;border:none;font-family:'DM Sans',sans-serif;white-space:nowrap}\n.h-contact:hover{background:var(--navy2)}\n.nav{background:#fff;border-bottom:2px solid var(--navy);position:sticky;top:64px;z-index:400}\n.nav-inner{max-width:1440px;margin:0 auto;padding:0 24px;display:flex;align-items:center}\n.nav-lnk{padding:14px 16px;font-size:13px;font-weight:500;color:var(--g700);cursor:pointer;display:flex;align-items:center;gap:5px;border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .15s;white-space:nowrap;font-family:'DM Sans',sans-serif;text-decoration:none}\n.nav-lnk:hover,.nav-lnk.active{color:var(--blue);border-bottom-color:var(--blue)}\n.nav-deals{color:#B45309!important;font-weight:700!important}\n.page-hero{background:var(--navy);padding:0;overflow:hidden;position:relative}\n.page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 70% 50%,rgba(21,71,232,.35) 0%,transparent 70%);pointer-events:none}\n.ph-inner{max-width:1440px;margin:0 auto;padding:48px 24px;display:flex;flex-direction:column;position:relative;z-index:1}\n.ph-breadcrumb{display:flex;align-items:center;gap:6px;font-size:12px;color:rgba(255,255,255,.45);margin-bottom:16px}\n.ph-breadcrumb span{cursor:pointer;transition:color .15s}\n.ph-breadcrumb span:hover{color:rgba(255,255,255,.8)}\n.ph-breadcrumb .sep{color:rgba(255,255,255,.2);font-size:10px}\n.ph-breadcrumb .current{color:rgba(255,255,255,.7);font-weight:500}\n.ph-flag{display:inline-flex;align-items:center;gap:8px;padding:5px 14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:20px;font-size:11px;font-weight:600;color:rgba(255,255,255,.8);letter-spacing:.04em;text-transform:uppercase;margin-bottom:16px;width:fit-content}\n.ph-h1{font-family:'Syne',sans-serif;font-size:32px;font-weight:800;color:#fff;line-height:1.15;letter-spacing:-.03em;margin-bottom:12px}\n.ph-h1 em{color:#7CB9FF;font-style:normal}\n.ph-sub{font-size:14px;color:rgba(255,255,255,.65);line-height:1.75;max-width:560px}\n.ph-trust{display:flex;gap:24px;margin-top:22px;flex-wrap:wrap}\n.ph-trust-item{display:flex;align-items:center;gap:8px;font-size:12px;color:rgba(255,255,255,.65)}\n.ph-trust-dot{width:16px;height:16px;background:var(--green);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:8px;flex-shrink:0}\n.section{padding:56px 24px}\n.section-inner{max-width:1440px;margin:0 auto}\n.bg-alt{background:var(--g50)}\n.quote-layout{display:grid;grid-template-columns:1fr 340px;gap:32px;align-items:start}\n.form-card{background:#fff;border:1.5px solid var(--g100);border-radius:var(--r16);overflow:hidden;box-shadow:var(--shadow-sm)}\n.fc-head{padding:24px 28px;border-bottom:1px solid var(--g100);display:flex;align-items:center;gap:12px}\n.fc-head-icon{width:40px;height:40px;background:var(--blue-lt);border-radius:var(--r10);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}\n.fc-head-title{font-family:'Syne',sans-serif;font-size:17px;font-weight:700;color:var(--navy)}\n.fc-head-sub{font-size:12px;color:var(--g400);margin-top:2px}\n.fc-body{padding:28px}\n.form-section{margin-bottom:28px}\n.form-section:last-child{margin-bottom:0}\n.fs-title{font-family:'Syne',sans-serif;font-size:13px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.05em;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid var(--blue);display:flex;align-items:center;gap:7px}\n.fs-title .fs-num{width:20px;height:20px;background:var(--navy);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0}\n.form-row{margin-bottom:14px}\n.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}\n.form-label{display:block;font-size:12px;font-weight:600;color:var(--ink);margin-bottom:6px}\n.form-label .req{color:var(--red);margin-left:2px}\n.form-input,.form-select,.form-textarea{width:100%;padding:10px 14px;border:1.5px solid var(--g200);border-radius:var(--r8);font-size:13px;font-family:'DM Sans',sans-serif;color:var(--ink);outline:none;transition:border-color .2s,box-shadow .2s;background:#fff}\n.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(21,71,232,.07)}\n.form-input::placeholder,.form-textarea::placeholder{color:var(--g400)}\n.form-select{-webkit-appearance:none;appearance:none;background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239BA3BF' stroke-width='1.5' fill='none' stroke-linecap='round'\/%3E%3C\/svg%3E\");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;cursor:pointer}\n.form-textarea{min-height:100px;resize:vertical}\n.form-hint{font-size:11px;color:var(--g400);margin-top:5px}\n\/* Product picker *\/\n.prod-picker{border:1.5px solid var(--g200);border-radius:var(--r10);overflow:hidden}\n.pp-search{padding:10px 14px;border:none;border-bottom:1px solid var(--g100);width:100%;font-family:'DM Sans',sans-serif;font-size:13px;color:var(--ink);outline:none;background:var(--g50)}\n.pp-search::placeholder{color:var(--g400)}\n.pp-search:focus{background:#fff;border-bottom-color:var(--blue)}\n\/* Category tabs for product picker *\/\n.pp-cat-tabs{display:flex;gap:0;border-bottom:1px solid var(--g100);background:var(--g50);overflow-x:auto;flex-shrink:0}\n.pp-cat-tab{padding:7px 12px;font-size:11px;font-weight:600;color:var(--g600);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;transition:all .15s;font-family:'DM Sans',sans-serif;border:none;background:none}\n.pp-cat-tab:hover{color:var(--ink)}\n.pp-cat-tab.active{color:var(--blue);border-bottom-color:var(--blue);background:#fff}\n.pp-list{max-height:280px;overflow-y:auto;padding:10px}\n.pp-vendor-group{margin-bottom:10px}\n.pp-vendor-label{font-size:10px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.07em;margin-bottom:5px;padding-bottom:4px;border-bottom:1px solid var(--g100)}\n.pp-item{display:flex;align-items:center;gap:8px;padding:5px 4px;cursor:pointer;border-radius:var(--r4);transition:background .15s}\n.pp-item:hover{background:var(--g50)}\n.pp-item input[type=checkbox]{accent-color:var(--blue);width:14px;height:14px;flex-shrink:0;cursor:pointer}\n.pp-item-name{font-size:12px;color:var(--g700);line-height:1.35;flex:1}\n.pp-item-badge{font-size:9px;font-weight:700;padding:2px 6px;border-radius:3px;flex-shrink:0}\n.selected-chips{display:flex;flex-wrap:wrap;gap:6px;min-height:36px;margin-top:10px}\n.chip{display:flex;align-items:center;gap:5px;padding:4px 10px;background:var(--blue-lt);border:1px solid rgba(21,71,232,.2);border-radius:20px;font-size:11.5px;font-weight:500;color:var(--blue)}\n.chip-remove{cursor:pointer;font-size:13px;line-height:1;opacity:.6;transition:opacity .15s}\n.chip-remove:hover{opacity:1}\n.chips-empty{font-size:12px;color:var(--g400);padding:6px 0}\n\/* Sidebar *\/\n.sidebar{display:flex;flex-direction:column;gap:16px}\n.side-card{background:#fff;border:1.5px solid var(--g100);border-radius:var(--r12);overflow:hidden;box-shadow:var(--shadow-xs)}\n.sc-head{padding:16px 20px;border-bottom:1px solid var(--g100);display:flex;align-items:center;gap:8px}\n.sc-icon{font-size:16px}\n.sc-title{font-family:'Syne',sans-serif;font-size:13.5px;font-weight:700;color:var(--navy)}\n.sc-body{padding:18px 20px}\n.process-steps{display:flex;flex-direction:column;gap:0}\n.ps-step{display:flex;gap:12px;padding:10px 0;position:relative}\n.ps-step:not(:last-child)::after{content:'';position:absolute;left:15px;top:36px;bottom:0;width:1px;background:var(--g100)}\n.ps-num{width:30px;height:30px;border-radius:50%;background:var(--blue-lt);border:2px solid var(--blue);color:var(--blue);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1}\n.ps-content{padding-top:4px;flex:1}\n.ps-label{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:3px}\n.ps-desc{font-size:11.5px;color:var(--g600);line-height:1.55}\n.contact-card{background:linear-gradient(135deg,var(--navy) 0%,#1A2C6B 100%);border-radius:var(--r12);padding:20px;position:relative;overflow:hidden}\n.contact-card::before{content:'';position:absolute;top:-40px;right:-40px;width:120px;height:120px;background:radial-gradient(circle,rgba(21,71,232,.4) 0%,transparent 70%);pointer-events:none}\n.cc-tag{font-size:10px;font-weight:700;color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}\n.cc-title{font-family:'Syne',sans-serif;font-size:15px;font-weight:700;color:#fff;margin-bottom:6px;position:relative;z-index:1}\n.cc-sub{font-size:12px;color:rgba(255,255,255,.6);line-height:1.6;margin-bottom:14px}\n.cc-options{display:flex;flex-direction:column;gap:8px}\n.cc-opt{display:flex;align-items:center;gap:10px;padding:10px 12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:var(--r8);cursor:pointer;transition:all .2s;text-decoration:none}\n.cc-opt:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.2)}\n.cc-opt-icon{font-size:16px;flex-shrink:0}\n.cc-opt-label{font-size:12px;font-weight:600;color:#fff}\n.cc-opt-sub{font-size:10.5px;color:rgba(255,255,255,.5)}\n.stats-bar{background:var(--navy);border-radius:var(--r10);padding:16px 20px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;text-align:center}\n.stat-item .s-num{font-family:'Syne',sans-serif;font-size:22px;font-weight:800;color:#7CB9FF;letter-spacing:-.04em}\n.stat-item .s-lbl{font-size:10px;color:rgba(255,255,255,.45);margin-top:2px}\n.form-footer{padding:20px 28px;background:var(--g50);border-top:1px solid var(--g100);display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}\n.ff-note{font-size:12px;color:var(--g600);display:flex;align-items:center;gap:6px}\n.ff-note span{font-size:14px}\n.ff-actions{display:flex;gap:10px}\n.btn-cancel{padding:11px 22px;background:#fff;color:var(--ink);border:1.5px solid var(--g200);border-radius:var(--r8);font-size:13px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .2s}\n.btn-cancel:hover{border-color:var(--g400)}\n.btn-submit{padding:11px 28px;background:var(--blue);color:#fff;border-radius:var(--r8);font-size:13.5px;font-weight:600;cursor:pointer;border:none;font-family:'DM Sans',sans-serif;transition:all .2s;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}\n.btn-submit:hover{background:var(--blue2);transform:translateY(-1px);box-shadow:0 6px 20px rgba(21,71,232,.35)}\n.success-state{display:none;text-align:center;padding:60px 40px}\n.ss-icon{font-size:56px;margin-bottom:20px}\n.ss-title{font-family:'Syne',sans-serif;font-size:24px;font-weight:800;color:var(--navy);margin-bottom:10px}\n.ss-sub{font-size:14px;color:var(--g600);line-height:1.7;margin-bottom:28px;max-width:420px;margin-left:auto;margin-right:auto}\n.ss-ref{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;background:var(--green-lt);border:1px solid rgba(11,122,69,.2);border-radius:var(--r8);font-size:12.5px;font-weight:600;color:var(--green);margin-bottom:24px}\n.ss-btn{padding:12px 24px;background:var(--blue);color:#fff;border-radius:var(--r8);font-size:13px;font-weight:600;cursor:pointer;border:none;font-family:'DM Sans',sans-serif;transition:all .2s}\n.ss-btn:hover{background:var(--blue2)}\n.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}\n.faq-item{background:#fff;border:1.5px solid var(--g100);border-radius:var(--r10);padding:18px 20px;cursor:pointer;transition:all .2s}\n.faq-item:hover{border-color:var(--blue);box-shadow:var(--shadow-sm)}\n.faq-q{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:6px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}\n.faq-q .fq-arrow{color:var(--blue);font-size:16px;flex-shrink:0;transition:transform .2s}\n.faq-item.open .fq-arrow{transform:rotate(180deg)}\n.faq-a{font-size:12px;color:var(--g600);line-height:1.7;max-height:0;overflow:hidden;transition:max-height .3s ease}\n.faq-item.open .faq-a{max-height:200px}\n.footer{background:var(--ink);padding:48px 24px 24px}\n.footer-inner{max-width:1440px;margin:0 auto}\n.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:36px;margin-bottom:40px}\n.fg-brand{font-size:12px;color:rgba(255,255,255,.45);line-height:1.75;margin-bottom:14px}\n.fc-ttl{font-family:'Syne',sans-serif;font-size:11px;font-weight:700;color:#fff;margin-bottom:14px;text-transform:uppercase;letter-spacing:.07em}\n.fc-lnk{display:block;font-size:11.5px;color:rgba(255,255,255,.45);margin-bottom:8px;cursor:pointer;transition:color .15s}\n.fc-lnk:hover{color:rgba(255,255,255,.85)}\n.footer-bottom{border-top:1px solid rgba(255,255,255,.07);padding-top:20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}\n.fb-left{font-size:11px;color:rgba(255,255,255,.3)}\n.fb-certs{display:flex;gap:6px;flex-wrap:wrap}\n.fb-cert{padding:3px 9px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:4px;font-size:9px;font-weight:700;color:rgba(255,255,255,.4);letter-spacing:.04em}\n.toast{position:fixed;bottom:24px;right:24px;background:var(--ink);color:#fff;padding:12px 20px;border-radius:var(--r10);font-size:13px;font-weight:500;z-index:2000;transform:translateY(80px);opacity:0;transition:all .3s;pointer-events:none;box-shadow:var(--shadow-md)}\n.toast.show{transform:translateY(0);opacity:1}\n.toast.success{background:var(--green)}\n.sec-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:30px;flex-wrap:wrap;gap:12px}\n.sec-tag{font-size:10.5px;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:.09em;margin-bottom:5px}\n.sec-title{font-family:'Syne',sans-serif;font-size:22px;font-weight:700;color:var(--navy);letter-spacing:-.02em}\n.sec-sub{font-size:13px;color:var(--g600);margin-top:4px;line-height:1.5}\nhr.div{border:none;border-top:1px solid var(--g100)}\n\/* Pre-selected product banner *\/\n.presel-banner{display:none;align-items:center;gap:10px;padding:10px 14px;background:var(--blue-lt);border:1.5px solid rgba(21,71,232,.2);border-radius:var(--r8);margin-bottom:14px;font-size:12.5px;color:var(--blue);font-weight:500}\n.presel-banner.show{display:flex}\n.presel-banner .pb-icon{font-size:16px}\n\n\/* Two-step quote form *\/\n.form-step{display:none}\n.form-step.active{display:block}\n.step-progress{display:flex;gap:10px;padding:18px 28px;border-bottom:1px solid var(--g100);background:var(--g50)}\n.step-pill{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--g600);padding:7px 12px;border:1.5px solid var(--g200);border-radius:999px;background:#fff}\n.step-pill.active{background:var(--blue-lt);border-color:rgba(21,71,232,.25);color:var(--blue)}\n.step-pill.done{background:var(--green-lt);border-color:rgba(11,122,69,.25);color:var(--green)}\n.step-dot{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:currentColor;color:#fff;font-size:10px}\n.step-pill .step-dot span{color:#fff}\n.btn-next{padding:11px 28px;background:var(--blue);color:#fff;border-radius:var(--r8);font-size:13.5px;font-weight:600;cursor:pointer;border:none;font-family:'DM Sans',sans-serif;transition:all .2s;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}\n.btn-next:hover{background:var(--blue2);transform:translateY(-1px);box-shadow:0 6px 20px rgba(21,71,232,.35)}\n.btn-back{padding:11px 22px;background:#fff;color:var(--ink);border:1.5px solid var(--g200);border-radius:var(--r8);font-size:13px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .2s}\n.btn-back:hover{border-color:var(--g400)}\n\n<\/style>\n<\/head>\n<body>\n\n\n<div class=\"page-hero\">\n  <div class=\"ph-inner\">\n    <div class=\"ph-breadcrumb\">\n      <span onclick=\"window.location='brithaven_catalogue.html'\">Home<\/span><span class=\"sep\">\u203a<\/span>\n      <span class=\"current\">Request a Quote<\/span>\n    <\/div>\n    <div class=\"ph-flag\">\ud83d\udccb Free, No-Obligation Quote<\/div>\n    <h1 class=\"ph-h1\">Get a <em>Tailored Quote<\/em> for Your Business<\/h1>\n    <p class=\"ph-sub\">Select your products, tell us about your organisation, and our UK team will respond with competitive pricing \u2014 usually within 4 business hours.<\/p>\n    <div class=\"ph-trust\">\n      <div class=\"ph-trust-item\"><span class=\"ph-trust-dot\">\u2713<\/span> Response within 4 business hours<\/div>\n      <div class=\"ph-trust-item\"><span class=\"ph-trust-dot\">\u2713<\/span> No commitment required<\/div>\n      <div class=\"ph-trust-item\"><span class=\"ph-trust-dot\">\u2713<\/span> Volume &amp; renewal discounts available<\/div>\n      <div class=\"ph-trust-item\"><span class=\"ph-trust-dot\">\u2713<\/span> Dedicated UK account manager<\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<section class=\"section\">\n  <div class=\"section-inner\">\n    <div class=\"quote-layout\">\n\n      <div>\n        <div class=\"form-card\">\n          <div class=\"fc-head\">\n            <div class=\"fc-head-icon\">\ud83d\udccb<\/div>\n            <div>\n              <div class=\"fc-head-title\">Quote Request Form<\/div>\n              <div class=\"fc-head-sub\" id=\"formSubtitle\">Step 1 of 2 \u2014 Enter your contact details<\/div>\n            <\/div>\n          <\/div>\n\n          <div class=\"step-progress\" id=\"stepProgress\">\n            <div class=\"step-pill active\" id=\"stepPill1\"><span class=\"step-dot\"><span>1<\/span><\/span> Your Contact Details<\/div>\n            <div class=\"step-pill\" id=\"stepPill2\"><span class=\"step-dot\"><span>2<\/span><\/span> Products You're Interested In<\/div>\n          <\/div>\n\n          <div class=\"fc-body\" id=\"quoteForm\">\n\n            <!-- SECTION 1: Contact -->\n            <div class=\"form-step active\" id=\"stepContact\">\n            <div class=\"form-section\">\n              <div class=\"fs-title\"><span class=\"fs-num\">1<\/span> Your Contact Details<\/div>\n              <div class=\"form-row-2\">\n                <div>\n                  <label class=\"form-label\">First Name <span class=\"req\">*<\/span><\/label>\n                  <input class=\"form-input\" type=\"text\" placeholder=\"e.g. James\" id=\"firstName\">\n                <\/div>\n                <div>\n                  <label class=\"form-label\">Last Name <span class=\"req\">*<\/span><\/label>\n                  <input class=\"form-input\" type=\"text\" placeholder=\"e.g. Wilson\" id=\"lastName\">\n                <\/div>\n              <\/div>\n              <div class=\"form-row-2\">\n                <div>\n                  <label class=\"form-label\">Business Email <span class=\"req\">*<\/span><\/label>\n                  <input class=\"form-input\" type=\"email\" placeholder=\"you@company.co.uk\" id=\"email\">\n                <\/div>\n                <div>\n                  <label class=\"form-label\">Phone Number<\/label>\n                  <input class=\"form-input\" type=\"tel\" placeholder=\"+44 7700 000000\" id=\"phone\">\n                <\/div>\n              <\/div>\n              <div class=\"form-row-2\">\n                <div>\n                  <label class=\"form-label\">Company Name <span class=\"req\">*<\/span><\/label>\n                  <input class=\"form-input\" type=\"text\" placeholder=\"Acme Ltd\" id=\"company\">\n                <\/div>\n                <div>\n                  <label class=\"form-label\">Job Title<\/label>\n                  <input class=\"form-input\" type=\"text\" placeholder=\"IT Manager\" id=\"jobTitle\">\n                <\/div>\n              <\/div>\n              <div class=\"form-row-2\">\n                <div>\n                  <label class=\"form-label\">Company Size <span class=\"req\">*<\/span><\/label>\n                  <select class=\"form-select\" id=\"companySize\">\n                    <option value=\"\" disabled selected>Select size\u2026<\/option>\n                    <option>1\u201310 employees<\/option>\n                    <option>11\u201350 employees<\/option>\n                    <option>51\u2013100 employees<\/option>\n                    <option>101\u2013250 employees<\/option>\n                    <option>251\u2013500 employees<\/option>\n                    <option>500+ employees<\/option>\n                  <\/select>\n                <\/div>\n                <div>\n                  <label class=\"form-label\">Industry<\/label>\n                  <select class=\"form-select\" id=\"industry\">\n                    <option value=\"\" disabled selected>Select industry\u2026<\/option>\n                    <option>Financial Services<\/option>\n                    <option>Healthcare &amp; Life Sciences<\/option>\n                    <option>Legal<\/option>\n                    <option>Education<\/option>\n                    <option>Manufacturing<\/option>\n                    <option>Retail &amp; e-Commerce<\/option>\n                    <option>Technology &amp; MSP<\/option>\n                    <option>Professional Services<\/option>\n                    <option>Public Sector<\/option>\n                    <option>Other<\/option>\n                  <\/select>\n                <\/div>\n              <\/div>\n            <\/div>\n\n            <\/div>\n\n            <!-- SECTION 2: Products -->\n            <div class=\"form-step\" id=\"stepProducts\">\n            <div class=\"form-section\">\n              <div class=\"fs-title\"><span class=\"fs-num\">2<\/span> Products You're Interested In<\/div>\n              <!-- Pre-selection banner (shown when arriving from catalogue) -->\n              <div class=\"presel-banner\" id=\"preselBanner\">\n                <span class=\"pb-icon\">\u2705<\/span>\n                <span id=\"preselText\">Product pre-selected from catalogue. You can add more below.<\/span>\n              <\/div>\n              <div class=\"form-row\">\n                <label class=\"form-label\">Select Products <span class=\"req\">*<\/span><\/label>\n                <div class=\"form-hint\" style=\"margin-bottom:8px\">Search or browse by category \u2014 tick all that apply. <strong id=\"totalCount\"><\/strong><\/div>\n                <div class=\"prod-picker\">\n                  <input class=\"pp-search\" type=\"text\" placeholder=\"\ud83d\udd0d Search 216 products by name or vendor\u2026\" id=\"productSearch\" oninput=\"filterProducts(this.value)\">\n                  <div class=\"pp-cat-tabs\" id=\"catTabs\"><\/div>\n                  <div class=\"pp-list\" id=\"productList\"><\/div>\n                <\/div>\n                <div style=\"margin-top:10px\">\n                  <div style=\"font-size:11px;font-weight:600;color:var(--g600);margin-bottom:6px\" id=\"selectedLabel\">Selected products:<\/div>\n                  <div class=\"selected-chips\" id=\"selectedChips\">\n                    <span class=\"chips-empty\">No products selected yet<\/span>\n                  <\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n            <\/div>\n\n          <\/div>\n\n          <div class=\"success-state\" id=\"successState\">\n            <div class=\"ss-icon\">\ud83c\udf89<\/div>\n            <div class=\"ss-title\">Quote Request Submitted!<\/div>\n            <p class=\"ss-sub\">Thank you \u2014 our UK team has received your request and will be in touch with competitive pricing within <strong>4 business hours<\/strong>. Check your inbox (and spam folder) for a confirmation email.<\/p>\n            <div class=\"ss-ref\">\u2713 Reference: BHT-<span id=\"refNum\"><\/span><\/div><br>\n            <button class=\"ss-btn\" onclick=\"resetForm()\">Submit Another Request<\/button>\n          <\/div>\n\n          <div class=\"form-footer\" id=\"formFooter\">\n            <div class=\"ff-note\"><span>\ud83d\udd12<\/span> Your information is secure and will never be shared with third parties.<\/div>\n            <div class=\"ff-actions\" id=\"stepOneActions\">\n              <button class=\"btn-cancel\" onclick=\"clearForm()\">Clear Form<\/button>\n              <button class=\"btn-next\" onclick=\"goToProducts()\">Next &nbsp;\u2192<\/button>\n            <\/div>\n            <div class=\"ff-actions\" id=\"stepTwoActions\" style=\"display:none\">\n              <button class=\"btn-back\" onclick=\"goToContact()\">\u2190 Back<\/button>\n              <button class=\"btn-submit\" onclick=\"submitQuote()\">\ud83d\udccb Submit Quote Request &nbsp;\u2192<\/button>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"sidebar\">\n        <div class=\"stats-bar\">\n          <div class=\"stat-item\"><div class=\"s-num\">4hr<\/div><div class=\"s-lbl\">Avg. response time<\/div><\/div>\n          <div class=\"stat-item\"><div class=\"s-num\">100+<\/div><div class=\"s-lbl\">Products available<\/div><\/div>\n          <div class=\"stat-item\"><div class=\"s-num\">15+<\/div><div class=\"s-lbl\">Vendor partners<\/div><\/div>\n        <\/div>\n\n        <div class=\"side-card\">\n          <div class=\"sc-head\"><span class=\"sc-icon\">\u26a1<\/span><span class=\"sc-title\">How It Works<\/span><\/div>\n          <div class=\"sc-body\">\n            <div class=\"process-steps\">\n              <div class=\"ps-step\">\n                <div class=\"ps-num\">1<\/div>\n                <div class=\"ps-content\"><div class=\"ps-label\">Submit Your Request<\/div><div class=\"ps-desc\">Fill in the form with your product requirements and team size.<\/div><\/div>\n              <\/div>\n              <div class=\"ps-step\">\n                <div class=\"ps-num\">2<\/div>\n                <div class=\"ps-content\"><div class=\"ps-label\">We Prepare Your Quote<\/div><div class=\"ps-desc\">Your dedicated UK account manager reviews and builds a tailored quote, often including volume discounts.<\/div><\/div>\n              <\/div>\n              <div class=\"ps-step\">\n                <div class=\"ps-num\">3<\/div>\n                <div class=\"ps-content\"><div class=\"ps-label\">Receive Pricing<\/div><div class=\"ps-desc\">We respond within 4 business hours with itemised pricing \u2014 no hidden fees.<\/div><\/div>\n              <\/div>\n              <div class=\"ps-step\">\n                <div class=\"ps-num\">4<\/div>\n                <div class=\"ps-content\"><div class=\"ps-label\">Purchase &amp; Onboard<\/div><div class=\"ps-desc\">Accept the quote, pay by invoice or card, and we handle provisioning and onboarding.<\/div><\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"contact-card\">\n          <div class=\"cc-tag\">Need Help?<\/div>\n          <div class=\"cc-title\">Prefer to speak to someone?<\/div>\n          <div class=\"cc-sub\">Our team is available Monday\u2013Friday, 8:30\u201317:30 GMT.<\/div>\n          <div class=\"cc-options\">\n            <a class=\"cc-opt\" href=\"tel:08001114567\">\n              <span class=\"cc-opt-icon\">\ud83d\udcde<\/span>\n              <div><div class=\"cc-opt-label\">0800 111 4567<\/div><div class=\"cc-opt-sub\">Free to call from UK mobiles &amp; landlines<\/div><\/div>\n            <\/a>\n            <a class=\"cc-opt\" href=\"mailto:sales@brithaventech.co.uk\">\n              <span class=\"cc-opt-icon\">\u2709\ufe0f<\/span>\n              <div><div class=\"cc-opt-label\">sales@brithaventech.co.uk<\/div><div class=\"cc-opt-sub\">Email our sales team directly<\/div><\/div>\n            <\/a>\n            <a class=\"cc-opt\" href=\"mailto:sales@brithaventech.co.uk\">\n              <span class=\"cc-opt-icon\">\u2709\ufe0f<\/span>\n              <div><div class=\"cc-opt-label\">Live Chat<\/div><div class=\"cc-opt-sub\">Instant answers during business hours<\/div><\/div>\n            <\/a>\n           \n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<hr class=\"div\">\n\n<section class=\"section bg-alt\">\n  <div class=\"section-inner\">\n    <div class=\"sec-head\">\n      <div>\n        <div class=\"sec-tag\">FAQ<\/div>\n        <div class=\"sec-title\">Frequently Asked Questions<\/div>\n        <div class=\"sec-sub\">Common questions about our quoting process<\/div>\n      <\/div>\n    <\/div>\n    <div class=\"faq-grid\">\n      <div class=\"faq-item\" onclick=\"toggleFaq(this)\">\n        <div class=\"faq-q\">How long does it take to receive a quote? <span class=\"fq-arrow\">\u2304<\/span><\/div>\n        <div class=\"faq-a\">We aim to respond within 4 business hours for standard requests. For complex multi-product environments or large deployments, it may take up to 1 business day. You'll always receive an acknowledgement email immediately after submitting.<\/div>\n      <\/div>\n      <div class=\"faq-item\" onclick=\"toggleFaq(this)\">\n        <div class=\"faq-q\">Is there any commitment to buy once I request a quote? <span class=\"fq-arrow\">\u2304<\/span><\/div>\n        <div class=\"faq-a\">Absolutely not. A quote request is completely free and non-binding. Take as long as you need to review the pricing, and only proceed when you're ready. We're happy to answer questions or revise the quote at any point.\n<\/div>\n      <\/div>\n      <div class=\"faq-item\" onclick=\"toggleFaq(this)\">\n        <div class=\"faq-q\">Can I get volume discounts? <span class=\"fq-arrow\">\u2304<\/span><\/div>\n        <div class=\"faq-a\">Yes \u2014 volume discounts are available across most of our product range, including Microsoft 365, cybersecurity solutions, and backup products. Our team will automatically apply the best available pricing based on your seat count and contract length.\n<\/div>\n      <\/div>\n      <div class=\"faq-item\" onclick=\"toggleFaq(this)\">\n        <div class=\"faq-q\">Do you offer multi-year pricing? <span class=\"fq-arrow\">\u2304<\/span><\/div>\n        <div class=\"faq-a\">Yes, many of our vendor partners offer significant savings for 2- and 3-year commitments. We'll include multi-year options in your quote so you can compare and choose the structure that best fits your budget.\n<\/div>\n      <\/div>\n      <div class=\"faq-item\" onclick=\"toggleFaq(this)\">\n        <div class=\"faq-q\">What payment methods do you accept? <span class=\"fq-arrow\">\u2304<\/span><\/div>\n        <div class=\"faq-a\">We accept credit\/debit card, BACS bank transfer, and invoice (30-day payment terms for approved accounts). Credit terms are available to established UK businesses \u2014 ask your account manager for details.<\/div>\n      <\/div>\n      <div class=\"faq-item\" onclick=\"toggleFaq(this)\">\n        <div class=\"faq-q\">Can you help us migrate from our existing vendor? <span class=\"fq-arrow\">\u2304<\/span><\/div>\n        <div class=\"faq-a\">Yes \u2014 our professional services team can assist with migrations from competing platforms. We've helped hundreds of UK organisations switch to Microsoft 365, move to cloud backup, and deploy new cybersecurity stacks with minimal disruption.\n<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n\n\n<div class=\"toast\" id=\"toast\"><\/div>\n\n<script>\nconst PRODUCTS = [\n  {vendor:'TalentLMS',name:'TalentLMS',sub:'LMS',cat:'Human Resources',badge:'hr'},\n  {vendor:'Zensai',name:'Zensai Human Success Platform',sub:'LMS',cat:'Human Resources',badge:'hr'},\n  {vendor:'ConnectWise',name:'ConnectWise CPQ (Sell)',sub:'Agreements',cat:'IT Operations',badge:'itops'},\n  {vendor:'Hudu',name:'Hudu Documentation',sub:'Documentation',cat:'IT Operations',badge:'itops'},\n  {vendor:'IT Glue',name:'IT Glue Documentation Platform',sub:'Documentation',cat:'IT Operations',badge:'itops'},\n  {vendor:'IT Glue',name:'IT Glue + MyGlue',sub:'Documentation',cat:'IT Operations',badge:'itops'},\n  {vendor:'Kaseya',name:'Kaseya IT Glue',sub:'Documentation',cat:'IT Operations',badge:'itops'},\n  {vendor:'NinjaRMM',name:'NinjaOne Documentation',sub:'Documentation',cat:'IT Operations',badge:'itops'},\n  {vendor:'Scribe',name:'Scribe Process Documentation',sub:'Documentation',cat:'IT Operations',badge:'itops'},\n  {vendor:'ConnectWise',name:'ConnectWise Manage (PSA)',sub:'Help Desk',cat:'IT Operations',badge:'itops'},\n  {vendor:'Datto',name:'Datto Autotask PSA',sub:'Help Desk',cat:'IT Operations',badge:'itops'},\n  {vendor:'Kaseya',name:'Kaseya BMS (PSA)',sub:'Help Desk',cat:'IT Operations',badge:'itops'},\n  {vendor:'Pulseway',name:'Pulseway PSA',sub:'Help Desk',cat:'IT Operations',badge:'itops'},\n  {vendor:'SuperOps',name:'SuperOps PSA',sub:'Help Desk',cat:'IT Operations',badge:'itops'},\n  {vendor:'NinjaRMM',name:'NinjaOne MDM',sub:'MDM',cat:'IT Operations',badge:'itops'},\n  {vendor:'Atera',name:'Atera All-in-One MSP Platform',sub:'RMM',cat:'IT Operations',badge:'itops'},\n  {vendor:'ConnectWise',name:'ConnectWise Automate (RMM)',sub:'RMM',cat:'IT Operations',badge:'itops'},\n  {vendor:'Datto',name:'Datto RMM',sub:'RMM',cat:'IT Operations',badge:'itops'},\n  {vendor:'Kaseya',name:'Kaseya VSA (RMM)',sub:'RMM',cat:'IT Operations',badge:'itops'},\n  {vendor:'N-able',name:'N-able N-sight RMM',sub:'RMM',cat:'IT Operations',badge:'itops'},\n  {vendor:'NinjaRMM',name:'NinjaOne RMM',sub:'RMM',cat:'IT Operations',badge:'itops'},\n  {vendor:'Pulseway',name:'Pulseway RMM',sub:'RMM',cat:'IT Operations',badge:'itops'},\n  {vendor:'SuperOps',name:'SuperOps RMM',sub:'RMM',cat:'IT Operations',badge:'itops'},\n  {vendor:'Syncro',name:'Syncro RMM + PSA',sub:'RMM',cat:'IT Operations',badge:'itops'},\n  {vendor:'Augmentt',name:'Augmentt Engage',sub:'SaaS Management',cat:'IT Operations',badge:'itops'},\n  {vendor:'Gradient MSP',name:'Gradient Synthesize',sub:'SaaS Management',cat:'IT Operations',badge:'itops'},\n  {vendor:'Rewst',name:'Rewst Automation Platform',sub:'Workflow Automation',cat:'IT Operations',badge:'itops'},\n  {vendor:'Adobe',name:'Adobe Acrobat Standard \/ Pro',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Adobe',name:'Adobe Creative Cloud All Apps',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Adobe',name:'Adobe Creative Cloud Single App',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Adobe',name:'Adobe Express',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Adobe',name:'Adobe Captivate',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Adobe',name:'Adobe Substance 3D',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Gaviti',name:'Gaviti AR Automation',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Microsoft',name:'Microsoft 365 Business Basic \/ Standard \/ Premium',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Microsoft',name:'Microsoft 365 Apps for Business \/ Enterprise',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Microsoft',name:'Microsoft 365 E3 \/ E5',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Microsoft',name:'Microsoft 365 Copilot',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Microsoft',name:'Microsoft 365 F1 \/ F3 (Frontline)',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Microsoft',name:'Microsoft Teams Essentials',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Microsoft',name:'Microsoft Teams Rooms Pro \/ Basic',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Microsoft',name:'Microsoft Teams Phone',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Microsoft',name:'Microsoft Visio Plan 1 \/ Plan 2',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Microsoft',name:'Microsoft Project Plan 1 \/ 3 \/ 5',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Microsoft',name:'Power BI Pro \/ Premium',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Microsoft',name:'Power Apps Premium',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Microsoft',name:'Power Automate Premium',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Microsoft',name:'Dynamics 365 Customer Service',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Microsoft',name:'Dynamics 365 Business Central',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Microsoft',name:'Dynamics 365 Sales',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Microsoft',name:'Windows 365 Cloud PC',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Nitro',name:'Nitro Productivity Suite',sub:'Business Applications',cat:'Productivity',badge:'sw'},\n  {vendor:'Adobe',name:'Adobe Sign (Acrobat Sign)',sub:'eSignature',cat:'Productivity',badge:'sw'},\n  {vendor:'DocuSign',name:'DocuSign eSignature Business Pro \/ Enterprise',sub:'eSignature',cat:'Productivity',badge:'sw'},\n  {vendor:'DocuSign',name:'DocuSign CLM',sub:'eSignature',cat:'Productivity',badge:'sw'},\n  {vendor:'Nitro',name:'Nitro Sign',sub:'eSignature',cat:'Productivity',badge:'sw'},\n  {vendor:'Barracuda',name:'Barracuda WAF-as-a-Service',sub:'Application Security',cat:'Security',badge:'sec'},\n  {vendor:'Egnyte',name:'Egnyte Content Intelligence',sub:'DLP',cat:'Security',badge:'sec'},\n  {vendor:'Webroot',name:'Webroot DNS Protection',sub:'DNS \/ Web Security',cat:'Security',badge:'sec'},\n  {vendor:'Guardz',name:'Guardz Dark Web Monitoring',sub:'Dark Web Monitoring',cat:'Security',badge:'sec'},\n  {vendor:'Kaseya',name:'Kaseya ID Agent (Dark Web ID)',sub:'Dark Web Monitoring',cat:'Security',badge:'sec'},\n  {vendor:'Acronis',name:'Acronis Cyber EDR',sub:'EDR',cat:'Security',badge:'sec'},\n  {vendor:'Bitdefender',name:'Bitdefender GravityZone Elite \/ Ultra',sub:'EDR',cat:'Security',badge:'sec'},\n  {vendor:'ESET',name:'ESET PROTECT Elite (XDR)',sub:'EDR',cat:'Security',badge:'sec'},\n  {vendor:'Malwarebytes',name:'Malwarebytes ThreatDown Elite',sub:'EDR',cat:'Security',badge:'sec'},\n  {vendor:'Malwarebytes',name:'Malwarebytes ThreatDown Ultimate',sub:'EDR',cat:'Security',badge:'sec'},\n  {vendor:'N-able',name:'N-able EDR',sub:'EDR',cat:'Security',badge:'sec'},\n  {vendor:'CrowdStrike',name:'CrowdStrike Falcon Go',sub:'EDR \/ XDR',cat:'Security',badge:'sec'},\n  {vendor:'CrowdStrike',name:'CrowdStrike Falcon Pro',sub:'EDR \/ XDR',cat:'Security',badge:'sec'},\n  {vendor:'CrowdStrike',name:'CrowdStrike Falcon Enterprise',sub:'EDR \/ XDR',cat:'Security',badge:'sec'},\n  {vendor:'Microsoft',name:'Microsoft Defender for Business \/ Endpoint',sub:'EDR \/ XDR',cat:'Security',badge:'sec'},\n  {vendor:'SentinelOne',name:'SentinelOne Singularity Core',sub:'EDR \/ XDR',cat:'Security',badge:'sec'},\n  {vendor:'SentinelOne',name:'SentinelOne Singularity Control',sub:'EDR \/ XDR',cat:'Security',badge:'sec'},\n  {vendor:'SentinelOne',name:'SentinelOne Singularity Complete',sub:'EDR \/ XDR',cat:'Security',badge:'sec'},\n  {vendor:'Sophos',name:'Sophos Intercept X with XDR',sub:'EDR \/ XDR',cat:'Security',badge:'sec'},\n  {vendor:'Barracuda',name:'Barracuda Email Security Gateway',sub:'Email Security',cat:'Security',badge:'sec'},\n  {vendor:'Barracuda',name:'Barracuda Email Protection (M365)',sub:'Email Security',cat:'Security',badge:'sec'},\n  {vendor:'Cisco',name:'Cisco Secure Email',sub:'Email Security',cat:'Security',badge:'sec'},\n  {vendor:'Egress',name:'Egress Protect',sub:'Email Security',cat:'Security',badge:'sec'},\n  {vendor:'Egress',name:'Egress Prevent (DLP)',sub:'Email Security',cat:'Security',badge:'sec'},\n  {vendor:'Egress',name:'Egress Defend',sub:'Email Security',cat:'Security',badge:'sec'},\n  {vendor:'Microsoft',name:'Microsoft Defender for Office 365 P1 \/ P2',sub:'Email Security',cat:'Security',badge:'sec'},\n  {vendor:'Mimecast',name:'Mimecast Email Security Cloud',sub:'Email Security',cat:'Security',badge:'sec'},\n  {vendor:'Mimecast',name:'Mimecast Targeted Threat Protection',sub:'Email Security',cat:'Security',badge:'sec'},\n  {vendor:'N-able',name:'N-able Mail Assure',sub:'Email Security',cat:'Security',badge:'sec'},\n  {vendor:'Proofpoint',name:'Proofpoint Essentials',sub:'Email Security',cat:'Security',badge:'sec'},\n  {vendor:'Proofpoint',name:'Proofpoint Email Protection',sub:'Email Security',cat:'Security',badge:'sec'},\n  {vendor:'Sophos',name:'Sophos Email Advanced',sub:'Email Security',cat:'Security',badge:'sec'},\n  {vendor:'Acronis',name:'Acronis Advanced Security',sub:'Endpoint Security',cat:'Security',badge:'sec'},\n  {vendor:'Bitdefender',name:'Bitdefender GravityZone Business Security',sub:'Endpoint Security',cat:'Security',badge:'sec'},\n  {vendor:'Bitdefender',name:'Bitdefender GravityZone Business Security Premium',sub:'Endpoint Security',cat:'Security',badge:'sec'},\n  {vendor:'ESET',name:'ESET Endpoint Antivirus \/ Security',sub:'Endpoint Security',cat:'Security',badge:'sec'},\n  {vendor:'ESET',name:'ESET PROTECT Entry \/ Advanced \/ Complete',sub:'Endpoint Security',cat:'Security',badge:'sec'},\n  {vendor:'ESET',name:'ESET Server Security',sub:'Endpoint Security',cat:'Security',badge:'sec'},\n  {vendor:'Fortinet',name:'FortiClient EMS',sub:'Endpoint Security',cat:'Security',badge:'sec'},\n  {vendor:'Malwarebytes',name:'Malwarebytes ThreatDown Core',sub:'Endpoint Security',cat:'Security',badge:'sec'},\n  {vendor:'Malwarebytes',name:'Malwarebytes ThreatDown Advanced',sub:'Endpoint Security',cat:'Security',badge:'sec'},\n  {vendor:'Microsoft',name:'Microsoft Intune',sub:'Endpoint Security',cat:'Security',badge:'sec'},\n  {vendor:'Sophos',name:'Sophos Intercept X Advanced',sub:'Endpoint Security',cat:'Security',badge:'sec'},\n  {vendor:'Sophos',name:'Sophos Central Endpoint \/ Server',sub:'Endpoint Security',cat:'Security',badge:'sec'},\n  {vendor:'Webroot',name:'Webroot Business Endpoint Protection',sub:'Endpoint Security',cat:'Security',badge:'sec'},\n  {vendor:'AvePoint',name:'AvePoint Confide',sub:'GRC',cat:'Security',badge:'sec'},\n  {vendor:'CyberCert',name:'CyberCert SMB1001 Framework',sub:'GRC \/ Security Assessment',cat:'Security',badge:'sec'},\n  {vendor:'Microsoft',name:'Microsoft Entra ID P1 \/ P2',sub:'IAM',cat:'Security',badge:'sec'},\n  {vendor:'Bitdefender',name:'Bitdefender MDR',sub:'MDR',cat:'Security',badge:'sec'},\n  {vendor:'CrowdStrike',name:'CrowdStrike Falcon Complete MDR',sub:'MDR',cat:'Security',badge:'sec'},\n  {vendor:'Guardz',name:'Guardz Unified Cybersecurity Platform',sub:'MDR',cat:'Security',badge:'sec'},\n  {vendor:'Huntress',name:'Huntress Managed EDR',sub:'MDR',cat:'Security',badge:'sec'},\n  {vendor:'Huntress',name:'Huntress Managed Microsoft 365 ITDR',sub:'MDR',cat:'Security',badge:'sec'},\n  {vendor:'Huntress',name:'Huntress Managed SIEM',sub:'MDR',cat:'Security',badge:'sec'},\n  {vendor:'SentinelOne',name:'SentinelOne Vigilance MDR',sub:'MDR',cat:'Security',badge:'sec'},\n  {vendor:'Sophos',name:'Sophos MDR',sub:'MDR',cat:'Security',badge:'sec'},\n  {vendor:'ESET',name:'ESET Secure Authentication',sub:'MFA',cat:'Security',badge:'sec'},\n  {vendor:'Cisco',name:'Cisco Duo (MFA)',sub:'MFA \/ IAM',cat:'Security',badge:'sec'},\n  {vendor:'Duo Security',name:'Duo Free \/ Essentials',sub:'MFA \/ IAM',cat:'Security',badge:'sec'},\n  {vendor:'Duo Security',name:'Duo Advantage',sub:'MFA \/ IAM',cat:'Security',badge:'sec'},\n  {vendor:'Duo Security',name:'Duo Premier',sub:'MFA \/ IAM',cat:'Security',badge:'sec'},\n  {vendor:'ConnectWise',name:'ConnectWise SIEM',sub:'Managed Security',cat:'Security',badge:'sec'},\n  {vendor:'Cork',name:'Cork Cyber Insurance & Risk',sub:'Managed Security',cat:'Security',badge:'sec'},\n  {vendor:'Keeper Security',name:'Keeper Secrets Manager',sub:'PAM',cat:'Security',badge:'sec'},\n  {vendor:'Keeper Security',name:'Keeper PAM',sub:'PAM',cat:'Security',badge:'sec'},\n  {vendor:'1Password',name:'1Password Teams Starter Pack',sub:'Password Management',cat:'Security',badge:'sec'},\n  {vendor:'1Password',name:'1Password Business',sub:'Password Management',cat:'Security',badge:'sec'},\n  {vendor:'1Password',name:'1Password Extended Access Management',sub:'Password Management',cat:'Security',badge:'sec'},\n  {vendor:'Keeper Security',name:'Keeper Business',sub:'Password Management',cat:'Security',badge:'sec'},\n  {vendor:'LastPass',name:'LastPass Teams',sub:'Password Management',cat:'Security',badge:'sec'},\n  {vendor:'LastPass',name:'LastPass Business',sub:'Password Management',cat:'Security',badge:'sec'},\n  {vendor:'N-able',name:'N-able Passportal',sub:'Password Management',cat:'Security',badge:'sec'},\n  {vendor:'Cato Networks',name:'Cato SASE Cloud',sub:'SASE',cat:'Security',badge:'sec'},\n  {vendor:'Cisco',name:'Cisco Meraki (Cloud Networking)',sub:'SASE',cat:'Security',badge:'sec'},\n  {vendor:'Fortinet',name:'FortiSASE',sub:'SASE',cat:'Security',badge:'sec'},\n  {vendor:'Todyl',name:'Todyl SASE + SIEM + MDR',sub:'SASE',cat:'Security',badge:'sec'},\n  {vendor:'Zscaler',name:'Zscaler Internet Access (ZIA)',sub:'SASE \/ Zero Trust',cat:'Security',badge:'sec'},\n  {vendor:'Zscaler',name:'Zscaler Private Access (ZPA)',sub:'SASE \/ Zero Trust',cat:'Security',badge:'sec'},\n  {vendor:'Zscaler',name:'Zscaler Digital Experience (ZDX)',sub:'SASE \/ Zero Trust',cat:'Security',badge:'sec'},\n  {vendor:'Fortinet',name:'FortiSIEM',sub:'SIEM',cat:'Security',badge:'sec'},\n  {vendor:'Microsoft',name:'Microsoft Sentinel',sub:'SIEM',cat:'Security',badge:'sec'},\n  {vendor:'Blumira',name:'Blumira SIEM + XDR',sub:'SIEM \/ XDR',cat:'Security',badge:'sec'},\n  {vendor:'Augmentt',name:'Augmentt Secure',sub:'SaaS Security',cat:'Security',badge:'sec'},\n  {vendor:'Huntress',name:'Huntress Security Awareness Training',sub:'Security Awareness',cat:'Security',badge:'sec'},\n  {vendor:'Kaseya',name:'Kaseya BullPhish ID',sub:'Security Awareness',cat:'Security',badge:'sec'},\n  {vendor:'Mimecast',name:'Mimecast Awareness Training',sub:'Security Awareness',cat:'Security',badge:'sec'},\n  {vendor:'Proofpoint',name:'Proofpoint Security Awareness Training',sub:'Security Awareness',cat:'Security',badge:'sec'},\n  {vendor:'Webroot',name:'Webroot Security Awareness Training',sub:'Security Awareness',cat:'Security',badge:'sec'},\n  {vendor:'CrowdStrike',name:'CrowdStrike Falcon Intelligence',sub:'Threat Intelligence',cat:'Security',badge:'sec'},\n  {vendor:'Vicarius',name:'Vicarius vRx',sub:'Vulnerability Management',cat:'Security',badge:'sec'},\n  {vendor:'Barracuda',name:'Barracuda Web Security Gateway',sub:'Web Security',cat:'Security',badge:'sec'},\n  {vendor:'SentinelOne',name:'SentinelOne Singularity XDR',sub:'XDR',cat:'Security',badge:'sec'},\n  {vendor:'ConnectWise',name:'ConnectWise ScreenConnect',sub:'Remote Access',cat:'IT Operations',badge:'itops'},\n  {vendor:'Citrix',name:'Citrix DaaS (Cloud Desktop)',sub:'DaaS',cat:'Infrastructure',badge:'infra'},\n  {vendor:'Citrix',name:'Citrix Virtual Apps and Desktops',sub:'DaaS',cat:'Infrastructure',badge:'infra'},\n  {vendor:'Nerdio',name:'Nerdio Manager for MSP',sub:'DaaS \/ IaaS Management',cat:'Infrastructure',badge:'infra'},\n  {vendor:'Nerdio',name:'Nerdio Manager for Enterprise',sub:'DaaS \/ IaaS Management',cat:'Infrastructure',badge:'infra'},\n  {vendor:'Microsoft',name:'Microsoft Azure (Prepayment \/ Pay-as-you-go)',sub:'IaaS',cat:'Infrastructure',badge:'infra'},\n  {vendor:'Microsoft',name:'Azure Virtual Desktop',sub:'IaaS',cat:'Infrastructure',badge:'infra'},\n  {vendor:'Microsoft',name:'SQL Server (Standard \/ Enterprise \u2014 CSP)',sub:'IaaS',cat:'Infrastructure',badge:'infra'},\n  {vendor:'Microsoft',name:'Windows Server Datacenter \/ Standard',sub:'IaaS',cat:'Infrastructure',badge:'infra'},\n  {vendor:'Pax8 Private Cloud',name:'Pax8 Private Cloud (IaaS)',sub:'IaaS',cat:'Infrastructure',badge:'infra'},\n  {vendor:'Pax8 Private Cloud',name:'Pax8 Virtual Server',sub:'IaaS',cat:'Infrastructure',badge:'infra'},\n  {vendor:'Egnyte',name:'Egnyte Business \/ Enterprise',sub:'Storage',cat:'Infrastructure',badge:'infra'},\n  {vendor:'Wasabi',name:'Wasabi Hot Cloud Storage',sub:'Storage',cat:'Infrastructure',badge:'infra'},\n  {vendor:'Cisco',name:'Cisco Umbrella (DNS Security)',sub:'Network Security',cat:'Network',badge:'net'},\n  {vendor:'Fortinet',name:'FortiGate NGFW',sub:'Firewall',cat:'Security',badge:'sec'},\n  {vendor:'Sophos',name:'Sophos Firewall (XGS)',sub:'Firewall',cat:'Security',badge:'sec'},\n  {vendor:'Barracuda',name:'Barracuda CloudGen Firewall',sub:'Network Security',cat:'Security',badge:'sec'},\n  {vendor:'Datto',name:'Datto Networking',sub:'Network Security',cat:'Security',badge:'sec'},\n  {vendor:'Citrix',name:'Citrix Secure Private Access',sub:'VPN \/ Network',cat:'Security',badge:'sec'},\n  {vendor:'Adobe',name:'Adobe Firefly',sub:'AI Productivity',cat:'AI & Analytics',badge:'ai'},\n  {vendor:'Amazon Bedrock Claude',name:'Claude for SMBs (via Amazon Bedrock)',sub:'AI Productivity',cat:'AI & Analytics',badge:'ai'},\n  {vendor:'Pax8 AI Agents',name:'Pax8 Agent Store (AI Agents)',sub:'AI Productivity',cat:'AI & Analytics',badge:'ai'},\n  {vendor:'8x8',name:'8x8 Contact Centre',sub:'CCaaS',cat:'Communications',badge:'comm'},\n  {vendor:'RingCentral',name:'RingCentral Contact Centre',sub:'CCaaS',cat:'Communications',badge:'comm'},\n  {vendor:'Vonage',name:'Vonage Contact Centre',sub:'CCaaS',cat:'Communications',badge:'comm'},\n  {vendor:'Zoom',name:'Zoom Contact Centre',sub:'CCaaS',cat:'Communications',badge:'comm'},\n  {vendor:'8x8',name:'8x8 X Series (X2\/X4\/X6\/X8)',sub:'UCaaS',cat:'Communications',badge:'comm'},\n  {vendor:'8x8',name:'8x8 Work',sub:'UCaaS',cat:'Communications',badge:'comm'},\n  {vendor:'Cisco',name:'Cisco Webex Calling',sub:'UCaaS',cat:'Communications',badge:'comm'},\n  {vendor:'RingCentral',name:'RingCentral MVP (Message, Video, Phone)',sub:'UCaaS',cat:'Communications',badge:'comm'},\n  {vendor:'RingCentral',name:'RingCentral Video Pro',sub:'UCaaS',cat:'Communications',badge:'comm'},\n  {vendor:'Vonage',name:'Vonage Business Communications (VBC)',sub:'UCaaS',cat:'Communications',badge:'comm'},\n  {vendor:'Zoom',name:'Zoom One Pro \/ Business \/ Enterprise',sub:'UCaaS',cat:'Communications',badge:'comm'},\n  {vendor:'Zoom',name:'Zoom Phone',sub:'UCaaS',cat:'Communications',badge:'comm'},\n  {vendor:'Acronis',name:'Acronis Cyber Protect Cloud',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Acronis',name:'Acronis Cyber Backup Cloud',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Arcserve',name:'Arcserve Unified Data Protection (UDP)',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Axcient',name:'Axcient x360Recover',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Axcient',name:'Axcient x360Sync',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Barracuda',name:'Barracuda Backup',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Cove Data Protection',name:'Cove Data Protection (Backup)',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Datto',name:'Datto SIRIS (BCDR)',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Datto',name:'Datto ALTO (BCDR)',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Datto',name:'Datto Backupify',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'N-able',name:'N-able Backup',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'NinjaRMM',name:'NinjaOne Backup',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Redstor',name:'Redstor Backup for Microsoft 365',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Redstor',name:'Redstor Backup for Endpoints',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Redstor',name:'Redstor Backup for Servers',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Veeam',name:'Veeam Backup & Replication',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Veeam',name:'Veeam Data Platform Essentials',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Veeam',name:'Veeam Data Platform Foundation \/ Advanced',sub:'Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Acronis',name:'Acronis Disaster Recovery Cloud',sub:'Disaster Recovery',cat:'Continuity',badge:'backup'},\n  {vendor:'Arcserve',name:'Arcserve Cloud Direct',sub:'Disaster Recovery',cat:'Continuity',badge:'backup'},\n  {vendor:'Cove Data Protection',name:'Cove Disaster Recovery',sub:'Disaster Recovery',cat:'Continuity',badge:'backup'},\n  {vendor:'Veeam',name:'Veeam Disaster Recovery Orchestrator',sub:'Disaster Recovery',cat:'Continuity',badge:'backup'},\n  {vendor:'Barracuda',name:'Barracuda Message Archiver',sub:'Email Archiving',cat:'Continuity',badge:'backup'},\n  {vendor:'Dropsuite',name:'Dropsuite Email Archiving',sub:'Email Archiving',cat:'Continuity',badge:'backup'},\n  {vendor:'Mimecast',name:'Mimecast Cloud Archive',sub:'Email Archiving',cat:'Continuity',badge:'backup'},\n  {vendor:'Proofpoint',name:'Proofpoint Essentials Archiving',sub:'Email Archiving',cat:'Continuity',badge:'backup'},\n  {vendor:'Mimecast',name:'Mimecast Email Continuity',sub:'Email Continuity',cat:'Continuity',badge:'backup'},\n  {vendor:'Acronis',name:'Acronis Cloud Backup for Microsoft 365',sub:'SaaS Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Arcserve',name:'Arcserve SaaS Backup',sub:'SaaS Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'AvePoint',name:'AvePoint Cloud Backup',sub:'SaaS Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'AvePoint',name:'AvePoint MyHub',sub:'SaaS Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Axcient',name:'Axcient x360Cloud (M365 & Google)',sub:'SaaS Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Datto',name:'Datto SaaS Protection (M365 & Google)',sub:'SaaS Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Dropsuite',name:'Dropsuite Email Backup & Archiving',sub:'SaaS Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Kaseya',name:'Kaseya SaaS Backup (Spanning)',sub:'SaaS Backup',cat:'Continuity',badge:'backup'},\n  {vendor:'Veeam',name:'Veeam Backup for Microsoft 365',sub:'SaaS Backup',cat:'Continuity',badge:'backup'}\n];\n\nconst BADGE_LABELS = {\n  sec:'Security', backup:'Backup & Continuity', sw:'Productivity',\n  itops:'IT Operations', comm:'Communications', infra:'Infrastructure',\n  ai:'AI & Analytics', hr:'HR', net:'Network'\n};\nconst BADGE_COLORS = {\n  sec:'background:#FEF0F0;color:#C0272D',\n  backup:'background:#F3F0FF;color:#5B21B6',\n  sw:'background:#EBF0FF;color:#1547E8',\n  itops:'background:#FFF8ED;color:#B45309',\n  comm:'background:#EDFAF8;color:#0F766E',\n  infra:'background:#E6F5EE;color:#0B7A45',\n  ai:'background:#F3F0FF;color:#5B21B6',\n  hr:'background:#FFF8E1;color:#92400E',\n  net:'background:#EDFAF8;color:#0F766E',\n};\n\n\/\/ All unique categories\nconst ALL_CATS = [...new Set(PRODUCTS.map(p=>p.cat))].sort();\n\nlet selectedProducts = new Set();\nlet activeCat = 'all';\nlet searchVal = '';\n\nfunction renderCatTabs() {\n  const tabs = document.getElementById('catTabs');\n  let html = `<button class=\"pp-cat-tab ${activeCat==='all'?'active':''}\" onclick=\"setCat('all')\">All (${PRODUCTS.length})<\/button>`;\n  ALL_CATS.forEach(c => {\n    const cnt = PRODUCTS.filter(p=>p.cat===c).length;\n    html += `<button class=\"pp-cat-tab ${activeCat===c?'active':''}\" onclick=\"setCat('${c.replace(\/'\/g,\"\\'\")}\")\">${c} (${cnt})<\/button>`;\n  });\n  tabs.innerHTML = html;\n}\n\nfunction setCat(cat) {\n  activeCat = cat;\n  renderCatTabs();\n  renderProductList(searchVal);\n}\n\nfunction renderProductList(filter='') {\n  searchVal = filter;\n  const q = filter.toLowerCase();\n  let pool = PRODUCTS;\n  if (activeCat !== 'all') pool = pool.filter(p => p.cat === activeCat);\n  if (q) pool = pool.filter(p => p.name.toLowerCase().includes(q) || p.vendor.toLowerCase().includes(q) || p.sub.toLowerCase().includes(q));\n\n  const grouped = {};\n  pool.forEach(p => {\n    if (!grouped[p.vendor]) grouped[p.vendor] = [];\n    grouped[p.vendor].push(p);\n  });\n\n  const container = document.getElementById('productList');\n  if (!pool.length) {\n    container.innerHTML = '<div style=\"padding:16px;text-align:center;color:var(--g400);font-size:12px\">No products match your search<\/div>';\n    return;\n  }\n  let html = '';\n  Object.entries(grouped).sort((a,b)=>a[0].localeCompare(b[0])).forEach(([vendor, prods]) => {\n    html += `<div class=\"pp-vendor-group\"><div class=\"pp-vendor-label\">${vendor}<\/div>`;\n    prods.forEach(p => {\n      const checked = selectedProducts.has(p.name) ? 'checked' : '';\n      const bc = BADGE_COLORS[p.badge]||'';\n      const bl = p.sub;\n      const nameEsc = p.name.replace(\/'\/g,\"\\\\'\");\n      html += `<label class=\"pp-item\">\n        <input type=\"checkbox\" ${checked} onchange=\"toggleProduct('${nameEsc}',this.checked)\">\n        <span class=\"pp-item-name\">${p.name}<\/span>\n        <span class=\"pp-item-badge\" style=\"${bc}\">${bl}<\/span>\n      <\/label>`;\n    });\n    html += `<\/div>`;\n  });\n  container.innerHTML = html;\n}\n\nfunction filterProducts(val) {\n  renderProductList(val);\n}\n\nfunction toggleProduct(name, checked) {\n  if (checked) selectedProducts.add(name); else selectedProducts.delete(name);\n  renderChips();\n}\n\nfunction renderChips() {\n  const container = document.getElementById('selectedChips');\n  const label = document.getElementById('selectedLabel');\n  if (!selectedProducts.size) {\n    container.innerHTML = '<span class=\"chips-empty\">No products selected yet<\/span>';\n    label.textContent = 'Selected products:';\n    return;\n  }\n  label.textContent = `Selected products (${selectedProducts.size}):`;\n  container.innerHTML = [...selectedProducts].map(name => {\n    const ne = name.replace(\/'\/g,\"\\\\'\");\n    return `<div class=\"chip\">${name}<span class=\"chip-remove\" onclick=\"removeProduct('${ne}')\">\u2715<\/span><\/div>`;\n  }).join('');\n}\n\nfunction removeProduct(name) {\n  selectedProducts.delete(name);\n  renderProductList(searchVal);\n  renderChips();\n}\n\nfunction submitQuote() {\n  const firstName = document.getElementById('firstName').value.trim();\n  const email = document.getElementById('email').value.trim();\n  const company = document.getElementById('company').value.trim();\n  if (!firstName || !email || !company) {\n    showToast('\u26a0\ufe0f Please fill in your name, email, and company name.');\n    return;\n  }\n  if (!selectedProducts.size) {\n    showToast('\u26a0\ufe0f Please select at least one product.');\n    return;\n  }\n  document.getElementById('quoteForm').style.display = 'none';\n  document.getElementById('formFooter').style.display = 'none';\n  document.getElementById('successState').style.display = 'block';\n  document.getElementById('refNum').textContent = Math.floor(100000 + Math.random()*900000);\n  showToast('\u2713 Quote request submitted successfully!', 'success');\n}\n\nfunction resetForm() {\n  selectedProducts = new Set();\n  document.getElementById('quoteForm').style.display = 'block';\n  document.getElementById('formFooter').style.display = 'flex';\n  document.getElementById('successState').style.display = 'none';\n  document.getElementById('firstName').value='';\n  document.getElementById('lastName').value='';\n  document.getElementById('email').value='';\n  document.getElementById('phone').value='';\n  document.getElementById('company').value='';\n  document.getElementById('preselBanner').classList.remove('show');\n  activeCat = 'all';\n  renderCatTabs();\n  renderProductList();\n  renderChips();\n}\n\nfunction clearForm() {\n  if (confirm('Clear all form data?')) resetForm();\n}\n\nfunction toggleFaq(el) { el.classList.toggle('open'); }\n\nfunction showToast(msg, type) {\n  const t = document.getElementById('toast');\n  t.textContent = msg;\n  t.className = 'toast' + (type ? ' '+type : '');\n  t.classList.add('show');\n  setTimeout(() => t.classList.remove('show'), 3200);\n}\n\n\/\/ \u2500\u2500 URL PARAM: pre-select product if arriving from catalogue \u2500\u2500\nfunction initFromUrl() {\n  const params = new URLSearchParams(window.location.search);\n  const product = params.get('product');\n  if (product) {\n    \/\/ Check if product exists\n    const found = PRODUCTS.find(p => p.name === product);\n    if (found) {\n      selectedProducts.add(product);\n      \/\/ Switch to its category tab\n      activeCat = found.cat;\n      \/\/ Show banner\n      const banner = document.getElementById('preselBanner');\n      document.getElementById('preselText').textContent = `\"${product}\" pre-selected from catalogue. You can add more products below.`;\n      banner.classList.add('show');\n      \/\/ Update subtitle\n      document.getElementById('formSubtitle').textContent = `Requesting a quote for: ${product}`;\n    }\n  }\n  renderCatTabs();\n  renderProductList();\n  renderChips();\n  document.getElementById('totalCount').textContent = PRODUCTS.length + ' products available';\n}\n\ninitFromUrl();\n\nfunction goToProducts(){\n  const required = [\n    {id:'firstName', label:'First Name'},\n    {id:'lastName', label:'Last Name'},\n    {id:'email', label:'Business Email'},\n    {id:'company', label:'Company Name'},\n    {id:'companySize', label:'Company Size'}\n  ];\n\n  for(const field of required){\n    const el = document.getElementById(field.id);\n    if(!el || !el.value.trim()){\n      showToast('Please complete: ' + field.label, '');\n      if(el) el.focus();\n      return;\n    }\n  }\n\n  document.getElementById('stepContact').classList.remove('active');\n  document.getElementById('stepProducts').classList.add('active');\n  document.getElementById('stepOneActions').style.display = 'none';\n  document.getElementById('stepTwoActions').style.display = 'flex';\n  document.getElementById('formSubtitle').textContent = \"Step 2 of 2 \u2014 Select the products you're interested in\";\n  document.getElementById('stepPill1').classList.remove('active');\n  document.getElementById('stepPill1').classList.add('done');\n  document.getElementById('stepPill2').classList.add('active');\n  document.querySelector('.form-card').scrollIntoView({behavior:'smooth', block:'start'});\n}\n\nfunction goToContact(){\n  document.getElementById('stepProducts').classList.remove('active');\n  document.getElementById('stepContact').classList.add('active');\n  document.getElementById('stepTwoActions').style.display = 'none';\n  document.getElementById('stepOneActions').style.display = 'flex';\n  document.getElementById('formSubtitle').textContent = 'Step 1 of 2 \u2014 Enter your contact details';\n  document.getElementById('stepPill2').classList.remove('active');\n  document.getElementById('stepPill1').classList.remove('done');\n  document.getElementById('stepPill1').classList.add('active');\n  document.querySelector('.form-card').scrollIntoView({behavior:'smooth', block:'start'});\n}\n\n<\/script>\n<\/body>\n<\/html><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Request a Quote \u2014 BritHaven Tech Home\u203a Request a Quote \ud83d\udccb Free, No-Obligation Quote Get a Tailored Quote for Your Business Select your products, tell us about your organisation, and our UK team will respond with competitive pricing \u2014 usually within 4 business hours. \u2713 Response within 4 business hours \u2713 No commitment required \u2713 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-232","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Request a Quote - Brithaventech<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/brithaventech.co.uk\/index.php\/request-a-quote\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Request a Quote - Brithaventech\" \/>\n<meta property=\"og:description\" content=\"Request a Quote \u2014 BritHaven Tech Home\u203a Request a Quote \ud83d\udccb Free, No-Obligation Quote Get a Tailored Quote for Your Business Select your products, tell us about your organisation, and our UK team will respond with competitive pricing \u2014 usually within 4 business hours. \u2713 Response within 4 business hours \u2713 No commitment required \u2713 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/brithaventech.co.uk\/index.php\/request-a-quote\/\" \/>\n<meta property=\"og:site_name\" content=\"Brithaventech\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-26T15:14:02+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/brithaventech.co.uk\\\/index.php\\\/request-a-quote\\\/\",\"url\":\"https:\\\/\\\/brithaventech.co.uk\\\/index.php\\\/request-a-quote\\\/\",\"name\":\"Request a Quote - Brithaventech\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/brithaventech.co.uk\\\/#website\"},\"datePublished\":\"2026-05-26T09:10:44+00:00\",\"dateModified\":\"2026-05-26T15:14:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/brithaventech.co.uk\\\/index.php\\\/request-a-quote\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/brithaventech.co.uk\\\/index.php\\\/request-a-quote\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/brithaventech.co.uk\\\/index.php\\\/request-a-quote\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/brithaventech.co.uk\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Request a Quote\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/brithaventech.co.uk\\\/#website\",\"url\":\"https:\\\/\\\/brithaventech.co.uk\\\/\",\"name\":\"Brithaventech\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/brithaventech.co.uk\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Request a Quote - Brithaventech","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/brithaventech.co.uk\/index.php\/request-a-quote\/","og_locale":"en_US","og_type":"article","og_title":"Request a Quote - Brithaventech","og_description":"Request a Quote \u2014 BritHaven Tech Home\u203a Request a Quote \ud83d\udccb Free, No-Obligation Quote Get a Tailored Quote for Your Business Select your products, tell us about your organisation, and our UK team will respond with competitive pricing \u2014 usually within 4 business hours. \u2713 Response within 4 business hours \u2713 No commitment required \u2713 [&hellip;]","og_url":"https:\/\/brithaventech.co.uk\/index.php\/request-a-quote\/","og_site_name":"Brithaventech","article_modified_time":"2026-05-26T15:14:02+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/brithaventech.co.uk\/index.php\/request-a-quote\/","url":"https:\/\/brithaventech.co.uk\/index.php\/request-a-quote\/","name":"Request a Quote - Brithaventech","isPartOf":{"@id":"https:\/\/brithaventech.co.uk\/#website"},"datePublished":"2026-05-26T09:10:44+00:00","dateModified":"2026-05-26T15:14:02+00:00","breadcrumb":{"@id":"https:\/\/brithaventech.co.uk\/index.php\/request-a-quote\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/brithaventech.co.uk\/index.php\/request-a-quote\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/brithaventech.co.uk\/index.php\/request-a-quote\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/brithaventech.co.uk\/"},{"@type":"ListItem","position":2,"name":"Request a Quote"}]},{"@type":"WebSite","@id":"https:\/\/brithaventech.co.uk\/#website","url":"https:\/\/brithaventech.co.uk\/","name":"Brithaventech","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/brithaventech.co.uk\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/brithaventech.co.uk\/index.php\/wp-json\/wp\/v2\/pages\/232","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/brithaventech.co.uk\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/brithaventech.co.uk\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/brithaventech.co.uk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/brithaventech.co.uk\/index.php\/wp-json\/wp\/v2\/comments?post=232"}],"version-history":[{"count":12,"href":"https:\/\/brithaventech.co.uk\/index.php\/wp-json\/wp\/v2\/pages\/232\/revisions"}],"predecessor-version":[{"id":289,"href":"https:\/\/brithaventech.co.uk\/index.php\/wp-json\/wp\/v2\/pages\/232\/revisions\/289"}],"wp:attachment":[{"href":"https:\/\/brithaventech.co.uk\/index.php\/wp-json\/wp\/v2\/media?parent=232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}