/* ==========================================================================
   Farnsworth Troubleshooting Hubs
   Palette: red #ed1c23 accent, light gray #f2f3f5 cards, #dfe2e6 borders.
   No cream. No black section backgrounds. Matches the house style guide.
   ========================================================================== */

/* ---------- Elementor parent overrides ----------
   Required for the full-bleed bands to actually reach the viewport edges.
   Elementor wraps widget output in containers with their own padding and
   max-width, which clip a 100vw child. Same pattern the blog posts use.
   NOTE: .ftr-page must NOT have overflow-x:hidden — it creates a clipping
   context that breaks the negative-margin trick. */
.elementor-widget-container > .ftr-page{overflow:visible;}
.elementor-element:has(> .elementor-widget-container > .ftr-page),
.e-con:has(.ftr-page),
.e-con-inner:has(.ftr-page),
.elementor-widget-container:has(> .ftr-page){
  padding-left:0!important;padding-right:0!important;
  max-width:100%!important;overflow:visible!important;
}

.ftr-page{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:#1a1a1a;line-height:1.7;margin:0 auto;padding:0;box-sizing:border-box;
  overflow:visible;
  padding-top:80px;
}
.ftr-page *,.ftr-page *::before,.ftr-page *::after{box-sizing:border-box;}
@media(max-width:767px){ .ftr-page{padding-top:110px;} }

/* Shared full-bleed helper */
.ftr-full-bleed{
  width:100vw!important;max-width:100vw!important;
  margin-left:calc(-50vw + 50%)!important;
  margin-right:calc(-50vw + 50%)!important;
  box-sizing:border-box!important;
}

.ftr-contained{max-width:1100px;margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px;}
.ftr-section{margin-top:48px;margin-bottom:48px;}

