@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(https://bookmycarpetclean.co.uk/fonts/manrope-latin-variable.woff2) format("woff2")} :root{--navy:#062b4f;--blue:#087ed1;--sky:#25b6ee;--ink:#102235;--mist:#eef8ff;--white:#fff;--radius:22px;color:var(--ink);background:#fff;font-family:Manrope,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}
html,body{max-width:100%;overflow-x:clip}body{margin:0;line-height:1.6}
a{color:inherit}
.skip-link{position:absolute;left:-9999px;top:8px;z-index:2000;background:#fff;color:var(--navy);padding:.7rem 1rem;border-radius:8px;font-weight:900}
.skip-link:focus{left:8px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #f4ba25;outline-offset:3px}
img{max-width:100%;height:auto}
.wrap{width:min(1160px,100% - 40px);margin:auto}
.topbar{background:var(--navy);color:#fff;text-align:center;padding:.55rem 1rem;font-size:.9rem}
.topbar a{margin-left:.7rem;font-weight:800}
.brand{color:var(--navy);align-items:center;gap:.7rem;font-weight:900;line-height:1.05;text-decoration:none;display:flex}
.brand img{border-radius:50%}
nav{justify-content:space-between;align-items:center;gap:1.5rem;min-height:88px;display:flex}
.links{gap:1.35rem;display:flex}
.links a{font-size:.94rem;font-weight:700;text-decoration:none}
.mobile-menu{display:none}
.button{background:linear-gradient(135deg,var(--blue),var(--sky));color:#fff;font:inherit;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;padding:.9rem 1.25rem;font-weight:900;text-decoration:none;display:inline-flex;box-shadow:0 10px 24px #087ed12a}
.button.secondary{color:var(--navy);box-shadow:none;background:#fff;border:2px solid #cce7f8}
.small{padding:.7rem 1rem}
.hero{background:linear-gradient(140deg,#eef9ff 0%,#fff 58%);padding:4rem 0 3rem;overflow:hidden}
.hero-grid{grid-template-columns:minmax(0,1.03fr) minmax(0,.97fr);align-items:center;gap:3rem;display:grid}.hero-grid>*{min-width:0}
.eyebrow{color:var(--blue);text-transform:uppercase;letter-spacing:.09em;font-size:.8rem;font-weight:900}
.hero h1,h1{letter-spacing:-.055em;color:var(--navy);margin:.5rem 0 1.2rem;font-size:clamp(2.35rem,5vw,4.4rem);line-height:1.02}
.hero p{max-width:620px;font-size:1.15rem}
.actions{flex-wrap:wrap;gap:.8rem;margin:1.6rem 0;display:flex}.actions .button{max-width:100%;text-align:center;white-space:normal}
.actions.centre{justify-content:center}
.proof{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1.75rem;max-width:760px}.proof-card{min-height:132px;padding:1.1rem 1rem;border:1px solid #cce8f8;border-radius:18px;background:#fff;box-shadow:0 12px 28px #062b4f14;display:flex;flex-direction:column;justify-content:center;transition:transform .2s ease,box-shadow .2s ease}.proof-card strong{display:block;color:var(--navy);font-size:1.05rem;line-height:1.2}.proof-card>span:last-child{margin-top:.3rem;color:#4b647a;font-size:.82rem;font-weight:700;line-height:1.3}.proof-icon{display:block;margin-bottom:.55rem;color:#ffb000;font-size:1rem;font-weight:900;letter-spacing:.06em;line-height:1}.proof-facebook .proof-icon,.proof-guarantee .proof-icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff;font-size:1.1rem;letter-spacing:0}.proof-guarantee{border-color:#9ddbf3;background:linear-gradient(145deg,#eefaff,#fff);text-decoration:none}.proof-guarantee .proof-icon{background:var(--navy)}.proof-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px #062b4f24}
.hero-art{display:block;width:100%;min-width:0;filter:drop-shadow(0 22px 28px #0b45631f);border-radius:28px}
.process-grid{grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2rem;display:grid}.process-grid strong{color:var(--blue);font-size:1.35rem}.commercial-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:2rem;align-items:center}.proof-panel{background:var(--navy);color:#fff;border-radius:24px;padding:1.5rem}.proof-panel>strong{font-size:1.35rem}.proof-panel li{margin:.55rem 0}.result-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem}.result-gallery a{position:relative;overflow:hidden;border-radius:20px;min-height:250px;background:var(--navy);color:#fff}.result-gallery img{width:100%;height:100%;min-height:250px;object-fit:cover;opacity:.84;transition:.2s}.result-gallery span{position:absolute;left:1rem;right:1rem;bottom:1rem;font-weight:900;text-shadow:0 2px 8px #000}.result-gallery a:hover img{opacity:1;transform:scale(1.02)}
.section{padding:4.5rem 0}
.section.alt{background:var(--mist)}
.section h2{letter-spacing:-.04em;color:var(--navy);margin:.3rem 0 1rem;font-size:clamp(1.9rem,3vw,3rem);line-height:1.1}
.lead{max-width:760px;font-size:1.08rem}
.grid{grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2rem;display:grid}
.card{border-radius:var(--radius);background:#fff;border:1px solid #dcecf6;padding:1.5rem;text-decoration:none;box-shadow:0 12px 35px #163f5c0d}
.card h3{color:var(--navy);margin:.15rem 0 .55rem}
.card .arrow{color:var(--blue);font-weight:900}
.reviews blockquote{margin:0}
.reviews footer{color:var(--navy);background:0 0;padding:0;font-weight:900}
.trust{background:var(--navy);color:#fff;text-align:center;border-radius:28px;grid-template-columns:repeat(4,1fr);gap:1rem;padding:2rem;display:grid}
.trust strong{font-size:1.5rem;display:block}
.pagehead{background:var(--mist);padding:4rem 0}
.pagehead h1{max-width:950px;font-size:clamp(2.2rem,4vw,3.8rem)}
.content{max-width:820px}
.content h2{color:var(--navy);margin-top:2.2rem;line-height:1.2}
.crumbs{color:#517088;font-size:.86rem;font-weight:700}
.cta{background:linear-gradient(135deg,var(--navy),#075b91);color:#fff;border-radius:28px;margin-top:2rem;padding:2rem}
.cta h2{color:#fff;margin-top:0}
.quote-form{gap:1rem;max-width:760px;display:grid}
.quote-form label{font-weight:800}
.quote-form input,.quote-form select,.quote-form textarea{width:100%;font:inherit;border:1px solid #b9d4e5;border-radius:12px;margin-top:.35rem;padding:1rem;display:block}
.quote-form textarea{min-height:140px}
.quote-form small{margin-top:.35rem;font-weight:400;display:block}
.quote-form .check{align-items:flex-start;gap:.6rem;font-weight:400;display:flex}
.quote-form .check input{width:auto;margin-top:.35rem}
.hidden-field{position:absolute;left:-9999px}
.case-list{gap:2.2rem;display:grid}
.case-card{background:#fff;border:1px solid #dcecf6;border-radius:28px;grid-template-columns:1.05fr .95fr;gap:2rem;padding:1.2rem;display:grid;box-shadow:0 15px 45px #163f5c10}
.case-images{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}
.case-images.single{grid-template-columns:1fr}
.case-images img{object-fit:cover;border-radius:18px;width:100%;height:100%;max-height:520px}
.case-copy{padding:1rem}
.case-copy h2{font-size:1.8rem}
.case-copy h3{color:var(--navy);margin-bottom:0}
.case-copy p{margin-top:.25rem}
.cookie-banner{z-index:1000;background:#fff;border:1px solid #b9d4e5;border-radius:20px;max-width:620px;padding:.8rem 1rem;position:fixed;bottom:1rem;left:1rem;box-shadow:0 15px 60px #041f3940}
.cookie-banner p{margin:0}
.cookie-banner .actions{margin:.8rem 0 0}
footer{color:#d9edfa;background:#041f39;padding:3rem 0 0}
.footer-grid{grid-template-columns:2fr 1fr 1fr;gap:2rem;display:grid}
.footer-grid p{color:#aac7da}
.copyright{text-align:center;border-top:1px solid #ffffff1f;margin-top:2rem;padding:1rem;font-size:.85rem}
@media (width<=980px){.links{display:none}
.mobile-menu{display:block;position:relative}
.mobile-menu summary{cursor:pointer;color:var(--navy);font-weight:900}
.mobile-menu>div{z-index:20;background:#fff;border:1px solid #dcecf6;border-radius:16px;width:220px;padding:.75rem;display:grid;position:absolute;top:2rem;right:0;box-shadow:0 16px 45px #041f3925}
.mobile-menu a{padding:.55rem;font-weight:800;text-decoration:none}
.hero-grid,.footer-grid,.case-card,.commercial-grid{grid-template-columns:1fr}
.grid{grid-template-columns:repeat(2,1fr)}
.hero-art{order:0;max-width:640px;margin:auto}
.process-grid{grid-template-columns:1fr 1fr}
.trust{grid-template-columns:1fr 1fr}
.hero{padding-top:2rem}
.section{padding:3.2rem 0}
}
@media (width<=560px){.wrap{width:calc(100% - 24px);max-width:1160px}
.brand span{font-size:.75rem}
.brand img{width:42px}
.small{font-size:.8rem}
nav>.button{display:none}
.grid,.trust,.case-images,.process-grid,.result-gallery,.proof{grid-template-columns:minmax(0,1fr)}
.proof-card{min-height:112px;padding:1rem 1.1rem}
.hero{padding-top:1.5rem}.hero h1{font-size:clamp(2rem,11vw,2.65rem);overflow-wrap:normal}.hero p{font-size:1.02rem}.hero .actions{display:grid;grid-template-columns:minmax(0,1fr)}.hero .actions .button{width:100%}.hero-art{margin-top:.5rem}.cookie-banner{right:4.5rem;bottom:.65rem;left:.65rem;font-size:.84rem}.cookie-banner .actions{gap:.4rem}.cookie-banner .button{padding:.55rem .7rem}
.whatsapp-float span{display:none}
}
:where(.quote-form fieldset){border:1px solid #b9d4e5;border-radius:14px;gap:.8rem;padding:1rem;display:grid}
:where(.quote-form legend){color:var(--navy);padding:0 .35rem;font-weight:900}
.social-links{flex-wrap:wrap;gap:.55rem;display:flex}
.social-links a{border:1px solid #ffffff40;border-radius:999px;padding:.45rem .75rem;font-size:.85rem;font-weight:800;text-decoration:none;display:inline-flex}
.social-links a:hover{color:var(--navy);background:#fff}
.whatsapp-float{z-index:20;color:#fff;background:#1fa855;border-radius:999px;align-items:center;gap:.55rem;padding:.75rem 1rem;font-weight:900;text-decoration:none;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 12px 30px #062b4f44}
.whatsapp-float svg{width:25px;height:25px}
.instagram-embed-wrap{max-width:660px;min-height:250px;margin:2rem 0}
.instagram-media{background:#fff;border:1px solid #dcecf6!important;border-radius:18px!important;width:100%!important;min-width:0!important;margin:0!important}
.instagram-media>a{color:var(--blue);text-align:center;padding:2rem;font-weight:900;display:block}
@media (width<=480px){.whatsapp-float{bottom:12px;right:12px}
.whatsapp-float span{font-size:.85rem}
}
.coverage-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center}
.coverage-regions{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:1.8rem}
.coverage-regions h3{color:var(--navy);margin:0 0 .35rem}
.coverage-regions p{margin:0}
.coverage-regions a{color:#086fab;font-weight:750;text-decoration-thickness:1px;text-underline-offset:3px}
.coverage-map{background:linear-gradient(145deg,#eef9ff,#d9f1ff);border:1px solid #c6e5f7;border-radius:28px;padding:1.25rem;box-shadow:0 18px 48px #163f5c16}
.map-stage{position:relative;max-width:430px;margin:auto;overflow:hidden;border-radius:20px;background:#dff3ff}
.map-stage img{display:block;width:100%;height:auto}
.service-zone{position:absolute;left:47%;top:70%;width:33%;height:13%;border:3px dashed #087ed1;border-radius:50%;background:#25b6ee70;box-shadow:0 0 0 7px #fff7}
.map-label{position:absolute;z-index:2;color:#062b4f;background:#fff;border:2px solid #087ed1;border-radius:999px;padding:.12rem .42rem;font-size:clamp(.62rem,1.4vw,.78rem);font-weight:900;line-height:1.2;box-shadow:0 3px 8px #062b4f33;transform:translate(-50%,-50%)}
.map-label.stirling{left:58%;top:69%}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.42rem}
.crumbs a{color:#086fab;text-underline-offset:3px}
.crumbs [aria-current="page"]{color:#3e6078}
.local-proof{background:linear-gradient(145deg,#eef9ff,#fff);border:1px solid #cce7f8;border-radius:24px;margin:2rem 0;padding:1.5rem}
.local-proof h2{margin-top:0}
.proof-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:1rem 0 0;padding:0;list-style:none}
.proof-links a{height:100%;display:block;background:#fff;border:1px solid #d4eaf7;border-radius:16px;padding:1rem;color:var(--navy);font-weight:850;text-decoration:none;box-shadow:0 8px 22px #163f5c0d}
.proof-links a span{display:block;color:#4d697c;margin-top:.3rem;font-size:.84rem;font-weight:650}
.proof-links a:hover{border-color:var(--blue);transform:translateY(-2px)}
.case-filter-panel{background:#fff;border-bottom:1px solid #dcecf6;padding:1.3rem 0}
.case-filter-panel h2{font-size:1.35rem;margin:0 0 .8rem}
.case-filter-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:end}
.case-filter-controls label{color:var(--navy);font-weight:850;display:grid;gap:.3rem;min-width:min(260px,100%)}
.case-filter-controls select{background:#fff;border:1px solid #b9d4e5;border-radius:12px;padding:.8rem;font:inherit;color:var(--ink)}
.case-filter-status{margin:.75rem 0 0;color:#4d697c;font-weight:700}
.case-card[hidden]{display:none}
@media (width<=700px){.proof-links{grid-template-columns:1fr}.case-filter-controls{display:grid}.case-filter-controls label{min-width:0}}
.map-label.glasgow{left:54%;top:76%}
.map-label.heartlands{left:61%;top:75%;background:#ffdb65;border-color:#062b4f}
.map-label.edinburgh{left:68%;top:76%}
.map-label.lanarkshire{left:58%;top:80%}
.map-key{display:flex;justify-content:center;align-items:center;gap:.55rem;color:#31566f;font-size:.9rem;font-weight:800}
.map-key span{width:18px;height:12px;background:linear-gradient(135deg,#25b6ee,#087ed1);border-radius:999px;display:inline-block}
.map-credit{display:block;color:#57758a;text-align:center;margin:.55rem auto 0;max-width:430px;font-size:.68rem;line-height:1.35}
.postcode-checker{background:#f4fbff;border:1px solid #c6e5f7;border-radius:20px;margin-top:2rem;padding:1.2rem}
.postcode-checker h3{color:var(--navy);margin:0}
.postcode-checker>p{margin:.25rem 0 .85rem}
.postcode-checker form{display:flex;gap:.65rem;align-items:stretch}
.postcode-checker input{min-width:0;flex:1;border:2px solid #9ecfe9;border-radius:999px;padding:.85rem 1rem;font:inherit;text-transform:uppercase}
.postcode-checker input:focus{outline:3px solid #25b6ee55;border-color:var(--blue)}
.postcode-result{display:grid;gap:.15rem;border-radius:14px;margin-top:.8rem;padding:.85rem 1rem}
.postcode-result strong,.postcode-result span{display:block}
.postcode-result.covered{background:#e6f8ed;color:#145b31;border:1px solid #9ad7af}
.postcode-result.maybe{background:#fff7dc;color:#684f00;border:1px solid #ead17a}
.postcode-result.outside,.postcode-result.unknown{background:#fff0ee;color:#77291f;border:1px solid #e9aaa2}
.postcode-result a{font-weight:900}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (width<=980px){.coverage-grid{grid-template-columns:1fr}.coverage-map{max-width:620px}.coverage-regions{grid-template-columns:1fr 1fr}}
@media (width<=620px){.coverage-regions{grid-template-columns:1fr}.coverage-grid{gap:1.7rem}.coverage-map{padding:.65rem}.postcode-checker form{display:grid}.postcode-checker .button{width:100%}}
