:root{ –bit-header-h: 0px; }
/* =========================
WORDPRESS WIDTH FIXES
========================= */
.wp-site-blocks,
.wp-block-post-content,
.entry-content,
.is-layout-constrained,
.wp-container-core-group-is-layout-constrained,
.wp-block-group.is-layout-constrained{
max-width: none !important;
width: 100% !important;
}
.wp-site-blocks{ padding: 0 !important; }
main, .wp-block-post-content{ margin-top: 0 !important; }
/* =========================
GLOBAL SITE BACKGROUND
========================= */
html, body{ min-height: 100%; }
body{
margin: 0;
font-family: ‘Inter’, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif !important;
background:
radial-gradient(1200px 800px at 20% 10%, rgba(255,255,255,.04), rgba(0,0,0,0) 60%),
linear-gradient(180deg, #0b0f14, #06080b),
url(“https://brownersitservices.co.uk/wp-content/uploads/2026/08/a422b-background.png”);
background-repeat: no-repeat;
background-size: cover;
background-position: center top;
background-attachment: fixed;
color: rgba(255,255,255,.88);
}
@media (hover: none) and (pointer: coarse){
body{ background-attachment: scroll; background-position: center top; }
}
/* =========================
PAGE SHELL
========================= */
.bit-page{
min-height: 100vh;
display: flex;
flex-direction: column;
}
.bit-content{
flex: 1 0 auto;
width: min(100% – 32px, 1120px);
margin: 0 auto;
padding: 26px 0 34px;
padding-top: calc(var(–bit-header-h) + 18px);
}
.bit-content h1, .bit-content h2, .bit-content h3{ color: rgba(255,255,255,.92); }
.bit-content p{ color: rgba(255,255,255,.78); line-height: 1.6; }
/* =========================
HEADER (floating overlay)
========================= */
.bit-header-wrap{
position: fixed;
top: 0; left: 0; right: 0;
z-index: 99999;
transform: translateY(-110%);
opacity: 0;
pointer-events: none;
transition:
transform 0.55s cubic-bezier(.22,.61,.36,1),
opacity 0.55s cubic-bezier(.22,.61,.36,1);
will-change: transform, opacity;
}
.bit-header-wrap.is-visible{
transform: translateY(0);
opacity: 1;
pointer-events: auto;
}
.bit-header{
position: relative !important;
border-radius: 0 0 22px 22px !important;
overflow: hidden !important;
box-shadow: 0 18px 45px rgba(0,0,0,.45) !important;
margin: 0 !important;
}
.bit-header::before{
content:”” !important;
position:absolute !important;
inset:0 !important;
z-index:0 !important;
background: url(“https://brownersitservices.co.uk/wp-content/uploads/2026/08/a422b-background.png”) center/cover no-repeat !important;
filter: contrast(1.7) brightness(1.15) saturate(1.15) !important;
}
.bit-header::after{
content:”” !important;
position:absolute !important;
inset:0 !important;
z-index:1 !important;
background:
radial-gradient(1100px 700px at 20% 15%, rgba(255,255,255,.06), rgba(255,255,255,0) 60%),
linear-gradient(180deg, rgba(0,0,0,.22), rgba(0,0,0,.55)) !important;
}
.bit-header-inner{
position: relative !important;
z-index: 2 !important;
max-width: 1120px;
margin: 0 auto;
padding: 18px 22px;
display: flex;
align-items: center;
gap: 16px;
}
.bit-header-logo{
height: 70px;
width: auto;
flex-shrink: 0;
display:block;
}
/* Desktop pill nav */
.bit-header-nav{
margin-left: auto;
display: flex;
flex-wrap: wrap;
gap: 12px;
}
.bit-header-nav a{
color: rgba(255,255,255,.94) !important;
padding: 10px 14px;
border-radius: 999px;
font-size: 13px;
font-weight: 600;
background: rgba(0,0,0,.30);
border: 1px solid rgba(255,255,255,.18);
text-decoration: none !important;
transition: all .15s ease;
display:inline-block;
white-space: nowrap;
}
.bit-header-nav a:hover{
background: linear-gradient(135deg, #19f3d1, #1cc8ff) !important;
color: #0b1220 !important;
border-color: rgba(25,243,209,.95) !important;
box-shadow:
0 0 0 1px rgba(25,243,209,.6),
0 8px 20px rgba(25,243,209,.35);
transform: translateY(-1px);
}
/* Mobile hamburger */
.bit-burger{
margin-left: auto;
display: none;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
border-radius: 999px;
background: rgba(0,0,0,.30);
border: 1px solid rgba(255,255,255,.18);
cursor: pointer;
transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
color: rgba(255,255,255,.94);
}
.bit-burger:hover{ box-shadow: 0 8px 20px rgba(25,243,209,.20); transform: translateY(-1px); }
.bit-burger:focus-visible{ outline: 3px solid rgba(25,243,209,.55); outline-offset: 2px; }
.bit-burger svg{ width: 20px; height: 20px; display:block; }
/* Mobile dropdown panel */
.bit-mobile-menu{
display: none;
position: relative;
z-index: 2;
padding: 0 22px 18px;
}
.bit-mobile-panel{
background: rgba(0,0,0,.34);
border: 1px solid rgba(255,255,255,.14);
border-radius: 18px;
overflow: hidden;
transform: translateY(-8px);
opacity: 0;
max-height: 0;
transition: max-height .35s cubic-bezier(.22,.61,.36,1), opacity .22s ease, transform .22s ease;
}
.bit-header-wrap.menu-open .bit-mobile-panel{
transform: translateY(0);
opacity: 1;
max-height: 520px;
}
.bit-mobile-panel a{
display: block;
padding: 14px 14px;
color: rgba(255,255,255,.94) !important;
text-decoration: none !important;
border-top: 1px solid rgba(255,255,255,.10);
font-weight: 650;
font-size: 14px;
}
.bit-mobile-panel a:first-child{ border-top: none; }
.bit-mobile-panel a:hover{
background: linear-gradient(135deg, rgba(25,243,209,.22), rgba(28,200,255,.18)) !important;
}
@media (max-width: 900px){
.bit-header-inner{ padding: 14px 16px; }
.bit-header-logo{ height: 56px; }
.bit-header-nav{ display: none; }
.bit-burger{ display: inline-flex; }
.bit-mobile-menu{ display: block; padding: 0 16px 16px; }
}
/* Invisible top hover trigger */
.bit-top-reveal{
position: fixed;
top: 0; left: 0; right: 0;
height: 14px;
z-index: 100000;
background: transparent;
}
/* =========================
CONTENT STYLES
========================= */
.bit-subpage{ display: grid; gap: 14px; }
.bit-panel{
background: rgba(0,0,0,.22);
border: 1px solid rgba(255,255,255,.14);
border-radius: 20px;
padding: 18px;
box-shadow: 0 22px 55px rgba(0,0,0,.22);
backdrop-filter: blur(6px);
}
.bit-hero{
position: relative;
overflow: hidden;
border: 1px solid rgba(255,255,255,.18);
}
.bit-hero::before{
content:””;
position:absolute;
inset:0;
background:
radial-gradient(900px 520px at 15% 10%, rgba(25,243,209,.18), rgba(0,0,0,0) 60%),
radial-gradient(700px 420px at 85% 0%, rgba(28,200,255,.12), rgba(0,0,0,0) 55%);
pointer-events:none;
}
.bit-hero > *{ position: relative; }
.bit-kicker{
display:inline-flex;
align-items:center;
gap: 10px;
padding: 7px 11px;
border-radius: 999px;
border: 1px solid rgba(255,255,255,.18);
background: rgba(0,0,0,.18);
color: rgba(255,255,255,.90);
font-weight: 650;
font-size: 12.5px;
width: fit-content;
}
.bit-dot{
width: 8px; height: 8px;
border-radius: 999px;
background: linear-gradient(135deg, #19f3d1, #1cc8ff);
box-shadow: 0 0 0 3px rgba(25,243,209,.16);
}
.bit-hero h1{
margin: 12px 0 8px;
font-size: clamp(26px, 3.2vw, 40px);
line-height: 1.08;
letter-spacing: -0.02em;
color: rgba(255,255,255,.96);
}
.bit-cta-row{
display:flex;
gap: 10px;
flex-wrap: wrap;
margin-top: 12px;
}
.bit-btn{
display:inline-flex;
align-items:center;
justify-content:center;
padding: 12px 14px;
border-radius: 999px;
font-weight: 800;
font-size: 13.5px;
text-decoration: none !important;
border: 1px solid rgba(255,255,255,.20);
background: rgba(255,255,255,.06);
color: rgba(255,255,255,.96) !important;
transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
white-space: nowrap;
}
.bit-btn:hover{
background: linear-gradient(135deg, #19f3d1, #1cc8ff) !important;
color: #071018 !important;
border-color: rgba(25,243,209,.95) !important;
box-shadow: 0 0 0 1px rgba(25,243,209,.55), 0 14px 30px rgba(25,243,209,.18);
transform: translateY(-1px);
}
/* On-site layout blocks */
.bit-grid{
display:grid;
grid-template-columns: 1fr 1fr;
gap: 14px;
align-items: start;
}
@media (max-width: 980px){
.bit-grid{ grid-template-columns: 1fr; }
}
.bit-card{
border-radius: 20px;
padding: 18px;
border: 1px solid rgba(255,255,255,.16);
background: rgba(0,0,0,.22);
box-shadow: 0 18px 45px rgba(0,0,0,.20);
backdrop-filter: blur(7px);
transform: none !important;
position: relative;
z-index: 0;
}
.bit-card h2{
margin: 0 0 10px;
font-size: 18px;
font-weight: 900;
color: rgba(255,255,255,.94);
}
.bit-list{
margin: 10px 0 0;
padding-left: 18px;
color: rgba(255,255,255,.78);
line-height: 1.6;
}
.price-table{
display:grid;
gap: 10px;
margin-top: 10px;
}
.price-row{
display:flex;
align-items:center;
justify-content: space-between;
gap: 10px;
padding: 12px 12px;
border-radius: 16px;
border: 1px solid rgba(255,255,255,.14);
background: rgba(255,255,255,.04);
}
.price-row span{ color: rgba(255,255,255,.78); font-weight: 700; }
.price-row b{ color: rgba(255,255,255,.94); font-weight: 900; }
/* “What we do” cards */
.rep-grid{
display:grid;
grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
gap: 14px;
margin-top: 10px;
}
.rep-card{
background: rgba(255,255,255,.04);
border: 1px solid rgba(255,255,255,.12);
border-radius: 16px;
padding: 14px;
}
.rep-card h3{
margin: 0 0 8px;
font-size: 15px;
font-weight: 900;
color: rgba(255,255,255,.94);
}
.rep-card ul{
margin: 0;
padding-left: 18px;
color: rgba(255,255,255,.78);
line-height: 1.6;
}
/* Embed wrapper for the booking widget */
.cal-wrap{
border-radius: 18px;
overflow: hidden;
border: 1px solid rgba(255,255,255,.14);
background: rgba(0,0,0,.20);
box-shadow: 0 18px 45px rgba(0,0,0,.18);
padding: 10px;
}
/* Give the embed enough room (script version will size itself) */
.cal-wrap > iframe,
.cal-wrap .ycbm-embed,
.cal-wrap .ycbm-container{
width: 100% !important;
}
/* =========================
FOOTER
========================= */
.bit-footer{
–muted: rgba(255,255,255,.70);
position: relative !important;
border-radius: 22px 22px 0 0 !important;
overflow: hidden !important;
box-shadow: 0 18px 45px rgba(0,0,0,.35) !important;
flex-shrink: 0;
}
.bit-footer::before{
content:”” !important;
position:absolute !important;
inset:0 !important;
z-index:0 !important;
background: url(“https://brownersitservices.co.uk/wp-content/uploads/2026/08/a422b-background.png”) center/cover no-repeat !important;
filter: contrast(1.55) brightness(1.05) saturate(1.1) !important;
}
.bit-footer::after{
content:”” !important;
position:absolute !important;
inset:0 !important;
z-index:1 !important;
background:
radial-gradient(1200px 700px at 15% 10%, rgba(255,255,255,.06), rgba(255,255,255,0) 60%),
linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.78)) !important;
}
.bit-footer-inner{
position: relative !important;
z-index: 2 !important;
max-width: 1120px;
margin: 0 auto;
padding: 34px 22px 18px;
display: grid;
grid-template-columns: 1.2fr .9fr .9fr;
gap: 18px;
}
.bit-footer h3{
margin: 0 0 10px;
font-size: 13px;
letter-spacing: .08em;
text-transform: uppercase;
color: rgba(255,255,255,.82);
}
.bit-footer p, .bit-footer li{
margin: 0;
color: rgba(255,255,255,.70);
font-size: 13.5px;
line-height: 1.55;
}
.bit-footer .panel{
background: rgba(0,0,0,.28);
border: 1px solid rgba(255,255,255,.14);
border-radius: 18px;
padding: 16px 16px 14px;
}
.bit-footer .brand-row{
display:flex;
align-items:center;
gap: 12px;
margin-bottom: 6px;
}
.bit-footer .brand-logo{ height: 44px; width: auto; display:block; }
.bit-footer a{ color: rgba(255,255,255,.90); text-decoration: none !important; }
.bit-footer ul{
list-style: none;
padding: 0;
margin: 0;
display:grid;
gap: 8px;
}
.bit-footer .link{
display:inline-flex;
align-items:center;
gap: 10px;
padding: 10px 12px;
border-radius: 999px;
border: 1px solid rgba(255,255,255,.14);
background: rgba(0,0,0,.22);
transition: all .15s ease;
}
.bit-footer .link:hover{
background: linear-gradient(135deg, #19f3d1, #1cc8ff) !important;
color: #0b1220 !important;
border-color: rgba(25,243,209,.95) !important;
box-shadow:
0 0 0 1px rgba(25,243,209,.55),
0 8px 20px rgba(25,243,209,.30);
transform: translateY(-1px);
}
.bit-footer .small{ color: rgba(255,255,255,.62); font-size: 12.5px; }
.bit-footer-bottom{
position: relative;
z-index: 2;
max-width: 1120px;
margin: 0 auto;
padding: 0 22px 18px;
display:flex;
justify-content: space-between;
gap: 12px;
flex-wrap: wrap;
border-top: 1px solid rgba(255,255,255,.10);
}
.bit-footer-bottom .small{ padding-top: 12px; }
@media (max-width: 980px){
.bit-footer-inner{ grid-template-columns: 1fr; padding: 26px 16px 12px; }
.bit-footer-bottom{ padding: 0 16px 16px; }
}
On-site Service
Home & business visits in the RH postcode area
On-site diagnostics, setup, troubleshooting, Wi-Fi issues, new device installs, and general IT support.
We’ll confirm pricing and the plan before we start.
What we do on-site
Ideal for issues that need hands-on help at your home or workplace. We can also advise on longer-term fixes and upgrades.
Setup & installs
- New PC/laptop setup
- Printers & scanners
- Smart TVs & streaming devices
Wi-Fi & networking
- Slow Wi-Fi investigation
- Router replacement & optimisation
- Mesh Wi-Fi setup
Troubleshooting
- Crashes, freezing, errors
- Software conflicts
- General issues
Security & clean-up
- Malware checks
- Account security review
- Backups & update checks
Pricing
Travel time£30 / hour
Standard labour (07:00–18:00)£60 / hour
Evenings (after 18:00)+25%
- Evening uplift applies to labour time only.
- If parts are needed, we’ll quote before ordering.
Booking info
- Bookable up to 14 days in advance.
- £20 deposit secures the slot (deducted from the final bill).
- If the time shows as unavailable, it’s already booked.
Book an on-site visit
Choose an available date and time below. Appointments can be booked up to
14 days in advance. A £20 deposit is taken
at booking and deducted from your final bill.
(function () {
// Footer year
var yearEl = document.getElementById(‘bitFooterYear’);
if (yearEl) yearEl.textContent = new Date().getFullYear();
const wrap = document.getElementById(‘bitHeaderWrap’);
const header = document.getElementById(‘bitHeader’);
const revealZone = document.querySelector(‘.bit-top-reveal’);
if (!wrap || !header) return;
const showHeader = () => wrap.classList.add(‘is-visible’);
const hideHeader = () => {
if (wrap.classList.contains(‘menu-open’)) return;
wrap.classList.remove(‘is-visible’);
};
const setHeaderHeight = () => {
const h = header.getBoundingClientRect().height || 0;
document.documentElement.style.setProperty(‘–bit-header-h’, h + ‘px’);
};
const settleMeasure = () => {
setHeaderHeight();
requestAnimationFrame(setHeaderHeight);
setTimeout(setHeaderHeight, 120);
setTimeout(setHeaderHeight, 600);
};
settleMeasure();
window.addEventListener(‘load’, settleMeasure);
window.addEventListener(‘resize’, settleMeasure);
const SHOW_AT_TOP_Y = 10;
const START_RULES_Y = 80;
if ((window.scrollY || 0) {
const y = window.scrollY || 0;
if (y <= SHOW_AT_TOP_Y) { showHeader(); lastY = y; return; }
if (y < START_RULES_Y) { showHeader(); lastY = y; return; }
const goingUp = y lastY;
if (goingDown) hideHeader();
if (goingUp) showHeader();
lastY = y;
};
window.addEventListener(‘scroll’, () => {
if (!ticking) {
requestAnimationFrame(() => {
onScroll();
ticking = false;
});
ticking = true;
}
}, { passive: true });
if (revealZone) revealZone.addEventListener(‘mouseenter’, showHeader);
header.addEventListener(‘mouseenter’, showHeader);
const burger = document.getElementById(‘bitBurger’);
const mobilePanel = document.getElementById(‘bitMobilePanel’);
const closeMenu = () => {
wrap.classList.remove(‘menu-open’);
if (burger) {
burger.setAttribute(‘aria-expanded’, ‘false’);
burger.setAttribute(‘aria-label’, ‘Open menu’);
}
setTimeout(setHeaderHeight, 50);
setTimeout(setHeaderHeight, 250);
};
const openMenu = () => {
wrap.classList.add(‘menu-open’);
showHeader();
if (burger) {
burger.setAttribute(‘aria-expanded’, ‘true’);
burger.setAttribute(‘aria-label’, ‘Close menu’);
}
setTimeout(setHeaderHeight, 50);
setTimeout(setHeaderHeight, 250);
};
const toggleMenu = () => {
const isOpen = wrap.classList.contains(‘menu-open’);
if (isOpen) closeMenu(); else openMenu();
};
if (burger) {
burger.addEventListener(‘click’, (e) => {
e.stopPropagation();
showHeader();
toggleMenu();
});
}
document.addEventListener(‘click’, (e) => {
if (!wrap.classList.contains(‘menu-open’)) return;
if (wrap.contains(e.target)) return;
closeMenu();
});
if (mobilePanel) {
mobilePanel.addEventListener(‘click’, (e) => {
const a = e.target.closest(‘a’);
if (a) closeMenu();
});
}
document.addEventListener(‘keydown’, (e) => {
if (e.key === ‘Escape’) closeMenu();
});
window.addEventListener(‘resize’, () => {
if (window.innerWidth > 900) closeMenu();
});
})();