/* CBP interactive homepage sections (Nov 2026). All classes prefixed cbx-. */
.cbx-tip{margin:10px 0 2px;padding:11px 14px;background:#eef2f9;border-radius:10px;font-size:13.5px;line-height:1.45;color:#17203a}
.cbx-tip b{color:#0B1F4B}
.cbx-tip[hidden]{display:none}

/* Fair billing slider */
.cbx-bill{grid-column:1/-1;background:#fff;color:#17203a;border-radius:16px;padding:22px 24px}
.cbx-bill label{display:block;font-size:14px;font-weight:600}
.cbx-bill label b{color:#B8210A}
.cbx-range{accent-color:#E02B20;width:100%;height:32px;margin:0}
.cbx-blocks{display:flex;gap:6px;margin-top:10px;min-height:48px}
.cbx-blocks span{flex:1 1 0;min-width:0;border-radius:8px;padding:8px 4px;font-size:11px;font-weight:700;text-align:center;display:flex;align-items:center;justify-content:center;background:#E02B20;color:#17203a}
.cbx-blocks span.first{flex:2 1 0;background:#0B1F4B;color:#fff;border:1px solid #c9d1e0}
.fairbill .cbx-billed{margin:12px 0 0;font-size:15px;color:#17203a;opacity:1;max-width:none}
.fairbill .cbx-billed b{color:#0B1F4B}
.fairbill .cbx-bill label{color:#17203a}

/* Tap-the-house services map */
.cbx-house-wrap{width:100%;box-sizing:border-box;display:flex;flex-wrap:wrap;gap:36px;align-items:center;max-width:1120px;margin:0 auto;text-align:left}
.cbx-house{flex:1 1 520px;min-width:0;position:relative;background:#eef2f9;border-radius:20px;overflow:hidden}
.cbx-house svg{display:block;width:100%;height:auto}
.cbx-spot{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;border:3px solid #fff;background:#0B1F4B;color:#fff;font:700 15px/1 Poppins,system-ui,sans-serif;cursor:pointer;box-shadow:0 2px 8px rgba(11,31,75,.35);padding:0}
.cbx-spot[aria-pressed="true"]{background:#E02B20}
.cbx-spot:focus-visible,.cbx-chip:focus-visible,.cbx-wait:focus-visible,.cbx-cta:focus-visible{outline:3px solid #E02B20;outline-offset:2px}
.cbx-panel{flex:1 1 320px;min-width:0}
.cbx-photo{display:block;width:auto;height:auto;max-width:100%;max-height:300px;border-radius:16px;margin:0 auto 18px}
.cbx-where{margin:0;font-size:13px;font-weight:700;color:#5e6a80}
.cbx-panel h3{margin:4px 0 8px;font-size:28px;line-height:1.15;font-weight:800;color:#0B1F4B}
.cbx-panel p.cbx-blurb{margin:0 0 14px;font-size:16px;color:#17203a}
.cbx-signs{margin:0 0 22px;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.cbx-signs li{position:relative;padding-left:18px;font-size:15px;color:#17203a}
.cbx-signs li::before{content:"";position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:50%;background:#E02B20}
.cbx-cta{display:inline-block;background:#fff;color:#B8210A;border:1.5px solid #E02B20;text-decoration:none;font-weight:700;padding:12px 22px;border-radius:12px}
.cbx-cta:hover{background:#E02B20;color:#fff}
.cbx-svc-links{width:100%;box-sizing:border-box;max-width:1120px;margin:28px auto 0;display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:center;font-size:14px}
.cbx-svc-links a{color:#0B1F4B;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.cbx-svc-links a:hover{color:#E02B20}

/* Water meter test */
.cbx-meter{padding:72px 6% 0;background:#fff}
.cbx-meter-card{background:#f5f7fb;border-radius:20px;padding:40px 32px;display:flex;flex-wrap:wrap;gap:40px;align-items:center}
.cbx-meter-intro{flex:1 1 320px;min-width:0}
.cbx-kicker{margin:0;font-size:14px;font-weight:600;color:#B8210A}
.cbx-meter-intro h2{margin:4px 0 14px;font-family:Poppins,sans-serif;font-size:clamp(26px,3.4vw,36px);line-height:1.12;font-weight:800;color:#0B1F4B}
.cbx-steps{margin:0;padding:0;list-style:none;counter-reset:cbx;display:flex;flex-direction:column;gap:10px;font-size:15px}
.cbx-steps li{counter-increment:cbx;position:relative;padding-left:38px;min-height:26px;color:#17203a}
.cbx-steps li::before{content:counter(cbx);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:#0B1F4B;color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}
.cbx-meter-tool{flex:1 1 420px;min-width:0;background:#fff;border:1px solid #e7ebf3;border-radius:16px;padding:24px;box-sizing:border-box}
.cbx-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cbx-meter-tool label,.cbx-lab{display:block;font-size:13px;font-weight:700;margin:0 0 6px;color:#17203a}
.cbx-meter-tool input[type=text]{width:100%;min-height:48px;padding:0 12px;font:inherit;font-size:16px;font-variant-numeric:tabular-nums;border:1.5px solid #c9d1e0;border-radius:10px;box-sizing:border-box;color:#17203a;background:#fff}
.cbx-lab{margin-top:14px}
.cbx-waits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.cbx-wait,.cbx-chip{min-height:44px;border-radius:10px;font:600 14px/1.2 Poppins,system-ui,sans-serif;background:#fff;color:#17203a;border:1.5px solid #c9d1e0;cursor:pointer;padding:8px 10px}
.cbx-wait[aria-pressed="true"],.cbx-chip[aria-pressed="true"]{background:#0B1F4B;color:#fff;border-color:#0B1F4B}
.cbx-result{margin-top:18px;display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.cbx-dial{flex:none;width:92px;height:92px;border-radius:50%;border:4px solid #0B1F4B;background:#fff;position:relative;box-sizing:border-box}
.cbx-needle{position:absolute;inset:0;animation:cbSpin 4s linear infinite;animation-play-state:paused}
.cbx-needle::before{content:"";position:absolute;left:50%;top:8px;width:4px;height:34px;margin-left:-2px;border-radius:2px;background:#E02B20}
.cbx-dial::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#0B1F4B}
.cbx-stats{flex:1 1 220px;min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cbx-stat{background:#f5f7fb;border-radius:12px;padding:12px}
.cbx-stat b{display:block;font-size:22px;font-weight:800;color:#0B1F4B;line-height:1.2}
.cbx-stat span{font-size:12px;color:#5e6a80}
.cbx-stat.main{background:#0B1F4B}
.cbx-stat.main b{color:#fff}
.cbx-stat.main span{color:#e3e8f4}
.cbx-verdict{margin:16px 0 0;font-size:15px;color:#17203a}
.cbx-verdict b{color:#0B1F4B}
.cbx-btn{display:inline-block;margin-top:14px;background:#E02B20;color:#fff;text-decoration:none;font-weight:700;padding:12px 22px;border-radius:12px}
.cbx-btn:hover{background:#B8210A;color:#fff}
.cbx-btn[hidden]{display:none}

/* How far away are we */
.cbx-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.cbx-chip{border-radius:999px;padding:8px 16px}
.cbx-eta{padding:28px;background:#f5f7fb;border-radius:20px;display:flex;flex-wrap:wrap;gap:28px;align-items:center}
.cbx-eta-num{flex:none}
.cbx-eta-num b{font-size:64px;line-height:1;font-weight:800;color:#0B1F4B}
.cbx-eta-num span{font-size:16px;color:#5e6a80;margin-left:8px}
.cbx-eta-num div{font-size:15px;font-weight:600;margin-top:4px;color:#17203a}
.cbx-eta-num a{display:inline-block;margin-top:6px;font-size:14px;font-weight:600;color:#B8210A;text-underline-offset:3px}
.cbx-track{flex:1 1 340px;min-width:0;position:relative;height:112px}
.cbx-rail{position:absolute;left:0;right:0;top:92px;height:6px;border-radius:3px;background:#dfe5ef}
.cbx-fill{position:absolute;left:0;top:92px;height:6px;border-radius:3px;background:#E02B20;width:43%;transition:width .7s ease}
.cbx-dot-a{position:absolute;left:0;top:85px;width:20px;height:20px;border-radius:50%;background:#0B1F4B}
.cbx-dot-b{position:absolute;right:0;top:85px;width:20px;height:20px;border-radius:50%;background:#fff;border:4px solid #0B1F4B;box-sizing:border-box}
.cbx-van{position:absolute;top:0;left:43%;transform:translateX(-50%);transition:left .7s ease;width:184px}
.cbx-van svg{display:block;width:184px;height:92px;overflow:visible}
.cbx-area-links{margin:24px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px 20px;font-size:14px}
.cbx-area-links a{color:#0B1F4B;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.cbx-area-links a:hover{color:#E02B20}
.cbx-area-links small{color:#5e6a80;font-size:12px;margin-right:4px;font-weight:400}

/* Drawing animations */
.cb-flow{stroke-dasharray:8 8;animation:cbFlow 1s linear infinite}
.cb-flow-slow{stroke-dasharray:10 10;animation:cbFlowSlow 1.6s linear infinite}
.cb-fall{animation:cbFall 1.1s linear infinite}
.cb-fall2{animation:cbFall 1.1s linear .35s infinite}
.cb-fall3{animation:cbFall 1.1s linear .7s infinite}
.cb-drip{animation:cbDrip 1.8s ease-in infinite}
.cb-seep{animation:cbSeep 2.2s ease-out infinite;transform-origin:126px 472px}
.cb-wheel{transform-box:fill-box;transform-origin:center;animation:cbSpin .7s linear infinite}
.cb-bob{animation:cbBob .45s ease-in-out infinite alternate}
.cb-puff{transform-box:fill-box;transform-origin:center;animation:cbPuff 1s ease-out infinite}
.cb-puff2{transform-box:fill-box;transform-origin:center;animation:cbPuff 1s ease-out .5s infinite}
@keyframes cbFlow{to{stroke-dashoffset:-16}}
@keyframes cbFlowSlow{to{stroke-dashoffset:-20}}
@keyframes cbFall{0%{transform:translateY(0);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateY(62px);opacity:0}}
@keyframes cbDrip{0%{transform:translateY(0);opacity:0}15%{opacity:1}80%{opacity:1}100%{transform:translateY(18px);opacity:0}}
@keyframes cbSeep{0%{transform:scale(.3);opacity:.9}100%{transform:scale(1.6);opacity:0}}
@keyframes cbSpin{to{transform:rotate(360deg)}}
@keyframes cbBob{to{transform:translateY(-1.5px)}}
@keyframes cbPuff{0%{transform:translateX(0) scale(.5);opacity:.7}100%{transform:translateX(-10px) scale(1.4);opacity:0}}

@media (max-width:640px){
  .cbx-meter{padding:56px 5% 0}
  .cbx-meter-card{padding:28px 18px}
  .cbx-eta{padding:22px 18px}
  .cbx-eta-num b{font-size:52px}
  .cbx-van{width:150px}
  .cbx-van svg{width:150px;height:75px}
  .cbx-track{height:98px}
  .cbx-rail,.cbx-fill{top:78px}
  .cbx-dot-a,.cbx-dot-b{top:71px}
  .cbx-spot{width:40px;height:40px;font-size:14px}
  .cbx-photo{max-height:240px}
}
@media (prefers-reduced-motion:reduce){
  .cb-flow,.cb-flow-slow,.cb-fall,.cb-fall2,.cb-fall3,.cb-drip,.cb-seep,.cb-wheel,.cb-bob,.cb-puff,.cb-puff2,.cbx-needle{animation:none}
  .cbx-van,.cbx-fill{transition:none}
}

/* Nov 2026 refinements: company colours and stacked areas intro */
.hero h1 span{color:#E02B20}
.proof b{color:#fff;position:relative;padding-top:20px}
.proof b::before{content:"";position:absolute;left:50%;top:0;width:40px;height:4px;margin-left:-20px;border-radius:2px;background:#E02B20}
.tt .tt-head{display:block;margin-bottom:28px}
.tt .tt-head .tt-lead{max-width:none;margin:16px 0 0}
