﻿:root {
  --bg:#f5f7fb; --bg-alt:#edf2f8; --surface:#fff; --text:#243140; --muted:#516377;
  --line:#d5e0ec; --primary:#0f4ea3; --primary-dark:#0b3f84; --accent:#c98040;
  --max:1140px; --radius:10px; --shadow:0 10px 22px rgba(25,46,74,.06); --section-space:3.25rem;
}
*{box-sizing:border-box} html,body{margin:0;padding:0} html{scroll-behavior:smooth}
body{font-family:"Avenir Next","Segoe UI","Source Sans 3",sans-serif;color:var(--text);line-height:1.6;
background:linear-gradient(135deg,rgba(15,78,163,.06),transparent 42%),linear-gradient(180deg,#f9fbff,var(--bg) 55%)}
a{color:var(--primary);text-decoration:none} a:hover{text-decoration:underline}
.container{width:min(var(--max),92%);margin:0 auto}
.topbar{position:sticky;top:0;z-index:120;background:var(--primary);color:#eff6ff;border-bottom:1px solid #0b4188}
.topbar a{color:#fff}.topbar-inner{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.56rem 0;font-size:.92rem}
.topbar strong{color:#ffd9b7}.topbar p{margin:0}
.site-header{background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);box-shadow:0 4px 12px rgba(31,52,84,.05);transition:box-shadow .2s ease}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 0}
.brand{display:inline-flex;align-items:center;gap:.7rem;color:var(--text);text-decoration:none}
.brand-mark{width:2rem;height:2rem;border-radius:.55rem;background:linear-gradient(140deg,var(--primary),#4b7ec6);box-shadow:0 0 0 3px rgba(15,78,163,.12)}
.brand-title{margin:0;font-weight:800;line-height:1.1}.brand-sub{margin:0;color:var(--muted);font-size:.8rem;line-height:1.1}
.nav-toggle{display:none;border:1px solid var(--line);background:#fff;color:var(--text);padding:.45rem .72rem;border-radius:10px}
.nav-list{display:flex;align-items:center;gap:1.22rem;list-style:none;margin:0;padding:0}
.nav-list a{color:var(--text);font-weight:600;border-bottom:2px solid transparent;padding-bottom:.2rem}.nav-list a.active{color:var(--primary);border-bottom-color:var(--primary)}
.btn{display:inline-block;border-radius:10px;border:1px solid transparent;padding:.74rem 1rem;font-weight:700;transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease}
.btn:hover{transform:translateY(-2px);text-decoration:none;box-shadow:0 12px 22px rgba(25,46,74,.16)}
.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}
.btn-contrast{background:var(--accent);color:#fff}.btn-contrast:hover{background:#ab6a33}
.header-inner > .btn{padding:.82rem 1.14rem;box-shadow:0 8px 16px rgba(16,64,128,.16)}
.hero{padding:3rem 0 2.4rem}.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:1.4rem;align-items:center}
.eyebrow{margin:0 0 .7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--primary);font-size:.82rem;font-weight:700}
h1,h2,h3{margin:0 0 .7rem;color:#1f2c3d}h1{line-height:1.12;font-weight:850;font-size:clamp(2rem,4.4vw,3.05rem)}h2{line-height:1.2;font-weight:800;font-size:clamp(1.52rem,3vw,2.06rem)}h3{line-height:1.26;font-weight:760;font-size:clamp(1.05rem,2.1vw,1.3rem)}
.hero-frame{padding:.7rem;background:linear-gradient(150deg,#e4eefb,#f6f9ff);border:1px solid #d0deef;border-radius:24px;box-shadow:var(--shadow);transform:rotate(-1.3deg)}
.hero-image{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;border-radius:18px;transform:rotate(1.3deg)}
.stat-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem;margin-top:1rem}
.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.65rem .7rem;box-shadow:var(--shadow)}
.stat-card p{margin:0}.kpi{font-size:1.05rem;font-weight:800;color:var(--primary)}.muted{color:var(--muted)}
.section{padding:var(--section-space) 0}.section-alt{background:linear-gradient(180deg,#fff,var(--bg-alt));border-top:1px solid #e7edf6;border-bottom:1px solid #e7edf6}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.card{background:var(--surface);border:1px solid #d9e3ef;border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}
.card p{margin:0 0 .7rem}.card ul{margin:.2rem 0 .7rem 1.15rem;padding:0}
.process{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.step-num{width:2rem;height:2rem;border-radius:999px;display:inline-grid;place-items:center;background:#eaf2ff;color:var(--primary);font-weight:800;margin-bottom:.5rem}
.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.95rem}.review-quote{font-style:italic}.review-name{margin:0;font-weight:700;color:var(--primary)}
.cta-band{background:linear-gradient(130deg,#0f4ea3,#2562b3);color:#fff;border-top:1px solid #0c4188;border-bottom:1px solid #0c4188}
.cta-inner{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.15rem 0}.cta-inner h3{margin:0}
.quote-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem;align-items:start}
.lead-form label{display:block;font-weight:600;margin-bottom:.3rem}.lead-form input,.lead-form textarea,.lead-form select{width:100%;margin-top:.35rem;border:1px solid #b9cae1;border-radius:10px;padding:.66rem .72rem;font:inherit;background:#fbfdff;color:var(--text)}
.lead-form textarea{resize:vertical;min-height:130px}.lead-form [data-field]{margin-bottom:.75rem}
.error-text{color:#b43636;margin:.25rem 0 0;font-size:.83rem;min-height:1rem}.form-success{display:none;color:#177f50;background:#e8f8f0;border:1px solid #b8e7cf;border-radius:10px;padding:.6rem}
.lead-form.is-success .form-success{display:block}
.city-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.city-grid a{border:1px solid #bfd0e7;border-radius:9px;padding:.36rem .5rem;background:#f7faff}
.page-hero{padding:calc(var(--section-space) - .65rem) 0 1.6rem}.split-list{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.faq details{border:1px solid var(--line);background:#fff;border-radius:10px;padding:.6rem .7rem;margin-bottom:.56rem}.faq summary{cursor:pointer;font-weight:700}
 .footer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}

.home-hero{
  position:relative;
  padding:6rem 0 5.4rem;
  background:
    linear-gradient(180deg, rgba(237,246,255,.95), rgba(248,252,255,.97)),
    url("assets/images/plumbing-hero.svg") center/115% no-repeat;
  background-blend-mode: normal;
  border-bottom:1px solid #e4ebf5
}
.home-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(250,252,255,.42);
  pointer-events:none;
}
.hero-center{text-align:center;max-width:860px;position:relative;z-index:1}
.hero-badge{
  display:inline-block;margin:0 0 .8rem;padding:.35rem .7rem;border-radius:999px;
  border:1px solid #bfd1e9;background:#f4f8ff;color:var(--primary);font-size:.82rem;font-weight:700
}
.hero-center p{max-width:68ch;margin-left:auto;margin-right:auto}
.hero-title{font-size:clamp(2.35rem,5.2vw,3.7rem);line-height:1.08}
.hero-phone{font-size:clamp(2.05rem,5vw,3.05rem);font-weight:900;line-height:1.06;margin:1rem 0}
.hero-phone a{color:var(--primary);text-decoration:none}
.hero-trust{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.6rem;
  margin-top:1rem;padding-top:1rem
}
.hero-trust p{margin:0;font-size:.9rem}

.process-strip{padding:2rem 0;background:#fff;border-bottom:1px solid #e2eaf4}
.process-minimal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}
.process-minimal article{text-align:center;padding:.4rem .2rem}
.step-icon{width:2.15rem;height:2.15rem;margin:0 auto .45rem;display:block}
.process-minimal h3{margin:0;font-size:1.02rem}

.services-alternating{background:#f2f6fb;border-top:1px solid #dce6f2;border-bottom:1px solid #dce6f2}
.services-alternating h2{margin-bottom:1.5rem}
.service-row{
  display:grid;grid-template-columns:.68fr 1.32fr;gap:1.6rem;align-items:center;
  padding:2.1rem 0;border-top:1px solid #d7e2ef
}
.service-row.reverse{grid-template-columns:1.32fr .68fr}
.service-row.reverse .service-visual{order:2}
.service-row.reverse .service-copy{order:1}
.service-visual{
  min-height:108px;border-radius:10px;border:1px solid #d2e0ef;
  background:
    linear-gradient(140deg, rgba(15,78,163,.08), rgba(15,78,163,.03)),
    url("assets/images/plumbing-hero.svg") center/cover no-repeat
}
.service-copy p{margin-bottom:.45rem}
.service-icon{
  display:inline-block;
  margin:0 0 .45rem;
  padding:.2rem .58rem;
  border-radius:999px;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.icon-drain{background:#e8f4ff;color:#1a5cae}
.icon-heater-repair{background:#eaf2ff;color:#25579a}
.icon-sewer{background:#edf4f9;color:#2a4e77}
.icon-leak{background:#e9f7ff;color:#1f6398}
.icon-toilet{background:#eff5ff;color:#3b5d8a}
.icon-fixture{background:#ecf2f8;color:#395a84}
.visual-drain{background:linear-gradient(135deg, rgba(15,78,163,.07), rgba(15,78,163,.02)), url("assets/images/plumbing-hero.svg") left 30% center/145% no-repeat}
.visual-heater-repair{background:linear-gradient(135deg, rgba(27,94,170,.08), rgba(27,94,170,.02)), url("assets/images/plumbing-hero.svg") center/150% no-repeat}
.visual-sewer{background:linear-gradient(135deg, rgba(11,63,132,.08), rgba(11,63,132,.02)), url("assets/images/plumbing-hero.svg") right 30% center/145% no-repeat}
.visual-leak{background:linear-gradient(135deg, rgba(15,78,163,.09), rgba(15,78,163,.03)), url("assets/images/plumbing-hero.svg") left center/150% no-repeat}
.visual-toilet{background:linear-gradient(135deg, rgba(35,80,139,.08), rgba(35,80,139,.02)), url("assets/images/plumbing-hero.svg") right center/150% no-repeat}
.visual-fixture{background:linear-gradient(135deg, rgba(20,87,164,.08), rgba(20,87,164,.02)), url("assets/images/plumbing-hero.svg") center/145% no-repeat}

.authority-strip{
  background:#f8fbff;border-top:1px solid #dfe8f3;border-bottom:1px solid #dce5f1;padding:2.25rem 0
}
.authority-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;text-align:center
}
.authority-grid article{
  padding:.28rem .5rem;border-left:1px solid #d1deed
}
.authority-grid article:first-child{border-left:none}
.authority-kpi{
  margin:0 0 .15rem;font-size:1.78rem;font-weight:850;color:var(--primary);line-height:1.1
}
.authority-grid p{margin:0;color:#475a71;font-size:.84rem;letter-spacing:.01em}

.testimonials-band{background:#fff;border-bottom:1px solid #dce4f0}
.review-minimal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.review-card{
  padding:.85rem .95rem;
  border-radius:10px;
  border:1px solid #e4ebf4;
  box-shadow:0 5px 14px rgba(23,49,84,.06);
  background:#fff;
}
.review-stars{
  margin:0 0 .42rem;
  color:#c98040;
  font-size:.9rem;
  letter-spacing:.08em;
}
.review-quote{
  margin-bottom:.5rem;
  color:#2a3a4b;
  position:relative;
  padding-left:.75rem;
}
.review-quote::before{
  content:"\"";
  position:absolute;
  left:0;
  top:-.12rem;
  color:#8ca5c2;
  font-size:1.08rem;
  line-height:1;
}

.emergency-band{
  background:#cfe0f6;border-top:1px solid #bfd3ed;border-bottom:1px solid #bfd3ed;
  padding:1.35rem 0;text-align:center
}
.emergency-band-inner p{margin:.2rem 0}
.emergency-band-inner p:first-child{font-weight:800;color:#1d3c5c}
.emergency-phone-line{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  margin:.35rem 0 .25rem
}
.emergency-phone-icon{
  width:1.6rem;height:1.6rem;display:inline-grid;place-items:center;
  border-radius:999px;background:#e8f1ff;color:var(--primary);font-size:.95rem
}
.emergency-band-inner a{font-size:2.28rem;font-weight:900;color:var(--primary);text-decoration:none;line-height:1.1}
.emergency-band-inner p:nth-child(3){font-size:.98rem;color:#3f556e}
.emergency-band-inner p:last-child{font-size:.9rem;color:#4a5f77}

.quote-section{background:#f2f6fb;border-top:1px solid #dce5f1}
[id="quote"] .card{
  box-shadow:0 18px 38px rgba(25,46,74,.16);
  padding:1.7rem
}
[id="quote"] .lead-form [data-field]{margin-bottom:1.12rem}
[id="quote"] .lead-form input,
[id="quote"] .lead-form textarea,
[id="quote"] .lead-form select{padding:.92rem .86rem}
[id="quote"] .lead-form textarea{min-height:150px}
[id="quote"] .btn{
  padding:1rem 1.15rem;
  font-size:1.06rem;
  width:100%;
  text-align:center;
  box-shadow:0 11px 22px rgba(16,64,128,.16)
}
[id="quote"] .btn:hover{box-shadow:0 14px 28px rgba(16,64,128,.2)}

.site-footer{
  background:#d8e4f3;
  border-top:1px solid #c2d3e9;
  padding:2.45rem 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55);
}
.footer-grid{gap:1.4rem}
[data-reveal]{opacity:0;transform:translateY(8px);transition:opacity .42s ease,transform .42s ease}[data-reveal].is-visible{opacity:1;transform:none}
.skip-link{position:absolute;left:-9999px;top:0;background:#fff;border:1px solid var(--line);padding:.4rem}.skip-link:focus{left:.4rem;z-index:300}
@media (max-width:980px){.hero-grid,.quote-layout,.grid-3,.process,.review-grid,.footer-grid,.grid-2,.split-list,.stat-strip,.hero-trust,.review-minimal{grid-template-columns:1fr 1fr}.service-row,.service-row.reverse{grid-template-columns:.72fr 1.28fr}.authority-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.authority-grid article:nth-child(odd){border-left:none}.nav-toggle{display:inline-block}.nav-list{position:absolute;right:4%;top:7.6rem;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:.8rem;min-width:220px;display:none;flex-direction:column;align-items:flex-start}.nav-list.is-open{display:flex}}
@media (max-width:700px){.topbar-inner{font-size:.82rem;flex-direction:column;align-items:flex-start}.hero-grid,.quote-layout,.grid-3,.process,.review-grid,.footer-grid,.grid-2,.split-list,.stat-strip,.city-grid,.hero-trust,.process-minimal,.review-minimal,.service-row,.service-row.reverse,.authority-grid{grid-template-columns:1fr}.hero-title{font-size:clamp(2rem,9vw,2.5rem)}.hero-phone{font-size:clamp(1.8rem,9vw,2.35rem)}.service-row.reverse .service-visual,.service-row.reverse .service-copy{order:initial}.authority-grid article{border-left:none;padding:.5rem 0}.emergency-band-inner a{font-size:2.02rem}.cta-inner{flex-direction:column;align-items:flex-start}.header-inner>.btn{display:none}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none !important;transition:none !important}[data-reveal]{opacity:1;transform:none}}


.hero-actions{margin:.8rem auto 0;padding-bottom:1.15rem;border-bottom:1px solid #cddcec}

/* Internal Page Layout Refinement */
.page-hero{
  padding:calc(var(--section-space) - .4rem) 0 1.8rem;
  background:
    linear-gradient(180deg, #f7fbff, #eef5ff),
    radial-gradient(900px 260px at 82% -10%, rgba(15,78,163,.12), transparent 62%);
  border-bottom:1px solid #dbe6f3;
}
.page-hero .container{max-width:900px}
.page-hero h1{
  font-size:clamp(2.05rem,4.2vw,3.05rem);
  line-height:1.1;
  margin-bottom:.85rem;
}
.page-hero h1::after{
  content:"";
  display:block;
  width:84px;
  height:2px;
  margin:.9rem 0 0;
  background:linear-gradient(90deg, var(--primary), #5b8ecf);
}
.hero-authority{
  margin:.55rem 0 .95rem;
  color:#42556c;
  max-width:64ch;
}
.page-hero-cta{margin-top:.75rem}

.internal-authority{
  background:#fff;
  border-top:1px solid #e1e9f4;
  border-bottom:1px solid #e1e9f4;
}
.internal-authority-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:1.4rem;
  align-items:start;
}
.check-list{display:grid;gap:.45rem}
.check-list p{margin:0;color:#2f4257}

.bottom-conversion{
  background:#d5e3f5;
  border-top:1px solid #bfd1ea;
  border-bottom:1px solid #bfd1ea;
  padding:2.2rem 0;
}
.bottom-conversion-inner{
  text-align:center;
  max-width:820px;
}
.bottom-conversion-inner h2{margin-bottom:.6rem}
.conversion-phone{margin:.3rem 0 .45rem}
.conversion-phone a{
  font-size:2rem;
  font-weight:900;
  color:var(--primary);
  text-decoration:none;
}

.services-categorized .service-category{
  padding:1.35rem 0 1.5rem;
  border-top:1px solid #d9e4f2;
}
.services-categorized .service-category:first-child{
  border-top:none;
  padding-top:.25rem;
}
.service-links{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.7rem 1rem;
}
.service-links a{
  display:block;
  padding:.55rem .35rem .5rem;
  border-bottom:1px solid #dfe8f4;
  color:inherit;
  text-decoration:none;
  transition:transform .18s ease, box-shadow .18s ease;
}
.service-links a:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 16px rgba(26,51,86,.08);
}
.service-links a strong{
  display:block;
  color:#1f2f43;
}
.service-links a span{
  display:block;
  margin-top:.15rem;
  color:#526479;
  font-size:.94rem;
}

@media (max-width:980px){
  .internal-authority-grid{grid-template-columns:1fr}
  .service-links{grid-template-columns:1fr}
}

@media (max-width:700px){
  .page-hero h1{font-size:clamp(1.78rem,8vw,2.35rem)}
  .conversion-phone a{font-size:1.78rem}
}



