@font-face{font-family:Archivo;src:url(../fonts/archivo.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
:root{--ink:#0e1f47;--hdr:8.45rem;--blue:#31328c;--bar:#22262e;--blue-d:#0d2f78;--red:#d3202c;--red-d:#b01822;--ground:#fff;--mist:#edf0f4;--line:#c9d0db;--muted:#4c586d;--g:clamp(20px,4.6vw,8rem);--font:Archivo,system-ui,-apple-system,"Segoe UI",sans-serif;--sec:clamp(4rem,8vw,8.5rem);--ease:cubic-bezier(.16,1,.3,1)}
*,*::before,*::after{box-sizing:border-box}
/* Superwide: the whole page scales up, it never strands a column */
html{font-size:100%;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:6rem}
@media (min-width:1800px){html{font-size:112.5%}}
@media (min-width:2300px){html{font-size:131.25%}}
@media (min-width:3000px){html{font-size:162.5%}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--ground);color:var(--ink);font:400 1.0625rem/1.6 var(--font);-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:.2em}
h1,h2,h3{font-weight:800;font-stretch:106%;line-height:1.08;letter-spacing:-.01em;margin:0 0 .5em;text-wrap:balance}
h1{font-size:clamp(2.6rem,6.2vw,6rem)}
h2{font-size:clamp(1.9rem,3.1vw,3.1rem);text-transform:uppercase}
.big{font-size:clamp(2.1rem,4.4vw,4.4rem)}
h3{font-size:1.2rem;font-stretch:105%}
p{margin:0 0 1em}
ul,ol,dl,dd{margin:0;padding:0;list-style:none}
address{font-style:normal}
::selection{background:var(--blue);color:#fff}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.wrap{margin-inline:var(--g)}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:.7rem 1rem;z-index:50}
.skip:focus{left:.6rem;top:.6rem}
.lede{font-size:clamp(1.15rem,1.55vw,1.5rem);line-height:1.42;max-width:44ch}
.sec{padding-block:var(--sec)}
/* logo block */
.mark{display:grid;line-height:1;color:#fff;text-transform:uppercase}
.mark-a{font-size:1.35rem;font-weight:800;font-stretch:112%;white-space:nowrap}
.mark-b{font-size:.74rem;font-weight:600;letter-spacing:.42em;margin-top:.3rem}
/* buttons: square like signage, one label per job */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:3.4rem;padding:0 1.7rem;border:2px solid var(--ink);background:var(--ink);color:#fff;font:700 1.03rem var(--font);font-stretch:108%;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .2s var(--ease)}
.btn i{transition:transform .25s var(--ease)}
.btn:hover i.fa-arrow-right{transform:translateX(.25rem)}
.btn:hover{background:var(--blue);border-color:var(--blue)}
.btn:active{transform:translateY(1px)}
.btn-sm{min-height:2.85rem;padding:0 1.15rem;font-size:.97rem}
.btn-red{background:var(--red);border-color:var(--red)}
.btn-red:hover{background:var(--red-d);border-color:var(--red-d)}
.btn-white{background:var(--red);border-color:var(--red);color:#fff}
.btn-white:hover{background:var(--red-d);border-color:var(--red-d)}
.btn-ghost{background:transparent;border-color:#fff;color:#fff}
.btn-ghost:hover{background:#fff;border-color:#fff;color:var(--ink)}
.btn-line{background:transparent;color:var(--ink)}
.btn-line:hover{color:#fff}
.btns{display:flex;flex-wrap:wrap;gap:.75rem}
.more{display:inline-flex;align-items:center;gap:.55rem;font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--red);text-underline-offset:.28em}
.more i{transition:transform .25s var(--ease)}
.more:hover i{transform:translateX(.25rem)}
/* header */
.site-head{position:sticky;top:0;z-index:30;background:#fff;box-shadow:0 2px 12px rgba(14,31,71,.12)}
.top{display:flex;align-items:stretch;justify-content:space-between;min-height:5.2rem}
.brand{display:flex;align-items:center;background:#0b0c0e;padding:.7rem clamp(1.1rem,2.5vw,2.5rem) .7rem var(--g);text-decoration:none}
.logo{display:block;height:3.8rem;width:auto}
.foot .logo{height:3.8rem}
.ticker{flex:1;min-width:0;align-self:center;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 2.5rem,#000 calc(100% - 2.5rem),transparent)}
.ticker-track{display:flex;width:max-content;min-width:200%;animation:ticker var(--t,20s) linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker ul{flex:1 0 50%;display:flex;justify-content:space-around;gap:3rem;padding-inline:1.5rem;white-space:nowrap;font-weight:800;font-stretch:106%;font-size:1.05rem;text-transform:uppercase;letter-spacing:.02em;color:var(--red)}
@keyframes ticker{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ticker-track{min-width:0;width:auto}.ticker ul[aria-hidden]{display:none}.ticker ul{flex-wrap:wrap;justify-content:center;gap:0 2rem;white-space:normal}}
.top-r{display:flex;align-items:center;gap:clamp(.9rem,2vw,2.25rem);padding-inline:1rem var(--g)}
.top-link{display:inline-flex;align-items:center;gap:.6rem;font-weight:700;text-decoration:none;white-space:nowrap}
.top-link i{display:grid;place-items:center;width:2.2rem;height:2.2rem;border:2px solid var(--ink);border-radius:50%;font-size:.85rem}
.top-link:hover{color:var(--red)}
.top-r .btn{min-height:2.9rem;padding:0 1.25rem}
.nav{display:flex;gap:.25rem;background:var(--bar);padding-inline:var(--g)}
.nav a{padding:.8rem 1.1rem;color:#fff;text-decoration:none;font-weight:700;font-size:.92rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-bottom:3px solid transparent}
.nav a:hover,.nav a[aria-current]{background:#30353f;border-bottom-color:var(--red)}
.menu-btn{display:none;align-items:center;gap:.5rem;min-height:2.85rem;padding:0 .85rem;background:none;border:2px solid var(--ink);font:700 .95rem var(--font);color:var(--ink);cursor:pointer}
.sheet{position:sticky;top:5.2rem;z-index:29;background:#fff;border-bottom:1px solid var(--line);padding:.5rem var(--g) 1.4rem;display:grid;gap:.6rem}
.sheet[hidden]{display:none}
.sheet nav{margin-bottom:.6rem}
.sheet nav a{display:block;padding:.75rem 0;font-size:1.25rem;font-weight:800;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--line)}
.sheet nav a[aria-current]{color:var(--red)}
/* heroes: bright room, dark panel */
.hero,.phero{position:relative;isolation:isolate;overflow:hidden;background:var(--bar);color:#fff;display:flex;align-items:center}
.hero>img,.phero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}
.vp{display:flex;flex-direction:column;height:calc(100svh - var(--hdr));min-height:31rem}
.hero{flex:1;min-height:0}
.hero-in,.phero-in{flex:1;padding-block:clamp(2rem,4vw,4rem)}
.panel{width:fit-content;max-width:min(47rem,100%);background:rgba(20,23,29,.86);padding:clamp(1.5rem,2.6vw,2.75rem)}
.panel h1{font-size:clamp(2.1rem,3.6vw,3.2rem);text-transform:uppercase;margin:0 0 .4em}
.panel p{font-size:clamp(1.05rem,1.3vw,1.25rem);line-height:1.4;margin:0 0 1.25rem;max-width:32ch}
.phero{min-height:clamp(22rem,50svh,44rem)}
.phero.is-short{min-height:clamp(14rem,28svh,22rem)}
.phero .panel p:last-child{margin:0}
.crumbs{display:flex;gap:.5rem;font-size:.9rem;margin-bottom:.7rem;color:#e6e8ec}
.phero .btns{margin-top:1.1rem}
/* benefits strip */
.strip{display:grid;grid-template-columns:repeat(4,1fr);background:#3a3f49;color:#fff}
.strip a{display:flex;align-items:center;gap:.9rem;padding:clamp(1.1rem,1.8vw,1.9rem) clamp(1rem,2vw,2.25rem);text-decoration:none;line-height:1.25;transition:background .2s}
.strip a:hover{background:#2c3038}
.strip a.is-red{background:var(--red)}
.strip a.is-red:hover{background:var(--red-d)}
.strip i{font-size:clamp(1.7rem,2.2vw,2.3rem);width:1.3em;text-align:center}
.strip strong{display:block;text-transform:uppercase;font-size:clamp(.95rem,1.1vw,1.1rem);letter-spacing:.02em}
.strip span{font-size:.95rem}
/* products */
.centre{text-align:center;margin-bottom:clamp(1.5rem,3vw,3rem)}
.products{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.75rem,1.4vw,1.5rem)}
.products a{position:relative;display:block;overflow:hidden;color:#fff;text-decoration:none;background:var(--bar)}
.products img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .7s var(--ease)}
.products a:hover img{transform:scale(1.04)}
.products span{position:absolute;left:0;right:0;bottom:0;padding:.85rem 1.1rem;background:rgba(20,23,29,.82);text-transform:uppercase;font-weight:800;font-size:clamp(.98rem,1.2vw,1.2rem);letter-spacing:.02em;transition:background .2s}
.products a:hover span{background:var(--red)}
/* home visit */
.visit-sec{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;background:#fff}
.visit-img{position:relative;min-height:30rem}
.visit-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.visit-copy{padding:clamp(3rem,6vw,6.5rem) var(--g) clamp(3rem,6vw,6.5rem) clamp(2rem,5vw,6rem);align-self:center}
.how{display:grid;grid-template-columns:auto 1fr;gap:1rem 1.75rem;margin:1.75rem 0 2rem}
.how dt{font-weight:800;white-space:nowrap}
.how dd{color:var(--muted);max-width:38ch}
/* map */
.mapsec{position:relative}
.shop-map{width:100%;object-fit:cover}
.mapsec .shop-map{height:clamp(30rem,46vw,52rem)}
.map-panel{position:absolute;left:var(--g);bottom:clamp(1.5rem,3vw,3.5rem);background:#fff;padding:clamp(1.5rem,2.5vw,2.5rem);width:min(26rem,calc(100% - 2*var(--g)))}
.map-panel h2{font-size:clamp(1.7rem,2.4vw,2.4rem)}
.hours{color:var(--muted);margin-top:.6rem}
.credit{font-size:.78rem;color:var(--muted);margin:.8rem 0 0}
.credit a{color:inherit}
/* areas */
.areas-sec{padding-block:var(--sec)}
.areas-in{display:grid;grid-template-columns:5fr 8fr;gap:clamp(2rem,5vw,6rem);align-items:center}
.areas-wide{padding-top:var(--sec)}
.towns{display:grid;grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));gap:1.5rem 2rem;margin-top:2.75rem}
.towns li{display:grid;gap:.1rem;scroll-margin-top:7rem}
.towns li:target strong{color:var(--red)}
.towns strong{font-size:1.3rem;font-weight:800;font-stretch:108%}
.towns span{color:var(--muted);font-size:.95rem}
/* close */
.close{position:relative;isolation:isolate;overflow:hidden;background:var(--bar);color:#fff;padding-block:clamp(3.5rem,6vw,6.5rem)}
.close>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.close::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(20,23,29,.78)}
.close-in{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem 3rem}
.close h2{margin:0}
/* flooring page */
.ranges{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,4vw,4.5rem) clamp(1.5rem,3vw,3.5rem);padding-block:var(--sec)}
.range{scroll-margin-top:8rem}
.range img{width:100%;aspect-ratio:16/10;object-fit:cover;margin-bottom:1.25rem}
.range h2{font-size:clamp(1.6rem,2.2vw,2.3rem);margin-bottom:.35em}
.range p{max-width:60ch}
/* work */
.work-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.work-grid a{position:relative;display:block;overflow:hidden;background:var(--mist)}
.work-grid img{width:100%;aspect-ratio:1;object-fit:cover;transition:transform .8s var(--ease)}
.work-grid a:hover img{transform:scale(1.035)}
.work-cap{display:block;position:absolute;left:0;right:0;bottom:0;padding:2rem .9rem .7rem;color:#fff;font-size:.95rem;background:linear-gradient(0deg,rgba(9,20,48,.85),transparent)}
.lb{border:0;padding:0;background:none;max-width:94vw;max-height:94vh;color:#fff}
.lb::backdrop{background:rgba(9,20,48,.93)}
.lb img{max-width:94vw;max-height:84vh;width:auto;margin:auto}
.lb p{margin:.6rem 0 0;text-align:center}
.lb button{position:fixed;top:.9rem;right:.9rem;width:3rem;height:3rem;border:0;background:#fff;color:var(--ink);font-size:1.2rem;cursor:pointer}
/* legal */
.entry{max-width:72ch}
@media (min-width:1200px){.entry.cols{max-width:none;columns:2;column-gap:clamp(3rem,6vw,8rem)}.entry.cols h2{break-after:avoid;margin-top:0;padding-top:1.4em}.entry.cols p{break-inside:avoid}}
.entry h2{font-size:1.5rem;margin-top:1.7em}
.details{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1.4rem}.details dt{font-weight:700}
.muted{color:var(--muted);font-size:.95rem}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.75rem 2rem;margin-bottom:2rem}
.sec-head .big{margin:0}
/* forms */
.contact-grid{display:grid;grid-template-columns:7fr 5fr;gap:clamp(2.5rem,6vw,7rem);align-items:start}
.form h2{font-size:clamp(1.8rem,2.8vw,2.8rem);margin-bottom:.3em}
.form-lede{color:var(--muted);margin-bottom:1.75rem}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.field{display:grid;gap:.4rem;border:0;padding:0;margin:0;min-width:0;align-content:start}
.field.full{grid-column:1/-1}
.field label,.field legend{font-weight:700;padding:0}
.field legend{margin-bottom:.45rem}
.opt{font-weight:400;color:var(--muted);font-size:.92em}
.form input:not([type=checkbox]):not([type=file]),.form textarea,.cap-form input{width:100%;min-height:3.25rem;padding:.75rem .9rem;font:inherit;color:inherit;background:#fff;border:2px solid #8592a6;border-radius:0}
.form input::placeholder{color:#5c6779}
.form input:focus,.form textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 2px var(--blue)}
[aria-invalid=true]{border-color:var(--red)!important}
.fld-err{color:var(--red-d);font-size:.92rem;font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip input{position:absolute;opacity:0;width:0;height:0}
.chip span{display:inline-flex;align-items:center;min-height:2.85rem;padding:0 1rem;border:2px solid #8592a6;cursor:pointer;font-weight:600;transition:background .15s,color .15s,border-color .15s}
.chip input:checked+span{background:var(--blue);border-color:var(--blue);color:#fff}
.chip input:focus-visible+span{outline:3px solid var(--red);outline-offset:2px}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.form-foot{display:flex;flex-wrap:wrap;gap:.9rem 1.25rem;align-items:center;margin-top:1.5rem}
.form-foot p{margin:0;font-size:.92rem;color:var(--muted);flex:1 1 14rem}
.form-msg{display:flex;gap:.75rem;padding:.9rem 1rem;margin-bottom:1.25rem}
.form-msg i{margin-top:.3rem}.form-msg p{margin:0}
.is-ok{background:#e4f2e6;color:#174a20}.is-err{background:#fbe7e8;color:#7d121a}
.cf-turnstile{margin-top:1rem}
.contact-side h2{font-size:clamp(1.8rem,2.8vw,2.8rem)}
.contact-side h3{margin-top:2rem;margin-bottom:.4rem}
.big-tel{font-size:clamp(1.9rem,2.8vw,2.8rem);font-weight:800;font-stretch:112%;letter-spacing:-.02em;text-decoration:none}
.big-tel:hover{color:var(--red)}
.warehouse{width:100%;height:auto;margin-block:.4rem 1.1rem}
.contact-side .shop-map{aspect-ratio:3/2;margin-top:1.25rem}
.side-foot{margin-top:.9rem}
/* upload */
.upload .form{display:grid;gap:1.1rem;max-width:44rem}
.upload .login{max-width:28rem;margin-inline:auto}
.upload .form:not(.login),.upload-top{margin-inline:auto}
.upload>h2{text-align:center}
.upload-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;max-width:44rem}
.upload-top h2,.login h2{font-size:clamp(1.8rem,2.8vw,2.8rem);margin:0}
.keep{display:flex;gap:.5rem;align-items:center}
.linkish{background:none;border:0;padding:.5rem 0;font:700 .97rem var(--font);color:var(--ink);text-decoration:underline;cursor:pointer}
.danger{color:var(--red-d)}
.upload>h2{margin-top:2.75rem}
.manage{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1.25rem}
.manage img{width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:.5rem}
.cap-form{display:flex;gap:.6rem;align-items:center}
.cap-form input{flex:1;min-width:0;min-height:2.6rem;padding:.35rem .6rem}
/* footer */
.foot{background:var(--bar);color:#fff;padding:3.5rem 0 1.75rem}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1.4fr;gap:2.25rem}
.foot address{margin-top:1.1rem}
.foot h2{font-size:1rem;font-stretch:108%;letter-spacing:0;margin-bottom:.8rem}
.foot li{margin-bottom:.45rem}
.foot a{text-decoration:none}.foot a:hover{text-decoration:underline}
.legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 2rem;margin-top:2.75rem;padding-top:1.1rem;border-top:1px solid rgba(255,255,255,.22);font-size:.86rem;color:rgba(255,255,255,.8)}
.bar{display:none}
/* responsive */
@media (max-width:1040px){:root{--hdr:5.2rem}.nav,.hide-s{display:none!important}.menu-btn{display:inline-flex}.strip{grid-template-columns:1fr 1fr}.products{grid-template-columns:1fr 1fr}}
@media (max-width:860px){
 .visit-sec,.areas-in,.contact-grid{grid-template-columns:1fr}
 .visit-img{min-height:0;aspect-ratio:4/3}
 .visit-copy{padding:3.25rem var(--g)}
 .work-grid{grid-template-columns:repeat(3,1fr)}
 .foot-grid{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}
 .mapsec .shop-map{height:24rem}
 .map-panel{position:static;width:auto;padding:1.75rem var(--g)}
}
@media (max-width:640px){
 body{padding-bottom:4.5rem}
 body.page-upload{padding-bottom:0}
 .bar{display:grid;grid-template-columns:1fr 1.7fr;gap:.5rem;position:fixed;left:0;right:0;bottom:0;z-index:25;padding:.5rem .6rem calc(.5rem + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line)}
 .bar .btn{padding:0 .6rem;min-height:3.1rem}
 .logo{height:auto;width:min(13rem,50vw)}
 .brand{padding:.5rem .7rem .5rem var(--g)}
 .brand{padding-right:.6rem}
 .top{min-height:3.9rem}.sheet{top:3.9rem}
 .top-r{gap:.5rem;padding-inline:.5rem .75rem}
 .top-link{font-size:0;gap:0}.top-link i{font-size:.85rem}
 .menu-btn{padding:0 .6rem}
 :root{--hdr:10.7rem}
 .top{flex-wrap:wrap}
 .brand{flex:1 1 auto}
 .ticker{order:3;flex:1 0 100%;padding-block:.45rem;background:var(--mist);mask-image:none}
 .ticker ul{font-size:.9rem}
 .sheet{top:6.3rem!important}
 .phero{display:block;min-height:0}
 .hero{display:flex;flex-direction:column;align-items:stretch}
 .phero>img{position:static;height:15rem}
 .hero>img{position:static;flex:1;min-height:0;height:0}
 .hero-in{flex:none}
 .panel h1{font-size:1.85rem}
 .panel{padding:1.1rem 1.25rem}
 .panel p{margin-bottom:.8rem;font-size:1rem}
 .panel .btn{min-height:3rem}
 .vp{min-height:27rem}
 .hero-in,.phero-in{padding:0;margin:0}
 .panel{width:100%;max-width:none;background:var(--bar)}
 .phero.is-short>img{height:8rem}
 .panel .btn{width:100%}
 .strip a{padding:1rem .85rem;gap:.6rem}
 .strip i{font-size:1.4rem}
 .strip span{font-size:.84rem}.strip strong{font-size:.86rem}
 .ranges{grid-template-columns:1fr}
 .products{gap:.5rem}
 .products span{padding:.55rem .7rem;font-size:.9rem}
 .how{grid-template-columns:1fr;gap:.2rem}.how dd{margin-bottom:.9rem}
 .fgrid{grid-template-columns:1fr}
 .work-grid{grid-template-columns:1fr 1fr}
 .towns{grid-template-columns:1fr 1fr}
 .foot-grid{grid-template-columns:1fr}
 .form-foot .btn,.close .btn{width:100%}
 .close .btns{width:100%}
}
/* ============================================== coverage map (Mako map kit)
   Real boroughs + motorways (OpenStreetMap) under the town links.
   Theme it with the --mp-* custom properties on .area-map (defaults: navy + yellow). */
.area-map {
	--mp-bg: #0c1638; --mp-land: #111d47; --mp-edge: #2a3870; --mp-home: #1a2a6b; --mp-home-edge: #5d70d6;
	--mp-water: #0a2a52; --mp-road: #7f8fd9; --mp-shield: #2b3d9b; --mp-accent: #ffcd2e; --mp-text: #e6e9fa;
	--mp-muted: #b7bfdc; --mp-faint: #4f5d96; --mp-font: var(--font-head); --mp-radius: var(--radius-lg, 18px);
	position: relative; margin: 0; padding: 0; overflow: hidden; background: var(--mp-bg);
	border: 1px solid rgba(255, 255, 255, .1); border-radius: var(--mp-radius); box-shadow: 0 30px 70px rgba(6, 11, 32, .35);
}
.area-map svg.mp { display: block; width: 100%; height: auto; max-height: none; }
.mp-sea { fill: var(--mp-bg); }
.mp-boro { fill: var(--mp-land); stroke: var(--mp-edge); stroke-width: 1.2; stroke-linejoin: round; }
.mp-boro.is-home { fill: var(--mp-home); stroke: var(--mp-home-edge); stroke-width: 1.6; }
.mp-water { fill: var(--mp-water); stroke: none; }
.mp-coast { fill: none; stroke: var(--mp-water); stroke-width: 8; stroke-linecap: round; stroke-linejoin: round; }
.mp-river { fill: none; stroke: var(--mp-water); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.mp-river.is-big { stroke-width: 3.2; }
.mp-boro-l { fill: var(--mp-faint); font: 700 calc(10px * var(--mp-scale, 1)) var(--mp-font); letter-spacing: .16em; text-anchor: middle; pointer-events: none; paint-order: stroke; stroke: var(--mp-bg); stroke-width: 4px; }
.mp-mway-c { fill: none; stroke: var(--mp-bg); stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
.mp-mway { fill: none; stroke: var(--mp-road); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; opacity: .75; }
.mp-shield rect { fill: var(--mp-shield); stroke: #fff; stroke-width: 1.2; }
.mp-shield text { fill: #fff; font: 800 calc(10.5px * var(--mp-scale, 1)) var(--mp-font); text-anchor: middle; }
.mp-glow-a { stop-color: var(--mp-accent); stop-opacity: .16; }
.mp-glow-b { stop-color: var(--mp-accent); stop-opacity: .06; }
.mp-glow-c { stop-color: var(--mp-accent); stop-opacity: 0; }
.mp-ring { fill: none; stroke: var(--mp-accent); stroke-opacity: .35; stroke-width: 1.2; stroke-dasharray: 3 6; }
.mp-ring.is-outer { stroke-opacity: .75; stroke-width: 1.8; stroke-dasharray: 8 6; }
.mp-ring-l { fill: var(--mp-accent); font: 800 calc(11px * var(--mp-scale, 1)) var(--mp-font); letter-spacing: .08em; text-anchor: middle; text-transform: uppercase; paint-order: stroke; stroke: var(--mp-bg); stroke-width: 4px; }
.mp-line { stroke: var(--mp-accent); stroke-width: 2.2; stroke-dasharray: 6 5; }
.mp-town { cursor: pointer; }
.mp-hit { fill: transparent; }
.mp-dot { fill: #fff; stroke: var(--mp-bg); stroke-width: 2.5; transition: r .2s ease, fill .2s ease; }
.mp-name { fill: var(--mp-text); font: 700 calc(13.5px * var(--mp-scale, 1)) var(--mp-font); paint-order: stroke; stroke: var(--mp-bg); stroke-width: 4px; stroke-linejoin: round; transition: fill .2s ease; }
.mp-town:hover .mp-dot, .mp-town:focus-visible .mp-dot { fill: var(--mp-accent); r: 8; }
.mp-town:hover .mp-name, .mp-town:focus-visible .mp-name { fill: var(--mp-accent); }
.mp-town:focus-visible, .mp-pin:focus-visible { outline: none; }
.mp-town.is-current .mp-dot { fill: var(--mp-accent); }
.mp-town.is-current .mp-name { fill: var(--mp-accent); font-size: calc(15px * var(--mp-scale, 1)); }
.mp-halo { fill: var(--mp-accent); fill-opacity: .22; }
.mp-pin-body { fill: var(--mp-accent); stroke: var(--mp-bg); stroke-width: 2; }
.mp-pin-dot { fill: var(--mp-bg); }
.mp-pin-pulse { fill: var(--mp-accent); fill-opacity: .35; transform-box: fill-box; transform-origin: center; }
.mp-pin-l { fill: #fff; font: 900 calc(17px * var(--mp-scale, 1)) var(--mp-font); paint-order: stroke; stroke: var(--mp-bg); stroke-width: 4px; }
.mp-pin-s { fill: var(--mp-accent); font: 700 calc(10.5px * var(--mp-scale, 1)) var(--mp-font); letter-spacing: .12em; text-transform: uppercase; paint-order: stroke; stroke: var(--mp-bg); stroke-width: 4px; }
a.mp-pin:hover .mp-pin-l { fill: var(--mp-accent); }
@media (prefers-reduced-motion: no-preference) {
	.mp-pin-pulse { animation: mp-pulse 2.6s ease-out infinite; }
	.mp-halo { animation: mp-pulse 2.6s ease-out infinite; transform-box: fill-box; transform-origin: center; }
}
@keyframes mp-pulse { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(2.4); opacity: 0; } }
.mp-uk-wrap { position: absolute; top: .85rem; left: .85rem; z-index: 1; width: clamp(4.5rem, 14%, 6.25rem); padding: .45rem; border-radius: 12px; background: rgba(6, 11, 32, .78); border: 1px solid rgba(255, 255, 255, .12); backdrop-filter: blur(4px); }
.mp-uk-wrap.is-right { left: auto; right: .85rem; }
.mp-uk { display: block; width: 100%; height: auto; overflow: visible; }
.mp-uk-ie { fill: color-mix(in srgb, var(--mp-land) 70%, #fff 6%); }
.mp-uk-gb { fill: var(--mp-shield); stroke: var(--mp-road); stroke-width: .6; }
.mp-uk-box { fill: var(--mp-accent); fill-opacity: .25; stroke: var(--mp-accent); stroke-width: 1.2; }
.mp-uk-pin { fill: var(--mp-accent); stroke: var(--mp-bg); stroke-width: 1.2; }
.area-map figcaption { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1.1rem; margin: 0; padding: .8rem 1.1rem .9rem; border-top: 1px solid rgba(255, 255, 255, .08); color: var(--mp-muted); font-size: .82rem; line-height: 1.35; text-align: left; }
.mp-key { display: inline-flex; align-items: center; gap: .45rem; }
.mp-key i { display: inline-block; flex: none; }
.k-dot { width: .6rem; height: .6rem; border-radius: 50%; background: #fff; box-shadow: 0 0 0 2px var(--mp-bg), 0 0 0 3px var(--mp-faint); }
.k-ring { width: .9rem; height: .9rem; border-radius: 50%; border: 2px dashed var(--mp-accent); }
.k-road { width: 1.1rem; height: 3px; border-radius: 2px; background: var(--mp-road); }
.k-home { width: .9rem; height: .7rem; border-radius: 2px; background: var(--mp-home); border: 1px solid var(--mp-home-edge); }
.mp-src { margin-left: auto; font-size: .72rem; opacity: .7; }
/* the SVG scales down on phones, so its text scales up to stay readable */
@media (max-width: 640px) {
	.mp-src { margin-left: 0; width: 100%; }
	.mp-boro-l, .mp-shield { display: none; }
	.mp-name { font-size: 21px; stroke-width: 6px; }
	.mp-town.is-current .mp-name { font-size: 23px; }
	.mp-pin-l { font-size: 25px; }
	.mp-pin-s { font-size: 14px; }
	.mp-ring-l { font-size: 15px; }
	.mp-dot { r: 7.5; }
	.mp-uk-wrap { width: 3.6rem; top: .6rem; left: .6rem; padding: .3rem; }
	.mp-uk-wrap.is-right { left: auto; right: .6rem; }
}
/* end map kit */
.area-map{--mp-accent:#d3202c;--mp-bg:#edf0f4;--mp-edge:#bcc6d4;--mp-faint:#7c8799;--mp-home:#dfe6f3;--mp-home-edge:#31328c;--mp-land:#f7f8fa;--mp-muted:#4c586d;--mp-road:#9fabbf;--mp-shield:#31328c;--mp-text:#0e1f47;--mp-water:#d6e2ee;--mp-font:Archivo,system-ui,sans-serif;--mp-radius:0;box-shadow:none}
.area-map .mp-pin-l{fill:var(--ink)}
.area-map .mp-dot{fill:var(--ink);stroke:#fff}
.area-map .mp-town:hover .mp-dot{fill:var(--red)}
@media (max-width:640px){.area-map .mp-town:not(.is-key) .mp-name{display:none}.area-map .mp-name{font-size:30px}.area-map .mp-pin-l{font-size:32px}.area-map .mp-pin-s{display:none}.area-map .mp-uk-wrap{display:none}}
@media (max-width:380px){.menu-btn{font-size:0;gap:0}.menu-btn i{font-size:1rem}.logo{height:2rem}}
@media (max-width:640px) and (max-height:720px){.panel p{display:none}.panel h1{font-size:1.6rem;margin-bottom:.5em}.strip a{padding:.6rem .7rem}}
