/* JLP plumbing pages on the one design (Jack, 2026-10-03): same layout, type and spacing as the
   bathroom pages, Action Blue for buttons and accents. Main site only: never linked from /lp/ or
   the hidden area sites. Built by .claude/tools/plumb_pages.py. */
/* Plumbing theme on the new design (MOCK-UP 2026-10-03): same layout, type and spacing as the
   bathroom pages; Action Blue replaces taupe for buttons and accents, white/off-white grounds. */
.pl{--blue:#196BD4;--navy:#15214f}
.wswitch .ws-plumb-on{background:#196BD4;color:#fff}
.hdr nav a.pl-hdr-tel{color:#196BD4;font-weight:500}
.pl .btn{background:var(--blue)}
.pl .btn:hover{background:var(--navy)}
.pl .eyebrow b{color:var(--blue)}
.pl .sp-rule span{background:var(--blue)}
.pl a.inl{color:var(--blue);border-bottom:1px solid rgba(25,107,212,.35);padding-bottom:1px}
.pl a.inl:hover{border-color:var(--blue)}
.pl .ulink{color:var(--blue)}
.pl-hero h1{font-size:clamp(2.4rem,5.4vw,62px)}
.pl-lead{max-width:62ch;margin:0 auto 32px;font-size:15px;line-height:1.95;color:var(--ink)}
.pl-ctas{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.pl .btn.pl-ghost{background:transparent;color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue);padding:18px 40px}
.pl .btn.pl-ghost:hover{background:var(--blue);color:#fff;padding:18px 40px}
.pl-alert{max-width:700px;margin:34px auto 0;text-align:left;background:#fff;border-left:3px solid var(--blue);
  padding:18px 24px;line-height:1.85;box-shadow:0 10px 30px rgba(21,33,79,.06)}
.pl-alert strong{font-weight:500;color:var(--navy)}
.pl-jobs{list-style:none;margin:6px 0 0;display:flex;flex-direction:column;gap:14px}
.pl-jobs li{position:relative;padding-left:28px;line-height:1.85}
.pl-jobs li::before{content:"";position:absolute;left:0;top:.95em;width:16px;height:1px;background:var(--blue)}
.pl-jobs strong{font-weight:500}
.pl-review{background:var(--cream);text-align:center;padding:clamp(50px,7vw,90px) 0}
.pl-review blockquote{max-width:860px;margin:0 auto;padding-inline:var(--pad);font-family:var(--serif);font-style:italic;
  font-size:clamp(19px,2.2vw,25px);line-height:1.6;color:var(--ink)}
.pl-review .who{margin-top:20px;font-family:var(--sans);font-style:normal;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.pl-svcs{padding:clamp(50px,7vw,90px) 0}
.pl-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);max-width:1180px;margin:0 auto}
.pl-svc{padding:30px 30px 34px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);display:flex;flex-direction:column}
.pl-svc h3{font-size:26px;margin:0 0 10px}
.pl-svc p{line-height:1.85;margin:0 0 16px;flex:1}
.pl-quote .in{max-width:600px}
.pl-form .form-group{display:flex;flex-direction:column}
.pl-form .form-grid{display:flex;flex-direction:column;gap:18px}
.pl-form label{font-family:var(--sans);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.pl-form .btn{align-self:stretch;justify-content:center;width:100%}
.pl-local{background:var(--offwhite)}
.pl-local p.body{text-align:left}
.pl-duo{padding:clamp(50px,7vw,90px) 0}
.pl-duo .in{max-width:1180px;margin:0 auto;padding-inline:var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,48px)}
.pl-bath,.pl-hours{padding:clamp(28px,4vw,44px)}
.pl-bath{background:var(--cream)}
.pl-hours{border:1px solid var(--line);border-top:3px solid var(--blue)}
.pl-bath p,.pl-hours p{line-height:1.9;margin:16px 0 22px}
.pl .btn.pl-taupe{background:#746B5F}
.pl .btn.pl-taupe:hover{background:var(--ink)}
.pl-callbar{display:none}
@media (max-width:900px){
  .pl-grid{grid-template-columns:1fr 1fr}
  .pl-duo .in{grid-template-columns:1fr}
}
@media (max-width:700px){
  .pl-hero h1{font-size:30px;letter-spacing:.02em}
  .pl-lead{font-size:14px;text-align:left}
  .pl-ctas{flex-direction:column}
  .pl-ctas .btn{width:100%}
  .pl-grid{grid-template-columns:1fr}
  .pl-svc{padding:24px 22px 26px}
  .pl-callbar{display:flex;flex-direction:column;align-items:center;position:fixed;left:0;right:0;bottom:0;z-index:70;
    background:#196BD4;color:#fff;padding:10px 0 12px;font-family:var(--sans);font-size:24px;font-weight:500;letter-spacing:.06em;line-height:1.2}
  .pl-callbar span{font-size:10px;letter-spacing:.24em;text-transform:uppercase;opacity:.9;margin-bottom:2px}
  body{padding-bottom:64px}
  .pl-duo .sp-h2{font-size:26px}
  .pl-bath .btn{width:100%;padding:18px 14px;letter-spacing:1px;font-size:13px}
  .pl-bath .btn i{display:none}
}
@media (max-width:1080px){.pl-work .shot{order:2}.pl-work .txt{order:1}}

/* ---- v2: conversion layout ---- */
.pl-hero{text-align:left}
.pl-hero-in{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:clamp(32px,5vw,64px);align-items:start}
.pl-hero .sp-crumb{margin-bottom:16px}
.pl-hero h1{margin-top:0}
.pl-trust{font-family:var(--sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin:16px 0 18px;line-height:1.6}
.pl-trust .stars{color:#D9A21B;letter-spacing:2px;margin-right:6px;font-size:14px}
.pl-trust .dot{margin:0 6px;color:var(--muted)}
.pl-hero .pl-lead{margin:0 0 26px;max-width:58ch}
.pl-hero .pl-ctas{justify-content:flex-start;align-items:center;gap:22px}
.pl-wa{font-family:var(--sans);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);border-bottom:1px solid rgba(25,107,212,.35);padding-bottom:2px}
.pl-hero .pl-alert{margin:30px 0 0;max-width:none}
.pl-alert-m{display:none}
.pl .pl-jq{padding:0;background:transparent;--taupe:#196BD4;font-size:14px}
.pl .jq .lp-q-opt:has(input:checked){border-color:#196BD4;background:#F3F7FD}
.pl .jq-card > h3{font-family:var(--serif)}
.pl-cta{text-align:center;margin:44px auto 0;padding:30px 20px;border-top:1px solid var(--line)}
.pl-cta p{font-family:var(--serif);font-style:italic;font-size:22px;margin:0 0 16px;color:var(--ink)}
.pl-cta-b{display:flex;justify-content:center;align-items:center;gap:26px;flex-wrap:wrap}
.pl-local{padding:clamp(40px,6vw,70px) 0}
.pl-local .in{max-width:860px;margin:0 auto;padding-inline:var(--pad)}
.pl-fold summary{list-style:none;cursor:pointer;text-align:center}
.pl-fold summary::-webkit-details-marker{display:none}
.pl-fold summary .eyebrow{display:block}
.pl-fold summary::after{content:"Read more +";display:inline-block;margin-top:14px;font-family:var(--sans);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--blue)}
.pl-fold[open] summary::after{content:"Show less \2013"}
.pl-fold p.body{line-height:1.95;margin:22px 0 0}
.pl-hours .btn{margin-top:4px}
@media (max-width:1080px){
  .pl-hero-in{grid-template-columns:1fr}
  .pl-alert-d{display:none}
  .pl-alert-m{display:block;margin:26px 0 0}
}
@media (max-width:700px){
  .pl-hero .sp-crumb{display:none}
  .pl-hero h1,.pl-trust{text-align:center}
  .pl-trust{font-size:10.5px;letter-spacing:.12em;margin:12px 0 16px}
  .pl-trust .dot{display:none}
  .pl-trust .ins{display:block;margin-top:2px}
  .pl-hero .pl-ctas{flex-direction:column;gap:14px}
  .pl-hero .pl-ctas .btn{width:100%}
  .pl .jq-card{padding:18px 16px}
  .pl-cta p{font-size:20px}
  .pl-cta-b{flex-direction:column;gap:16px}
  .pl-cta-b .btn{width:100%}
}


/* v3: emergency section, tappable highlighted numbers, Google reviews band, Projects in the left nav */
.pl a.pl-tel,.pl-revs a.pl-tel{color:#196BD4;font-weight:500;white-space:nowrap;border-bottom:1px solid rgba(25,107,212,.4)}
.pl-emerg{padding:clamp(44px,6vw,80px) 0;background:#fff}
.pl-emerg .in{max-width:860px;margin:0 auto;padding-inline:var(--pad);text-align:center}
.pl-emerg .sp-h2{margin:8px 0 26px}
.pl-emerg .pl-alert{margin:0 auto 22px;max-width:760px}
.pl-emerg .pl-alert strong{font-weight:500;color:var(--navy)}
.pl-em2{max-width:760px;margin:0 auto 22px;text-align:left;line-height:1.9}
.pl-revs{--blue:#196BD4;background:var(--offwhite);padding:clamp(50px,7vw,90px) 0;text-align:center}
.pl-revs .in{max-width:1180px;margin:0 auto;padding-inline:var(--pad)}
.pl-revs .sp-h2{margin:8px 0 34px}
.pl-revs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;text-align:left;margin-bottom:30px}
.pl-rev{margin:0;background:#fff;border:1px solid var(--line);padding:26px 26px 22px;display:flex;flex-direction:column}
.pl-rev .stars{color:#D9A21B;letter-spacing:3px;font-size:15px;margin-bottom:12px}
.pl-rev blockquote{margin:0 0 16px;font-family:var(--serif);font-style:italic;font-size:19px;line-height:1.55;color:var(--ink);flex:1}
.pl-rev figcaption{font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.pl-revs .ulink{color:#196BD4}
@media (max-width:900px){.pl-revs-grid{grid-template-columns:1fr}}
@media (max-width:700px){.pl-emerg .in{text-align:left}.pl-emerg .eyebrow,.pl-emerg .sp-h2{text-align:center}.pl-emerg .sp-h2{font-size:26px}}
.pl .sp-incl .item svg{stroke:#196BD4}
.pl-sub{color:var(--muted);max-width:60ch;margin:8px auto 0}
.pl-svcs .pl-grid .ulink{margin-top:auto}
.pl .sp-process .n{color:#196BD4}
.pl-noimg .in{grid-template-columns:1fr;max-width:860px}
.pl-biz{background:var(--offwhite)}
.pl-biz .sp-btnrow{margin-top:34px}
.jq .lp-res-hours{margin:14px 0 0;font-size:13px;color:var(--muted);line-height:1.6}
/* ---- town pages (town_pages.py, 2026-10-03) ---- */
.tp-bath{--blue:#746B5F;--navy:#413C38}
.tp-bath .jq .lp-q-opt:has(input:checked){border-color:var(--ink);background:var(--offwhite)}
.tp-sec{padding:clamp(44px,6vw,80px) 0}
.tp-sec .in{max-width:860px;margin:0 auto;padding-inline:var(--pad)}
.tp-sec.tp-wide .in{max-width:1180px}
.tp-sec.tp-alt{background:var(--offwhite)}
.tp-sec .sp-h2{margin:0 0 22px;text-align:center}
.tp-sec p{line-height:1.95;margin:0 0 16px}
.tp-sec .pl-alert{margin:0 0 22px}
.tp-sec .pl-alert p{margin:0}
.tp-grid{margin-top:26px}
.tp-cardlinks{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:auto}
.tp-more{display:flex;flex-wrap:wrap;gap:10px 22px;margin:-4px 0 18px}
.tp-ticks{list-style:none;margin:0 auto;max-width:640px;display:grid;gap:12px}
.tp-ticks li{position:relative;padding-left:28px;line-height:1.7}
.tp-ticks li::before{content:"";position:absolute;left:2px;top:.55em;width:12px;height:6px;border-left:1.5px solid var(--blue);border-bottom:1.5px solid var(--blue);transform:rotate(-45deg)}
.tp-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:28px;margin-top:10px}
.tp-steps .step .n{font-family:var(--serif);font-size:44px;line-height:1;color:var(--blue);margin-bottom:10px}
.tp-steps .step p{margin:0;line-height:1.85}
.tp-rev{margin:0 0 20px;background:#fff;border:1px solid var(--line);padding:24px 26px}
.tp-sec.tp-alt .tp-rev{background:#fff}
.tp-rev .stars{color:#D9A21B;letter-spacing:3px;font-size:15px;margin-bottom:10px}
.tp-rev blockquote{margin:0 0 12px;font-family:var(--serif);font-style:italic;font-size:19px;line-height:1.55}
.tp-rev figcaption{font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.pl-work .pl-alert{margin:18px 0}
.pl-work .tp-rev{margin-top:22px}
.tp-fold{background:var(--offwhite)}
.tp-fold .in{max-width:860px;margin:0 auto;padding-inline:var(--pad)}
.tp-fold p{line-height:1.95;margin:18px 0 0}
.tp-map{padding:0 0 clamp(36px,5vw,60px)}
.tp-map .in{max-width:1180px;margin:0 auto;padding-inline:var(--pad)}
.tp-map iframe{display:block;width:100%;height:380px;border:0;filter:grayscale(.35)}
.tp-near .sp-h2{margin-bottom:6px}
/* service pages built by town_pages.py (drain page, 4 Oct): small label headings, a list followed by text, links under the nearby row */
.tp-h3{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2.4vw,26px);line-height:1.3;margin:30px 0 6px}
.tp-ticks:has(+ p){margin:0 0 24px;max-width:none}
.tp-near .links + p{margin-top:26px}
.tp-near .links ~ .tp-more{justify-content:center;margin-top:10px}
@media (max-width:700px){
  .tp-steps{grid-template-columns:1fr;gap:22px}
  .tp-map iframe{height:300px}
  .tp-rev{padding:20px}
  .tp-rev blockquote{font-size:17px}
}
@media (max-width:700px){
  .tp-bath .pl-hero .pl-ctas .btn{padding:18px 12px;letter-spacing:1.2px;font-size:13px;white-space:nowrap}
  .tp-bath .pl-hero .pl-ctas .btn i{display:none}
  .tp-bath .pl-cta-b .btn{padding:18px 12px;letter-spacing:1.2px;font-size:13px;white-space:nowrap}
  .tp-bath .pl-cta-b .btn i{display:none}
}
/* ---- homepage as the Letchworth page (2026-10-03) ---- */
.hero .h1brand{font-family:var(--serif);color:var(--hero-ink);font-size:clamp(2.2rem,6.1vw,88px);text-transform:uppercase;letter-spacing:.12em;line-height:1;font-weight:300;max-width:20ch;margin:0 auto}
.hero .hp-rule .hp-h1{margin:0;font-weight:300;color:var(--hero-ink);text-align:center;line-height:1.5;max-width:46ch}
.hp-h2{font-family:var(--serif);font-weight:300;font-size:clamp(1.8rem,3vw,2.5rem);text-transform:uppercase;letter-spacing:.03em;line-height:1.15;margin:8px 0 22px;color:var(--ink)}
.hp-btns{display:flex;flex-wrap:wrap;align-items:center;gap:16px 26px;margin-top:22px}
.hp-doors{padding:clamp(50px,7vw,90px) 0;background:var(--offwhite)}
.hp-doors-in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,48px)}
.hp-door{background:#fff;border:1px solid var(--line);padding:clamp(26px,4vw,44px);display:flex;flex-direction:column}
.hp-door p{line-height:1.9;margin:0 0 14px}
.hp-hook{color:var(--ink)}
.hp-links{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:auto;padding-top:10px}
.hp-plumb{border-top:3px solid #196BD4}
.hp-plumb .btn{background:#196BD4}
.hp-plumb .btn:hover{background:#15214f}
.hp-plumb .eyebrow b,.hp-plumb .ulink{color:#196BD4}
.hp-line{font-size:14px;line-height:1.7;color:var(--ink);margin:6px 0 0;padding:0 6px}
.hp-more{text-align:center;margin-top:18px}
.hp-reviews{padding:clamp(50px,7vw,90px) 0;background:var(--cream);text-align:center}
.hp-sub{margin:-8px 0 26px;line-height:1.8}
.hp-revgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;text-align:left}
.hp-why{text-align:center;padding-bottom:30px}
.hp-areas{padding:clamp(50px,7vw,90px) 0;text-align:center}
.hp-areas-in{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:860px;margin:0 auto;text-align:left}
.hp-areas h3{font-family:var(--sans);font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;color:var(--muted);margin:0 0 12px}
.hp-arealinks{display:flex;flex-direction:column;gap:10px}
.hp-arealinks a{font-family:var(--serif);font-size:19px;color:var(--ink);border-bottom:1px solid var(--line);padding-bottom:4px}
.hp-faq{padding:clamp(50px,7vw,90px) 0;background:var(--offwhite)}
.hp-faq .wrap{max-width:820px}
.hp-faq .hp-h2{text-align:center}
.hp-faq details{border-bottom:1px solid var(--line)}
.hp-faq summary{list-style:none;cursor:pointer;padding:22px 0;font-family:var(--serif);font-size:22px;color:var(--ink);display:flex;justify-content:space-between;gap:20px;align-items:center}
.hp-faq summary::-webkit-details-marker{display:none}
.hp-faq summary::after{content:"+";font-family:var(--sans);font-weight:300;font-size:24px;color:var(--muted)}
.hp-faq details[open] summary::after{content:"\2013"}
.hp-faq .ans{padding:0 0 24px;line-height:1.9;color:var(--muted)}
.hp-cta{padding:clamp(50px,7vw,90px) 0;text-align:center}
.hp-cta p{max-width:60ch;margin:0 auto;line-height:1.9}
.hp-cta .hp-btns{justify-content:center}
.ftr .base .addr{font-size:13px}
@media (max-width:900px){.hp-doors-in,.hp-revgrid{grid-template-columns:1fr}}
@media (max-width:700px){
  .hero .hp-rule span{display:none}
  .hero .hp-rule .hp-h1{font-size:13px;letter-spacing:.16em;padding:0 16px}
  .hp-areas-in{grid-template-columns:1fr}
  .hp-btns .btn,.hp-links .btn{width:100%;justify-content:center;padding:18px 14px;letter-spacing:1.2px;font-size:13px}
  .hp-btns .btn i,.hp-links .btn i{display:none}
  .hp-faq summary{font-size:19px}
}
.hero .hp-rule .hp-h1{white-space:normal;flex:0 1 auto;min-width:0}
@media (max-width:700px){.hero .hp-rule{display:block;margin-top:1.2rem}.hero .hp-rule .hp-h1{max-width:30ch;margin:0 auto}}
@media (max-width:700px){.hero .hp-rule .hp-h1{max-width:none;padding:0 28px;letter-spacing:.12em;line-height:1.7}}
.hero .hp-rule .hp-h1{text-wrap:balance}
.hero .hp-rule h1.hp-h1{font-family:var(--serif);font-size:16px;letter-spacing:.3125em;text-transform:uppercase;line-height:1.5;max-width:60ch;color:rgba(250,248,243,.85)}
@media (max-width:700px){.hero .hp-rule h1.hp-h1{font-size:13px;letter-spacing:.12em;line-height:1.7;max-width:none}}
