Home
.dirnote{margin-top:14px;font-size:13px;color:var(–muted);letter-spacing:.01em}.soon{position:relative} .soon::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(–ink);color:var(–paper);font-family:var(–mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s} .soon:hover::after,.soon:focus-visible::after,.soon.show::after{opacity:1} .pcbox{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px dashed var(–hair)} .pcbox[hidden]{display:none} .pcbox input{flex:1;min-width:0;height:46px;border:1px solid var(–hair);border-radius:999px;padding:0 18px;font-family:var(–sans);font-size:15px;background:var(–card);color:var(–ink)} .pcbox input:focus{outline:2px solid var(–accent);outline-offset:2px} .soonbadge{display:inline-block;margin-left:12px;padding:4px 10px;border-radius:999px;background:var(–accent);color:var(–ink);letter-spacing:.12em;vertical-align:1px} details p a{text-decoration:underline;text-underline-offset:3px} .chip{min-height:40px}/* Stage 5: “Prefer to find someone yourself?” */ .findself{border-top:1px solid var(–hair)} .find-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start} @media (max-width:900px){.find-grid{grid-template-columns:1fr;gap:44px}} .find-intro{font-size:19px;line-height:1.65;color:var(–ink-2);font-weight:300;max-width:560px} .findself .pfacts{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:22px} .findself .pfacts span::before{content:””;display:inline-block;width:6px;height:6px;border-radius:50%;background:var(–accent);margin-right:9px;vertical-align:2px} .dsearch{display:grid;grid-template-columns:1.25fr 1fr auto;gap:12px;align-items:end;margin-top:30px;background:var(–card);border:1px solid var(–hair);border-radius:20px;padding:18px} @media (max-width:640px){.dsearch{grid-template-columns:1fr}} .dfield{display:flex;flex-direction:column;gap:8px;min-width:0} .dfield .mono{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(–muted)} .dfield select,.dfield input{width:100%;min-width:0;height:48px;border:1px solid var(–hair);border-radius:12px;background:var(–paper);padding:0 14px;font-family:var(–sans);font-size:15.5px;color:var(–ink)} .dfield select:focus,.dfield input:focus{outline:2px solid var(–accent);outline-offset:2px} .dsearch .btn{height:48px;justify-content:center} .browse{display:inline-block;margin-top:18px;padding:6px 0;font-weight:500;text-decoration:underline;text-decoration-color:var(–accent);text-underline-offset:4px} .find-r h3{font-family:var(–serif);font-weight:400;font-size:clamp(26px,2.4vw,32px);line-height:1.15;color:var(–ink)} .find-sub{color:var(–muted);margin-top:8px;font-weight:300} .needs{list-style:none;margin-top:18px;border-top:1px solid var(–ink)} .needs li{border-bottom:1px solid var(–hair)} .needs a{display:grid;grid-template-columns:170px 1fr;gap:16px;padding:14px 0;align-items:baseline} @media (max-width:640px){.needs a{grid-template-columns:1fr;gap:4px}} .needs b{font-weight:500;color:var(–ink)} .needs span{color:var(–muted);font-weight:300;font-size:15px} .needs a:hover b{text-decoration:underline;text-decoration-color:var(–accent);text-underline-offset:4px} .find-r h4{margin-top:28px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(–muted);font-weight:400} .svcs{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin-top:8px} .svcs a{display:inline-block;padding:6px 0;color:var(–ink-2);font-size:15px} .svcs a:hover{color:var(–ink);text-decoration:underline;text-decoration-color:var(–accent);text-underline-offset:3px}/* 28 Sep 2026: Speak and + work. Tooltips: + on hover; Speak only to say what went wrong. */ .tipper{position:relative} .tipper[data-tip]::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(–ink);color:var(–paper);font-family:var(–mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s} .tipper.tipshow::after{opacity:1} @media (hover:hover){.tipper.hovertip:hover::after,.tipper.hovertip:focus-visible::after{opacity:1}} .tool[hidden]{display:none} .tool.listening{background:var(–accent-soft);border-color:var(–ink)} .tool.listening svg{animation:mscpulse 1.2s ease-in-out infinite} @keyframes mscpulse{50%{opacity:.3}} @media (prefers-reduced-motion:reduce){.tool.listening svg{animation:none}}/* ================= Homepage v3 (Brydee, 28 Sep 2026): trimmed, “How it works” in the green band ================= */ /* The scrolling strip’s star is now a gold dot, matching the logo */ .marquee .track span::after{content:”” !important;width:10px;height:10px;border-radius:50%;background:var(–accent);display:inline-block;font-size:0} /* Gold dots in the small labels */ .std .mono b,.shead .mono b{color:var(–accent)} /* How it works, on the dark green band (in place of the dashboard) */ .how-dark{padding:110px 0} .how-dark h2{color:var(–paper)} .how-dark .step{border-top-color:#1E5646} .how-dark .step:last-child{border-bottom-color:#1E5646} .how-dark .step h3{color:var(–paper)} .how-dark .step p{color:#CFDDD6} .how-dark .step .n{color:var(–accent)} .how-dark .chat{color:var(–ink);box-shadow:14px 14px 0 rgba(201,162,39,.55)} .how-dark .chat .mono{color:var(–muted)} .how-dark .chat .mono.hot{color:var(–gold-text)} .how-dark + section{padding-top:110px !important} @media (max-width:640px){.how-dark{padding:80px 0}.how-dark + section{padding-top:80px !important}} .final{padding-top:10px} /* The sticky “Check my business” button on phones */ .stickycta{display:none} @media (max-width:640px){ .stickycta{display:inline-flex;position:fixed;left:16px;right:16px;bottom:14px;z-index:70;justify-content:center;box-shadow:0 14px 30px -12px rgba(0,0,0,.45)} body{padding-bottom:76px} } /* Hidden while the ask box itself is on screen (it’s the same starting point) */ .stickycta{transition:opacity .2s,transform .2s} .stickycta.is-hidden{opacity:0;pointer-events:none;transform:translateY(16px)} @media (prefers-reduced-motion:reduce){.stickycta{transition:none}}/* ================= Homepage v4 (31 Oct 2026): search beside a smaller drawing; services, how listings work, guides, one line for consultants ================= */ .h4{padding:64px 0 120px} .h4 .hero-grid{grid-template-columns:1.12fr .88fr;gap:56px} .h4 .lede{margin-top:22px} .h4 .hero-art svg{width:100%;margin-right:0;max-height:380px} @media (max-width:980px){.h4 .hero-grid{grid-template-columns:1fr;gap:36px}.h4 .hero-art{max-width:420px;margin:0 auto}} @media (max-width:640px){.h4{padding-top:24px}.h4 .hero-art{display:none}} @media (max-width:1180px){.fsearch{grid-template-columns:1fr 1fr}.fsearch .btn{grid-column:1/-1;padding:14px}} .fsearch{margin-top:34px;display:grid;grid-template-columns:1.25fr 1fr auto;gap:6px;background:#fff;border:1.5px solid var(–ink);border-radius:20px;padding:8px;box-shadow:8px 8px 0 var(–accent-soft)} .fsearch:focus-within{box-shadow:0 0 0 4px rgba(201,162,39,.3),8px 8px 0 var(–accent-soft)} .fsearch label{display:flex;flex-direction:column;gap:3px;padding:8px 14px;min-width:0;cursor:text} .fsearch label+label{border-left:1px solid var(–hair)} .hero .fsearch .mono{margin:0;display:block;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(–gold-text)} .fsearch input{border:0;outline:0;background:transparent;font-family:var(–sans);font-size:17px;color:var(–ink);padding:2px 0;min-width:0;width:100%} .fsearch input::placeholder{color:var(–muted)} .fsearch .btn{justify-content:center;border-radius:14px;padding:0 26px} @media (max-width:700px){.fsearch{grid-template-columns:1fr}.fsearch label+label{border-left:0;border-top:1px solid var(–hair)}.fsearch .btn{padding:14px}} .svc4{padding:40px 0 150px} .tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:22px} @media (max-width:860px){.tiles{grid-template-columns:1fr 1fr}} @media (max-width:540px){.tiles{grid-template-columns:1fr}} .tiles a{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:32px 30px;background:var(–card);border:1px solid var(–hair);border-radius:16px;font-size:17px;font-weight:500;color:var(–ink);transition:border-color .2s,transform .2s} .tiles a:hover{border-color:var(–ink);transform:translateY(-2px)} .tiles a small{display:block;margin-top:4px;font-size:13px;font-weight:400;color:var(–muted)} .tiles a em{display:block;margin-bottom:8px;font-style:normal;font-family:var(–mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(–gold-text)} .tiles.g4 a{align-items:flex-end;font-family:var(–serif);font-size:28px;font-weight:400;line-height:1.15;min-height:220px} .tiles .arr{flex:0 0 auto;display:grid;place-items:center;width:38px;height:38px;border:1px solid var(–ink);border-radius:50%} .guides4{padding:24px 0 150px} .guides4 .more{margin-top:28px} .guides4 .more a{font-weight:500;text-decoration:underline;text-decoration-color:var(–accent);text-underline-offset:4px} .claim4{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-bottom:140px;padding:44px 48px;background:var(–ink);color:var(–paper);border-radius:22px} .claim4 p{font-size:18px;font-weight:300;color:#CFDDD6;max-width:640px} .claim4 p b{color:var(–paper);font-weight:500} .claim4 .btn{background:var(–paper);border-color:var(–paper);color:var(–ink)} .claim4 .btn:hover{background:var(–accent);border-color:var(–accent)} .std-link{margin-top:36px;font-size:15px} @media (max-width:700px){.h4{padding:28px 0 80px}.svc4{padding:20px 0 96px}.guides4{padding:96px 0}.claim4{padding:30px 26px;margin-bottom:96px}.tiles a{padding:24px 22px}} .std-link a{font-weight:500;text-decoration:underline;text-decoration-color:var(–accent);text-underline-offset:4px}/* Guides on the homepage: the same illustrated cards as /resources/ (31 Oct 2026) */ .g4c{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:34px} @media (max-width:980px){.g4c{grid-template-columns:1fr 1fr}} @media (max-width:600px){.g4c{grid-template-columns:1fr}} .g4c .anim *{transform-box:fill-box}.g4c .anim{overflow:visible} .g4c .card{background:var(–card);border:1px solid var(–hair);border-radius:20px;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s,border-color .25s;color:var(–ink)} .g4c .card:hover,.g4c .card:focus-visible{transform:translateY(-4px);box-shadow:0 26px 50px -30px rgba(8,58,45,.45);border-color:var(–ink);outline:none} .g4c .thumb{background:var(–paper-2);aspect-ratio:16/10;display:grid;place-items:center;border-bottom:1px solid var(–hair);color:var(–ink);transition:background .25s} .g4c .card:hover .thumb{background:var(–accent-soft)} .g4c .thumb svg{width:74%;height:auto;overflow:visible} .g4c .cbody{padding:22px 24px 24px;display:flex;flex-direction:column;gap:12px;flex:1} .g4c .cbody .cat{font-family:var(–mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(–gold-text);font-weight:500} .g4c .cbody h3{font-family:var(–serif);font-weight:400;font-size:25px;line-height:1.15;letter-spacing:.01em;margin:0} .g4c .cbody .meta{margin-top:auto;display:flex;justify-content:space-between;align-items:center;padding-top:14px;border-top:1px dashed var(–hair);font-family:var(–mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(–muted)} .g4c .cbody .arr{width:32px;height:32px;border-radius:50%;border:1px solid var(–ink);display:grid;place-items:center;transition:background .2s,color .2s;color:var(–ink)} .g4c .card:hover .arr{background:var(–ink);color:var(–paper)} .g4c .thumb .anim *{animation-play-state:paused} .g4c .card:hover .thumb .anim *,.g4c .card:focus-visible .thumb .anim *{animation-play-state:running} .g4c .swing{transform-origin:50% 0;animation:g4swing 3.4s ease-in-out infinite} .g4c .tip{transform-origin:center;animation:g4tip 3.4s ease-in-out infinite} .g4c .drop{animation:g4drop 2.4s ease-in-out infinite} @keyframes g4swing{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(7deg)}} @keyframes g4tip{0%,100%{transform:rotate(0)}30%{transform:rotate(-6deg)}70%{transform:rotate(6deg)}} @keyframes g4drop{0%,100%{transform:translateY(0)}40%{transform:translateY(-14px)}60%{transform:translateY(0)}70%{transform:translateY(-3px)}} @media (prefers-reduced-motion:reduce){.g4c .anim *{animation:none!important}} .svc4 .shead,.guides4 .shead{display:block} .svc4 .shead h2,.guides4 .shead h2{margin:0} /* Hero: more room (31 Oct 2026) */ @media (min-width:981px){ .h4{padding:104px 0 150px} .h4 .hero-grid{gap:88px} .h4 .lede{margin-top:30px;max-width:520px} .h4 .fsearch{margin-top:40px} }● Fire · Legionella · Asbestos · H&S
Find a safety
consultant.
Search 5,000+ UK fire, health and safety, asbestos and legionella companies. Compare and contact them directly.
● How listings work
What we check, and what we don’t.
● Public information
Built from public sources
Listings come from public information, not from who paid us.
● Register checks
Green chips are checked
A green chip means we looked the company up on that public register on the date shown.
● Your call
Check before you appoint
Ask for qualifications and a current insurance certificate before you appoint anyone.
Safety consultant? Claim your free profile, or go Featured for £99 a year: top of local searches, every service you offer and UK-wide coverage.
Claim your profile →