.ftr-page h2{
  font-size:1.65rem;font-weight:700;color:#000;
  border-bottom:3px solid #ed1c23;padding-bottom:10px;margin-bottom:24px;margin-top:0;
}
.ftr-page h3{font-size:1.2rem;font-weight:700;color:#ed1c23;margin:0 0 10px;}
.ftr-page p{margin:0 0 16px;}
.ftr-page a{color:#ed1c23;}

/* ---------- Breadcrumbs + H1 ---------- */
.ftr-breadcrumbs{font-size:.85rem;color:#666;margin-bottom:14px;}
.ftr-breadcrumbs a{color:#ed1c23;text-decoration:none;}
.ftr-breadcrumbs a:hover{text-decoration:underline;}
.ftr-crumb-sep{margin:0 8px;color:#aaa;}
.ftr-crumb-current{color:#666;}
.ftr-h1{font-size:2.1rem;font-weight:800;line-height:1.25;margin:0 0 10px;color:#111;}
@media(max-width:767px){ .ftr-h1{font-size:1.6rem;} }

/* ---------- Lead + difficulty badge ---------- */
.ftr-lead-text{font-size:1.12rem;color:#333;}
.ftr-badge{
  display:flex;gap:12px;align-items:flex-start;
  border:1px solid;border-radius:10px;padding:14px 16px;margin:22px 0 8px;font-size:.95rem;
}
.ftr-badge-icon{font-size:1.15rem;line-height:1.4;flex:0 0 auto;}
.ftr-badge-body strong{display:block;font-size:1rem;margin-bottom:2px;}
.ftr-badge-blurb{color:#444;}

/* ---------- Guidance note ---------- */
.ftr-disclaimer{
  font-size:.88rem;color:#666;line-height:1.6;
  border-left:3px solid #dfe2e6;padding:2px 0 2px 14px;margin:16px 0 0;
}
.ftr-disclaimer a{font-weight:600;}

/* ---------- Triage ---------- */
.ftr-triage{
  background:#f2f3f5;border:1px solid #dfe2e6;border-left:5px solid #ed1c23;
  border-radius:10px;padding:26px 28px;
}
.ftr-triage-kicker{
  display:inline-block;background:#ed1c23;color:#fff;font-size:.7rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:4px;margin-bottom:10px;
}
.ftr-triage-h2{border-bottom:none!important;padding-bottom:0!important;margin-bottom:8px!important;font-size:1.45rem!important;}
.ftr-triage-intro{color:#444;margin-bottom:20px;}
.ftr-triage-list{list-style:none;margin:0;padding:0;counter-reset:none;}
.ftr-triage-item{display:flex;gap:14px;padding:14px 0;border-top:1px solid #dfe2e6;}
.ftr-triage-item:first-child{border-top:none;padding-top:0;}
.ftr-triage-num{
  flex:0 0 28px;height:28px;border-radius:50%;background:#ed1c23;color:#fff;
  font-weight:700;font-size:.9rem;display:flex;align-items:center;justify-content:center;margin-top:2px;
}
.ftr-triage-body strong{display:block;font-size:1.02rem;color:#111;margin-bottom:4px;}
.ftr-triage-body p{margin:0 0 6px;color:#444;}
.ftr-knows{font-size:.9rem;color:#1a7f37!important;background:#eaf5ec;border-radius:6px;padding:7px 11px;display:inline-block;}
.ftr-knows span{font-weight:700;}

/* ---------- Diagnostic fork ---------- */
.ftr-fork-q{
  font-size:1.25rem;font-weight:700;color:#111;background:#f2f3f5;
  border:1px solid #dfe2e6;border-radius:10px;padding:18px 20px;margin:0 0 20px;text-align:center;
}
.ftr-fork-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media(max-width:767px){ .ftr-fork-grid{grid-template-columns:1fr;} }
.ftr-fork-branch{border:1px solid #dfe2e6;border-top:4px solid #ed1c23;border-radius:10px;padding:18px 20px;background:#fff;}
.ftr-fork-answer{font-weight:800;font-size:1.05rem;color:#ed1c23;margin-bottom:10px;}
.ftr-fork-means,.ftr-fork-next{font-size:.95rem;margin-bottom:8px;color:#333;}
.ftr-fork-note{font-size:.9rem;color:#555;margin-top:16px;font-style:italic;}

/* ---------- Emergency band ---------- */
.ftr-emergency{background:#fdeced;border:1px solid #f5c2c5;border-left:5px solid #b3161c;border-radius:10px;padding:24px 28px;}
.ftr-emergency-h2{border-bottom:none!important;padding-bottom:0!important;margin-bottom:10px!important;color:#b3161c!important;font-size:1.4rem!important;}
.ftr-emergency-list{margin:14px 0;padding-left:20px;}
.ftr-emergency-list li{margin-bottom:8px;color:#7a1015;font-weight:600;}
.ftr-emergency-why{color:#7a1015;margin-bottom:18px;}

/* ---------- Symptom variants ---------- */
.ftr-variant-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
@media(max-width:767px){ .ftr-variant-grid{grid-template-columns:1fr;} }
.ftr-variant{border:1px solid #dfe2e6;border-left:4px solid #ed1c23;border-radius:0 8px 8px 0;padding:16px 18px;background:#f2f3f5;}
.ftr-variant-name{font-weight:800;color:#111;margin-bottom:6px;font-size:1.02rem;}
.ftr-variant-means{margin:0 0 8px;font-size:.95rem;color:#444;}
.ftr-variant-jump{font-size:.86rem;font-weight:700;text-decoration:none;}
.ftr-variant-jump:hover{text-decoration:underline;}

/* ---------- Primer ---------- */
.ftr-primer-keys{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:18px 0;}
@media(max-width:767px){ .ftr-primer-keys{grid-template-columns:1fr;} }
.ftr-primer-key{background:#f2f3f5;border:1px solid #dfe2e6;border-radius:8px;padding:13px 16px;}
.ftr-primer-key strong{display:block;color:#ed1c23;margin-bottom:3px;font-size:.98rem;}
.ftr-primer-key span{font-size:.93rem;color:#444;}

/* ---------- Tools ---------- */
.ftr-tools-list{margin:0;padding-left:20px;}
.ftr-tools-list li{margin-bottom:9px;}

/* ---------- Don't do ---------- */
.ftr-dont-list{display:grid;gap:12px;}
.ftr-dont-item{border:1px solid #f5c2c5;background:#fdeced;border-radius:8px;padding:15px 18px;}
.ftr-dont-what{font-weight:800;color:#7a1015;margin-bottom:5px;display:flex;gap:9px;align-items:flex-start;}
.ftr-dont-x{color:#b3161c;font-size:1.25rem;line-height:1.2;flex:0 0 auto;}
.ftr-dont-why{margin:0;font-size:.95rem;color:#5c1013;}

/* ---------- Prevention ---------- */
.ftr-prevent-list{margin:0;padding-left:20px;}
.ftr-prevent-list li{margin-bottom:10px;}
.ftr-prevent-list strong{color:#111;}

/* ---------- Diagnostic table (card-stack on mobile) ---------- */
.ftr-table-wrap{overflow-x:auto;}
.ftr-table{width:100%;border-collapse:collapse;font-size:.95rem;}
.ftr-table thead th{background:#111;color:#fff;text-align:left;padding:12px 14px;font-size:.85rem;letter-spacing:.02em;}
.ftr-table td{padding:12px 14px;border:1px solid #dfe2e6;vertical-align:top;}
.ftr-table tbody tr:nth-child(even){background:#f8f8f8;}
.ftr-who{display:inline-block;font-size:.8rem;font-weight:700;padding:3px 9px;border-radius:20px;border:1px solid;}
.ftr-who-diy{color:#1a7f37;background:#eaf5ec;border-color:#bcdcc4;}
.ftr-who-pro{color:#b3161c;background:#fdeced;border-color:#f5c2c5;}
.ftr-who-either{color:#8a5a00;background:#fdf4e3;border-color:#f0dcb4;}
@media(max-width:640px){
  .ftr-table thead{display:none;}
  .ftr-table,.ftr-table tbody,.ftr-table tr,.ftr-table td{display:block;width:100%;}
  .ftr-table tr{border:1px solid #dfe2e6;border-radius:10px;margin-bottom:16px;box-shadow:0 1px 3px rgba(0,0,0,.05);overflow:hidden;background:#fff;}
  .ftr-table tbody tr:nth-child(even){background:#fff;}
  .ftr-table td{border:none;border-bottom:1px solid #eee;padding:12px 14px;}
  .ftr-table td:first-child{background:#111;color:#fff;}
  .ftr-table td:first-child::before{color:#bbb!important;}
  .ftr-table td:last-child{border-bottom:none;}
  .ftr-table td::before{content:attr(data-label);display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#888;margin-bottom:4px;font-weight:700;}
}

/* ---------- Causes ---------- */
.ftr-causes-intro{color:#444;}
.ftr-cause{border:1px solid #dfe2e6;border-radius:10px;padding:22px 24px;margin-bottom:18px;background:#fff;}
.ftr-cause-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.ftr-cause-num{
  flex:0 0 30px;height:30px;border-radius:50%;background:#111;color:#fff;
  font-weight:700;display:flex;align-items:center;justify-content:center;font-size:.92rem;
}
.ftr-cause-head h3{margin:0;flex:1 1 auto;}
.ftr-cause-tier{font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:20px;border:1px solid;white-space:nowrap;}
.ftr-tell{background:#f2f3f5;border-radius:6px;padding:9px 13px;font-size:.93rem;}
.ftr-tell span{font-weight:700;color:#111;}
.ftr-steps{margin-top:14px;padding:16px 18px;background:#f2f3f5;border:1px solid #dfe2e6;border-radius:8px;}
.ftr-steps-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#ed1c23;margin-bottom:8px;}
.ftr-steps ol{margin:0 0 10px;padding-left:20px;}
.ftr-steps li{margin-bottom:8px;}
.ftr-stop{background:#fdeced;border:1px solid #f5c2c5;border-radius:8px;padding:12px 15px;margin-top:14px;font-size:.95rem;color:#7a1015;}
.ftr-brandnote{margin-top:14px;font-size:.94rem;}
.ftr-brandnote ul{margin:6px 0 0;padding-left:20px;}
.ftr-brandnote li{margin-bottom:5px;}

/* ---------- Arizona ---------- */
.ftr-az{background:#f2f3f5;border:1px solid #dfe2e6;border-radius:10px;padding:26px 28px;}
.ftr-az h2{border-bottom-color:#ed1c23;}
.ftr-az-points{margin:14px 0 0;padding-left:20px;}
.ftr-az-points li{margin-bottom:9px;}

/* ---------- Causal chain ---------- */
.ftr-chain-flow{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:18px 0;}
.ftr-chain-step{border:1px solid #dfe2e6;border-radius:8px;padding:10px 14px;background:#fff;font-size:.92rem;}
.ftr-chain-step a{text-decoration:none;font-weight:600;}
.ftr-chain-step a:hover{text-decoration:underline;}
.ftr-chain-here{background:#ed1c23;border-color:#ed1c23;color:#fff;font-weight:700;}
.ftr-chain-here em{font-weight:400;opacity:.85;font-size:.85rem;}
.ftr-chain-arrow{color:#ed1c23;font-weight:700;font-size:1.1rem;}
.ftr-chain-note{font-size:.93rem;color:#555;}

/* ---------- Service call ---------- */
.ftr-visit{background:#f2f3f5;border:1px solid #dfe2e6;border-radius:10px;padding:20px 24px;margin-top:16px;}
.ftr-visit-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#ed1c23;margin-bottom:10px;}
.ftr-visit-list{margin:0;padding-left:20px;}
.ftr-visit-list li{margin-bottom:8px;}
.ftr-visit-note{font-size:.93rem;color:#555;margin-top:14px;}

/* ---------- Cost shape (no dollar figures) ---------- */
.ftr-cost-factors{list-style:none;margin:0 0 18px;padding:0;}
.ftr-cost-factors li{border-left:3px solid #ed1c23;background:#f2f3f5;padding:12px 16px;margin-bottom:10px;border-radius:0 8px 8px 0;}
.ftr-cost-factors strong{display:block;color:#111;margin-bottom:3px;}
.ftr-cost-factors span{color:#444;font-size:.95rem;}
.ftr-cost-close{font-weight:600;color:#111;}

/* ---------- CTA band ---------- */
.ftr-cta{background:#f2f3f5;border-top:4px solid #ed1c23;border-bottom:1px solid #dfe2e6;padding:44px 24px;margin:56px 0;}
.ftr-cta-inner{max-width:820px;margin:0 auto;text-align:center;}
.ftr-cta-h2{border-bottom:none!important;padding-bottom:0!important;margin-bottom:10px!important;color:#111!important;}
.ftr-cta-sub{color:#444;margin-bottom:22px;}
.ftr-cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:16px;}
.ftr-cta-tune{font-size:.92rem;color:#555;margin:0;}

/* Buttons — the theme forces #cc3366 + dark text on button:hover sitewide,
   so every state needs explicit !important on BOTH bg and color. */
.ftr-page .ftr-btn,
.ftr-page a.ftr-btn{
  display:inline-block;padding:14px 28px;border-radius:6px;font-weight:700;font-size:1rem;
  text-decoration:none!important;border:2px solid transparent;transition:none;
}
.ftr-page a.ftr-btn-call,
.ftr-page a.ftr-btn-call:link,
.ftr-page a.ftr-btn-call:visited{background:#ed1c23!important;color:#fff!important;border-color:#ed1c23!important;}
.ftr-page a.ftr-btn-call:hover,
.ftr-page a.ftr-btn-call:focus,
.ftr-page a.ftr-btn-call:active{background:#c9161c!important;color:#fff!important;border-color:#c9161c!important;}

.ftr-page a.ftr-btn-book,
.ftr-page a.ftr-btn-book:link,
.ftr-page a.ftr-btn-book:visited{background:#fff!important;color:#ed1c23!important;border-color:#ed1c23!important;}
.ftr-page a.ftr-btn-book:hover,
.ftr-page a.ftr-btn-book:focus,
.ftr-page a.ftr-btn-book:active{background:#ed1c23!important;color:#fff!important;border-color:#ed1c23!important;}

.ftr-page a.ftr-btn-outline,
.ftr-page a.ftr-btn-outline:link,
.ftr-page a.ftr-btn-outline:visited{background:#fff!important;color:#111!important;border-color:#111!important;}
.ftr-page a.ftr-btn-outline:hover,
.ftr-page a.ftr-btn-outline:focus,
.ftr-page a.ftr-btn-outline:active{background:#111!important;color:#fff!important;border-color:#111!important;}

/* ==========================================================================
   Closing CTA — full-bleed red band, last thing on the page.
   Red-on-large-area is sanctioned by the style guide for the CTA banner only.
   ========================================================================== */
.ftr-close-cta{
  background:#ed1c23;color:#fff;
  padding:60px 24px 56px;
  width:100vw!important;max-width:100vw!important;
  margin-top:60px!important;
  margin-bottom:0!important;              /* flush against the footer */
  margin-left:calc(-50vw + 50%)!important;
  margin-right:calc(-50vw + 50%)!important;
  box-sizing:border-box!important;
}
@media(max-width:767px){ .ftr-close-cta{padding:44px 20px 40px;} }
/* ONE shared content width for every block in this band that has a hard left
   edge — the trust points (left-aligned text), the tune-up box (visible border)
   and the cities rule (visible top border). They were previously 760 / 720 / 800,
   all centred, so each landed on a different left edge and the band read as
   misaligned. The lead paragraph is deliberately narrower: it's centre-aligned
   with no hard edge, so a shorter measure reads better and costs nothing. */
.ftr-close-inner{--ftr-close-w:760px;max-width:900px;margin:0 auto;text-align:center;}
.ftr-close-eyebrow{
  font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.85);margin-bottom:14px;
}
.ftr-page .ftr-close-h2{
  color:#fff!important;border-bottom:none!important;padding-bottom:0!important;
  margin:0 0 14px!important;font-size:2rem!important;font-weight:800;line-height:1.25;
}
@media(max-width:767px){ .ftr-page .ftr-close-h2{font-size:1.55rem!important;} }
/* Specificity matters here. `.ftr-page p{margin:0 0 16px}` above is (0,1,1) —
   one class plus one element — which BEATS a bare `.ftr-close-sub` at (0,1,0).
   Without the extra class the auto side-margins get overwritten with 0 and this
   paragraph sits flush left in the 900px column instead of centred. Any centred
   <p> inside .ftr-page needs the same two-class selector. */
.ftr-page .ftr-close-sub{
  color:rgba(255,255,255,.94);font-size:1.05rem;line-height:1.6;
  max-width:620px;margin:0 auto 32px;
}

/* Action buttons — white pills on the red field. Every state pinned with
   !important because the theme forces #cc3366 + dark text on hover. */
.ftr-close-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:34px;}
.ftr-page a.ftr-cbtn{
  display:flex;align-items:center;gap:12px;min-width:255px;
  padding:15px 26px;border-radius:8px;text-decoration:none!important;
  border:2px solid #fff!important;font-family:inherit;text-align:left;
}
.ftr-cbtn-icon{font-size:1.5rem;line-height:1;flex:0 0 auto;}
.ftr-cbtn-text{display:flex;flex-direction:column;line-height:1.3;}
.ftr-cbtn-big{font-size:1.16rem;font-weight:800;}
.ftr-cbtn-small{font-size:.8rem;font-weight:500;opacity:.85;}

.ftr-page a.ftr-cbtn-call,
.ftr-page a.ftr-cbtn-call:link,
.ftr-page a.ftr-cbtn-call:visited{background:#fff!important;color:#ed1c23!important;}
.ftr-page a.ftr-cbtn-call:hover,
.ftr-page a.ftr-cbtn-call:focus,
.ftr-page a.ftr-cbtn-call:active{background:#111!important;color:#fff!important;border-color:#111!important;}
.ftr-page a.ftr-cbtn-call:hover .ftr-cbtn-small{opacity:.9;}

.ftr-page a.ftr-cbtn-book,
.ftr-page a.ftr-cbtn-book:link,
.ftr-page a.ftr-cbtn-book:visited{background:transparent!important;color:#fff!important;}
.ftr-page a.ftr-cbtn-book:hover,
.ftr-page a.ftr-cbtn-book:focus,
.ftr-page a.ftr-cbtn-book:active{background:#fff!important;color:#ed1c23!important;border-color:#fff!important;}

@media(max-width:560px){
  .ftr-close-actions{flex-direction:column;align-items:stretch;}
  .ftr-page a.ftr-cbtn{min-width:0;justify-content:center;text-align:center;}
  .ftr-cbtn-text{align-items:center;}
}

/* Trust points — fixed 2-col grid, items left-aligned inside a centered
   block so the checkmarks line up vertically. A wrapping flex row here
   produced ragged rows of different widths that read as off-centre. */
.ftr-close-points{
  list-style:none;padding:0;
  margin:0 auto 30px;max-width:var(--ftr-close-w,760px);
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 34px;
  font-size:.96rem;color:rgba(255,255,255,.95);text-align:left;
}
.ftr-close-points li{
  position:relative;padding-left:26px;line-height:1.5;
}
.ftr-close-points li::before{
  content:"\2713";position:absolute;left:0;top:0;
  font-weight:700;color:#fff;font-size:1rem;line-height:1.5;
}
.ftr-close-points strong{font-weight:800;}
@media(max-width:640px){
  .ftr-close-points{grid-template-columns:1fr;gap:12px;max-width:420px;}
}

.ftr-close-tune{
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);
  border-radius:8px;padding:16px 22px;font-size:.96rem;line-height:1.6;
  max-width:var(--ftr-close-w,760px);margin:0 auto 30px;color:#fff;
}
.ftr-close-cities{
  font-size:.84rem;color:rgba(255,255,255,.8);line-height:1.85;
  border-top:1px solid rgba(255,255,255,.28);
  padding-top:22px;max-width:var(--ftr-close-w,760px);margin:0 auto;
}

/* ---------- Related ---------- */
.ftr-related-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
@media(max-width:767px){ .ftr-related-grid{grid-template-columns:1fr;} }
.ftr-related-card{
  display:flex;flex-direction:column;gap:6px;border:1px solid #dfe2e6;border-radius:10px;
  padding:16px 18px;text-decoration:none!important;background:#fff;
}
.ftr-related-card:hover{border-color:#ed1c23;background:#f2f3f5;}
.ftr-related-title{font-weight:700;color:#111;}
.ftr-related-go{font-size:.85rem;color:#ed1c23;font-weight:600;}

/* ---------- Brand picker ---------- */
.ftr-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
@media(max-width:900px){ .ftr-picker-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:520px){ .ftr-picker-grid{grid-template-columns:1fr;} }
.ftr-picker-card{
  display:flex;flex-direction:column;gap:5px;border:1px solid #dfe2e6;border-radius:10px;
  padding:16px 18px;text-decoration:none!important;background:#f2f3f5;text-align:center;
}
.ftr-picker-card:hover{border-color:#ed1c23;background:#fff;}
.ftr-picker-name{font-weight:700;color:#111;font-size:1.02rem;}
.ftr-picker-go{font-size:.82rem;color:#ed1c23;font-weight:600;}
.ftr-picker-note{font-size:.93rem;color:#555;margin-top:14px;}
.ftr-picker-hint{font-size:.9rem;color:#666;background:#f2f3f5;border-left:3px solid #dfe2e6;padding:10px 14px;border-radius:0 6px 6px 0;margin-bottom:18px;}

/* ==========================================================================
   Service areas — full-bleed band with large city cards.
   Treated as a real local-SEO asset rather than a footer chip row.
   ========================================================================== */
.ftr-areas-band{
  background:#f2f3f5;border-top:1px solid #dfe2e6;border-bottom:1px solid #dfe2e6;
  padding:56px 24px;
  width:100vw!important;max-width:100vw!important;
  margin-top:60px!important;
  margin-bottom:0!important;              /* sits directly on the red band */
  margin-left:calc(-50vw + 50%)!important;
  margin-right:calc(-50vw + 50%)!important;
  box-sizing:border-box!important;
}
@media(max-width:767px){ .ftr-areas-band{padding:44px 20px;} }
.ftr-areas-inner{max-width:1100px;margin:0 auto;}
.ftr-areas-head{text-align:center;max-width:720px;margin:0 auto 32px;}
.ftr-areas-kicker{
  display:inline-block;background:#ed1c23;color:#fff;font-size:.7rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;padding:5px 12px;border-radius:4px;margin-bottom:14px;
}
.ftr-page .ftr-areas-h2{
  border-bottom:none!important;padding-bottom:0!important;margin:0 0 12px!important;
  font-size:2rem!important;font-weight:800;color:#111!important;
}
@media(max-width:767px){ .ftr-page .ftr-areas-h2{font-size:1.55rem!important;} }
.ftr-areas-sub{color:#444;font-size:1.04rem;margin:0;}
.ftr-areas-sub strong{color:#111;}
.ftr-page a.ftr-areas-phone{font-weight:800;white-space:nowrap;text-decoration:none;}
.ftr-page a.ftr-areas-phone:hover{text-decoration:underline;}

.ftr-areas-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
}
@media(max-width:1000px){ .ftr-areas-grid{grid-template-columns:repeat(3,1fr);} }
@media(max-width:700px){ .ftr-areas-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:420px){ .ftr-areas-grid{grid-template-columns:1fr;} }

.ftr-page a.ftr-area-card{
  position:relative;display:flex;flex-direction:column;gap:3px;
  background:#fff;border:1px solid #dfe2e6;border-radius:10px;
  padding:18px 20px;text-decoration:none!important;
  transition:none;overflow:hidden;
}
.ftr-page a.ftr-area-card:hover,
.ftr-page a.ftr-area-card:focus{
  border-color:#ed1c23;background:#fff;box-shadow:0 2px 10px rgba(237,28,35,.13);
}
.ftr-area-name{font-size:1.1rem;font-weight:800;color:#111;line-height:1.3;}
.ftr-area-sub{font-size:.8rem;color:#777;font-weight:500;}
.ftr-area-arrow{
  position:absolute;right:16px;top:50%;transform:translateY(-50%);
  color:#dfe2e6;font-size:1.25rem;font-weight:700;
}
.ftr-page a.ftr-area-card:hover .ftr-area-arrow{color:#ed1c23;}

/* Mesa — home base, called out */
.ftr-page a.ftr-area-home{
  background:#ed1c23!important;border-color:#ed1c23!important;
}
.ftr-page a.ftr-area-home .ftr-area-name{color:#fff;}
.ftr-page a.ftr-area-home .ftr-area-sub{color:rgba(255,255,255,.88);font-weight:700;}
.ftr-page a.ftr-area-home .ftr-area-arrow{color:rgba(255,255,255,.7);}
.ftr-page a.ftr-area-home:hover,
.ftr-page a.ftr-area-home:focus{
  background:#c9161c!important;border-color:#c9161c!important;box-shadow:0 2px 12px rgba(237,28,35,.3);
}
.ftr-page a.ftr-area-home:hover .ftr-area-arrow{color:#fff;}

.ftr-areas-foot{
  text-align:center;font-size:.93rem;color:#666;margin:26px 0 0;
}

/* ---------- FAQ ---------- */
.ftr-faq-item{border:1px solid #dfe2e6;border-radius:8px;margin-bottom:10px;overflow:hidden;background:#fff;}
.ftr-page .ftr-faq-q{
  width:100%;display:flex;justify-content:space-between;align-items:center;gap:14px;
  background:#f2f3f5!important;color:#111!important;border:none;text-align:left;
  padding:15px 18px;font-size:1.02rem;font-weight:700;cursor:pointer;font-family:inherit;line-height:1.5;
}
.ftr-page .ftr-faq-q:hover,
.ftr-page .ftr-faq-q:focus,
.ftr-page .ftr-faq-q:active{background:#e8eaed!important;color:#111!important;}
.ftr-faq-icon{color:#ed1c23;font-size:1.35rem;font-weight:700;flex:0 0 auto;line-height:1;}
.ftr-faq-a{padding:16px 18px;border-top:1px solid #dfe2e6;}
.ftr-faq-a p{margin:0;}

/* ---------- Sources ---------- */
.ftr-sources{background:#f2f3f5;border:1px solid #dfe2e6;border-radius:10px;padding:20px 24px;}
.ftr-sources-h{font-size:1rem!important;color:#111!important;margin-bottom:10px!important;}
.ftr-sources ul{margin:0;padding-left:20px;font-size:.92rem;color:#444;}
.ftr-sources li{margin-bottom:6px;}

/* ---------- Hub landing ---------- */
.ftr-hub-lead{font-size:1.12rem;color:#333;margin-bottom:34px;}
.ftr-fast-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
@media(max-width:900px){ .ftr-fast-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .ftr-fast-grid{grid-template-columns:1fr;} }
.ftr-fast-card{
  display:flex;flex-direction:column;gap:8px;border:1px solid #dfe2e6;border-left:4px solid #ed1c23;
  border-radius:8px;padding:18px 20px;text-decoration:none!important;background:#f2f3f5;
}
.ftr-fast-card:hover{background:#fff;border-color:#ed1c23;}
.ftr-fast-title{font-weight:700;color:#111;font-size:1.02rem;line-height:1.4;}
.ftr-fast-go{font-size:.84rem;color:#ed1c23;font-weight:600;}
.ftr-dir-group{margin-bottom:34px;}
/* Category headings. Must NOT inherit the theme's red h3 — sitting in the same
   color as the links underneath made the group name read as one more link
   instead of as a section title. Near-black, heavier, slightly larger, with a
   red rule beneath to carry the brand accent instead of the text color. */
.ftr-page .ftr-dir-h3{
  color:#111!important;
  font-size:1.18rem!important;
  font-weight:800!important;
  letter-spacing:-.01em;
  line-height:1.3;
  text-transform:none;
  border-bottom:2px solid #ed1c23!important;
  padding-bottom:8px!important;
  margin:0 0 14px!important;
}
.ftr-page .ftr-dir-h3 a{color:#111!important;text-decoration:none!important;}
@media(max-width:767px){ .ftr-page .ftr-dir-h3{font-size:1.1rem!important;} }
.ftr-dir-list{list-style:none;margin:0;padding:0;}
.ftr-dir-list li{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:9px 0;border-bottom:1px solid #f0f0f0;}
.ftr-dir-list a{font-weight:600;text-decoration:none;flex:1 1 auto;}
.ftr-dir-list a:hover{text-decoration:underline;}
.ftr-dir-tier{font-size:.7rem;font-weight:700;padding:2px 9px;border-radius:20px;border:1px solid;white-space:nowrap;}
.ftr-otherhub{background:#f2f3f5;border:1px solid #dfe2e6;border-radius:10px;padding:24px 26px;}
.ftr-empty{background:#f2f3f5;border:1px solid #dfe2e6;border-radius:10px;padding:20px 24px;}

/* ---------- Cross-hub note ---------- */
.ftr-crosshub{background:#f2f3f5;border-left:4px solid #ed1c23;border-radius:0 8px 8px 0;padding:13px 17px;margin:18px 0;font-size:.95rem;}
.ftr-crosshub a{font-weight:700;margin-left:6px;}

/* ---------- Sticky call bar ---------- */
.ftr-sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:9999;display:none;gap:10px;
  padding:10px 14px;background:#fff;border-top:1px solid #dfe2e6;box-shadow:0 -2px 12px rgba(0,0,0,.10);
}
.ftr-sticky-on{display:flex;}
@media(min-width:900px){ .ftr-sticky-on{display:none;} }
.ftr-sticky a{
  flex:1 1 0;text-align:center;padding:13px 10px;border-radius:6px;font-weight:700;
  font-size:.98rem;text-decoration:none!important;border:2px solid transparent;
}
.ftr-sticky a.ftr-sticky-call,
.ftr-sticky a.ftr-sticky-call:link,
.ftr-sticky a.ftr-sticky-call:visited,
.ftr-sticky a.ftr-sticky-call:hover,
.ftr-sticky a.ftr-sticky-call:focus{background:#ed1c23!important;color:#fff!important;border-color:#ed1c23!important;}
.ftr-sticky a.ftr-sticky-book,
.ftr-sticky a.ftr-sticky-book:link,
.ftr-sticky a.ftr-sticky-book:visited,
.ftr-sticky a.ftr-sticky-book:hover,
.ftr-sticky a.ftr-sticky-book:focus{background:#fff!important;color:#ed1c23!important;border-color:#ed1c23!important;}
.ftr-sticky-icon{margin-right:4px;}

/* The service page that fixes this symptom — the money link. Sits between the
   service-call list and the cost block, where the reader has just worked out
   what's wrong and is deciding whether to do it or hand it over. Light gray per
   the no-black/no-cream rule, red left rule for the brand accent. */
.ftr-page .ftr-service-link{margin:26px 0;}
.ftr-svc-inner{background:#f2f3f5;border:1px solid #dfe2e6;border-left:4px solid #ed1c23;border-radius:0;padding:18px 22px;}
.ftr-svc-kicker{display:block;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#5f5e5a;margin-bottom:6px;}
.ftr-svc-body{margin:0;font-size:1rem;line-height:1.65;color:#111;}
.ftr-page a.ftr-svc-a{color:#ed1c23!important;font-weight:700;text-decoration:underline;text-underline-offset:2px;}
.ftr-page a.ftr-svc-a:hover{color:#b3161c!important;}
@media(max-width:767px){ .ftr-svc-inner{padding:16px 18px;} }