/*
Theme Name: Shawn Buys Houses
Theme URI: https://shawnbuyshouses.com
Author: Shawn Buys Houses
Description: Custom block theme for Shawn Buys Houses — a cash home-buying business in Oklahoma and Wisconsin. Vanilla PHP/HTML/CSS, no page builder, no build step. Built fresh after a security incident on the old site; nothing is imported from the old install.
Version: 0.1.0
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sbh
*/

/* ============================================================
   DESIGN TOKENS  (from the approved mockups — cool palette)
   ============================================================ */
:root{
  --navy:#113c5c;
  --navy-deep:#0d2f49;
  --sky:#06a2e5;
  --sky-dark:#0587c1;
  /* AA-compliant blue for SMALL text on a light background. --sky (2.9:1) and
     --sky-dark (4.0:1) cannot reach 4.5:1 on any light background, including
     pure white, so small text in those colors fails WCAG AA. Use this instead
     for eyebrows, small links, and other sub-18px text. Applied in the
     focused hero (.hero-focus); see Content/hero-cleanup-brief.md. */
  --sky-deep:#06699a;
  --paper:#f6f8fa;
  --paper-2:#eef2f6;
  --ink:#14293a;
  --ink-soft:#48606f;
  --line:#dbe3ea;
  --warm:#0587c1;        /* emphasis mark — still cool, name kept from mockup */
  --warm-soft:#e6f1fb;
  --star:#f5a623;
  --ok-green:#1f9d55;
  --err-red:#c0392b;
  --fdisp:"Arial Black",Helvetica,Arial,sans-serif;
  --fbody:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --shadow-card:0 8px 30px rgba(17,60,92,.08);
  --radius:12px;
}

/* ============================================================
   RESET / BASE
   ============================================================ */
*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--fbody);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--sky-dark);}

/* Accessibility: the mockups shipped no focus styles — add them.
   4.5:1 floor, visible keyboard focus, reduced motion, 44px targets. */
:focus-visible{
  outline:3px solid var(--sky-dark);
  outline-offset:2px;
  border-radius:3px;
}
a,button,input,select,textarea,[tabindex]{ }
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
}
.screen-reader-text{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.skip-link{
  position:absolute;left:-999px;top:0;z-index:100;
  background:var(--navy);color:#fff;padding:12px 18px;border-radius:0 0 6px 0;
  font-weight:700;text-decoration:none;
}
.skip-link:focus{left:0;}

.wrap{max-width:1080px;margin:0 auto;padding:0 28px;}

/* Every section stacked in #main manages its own spacing (padding), so
   turn off WordPress's automatic block-gap margin between them, before it
   adds an extra unwanted gap on top of that padding. */
#main.wp-block-group > * {
  margin-block-start: 0;
}

/* ============================================================
   MINNESOTA LAUNCH RIBBON — dismissible, off by default (see
   inc/settings.php + inc/site-parts.php sbh_render_mn_ribbon()).
   ============================================================ */
