/* ==========================================================================
   Z&S Plumbing & Heating — Leeds emergency-plumbing PPC landing page (Summit demo)
   Bespoke navy / teal / red system derived from the Z&S logo.
   GLR-calibre media-led finish on an emergency, phone-first conversion spine.
   Mobile-first. Self-hosted Archivo + Fraunces-italic accent. Reduced-motion aware.
   ========================================================================== */

/* ---------- fonts ---------- */
@font-face{font-family:"Archivo";src:url("assets/fonts/archivo-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Archivo";src:url("assets/fonts/archivo-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Archivo";src:url("assets/fonts/archivo-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Archivo";src:url("assets/fonts/archivo-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Archivo";src:url("assets/fonts/archivo-800.woff2") format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"Archivo";src:url("assets/fonts/archivo-900.woff2") format("woff2");font-weight:900;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url("assets/fonts/fraunces-italic-500.woff2") format("woff2");font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:"Fraunces";src:url("assets/fonts/fraunces-italic-600.woff2") format("woff2");font-weight:600;font-style:italic;font-display:swap}

/* ---------- tokens (sampled from the Z&S logo: red #b31d30 · teal #357f9f · navy #2f384b) ---------- */
:root{
  --navy-950:#0f1626;     /* deepest band / scrim base */
  --navy-900:#141d31;     /* dark sections */
  --navy-800:#1b2740;      /* dark panels */
  --navy-700:#243353;     /* raised dark */
  --navy:#2f384b;          /* logo flame */
  --teal:#2f7d9e;          /* structure / brand */
  --teal-bright:#3a93b8;   /* highlight on dark */
  --teal-deep:#1f6280;     /* teal text on light (AA) */
  --red:#c81e30;           /* urgent CTA fill */
  --red-deep:#a4172a;      /* CTA hover / red text on light */
  --red-glow:rgba(200,30,48,.32);
  --ink:#18202e;           /* headings + body on light */
  --ink-soft:#475263;      /* muted body (AA ~7:1) */
  --ink-faint:#5d6776;     /* labels (AA ~4.9:1 on white) */
  --paper:#f3f5f8;         /* cool off-white sections */
  --paper-2:#eef1f5;       /* alt light band */
  --mist:#e6ebf1;          /* tint chips/panels */
  --line:#dde3ea;          /* hairline borders */
  --line-soft:#e8edf2;
  --white:#fff;
  --gold:#f2a93b;          /* review stars */
  --ok:#1f8a52;            /* coverage ok */
  --radius:16px; --radius-lg:22px; --radius-sm:10px; --radius-btn:12px;
  --shadow-sm:0 1px 2px rgba(16,28,48,.06),0 2px 8px rgba(16,28,48,.05);
  --shadow:0 14px 34px -16px rgba(16,28,48,.26),0 3px 10px rgba(16,28,48,.06);
  --shadow-lg:0 34px 80px -30px rgba(10,18,38,.46),0 8px 22px rgba(10,18,38,.10);
  --container:1180px;
  --measure:54ch;          /* readable paragraph width */
  /* deliberate spacing scale (applied by section importance, not uniformly) */
  --s-section:clamp(4.75rem,9vw,8.5rem);     /* standard section block */
  --s-section-lg:clamp(6rem,12vw,11rem);     /* major moments: owner band, closer */
  --s-head:clamp(2.6rem,5vw,4.25rem);        /* section-head → content */
  --s-stack:clamp(1.5rem,2.6vw,2.1rem);      /* heading → copy, copy → cta */
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- reset / base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color:var(--ink);background:var(--white);line-height:1.62;font-size:16px;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0;font-weight:800;line-height:1.04;letter-spacing:-.022em}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;cursor:pointer;color:inherit}
input,textarea,select{font:inherit}
em{font-style:normal}
:focus-visible{outline:3px solid var(--teal);outline-offset:2px;border-radius:5px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:12px;top:-60px;z-index:300;background:var(--navy-900);color:#fff;padding:10px 16px;border-radius:8px;transition:top .2s}
.skip-link:focus{top:12px}
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:22px}

/* serif-italic accent — exactly one accent per heading */
em,.accent{font-family:"Fraunces",Georgia,serif;font-style:italic;font-weight:500;letter-spacing:-.012em}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:inherit;font-weight:700;font-size:1rem;line-height:1;padding:1rem 1.5rem;border-radius:var(--radius-btn);
  border:1.5px solid transparent;transition:transform .15s var(--ease),background .15s,box-shadow .2s,border-color .15s;
  white-space:nowrap;cursor:pointer}
.btn svg{flex:none}
.btn--call{background:var(--red);color:#fff;font-weight:800;box-shadow:0 10px 24px -12px rgba(12,18,31,.55),inset 0 1px 0 rgba(255,255,255,.12)}
.btn--call:hover{background:var(--red-deep);transform:translateY(-1px);box-shadow:0 16px 30px -12px rgba(12,18,31,.6),inset 0 1px 0 rgba(255,255,255,.12)}
.btn--call:active{transform:translateY(0);background:#8f1424;box-shadow:0 5px 12px -8px rgba(12,18,31,.6)}
.btn--call .btn__sub{font-weight:600;font-size:.95em;margin-left:.62em;padding-left:.64em;border-left:1px solid rgba(255,255,255,.4);letter-spacing:.02em;font-variant-numeric:tabular-nums}
.btn--ghost{background:transparent;color:var(--navy-800);border-color:var(--line);font-weight:600}
.btn--ghost:hover{border-color:var(--teal);color:var(--teal-deep);background:#fbfdfe;transform:translateY(-1px)}
.btn--ghost:active{transform:translateY(0);background:#f3f7f9}
.btn--ghost-light{background:transparent;color:#e7eef6;border-color:rgba(255,255,255,.4);font-weight:600}
.btn--ghost-light:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,.09);transform:translateY(-1px)}
.btn--ghost-light:active{transform:translateY(0);background:rgba(255,255,255,.05)}
/* quiet text-link secondary (clearly subordinate to a dominant call) */
.cta-link{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;font-size:.98rem;color:var(--teal-deep);padding:.4rem 0}
.cta-link::after{content:"";position:relative;display:inline-block;width:0;height:1.5px;background:currentColor;transition:width .25s var(--ease);margin-top:1.1em;margin-left:-.2rem}
.cta-link:hover::after{width:1.1rem}
.cta-link--light{color:#bcd6e4}
.cta-link--light:hover{color:#fff}
.btn--solid-light{background:#fff;color:var(--navy-900);border-color:#fff}
.btn--solid-light:hover{background:#eef2f6;transform:translateY(-1px)}
.btn--lg{padding:1.15rem 1.85rem;font-size:1.08rem}
.btn--sm{padding:.66rem 1.05rem;font-size:.9rem;border-radius:10px}
.btn--block{width:100%}
.btn__pulse{width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 0 0 rgba(255,255,255,.7);animation:pulse 2.2s infinite}
@media (prefers-reduced-motion:reduce){.btn__pulse{animation:none}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.55)}70%{box-shadow:0 0 0 8px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}

/* ---------- shared primitives ---------- */
.eyebrow{font-size:.78rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--teal-deep);
  margin:0 0 1rem;display:flex;align-items:center;gap:.6rem}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--teal);border-radius:2px;flex:none}
.eyebrow--center{justify-content:center}
.eyebrow--light{color:var(--teal-bright)}
.eyebrow--red{color:var(--red-deep)}
.eyebrow--red::before{background:var(--red)}
.section{padding-block:var(--s-section)}
.section-head{max-width:720px;margin:0 0 var(--s-head)}
.section-head--center{margin-inline:auto;text-align:center}
.section-head--center .eyebrow{justify-content:center}
.section-head--center .sub{margin-inline:auto}
.section-head h2{font-size:clamp(2.05rem,4.3vw,3.35rem);color:var(--ink);letter-spacing:-.026em}
.section-head .sub{margin-top:1.2rem;color:var(--ink-soft);font-size:1.12rem;max-width:var(--measure)}
.lede{color:var(--ink-soft);font-size:1.12rem;max-width:var(--measure)}

/* tick list */
.ticks{display:grid;gap:.85rem}
.ticks li{position:relative;padding-left:2rem;color:var(--ink-soft);line-height:1.5}
.ticks li b{color:var(--ink);font-weight:700}
.ticks li::before{content:"";position:absolute;left:0;top:.1em;width:1.4rem;height:1.4rem;border-radius:50%;
  background:var(--mist) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%231f6280' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round' d='m5 12.5 4.2 4.3L19 7'/%3E%3C/svg%3E") center/.92rem no-repeat}

/* ===================== UTILITY BAR ===================== */
.ubar{background:var(--navy-950);color:#c7d2e2;font-size:.83rem;position:relative;z-index:2}
.ubar__inner{display:flex;justify-content:center}
.ubar__track{display:flex;gap:0;overflow:hidden;white-space:nowrap;max-width:100%}
.ubar__track li{display:flex;align-items:center;gap:.45rem;padding:.5rem .95rem;position:relative}
.ubar__track li+li::before{content:"";position:absolute;left:0;top:50%;width:4px;height:4px;border-radius:50%;background:#46577a;transform:translateY(-50%)}
.ubar b{color:#fff;font-weight:700}
.ubar a{color:inherit;display:inline-flex;align-items:center;gap:.45rem}
.ubar a:hover b{text-decoration:underline}
.ubar__star{color:var(--gold)}
.ubar__live{width:7px;height:7px;border-radius:50%;background:#37c26a;flex:none}
@keyframes pulse2{0%{box-shadow:0 0 0 0 rgba(55,194,106,.55)}70%{box-shadow:0 0 0 6px rgba(55,194,106,0)}100%{box-shadow:0 0 0 0 rgba(55,194,106,0)}}
@media (prefers-reduced-motion:reduce){.ubar__live{animation:none}}
@media (max-width:1080px){.ubar__track li:nth-child(2){display:none}}
@media (max-width:720px){.ubar__track li:nth-child(4){display:none}}
@media (max-width:520px){.ubar__track li:nth-child(1){display:none}.ubar__track li:nth-child(3)::before{display:none}}

/* ===================== HEADER ===================== */
.site-header{position:sticky;top:0;z-index:100;transition:background .3s,box-shadow .3s,border-color .3s}
.site-header.scrolled{background:rgba(255,255,255,.95);backdrop-filter:saturate(1.4) blur(12px);
  box-shadow:0 8px 28px -16px rgba(10,18,38,.4);border-bottom:1px solid var(--line-soft)}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:72px;padding-block:.55rem}
.brand{display:inline-flex;align-items:center;gap:.6rem}
.brand__logo{height:46px;width:auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.28))}
.scrolled .brand__logo{filter:none}
.nav{display:none;gap:1.7rem;margin-left:auto;margin-right:.4rem}
.nav a{font-weight:600;font-size:.96rem;color:rgba(255,255,255,.86);position:relative;padding:.3rem 0;text-shadow:0 1px 8px rgba(0,0,0,.3)}
.nav a:hover{color:#fff}
.scrolled .nav a{color:var(--ink-soft);text-shadow:none}
.scrolled .nav a:hover{color:var(--ink)}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:2px;background:var(--teal);transition:right .25s var(--ease)}
.nav a:hover::after{right:0}
.header__cta{display:flex;align-items:center;gap:.7rem}
.hdr-24{display:none;align-items:center;gap:.45rem;font-size:.84rem;font-weight:600;color:#eaf1f6;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.hdr-24 svg{width:15px;height:15px;color:var(--teal-bright)}
.scrolled .hdr-24{color:var(--ink-soft);text-shadow:none}
.scrolled .hdr-24 svg{color:var(--teal-deep)}
@media (prefers-reduced-motion:reduce){.hdr-24 .dot{animation:none}}
.tel-btn{display:inline-flex;align-items:center;gap:.55rem;background:var(--red);color:#fff;font-weight:800;
  padding:.72rem 1.15rem;border-radius:var(--radius-btn);box-shadow:0 8px 20px -12px rgba(12,18,31,.5);transition:transform .15s var(--ease),background .15s}
.tel-btn:hover{background:var(--red-deep);transform:translateY(-1px)}
.tel-btn__num{letter-spacing:-.01em}
.tel-btn__lead{display:none}
.tel-btn .ico{width:18px;height:18px}

/* ===================== HERO ===================== */
.hero{position:relative;isolation:isolate;min-height:clamp(640px,84vh,800px);margin-top:-72px;display:flex;align-items:center;
  padding-top:148px;padding-bottom:clamp(3.2rem,6vw,5rem);overflow:hidden;background:var(--navy-900)}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:54% 15%;z-index:-3}
/* directional navy scrim: strong left for the copy, lighter right to keep the action visible */
.hero::before{content:"";position:absolute;inset:0;z-index:-2;
  background:linear-gradient(96deg,
    rgba(11,17,30,.97) 0%,
    rgba(12,18,32,.95) 33%,
    rgba(13,20,35,.83) 49%,
    rgba(16,23,40,.5) 64%,
    rgba(17,25,44,.18) 80%,
    rgba(17,25,44,0) 100%)}
/* grounding + top fade for header legibility */
.hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(to bottom,rgba(11,17,31,.55) 0%,rgba(11,17,31,0) 16%,rgba(11,17,31,0) 62%,rgba(11,17,31,.5) 100%)}
.hero__inner{width:100%}
.hero__content{max-width:600px}
.hero__kicker{display:inline-flex;align-items:center;gap:.7rem;color:#cfe8f3;font-size:.96rem;font-weight:600;
  letter-spacing:.01em;margin-bottom:1.5rem;text-shadow:0 1px 10px rgba(0,0,0,.5)}
.hero__kicker::before{content:"";width:30px;height:2px;background:var(--teal-bright);border-radius:2px;flex:none}
.hero h1{color:#fff;font-size:clamp(2.5rem,5.1vw,4.5rem);font-weight:800;line-height:.98;letter-spacing:-.03em;
  text-shadow:0 2px 30px rgba(0,0,0,.42);margin-bottom:1.6rem;max-width:13ch}
.hero h1 em{color:#7fd6f0;font-weight:600}
.hero__sub{color:rgba(234,240,247,.94);font-size:clamp(1.08rem,1.5vw,1.26rem);max-width:46ch;line-height:1.58;
  text-shadow:0 1px 14px rgba(0,0,0,.36);margin-bottom:2.1rem}
.hero__sub b{color:#fff;font-weight:700}
.hero__cta{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center}
.hero__cta .btn--call{font-size:1.12rem;padding:1.18rem 1.7rem}
.hero__rate{display:inline-flex;align-items:center;gap:.6rem;margin-top:1.6rem;color:#e8eef6;font-size:.95rem;
  text-shadow:0 1px 10px rgba(0,0,0,.36)}
.hero__rate .stars{color:var(--gold);letter-spacing:1px;font-size:1.02rem}
.hero__rate b{color:#fff;font-weight:800}
.hero__rate a{display:inline-flex;align-items:center;gap:.5rem}
.hero__rate a:hover .ul{text-decoration:underline}
.hero__rate .gmark{width:17px;height:17px}
.hero__rate .sep{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.45)}

/* immediate trust / coverage strip pinned under the hero copy */
.hero__strip{position:absolute;left:0;right:0;bottom:0;z-index:1;background:linear-gradient(to top,rgba(11,17,31,.62),rgba(11,17,31,0));
  border-top:1px solid rgba(255,255,255,.1)}
.hero__strip-row{display:flex;flex-wrap:wrap;gap:.2rem 0;padding-block:1.05rem}
.hero__strip-row li{display:flex;align-items:center;gap:.6rem;color:#dbe4ef;font-size:.92rem;font-weight:600;
  padding:.2rem 1.4rem;position:relative;flex:1 1 auto;justify-content:center}
.hero__strip-row li+li::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:26px;background:rgba(255,255,255,.16)}
.hero__strip-row svg{width:19px;height:19px;color:var(--teal-bright);flex:none}
.hero__strip-row b{color:#fff;font-weight:700}
.hero__strip-foot{font-size:.76rem;color:rgba(223,232,242,.72);padding:.2rem 0 .7rem;text-align:center}

/* ===================== IMMEDIATE TRUST / COVERAGE BAR (below hero) ===================== */
.trustbar{background:var(--white);border-bottom:1px solid var(--line)}
.trustbar__row{display:grid;grid-template-columns:repeat(4,1fr);padding-block:clamp(1.6rem,3vw,2.3rem)}
.trustbar__item{display:flex;align-items:center;gap:.85rem;padding-inline:clamp(1rem,2vw,1.8rem)}
.trustbar__item+.trustbar__item{border-left:1px solid var(--line)}
.trustbar__item svg{width:26px;height:26px;color:var(--teal-deep);flex:none}
.trustbar__item b{display:block;color:var(--ink);font-weight:700;font-size:1.02rem;line-height:1.18;letter-spacing:-.01em}
.trustbar__item span{color:var(--ink-faint);font-size:.85rem}
.trustbar__foot{text-align:center;color:var(--ink-faint);font-size:.82rem;padding-bottom:1.15rem}
@media (max-width:820px){
  .trustbar__row{grid-template-columns:1fr 1fr;gap:1.3rem 0}
  .trustbar__item{padding-block:.2rem}
  .trustbar__item:nth-child(odd){border-left:none}
}
@media (max-width:460px){
  .trustbar__row{grid-template-columns:1fr;gap:1.05rem}
  .trustbar__item{border-left:none!important}
}

/* ===================== MOBILE STICKY CALL BAR ===================== */
.stickybar{position:fixed;left:0;right:0;bottom:0;z-index:200;display:none;gap:.6rem;padding:.6rem .8rem calc(.6rem + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-top:1px solid var(--line);box-shadow:0 -8px 24px -16px rgba(10,18,38,.5)}
.stickybar .btn{flex:1}
.stickybar .btn--call{flex:1.7}

/* ===================== FOOTER ===================== */
.site-footer{background:var(--navy-950);color:#aeb9ca;padding-top:clamp(3rem,5vw,4.4rem)}
.footer__grid{display:grid;grid-template-columns:1.5fr;gap:2.4rem;padding-bottom:2.6rem}
.footer__brand .footer__logo{height:54px;width:auto;margin-bottom:1.1rem}
.footer__brand p{max-width:42ch;line-height:1.6;font-size:.96rem}
.footer__contact{display:grid;gap:.5rem;margin-top:1.2rem}
.footer__contact a{color:#fff;font-weight:700}
.footer__contact .tel-main{font-size:1.3rem;font-weight:800;letter-spacing:-.01em;display:inline-flex;align-items:center;gap:.5rem}
.footer__contact .muted{color:#8794a8;font-weight:500;font-size:.92rem}
.footer__cols{display:grid;grid-template-columns:repeat(2,1fr);gap:1.8rem}
.footer__col h3{color:#fff;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;margin-bottom:.9rem}
.footer__col li{margin-bottom:.5rem;font-size:.95rem}
.footer__col a:hover{color:#fff}
.footer__hours{display:grid;gap:.3rem;font-size:.95rem}
.footer__hours b{color:#fff}
.footer__legal{border-top:1px solid rgba(255,255,255,.1);padding-block:1.5rem 2.2rem;font-size:.84rem;color:#94a1b5;display:grid;gap:.6rem}
.footer__legal .demo{color:#8995a8}
.footer__legal .demo span{display:inline-block;border:1px solid #3a4663;border-radius:5px;padding:.05rem .4rem;color:#aab6c9;font-size:.76rem;letter-spacing:.06em}
.footer__legal a{color:#aeb9ca;text-decoration:underline}

/* ===================== RESPONSIVE (hero-critical) ===================== */
@media (min-width:680px){
  .tel-btn__lead{display:inline;padding-right:.52em;margin-right:.05em;border-right:1px solid rgba(255,255,255,.32)}
  .hero__strip-row li{font-size:.95rem}
}
@media (min-width:900px){
  .nav{display:flex}
  .hdr-24{display:inline-flex}
  .footer__grid{grid-template-columns:1.6fr 1fr 1.1fr;gap:3rem}
  .footer__cols{grid-template-columns:1fr}
}
@media (max-width:899px){
  .footer__cols{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  .header__inner{min-height:60px}
  .brand__logo{height:38px}
  .hero{min-height:92vh;margin-top:-60px;padding-top:0;padding-bottom:0;display:flex;flex-direction:column}
  /* bottom-weighted scrim on mobile: face visible up top, copy readable below */
  .hero::before{background:linear-gradient(to top,
    rgba(12,18,31,.97) 0%, rgba(14,21,36,.92) 24%, rgba(15,22,38,.66) 48%, rgba(15,22,38,.28) 72%, rgba(15,22,38,.06) 100%)}
  .hero::after{background:linear-gradient(to bottom,rgba(11,17,31,.62) 0%,rgba(11,17,31,0) 22%)}
  .hero__img{object-position:60% 11%}
  .hero__inner{flex:1;display:flex;align-items:flex-end;padding-top:94px;padding-bottom:1.3rem}
  .hero h1{font-size:clamp(2.3rem,8.4vw,3rem);max-width:18ch;margin-bottom:1rem}
  .hero__sub{font-size:1.04rem;margin-bottom:1.4rem;max-width:100%}
  .hero__content{max-width:100%}
  .hero__cta{flex-direction:column;align-items:stretch;gap:.7rem}
  .hero__cta .btn{width:100%}
  .hero__cta .btn--call{font-size:1.08rem}
  .hero__rate{flex-wrap:wrap;margin-top:1.2rem;row-gap:.5rem}
  .hero__strip{position:static}
  .hero__strip-row{padding-block:.9rem}
  .stickybar{display:flex}
  .tel-btn{padding:.56rem .68rem}
}
@media (max-width:420px){
  .hero__strip-row li{flex-basis:50%;justify-content:flex-start;padding-inline:.6rem}
  .hero__strip-row li:nth-child(1)::before,.hero__strip-row li:nth-child(3)::before{display:none}
}

/* ===================== EMERGENCY SERVICES ===================== */
.services{background:var(--paper)}
.services__grid{display:grid;grid-template-columns:1fr;gap:clamp(2.2rem,4vw,4rem)}
.services__head h2{font-size:clamp(1.95rem,4.2vw,3rem);margin-bottom:1.1rem}
.services__head .lede{max-width:44ch}
.services__note{display:flex;align-items:center;gap:.6rem;margin:1.4rem 0 1.6rem;color:var(--teal-deep);font-weight:600;font-size:.96rem}
.services__note svg{flex:none;color:var(--teal)}
.svc-list{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--line)}
.svc{display:flex;gap:1.15rem;align-items:flex-start;padding:1.45rem .2rem;border-bottom:1px solid var(--line);transition:background .15s}
.svc:hover{background:rgba(255,255,255,.65)}
.svc__ic{flex:none;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);color:var(--teal-deep)}
.svc__ic svg{width:23px;height:23px}
.svc b{display:block;color:var(--ink);font-weight:700;font-size:1.06rem;margin-bottom:.15rem}
.svc span{color:var(--ink-soft);font-size:.96rem;line-height:1.5}
@media (min-width:880px){
  .services__grid{grid-template-columns:.92fr 1.18fr;align-items:start}
  .svc-list{grid-template-columns:1fr 1fr;column-gap:2.4rem}
  .svc-list{border-top:none}
  .svc:nth-child(1),.svc:nth-child(2){border-top:1px solid var(--line)}
}

/* ===================== OWNER-OPERATED (dark band) ===================== */
.owner{position:relative;background:
  radial-gradient(120% 140% at 88% 0%,rgba(47,125,158,.22),transparent 55%),
  linear-gradient(180deg,var(--navy-900),var(--navy-950));
  color:#dbe4ef;padding-block:var(--s-section-lg);overflow:hidden}
.owner__grid{display:grid;grid-template-columns:1fr;gap:clamp(2.2rem,4vw,3.4rem);align-items:center}
.owner__body h2{color:#fff;font-size:clamp(2rem,4.2vw,3.1rem);margin-bottom:1.2rem}
.owner__body h2 em{color:var(--teal-bright)}
.owner__lead{color:#b9c5d6;font-size:1.1rem;line-height:1.6;max-width:52ch;margin-bottom:1.8rem}
.owner__points{display:grid;gap:1.15rem;margin-bottom:2rem}
.owner__points li{display:flex;gap:.95rem;align-items:flex-start}
.owner__ic{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(58,147,184,.16);color:var(--teal-bright);border:1px solid rgba(58,147,184,.28)}
.owner__ic svg{width:22px;height:22px}
.owner__points b{display:block;color:#fff;font-weight:700;font-size:1.04rem;margin-bottom:.1rem}
.owner__points span{color:#9fadc1;font-size:.95rem;line-height:1.5}
.owner__cta{display:flex;flex-wrap:wrap;align-items:center;gap:1.1rem 1.5rem}
.owner__reviews{display:inline-flex;align-items:center;gap:.5rem;color:#dbe4ef;font-size:.96rem}
.owner__reviews .stars{color:var(--gold);letter-spacing:1px}
.owner__reviews b{color:#fff}
.owner__reviews:hover{text-decoration:underline}
.owner__media{position:relative;margin:0}
.owner__media img{width:100%;height:100%;max-height:440px;object-fit:cover;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}
.owner__media figcaption{position:absolute;left:16px;bottom:16px;right:16px;color:#cfd8e6;font-size:.82rem;font-weight:600;
  background:linear-gradient(transparent,rgba(8,13,24,.7));padding:2rem 1rem .9rem;border-radius:0 0 var(--radius-lg) var(--radius-lg)}
@media (min-width:880px){
  .owner__grid{grid-template-columns:1.18fr .82fr}
  .owner__media img{max-height:520px}
}

/* ===================== PROCESS ===================== */
.process{background:var(--paper)}
.steps{display:grid;grid-template-columns:1fr;gap:1.6rem;position:relative;max-width:1080px;margin-inline:auto}
.step{text-align:center;position:relative;padding:0 .4rem}
.step__tile{position:relative;width:76px;height:76px;margin:0 auto 1.1rem;border-radius:50%;display:grid;place-items:center;
  background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);color:var(--teal-deep)}
.step__tile svg{width:32px;height:32px}
.step__num{position:absolute;top:-9px;right:-9px;width:26px;height:26px;border-radius:50%;background:var(--red);color:#fff;
  font-size:.82rem;font-weight:800;display:grid;place-items:center;box-shadow:0 4px 10px -3px var(--red-glow)}
.step h3{font-size:1.12rem;margin-bottom:.5rem;color:var(--ink)}
.step p{color:var(--ink-soft);font-size:.96rem;line-height:1.5;max-width:30ch;margin-inline:auto}
@media (min-width:860px){
  .steps{grid-template-columns:repeat(5,1fr);gap:1rem}
  .steps::before{content:"";position:absolute;top:38px;left:11%;right:11%;height:2px;
    background:repeating-linear-gradient(90deg,var(--teal) 0 8px,transparent 8px 16px);opacity:.5;z-index:0}
  .step__tile{z-index:1}
}

/* ===================== BOILERS (secondary) — full-bleed split ===================== */
.boilers{background:var(--white);display:grid;grid-template-columns:1fr;align-items:stretch;overflow-x:clip}
.boilers__media,.boilers__body{min-width:0}
.boilers__media{margin:0;position:relative;min-height:300px;background:var(--navy-900)}
.boilers__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.boilers__body{padding:var(--s-section) 22px}
.boilers__inner{max-width:540px;margin-inline:auto}
.boilers__body h2{font-size:clamp(1.9rem,3.6vw,2.7rem);margin-bottom:1.1rem}
.boilers__body .lede{margin-bottom:1.6rem}
.boilers__body .ticks{margin-bottom:1.6rem}
.boilers__note{color:var(--ink-faint);font-size:.92rem;margin-bottom:1.8rem;padding-left:1.05rem;border-left:3px solid var(--mist)}
@media (min-width:860px){
  .boilers{grid-template-columns:0.46fr 0.54fr}
  .boilers__media{min-height:600px}
  .boilers__body{display:flex;align-items:center;padding-block:var(--s-section);
    padding-left:clamp(2.5rem,5vw,5rem);padding-right:max(22px,calc((100vw - var(--container))/2 + 12px))}
  .boilers__inner{margin-inline:0}
}

/* ===================== REVIEWS ===================== */
.reviews{background:var(--paper)}
.reviews__agg{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem 1.4rem;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.4rem 1.6rem;box-shadow:var(--shadow-sm);
  max-width:780px;margin:0 auto clamp(1.8rem,3vw,2.6rem)}
.agg__score{display:flex;align-items:baseline;gap:.55rem;flex-wrap:wrap}
.agg__num{font-size:2.6rem;font-weight:800;color:var(--ink);letter-spacing:-.02em;line-height:1}
.agg__stars{color:var(--gold);font-size:1.2rem;letter-spacing:1px}
.agg__cap{color:var(--ink-faint);font-size:.92rem}
.agg__g{display:flex;align-items:center;gap:.6rem;color:var(--ink-soft);font-size:.86rem;line-height:1.3;padding-inline:1.4rem;border-inline:1px solid var(--line)}
.agg__cta{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;color:var(--teal-deep)}
.agg__cta svg{transition:transform .2s var(--ease)}
.agg__cta:hover svg{transform:translateX(3px)}
.rev-carousel{position:relative}
.rev-track{display:flex;gap:1.5rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;
  padding:.4rem .2rem 1rem;scroll-padding-left:.2rem}
.rev-track::-webkit-scrollbar{display:none}
.rev-track:focus-visible{outline:3px solid var(--teal);outline-offset:4px;border-radius:8px}
.rev{flex:0 0 86%;scroll-snap-align:start;background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:1.5rem 1.5rem 1.35rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;position:relative}
.rev__g{position:absolute;top:1.3rem;right:1.3rem;opacity:.9}
.rev__stars{color:var(--gold);letter-spacing:1.5px;font-size:1.04rem;margin-bottom:.7rem}
.rev__text{color:var(--ink);font-size:1rem;line-height:1.55;margin-bottom:1.2rem;flex:1}
.rev__by{display:flex;align-items:center;gap:.7rem;border-top:1px solid var(--line-soft);padding-top:.95rem}
.rev__av{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:.86rem;
  color:#fff;background:linear-gradient(135deg,var(--teal),var(--teal-deep))}
.rev__id b{display:block;color:var(--ink);font-weight:700;font-size:.96rem}
.rev__meta{color:var(--ink-faint);font-size:.82rem}
.rev-ctrl{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem}
.rev-arrow{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--line);background:#fff;color:var(--navy-800);
  display:grid;place-items:center;transition:border-color .15s,color .15s,transform .15s,background .15s}
.rev-arrow:hover{border-color:var(--teal);color:var(--teal-deep);transform:translateY(-1px);background:#fbfdfe}
.rev-dots{display:flex;align-items:center;gap:.45rem}
.rev-dot{width:8px;height:8px;border-radius:50%;border:none;background:var(--line);padding:0;transition:background .2s,transform .2s}
.rev-dot[aria-current="true"]{background:var(--teal);transform:scale(1.35)}
@media (min-width:680px){.rev{flex-basis:calc((100% - 1.5rem)/2)}}
@media (min-width:1080px){.rev{flex-basis:calc((100% - 3rem)/3)}}

/* ===================== LOCALITY + MAP ===================== */
.areas{background:var(--white)}
.areas__grid{display:grid;grid-template-columns:1fr;gap:clamp(2rem,4vw,3.6rem);align-items:stretch}
.areas__body h2{font-size:clamp(1.95rem,4.2vw,2.9rem);margin-bottom:1.1rem}
.areas__body .lede{margin-bottom:1.6rem;max-width:46ch}
.towns{display:grid;grid-template-columns:repeat(2,1fr);gap:.55rem;margin-bottom:1.5rem}
.towns li{display:flex;align-items:center;gap:.55rem;padding:.6rem .85rem;background:var(--paper);border:1px solid var(--line);
  border-radius:10px;font-weight:600;font-size:.92rem;color:var(--navy-800)}
.towns li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--teal);flex:none}
.areas__out{color:var(--ink-soft);font-size:.96rem}
.areas__out a{color:var(--teal-deep);font-weight:700}
.areas__out a:hover{text-decoration:underline}
.mapframe{position:relative;margin:0;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);
  box-shadow:var(--shadow);min-height:380px;height:100%;background:var(--mist)}
.mapframe iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.mapframe__ph{position:absolute;inset:0;display:grid;place-items:center;color:var(--ink-faint);font-size:.9rem}
.mapframe__badge{position:absolute;left:14px;bottom:14px;background:rgba(15,22,38,.92);color:#fff;border-radius:10px;
  padding:.55rem .8rem;font-size:.78rem;line-height:1.25;backdrop-filter:blur(4px);box-shadow:var(--shadow)}
.mapframe__badge b{display:block;font-weight:800;font-size:.86rem}
.mapframe__badge span{color:#aab8cc}
@media (min-width:880px){
  .areas__grid{grid-template-columns:.9fr 1.1fr}
  .towns{grid-template-columns:repeat(3,1fr)}
}

/* ===================== FAQ ===================== */
.faq{background:var(--paper)}
.faq__grid{display:grid;grid-template-columns:1fr;gap:clamp(1.8rem,3.5vw,3rem)}
.faq__head h2{font-size:clamp(1.95rem,4.2vw,2.9rem);margin-bottom:1rem}
.faq__head .lede{margin-bottom:1.6rem;max-width:40ch}
.faq__item{border-bottom:1px solid var(--line)}
.faq__item:first-child{border-top:1px solid var(--line)}
.faq__item summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;list-style:none;
  padding:1.2rem .2rem;font-weight:700;font-size:1.06rem;color:var(--ink)}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary svg{flex:none;color:var(--teal-deep);transition:transform .25s var(--ease)}
.faq__item[open] summary svg{transform:rotate(180deg)}
.faq__item summary:hover{color:var(--teal-deep)}
.faq__a{padding:0 .2rem 1.3rem;color:var(--ink-soft);line-height:1.6;max-width:64ch}
.faq__a a{color:var(--teal-deep);font-weight:600;text-decoration:underline}
@media (min-width:880px){
  .faq__grid{grid-template-columns:.82fr 1.18fr;align-items:start}
  .faq__head{position:sticky;top:96px}
}

/* ===================== CLOSING CTA + CALLBACK FORM ===================== */
.closer{position:relative;isolation:isolate;background:var(--navy-950);color:#dbe4ef;padding-block:var(--s-section-lg);overflow:hidden}
.closer__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;opacity:.5}
.closer::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(120deg,rgba(12,18,31,.96) 0%,rgba(13,20,34,.9) 42%,rgba(14,21,36,.74) 100%)}
.closer__grid{display:grid;grid-template-columns:1fr;gap:clamp(2.2rem,4vw,3.4rem);align-items:center}
.closer__lead h2{color:#fff;font-size:clamp(2.1rem,4.6vw,3.3rem);margin-bottom:1.1rem}
.closer__lead h2 em{color:var(--teal-bright)}
.closer__p{color:#bcc8d9;font-size:1.1rem;line-height:1.6;max-width:46ch;margin-bottom:1.7rem}
.closer__lead .btn--call{font-size:1.14rem}
.closer__safe{display:flex;align-items:center;gap:.6rem;margin-top:1.3rem;color:#9fb6c7;font-size:.92rem}
.closer__safe svg{flex:none;color:var(--teal-bright)}
.cb-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:clamp(1.5rem,3vw,2.1rem);color:var(--ink)}
.cb-form__kicker{font-size:.78rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--red-deep);margin-bottom:.5rem}
.cb-form h3{font-size:1.5rem;margin-bottom:.4rem}
.cb-form__sub{color:var(--ink-soft);font-size:.95rem;margin-bottom:1.3rem}
.cb-field{margin-bottom:.95rem}
.cb-field label{display:block;font-weight:600;font-size:.9rem;color:var(--navy-800);margin-bottom:.35rem}
.cb-field .opt{color:var(--ink-faint);font-weight:500}
.cb-field input,.cb-field select{width:100%;padding:.8rem .9rem;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.cb-field input::placeholder{color:#9aa6b6}
.cb-field input:focus,.cb-field select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(47,125,158,.16)}
.cb-field input[aria-invalid="true"]{border-color:var(--red);box-shadow:0 0 0 3px rgba(200,30,48,.14)}
.cb-field .err{color:var(--red-deep);font-size:.82rem;margin-top:.3rem;min-height:0}
.cb-field .err:empty{display:none}
.cb-coverage{font-size:.84rem;margin-top:.4rem}
.cb-coverage.ok{color:var(--ok)}
.cb-coverage.maybe{color:var(--ink-faint)}
.cb-form .btn--block{margin-top:.4rem}
.cb-form__foot{margin-top:.9rem;font-size:.8rem;color:var(--ink-faint);text-align:center}
.cb-form__foot .muted{color:#9aa6b6}
.cb-success{text-align:center;padding:1.5rem .5rem}
.cb-success__tick{display:inline-block;margin-bottom:.8rem}
.cb-success h3{font-size:1.45rem;margin-bottom:.6rem;color:var(--ink)}
.cb-success p{color:var(--ink-soft);line-height:1.55}
.cb-success a{color:var(--teal-deep);font-weight:700;white-space:nowrap}
@media (min-width:900px){
  .closer__grid{grid-template-columns:1.08fr .92fr}
}

/* ===================== shared section-head left variant on light ===================== */
.section-head--center h2{font-size:clamp(2rem,4.4vw,3.15rem)}

