/* ---------- Tokens ---------- */
:root{
  --orange:#EE5A2B;
  --orange-dark:#D64B1F;
  --blue:#2A8FD6;
  --blue-dark:#1F73B0;
  --slate:#3E4756;
  --slate-deep:#2E3644;
  --sky:#EAF4FC;
  --mist:#F4F6F9;
  --line:#DCE3EB;
  --text:#2E3644;
  --text-soft:#5B6574;
  --white:#fff;
  --radius:14px;
  --radius-sm:8px;
  --wrap:1180px;
  --font:'DM Sans',system-ui,-apple-system,"Segoe UI",sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:var(--font);color:var(--text);background:var(--white);line-height:1.55;font-weight:500;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue-dark)}
h1,h2,h3{margin:0 0 .4em;line-height:1.1;font-weight:900;letter-spacing:-.01em;color:var(--slate-deep)}
h1{font-size:clamp(2.2rem,4.6vw,3.6rem)}
h2{font-size:clamp(1.6rem,3vw,2.2rem)}
h3{font-size:1.15rem}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0;list-style:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.muted{color:var(--text-soft)}
.skip{position:absolute;left:-999px;top:8px;background:var(--orange);color:#fff;padding:8px 14px;border-radius:6px;z-index:100}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 26px;white-space:nowrap;border-radius:999px;font-weight:800;text-decoration:none;border:2px solid transparent;transition:background .15s,transform .15s,border-color .15s;cursor:pointer;font-family:inherit;font-size:1rem;line-height:1.2}
.btn:active{transform:translateY(1px)}
.btn-lg{padding:16px 28px;font-size:1.05rem}
.btn-orange{background:var(--orange);color:#fff}
.btn-orange:hover{background:var(--orange-dark)}
.btn-blue{background:var(--blue);color:#fff}
.btn-blue:hover{background:var(--blue-dark)}
.btn-ghost{background:transparent;color:var(--slate-deep);border-color:var(--slate)}
.btn-ghost:hover{background:var(--slate-deep);color:#fff;border-color:var(--slate-deep)}
.btn-white{background:#fff;color:var(--orange-dark)}
.btn-white:hover{background:var(--sky)}
.btn-outline-white{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}
.btn-outline-white:hover{background:rgba(255,255,255,.12)}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;gap:28px;min-height:84px}
.brand img{width:72px;height:72px}
.nav{display:flex;gap:26px;margin-left:8px}
.nav a{color:var(--slate-deep);text-decoration:none;font-weight:800;font-size:1rem;padding:6px 0;border-bottom:3px solid transparent}
.nav a:hover{border-bottom-color:var(--orange)}
.header-actions{margin-left:auto;display:flex;align-items:center;gap:18px}
.phone{font-weight:900;font-size:1.15rem;color:var(--slate-deep);text-decoration:none}
.phone:hover{color:var(--orange)}
.menu-toggle{display:none;margin-left:auto;background:none;border:0;padding:8px;cursor:pointer}
.menu-toggle span{display:block;width:26px;height:3px;background:var(--slate-deep);margin:5px 0;border-radius:2px}
.mobile-nav{display:none;flex-direction:column;gap:4px;padding:10px 24px 20px;border-top:1px solid var(--line);background:#fff}
.mobile-nav a{padding:12px 0;font-weight:800;color:var(--slate-deep);text-decoration:none;border-bottom:1px solid var(--line)}
.mobile-nav a.btn{margin-top:12px;border:0}
.mobile-nav:not([hidden]){display:flex}

/* ---------- Hero ---------- */
.hero{position:relative;padding:88px 0 96px;overflow:hidden;color:#fff;
  background:#2E3644 url("assets/hero-engineer.jpg") center 40%/cover no-repeat}
.hero::before{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(30,36,48,.92) 0%,rgba(30,36,48,.78) 45%,rgba(30,36,48,.35) 100%)}
.hero>.wrap{position:relative}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.hero h1{color:#fff}
.hero-kicker{color:#9ccdf5;font-weight:800;margin-bottom:14px}
.hero-lead{font-size:1.15rem;color:rgba(255,255,255,.85);max-width:32em}
.hero-points li{color:#fff}
.hero .btn-ghost{color:#fff;border-color:rgba(255,255,255,.7)}
.hero .btn-ghost:hover{background:#fff;color:var(--slate-deep);border-color:#fff}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 24px}
.hero-points{display:grid;gap:8px}
.hero-points li{padding-left:28px;position:relative;font-weight:700}
.hero-points li::before{content:"";position:absolute;left:0;top:5px;width:16px;height:16px;border-radius:50%;background:var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.3l2.3 2.3 4.7-5' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat}

/* ---------- Reviews carousel ---------- */
.reviews{min-width:0;width:100%;max-width:440px;justify-self:end;background:#fff;border-radius:18px;padding:18px 18px 14px;box-shadow:0 24px 60px -20px rgba(0,0,0,.5);color:var(--text)}
.reviews-score{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.score-num{font-size:1.9rem;font-weight:900;line-height:1;color:var(--slate-deep)}
.stars{color:#F5A623;font-size:1.05rem;letter-spacing:1px}
.score-label{color:var(--text-soft);font-weight:700;font-size:.85rem;width:100%;margin-top:-2px}
.platform-tabs{display:flex;gap:5px;flex-wrap:wrap;margin:10px 0 12px}
.ptab{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--line);background:#fff;padding:5px 10px;border-radius:999px;font-family:inherit;font-weight:800;font-size:.78rem;color:var(--slate-deep);cursor:pointer;transition:border-color .15s,background .15s}
.ptab svg{width:15px;height:15px}
.ptab:hover{border-color:var(--blue)}
.ptab.is-active{background:var(--slate-deep);color:#fff;border-color:var(--slate-deep)}
.review-viewport{overflow:hidden;width:100%}
.review-track{display:flex;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
@media (prefers-reduced-motion:reduce){.review-track{transition:none}}
.review{flex:0 0 100%;min-width:0;padding:2px 2px 0}
.review-quote{font-size:.92rem;line-height:1.5;color:var(--slate-deep);margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.review-meta{display:flex;align-items:center;gap:8px;font-size:.8rem;flex-wrap:wrap;color:var(--text-soft);font-weight:700}
.review-meta .stars{font-size:1rem;letter-spacing:1px}
.review-meta .plat{display:inline-flex;align-items:center;gap:5px;margin-left:auto}
.review-meta .plat svg{width:16px;height:16px}
.review-controls{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.rbtn{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line);background:#fff;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--slate-deep);font-family:inherit}
.rbtn:hover{border-color:var(--blue);color:var(--blue)}
.review-dots{display:flex;gap:5px;flex-wrap:wrap;max-width:160px}
.review-dots button{width:7px;height:7px;border-radius:50%;border:0;background:var(--line);padding:0;cursor:pointer}
.review-dots button.is-active{background:var(--orange);width:16px;border-radius:4px}
.review-link{margin-left:auto;font-weight:800;font-size:.82rem}

/* ---------- Sections ---------- */
.section{padding:80px 0}
.section-sky{background:var(--sky)}
.section-head{max-width:40em;margin-bottom:40px}
.section-head-center{margin-left:auto;margin-right:auto;text-align:center}
.section-center{text-align:center;max-width:46em}
.section-center p{color:var(--text-soft);font-size:1.05rem}
.section-center .area-list{justify-content:center;margin-top:14px}
.section-head p{color:var(--text-soft);font-size:1.1rem}

/* appliances */
.appliance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.appliance{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:26px 16px 22px;border:1.5px solid var(--line);border-radius:var(--radius);text-decoration:none;color:var(--slate-deep);font-weight:800;background:#fff;transition:border-color .15s,background .15s}
.appliance svg{width:44px;height:44px;fill:none;stroke:var(--blue);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.appliance svg .dot{fill:var(--orange);stroke:none}
.appliance:hover{border-color:var(--orange);background:#fff8f5}
.fault-strip{margin-top:28px;display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--mist);border-radius:var(--radius);padding:22px 28px}
.fault-strip .btn{flex-shrink:0;white-space:nowrap}
.fault-strip p{margin:0;font-weight:700;color:var(--slate-deep)}

/* steps */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.steps li{background:#fff;border-radius:var(--radius);padding:24px 20px 20px;position:relative;border-top:5px solid var(--orange)}
.steps li:nth-child(2n){border-top-color:var(--blue)}
.step-num{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--slate-deep);color:#fff;font-weight:900;margin-bottom:14px}
.steps h3{margin-bottom:.35em}
.steps p{margin:0;color:var(--text-soft);font-size:.93rem}

/* split cards */
.split{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.split-card{border-radius:22px;padding:40px 36px;color:#fff}
.split-card h2,.split-card h3{color:#fff}
.split-card p{color:rgba(255,255,255,.9);font-size:1.05rem}
.split-orange{background:linear-gradient(160deg,var(--orange) 0%,#f2733f 100%)}
.split-blue{background:linear-gradient(160deg,var(--blue) 0%,#3ba1e6 100%)}
.split-card .btn{margin-top:8px;background:#fff}
.split-orange .btn{color:var(--orange-dark)}
.split-blue .btn{color:var(--blue-dark)}
.split-card .btn:hover{background:rgba(255,255,255,.9)}
.checks{display:grid;gap:8px;margin:18px 0 22px}
.checks li{padding-left:26px;position:relative;font-weight:700}
.checks li::before{content:"✓";position:absolute;left:0;top:0;font-weight:900}

/* brands */
.brands{padding:40px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.brands-lead{text-align:center;color:var(--text-soft);font-weight:800;margin-bottom:14px}
.brand-list{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px 34px}
.brand-list img{height:26px;width:auto;opacity:.85;transition:opacity .15s}
.brand-list li:hover img{opacity:1}

/* areas / parts */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.two-col p{color:var(--text-soft);font-size:1.05rem}
.area-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.area-list li{background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:6px 14px;font-weight:800;color:var(--slate-deep)}

/* CTA band */
.cta-band{background:var(--slate-deep);color:#fff;padding:64px 0}
.cta-inner{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center}
.cta-band h2{color:#fff}
.cta-band p{color:rgba(255,255,255,.8);font-size:1.1rem;margin:0}
.cta-actions{display:flex;flex-direction:column;gap:12px;align-items:stretch}

/* ---------- Footer ---------- */
.site-footer{background:var(--mist);border-top:1px solid var(--line)}
.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;padding:64px 24px 40px;align-items:center}
.footer-shop img{border-radius:var(--radius);box-shadow:0 20px 50px -28px rgba(46,54,68,.5)}
.footer-logo{width:96px;margin-bottom:18px}
.footer-info address{font-style:normal;font-weight:700;font-size:1.05rem;margin-bottom:14px}
.footer-info a{font-weight:800;text-decoration:none}
.footer-info a:hover{text-decoration:underline}
.hours{color:var(--text-soft);font-weight:700}
.footer-links{display:flex;gap:18px;margin-top:6px}
.footer-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 24px 28px;border-top:1px solid var(--line);color:var(--text-soft);font-size:.9rem}
.footer-bottom a{color:var(--text-soft)}

/* ---------- Responsive ---------- */
@media (max-width:1020px){
  .nav{display:none}
  .header-actions .btn{display:none}
  .appliance-grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:860px){
  .hero{padding:44px 0 56px}
  .hero-grid{grid-template-columns:1fr;gap:36px}
  .reviews{justify-self:stretch;max-width:none}
  .hero::before{background:rgba(30,36,48,.82)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .split,.two-col,.cta-inner,.footer-grid{grid-template-columns:1fr;gap:28px}
  .fault-strip{flex-direction:column;align-items:flex-start}
  .cta-actions{flex-direction:row;flex-wrap:wrap}
}
@media (max-width:640px){
  .header-actions{display:none}
  .menu-toggle{display:block}
  .appliance-grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:1fr}
  .section{padding:56px 0}
  .split-card{padding:30px 24px}
  .review-link{width:100%;margin:8px 0 0}
  .review-controls{flex-wrap:wrap}
}

/* ================= v3 additions ================= */
/* topbar */
.topbar{background:var(--slate-deep);color:#fff;font-size:.82rem;font-weight:700}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:36px}
.topbar-right{display:flex;align-items:center;gap:14px}
.topbar-badge{display:inline-flex;align-items:center;gap:5px;color:#fff;text-decoration:none;background:rgba(255,255,255,.1);padding:3px 9px;border-radius:999px}
.topbar-badge svg{width:14px;height:14px}
.topbar-badge:hover{background:rgba(255,255,255,.2)}
.topbar-email{color:#c9dcf0;text-decoration:none}
.header-inner{min-height:78px}
.nav{gap:22px;align-items:center}
.nav a.is-current{border-bottom-color:var(--orange)}
.has-dd{position:relative}
.has-dd>a::after{content:"";display:inline-block;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:0 0 3px 7px}
.dd{position:absolute;left:-16px;top:100%;padding-top:14px;display:none;z-index:60}
.has-dd:hover .dd,.has-dd:focus-within .dd,.has-dd.is-open .dd{display:block}
.dd-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;box-shadow:0 20px 50px -20px rgba(46,54,68,.4);width:520px}
.dd-grid a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;text-decoration:none;color:var(--slate-deep);font-weight:800;font-size:.95rem;border:0}
.dd-grid a:hover{background:var(--sky)}
.ico-sm{width:28px;height:28px;fill:none;stroke:var(--blue);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.ico-sm .dot{fill:var(--orange);stroke:none}
.dd-all{display:block;margin-top:6px;background:var(--slate-deep);color:#fff;text-align:center;padding:10px;border-radius:10px;font-weight:800;text-decoration:none;font-size:.9rem;border:0}
.mobile-sub{display:flex;flex-direction:column;padding-left:16px}
.mobile-sub a{font-size:.95rem;font-weight:700;color:var(--text-soft)}

/* page hero */
.page-hero{background:linear-gradient(120deg,var(--slate-deep) 0%,#3d4a5f 60%,#2f5f86 100%);color:#fff;padding:64px 0 60px;position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;right:-120px;top:-120px;width:420px;height:420px;border-radius:50%;background:rgba(42,143,214,.25)}
.page-hero .wrap{position:relative;max-width:820px}
.page-hero h1{color:#fff}
.page-hero .hero-kicker{color:#9ccdf5}
.page-hero .hero-lead{color:rgba(255,255,255,.85);font-size:1.15rem;max-width:36em}
.page-hero .hero-ctas{margin:24px 0 0}
.page-hero .btn-ghost{color:#fff;border-color:rgba(255,255,255,.7)}
.page-hero .btn-ghost:hover{background:#fff;color:var(--slate-deep)}

/* speed strip */
.speed-strip{background:var(--orange);color:#fff}
.speed-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.speed-item{padding:18px 20px;border-left:1px solid rgba(255,255,255,.25);display:flex;flex-direction:column;gap:2px}
.speed-item:first-child{border-left:0;padding-left:0}
.speed-item strong{font-size:1.1rem;font-weight:900}
.speed-item span{font-size:.88rem;opacity:.92;font-weight:700}

/* dark section */
.section-slate{background:var(--slate-deep)}
.section-slate h2,.section-slate .section-head p{color:#fff}
.section-slate .section-head p{color:rgba(255,255,255,.75)}
.section-slate .steps li{background:#fff}
.section-slate .reviews{max-width:none;justify-self:stretch;box-shadow:none}

/* two col + side card */
.two-col{display:grid;grid-template-columns:1.4fr .9fr;gap:48px;align-items:start}
.two-col h2{margin-bottom:.5em}
.side-card{background:#fff;border:1.5px solid var(--line);border-radius:18px;padding:26px;position:sticky;top:100px}
.side-card h3{margin-bottom:.5em}
.side-card p{color:var(--text-soft)}
.btn-block{display:flex;width:100%;margin-bottom:10px}
.side-note{font-size:.88rem;margin:6px 0 0}
.fault-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.fault-list li{background:var(--mist);border-radius:10px;padding:12px 14px 12px 40px;position:relative;font-weight:700;color:var(--slate-deep)}
.fault-list li::before{content:"";position:absolute;left:14px;top:14px;width:16px;height:16px;border-radius:50%;background:var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 4v5M8 11.5v.5' stroke='%23fff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/12px no-repeat}
.checks-dark li{color:var(--slate-deep)}
.checks-dark li::before{color:var(--blue)}
.checks-no li::before{content:"✕";color:var(--orange)}
.appliance-grid-sm{grid-template-columns:repeat(7,1fr)}
.appliance-sm{padding:18px 10px 14px;font-size:.85rem}
.appliance-sm svg{width:34px;height:34px}
.two-col .appliance-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}
.two-col .appliance{padding:18px 8px 14px;font-size:.85rem}
.two-col .appliance svg{width:34px;height:34px}

/* areas */
.area-list li a{color:inherit;text-decoration:none}
.area-list li:has(a){border-color:var(--blue)}
.area-list li:has(a):hover{background:var(--sky)}
.area-list-sm{gap:6px}
.area-list-sm li{font-size:.85rem;padding:4px 10px}
.area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.area-card{display:block;text-decoration:none;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:22px 22px 18px;color:var(--slate-deep);transition:border-color .15s}
.area-card:hover{border-color:var(--orange)}
.area-card h3{margin-bottom:6px}
.area-card p{margin:8px 0 0;color:var(--text-soft);font-weight:700}
.area-speed{display:inline-block;background:var(--orange);color:#fff;font-size:.8rem;font-weight:900;padding:3px 10px;border-radius:999px}

/* prices */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:48px}
.price-card{background:#fff;border:1.5px solid var(--line);border-radius:18px;padding:30px 26px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}
.price-card:first-child{border-color:var(--orange);border-width:2px}
.price{font-size:2.4rem;font-weight:900;color:var(--slate-deep);margin:0}
.price-card p{color:var(--text-soft);flex:1}
.price-notes{background:var(--sky);border-radius:18px;padding:32px 36px}
.price-notes h2{margin-bottom:.6em}

/* shop band / about */
.shop-band{background:var(--mist)}
.shop-inner{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.shop-inner img{border-radius:14px;box-shadow:0 20px 50px -28px rgba(46,54,68,.5)}
.shop-inner p{color:var(--text-soft);font-size:1.05rem}
.accred-row{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:20px}
.accred-row a{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:10px 18px;font-weight:800;text-decoration:none;color:var(--slate-deep)}
.accred-row svg{width:22px;height:22px}

/* stock */
.stock-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:26px}
.chip{border:1.5px solid var(--line);background:#fff;padding:7px 16px;border-radius:999px;font-family:inherit;font-weight:800;color:var(--slate-deep);cursor:pointer}
.chip.is-active{background:var(--slate-deep);color:#fff;border-color:var(--slate-deep)}
.stock-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.stock-empty{grid-column:1/-1;background:#fff;border:2px dashed var(--line);border-radius:14px;padding:48px;text-align:center;color:var(--text-soft);font-weight:700}
.stock-empty p{margin:0}

/* contact */
.contact-block{margin-bottom:26px}
.contact-block h3{margin-bottom:.2em}
.contact-block address{font-style:normal;font-weight:700}
.big-link{font-size:1.4rem;font-weight:900;text-decoration:none;color:var(--slate-deep)}
.big-link:hover{color:var(--orange)}
.map-band iframe{width:100%;height:380px;border:0;display:block}

/* forms */
.form label{display:block;font-weight:800;font-size:.92rem;margin-bottom:14px;color:var(--slate-deep)}
.form input,.form select,.form textarea{display:block;width:100%;margin-top:6px;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;font:inherit;font-weight:600;color:var(--text);background:#fff}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--blue);outline:0;box-shadow:0 0 0 3px rgba(42,143,214,.2)}
.form .check{display:flex;align-items:center;gap:10px;font-weight:700}
.form .check input{width:auto;margin:0}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form fieldset{border:0;padding:0;margin:0 0 26px}
.form legend{font-weight:900;font-size:1.15rem;margin-bottom:14px;color:var(--slate-deep)}
.form-note{font-size:.88rem;color:var(--text-soft);margin:-4px 0 0}
.book-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:40px;align-items:start}
.book-form{background:#fff;border-radius:18px;padding:32px;border:1.5px solid var(--line)}
.pay-box{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--sky);border-radius:12px;padding:16px 18px;margin-bottom:12px}
.pay-box div{display:flex;flex-direction:column}
.pay-box span{font-size:.85rem;color:var(--text-soft);font-weight:700}
.pay-amount{font-size:1.6rem;color:var(--slate-deep)}
.mini-steps{counter-reset:s;display:grid;gap:10px;margin-bottom:22px}
.mini-steps li{counter-increment:s;position:relative;padding-left:34px;font-weight:700;color:var(--slate-deep)}
.mini-steps li::before{content:counter(s);position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;background:var(--orange);color:#fff;font-size:.8rem;font-weight:900;display:grid;place-items:center}

/* footer v3 */
.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;align-items:start;padding:56px 24px 32px}
.footer-col h3{margin-bottom:.6em;font-size:1rem}
.footer-col ul{display:grid;gap:8px}
.footer-col a{color:var(--text-soft);text-decoration:none;font-weight:700;font-size:.95rem}
.footer-col a:hover{color:var(--orange)}
.footer-about p{color:var(--text-soft);font-size:.95rem}
.footer-about address{font-style:normal;font-weight:700;margin-bottom:10px}
.footer-about a{color:var(--slate-deep);font-weight:800}
.footer-social{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}

@media (max-width:1020px){
  .speed-inner{grid-template-columns:repeat(2,1fr)}
  .speed-item:nth-child(odd){border-left:0;padding-left:0}
  .appliance-grid-sm{grid-template-columns:repeat(4,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .topbar-email{display:none}
}
@media (max-width:860px){
  .two-col,.book-grid,.shop-inner{grid-template-columns:1fr}
  .side-card{position:static}
  .area-grid,.price-grid{grid-template-columns:1fr 1fr}
  .stock-grid{grid-template-columns:repeat(2,1fr)}
  .two-col .appliance-grid{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:640px){
  .topbar-inner{justify-content:center;text-align:center}
  .topbar-item:first-child{display:none}
  .fault-list,.form-row,.area-grid,.price-grid{grid-template-columns:1fr}
  .speed-inner{grid-template-columns:1fr}
  .speed-item{border-left:0;padding-left:0;border-top:1px solid rgba(255,255,255,.25)}
  .speed-item:first-child{border-top:0}
  .appliance-grid-sm,.two-col .appliance-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr}
  .book-form{padding:22px 18px}
  .page-hero{padding:44px 0}
}
/* nav tightening */
.nav a{white-space:nowrap;font-size:.95rem}
.nav{gap:18px}
.phone{white-space:nowrap;font-size:1.05rem}
.header-actions{gap:14px}
.dd-grid a{white-space:nowrap}
@media (max-width:1180px){.nav a{font-size:.9rem}.nav{gap:14px}.header-actions .btn{padding:11px 18px}}

/* ================= v4: mobile-first CRO ================= */
.steps-3{grid-template-columns:repeat(3,1fr);gap:22px}
.steps-3 li{padding:30px 28px 26px}
.steps-3 p{font-size:1rem}

/* footer enquiry band */
.footer-form-band{background:linear-gradient(120deg,var(--slate-deep) 0%,#2f5f86 100%);color:#fff;padding:72px 0}
.footer-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.footer-form-copy h2{color:#fff;font-size:clamp(1.7rem,3.2vw,2.4rem)}
.footer-form-copy p{color:rgba(255,255,255,.85);font-size:1.1rem}
.footer-form-copy .hero-points{margin-bottom:26px}
.footer-form-copy .hero-points li{color:#fff}
.quick-form{background:#fff;border-radius:18px;padding:28px;color:var(--text)}
.quick-form label{margin-bottom:12px}
.quick-form .form-note{margin-top:10px;text-align:center}

/* footer */
.hours-table{width:100%;border-collapse:collapse;margin-bottom:10px;font-size:.95rem}
.hours-table td{padding:5px 0;border-bottom:1px solid var(--line);font-weight:700;color:var(--slate-deep)}
.hours-table td:last-child{text-align:right;color:var(--text-soft)}
.footer-small{font-size:.85rem;color:var(--text-soft);margin-bottom:22px}
.footer-col h3+h3,.footer-col ul+h3{margin-top:22px}
.footer-accred a{display:inline-flex;align-items:center;gap:8px}
.footer-accred svg{width:18px;height:18px;flex-shrink:0}
.footer-col .btn-block{margin-bottom:8px}

/* sticky mobile CTA */
.mobile-cta{display:none}
@media (max-width:860px){
  .footer-form-grid{grid-template-columns:1fr;gap:32px}
  .steps-3{grid-template-columns:1fr}
}
@media (max-width:640px){
  body{padding-bottom:68px}
  .mobile-cta{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:70;gap:1px;background:var(--line);box-shadow:0 -6px 20px rgba(0,0,0,.12)}
  .mobile-cta a{display:flex;align-items:center;justify-content:center;padding:16px 8px;font-weight:900;font-size:1rem;text-decoration:none;min-height:60px}
  .mobile-cta-call{background:#fff;color:var(--slate-deep)}
  .mobile-cta-book{background:var(--orange);color:#fff}
  /* thumb-first hero */
  .hero{padding:36px 0 44px}
  .hero h1{font-size:2rem}
  .hero-lead{font-size:1rem}
  .hero-ctas .btn{flex:1 1 100%;padding:15px 20px}
  .page-hero .hero-ctas .btn{flex:1 1 100%}
  .side-card .btn-block{padding:15px}
  .quick-form{padding:20px 16px}
  .footer-form-band{padding:48px 0}
  .fault-strip .btn,.section-center .btn{width:100%}
  .cta-actions .btn{flex:1 1 100%}
  .appliance{padding:20px 10px 16px;font-size:.9rem}
  .brand-list{gap:14px 20px}
  .brand-list img{height:20px}
  .topbar{font-size:.78rem}
}

/* ================= prices v5 ================= */
.pc-check{max-width:640px;margin:0 auto;background:#fff;border-radius:18px;padding:26px 28px;border:1.5px solid var(--line)}
.pc-check>label{display:block;font-weight:900;margin-bottom:8px;color:var(--slate-deep)}
.pc-row{display:flex;gap:10px}
.pc-row input{flex:1;padding:14px 16px;border:1.5px solid var(--line);border-radius:12px;font:inherit;font-weight:700;font-size:1.05rem;text-transform:uppercase}
.pc-row input:focus{border-color:var(--blue);outline:0;box-shadow:0 0 0 3px rgba(42,143,214,.2)}
.pc-result{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.pc-zone{font-weight:900;font-size:1.15rem;color:var(--slate-deep);margin-bottom:10px}
.pc-prices{display:grid;gap:8px;margin-bottom:12px}
.pc-prices div{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--sky);padding:12px 14px;border-radius:10px}
.pc-prices span{font-weight:700;color:var(--text-soft);font-size:.92rem}
.pc-prices strong{color:var(--slate-deep);white-space:nowrap}
.zone-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.zone-desc{text-align:center;color:var(--text-soft);font-weight:700;margin:12px 0 18px;font-size:.92rem}
.zone-table-wrap{overflow-x:auto}
.zone-table{width:100%;border-collapse:collapse;background:#fff;border:1.5px solid var(--line);border-radius:14px;overflow:hidden}
.zone-table th,.zone-table td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line)}
.zone-table th{background:var(--slate-deep);color:#fff;font-weight:800;font-size:.9rem}
.zone-table td{font-weight:700;color:var(--slate-deep)}
.zone-table td:nth-child(2),.zone-table td:nth-child(3),.zone-table th:nth-child(2),.zone-table th:nth-child(3){text-align:right;white-space:nowrap}
.zone-table td:nth-child(3){color:var(--orange-dark)}
.zone-table tr:last-child td{border-bottom:0}
.two-col-even{grid-template-columns:1fr 1fr}
.terms-card{background:#fff;border-radius:16px;padding:26px 28px}
.terms-card h3{margin-bottom:.6em}
@media (max-width:640px){
  .pc-row{flex-direction:column}
  .pc-check{padding:20px 16px}
  .zone-table th,.zone-table td{padding:10px 10px;font-size:.88rem}
}
.county-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.county{background:var(--mist);border-radius:14px;padding:22px 24px}
.county h3{margin-bottom:.4em}
.county p{margin:0;color:var(--text-soft);font-weight:700;font-size:.95rem;line-height:1.6}
@media (max-width:860px){.county-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.county-grid{grid-template-columns:1fr}}

/* ================= v7: mobile clean-up ================= */
.speed-inner{grid-template-columns:repeat(5,1fr)}
.speed-item{padding:16px 18px;text-align:center;align-items:center}
.speed-item:first-child{padding-left:18px}
.speed-item strong{font-size:1.15rem}
.speed-item span{font-size:.85rem}
.mobile-call{display:none}
.mobile-row{display:flex;align-items:center;border-bottom:1px solid var(--line)}
.mobile-row a{flex:1;border-bottom:0}
.mobile-sub-toggle{width:44px;height:44px;background:none;border:0;cursor:pointer;position:relative}
.mobile-sub-toggle::after{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;border-right:2.5px solid var(--slate-deep);border-bottom:2.5px solid var(--slate-deep);transform:translate(-50%,-70%) rotate(45deg);transition:transform .2s}
.mobile-sub-toggle[aria-expanded="true"]::after{transform:translate(-50%,-30%) rotate(-135deg)}
.mobile-sub{padding:4px 0 8px 16px}
.mobile-sub a{border-bottom:0;padding:9px 0}
.area-list-lg{justify-content:center;gap:10px}
.area-list-lg li{font-size:1.05rem;padding:9px 20px}
.county p[hidden]{display:none}
.county{text-align:center}
.county h3{margin:0}
.brand-marquee{overflow:hidden}
.brand-marquee .brand-list+.brand-list{display:none}

@media (max-width:1020px){
  .speed-inner{grid-template-columns:repeat(3,1fr)}
  .speed-item{border-left:0;border-top:1px solid rgba(255,255,255,.2)}
  .speed-item:nth-child(-n+3){border-top:0}
}
@media (max-width:640px){
  /* header */
  .topbar{display:none}
  .header-inner{min-height:64px;gap:12px}
  .brand img{width:54px;height:54px}
  .mobile-call{display:grid;place-items:center;width:44px;height:44px;margin-left:auto;border-radius:50%;background:var(--sky);color:var(--blue-dark)}
  .mobile-call svg{width:22px;height:22px}
  .menu-toggle{margin-left:0}
  .mobile-nav{padding:6px 20px 20px}
  .mobile-nav a{padding:13px 0}
  /* hero */
  .hero{padding:32px 0 36px}
  .hero-grid{gap:24px}
  .hero-kicker{font-size:.85rem}
  .hero-lead{font-size:.98rem;margin-bottom:0}
  .hero-ctas{margin:20px 0 18px;gap:10px}
  .hero-points{gap:6px;font-size:.95rem}
  .reviews{padding:14px 14px 12px;border-radius:14px}
  .reviews-score{gap:8px}
  .score-num{font-size:1.5rem}
  .score-label{font-size:.78rem}
  .platform-tabs{display:none}
  .review-quote{font-size:.88rem;-webkit-line-clamp:3}
  .review-meta{font-size:.75rem}
  .review-controls{margin-top:8px;padding-top:8px}
  .review-dots{display:none}
  /* stats */
  .speed-inner{grid-template-columns:1fr 1fr;gap:0}
  .speed-item{padding:14px 10px;border-top:1px solid rgba(255,255,255,.2)}
  .speed-item:nth-child(-n+2){border-top:0}
  .speed-item:nth-child(odd){border-right:1px solid rgba(255,255,255,.2)}
  .speed-item:last-child{grid-column:1/-1;border-right:0}
  .speed-item strong{font-size:1.05rem}
  .speed-item span{font-size:.8rem}
  /* sections */
  .section{padding:44px 0}
  .section-head{margin-bottom:24px}
  .section-head p{font-size:1rem}
  h2{font-size:1.55rem}
  .appliance-grid{gap:10px}
  .appliance{padding:16px 8px 12px;gap:8px;font-size:.85rem}
  .appliance svg{width:36px;height:36px}
  .fault-strip{padding:18px;margin-top:18px}
  .fault-strip p{font-size:.95rem}
  .steps-3{gap:12px}
  .steps-3 li{padding:20px 18px 18px}
  .split{gap:14px}
  .split-card{padding:24px 20px}
  .split-card p{font-size:.98rem}
  .checks{gap:6px;margin:14px 0 18px}
  .area-list-lg li{font-size:.92rem;padding:7px 14px}
  .shop-inner{gap:22px}
  .shop-inner img{max-width:320px;margin:0 auto}
  .cta-band{padding:44px 0}
  .cta-inner{gap:20px}
  .footer-grid{padding:40px 20px 24px;gap:28px}
  /* brand marquee */
  .brands{padding:24px 0}
  .brands .wrap{padding:0}
  .brand-marquee{display:flex;width:max-content;animation:marquee 32s linear infinite}
  .brand-marquee .brand-list{flex-wrap:nowrap;gap:0 34px;padding:0 17px}
  .brand-marquee .brand-list+.brand-list{display:flex}
  .brand-list img{height:22px}
  @keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  @media (prefers-reduced-motion:reduce){.brand-marquee{animation:none;width:auto;overflow-x:auto}}
}

/* v7.1: stop the brand marquee widening the page on mobile */
html,body{overflow-x:hidden;max-width:100%}
.brands{overflow:hidden}
.brands .wrap{overflow:hidden;width:100%;max-width:100%}
@media (max-width:640px){
  .brand-marquee{overflow:visible;will-change:transform}
}
@media (max-width:640px){
  .zone-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .zone-table{min-width:0;table-layout:fixed}
  .zone-table th:first-child,.zone-table td:first-child{width:50%}
  .zone-table th,.zone-table td{padding:10px 8px;font-size:.82rem;white-space:normal}
}
@media (max-width:860px){.two-col-even{grid-template-columns:1fr}}
.big-link{word-break:break-all}
@media (max-width:640px){.big-link{font-size:1.15rem}.two-col>*{min-width:0}}

/* review counts strip */
.review-strip{background:#fff;border-bottom:1px solid var(--line)}
.rs-inner{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:14px;padding-bottom:14px;flex-wrap:wrap}
.rs-item{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--slate-deep)}
.rs-item svg{width:28px;height:28px;flex-shrink:0}
.rs-item div{display:flex;flex-direction:column;line-height:1.2}
.rs-name{font-size:.78rem;font-weight:700;color:var(--text-soft)}
.rs-item strong{font-size:.95rem;font-weight:900}
.rs-item span:last-child:not(.rs-name){font-size:.75rem;color:var(--orange-dark);font-weight:800}
.score-num{font-size:1.4rem;line-height:1.3}
@media (max-width:860px){.rs-inner{justify-content:center;gap:14px 26px}}
@media (max-width:640px){
  .rs-inner{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px 8px;padding-top:12px;padding-bottom:12px}
  .rs-item{gap:7px}
  .rs-item svg{width:22px;height:22px}
  .rs-item strong{font-size:.8rem}
  .rs-name{font-size:.7rem}
  .score-num{font-size:1.2rem}
}
@media (max-width:640px){
  .rs-inner{grid-template-columns:1fr 1fr;gap:10px 14px}
  .rs-item strong{white-space:nowrap}
  .rs-item span:last-child:not(.rs-name){white-space:nowrap}
}

/* v9.2 mobile sub-menu: collapsed by default, whole row toggles */
.mobile-sub[hidden]{display:none !important}
.mobile-nav[hidden]{display:none !important}
button.mobile-row{width:100%;background:none;border:0;border-bottom:1px solid var(--line);padding:13px 0;font:inherit;font-weight:800;color:var(--slate-deep);text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
button.mobile-row::after{content:"";width:9px;height:9px;border-right:2.5px solid var(--slate-deep);border-bottom:2.5px solid var(--slate-deep);transform:rotate(45deg);margin-right:6px;transition:transform .2s}
button.mobile-row[aria-expanded="true"]::after{transform:rotate(-135deg)}
.mobile-sub-toggle::after{position:static;left:auto;top:auto}
.mobile-sub{display:flex;flex-direction:column;background:var(--mist);margin:0 -20px;padding:6px 20px 8px 32px;border-bottom:1px solid var(--line)}
.mobile-sub a{padding:10px 0;border-bottom:1px solid var(--line);font-weight:700;color:var(--slate-deep);font-size:.95rem}
.mobile-sub a:last-child{border-bottom:0}

/* ================= v10 ================= */
/* lighter hero */
.hero::before{background:linear-gradient(90deg,rgba(30,36,48,.82) 0%,rgba(30,36,48,.55) 45%,rgba(30,36,48,.15) 100%)}
.hero h1,.hero-lead,.hero-points li{text-shadow:0 1px 8px rgba(0,0,0,.35)}

/* timeline steps */
.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;position:relative;margin-bottom:28px}
.timeline::before{content:"";position:absolute;left:16.6%;right:16.6%;top:24px;height:3px;background:var(--line)}
.timeline li{text-align:center;position:relative;padding:0 8px}
.tl-num{display:inline-grid;place-items:center;width:50px;height:50px;border-radius:50%;background:var(--orange);color:#fff;font-weight:900;font-size:1.2rem;margin-bottom:16px;box-shadow:0 0 0 6px var(--sky);position:relative}
.timeline h3{margin-bottom:.4em}
.timeline p{margin:0;color:var(--text-soft);font-size:.98rem;max-width:30em;margin:0 auto}

/* feature rows */
.feature-band{background:#fff;border-top:1px solid var(--line)}
.feature-row{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;padding-top:64px;padding-bottom:64px}
.feature-row+.feature-row{border-top:1px solid var(--line)}
.eyebrow{color:var(--orange-dark);font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;margin-bottom:8px}
.feature-text h2{font-size:clamp(1.5rem,2.6vw,2rem)}
.feature-text p{color:var(--text-soft);font-size:1.05rem}
.feature-list{display:grid;gap:14px}
.feature-list li{display:flex;flex-direction:column;padding:16px 20px 16px 24px;border-left:4px solid var(--blue);background:var(--mist);border-radius:0 12px 12px 0}
.feature-row-alt .feature-list li{border-left-color:var(--orange)}
.feature-list strong{font-size:1.05rem;color:var(--slate-deep)}
.feature-list span{color:var(--text-soft);font-weight:700;font-size:.92rem}

@media (max-width:860px){
  .timeline{grid-template-columns:1fr;gap:26px}
  .timeline::before{left:24px;right:auto;top:0;bottom:0;width:3px;height:auto}
  .timeline li{text-align:left;padding-left:64px}
  .tl-num{position:absolute;left:0;top:0;margin:0}
  .timeline p{margin:0}
  .feature-row{grid-template-columns:1fr;gap:24px;padding-top:44px;padding-bottom:44px}
  .feature-row-alt .feature-list{order:2}
}
@media (max-width:640px){
  /* reviews card centred */
  .hero .reviews{width:calc(100% - 0px);margin:0 auto;box-sizing:border-box}
  /* footer accordion */
  .footer-collapsible h3{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:12px 0;margin:0;border-top:1px solid var(--line)}
  .footer-collapsible h3::after{content:"";width:9px;height:9px;border-right:2px solid var(--slate-deep);border-bottom:2px solid var(--slate-deep);transform:rotate(45deg);margin-right:6px;transition:transform .2s}
  .footer-collapsible h3.is-open::after{transform:rotate(-135deg)}
  .footer-collapsible ul{display:none;padding-bottom:12px}
  .footer-collapsible h3.is-open+ul{display:grid}
  .footer-collapsible ul+h3{margin-top:0}
  .footer-collapsible .btn-block{margin-top:12px}
  .footer-small{display:none}
  .footer-col ul{gap:6px}
  .footer-accred{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .footer-accred a{font-size:.85rem}
  .footer-grid{gap:18px;padding:32px 20px 16px}
  .footer-about p{margin-bottom:.5em}
  .hours-table{margin-bottom:6px}
}
@media (max-width:640px){.site-footer .footer-col .btn-block{display:none}}

/* ================= v11: stock, tiers, booking ================= */
.tier-table td:first-child{font-weight:800}
.td-sub{display:block;font-size:.8rem;color:var(--text-soft);font-weight:700}
.fee-table{width:100%;border-collapse:collapse}
.fee-table td{padding:9px 0;border-bottom:1px solid var(--line);font-weight:700;color:var(--slate-deep)}
.fee-table td:last-child{text-align:right;white-space:nowrap;color:var(--orange-dark)}
.terms-card .fee-table td{border-color:var(--line)}
.stock-grid{grid-template-columns:repeat(3,1fr);gap:18px}
.stock-card{background:#fff;border:1.5px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
.stock-card.is-order .stock-badge{background:var(--mist);color:var(--text-soft)}
.stock-img{aspect-ratio:4/3;background:var(--mist);display:grid;place-items:center;color:var(--text-soft);font-weight:700;font-size:.85rem}
.stock-img img{width:100%;height:100%;object-fit:contain}
.stock-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.stock-badge{align-self:flex-start;background:#e6f6ec;color:#1f7a4d;font-size:.75rem;font-weight:900;padding:3px 9px;border-radius:999px}
.stock-body h3{font-size:1.05rem;margin:0}
.stock-cat{margin:0;font-size:.85rem;color:var(--text-soft);font-weight:700}
.stock-specs{margin:0;font-size:.85rem;color:var(--text-soft)}
.stock-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:10px}
.stock-foot strong{font-size:1.35rem;color:var(--slate-deep)}
.stock-foot .btn{padding:9px 16px;font-size:.9rem}
#book-pc-result{margin-top:0;padding-top:14px}
#book-rest{margin-top:6px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
@media (max-width:860px){.stock-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.stock-grid{grid-template-columns:1fr 1fr;gap:10px}.stock-body{padding:12px}.stock-foot{flex-direction:column;align-items:stretch}.stock-foot .btn{width:100%}.stock-body h3{font-size:.95rem}}
.plat-img{width:18px;height:18px;border-radius:50%;object-fit:cover}
.ptab .plat-img{width:15px;height:15px}
.rs-item .plat-img{width:28px;height:28px}
.topbar-badge .plat-img{width:14px;height:14px}
.footer-accred .plat-img{width:18px;height:18px}
.accred-row .plat-img{width:22px;height:22px}
@media (max-width:640px){.rs-item .plat-img{width:22px;height:22px}}

/* ================= v12: shop layout + sticky header fix ================= */
html,body{overflow-x:clip}
.shop-head{background:#fff;padding:36px 0 26px;border-bottom:1px solid var(--line)}
.shop-head h1{font-size:clamp(1.8rem,3.4vw,2.4rem);margin-bottom:.2em}
.shop-head p{color:var(--text-soft);max-width:44em;margin-bottom:18px}
.shop-search{display:flex;gap:10px;max-width:720px}
.shop-search input{flex:1;padding:14px 16px;border:1.5px solid var(--line);border-radius:12px;font:inherit;font-weight:600;font-size:1rem}
.shop-search input:focus{border-color:var(--blue);outline:0;box-shadow:0 0 0 3px rgba(42,143,214,.2)}
.shop-section{padding:32px 0 56px}
.shop-grid{display:grid;grid-template-columns:240px 1fr;gap:28px;align-items:start}
.shop-filters{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:18px;position:sticky;top:96px}
.filters-toggle{display:none}
.filter-group{margin-bottom:18px}
.filter-group:last-child{margin-bottom:0}
.filter-group h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-soft);margin-bottom:8px}
.filter-list{display:flex;flex-direction:column;gap:2px;max-height:280px;overflow-y:auto}
.filter-list .check{margin:0;padding:5px 0;font-size:.92rem;font-weight:700;cursor:pointer}
.filter-list .check input{accent-color:var(--orange)}
.filter-list em{font-style:normal;color:var(--text-soft);font-weight:600;font-size:.8rem}
.shop-count{margin:0 0 12px;color:var(--text-soft);font-weight:700;font-size:.9rem}
.shop-main .stock-grid{grid-template-columns:repeat(3,1fr)}
@media (max-width:1020px){.shop-main .stock-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:860px){
  .shop-grid{grid-template-columns:1fr;gap:14px}
  .shop-filters{position:static;padding:0;border:0;background:none}
  .filters-toggle{display:block;width:100%;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;font:inherit;font-weight:800;text-align:left;color:var(--slate-deep);position:relative}
  .filters-toggle::after{content:"";position:absolute;right:16px;top:50%;width:9px;height:9px;border-right:2.5px solid var(--slate-deep);border-bottom:2.5px solid var(--slate-deep);transform:translateY(-70%) rotate(45deg)}
  .shop-filters.is-open .filters-toggle::after{transform:translateY(-30%) rotate(-135deg)}
  .filters-body{display:none;background:#fff;border:1.5px solid var(--line);border-top:0;border-radius:0 0 12px 12px;padding:14px}
  .shop-filters.is-open .filters-body{display:block}
  .shop-filters.is-open .filters-toggle{border-radius:12px 12px 0 0}
}
@media (max-width:640px){.shop-search{flex-direction:column}.shop-head{padding:24px 0 18px}.shop-main .stock-grid{grid-template-columns:1fr 1fr}}
/* v12.1: independently scrolling filter sidebar */
.shop-filters{max-height:calc(100vh - 112px);overflow-y:auto;overscroll-behavior:contain}
.filter-list{max-height:none;overflow:visible}
.shop-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.shop-bar .shop-count{margin:0}
.link-btn{background:none;border:0;font:inherit;font-weight:800;color:var(--blue-dark);cursor:pointer;text-decoration:underline;padding:0}
@media (max-width:860px){.shop-filters{max-height:none;overflow:visible}}

/* ================= v13: basket & checkout ================= */
.basket-link{position:relative;display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%;color:var(--slate-deep);text-decoration:none;background:var(--mist)}
.basket-link svg{width:22px;height:22px}
.basket-count{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;border-radius:9px;background:var(--orange);color:#fff;font-size:.7rem;font-weight:900;display:grid;place-items:center;padding:0 4px;opacity:0}
.basket-link.has-items .basket-count{opacity:1}
.basket-drawer{position:fixed;inset:0;background:rgba(30,36,48,.5);z-index:90;display:flex;justify-content:flex-end}
.basket-drawer[hidden]{display:none}
.drawer-panel{background:#fff;width:min(420px,100%);height:100%;display:flex;flex-direction:column;box-shadow:-20px 0 50px rgba(0,0,0,.2)}
.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}
.drawer-head h3{margin:0}
.drawer-items{flex:1;overflow-y:auto;padding:12px 20px}
.drawer-item,.co-line-head{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.drawer-item div:first-child,.co-line-head div:first-child{display:flex;flex-direction:column}
.drawer-item span,.co-line-head span{font-size:.85rem;color:var(--text-soft);font-weight:700}
.drawer-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.drawer-foot{padding:16px 20px 20px;border-top:1px solid var(--line)}
.drawer-sum{display:flex;justify-content:space-between;font-size:1.05rem;margin-bottom:6px}
.drawer-foot .btn-block{margin-bottom:8px}
body.drawer-open{overflow:hidden}
.co-line{margin-bottom:10px}
.co-opts{display:grid;gap:4px;padding:10px 0 6px 12px}
.co-opts .check{margin:0;font-size:.92rem}
.co-opts em{font-style:normal;margin-left:auto;color:var(--slate-deep)}
.co-opts .check{display:flex}
.co-summary{background:var(--sky);border-radius:12px;padding:14px 16px;margin-bottom:14px}
.co-summary>div{display:flex;justify-content:space-between;padding:5px 0;font-weight:700;color:var(--text-soft)}
.co-summary .co-total{border-top:1px solid var(--line);margin-top:6px;padding-top:10px;color:var(--slate-deep);font-size:1.1rem}
.stock-foot .btn.is-added{background:#1f7a4d}
@media (max-width:640px){.basket-link{display:inline-grid;margin-left:auto}.header-actions{display:flex}.header-actions .phone,.header-actions .btn{display:none}.mobile-call{margin-left:0}}
.brand,.brand img{flex-shrink:0}
.header-actions{flex-shrink:0}
@media (max-width:1180px){.nav{gap:12px}.nav a{font-size:.88rem}.phone{font-size:.95rem}}

/* ================= v14: booking funnel ================= */
.funnel-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:0 0 24px;counter-reset:fs}
.funnel-steps li{counter-increment:fs;text-align:center;font-size:.85rem;font-weight:800;color:var(--text-soft);padding:8px 4px 10px;border-bottom:4px solid var(--line);position:relative}
.funnel-steps li::before{content:counter(fs);display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--line);color:var(--slate-deep);font-size:.75rem;margin-right:6px}
.funnel-steps li.is-active{color:var(--slate-deep);border-bottom-color:var(--orange)}
.funnel-steps li.is-active::before{background:var(--orange);color:#fff}
.funnel-steps li.is-done{color:var(--slate-deep);border-bottom-color:var(--blue)}
.funnel-steps li.is-done::before{background:var(--blue);color:#fff;content:"✓"}
.funnel-step{display:none}
.funnel-step.is-active{display:block}
.funnel-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.funnel-nav .btn-lg{flex:1;max-width:320px}
.opt{font-weight:600;color:var(--text-soft);font-size:.82rem}
@media (max-width:640px){
  .funnel-steps li{font-size:0;padding:6px 0 8px}
  .funnel-steps li::before{font-size:.75rem;margin:0}
  .funnel-nav{flex-direction:column-reverse}
  .funnel-nav .btn{width:100%;max-width:none}
}

/* ================= v14: booking funnel ================= */
.funnel-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:26px;counter-reset:fs}
.funnel-steps li{counter-increment:fs;text-align:center;font-size:.8rem;font-weight:800;color:var(--text-soft);padding-top:34px;position:relative}
.funnel-steps li::before{content:counter(fs);position:absolute;left:50%;top:0;transform:translateX(-50%);width:28px;height:28px;border-radius:50%;background:var(--mist);border:2px solid var(--line);display:grid;place-items:center;font-size:.8rem;color:var(--text-soft)}
.funnel-steps li::after{content:"";position:absolute;top:13px;left:calc(50% + 16px);right:calc(-50% + 16px);height:2px;background:var(--line)}
.funnel-steps li:last-child::after{display:none}
.funnel-steps li.is-active{color:var(--slate-deep)}
.funnel-steps li.is-active::before{background:var(--orange);border-color:var(--orange);color:#fff}
.funnel-steps li.is-done::before{background:var(--slate-deep);border-color:var(--slate-deep);color:#fff;content:"✓"}
.funnel-steps li.is-done::after{background:var(--slate-deep)}
.funnel .step{display:none;margin:0}
.funnel .step.is-active{display:block}
.funnel-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:8px}
.funnel-nav .btn-lg{flex:1;max-width:320px;margin-left:auto}
@media (max-width:640px){.funnel-nav{flex-direction:column-reverse}.funnel-nav .btn{width:100%;max-width:none}.funnel-steps li{font-size:.7rem}}
.cond[hidden]{display:none !important}
.cond{background:var(--mist);border-radius:10px;padding:12px 14px 2px;margin-bottom:14px}
.cond .cond{background:none;padding:0;margin:0}
.cond .check{margin-bottom:12px}
.plat-img-sq{border-radius:0;object-fit:contain}
.pay-alt{background:#fff6ee;border:1.5px solid #f7c9b3;border-radius:12px;padding:12px 16px;margin-bottom:14px}
.pay-alt p{margin:0;color:var(--slate-deep)}

/* ================= v15: photo page heroes ================= */
.page-hero-photo{background-size:cover;background-position:right center;background-repeat:no-repeat;padding:96px 0 92px;min-height:420px;display:flex;align-items:center}
.page-hero-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(30,36,48,.9) 0%,rgba(30,36,48,.75) 38%,rgba(30,36,48,.15) 70%,rgba(30,36,48,0) 100%)}
.page-hero-photo::after{display:none}
.page-hero-photo .wrap{max-width:var(--wrap)}
.page-hero-photo h1,.page-hero-photo .hero-lead,.page-hero-photo .hero-kicker{max-width:32em;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.page-hero-photo h1{max-width:14em}
@media (max-width:860px){.page-hero-photo{padding:64px 0 60px;min-height:0;background-position:70% center}.page-hero-photo::before{background:linear-gradient(90deg,rgba(30,36,48,.9) 0%,rgba(30,36,48,.7) 60%,rgba(30,36,48,.45) 100%)}}
@media (max-width:640px){.page-hero-photo{padding:44px 0}}
.page-hero-photo .wrap{width:100%;margin:0 auto}

/* v15.1: hero images via CSS vars, mobile crops */
.shop-head-photo{position:relative;background:var(--slate-deep) center right/cover no-repeat;color:#fff;padding:44px 0 34px;border-bottom:0}
.shop-head-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(30,36,48,.92) 0%,rgba(30,36,48,.8) 45%,rgba(30,36,48,.25) 100%)}
.shop-head-photo .wrap{position:relative}
.shop-head-photo h1{color:#fff}
.shop-head-photo p{color:rgba(255,255,255,.85)}
@media (max-width:640px){
  .page-hero-photo{background-image:var(--hero-m);background-position:center top}
  .page-hero-photo::before{background:linear-gradient(180deg,rgba(30,36,48,.55) 0%,rgba(30,36,48,.85) 100%)}
  .hero{background-image:url("assets/hero-engineer-m.jpg");background-position:center top}
  .shop-head-photo{background-image:var(--hero-m);background-position:center top}
}
/* v15.2: shorter desktop heroes */
.page-hero-photo{padding:56px 0 52px;min-height:300px}
.page-hero-photo h1{font-size:clamp(1.9rem,3.6vw,2.7rem)}
.page-hero-photo .hero-lead{font-size:1.05rem;max-width:36em}
.page-hero-photo .hero-ctas{margin-top:18px}
.hero{padding:64px 0 68px}
@media (max-width:860px){.page-hero-photo{padding:48px 0 44px}}
@media (max-width:640px){.page-hero-photo{padding:40px 0 36px}}

/* ================= v16 ================= */
/* stats strip: neutral, three numbers */
.stats-strip{background:#fff;border-bottom:1px solid var(--line)}
.stats-inner{display:grid;grid-template-columns:repeat(3,1fr);padding-top:26px;padding-bottom:26px}
.stat{text-align:center;padding:0 16px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.stat:first-child{border-left:0}
.stat strong{font-size:2.2rem;font-weight:900;color:var(--orange-dark);line-height:1.1}
.stat>span:last-child{font-weight:700;color:var(--text-soft);font-size:.9rem}
.stats-strip+.review-strip{border-top:0}

/* hero */
.hero .btn-white{color:var(--slate-deep)}
.hero .btn-white:hover{background:var(--sky)}

/* marquee faster, no fade-in */
@media (max-width:640px){.brand-marquee{animation-duration:18s}.brand-list img{opacity:1}}

/* repair pages */
.faults-head{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:end;margin-bottom:28px}
.faults-lead{color:var(--text-soft);font-size:1.05rem;margin:0}
.fault-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.fault-grid li{background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:16px 16px 16px 52px;position:relative;font-weight:800;color:var(--slate-deep);min-height:72px;display:flex;align-items:center}
.fault-num{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:900;color:#fff}
.accent-orange .fault-num{background:var(--orange)}
.accent-blue .fault-num{background:var(--blue)}
.accent-orange .fault-grid li:hover{border-color:var(--orange)}
.accent-blue .fault-grid li:hover{border-color:var(--blue)}
.faults-section{background:var(--mist)}
.faults-foot{margin:16px 0 0;color:var(--text-soft);font-weight:700;font-size:.92rem}
.replace-band{background:linear-gradient(120deg,var(--slate-deep),#2f5f86);color:#fff;padding:52px 0}
.replace-inner{display:grid;grid-template-columns:1fr auto;gap:36px;align-items:center}
.replace-band h2{color:#fff;margin-bottom:.3em}
.replace-band p{color:rgba(255,255,255,.85);margin:0;max-width:44em}
.replace-band .eyebrow{color:#9ccdf5}

@media (max-width:1020px){.fault-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:860px){.faults-head,.replace-inner{grid-template-columns:1fr;gap:12px}.fault-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){
  /* mobile hero: less text */
  .hero-lead{display:none}
  .hero-points-home{display:none}
  .hero-kicker{margin-bottom:8px}
  .hero h1{font-size:2.1rem;margin-bottom:.35em}
  .hero-ctas{margin:16px 0 0}
  .hero{padding:28px 0 30px}
  .stats-inner{grid-template-columns:repeat(3,1fr);padding-top:16px;padding-bottom:16px}
  .stat{padding:0 6px}
  .stat strong{font-size:1.5rem}
  .stat>span:last-child{font-size:.72rem;line-height:1.25}
  .fault-grid{grid-template-columns:1fr;gap:8px}
  .fault-grid li{min-height:0;padding:12px 12px 12px 48px}
  .replace-band{padding:36px 0}
  .replace-band .btn{width:100%}
}
/* v16.1: stats as dark blue boxes */
.stats-strip{background:#fff;border-bottom:1px solid var(--line)}
.stats-inner{gap:16px;padding-top:22px;padding-bottom:22px}
.stat{background:var(--slate-deep);color:#fff;border-radius:14px;padding:20px 16px;border-left:0}
.stat strong{color:#fff}
.stat>span:last-child{color:rgba(255,255,255,.8)}
@media (max-width:640px){.stats-inner{gap:8px;padding-top:12px;padding-bottom:12px}.stat{padding:14px 6px;border-radius:10px}}
/* v16.2: slimmer stat boxes */
.stats-inner{padding-top:16px;padding-bottom:16px;gap:12px}
.stat{padding:12px 14px;border-radius:10px;flex-direction:row;justify-content:center;align-items:baseline;gap:10px}
.stat strong{font-size:1.6rem}
.stat>span:last-child{font-size:.88rem}
@media (max-width:640px){.stats-inner{padding-top:10px;padding-bottom:10px;gap:6px}.stat{flex-direction:column;align-items:center;gap:0;padding:10px 4px}.stat strong{font-size:1.25rem}.stat>span:last-child{font-size:.68rem}}
/* v16.4: dropdown sizing with the real web font */
.dd{padding-top:14px}
.dd-grid{width:auto;min-width:560px;grid-template-columns:max-content max-content;column-gap:12px;padding:12px 12px 8px;border-radius:14px 14px 0 0;border-bottom:0;box-shadow:0 20px 50px -20px rgba(46,54,68,.4)}
.dd-grid a{white-space:nowrap;font-size:.92rem;padding:9px 12px}
.dd-all{margin-top:0;border-radius:0 0 14px 14px;padding:11px;background:var(--slate-deep)}
.dd-inner{background:#fff;border-radius:14px;border:1px solid var(--line);overflow:hidden;box-shadow:0 20px 50px -20px rgba(46,54,68,.4)}
.dd-inner .dd-grid{box-shadow:none;border:0;border-radius:0}
.nav .dd-all{color:#fff;border-bottom:0;padding:11px;font-size:.9rem}
.nav .dd-all:hover{background:var(--orange)}

/* v16.5: contact page */
.contact-section{padding:48px 0 56px}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.contact-card{display:flex;flex-direction:column;gap:4px;padding:22px 22px 20px;border:1.5px solid var(--line);border-radius:14px;background:#fff;text-decoration:none;color:var(--slate-deep);transition:border-color .15s}
a.contact-card:hover{border-color:var(--orange)}
.cc-label{font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--text-soft)}
.contact-card strong{font-size:1.15rem;line-height:1.3}
.cc-email{font-size:1rem;word-break:break-all}
.cc-sub{font-size:.88rem;color:var(--text-soft);font-weight:700}
.contact-card-cta{background:var(--orange);border-color:var(--orange);color:#fff}
.contact-card-cta .cc-label,.contact-card-cta .cc-sub{color:rgba(255,255,255,.85)}
a.contact-card-cta:hover{background:var(--orange-dark);border-color:var(--orange-dark)}
.contact-form-card{position:static}
.contact-form-card .form label{margin-bottom:12px}
.map-band iframe{height:320px}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}.contact-cards{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.contact-cards{grid-template-columns:1fr;gap:10px}.contact-card{padding:16px 18px}.contact-section{padding:28px 0 36px}}

/* ================= v17: mobile hero (home only), JAE-style ================= */
.hero-m-wrap{display:none}
@media (max-width:640px){
  .hero{background-image:none !important;background:#232a36;padding:0 0 26px;min-height:0;display:block}
  .hero::before{display:none}
  .hero-m-wrap{display:block;position:relative;margin-bottom:6px}
  .hero-m-img{display:block;width:100%;height:240px;object-fit:cover;object-position:center 30%}
  .hero-m-wrap::after{content:"";position:absolute;left:0;right:0;bottom:0;height:120px;background:linear-gradient(180deg,rgba(35,42,54,0) 0%,rgba(35,42,54,.6) 55%,#232a36 100%)}
  .hero-trust{position:absolute;left:24px;right:24px;bottom:10px;z-index:1;display:flex;align-items:center;gap:8px;margin:0;color:#e6ebf2;font-weight:600;font-size:.88rem}
  .hero-trust .stars{color:#F5A623;font-size:1rem;letter-spacing:0}
  .hero-grid{gap:18px}
  .hero .hero-kicker{display:none}
  .hero h1{font-size:2.35rem;line-height:1.02;letter-spacing:-.025em;font-weight:900;text-shadow:none;margin:6px 0 .45em;color:#fff}
  .hero .hero-lead{display:block;font-size:1.02rem;line-height:1.5;text-shadow:none;color:#c9d1dc;margin-bottom:0;font-weight:500}
  .hero-points-home{display:none}
  .hero .hero-ctas{margin:20px 0 0;gap:10px}
  .hero .hero-ctas .btn{width:100%;padding:16px 20px;font-size:1.05rem;border-radius:12px}
  .hero .btn-white{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.55)}
  .hero .btn-white:hover{background:rgba(255,255,255,.1)}
  .hero .reviews{margin-top:6px;border-radius:14px}
}

/* v17.2: review strip as marquee on mobile */
.rs-track{display:contents}
@media (max-width:640px){
  .review-strip{overflow:hidden;padding:10px 0}
  .review-strip .wrap{padding:0;max-width:100%;overflow:hidden}
  .rs-inner{display:flex;flex-wrap:nowrap;width:max-content;gap:0;padding:0;animation:marquee 26s linear infinite}
  .rs-track{flex-wrap:nowrap}
  .rs-track{display:flex;gap:28px;padding:0 14px}
  .rs-item{gap:8px;flex-shrink:0}
  .rs-item svg,.rs-item .plat-img{width:24px;height:24px}
  .rs-item strong{font-size:.85rem;white-space:nowrap}
  .rs-name{font-size:.68rem}
  @media (prefers-reduced-motion:reduce){.rs-inner{animation:none;overflow-x:auto;width:auto}}
}
@media (max-width:640px){.rs-item{min-width:max-content;white-space:nowrap}.rs-item div{white-space:nowrap}}

/* ================= v18: logo intro (drum spin -> text pop -> fly to header) ================= */
.intro{position:fixed;inset:0;z-index:200;background:#fff;display:none;align-items:center;justify-content:center}
html.intro-on .intro{display:flex}
html.intro-on .site-header .brand img{opacity:0}
html.intro-on .intro-fade{opacity:0}
.intro-fade{transition:opacity .35s ease}
.il{position:relative;width:min(56vw,230px);aspect-ratio:1/1;will-change:transform}
.il>div{position:absolute;inset:0;background-size:100% 100%;background-repeat:no-repeat}
/* inner drum: logo masked to the blue circle, spinning */
.il-drum{-webkit-mask:radial-gradient(circle closest-side at 50% 50%,#000 0 66%,transparent 67.5%);mask:radial-gradient(circle closest-side at 50% 50%,#000 0 66%,transparent 67.5%)}
.il-ring{-webkit-mask:radial-gradient(circle closest-side at 50% 50%,transparent 0 66%,#000 67.5%);mask:radial-gradient(circle closest-side at 50% 50%,transparent 0 66%,#000 67.5%)}
.il-drum{animation:ilSpin .45s cubic-bezier(.2,.6,.3,1) forwards}
@keyframes ilSpin{0%{transform:rotate(0) scale(.85);opacity:0;filter:blur(2px)}15%{opacity:1;transform:rotate(60deg) scale(1)}60%{filter:blur(2px)}100%{transform:rotate(360deg);filter:blur(0)}}
.il-ring{opacity:0;animation:ilRing .3s cubic-bezier(.34,1.56,.64,1) .4s forwards}
@keyframes ilRing{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
/* droplets whipping round inside the drum */
.il-drops{-webkit-mask:radial-gradient(circle closest-side at 50% 50%,#000 0 64%,transparent 65%);mask:radial-gradient(circle closest-side at 50% 50%,#000 0 64%,transparent 65%);animation:ilDropsSpin .45s cubic-bezier(.2,.6,.3,1) both,ilDropsFade .15s ease .38s forwards}
.il-drops i{position:absolute;left:50%;top:50%;width:6%;height:6%;border-radius:50%;background:#fff;box-shadow:0 0 6px rgba(255,255,255,.9);transform:translate(-50%,-50%) rotate(var(--a)) translateY(calc(var(--r) * -1)) scale(var(--s))}
.il-drops i:nth-child(1){--a:0deg;--r:38%;--s:1}.il-drops i:nth-child(2){--a:45deg;--r:52%;--s:.7}.il-drops i:nth-child(3){--a:90deg;--r:30%;--s:1.2}.il-drops i:nth-child(4){--a:135deg;--r:56%;--s:.6}.il-drops i:nth-child(5){--a:180deg;--r:44%;--s:.9}.il-drops i:nth-child(6){--a:225deg;--r:34%;--s:1.1}.il-drops i:nth-child(7){--a:270deg;--r:58%;--s:.5}.il-drops i:nth-child(8){--a:315deg;--r:48%;--s:.8}
@keyframes ilDropsSpin{0%{transform:rotate(0);opacity:0}15%{opacity:1}100%{transform:rotate(-540deg)}}
@keyframes ilDropsFade{to{opacity:0}}
/* face: SPIN DOCTOR snaps forward with an elastic bounce as the drum clicks to a stop */
.il-face{opacity:0;animation:ilFace .4s cubic-bezier(.34,1.7,.5,1) .4s forwards}
@keyframes ilFace{0%{opacity:0;transform:scale(1.5)}30%{opacity:1}100%{opacity:1;transform:scale(1)}}
/* fly to header */
.intro.is-flying .il{transition:transform .4s cubic-bezier(.4,0,.2,1)}
.intro.is-flying{transition:background .3s ease .1s;background:rgba(255,255,255,0)}
.intro.is-done{display:none !important}
@media (prefers-reduced-motion:reduce){.il>div{animation:none !important}}

/* ================= v19: DM Sans typography ================= */
body{font-weight:500;letter-spacing:-.005em}
h1,h2,h3{font-weight:800;letter-spacing:-.03em}
h1{letter-spacing:-.035em}
.btn,.nav a,.phone,.mobile-nav a,.stat strong,.score-num,.pay-amount,.stock-foot strong,.price,.tl-num,.step-num{font-weight:700}
.btn{letter-spacing:-.01em}
.hero-kicker,.eyebrow,.cc-label,.filter-group h3{font-weight:700}
.stat strong,.score-num,.big-link{font-weight:800;letter-spacing:-.03em}
.hero h1{letter-spacing:-.04em}
@media (max-width:640px){.hero h1{letter-spacing:-.035em}}

/* ================= v20: "I need help with" + booking popup ================= */
.help-form{margin:22px 0 0;max-width:640px}
.help-form label{display:block;color:#fff;font-weight:700;font-size:1.05rem;margin-bottom:10px;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.help-row{display:flex;gap:10px;background:#fff;padding:8px;border-radius:16px;box-shadow:0 24px 60px -20px rgba(0,0,0,.5)}
.help-row select{flex:1;border:0;background:var(--mist);border-radius:10px;padding:14px 16px;font:inherit;font-weight:700;font-size:1.05rem;color:var(--slate-deep);min-width:0}
.help-row select:focus{outline:2px solid var(--blue);outline-offset:0}
.help-row .btn{flex-shrink:0;border-radius:10px}
.help-note{color:rgba(255,255,255,.85);font-size:.9rem;font-weight:600;margin:12px 0 0;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.book-modal{position:fixed;inset:0;z-index:95;background:rgba(30,36,48,.6);display:flex;align-items:center;justify-content:center;padding:24px}
.book-modal[hidden]{display:none}
.book-modal-panel{position:relative;width:min(960px,100%);height:min(92vh,900px);background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.4)}
.book-modal-close{position:absolute;top:12px;right:12px;z-index:2;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.15)}
#book-frame{width:100%;height:100%;border:0;display:block}
body.modal-open{overflow:hidden}
/* embed mode for the booking page inside the popup */
html.embed .site-header,html.embed .site-footer,html.embed .cta-band,html.embed .mobile-cta,html.embed .page-hero,html.embed .intro{display:none !important}
html.embed body{padding-bottom:0}
html.embed .section{padding:28px 0}
html.embed .book-grid{grid-template-columns:1fr}
html.embed .book-grid .side-card{display:none}
html.embed .book-form{border:0;padding:8px 4px}
/* review strip duplicate track: desktop shows one */
.rs-track[aria-hidden="true"]{display:none}
@media (max-width:640px){
  .rs-track[aria-hidden="true"]{display:flex}
  .help-form{margin-top:16px}
  .help-form label{font-size:.98rem;text-shadow:none}
  .help-row{flex-direction:column;padding:8px}
  .help-row select{padding:14px}
  .help-row .btn{width:100%}
  .help-note{text-shadow:none;font-size:.85rem;color:#c9d1dc}
  .hero .hero-lead{display:none}
}

/* v20.1: mobile header = logo · phone number · basket + menu */
@media (max-width:640px){
  .mobile-call{display:none}
  .header-inner{min-height:76px;gap:10px}
  .brand img{width:60px;height:60px}
  .header-actions{display:flex;margin-left:0;flex:1;justify-content:center;gap:0}
  .header-actions .phone{display:inline-block;font-size:1.05rem;font-weight:800;color:var(--slate-deep);letter-spacing:-.01em;white-space:nowrap}
  .header-actions .btn{display:none}
  .header-actions .basket-link{display:none}
  .mobile-actions{display:flex;align-items:center;gap:6px;margin-left:auto}
  .mobile-actions .basket-link{display:inline-grid;width:44px;height:44px}
  .menu-toggle{margin-left:0;padding:8px 4px 8px 8px}
}
.mobile-actions{display:none}
@media (max-width:640px){.mobile-actions{display:flex}}
/* v20.2: ticks under the help form */
.hero-points-home{margin-top:18px;max-width:640px}
.hero-points-home li{color:#fff;font-size:.98rem;text-shadow:0 1px 8px rgba(0,0,0,.35)}
@media (max-width:640px){.hero-points-home{display:grid;margin-top:14px;gap:6px}.hero-points-home li{font-size:.92rem;text-shadow:none;color:#e6ebf2}}
/* v20.3: review marquee fix (the .wrap max-width was capping the track) */
@media (max-width:640px){
  .review-strip .rs-inner{max-width:none;width:max-content;will-change:transform;backface-visibility:hidden}
  .review-strip{contain:paint}
}
/* v20.4: mobile headline: line 1 left, "& installations" centred beneath */
@media (max-width:640px){
  .hero h1{display:flex;flex-direction:column}
  .hero h1 .h1-l1{white-space:nowrap}
  .hero h1 .h1-l2{text-align:center;display:block}
}
@media (max-width:360px){.hero h1{font-size:1.9rem}}
@media (max-width:640px){
  .hero h1{font-size:min(2.35rem,9.4vw)}
  .hero h1 .h1-l1{white-space:normal}
}

/* ================= v23: product pages ================= */
.crumbs{font-size:.88rem;color:var(--text-soft);font-weight:700;margin-bottom:18px}
.crumbs a{color:var(--text-soft);text-decoration:none}
.crumbs a:hover{color:var(--orange)}
.product-section{padding:28px 0 56px}
.product-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:start}
.pg-main{background:#fff;border:1.5px solid var(--line);border-radius:16px;aspect-ratio:1/1;display:grid;place-items:center;overflow:hidden}
.pg-main img{width:100%;height:100%;object-fit:contain;padding:18px;box-sizing:border-box}
.pg-thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto;padding-bottom:4px}
.pg-thumb{flex:0 0 72px;height:72px;border:1.5px solid var(--line);border-radius:10px;background:#fff;padding:4px;cursor:pointer}
.pg-thumb img{width:100%;height:100%;object-fit:contain}
.pg-thumb.is-active{border-color:var(--orange)}
.product-buy h1{font-size:clamp(1.5rem,2.6vw,2rem);margin:10px 0 4px}
.product-sub{color:var(--text-soft);font-weight:700;margin-bottom:14px}
.product-feats{margin:0 0 18px;gap:6px}
.product-feats li{font-size:.95rem}
.price-box{background:var(--sky);border-radius:14px;padding:14px 18px;margin-bottom:14px}
.price-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid rgba(46,54,68,.08);font-weight:700;color:var(--text-soft)}
.price-row strong{color:var(--slate-deep)}
.price-opt{cursor:pointer;margin:0}
.price-opt input{accent-color:var(--orange);margin-right:8px;vertical-align:-1px}
.price-total{border-bottom:0;padding-top:12px;font-size:1.05rem;color:var(--slate-deep)}
.price-total strong{font-size:1.5rem;color:var(--orange-dark)}
.product-info{display:grid;grid-template-columns:1.2fr .8fr;gap:44px}
.product-info p{color:var(--text-soft)}
.spec-table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;border:1.5px solid var(--line)}
.spec-table td{padding:9px 14px;border-bottom:1px solid var(--line);font-weight:700;font-size:.92rem}
.spec-table td:first-child{color:var(--text-soft);width:50%}
.spec-table tr:last-child td{border-bottom:0}
.rel-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:22px}
.rel-card{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--slate-deep);background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:14px;font-weight:700}
.rel-card img{width:100%;aspect-ratio:1/1;object-fit:contain}
.rel-card strong{color:var(--orange-dark)}
.rel-card:hover{border-color:var(--orange)}
.stock-img{display:block;text-decoration:none}
.stock-img img{object-fit:contain;padding:10px;box-sizing:border-box;background:#fff}
.stock-body h3 a{color:inherit;text-decoration:none}
.stock-body h3 a:hover{color:var(--orange)}
.stock-price{display:flex;flex-direction:column;line-height:1.2}
.stock-price span{font-size:.75rem;color:var(--text-soft);font-weight:700}
@media (max-width:860px){.product-grid,.product-info{grid-template-columns:1fr;gap:22px}.rel-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.product-section{padding:16px 0 36px}.pg-thumb{flex-basis:56px;height:56px}.stock-foot{align-items:stretch}.stock-price{margin-bottom:6px}}
.stock-img{aspect-ratio:1/1;display:grid;place-items:center;overflow:hidden}
.stock-img img{width:100%;height:100%;object-fit:contain;padding:12px}
/* v25: town links on areas hub */
.county-grid-wide{grid-template-columns:1fr 1fr}
.county-grid-wide .county{text-align:left}
.town-links{margin:8px 0 0;line-height:1.9}
.town-links a{color:var(--slate-deep);text-decoration:none;font-weight:700;white-space:nowrap}
.town-links a:hover{color:var(--orange)}
@media (max-width:640px){.county-grid-wide{grid-template-columns:1fr}}
/* v26: local reviews */
.local-reviews{background:#fff}
.lr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.lr-card{background:var(--mist);border-radius:14px;padding:20px 22px;display:flex;flex-direction:column;gap:8px}
.lr-top{display:flex;align-items:center;gap:10px}
.lr-score{background:var(--orange);color:#fff;font-weight:900;font-size:.8rem;padding:3px 9px;border-radius:999px;flex-shrink:0}
.lr-card p{margin:0;color:var(--text-soft);font-size:.95rem}
.lr-meta{font-size:.8rem;font-weight:700;color:var(--text-soft);margin-top:auto}
@media (max-width:860px){.lr-grid{grid-template-columns:1fr}}
/* v27: catalogue tools + review counter */
.shop-tools{display:flex;align-items:center;gap:16px}
.sort-label{font-size:.88rem;font-weight:700;color:var(--text-soft);display:flex;align-items:center;gap:6px}
.sort-label select{font:inherit;font-weight:700;border:1.5px solid var(--line);border-radius:8px;padding:6px 10px;background:#fff;color:var(--slate-deep)}
.load-more-wrap{text-align:center;margin:24px 0 0}
.review-counter{font-size:.8rem;font-weight:800;color:var(--text-soft);padding:0 6px}
@media (max-width:640px){.shop-bar{flex-direction:column;align-items:flex-start;gap:8px}}
/* v28: availability day picker */
.day-picker{margin:4px 0 16px}
.day-picker-label{font-weight:800;color:var(--slate-deep);margin-bottom:8px}
.day-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.day{background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:10px 6px;font:inherit;font-weight:700;font-size:.8rem;color:var(--text-soft);cursor:pointer;line-height:1.3;position:relative}
.day strong{font-size:1.25rem;color:var(--slate-deep)}
.day span{font-size:.75rem}
.day:hover{border-color:var(--blue)}
.day.is-picked{border-color:var(--orange);background:#fff6ee;box-shadow:0 0 0 2px var(--orange)}
.day.is-full{opacity:.45;cursor:not-allowed}
.day em{display:block;font-style:normal;font-size:.7rem;color:var(--orange-dark);font-weight:900}
@media (max-width:640px){.day-grid{grid-template-columns:repeat(5,1fr);gap:6px}.day{padding:8px 2px}.day strong{font-size:1.05rem}}
/* v30.5: long CTA labels wrap instead of overflowing */
.funnel-nav .btn{white-space:normal;line-height:1.2}
@media (max-width:640px){.funnel-nav .btn-lg{padding:14px 16px;font-size:1rem}}
/* ================= v31: guided fault-finder ================= */
.diag{background:var(--sky);border-radius:14px;padding:16px 18px;margin-bottom:14px}
.diag-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.diag-head strong{color:var(--slate-deep)}
.diag-head .link-btn{font-size:.85rem;font-weight:700;text-decoration:none;color:var(--text-soft)}
.diag-question{font-weight:800;color:var(--slate-deep);margin:0 0 10px}
.diag-answers{display:flex;flex-wrap:wrap;gap:8px}
.diag-btn{background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:9px 14px;font:inherit;font-weight:700;color:var(--slate-deep);cursor:pointer;text-align:left}
.diag-btn:hover{border-color:var(--orange)}
.diag-trail{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.diag-chip{background:var(--slate-deep);color:#fff;font-size:.78rem;font-weight:800;padding:4px 10px;border-radius:999px}
.diag-outcome{background:#fff;border-radius:10px;padding:12px 14px;color:var(--slate-deep);font-weight:600}
.diag-outcome .link-btn{margin-left:6px;font-size:.85rem}
.shake{animation:shake .4s}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
@media (max-width:640px){.diag{padding:14px}.diag-btn{width:100%;text-align:center}}

/* ================= v32: shop toolbar ================= */
.shop-toolbar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:end;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:12px 16px;margin-bottom:14px}
.shop-toolbar label{display:flex;flex-direction:column;gap:4px;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-soft)}
.shop-toolbar select{font:inherit;font-weight:700;font-size:.92rem;border:1.5px solid var(--line);border-radius:9px;padding:8px 10px;background:#fff;color:var(--slate-deep);min-width:150px;text-transform:none;letter-spacing:0}
.tb-switch{flex-direction:row !important;align-items:center;gap:8px !important;text-transform:none !important;letter-spacing:0 !important;font-size:.92rem !important;color:var(--slate-deep) !important;padding-bottom:9px}
.tb-switch input{width:18px;height:18px;accent-color:var(--orange)}
.shop-toolbar .link-btn{margin-left:auto;padding-bottom:10px}
.shop-section .stock-grid{grid-template-columns:repeat(4,1fr)}
@media (max-width:1020px){.shop-section .stock-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:860px){.shop-section .stock-grid{grid-template-columns:repeat(2,1fr)}.shop-toolbar select{min-width:0;width:100%}.shop-toolbar label{flex:1 1 45%}.tb-switch{flex-basis:100%}}
@media (max-width:640px){.shop-toolbar{padding:10px 12px;gap:8px 10px}.shop-section .stock-grid{grid-template-columns:1fr 1fr;gap:10px}}

/* ================= v33: policy pages, footer credit ================= */
.policy-wrap{max-width:820px}
.policy h1{font-size:clamp(1.7rem,3vw,2.3rem);margin-bottom:.3em}
.policy h2{font-size:1.25rem;margin:32px 0 10px}
.policy p{color:var(--text-soft)}
.policy .checks{gap:10px;margin:10px 0 0}
.policy .checks li{font-weight:600;color:var(--text)}
.policy-note{background:var(--sky);border-radius:12px;padding:12px 16px;color:var(--slate-deep) !important;font-weight:600}
.footer-bottom .made-by{color:var(--blue-dark);font-weight:800;text-decoration:none}
.footer-bottom .made-by:hover{text-decoration:underline}
.terms-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--line)}
#terms-body h1,#terms-body h2{font-size:1.6rem;margin:0 0 .4em}
#terms-body h4{font-size:1.1rem;margin:26px 0 8px;color:var(--slate-deep)}
#terms-body p,#terms-body li{color:var(--text-soft);font-weight:500}
#terms-body ul{list-style:disc;padding-left:22px;display:grid;gap:8px}
#terms-body strong{color:var(--slate-deep)}

/* ================= v34: tidier footer ================= */
.footer-grid{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:36px;padding:48px 24px 28px}
.footer-about p{margin-bottom:.6em}
.footer-about address{font-size:.9rem;color:var(--text-soft);font-weight:600;margin-bottom:12px}
.footer-hours{display:grid;gap:4px;font-size:.9rem;font-weight:700;color:var(--slate-deep)}
.footer-hours span{display:inline-block;width:82px;color:var(--text-soft);font-weight:700}
.footer-accred-wrap{border-top:1px solid var(--line);padding:14px 0}
.footer-accred-wrap summary{cursor:pointer;font-weight:800;color:var(--slate-deep);list-style:none;display:flex;align-items:center;gap:8px}
.footer-accred-wrap summary::-webkit-details-marker{display:none}
.footer-accred-wrap summary::after{content:"";width:8px;height:8px;border-right:2px solid var(--slate-deep);border-bottom:2px solid var(--slate-deep);transform:rotate(45deg);margin-left:4px;transition:transform .2s}
.footer-accred-wrap[open] summary::after{transform:rotate(-135deg)}
.footer-accred-row{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:14px}
.footer-accred-row a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--slate-deep);font-weight:800;font-size:.9rem}
.footer-accred-row a svg,.footer-accred-row a .plat-img{width:22px;height:22px}
.footer-accred-row span{display:flex;flex-direction:column;line-height:1.15}
.footer-accred-row small{font-weight:600;color:var(--text-soft);font-size:.75rem}
@media (min-width:861px){.footer-accred-wrap[open] summary{margin-bottom:0}}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){
  .footer-grid{grid-template-columns:1fr;gap:6px;padding:28px 20px 10px}
  .footer-about{margin-bottom:12px}
  .footer-accred-row{gap:8px 16px}
  .footer-accred-row a{font-size:.85rem}
}
.footer-hours span{width:92px}

/* ================= v35 ================= */
.about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.about-card{background:#fff;border-radius:14px;padding:22px 22px 20px;border:1.5px solid var(--line)}
.about-card h3{margin-bottom:.4em;font-size:1.05rem}
.about-card p{margin:0;color:var(--text-soft);font-size:.95rem}
@media (max-width:860px){.about-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){
  .about-grid{grid-template-columns:1fr}
  /* prices tier table: stack each row as a card, no overlap */
  .tier-table,.tier-table tbody,.tier-table tr,.tier-table td{display:block;width:100%}
  .tier-table thead{display:none}
  .tier-table tr{border-bottom:1px solid var(--line);padding:12px 0}
  .tier-table td{padding:4px 12px !important;border:0 !important;text-align:left !important;white-space:normal !important;font-size:.95rem !important}
  .tier-table td[data-label]{display:flex;justify-content:space-between;gap:10px}
  .tier-table td[data-label]::before{content:attr(data-label);color:var(--text-soft);font-weight:700;font-size:.85rem}
  .tier-table td:first-child{font-size:1rem !important;padding-bottom:6px !important}
}
@media (max-width:640px){.tier-table .td-sub{display:block;width:100%;max-width:none;white-space:normal}.tier-table td:first-child{width:100%}.tier-table td[data-label]::before{max-width:60%}}
/* v36.1: product gallery must not exceed the viewport on phones */
.product-grid>*{min-width:0}
.product-gallery,.pg-main,.pg-thumbs{max-width:100%}
.pg-main{box-sizing:border-box}
@media (max-width:640px){.product-section .wrap{padding:0 16px}.product-grid{width:100%}.pg-main{width:100%;aspect-ratio:1/1}}
.pg-thumbs{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}

/* ================= v38: bigger logo, overlapping header edges ================= */
.site-header{overflow:visible}
.header-inner{position:relative;overflow:visible}
.brand{position:relative;z-index:61;display:block;margin:-18px 0 -18px}
.brand img{width:94px;height:94px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.18))}
@media (max-width:1180px){.brand img{width:86px;height:86px}}
@media (max-width:640px){
  .header-inner{min-height:74px}
  .brand{margin:-8px 0 -14px}
  .brand img{width:78px;height:78px}
}

/* ================= v39: counties with town dropdowns ================= */
.county-dd-list{display:grid;gap:10px;max-width:900px;margin:0 auto}
.county-dd{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:0 18px}
.county-dd summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:16px 0;font-weight:800;font-size:1.1rem;color:var(--slate-deep)}
.county-dd summary::-webkit-details-marker{display:none}
.county-dd summary a{color:inherit;text-decoration:none}
.county-dd summary a:hover{color:var(--orange)}
.county-dd summary small{font-size:.85rem;font-weight:700;color:var(--text-soft);display:flex;align-items:center;gap:10px}
.county-dd summary small::after{content:"";width:9px;height:9px;border-right:2px solid var(--slate-deep);border-bottom:2px solid var(--slate-deep);transform:rotate(45deg);transition:transform .2s}
.county-dd[open] summary small::after{transform:rotate(-135deg)}
.county-dd .town-links{padding:0 0 16px;margin:0;color:var(--text-soft);font-weight:600;line-height:2}
.county-dd .town-links a{color:var(--slate-deep);text-decoration:underline;text-decoration-color:var(--blue);text-underline-offset:3px;font-weight:700}

/* ================= v40: why choose us ================= */
.why{background:#fff;padding:80px 0}
.why-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.why-photo{position:relative}
.why-photo img{width:100%;height:100%;min-height:520px;object-fit:cover;object-position:60% center;border-radius:20px;box-shadow:0 24px 60px -30px rgba(46,54,68,.5)}
.why-photo::after{content:"";position:absolute;left:-14px;bottom:-14px;width:45%;height:45%;border-radius:20px;background:var(--sky);z-index:-1}
.why-copy h2{font-size:clamp(1.7rem,2.9vw,2.3rem);margin-bottom:22px}
.why-list{display:grid;gap:14px;margin:0 0 26px}
.why-list li{position:relative;padding-left:40px}
.why-list li::before{content:"";position:absolute;left:0;top:3px;width:26px;height:26px;border-radius:50%;background:var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.3l2.6 2.6L12 5.5' stroke='%23fff' stroke-width='2.2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/15px no-repeat}
.why-list strong{display:block;color:var(--slate-deep);font-size:1.02rem;margin-bottom:2px}
.why-list span{color:var(--text-soft);font-size:.95rem;line-height:1.5}
@media (max-width:1020px){.why-grid{gap:36px}.why-photo img{min-height:440px}}
@media (max-width:860px){.why{padding:56px 0}.why-grid{grid-template-columns:1fr;gap:28px}.why-photo img{min-height:0;aspect-ratio:16/10}.why-photo::after{display:none}}
@media (max-width:640px){.why{padding:44px 0}.why-list{gap:12px}.why-list li{padding-left:36px}.why-list li::before{width:24px;height:24px}.why-copy .hero-ctas .btn{width:100%}}
/* v41: footer accordion buttons look like the headings did */
.footer-col h3 button{all:unset;cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%}
.footer-collapsible h3::after{display:none}
@media (max-width:640px){.footer-collapsible h3 button::after{content:"";width:9px;height:9px;border-right:2px solid var(--slate-deep);border-bottom:2px solid var(--slate-deep);transform:rotate(45deg);margin-right:6px;transition:transform .2s}.footer-collapsible h3.is-open button::after{transform:rotate(-135deg)}}
/* v42: why section — points only on mobile, portrait/landscape photo swap */
.why-photo picture{display:block;height:100%}
@media (max-width:640px){
  .why-list span{display:none}
  .why-list{gap:10px}
  .why-list strong{font-size:1rem;line-height:1.35}
  .why-list li{padding-left:34px}
  .why-copy h2{font-size:1.5rem;margin-bottom:18px}
}

/* ================= v43: tighter vertical rhythm ================= */
.section{padding:64px 0}
.why{padding:64px 0}
.section+.section,.why+.section,.section+.why{padding-top:56px}
/* a coloured band next to a white one doesn't need double padding */
.section-sky+.section,.section-slate+.section,.feature-band+.section{padding-top:56px}
.section-head{margin-bottom:32px}
.fault-strip{margin-top:24px}
.cta-band{padding:56px 0}
@media (max-width:860px){.section,.why{padding:48px 0}.section+.section,.why+.section,.section+.why{padding-top:44px}}
@media (max-width:640px){
  .section,.why{padding:38px 0}
  .section+.section,.why+.section,.section+.why{padding-top:34px}
  .section-head{margin-bottom:22px}
  .cta-band{padding:36px 0}
  .brands{padding:20px 0}
}
/* v43.1: white-on-white sections shouldn't stack two full paddings */
.section+.why,.why+.section{padding-top:0}
.why+.section-sky,.why+.section-slate{padding-top:56px}
@media (max-width:640px){.section+.why,.why+.section{padding-top:0}.why+.section-sky,.why+.section-slate{padding-top:38px}}

/* ================= v45: consent banner ================= */
.consent{position:fixed;left:16px;right:16px;bottom:84px;z-index:120;background:#fff;border:1.5px solid var(--line);border-radius:16px;box-shadow:0 20px 60px -20px rgba(0,0,0,.35);padding:16px 18px;display:flex;justify-content:space-between;align-items:center;gap:16px;max-width:760px;margin:0 auto}
.consent[hidden]{display:none}
.consent p{margin:0;font-size:.92rem;color:var(--slate-deep);font-weight:600}
.consent div{display:flex;gap:8px;flex-shrink:0}
.consent .btn{padding:9px 16px;font-size:.9rem}
@media (min-width:641px){.consent{bottom:16px}}
@media (max-width:640px){.consent{flex-direction:column;align-items:stretch;text-align:center}.consent div{justify-content:center}}