.mn-ribbon{background:var(--navy);color:#fff;}
.mn-ribbon-inner{display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 28px;position:relative;}
.mn-ribbon p{margin:0;font-size:14px;text-align:center;padding-right:36px;}
.mn-ribbon a{color:#fff;text-decoration:underline;font-weight:700;}
.mn-ribbon a:hover,.mn-ribbon a:focus-visible{color:var(--sky);}
.mn-ribbon-close{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:none;border:0;color:#fff;font-size:24px;line-height:1;cursor:pointer;}
.mn-ribbon-close:hover,.mn-ribbon-close:focus-visible{color:var(--sky);}
@media (max-width:640px){
  .mn-ribbon-inner{padding:10px 48px 10px 16px;}
  .mn-ribbon p{text-align:left;padding-right:0;}
}

/* ============================================================
   HEADER / NAV
   ============================================================ */
nav.site-nav{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;}
nav.site-nav .wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;gap:20px;}
nav.site-nav img{height:104px;width:auto;}
.navlinks{display:flex;gap:26px;align-items:center;}
.navlinks a{color:var(--navy);text-decoration:none;font-weight:700;font-size:15px;}
.navlinks a:hover,.navlinks a:focus-visible{color:var(--sky);}
.navphone{
  background:var(--sky);color:#fff!important;padding:11px 18px;border-radius:4px;
  min-height:44px;display:inline-flex;align-items:center;
}
.navphone:hover{background:var(--sky-dark);}
.nav-toggle{display:none;}

.navdrop{position:relative;}
.navdrop-toggle{
  display:inline-flex;align-items:center;gap:5px;background:none;border:none;padding:0;
  color:var(--navy);font-weight:700;font-size:15px;font-family:inherit;cursor:pointer;min-height:44px;
}
.navdrop-toggle:hover,.navdrop-toggle:focus-visible,.navdrop-toggle[aria-expanded="true"]{color:var(--sky);}
.navdrop-caret{font-size:10px;transition:transform .15s ease;}
.navdrop-toggle[aria-expanded="true"] .navdrop-caret{transform:rotate(180deg);}
.navdrop-menu{
  display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:16px;
  background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-card);
  padding:8px;min-width:200px;flex-direction:column;gap:2px;z-index:30;
}
.navdrop-menu.is-open{display:flex;}
.navdrop-menu a{color:var(--navy);font-weight:700;font-size:15px;text-decoration:none;padding:10px 12px;border-radius:6px;white-space:nowrap;min-height:44px;display:flex;align-items:center;}
.navdrop-menu a:hover,.navdrop-menu a:focus-visible{background:var(--paper);color:var(--sky);}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  font-weight:700;font-size:17px;text-decoration:none;padding:16px 28px;border-radius:5px;
  border:2px solid var(--navy);display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;cursor:pointer;
}
.btn-p{background:var(--sky);border-color:var(--sky);color:#fff;}
.btn-p:hover{background:var(--sky-dark);border-color:var(--sky-dark);}
.btn-g{background:transparent;color:var(--navy);}
.btn-g:hover{background:var(--navy);color:#fff;}
.btn-w{background:#fff;color:var(--navy);border-color:#fff;}
.btns{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.btns-note{font-size:15px;color:var(--ink-soft);}

/* ============================================================
   HERO
   ============================================================ */
.hero{padding:76px 0 60px;}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;}
.eyebrow{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--sky);font-weight:700;margin-bottom:14px;}
h1{font-family:var(--fdisp);font-size:56px;line-height:1.03;letter-spacing:-.02em;color:var(--navy);margin-bottom:22px;}
h1 .u{color:var(--sky);}
.lede{font-size:21px;color:var(--ink-soft);margin-bottom:30px;max-width:46ch;}

/* The focused hero treatment (see Content/hero-cleanup-brief.md): one primary
   CTA, everything else subordinate. Refined on Minnesota, then applied to all
   three state hubs and the homepage. Scoped to .hero-focus, so the city and
   situation heroes still use the older treatment until they are moved over.
   1. Its own background so the hero reads as a section distinct from the
      breadcrumb strip (--paper-2) above and the body (--paper) below. The top
      border keeps that breadcrumb strip reading as part of the header rather
      than bleeding into the hero.
   2. The phone is a demoted plain line, not a button competing with the form.
   3. Small blue text meets AA on this background (see --sky-deep). */
.hero-focus{background:linear-gradient(180deg,#e9f0f7 0%,var(--paper) 100%);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.hero-focus .hero-callnote{font-size:16px;color:var(--ink-soft);margin:0;}
.hero-focus .hero-callnote a{color:var(--sky-deep);font-weight:700;white-space:nowrap;}
.hero-focus .eyebrow{color:var(--sky-deep);}
.hero-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px;color:var(--ink);box-shadow:var(--shadow-card);}
.hero-card h3{font-family:var(--fdisp);font-size:20px;margin-bottom:6px;color:var(--navy);}
.hero-card .cardsub,.hero-card .cs{font-size:14px;color:var(--ink-soft);margin-bottom:18px;}
.hero-card .tiny{font-size:13px;color:var(--ink-soft);margin-top:14px;text-align:center;}

/* Conversational form shell */
.conv-cap{font-size:12px;color:var(--sky-dark);font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;}
.conv-prog{height:5px;background:var(--paper-2);border-radius:3px;margin-bottom:18px;overflow:hidden;}
.conv-bar{height:100%;background:var(--sky);border-radius:3px;transition:width .3s ease;}
.field{
  background:#fff;border:1.5px solid #cfdbe5;border-radius:6px;padding:14px;
  color:var(--ink);font-size:15px;margin-bottom:12px;width:100%;font-family:inherit;
}
.field::placeholder{color:#8798a5;}
.field:focus-visible{outline:3px solid var(--sky-dark);outline-offset:1px;border-color:var(--sky-dark);}

/* Google Places autocomplete — swapped in over the plain address input via
   JS only when a key is configured and the widget loads successfully. */
.lf-google-places{display:block;width:100%;margin-bottom:12px;}
.subbtn{
  display:flex;align-items:center;justify-content:center;
  background:var(--sky);color:#fff;text-align:center;font-weight:700;padding:16px;border-radius:8px;
  margin-top:16px;font-size:17px;width:100%;border:none;cursor:pointer;min-height:44px;
  text-decoration:none;box-sizing:border-box;
}
.subbtn:hover{background:var(--sky-dark);}
.lead-form .subbtn{color:#fff;text-decoration:none;}
.minitrust{display:flex;gap:14px;align-items:center;justify-content:center;margin-top:14px;font-size:12px;color:var(--ink-soft);flex-wrap:wrap;}
.minitrust b{color:var(--navy);}

/* ============================================================
   LEAD FORM (the conversational 5-step form)
   Works fully without JS: every .lf-step is visible, stacked, by default.
   JS adds .js-stepper to the wrapper, which is what actually hides the
   inactive steps.
   ============================================================ */
.lead-form .lf-step{margin-bottom:8px;}
.js-stepper .lf-step{display:none;}
.js-stepper .lf-step.is-active{display:block;}
.lead-form .lf-step + .lf-step{margin-top:22px;padding-top:22px;border-top:1px solid var(--line);}
.js-stepper .lf-step + .lf-step{margin-top:0;padding-top:0;border-top:none;}
.lead-form h3{font-family:var(--fdisp);font-size:19px;color:var(--navy);margin-bottom:6px;}
.lead-form h3:focus-visible{outline:none;}

/* honeypot — visually hidden, still focusable-avoidant via tabindex=-1 */
.sbh-hp-wrap{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}

/* tappable bubbles — real radio inputs, visually hidden, styled labels */
.lf-bubbles{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px;}
.lf-bubble-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.lf-bubble{
  display:inline-flex;align-items:center;justify-content:center;min-height:44px;
  padding:11px 18px;border:2px solid var(--line);border-radius:24px;background:#fff;
  font-weight:700;font-size:14px;color:var(--navy);cursor:pointer;text-align:center;
}
.lf-bubble:hover{border-color:var(--sky);}
.lf-bubble-input:checked + .lf-bubble{background:var(--navy);border-color:var(--navy);color:#fff;}
.lf-bubble-input:focus-visible + .lf-bubble{outline:3px solid var(--sky-dark);outline-offset:2px;}
.lf-note{margin-top:2px;}

/* Step 2: address verification — street full width, city/state/zip in a row */
.lf-addr-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;}
select.field{appearance:auto;cursor:pointer;}
@media(max-width:480px){.lf-addr-row{grid-template-columns:1fr;}}

.lf-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;}
.lf-nav-solo{justify-content:flex-start;}
.lf-nav .subbtn{width:auto;flex:1;margin-top:0;}
.lf-back{
  color:var(--ink-soft);font-weight:700;font-size:14px;text-decoration:none;
  display:inline-flex;align-items:center;min-height:44px;padding:0 6px;
}
.lf-back:hover{color:var(--navy);}

.lead-form label{display:block;font-size:13px;font-weight:700;color:var(--navy);margin-bottom:6px;}
.lead-form .lf-req{color:var(--sky-dark);font-weight:400;text-transform:none;}
.lead-form .lf-opt{color:var(--ink-soft);font-weight:400;text-transform:none;}

.lf-consent{display:flex;align-items:flex-start;gap:10px;margin:16px 0;font-weight:400;cursor:pointer;}
.lf-consent input{width:20px;height:20px;min-width:20px;margin-top:2px;accent-color:var(--sky);}
.lf-consent span{font-size:13px;color:var(--ink-soft);font-weight:400;line-height:1.5;}

.cf-turnstile{margin:14px 0;}

.lf-error{
  background:#fbe6e6;border:1px solid #f0b8b8;color:var(--err-red);
  border-radius:6px;padding:10px 14px;font-size:14px;margin-top:12px;
}

/* ============================================================
   REVIEW BAR (Google / BBB / years)
   ============================================================ */
.reviewbar{background:#fff;border-bottom:1px solid var(--line);}
.reviewbar .wrap{display:flex;align-items:center;justify-content:center;gap:40px;padding:18px 28px;flex-wrap:wrap;}
.rb-item{display:flex;align-items:center;gap:12px;}
.rb-google{display:flex;align-items:center;gap:10px;}
.rb-g-logo{font-family:var(--fdisp);font-size:20px;letter-spacing:-1px;}
.rb-g-logo .g1{color:#4285F4}.rb-g-logo .g2{color:#EA4335}.rb-g-logo .g3{color:#FBBC05}.rb-g-logo .g4{color:#4285F4}.rb-g-logo .g5{color:#34A853}
.rb-stars{color:var(--star);font-size:18px;letter-spacing:1px;}
.rb-rating{font-weight:700;color:var(--ink);font-size:16px;}
.rb-count{color:var(--ink-soft);font-size:14px;}
.rb-div{width:1px;height:34px;background:var(--line);}
.rb-bbb{display:flex;align-items:center;gap:10px;}
.rb-bbb-badge{background:#0a3b5c;color:#fff;font-family:var(--fdisp);font-size:15px;padding:6px 10px;border-radius:4px;letter-spacing:-.5px;}
.rb-bbb-txt{font-size:14px;color:var(--ink-soft);line-height:1.3;}
.rb-bbb-txt strong{color:var(--ink);display:block;}

/* ============================================================
   TRUST / STATS STRIP
   ============================================================ */
.trust{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.trust .wrap{display:flex;justify-content:space-around;gap:24px;padding:26px 28px;text-align:center;flex-wrap:wrap;}
.trust .n{font-family:var(--fdisp);font-size:34px;color:var(--sky);line-height:1;}
.trust .l{font-size:14px;color:var(--ink-soft);margin-top:6px;text-transform:uppercase;letter-spacing:.05em;}

/* ============================================================
   GENERIC SECTION
   ============================================================ */
.section{padding:66px 0;}
.section h2{font-family:var(--fdisp);font-size:36px;color:var(--navy);letter-spacing:-.015em;margin-bottom:10px;}
.section h2 .warm-mark{color:var(--warm);}
.section .sub{color:var(--ink-soft);font-size:18px;margin-bottom:34px;max-width:60ch;}
.section p{color:var(--ink-soft);max-width:70ch;margin-bottom:14px;}
.section p strong{color:var(--ink);}
.local{background:var(--paper-2);}

/* Contact page NAP block. */
.contact-nap{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:22px 26px;margin:20px 0 30px;max-width:480px;}
.contact-nap p{margin-bottom:10px;color:var(--ink-soft);}
.contact-nap p:last-child{margin-bottom:0;}
.contact-nap strong{color:var(--navy);margin-right:6px;}
.contact-nap a{color:var(--sky-dark);text-decoration:none;font-weight:700;}

/* ============================================================
   COUNTIES AND CITIES SECTION (state hub pages) — a collapsible card
   per county (native <details>, always in the DOM so nothing is hidden
   from crawlers), and a two-column city grid inside each that drops to
   one column on mobile.
   ============================================================ */
.wibuy-county{background:#fff;border:1px solid var(--line);border-radius:10px;margin-top:18px;}
.wibuy-county summary{padding:18px 22px;cursor:pointer;list-style:none;display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-height:44px;}
.wibuy-county summary::-webkit-details-marker{display:none;}
.wibuy-county summary h3{font-family:var(--fdisp);font-size:20px;color:var(--navy);}
.wibuy-county summary h3 a{color:inherit;text-decoration:none;}
.wibuy-county summary h3 a:hover{color:var(--sky-dark);}
.wibuy-county summary .p{color:var(--sky);font-size:22px;line-height:1;flex-shrink:0;transition:transform .15s ease;}
.wibuy-county[open] summary .p{transform:rotate(45deg);}
.wibuy-county-body{padding:0 22px 22px;}
.wibuy-county-blurb{color:var(--ink-soft);font-size:15px;margin-bottom:16px;max-width:70ch;}

.wibuy-city-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.wibuy-city{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:14px 16px;display:block;text-decoration:none;color:inherit;}
a.wibuy-city:hover,a.wibuy-city:focus-visible{border-color:var(--sky);box-shadow:0 4px 14px rgba(17,60,92,.08);}
.wibuy-city h4{font-size:15px;color:var(--navy);margin-bottom:4px;font-weight:700;}
.wibuy-city p{font-size:13px;color:var(--ink-soft);line-height:1.45;margin-bottom:0;}

.wibuy-surrounding{font-size:14px;color:var(--ink-soft);margin:16px 0 0;}

.wibuy-closing{background:#fff;border:1px solid var(--line);border-radius:12px;padding:36px 30px;margin-top:52px;text-align:center;}
.wibuy-closing h2{font-family:var(--fdisp);font-size:26px;color:var(--navy);margin-bottom:10px;}
.wibuy-closing p{color:var(--ink-soft);max-width:60ch;margin:0 auto 22px;}
/* The phone sits on its own line at double size: it is the action this section
   is asking for, so it should not read as part of the paragraph. The link
   itself keeps the site's normal blue underlined link styling. */
.wibuy-closing .wibuy-closing-call{font-size:2em;line-height:1.25;max-width:none;margin:0 auto 22px;}
.wibuy-closing strong{color:var(--ink);}
.wibuy-closing .btns{justify-content:center;}
/* "Do Not See Your City/Town?" card on every state hub (see
   Content/do-not-see-city-cleanup-brief.md). Refined on Minnesota first, then
   applied to all three hubs.
   1. Copy sits at a readable measure instead of stretching the full card.
   2. No dead space under the CTA: bottom spacing now matches the 36px top
      padding, so the card reads as a balanced group.
   3. The phone CTA is the shared .btn/.btn-g outline button (no underline,
      one colour/weight, 44px tap target) with the icon spaced off the text. */
.wibuy-hub .wibuy-closing h2,
.wibuy-hub .wibuy-closing p{max-width:620px;margin-left:auto;margin-right:auto;}
.wibuy-hub .wibuy-closing .wibuy-closing-call{font-size:1rem;max-width:none;margin:22px 0 0;}
.wibuy-hub .wibuy-closing .wibuy-closing-call .btn{gap:10px;white-space:nowrap;}
/* 4. Pull the primary "Get my cash offer" button up so it and the card read as
      one CTA group rather than two stranded elements. */
section.wibuy-hub{padding-bottom:30px;}
section.wibuy-hub + .house-cta .wrap{padding-top:0;}

/* ============================================================
   SITUATIONS GRID
   ============================================================ */
.situations{background:var(--paper-2);}
.situations .wrap{padding:66px 28px;}
.situations h2,.situations .sub{text-align:center;}
.sit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:30px;}
.sit{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px 18px;}
a.sit{display:block;text-decoration:none;color:inherit;transition:border-color .15s ease,box-shadow .15s ease;}
a.sit:hover,a.sit:focus-visible{border-color:var(--sky);box-shadow:0 4px 14px rgba(17,60,92,.08);}
.sit h4{font-size:15px;color:var(--navy);margin-bottom:5px;font-weight:700;text-align:center;}
.sit p{font-size:13px;color:var(--ink-soft);line-height:1.45;}
.sit-icon{width:80px;height:80px;border-radius:16px;background:var(--warm-soft);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-family:var(--fdisp);color:var(--sky-dark);font-size:36px;}

/* ============================================================
   PROOF GALLERY
   ============================================================ */
.proof-teaser h2{text-align:center;}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.house{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.house .ph{height:150px;background:linear-gradient(135deg,#c4d3de,#a9bccd);display:flex;align-items:center;justify-content:center;color:#5c7385;font-size:13px;font-weight:700;overflow:hidden;}
.house .ph img{width:100%;height:100%;object-fit:cover;}
.house .body{padding:16px;}
.house .city{font-weight:700;color:var(--navy);font-size:15px;}
.house .meta{font-size:14px;color:var(--ink-soft);margin-top:4px;}
.house .tag{display:inline-block;background:var(--warm-soft);color:var(--navy);font-size:12px;font-weight:700;padding:3px 10px;border-radius:20px;margin-top:10px;}
.seeall{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:26px;padding:22px 26px;background:var(--warm-soft);border-radius:12px;}
.seeall span{color:var(--ink);font-size:16px;}
.seeall a{color:var(--sky-dark);font-weight:700;text-decoration:none;font-size:16px;white-space:nowrap;}

/* ============================================================
   HOUSE FILTERS / EMPTY STATE / PAGINATION  (proof gallery archive)
   ============================================================ */
.house-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.house-filters .nbrhd-link{
  background:#fff;border:1px solid var(--line);border-radius:20px;padding:9px 16px;
  font-size:14px;font-weight:700;color:var(--navy);text-decoration:none;min-height:44px;
  display:inline-flex;align-items:center;
}
.house-filters .nbrhd-link:hover,.house-filters .nbrhd-link:focus-visible{border-color:var(--sky);color:var(--sky-dark);}
.house-filters .nbrhd-link.is-active{background:var(--sky);border-color:var(--sky);color:#fff;}
.house-filters-city{margin-bottom:26px;}
.house-grid-empty{
  background:var(--paper-2);border:1px solid var(--line);border-radius:12px;
  padding:32px;text-align:center;color:var(--ink-soft);font-size:16px;
}
.house-pagination{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px;justify-content:center;}
.house-pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;
  padding:0 14px;border:1px solid var(--line);border-radius:6px;color:var(--navy);
  text-decoration:none;font-weight:700;background:#fff;
}
.house-pagination .page-numbers.current{background:var(--navy);border-color:var(--navy);color:#fff;}
.house-pagination .page-numbers:hover{border-color:var(--sky);}
.house-back-link{font-size:14px;font-weight:700;margin-bottom:16px;}
.house-back-link a{color:var(--sky-dark);text-decoration:none;}

/* The single-page "details" box — location, closed date, and outcome tags
   as clearly labeled rows, distinct from the small pill badges the gallery
   cards use. Sits after the story. */
.house-facts{background:var(--paper-2);border:1px solid var(--line);border-radius:12px;padding:22px 24px;margin:28px 0 8px;}
.house-facts h3{font-family:var(--fdisp);font-size:17px;color:var(--navy);margin-bottom:12px;}
.house-facts .fact-list{margin:0;}
.house-facts .fact-row{display:flex;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);align-items:baseline;}
.house-facts .fact-row:last-child{border-bottom:none;}
.house-facts dt{flex:0 0 100px;font-weight:700;color:var(--navy);font-size:13px;text-transform:uppercase;letter-spacing:.04em;}
.house-facts dd{margin:0;color:var(--ink);font-size:15px;flex:1;}
.house-facts .outcome-list{list-style:none;margin:0;padding:0;}
.house-facts .outcome-list li{position:relative;padding:4px 0 4px 16px;color:var(--ink);font-size:15px;}
.house-facts .outcome-list li::before{content:"";position:absolute;left:0;top:13px;width:6px;height:6px;border-radius:50%;background:var(--sky);}
@media(max-width:480px){
  .house-facts .fact-row{flex-direction:column;gap:4px;}
  .house-facts dt{flex:none;}
}

/* Before/after pairs — shown side by side; a missing side gets an honest
   placeholder rather than skipping the pair. */
.ba-pairs{margin:20px 0;}
.ba-pair{margin-bottom:22px;}
.ba-pair-label{font-weight:700;color:var(--navy);font-size:14px;margin-bottom:8px;text-transform:uppercase;letter-spacing:.04em;}
.ba-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.ba-slot{position:relative;border-radius:10px;overflow:hidden;background:linear-gradient(135deg,#c4d3de,#a9bccd);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;}
.ba-slot img{width:100%;height:100%;object-fit:cover;}
.ba-slot .ba-tag{position:absolute;top:8px;left:8px;background:rgba(13,47,73,.85);color:#fff;font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px;text-transform:uppercase;letter-spacing:.04em;z-index:1;}
.ba-slot.is-empty span:not(.ba-tag){color:#5c7385;font-size:13px;font-weight:700;}
@media(max-width:640px){.ba-row{grid-template-columns:1fr;}}

/* Homepage before/after page break — a bigger standalone showcase (reuses
   .ba-slot/.ba-tag from the house-page pairs above) between two sections,
   not the compact in-gallery grid. */
.ba-break{background:#fff;}
.ba-break .wrap{padding:56px 28px;}
.ba-break-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.ba-break .ba-slot{border-radius:14px;box-shadow:var(--shadow-card);}
@media(max-width:640px){.ba-break-row{grid-template-columns:1fr;}}

/* Extra supporting photos, below the primary story facts. */
.house-gallery-extra{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-top:24px;}
.house-gallery-extra img{width:100%;height:140px;object-fit:cover;border-radius:8px;}

/* ============================================================
   REVIEWS (video cards + text cards)
   ============================================================ */
.reviews{background:#fff;}
.reviews .wrap{padding:66px 28px;}
.rev-head{display:flex;align-items:center;gap:16px;margin-bottom:8px;flex-wrap:wrap;}
.rev-head .big{font-family:var(--fdisp);font-size:34px;color:var(--navy);}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px;}
.rev-vcard{display:block;background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden;color:inherit;text-decoration:none;}
.rev-video{position:relative;height:170px;background:linear-gradient(135deg,#2a5a7a,#113c5c);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;}
.rev-video img{width:100%;height:100%;object-fit:cover;}
.rev-photo{color:#9fc0d6;font-size:13px;font-weight:700;}
.playbtn{position:absolute;width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--sky-dark);display:flex;align-items:center;justify-content:center;font-size:20px;padding-left:4px;border:none;cursor:pointer;}
.vtag{position:absolute;bottom:10px;right:10px;background:rgba(13,47,73,.85);color:#fff;font-size:12px;font-weight:700;padding:4px 9px;border-radius:20px;}
.rev-body{padding:18px;}
.rev-body .stars{color:var(--star);font-size:15px;letter-spacing:1px;margin-bottom:8px;}
.rev-body p{font-size:14px;color:var(--ink);line-height:1.5;margin-bottom:12px;}
.rvname{font-weight:700;font-size:14px;color:var(--navy);}
.rvname span{color:var(--ink-soft);font-weight:400;}
.rev-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:22px;}
.rev-card .stars{color:var(--star);font-size:15px;letter-spacing:1px;margin-bottom:10px;}
.rev-card p{font-size:15px;color:var(--ink);margin-bottom:14px;line-height:1.55;}

/* ============================================================
   REVIEWS PAGE v2 — Video Reviews + Written Reviews
   Design tokens and layout below intentionally replicate a supplied
   visual spec exactly (colors, spacing, type). Scoped under .reviews-v2
   so they never affect the homepage teaser's .reviews/.rev-* styles above.
   ============================================================ */
.reviews-v2{
  --reviews-bg:#F7F8F8;
  --card-bg:#EFEFEF;
  --heading-blue:#2E9BD6;
  --text-body:#333333;
  --text-name:#2F2F2F;
  --text-muted:#6B7280;
  --subhead:#1F2937;
  --star-gold:#F5B301;
  --quote-glyph:#CFCFCF;
  --card-radius:8px;
  --card-shadow:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04);
  --grid-gap:36px;
  --card-padding:40px 36px;
  --section-max-width:1600px;
  --reviews-v2-font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--reviews-bg);
  padding:72px 24px;
}
.reviews-v2-inner{max-width:var(--section-max-width);margin:0 auto;}
.reviews-v2-heading{
  font-family:var(--reviews-v2-font);font-size:46px;font-weight:700;line-height:1.2;
  color:var(--heading-blue);text-align:center;margin-bottom:14px;
}
.reviews-v2-sub{
  font-family:var(--reviews-v2-font);font-size:18px;font-weight:400;line-height:1.4;
  color:var(--subhead);text-align:center;margin-bottom:48px;
}
.vr-grid,.wr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--grid-gap);}
.wr-grid{align-items:start;}
.vr-card,.review-card{
  background:var(--card-bg);border-radius:var(--card-radius);box-shadow:var(--card-shadow);
  padding:var(--card-padding);text-align:center;font-family:var(--reviews-v2-font);
}
.review-card__mark{display:block;font-size:60px;font-weight:700;line-height:1;color:var(--quote-glyph);margin-bottom:4px;}
.review-card__quote{font-size:19px;font-weight:400;line-height:1.6;color:var(--text-body);margin-bottom:22px;}
.review-card__stars{color:var(--star-gold);font-size:26px;line-height:1;margin-bottom:14px;}
.review-card__name{display:block;font-size:18px;font-weight:400;line-height:1.4;color:var(--text-name);}
.review-card__location{display:block;font-size:16px;font-weight:400;line-height:1.4;color:var(--text-muted);margin-top:4px;}

.vr-facade{
  display:block;position:relative;width:100%;aspect-ratio:16/9;border-radius:6px;overflow:hidden;
  border:none;padding:0;cursor:pointer;background:var(--card-bg);margin:0 0 18px;
}
.vr-facade img{width:100%;height:100%;object-fit:cover;display:block;}
.vr-playbtn{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:68px;height:48px;border-radius:12px;background:rgba(0,0,0,.65);
  color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;
}
@media (prefers-reduced-motion: no-preference){
  .vr-playbtn{transition:background-color 150ms ease;}
}
.vr-facade:hover .vr-playbtn,.vr-facade:focus-visible .vr-playbtn{background:#FF0000;}
.vr-facade:focus-visible{outline:2px solid var(--heading-blue);outline-offset:2px;}
.vr-embed{position:relative;width:100%;aspect-ratio:16/9;border-radius:6px;overflow:hidden;margin:0 0 18px;}
.vr-embed iframe{width:100%;height:100%;border:0;display:block;}

@media (max-width:1023px) and (min-width:640px){
  .vr-grid,.wr-grid{grid-template-columns:repeat(2,1fr);gap:24px;}
}
@media (max-width:639px){
  .reviews-v2{padding:48px 20px;}
  .reviews-v2-heading{font-size:30px;}
  .vr-grid,.wr-grid{grid-template-columns:1fr;gap:20px;}
  .vr-card,.review-card{padding:28px 22px;}
}

/* City-page navy single review */
.rev{background:var(--navy);color:#fff;}
.rev .wrap{padding:48px 28px;text-align:center;}
.rev .stars{color:var(--star);font-size:22px;letter-spacing:2px;margin-bottom:12px;}
.rev blockquote{font-size:20px;max-width:60ch;margin:0 auto 14px;line-height:1.5;}
.rev .who{color:#bcd2e2;font-size:15px;}

/* ============================================================
   HONEST OFFER (navy)
   ============================================================ */
.honest{background:var(--navy);color:#fff;}
.honest .wrap{padding:66px 28px;}
.honest h2{color:#fff;font-family:var(--fdisp);font-size:36px;letter-spacing:-.015em;margin-bottom:10px;}
.honest h2 .warm-mark{color:var(--warm);}
.honest .sub{color:#bcd2e2;font-size:18px;margin-bottom:20px;max-width:60ch;}
.honest-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:20px;}
.honest p{color:#dbe8f1;margin-bottom:14px;}
.honest strong{color:#fff;}
.honest .callout{background:#1b4a6b;border-left:4px solid var(--sky);border-radius:0 8px 8px 0;padding:22px;}
.honest .callout .big{font-family:var(--fdisp);font-size:22px;color:#fff;margin-bottom:8px;}
.honest-signature{display:flex;align-items:center;gap:14px;margin-top:24px;}
.honest-signature img{width:192px;height:192px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.honest-signature span{color:#bcd2e2;font-size:15px;}

/* ============================================================
   OFFER MATH — the retail bar (offer/repairs/costs segments driven by
   Settings → SBH Integrations, never hardcoded) plus a line-item
   breakdown. .calc-note stays shared with the comparison table below.
   ============================================================ */
.sky{color:var(--sky);}
.egtag{display:inline-block;background:var(--paper-2);color:var(--ink-soft);font-size:13px;font-weight:700;padding:5px 12px;border-radius:20px;margin-bottom:30px;}
.offer-math-section h2{text-align:center;}
.offer-math-section .sub{text-align:center;margin-left:auto;margin-right:auto;}
.offer-math-section .egtag{display:block;width:fit-content;margin:0 auto 30px;}

.calc2{background:#fff;border:1px solid var(--line);border-radius:18px;padding:38px;box-shadow:0 12px 34px rgba(17,60,92,.07);}
.bar-wrap{margin-bottom:8px;}
.bar-label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;flex-wrap:wrap;}
.bar-label .name{font-weight:700;font-size:15px;color:var(--ink);}
.bar-label .amt{font-family:var(--fdisp);font-size:15px;}
.bar{height:54px;border-radius:8px;display:flex;overflow:hidden;background:var(--paper-2);margin-bottom:6px;}
.seg{height:100%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#fff;white-space:nowrap;overflow:hidden;padding:0 4px;}
.seg-offer{background:var(--sky);}
.seg-repairs{background:#e08a7a;}
.seg-costs{background:#d5a04a;}
.seg-note{font-size:12px;color:var(--ink-soft);margin-bottom:26px;padding-left:2px;}

.rows{margin-top:10px;}
.r{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line);}
.r:last-child{border-bottom:none;}
.r .lft{display:flex;align-items:center;gap:12px;}
.r .sw{width:16px;height:16px;border-radius:4px;flex-shrink:0;}
.r .nm{font-weight:700;color:var(--ink);font-size:16px;}
.r .ds{font-size:13px;color:var(--ink-soft);}
.r .amt{font-family:var(--fdisp);font-size:17px;white-space:nowrap;}
.r.result{background:var(--navy);color:#fff;margin:12px -38px 0;padding:20px 38px;border-radius:12px;border:none;}
.r.result .nm{color:#fff;font-size:19px;}
.r.result .ds{color:#9fc9e6;}
.r.result .amt{color:#fff;font-size:22px;}
.amt-retail{color:var(--navy);}
.amt-repairs{color:var(--err-red);}
.amt-costs{color:#a9762a;}
.amt-offer{color:var(--sky);}
.calc-note{font-size:14px;color:var(--ink-soft);margin-top:16px;max-width:60ch;}
.foot{color:var(--ink-soft);font-size:14px;margin-top:22px;max-width:66ch;}

/* ============================================================
   COMPARISON TABLE
   ============================================================ */
.compare{background:var(--paper-2);}
.compare .wrap{padding:66px 28px;}
.compare h2,.compare .sub,.compare .calc-note{text-align:center;margin-left:auto;margin-right:auto;}
.ctable-scroll{overflow-x:auto;}
.ctable{width:100%;border-collapse:separate;border-spacing:0;margin-top:30px;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 10px 30px rgba(17,60,92,.06);min-width:560px;}
.ctable .colhead{padding:20px 16px 18px;text-align:center;vertical-align:bottom;}
.ctable .colhead .cname{font-family:var(--fdisp);font-size:15px;color:var(--ink);display:block;line-height:1.2;}
.ctable .colhead .csub{font-size:12px;color:var(--ink-soft);font-weight:400;display:block;margin-top:3px;}
.ctable th.first{text-align:left;padding:20px 20px 18px;}
.ctable .uscol{background:var(--navy);}
.ctable .uscol .cname{color:#fff;}
.ctable .uscol .csub{color:#9fc9e6;}
.ctable .usbadge{display:inline-block;background:var(--sky);color:#fff;font-weight:700;font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:20px;margin-bottom:8px;}
.ctable td{padding:15px 16px;text-align:center;border-top:1px solid var(--line);font-size:14px;color:var(--ink-soft);}
.ctable td.rowlabel{text-align:center;font-weight:700;color:var(--ink);}
.ctable td.uscell{background:#eef7fd;color:var(--navy);font-weight:700;border-left:2px solid var(--sky);border-right:2px solid var(--sky);}
.ctable tr:nth-child(even) td:not(.uscell){background:#fbfcfd;}
.ctable tbody tr:last-child td.uscell{border-bottom:2px solid var(--sky);}
.ci{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;font-size:15px;font-weight:700;}
.ci-yes{background:#e3f4ea;color:var(--ok-green);}
.ci-no{background:#fbe6e6;color:var(--err-red);}
.ci-mid{background:var(--paper-2);color:var(--ink-soft);}
.ctxt{font-size:12px;margin-top:4px;color:var(--ink-soft);}
.uscell .ctxt{color:var(--sky-dark);}

/* ============================================================
   HOW IT WORKS STEPS
   ============================================================ */
.how,.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:20px;}
.step .num{font-family:var(--fdisp);font-size:15px;color:#fff;background:var(--sky);width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.step h3,.step h4{font-family:var(--fdisp);font-size:19px;color:var(--navy);margin-bottom:8px;}
.step p{color:var(--ink-soft);font-size:15px;}

.how-block h2{text-align:center;}
.how-block .step{text-align:center;}
.how-block .step .num{margin-left:auto;margin-right:auto;}

/* ============================================================
   FAQ
   ============================================================ */
.faq{background:#fff;}
.faq .wrap{padding:66px 28px;max-width:800px;}
.faq2{max-width:800px;}
.faq-item,.fitem{border:1px solid var(--line);border-radius:10px;padding:20px 22px;margin-bottom:12px;background:var(--paper);}
.faq-item .fq,.fitem .q{font-family:var(--fdisp);font-size:17px;color:var(--navy);display:flex;justify-content:space-between;align-items:center;gap:12px;}
.faq-item .fq .plus,.fitem .q .p{color:var(--sky);font-size:24px;font-weight:400;}
.faq-item .fa,.fitem .a{font-size:15px;color:var(--ink-soft);margin-top:12px;line-height:1.55;}
/* FAQ items are native <details>/<summary> — accessible, interactive accordions with no JS. */
.fitem{padding:0;}
.fitem .q{padding:20px 22px;cursor:pointer;list-style:none;}
.fitem .q::-webkit-details-marker{display:none;}
.fitem .a{padding:0 22px 20px;margin-top:0;}
.fitem .q .p{transition:transform .15s ease;}
.fitem[open] .q .p{transform:rotate(45deg);}

/* ============================================================
   AUTHORED CONTENT  (typed straight into the block editor — a house
   story, a plain page's body text. Paired selectors: .entry-content
   covers the front end — added as a className on the Post/Page Content
   block in each template — and .editor-styles-wrapper covers the same
   content while it's being typed, per WordPress's add_editor_style()
   convention. The hand-built marketing sections above use their own
   classes and are untouched by this.)
   ============================================================ */
.entry-content p,.editor-styles-wrapper p{margin-bottom:1em;color:var(--ink-soft);}
.entry-content h2,.editor-styles-wrapper h2{font-family:var(--fdisp);font-size:28px;color:var(--navy);letter-spacing:-.01em;margin:1.3em 0 .5em;}
.entry-content h3,.editor-styles-wrapper h3{font-family:var(--fdisp);font-size:22px;color:var(--navy);margin:1.1em 0 .5em;}
.entry-content h4,.editor-styles-wrapper h4{font-family:var(--fdisp);font-size:18px;color:var(--navy);margin:1em 0 .4em;}
.entry-content h2:first-child,.entry-content h3:first-child,.entry-content h4:first-child,
.editor-styles-wrapper h2:first-child,.editor-styles-wrapper h3:first-child,.editor-styles-wrapper h4:first-child{margin-top:0;}
.entry-content ul,.entry-content ol,.editor-styles-wrapper ul,.editor-styles-wrapper ol{margin:0 0 1em 1.4em;}
.entry-content li,.editor-styles-wrapper li{margin-bottom:.4em;}
.entry-content blockquote,.editor-styles-wrapper blockquote{border-left:4px solid var(--sky);padding:6px 20px;margin:1em 0;color:var(--ink-soft);font-style:italic;}
.entry-content strong,.editor-styles-wrapper strong{color:var(--ink);}
.entry-content a,.editor-styles-wrapper a{color:var(--sky-dark);text-decoration:underline;}
.entry-content img,.editor-styles-wrapper img{border-radius:8px;margin:.5em 0;}
.entry-content .wp-block-table,.editor-styles-wrapper .wp-block-table{overflow-x:auto;margin:0 0 1.4em;}
.entry-content table,.editor-styles-wrapper table{width:100%;border-collapse:collapse;font-size:15px;}
.entry-content th,.entry-content td,.editor-styles-wrapper th,.editor-styles-wrapper td{border:1px solid var(--line);padding:10px 14px;text-align:left;}
.entry-content th,.editor-styles-wrapper th{background:var(--paper-2);color:var(--navy);font-family:var(--fdisp);font-size:14px;}

/* ============================================================
   QUIET OFFER PAGE — where "Get my cash offer" sends anyone not
   already standing on a page with its own embedded form (house
   pages, how-it-works). Deliberately bare: no trust bar, no
   comparison table, no reviews. Narrower column, more air, a
   bigger card, so it feels like the opposite of the busy homepage.
   ============================================================ */
.quiet-offer.wrap{max-width:640px;}
.quiet-offer.section{padding:72px 0 120px;}
.quiet-offer h1{font-size:36px;text-align:center;margin-bottom:14px;}
.quiet-offer .entry-content{max-width:none;}
.quiet-offer .entry-content > p:first-of-type{
  text-align:center;font-size:19px;max-width:48ch;margin:0 auto 40px;
}
.quiet-offer .hero-card{max-width:560px;margin:0 auto;padding:44px 40px;}
.quiet-offer .hero-card h3{font-size:24px;}
@media(max-width:600px){
  .quiet-offer.section{padding:44px 0 70px;}
  .quiet-offer h1{font-size:28px;}
  .quiet-offer .hero-card{padding:26px 22px;}
}

/* About page: a centered portrait photo above the title, long-form story
   below at a comfortable reading width. */
.about-page{max-width:720px;}
.about-photo{display:flex;justify-content:center;margin-bottom:20px;}
.about-photo-img img{width:180px;height:180px;border-radius:50%;object-fit:cover;box-shadow:var(--shadow-card);}
.about-page h1{text-align:center;margin-bottom:30px;}
.about-content{max-width:none;}
.about-content p:last-of-type{font-weight:700;color:var(--navy);}

/* State guides (foreclosure, probate): long-form reading for a stressed
   person, so a comfortable line length and generous spacing matter more
   than on a typical content page. */
.guide-page{max-width:760px;}
.guide-page h1{margin-bottom:24px;}
.guide-page .entry-content h2{margin-top:1.6em;}

/* ============================================================
   CITY PAGE PIECES
   ============================================================ */
.crumb{background:var(--paper-2);font-size:13px;color:var(--ink-soft);}
.crumb .wrap{padding:10px 28px;}
.crumb a{color:var(--sky-dark);text-decoration:none;}
.proof{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:center;margin-top:10px;}
.proof-ph{height:280px;background:linear-gradient(135deg,#c4d3de,#a9bccd);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#5c7385;font-weight:700;font-size:14px;overflow:hidden;}
.proof-ph img{width:100%;height:100%;object-fit:cover;}
.proof h3{font-family:var(--fdisp);font-size:22px;color:var(--navy);margin-bottom:8px;}
.proof .addr{font-size:14px;color:var(--sky-dark);font-weight:700;margin-bottom:12px;}
.proof p{font-size:15px;}
.proof .tag{display:inline-block;background:#fff;border:1px solid var(--line);color:var(--navy);font-size:12px;font-weight:700;padding:4px 11px;border-radius:20px;margin-top:8px;margin-right:6px;}
.nbrhd{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
.nbrhd span,.nbrhd a{background:#fff;border:1px solid var(--line);border-radius:6px;padding:7px 13px;font-size:14px;color:var(--navy);font-weight:700;}
.nbrhd a{text-decoration:none;}
.nbrhd a:hover,.nbrhd a:focus-visible{border-color:var(--sky);color:var(--sky-dark);}
.nearby{font-size:14px;color:var(--ink-soft);margin-top:14px;}
.nearby a{color:var(--sky-dark);text-decoration:none;font-weight:700;}

/* ============================================================
   FINAL CTA BAND
   ============================================================ */
.finalcta{background:var(--sky);color:#fff;}
.finalcta .wrap{padding:52px 28px;text-align:center;}
.finalcta h2{font-family:var(--fdisp);font-size:32px;margin-bottom:10px;color:#fff;}
.finalcta p{color:#dff2fd;max-width:50ch;margin:0 auto 22px;}

/* Plain CTA band (no colored background) — used on the single house page,
   where a full blue band would be too heavy after the facts section. */
.house-cta .wrap{padding:52px 28px;text-align:center;}
.house-cta h2{font-family:var(--fdisp);font-size:32px;color:var(--navy);margin-bottom:10px;}
.house-cta p{color:var(--ink-soft);max-width:50ch;margin:0 auto 22px;}

/* ============================================================
   FOOTER
   Dark, neutral charcoal by design (not pure black) — every text/link
   color below is chosen to clear 4.5:1 against --footer-bg; links are also
   underlined so color alone is never the only signal.
   ============================================================ */
footer.site-footer{
  --footer-bg:#1f2937;
  --footer-text:#e8edf2;
  --footer-muted:#c3ceda;
  --footer-label:#a9d4ef;
  --footer-line:rgba(255,255,255,.16);
  background:var(--footer-bg);color:var(--footer-text);padding:48px 0 28px;font-size:14px;line-height:1.6;
}
footer.site-footer a{color:var(--sky);text-decoration:underline;font-weight:700;}
footer.site-footer a:hover,footer.site-footer a:focus-visible{color:#fff;}
.foot-wrap{display:block;}
.foot-top{text-align:center;margin-bottom:28px;}
.foot-logo{display:inline-block;line-height:0;}
.foot-logo img{height:96px;width:auto;display:block;filter:brightness(0) invert(1);}
.foot-markets{margin-top:16px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--footer-label);}
.foot-pitch{max-width:620px;margin:16px auto 0;font-size:15px;}
.foot-social{display:flex;justify-content:center;align-items:flex-start;gap:16px;margin-top:16px;}
.foot-social-item{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--footer-text);text-decoration:none;min-width:44px;min-height:44px;justify-content:center;}
.foot-social-item:hover,.foot-social-item:focus-visible{color:var(--sky);}
.foot-social svg{width:32px;height:32px;}
.foot-social-label{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;line-height:1;}
.foot-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:36px;align-items:start;padding:28px 0;border-top:1px solid var(--footer-line);border-bottom:1px solid var(--footer-line);}
.foot-col{min-width:0;}
/* The two market columns are centered end to end (heading through the BBB
   badge) so the seal shares a centerline with the address above it instead
   of centering only itself inside a wider, left-aligned column. */
.foot-cols .foot-col:nth-child(1),
.foot-cols .foot-col:nth-child(2){text-align:center;}
.foot-col-label{font-size:16.25px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--footer-label);margin-bottom:14px;}
.foot-col .foot-col-label a{color:inherit;text-decoration:underline;}
.foot-col .foot-col-label a:hover,.foot-col .foot-col-label a:focus-visible{color:#fff;}
.foot-nap-block{font-style:normal;font-size:15px;line-height:1.7;margin-bottom:18px;}
.badge-bbb-link{display:block;font-size:13px;}
.badge-bbb-seal{display:flex;justify-content:center;width:100%;max-width:100%;}
.badge-bbb-seal img{max-width:100%;height:auto;display:block;}
.foot-why-list{list-style:none;font-size:15px;line-height:1.85;margin-bottom:14px;}
.foot-legal{text-align:center;padding-top:24px;font-size:13px;color:var(--footer-muted);}
.foot-legal p{margin-bottom:8px;}
.foot-legal-links a{margin:0 8px;}
.foot-disclaimer{max-width:70ch;margin:0 auto;color:var(--footer-muted);}

/* ============================================================
   TOWN PHOTOS PAGE (/town-photos/)
   ============================================================ */
.town-photos-list{list-style:none;margin:20px 0 0;padding:0;}
.town-photos-list li{position:relative;padding-left:26px;margin-bottom:12px;color:var(--ink-soft);font-size:16px;line-height:1.55;}
.town-photos-list li::before{content:"";position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:50%;background:var(--sky);}
.town-photos-list li strong{color:var(--ink);}

/* "What we cannot use" — deliberately distinct from the section above (a
   warm/red-tinted bordered box) so the two lists are never confused at a
   glance, per the build brief. */
.town-photos-cannot{background:#fef2f2;border:1px solid #f3c6c6;border-radius:var(--radius);padding:30px 34px;}
.town-photos-cannot h2{margin-bottom:10px;}
.town-photos-cannot .town-photos-list li::before{background:var(--err-red);}

.town-photos-note{color:var(--ink-soft);font-size:15px;margin-top:26px;max-width:60ch;}

.town-photos-form-embed{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-card);}
.town-photos-form-embed iframe{display:block;width:100%;}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:860px){
  .hero-grid,.honest-grid,.proof{grid-template-columns:1fr;}
  /* Focused hero: tighter padding on phones so the form card sits closer to
     the fold instead of below a tall stack of copy. */
  .hero-focus{padding:40px 0 36px;}
  /* The form card is the primary CTA, so it comes first on phones. Without
     this it stacks BELOW the demoted "Prefer to talk?" line, putting the
     secondary CTA ahead of the primary one. */
  .hero-focus .hero-grid > .hero-card{order:-1;}
  .gallery,.how,.steps{grid-template-columns:1fr 1fr;}
  .sit-grid{grid-template-columns:1fr 1fr;}
  .rev-grid{grid-template-columns:1fr;}
  h1{font-size:40px;}
  .section h2,.honest h2{font-size:30px;}
  .navlinks{display:none;}
  .navlinks.is-open{display:flex;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;padding:18px 28px;gap:16px;border-bottom:1px solid var(--line);box-shadow:var(--shadow-card);}
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;background:none;border:1px solid var(--line);border-radius:6px;color:var(--navy);font-size:20px;cursor:pointer;}
  nav.site-nav .wrap{position:relative;}
  .navdrop{width:100%;}
  .navdrop-toggle{width:100%;justify-content:space-between;}
  /* Top-level plain links (e.g. How it works) match the dropdown toggles:
     full-width and left-aligned, not centered by the column's align-items. */
  .navlinks.is-open > a:not(.navphone){width:100%;display:flex;align-items:center;min-height:44px;}
  .navdrop-menu{position:static;transform:none;box-shadow:none;border:none;background:none;margin:8px 0 0 12px;padding:0;min-width:0;width:auto;}
  .calc2{padding:26px;}
  .r.result{margin:12px -26px 0;padding:20px 26px;}
}
@media(max-width:640px){
  .reviewbar .wrap{gap:20px;}
  .rb-div{display:none;}
  .gallery,.how,.steps,.sit-grid,.wibuy-city-grid{grid-template-columns:1fr;}
  h1{font-size:34px;}
  .calc2{padding:20px;}
  .r.result{margin:12px -20px 0;padding:18px 20px;}
  .bar{height:44px;}
  .seg{font-size:11px;}
  .r .nm{font-size:15px;}
  .r.result .nm{font-size:17px;}
}
