/* ==========================================================================
   Home Sweet Maine — "The Town Report"
   Loaded after public.css on every public page. Owns the visual world:
   navy ink on white bond, ruled ledger lines, gold-foil seal, crimson stamp,
   watercolor slate Maine. See DESIGN.md.
   ========================================================================== */

/* ---------- Tokens -------------------------------------------------------- */
:root {
  --ink: var(--color-primary, #1f2437);
  --ink-deep: var(--color-primary-hover, #141827);
  --ink-70: rgba(31, 36, 55, 0.7);
  --bond: #ffffff;
  --bond-tint: #f5f6f8;
  --rule: #b7c3d6;
  --rule-light: #dde4ee;
  --slate: #a9b8cb;
  --slate-wash: #e4eaf2;
  --foil: #c3ad7b;
  --foil-deep: #a08a58;
  --stamp: #9a2752;
  --stamp-wash: #f6e6ec;
  --muted: #5b6478;
  --positive: #2f6b4f;

  /* Re-point the legacy tokens so every page inherits the world */
  --color-bg: var(--bond);
  --color-surface: var(--bond);
  --color-text: #1f2437;
  --color-text-muted: var(--muted);
  --color-text-light: #8a92a6;
  --color-accent: var(--ink);
  --color-accent-hover: var(--ink-deep);
  --color-accent-light: var(--slate-wash);
  --color-border: var(--rule);
  --color-border-light: var(--rule-light);
  --font-display: 'Libre Caslon Text', 'Iowan Old Style', Georgia, serif;
  --font-body: 'Public Sans', -apple-system, 'Segoe UI', sans-serif;
  --font-ledger: 'Courier Prime', 'Courier New', monospace;
  --shadow-sm: none;
  --shadow-md: none;
  --shadow-lg: none;
  --radius-sm: 0;
  --radius-md: 0;
  --radius-lg: 0;

  --label: 600 0.72rem/1.2 var(--font-body);
  --grid-max: 1280px;
  --page-pad: 24px;
}

/* ---------- Base ---------------------------------------------------------- */
html { scrollbar-color: var(--rule) var(--bond-tint); }
body {
  font-family: var(--font-body);
  background: var(--bond);
  color: var(--color-text);
  line-height: 1.55;
  font-feature-settings: "tnum" 1, "kern" 1;
  caret-color: var(--stamp);
}
::selection { background: var(--ink); color: var(--foil); }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bond-tint); }
::-webkit-scrollbar-thumb { background: var(--rule); border: 2px solid var(--bond-tint); }
:focus-visible { outline: 2px solid var(--stamp); outline-offset: 2px; border-radius: 0; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.12;
  text-wrap: balance;
  color: inherit;
}
h1 { font-size: clamp(2.25rem, 5.5vw, 4.5rem); line-height: 1.02; letter-spacing: -0.01em; }
h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); }
h3 { font-size: 1.25rem; }
strong, b { font-weight: 600; }
a { color: var(--ink); text-underline-offset: 3px; text-decoration-thickness: 1px; }
img { border-radius: 0; }
*, *::before, *::after { border-radius: 0 !important; }
.avatar, .avatar img, .team-card-header img, .blog-card-author-avatar, .blog-card-author-avatar img,
.testimonial-avatar, .connect-btn-avatar, .connect-btn-avatar img, .nav-brand-logo, .report-seal, .report-seal img,
.connect-btn, .connect-panel-avatar, .connect-panel-avatar img, .stamp, .card-badge, .idx-heart, .nav-saved-count, .profile-hero-avatar, .profile-hero-avatar img, .profile-avatar, .profile-avatar img, .author-avatar, .author-avatar img, .post-author-avatar, .post-author-avatar img { border-radius: 999px !important; }
.stamp, .card-badge { border-radius: 2px !important; }

.label, .eyebrow-label { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: var(--muted); }
.ledger { font-family: var(--font-ledger); font-size: 0.95rem; letter-spacing: 0; }
.figure { font-family: var(--font-body); font-weight: 300; font-size: clamp(1.75rem, 3vw, 2.75rem); line-height: 1; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; color: var(--color-text); }
hr, .rule { border: 0; border-top: 1px solid var(--rule); margin: 0; }

/* ---------- Buttons ------------------------------------------------------- */
.btn, .btn-primary, .btn-secondary, button.btn, .home-search-btn, .search-hero-btn, .email-signup-btn,
.testimonials-cta-btn, .idx-newsletter-btn, .filter-popover-apply, .submit-btn, .contact-submit-btn, .oh-search-btn {
  font: var(--label); text-transform: uppercase; letter-spacing: 0.12em;
  min-height: 44px; padding: 0 22px; border: 1px solid var(--ink);
  background: var(--ink); color: var(--bond); cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  transition: background 0.18s ease-out, color 0.18s ease-out, border-color 0.18s ease-out;
  text-decoration: none;
}
.btn:hover, .btn-primary:hover, .home-search-btn:hover, .search-hero-btn:hover, .email-signup-btn:hover, .testimonials-cta-btn:hover, .filter-popover-apply:hover {
  background: var(--ink-deep); color: var(--foil); border-color: var(--ink-deep);
}
.btn-secondary, .btn.btn-secondary { background: var(--bond); color: var(--ink); border-color: var(--ink); }
.btn-secondary:hover { background: var(--ink); color: var(--bond); }
.btn-lg { min-height: 52px; padding: 0 28px; font-size: 0.78rem; }
.btn:disabled, button:disabled { opacity: 0.5; cursor: not-allowed; }

/* ---------- Inputs -------------------------------------------------------- */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="search"], select, textarea {
  font-family: var(--font-body); font-size: 1rem; color: var(--color-text); accent-color: var(--ink);
}
input::placeholder, textarea::placeholder { color: #6b7488; opacity: 1; }

/* ---------- Navigation ---------------------------------------------------- */
.nav {
  background: var(--ink); height: 68px; padding: 0 var(--page-pad);
  border-bottom: 1px solid rgba(255,255,255,0.14);
}
.nav-brand { font-family: var(--font-display); font-weight: 400; font-size: 1.35rem; color: var(--bond); letter-spacing: 0; gap: 12px; }
.nav-brand-logo { height: 44px !important; max-width: 44px !important; background: #fff; border-radius: 999px !important; padding: 2px; }
.nav-brand-text { font-size: 1.25rem !important; }
.nav-links > a, .nav-dropdown-trigger {
  font: var(--label); text-transform: uppercase; letter-spacing: 0.12em;
  color: rgba(255,255,255,0.78); padding: 6px 0; position: relative; background: none; border: 0; cursor: pointer;
}
.nav-links > a::after, .nav-dropdown-trigger::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1px; background: var(--foil);
  transform: scaleX(0); transform-origin: left; transition: transform 0.22s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.nav-links > a:hover, .nav-links > a.active, .nav-dropdown-trigger:hover { color: var(--bond); }
.nav-links > a:hover::after, .nav-links > a.active::after, .nav-dropdown-trigger:hover::after { transform: scaleX(1); }
.nav-links > a.nav-signin-link, .nav-signin-link, .nav-account a.nav-signin-link {
  border: 1px solid var(--foil); color: var(--foil); padding: 10px 16px; min-height: 0;
}
.nav-signin-link:hover { background: var(--foil); color: var(--ink); }
.nav-signin-link::after { display: none !important; }
.nav-saved-count { background: var(--stamp); color: #fff; font: var(--label); padding: 2px 6px; margin-left: 6px; }
.nav-dropdown-menu, .nav-mega-menu {
  background: var(--bond); border: 1px solid var(--rule); box-shadow: none; padding: 20px 24px;
}
.nav-mega-heading { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: var(--muted); margin-bottom: 8px; }
.nav-mega-menu a { color: var(--ink); font-size: 0.95rem; }
.nav-mega-menu a:hover { color: var(--stamp); background: none; }
.nav-mega-divider { background: var(--rule-light); }
.nav-arrow { color: var(--foil); }
.nav-toggle span { background: var(--foil) !important; border-radius: 0 !important; }
@media (max-width: 900px) {
  .nav-links { background: var(--ink) !important; border-top: 1px solid rgba(255,255,255,0.14); padding: 24px var(--page-pad) 40px !important; }
  .nav-links > a { font-family: var(--font-display); font-size: 1.6rem !important; text-transform: none; letter-spacing: 0; font-weight: 400; padding: 10px 0 !important; color: var(--bond); border-bottom: 1px solid rgba(255,255,255,0.12); }
  .nav-links > a::after { display: none; }
  .nav-dropdown-trigger { font-family: var(--font-display); font-size: 1.6rem; text-transform: none; letter-spacing: 0; }
  .nav-signin-link { display: inline-flex !important; margin-top: 16px; align-self: flex-start; }
}

/* ---------- Report cover (homepage hero) ---------------------------------- */
.home-hero {
  background: var(--ink); color: var(--bond); padding: 0; text-align: left;
}
.report-cover {
  max-width: var(--grid-max); margin: 0 auto; padding: 48px var(--page-pad) 40px;
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: 24px; align-items: start;
}
.report-seal { grid-column: 1 / span 2; width: 112px; height: 112px; background: #fff; display: grid; place-items: center; overflow: hidden; }
.report-seal img { width: 104px; height: 104px; object-fit: contain; }
.report-cover-body { grid-column: 3 / span 8; }
.report-edition { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: var(--foil); margin: 0 0 14px; display: flex; gap: 16px; flex-wrap: wrap; }
.report-edition span + span::before { content: "·"; margin-right: 16px; color: rgba(255,255,255,0.4); }
.home-hero-title { color: var(--bond); margin: 0 0 6px; }
.home-hero-subtitle { color: rgba(255,255,255,0.72); font-size: 1.05rem; margin: 0 0 32px; }
.report-cover-side { grid-column: 11 / span 2; text-align: right; color: rgba(255,255,255,0.72); font-family: var(--font-ledger); font-size: 0.85rem; line-height: 1.5; }
.report-cover-side .figure { color: var(--bond); display: block; margin-bottom: 4px; }

/* the search line */
.home-search-bar { max-width: none; margin: 0; background: none; box-shadow: none; border: 0; padding: 0; position: relative; }
.home-search-label { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: rgba(255,255,255,0.72); display: block; margin-bottom: 10px; }
.home-search-bar .search-input-wrapper {
  display: flex; align-items: stretch; background: transparent; border: 0; border-bottom: 1px solid rgba(255,255,255,0.55); padding: 0; box-shadow: none; border-radius: 0;
}
.home-search-bar .search-input-wrapper:focus-within { border-bottom-color: var(--foil); }
.home-search-bar .search-input-icon { display: none; }
.home-search-input {
  flex: 1; background: transparent; border: 0; color: var(--bond); font-family: var(--font-display); font-size: clamp(1.25rem, 2.4vw, 1.75rem);
  padding: 14px 0; min-width: 0; outline: none;
}
.home-search-input::placeholder { color: rgba(255,255,255,0.45); }
.home-search-btn { align-self: center; margin-left: 16px; background: var(--foil); border-color: var(--foil); color: var(--ink); }
.home-search-btn:hover { background: var(--bond); border-color: var(--bond); color: var(--ink); }
.search-autocomplete { background: var(--bond); border: 1px solid var(--rule); box-shadow: none; margin-top: 0; color: var(--color-text); }
.search-autocomplete-item { border-bottom: 1px solid var(--rule-light); padding: 12px 16px; }
.search-autocomplete-item.highlighted, .search-autocomplete-item:hover { background: var(--slate-wash); }
.search-autocomplete-item svg { color: var(--foil); }

/* quick doors */
.home-quick-links { justify-content: flex-start; gap: 0; margin-top: 28px; border-top: 1px solid rgba(255,255,255,0.18); }
.home-quick-link {
  background: none; border: 0; border-right: 1px solid rgba(255,255,255,0.18); color: var(--bond); font: var(--label); text-transform: uppercase; letter-spacing: 0.12em;
  padding: 16px 20px 0 0; margin-right: 20px; text-decoration: none; display: inline-flex; align-items: center; gap: 8px;
}
.home-quick-link:last-child { border-right: 0; }
.home-quick-link svg { width: 16px; height: 16px; color: var(--foil); }
.home-quick-link:hover { color: var(--foil); background: none; }

/* table of contents */
.report-toc { grid-column: 1 / -1; margin-top: 16px; border-top: 1px solid rgba(255,255,255,0.28); }
.report-toc-title { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: rgba(255,255,255,0.6); padding: 14px 0 6px; }
.report-toc ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; }
.report-toc li a {
  display: grid; grid-template-columns: 2.4em minmax(0, auto) 1fr auto; align-items: baseline; gap: 12px;
  padding: 11px 0; color: var(--bond); text-decoration: none; border-bottom: 1px solid rgba(255,255,255,0.12);
}
.report-toc li a:hover .toc-name { color: var(--foil); }
.toc-index { font-family: var(--font-ledger); font-size: 0.85rem; color: rgba(255,255,255,0.55); }
.toc-name { font-family: var(--font-display); font-size: 1.15rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.toc-leader { border-bottom: 1px dotted rgba(255,255,255,0.35); transform: translateY(-5px); }
.toc-count { font-family: var(--font-body); font-weight: 300; font-size: 1.35rem; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.toc-count small { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: rgba(255,255,255,0.55); margin-left: 6px; }

/* price quick links strip becomes a ruled ledger row */
.quick-links, .home-price-links { background: var(--bond); border-bottom: 1px solid var(--rule); padding: 0 var(--page-pad); display: flex; justify-content: center; gap: 0; flex-wrap: wrap; }
.quick-link {
  background: none; border: 0; border-right: 1px solid var(--rule-light); padding: 16px 24px; font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink);
  text-decoration: none !important; display: inline-flex; gap: 8px; align-items: center;
}
.quick-link:last-child { border-right: 0; }
.quick-link:hover { color: var(--stamp); background: var(--bond-tint); }

/* ---------- Ledger sections (homepage rows) ------------------------------- */
.home-section, .home-section-alt { max-width: var(--grid-max); margin: 0 auto; padding: 40px var(--page-pad) 24px; background: transparent; }
.home-section-alt > .home-section-header, .home-section-alt > .neighborhoods-grid { max-width: none; padding: 0; }
.home-section-header {
  display: grid; grid-template-columns: 3em minmax(0, 1fr) auto auto; align-items: baseline; gap: 16px;
  border-bottom: 1px solid var(--ink); padding-bottom: 12px; margin-bottom: 24px;
}
.ledger-index { font-family: var(--font-ledger); font-size: 0.9rem; color: var(--muted); }
.home-section-title { margin: 0; font-size: clamp(1.6rem, 2.6vw, 2.25rem); }
.ledger-figures { display: flex; gap: 28px; align-items: baseline; font-variant-numeric: tabular-nums; }
.ledger-figures span { font-family: var(--font-body); font-weight: 300; font-size: 1.35rem; letter-spacing: -0.02em; color: var(--color-text); }
.ledger-figures small { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: var(--muted); margin-left: 6px; }
.home-section-link { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink); text-decoration: none !important; display: inline-flex; align-items: center; gap: 6px; }
.home-section-link svg { width: 14px; height: 14px; color: var(--foil); }
.home-section-link:hover { color: var(--stamp); }
@media (max-width: 720px) {
  .home-section-header { grid-template-columns: 2.4em minmax(0, 1fr) auto; }
  .ledger-figures { grid-column: 2 / -1; gap: 20px; }
}

/* carousel chrome */
.listings-carousel { position: relative; }
.carousel-nav { background: var(--bond); border: 1px solid var(--ink); box-shadow: none; width: 40px; height: 40px; color: var(--ink); }
.carousel-nav:hover { background: var(--ink); color: var(--bond); }
.carousel-track { gap: 24px; padding-bottom: 8px; }
.carousel-loading, .carousel-empty, .section-empty, .loading-state {
  border: 1px solid var(--rule); border-left: 0; border-right: 0; background: repeating-linear-gradient(to bottom, transparent 0 31px, var(--rule-light) 31px 32px);
  min-height: 200px; padding: 24px; display: flex; align-items: center; justify-content: center; font-family: var(--font-ledger); color: var(--muted); font-size: 0.95rem; text-align: center; width: 100%;
}
.carousel-loading p { animation: pulse 1.6s ease-in-out infinite; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.45; } }
.carousel-loading .loading-spinner, .loading-state .loading-spinner { display: none; }

/* ---------- Record cards (listings) --------------------------------------- */
.carousel-card, .property-card, .property-card-wrapper {
  background: var(--bond); border: 0; border-radius: 0; box-shadow: none; overflow: visible;
}
.carousel-card { min-width: 300px; width: 300px; }
.property-card-wrapper { animation: none !important; opacity: 1 !important; }
.carousel-card-link, .property-card { display: block; color: inherit; text-decoration: none !important; border-top: 1px solid var(--ink); }
.carousel-card:hover, .property-card:hover { transform: none; box-shadow: none; }
.carousel-card-photo, .card-photo { aspect-ratio: 4 / 3; height: auto; background: var(--slate); position: relative; overflow: hidden; margin-top: 10px; }
.carousel-card-photo img, .card-photo img { width: 100%; height: 100%; object-fit: cover; transition: none; filter: none; }
.property-card:hover .card-photo img, .carousel-card:hover .carousel-card-photo img { transform: none; }

.card-photo-placeholder {
  background: var(--slate); color: var(--ink); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; height: 100%;
  font: var(--label); text-transform: uppercase; letter-spacing: 0.12em;
}
.card-photo-placeholder svg { width: 44px; height: 44px; stroke: var(--foil); stroke-width: 1.25; color: var(--foil); }
.card-photo-placeholder span { color: var(--ink); }

/* stamps */
.card-badges-left, .card-badges { top: 12px; left: 12px; gap: 6px; display: flex; flex-wrap: wrap; align-items: flex-start; }
.card-badge, .stamp {
  font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; padding: 4px 8px; line-height: 1.2;
  background: rgba(255,255,255,0.92); color: var(--stamp); border: 1.5px solid var(--stamp); transform: rotate(-2deg); backdrop-filter: none;
}
.card-badge.badge-active { display: none; }                 /* "For Sale" is the default state; stamps mark exceptions */
.card-badge.badge-new { color: var(--stamp); }
.card-badge.badge-pending, .card-badge.badge-closed, .card-badge.badge-coming-soon { color: var(--ink); border-color: var(--ink); }
.card-badge.badge-reduced, .card-badge.badge-price-drop { background: var(--stamp); color: #fff; }
.card-badge.badge-openhouse, .card-badge.badge-open-house { color: var(--ink); border-color: var(--foil); background: var(--foil); }
.card-badge.badge-type { position: absolute; right: 12px; top: 12px; transform: rotate(2deg); color: var(--ink); border-color: var(--ink); }
.card-photo-count { background: var(--ink); color: var(--bond); font-family: var(--font-ledger); font-size: 0.75rem; padding: 3px 7px; bottom: 10px; right: 10px; }

.carousel-card-content, .card-content { padding: 14px 0 0; display: grid; grid-template-columns: 1fr auto; row-gap: 4px; }
.carousel-card-price, .card-price, .card-price-row { font-family: var(--font-body); font-weight: 300; font-size: 1.6rem; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; color: var(--color-text); grid-column: 1 / -1; line-height: 1.1; }
.carousel-card-address, .card-address { font-weight: 600; font-size: 0.95rem; color: var(--color-text); grid-column: 1 / -1; }
.carousel-card-location, .card-city { color: var(--muted); font-size: 0.85rem; grid-column: 1 / -1; }
.carousel-card-specs, .card-specs { font-family: var(--font-ledger); font-size: 0.82rem; color: var(--color-text); border-top: 1px solid var(--rule-light); border-bottom: 1px solid var(--rule-light); padding: 8px 0; margin-top: 10px; grid-column: 1 / -1; display: flex; gap: 0; flex-wrap: wrap; }
.card-specs .spec-divider { color: var(--rule); margin: 0 8px; }
.card-specs .spec strong { font-weight: 400; }
.card-listing-office, .list-office, .carousel-card-office { font: var(--label); text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); grid-column: 1 / -1; padding-top: 8px; padding-bottom: 14px; }
.card-meta { border: 0; }
.card-price-change { font: var(--label); text-transform: uppercase; letter-spacing: 0.08em; }
.card-price-change.down { color: var(--stamp); }
.card-price-change.up { color: var(--positive); }

/* card actions: quiet ink circles */
.carousel-card-actions, .card-actions { gap: 6px; }
.action-btn { background: var(--bond); color: var(--ink); border: 1px solid var(--ink); box-shadow: none; width: 34px; height: 34px; border-radius: 999px !important; }
.action-btn:hover { background: var(--ink); color: var(--bond); }
.action-btn.active, .action-btn--save.active { background: var(--stamp); border-color: var(--stamp); color: #fff; }

/* ---------- Homepage: signup, early access, closing ----------------------- */
.email-signup-section { background: var(--slate-wash); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: 40px var(--page-pad); margin: 24px 0; }
.email-signup-content { max-width: var(--grid-max); margin: 0 auto; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: center; }
.email-signup-text { grid-column: 1 / span 6; }
.email-signup-text h3 { font-size: clamp(1.4rem, 2.2vw, 1.85rem); margin: 0 0 4px; }
.email-signup-text p { color: var(--muted); margin: 0; }
.email-signup-form { grid-column: 7 / span 6; display: flex; gap: 0; border-bottom: 1px solid var(--ink); }
.email-signup-input { flex: 1; background: transparent; border: 0; padding: 12px 0; font-size: 1.05rem; font-family: var(--font-display); outline: none; min-width: 0; }
.email-signup-btn { border: 0; }
@media (max-width: 720px) { .email-signup-text, .email-signup-form { grid-column: 1 / -1; } }

.home-coming-soon { background: var(--ink); color: var(--bond); padding: 64px var(--page-pad); margin: 40px 0 0; }
.coming-soon-content { max-width: var(--grid-max); margin: 0 auto; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: start; }
.coming-soon-text { grid-column: 1 / span 6; }
.coming-soon-text h2 { color: var(--bond); font-size: clamp(1.8rem, 3vw, 2.6rem); margin: 0 0 12px; }
.coming-soon-text p { color: rgba(255,255,255,0.75); max-width: 48ch; }
.coming-soon-benefits { list-style: none; padding: 0; margin: 20px 0 0; border-top: 1px solid rgba(255,255,255,0.2); }
.coming-soon-benefits li { padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,0.12); font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: var(--foil); }
.coming-soon-benefits li::before { content: none; }
.coming-soon-form { grid-column: 8 / span 5; background: transparent; padding: 0; box-shadow: none; border: 0; }
.coming-soon-form .form-group { margin: 0; }
.coming-soon-form input { width: 100%; background: transparent; border: 0; border-bottom: 1px solid rgba(255,255,255,0.45); color: var(--bond); padding: 14px 0; font-size: 1.05rem; outline: none; }
.coming-soon-form input:focus { border-bottom-color: var(--foil); }
.coming-soon-form input::placeholder { color: rgba(255,255,255,0.5); }
.coming-soon-form .btn { width: 100%; margin-top: 24px; background: var(--foil); border-color: var(--foil); color: var(--ink); }
.coming-soon-form .btn:hover { background: var(--bond); border-color: var(--bond); }
.coming-soon-note { color: rgba(255,255,255,0.5); font-size: 0.8rem; margin-top: 12px; }
@media (max-width: 860px) { .coming-soon-text, .coming-soon-form { grid-column: 1 / -1; } }

.home-cta { background: var(--bond); padding: 72px var(--page-pad) 80px; text-align: left; border-top: 1px solid var(--ink); }
.home-cta-content { max-width: var(--grid-max); margin: 0 auto; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; align-items: end; }
.home-cta h2 { grid-column: 1 / span 7; font-size: clamp(2rem, 4vw, 3.25rem); margin: 0; }
.home-cta p { grid-column: 1 / span 7; color: var(--muted); font-size: 1.1rem; margin: 0; }
.home-cta-buttons { grid-column: 9 / span 4; display: flex; flex-direction: column; gap: 10px; justify-content: flex-end; }
@media (max-width: 860px) { .home-cta h2, .home-cta p, .home-cta-buttons { grid-column: 1 / -1; } }

/* ---------- Page heroes → report mastheads ------------------------------- */
.search-hero, .policy-hero, .testimonials-hero, .valuation-hero, .oh-hero, .schools-hero, .glossary-hero, .market-hero, .calculator-hero,
.blog-hero, .team-hero, .neighborhoods-hero, .resources-hero, .events-hero, .page-hero, .saved-hero, .compare-hero, .directory-hero, .guides-hero, .search-page-header {
  background: var(--ink) !important; color: var(--bond); text-align: left; padding: 56px var(--page-pad) 40px; border-bottom: 1px solid var(--foil);
}
.search-hero-content, .policy-hero > *, .team-hero > *, .blog-hero > *, .oh-hero > *, .testimonials-hero > *, .valuation-hero > *, .schools-hero > *, .glossary-hero > *, .market-hero > *, .calculator-hero > *, .neighborhoods-hero > *, .resources-hero > *, .events-hero > * {
  max-width: var(--grid-max); margin-left: auto; margin-right: auto;
}
.search-hero h1, .policy-hero h1, .testimonials-hero h1, .valuation-hero h1, .oh-hero h1, .schools-hero h1, .glossary-hero h1, .market-hero h1, .calculator-hero h1, .blog-hero h1, .team-hero h1, .neighborhoods-hero h1, .resources-hero h1, .events-hero h1, .search-hero-title {
  color: var(--bond) !important; font-size: clamp(2.25rem, 5vw, 4rem); margin: 0 0 10px; font-weight: 400; text-shadow: none;
}
.search-hero p, .policy-hero p, .testimonials-hero p, .valuation-hero p, .oh-hero p, .schools-hero p, .glossary-hero p, .market-hero p, .calculator-hero p, .blog-hero p, .team-hero p, .neighborhoods-hero p, .resources-hero p, .events-hero p, .search-hero-subtitle {
  color: rgba(255,255,255,0.72) !important; font-size: 1.05rem; max-width: 60ch; margin: 0;
}
.hero-stats { max-width: var(--grid-max); margin: 32px auto 0; display: flex; gap: 40px; border-top: 1px solid rgba(255,255,255,0.25); padding-top: 20px; }
.hero-stat-value { font-family: var(--font-body); font-weight: 300; font-size: 2rem; letter-spacing: -0.02em; color: var(--bond); font-variant-numeric: tabular-nums; }
.hero-stat-label { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: rgba(255,255,255,0.6); }

/* ---------- Search page --------------------------------------------------- */
.search-page-header { padding: 24px var(--page-pad); border-bottom: 0; }
.search-page-header-content, .search-page-bar { max-width: var(--grid-max); margin: 0 auto; }
.search-page-bar .search-input-wrapper { background: transparent; border: 0; border-bottom: 1px solid rgba(255,255,255,0.55); box-shadow: none; padding: 0; display: flex; align-items: center; }
.search-page-bar .search-input-icon { color: var(--foil); margin-right: 12px; }
.search-page-bar input { background: transparent; border: 0; color: var(--bond); font-family: var(--font-display); font-size: 1.35rem; padding: 12px 0; flex: 1; outline: none; }
.search-page-bar input::placeholder { color: rgba(255,255,255,0.45); }
.search-page-bar .search-hero-btn, .search-page-bar button { background: var(--foil); border-color: var(--foil); color: var(--ink); }
.filter-bar-container { background: var(--bond); border-bottom: 1px solid var(--rule); box-shadow: none !important; }
.filter-bar { max-width: var(--grid-max); margin: 0 auto; padding: 10px var(--page-pad); }
.filter-pill, .bb-pill, .fz-pill, .filter-pill-more {
  font: var(--label); text-transform: uppercase; letter-spacing: 0.1em; background: var(--bond); border: 1px solid var(--rule); color: var(--ink); padding: 9px 14px; min-height: 36px;
}
.filter-pill:hover, .bb-pill:hover, .fz-pill:hover { border-color: var(--ink); background: var(--bond); color: var(--ink); }
.filter-pill.active, .filter-pill-group .filter-pill.active, .bb-pill.active, .fz-pill.active, .filter-type-group .filter-pill.active {
  background: var(--ink); border-color: var(--ink); color: var(--bond);
}
.filter-pill-group, .filter-type-group { background: transparent; border: 0; padding: 0; gap: 6px; }
.filter-pill-group .filter-pill { border: 1px solid var(--rule); }
.filter-popover { background: var(--bond); border: 1px solid var(--ink); box-shadow: none; }
.filter-popover-header { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: var(--muted); }
.filter-popover-reset { color: var(--stamp); font: var(--label); text-transform: uppercase; letter-spacing: 0.1em; background: none; border: 0; }
.price-input-group input, .price-input-group select { border: 0; border-bottom: 1px solid var(--rule); background: transparent; padding: 10px 0; }
.price-input-group input:focus, .price-input-group select:focus { border-bottom-color: var(--ink); box-shadow: none; outline: none; }
.results-header, .results-toolbar, .search-results-header, .results-meta { max-width: var(--grid-max); margin: 0 auto; padding: 20px var(--page-pad) 12px; border-bottom: 1px solid var(--ink); display: flex; align-items: baseline; gap: 20px; flex-wrap: wrap; }
.results-count, .listing-count { font-family: var(--font-body); font-weight: 300; font-size: 1.5rem; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.results-count strong, .listing-count strong { font-weight: 300; }
.sort-select, select.sort-select { border: 0; border-bottom: 1px solid var(--rule); background: transparent; font: var(--label); text-transform: uppercase; letter-spacing: 0.1em; padding: 8px 0; }
.view-toggle button, .view-btn, .view-toggle-btn { border: 1px solid var(--rule); background: var(--bond); color: var(--ink); width: 36px; height: 36px; }
.view-toggle button.active, .view-btn.active, .view-toggle-btn.active { background: var(--ink); color: var(--bond); border-color: var(--ink); }
.search-alert-banner, .alert-banner, .save-search-banner { background: var(--slate-wash); border: 0; border-bottom: 1px solid var(--rule); max-width: var(--grid-max); margin: 0 auto; padding: 14px var(--page-pad); }
.results-grid, .listings-grid, .property-grid, .results-container { max-width: var(--grid-max); margin: 0 auto; padding: 24px var(--page-pad) 64px; gap: 32px 24px; }
.pagination button, .pagination a, .page-btn { border: 1px solid var(--rule); background: var(--bond); color: var(--ink); font: var(--label); text-transform: uppercase; letter-spacing: 0.1em; min-width: 40px; height: 40px; }
.pagination .active, .page-btn.active, .pagination button.active { background: var(--ink); color: var(--bond); border-color: var(--ink); }

/* ---------- Blog, team, neighborhoods, resources, contact ---------------- */
.blog-container, .team-container, .all-neighborhoods-container, .resources-container, .contact-container, .oh-container, .schools-container, .glossary-container, .policy-container, .testimonials-container {
  max-width: var(--grid-max); margin-left: auto; margin-right: auto; padding-left: var(--page-pad); padding-right: var(--page-pad);
}
.blog-card, .team-card, .featured-card, .resource-card, .neighborhood-card, .testimonial-card, .contact-form-card, .contact-info, .valuation-card, .feature-card, .oh-card {
  background: var(--bond) !important; border: 0 !important; border-top: 1px solid var(--ink) !important; box-shadow: none !important; transform: none !important;
}
.blog-card:hover, .team-card:hover, .featured-card:hover, .resource-card:hover, .testimonial-card:hover { transform: none !important; box-shadow: none !important; }
.blog-card-image, .featured-card-image { aspect-ratio: 4 / 3; margin-top: 10px; background: var(--slate); }
.blog-card-image img { transition: none; }
.blog-card-content { padding: 14px 0 20px; }
.blog-card-meta, .blog-card-category, .blog-card-date, .team-card-title, .team-role { font: var(--label) !important; text-transform: uppercase; letter-spacing: 0.12em; color: var(--muted) !important; text-decoration: none !important; }
.blog-card-category { color: var(--stamp) !important; }
.blog-card-title, .blog-card-title a { font-family: var(--font-display); font-size: 1.35rem; line-height: 1.2; color: var(--color-text) !important; text-decoration: none !important; }
.blog-card-excerpt, .blog-card-excerpt a { color: var(--muted) !important; text-decoration: none !important; font-size: 0.95rem; }
.blog-card-footer { border-top: 1px solid var(--rule-light); padding-top: 12px; }
.blog-card-author-name { text-decoration: none !important; font: var(--label); text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink) !important; }
.blog-filters .filter-pill, .category-pill, .blog-category-pill { font: var(--label); text-transform: uppercase; letter-spacing: 0.1em; border: 1px solid var(--rule); background: var(--bond); color: var(--ink); }
.category-pill.active, .blog-category-pill.active { background: var(--ink); color: var(--bond); border-color: var(--ink); }

.team-card-header { background: var(--bond-tint) !important; border-bottom: 1px solid var(--rule-light); }
.team-card-header img, .team-avatar { border: 1px solid var(--rule) !important; box-shadow: none !important; }
.team-card h3, .team-card h3 a, .team-name { font-family: var(--font-display); font-size: 1.4rem; text-decoration: none !important; color: var(--color-text) !important; }
.team-card-body p, .team-card-bio, .team-bio { color: var(--muted); text-decoration: none !important; font-size: 0.95rem; }
.team-card-body a, .team-card .contact-link { text-decoration: none !important; color: var(--ink) !important; }
.team-card .btn, .team-card .view-profile-btn { width: 100%; }

.featured-card { background: var(--ink) !important; color: var(--bond); border-top: 1px solid var(--foil) !important; }
.featured-card-bg { filter: grayscale(1) contrast(1.1); opacity: 0.35 !important; }
.featured-card-name, .featured-card h3 { color: var(--bond); font-family: var(--font-display); }
.featured-card-badge, .status-hot, .status-active-badge, .status-busy { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; border: 1.5px solid currentColor; background: transparent !important; color: var(--foil) !important; transform: rotate(-2deg); padding: 3px 8px; }
.featured-stat, .stat-box, .market-stat { background: transparent !important; border: 0 !important; border-top: 1px solid rgba(255,255,255,0.2) !important; padding: 10px 0 !important; }
.featured-stat-value, .stat-value { font-family: var(--font-body); font-weight: 300; font-size: 1.6rem; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.featured-stat-label, .stat-label { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; opacity: 0.7; }

.resource-card-icon { background: var(--slate-wash) !important; color: var(--ink) !important; border-radius: 0 !important; }

/* contact + generic forms */
.contact-form-card, .valuation-card { padding: 24px 0 0 !important; }
.form-group label { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: var(--muted); }
.form-group input, .form-group textarea, .form-group select, .contact-form input, .contact-form textarea, .valuation-card input {
  border: 0 !important; border-bottom: 1px solid var(--rule) !important; background: transparent !important; padding: 12px 0 !important; box-shadow: none !important;
}
.form-group input:focus, .form-group textarea:focus, .form-group select:focus { border-bottom-color: var(--ink) !important; outline: none; }
.contact-info-icon { background: var(--slate-wash) !important; color: var(--ink) !important; }
.contact-info-item { border-bottom: 1px solid var(--rule-light); }
.contact-info-content h3 { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: var(--muted); font-family: var(--font-body); }

/* legal pages */
.policy-container { max-width: 760px; padding-top: 48px; padding-bottom: 80px; }
.policy-container h2 { font-size: 1.5rem; margin: 40px 0 12px; padding-top: 16px; border-top: 1px solid var(--rule); }
.policy-container p, .policy-container li { color: #2c3247; max-width: 70ch; }
.pledge-box { background: var(--slate-wash); border: 0; border-left: 0; padding: 20px 24px; font-family: var(--font-display); font-size: 1.15rem; }

/* ---------- Footer -------------------------------------------------------- */
.idx-footer { background: var(--ink); color: rgba(255,255,255,0.75); padding: 0; border-top: 1px solid var(--foil); }
.idx-footer-content { max-width: var(--grid-max); margin: 0 auto; padding: 56px var(--page-pad) 32px; text-align: left; }
.idx-footer h3, .idx-newsletter h3, .idx-footer-newsletter h3 { color: var(--bond); font-family: var(--font-display); font-weight: 400; }
.idx-footer-divider { background: rgba(255,255,255,0.18); height: 1px; margin: 32px 0; }
.idx-footer-logo { display: flex; gap: 24px; align-items: center; justify-content: flex-start; }
.idx-footer-logo img { height: 36px; filter: brightness(0) invert(1); opacity: 0.9; }
.idx-footer-disclaimer p { font-size: 0.75rem; line-height: 1.5; color: rgba(255,255,255,0.55); max-width: 80ch; text-align: left; margin: 16px 0; }
.idx-footer-address { text-align: left !important; color: rgba(255,255,255,0.65) !important; }
.idx-social-links { justify-content: flex-start !important; }
.idx-social-link { color: rgba(255,255,255,0.65) !important; }
.idx-social-link:hover { color: var(--foil) !important; }
.idx-footer-bottom { display: flex; gap: 24px; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,0.18); padding-top: 20px; margin-top: 24px; font: var(--label); text-transform: uppercase; letter-spacing: 0.1em; }
.idx-footer-bottom a { color: rgba(255,255,255,0.75); text-decoration: none; }
.idx-footer-bottom a:hover { color: var(--foil); }
.idx-footer-brand { margin-left: auto; color: rgba(255,255,255,0.45); }
.idx-footer-seal { display: flex; align-items: center; gap: 16px; margin-bottom: 8px; }
.idx-footer-seal img { width: 64px; height: 64px; background: #fff; border-radius: 999px !important; padding: 2px; }
.idx-footer-seal .idx-footer-wordmark { font-family: var(--font-display); font-size: 1.4rem; color: var(--bond); }
.idx-footer-seal .idx-footer-wordmark small { display: block; font: var(--label); text-transform: uppercase; letter-spacing: 0.14em; color: var(--foil); margin-top: 2px; }
.idx-heart { display: inline-block; width: 10px; height: 10px; background: var(--stamp); margin: 0 6px; vertical-align: middle; clip-path: path("M5 9 L1.2 5.2 A2.4 2.4 0 0 1 5 2.1 A2.4 2.4 0 0 1 8.8 5.2 Z"); border-radius: 0 !important; }

/* footer newsletter (idx-footer.js buildNewsletterSignup) */
.idx-newsletter, .idx-footer-newsletter, .footer-newsletter { text-align: left !important; max-width: 560px; }
.idx-footer-newsletter-title { font-family: var(--font-display); font-size: 1.5rem; color: var(--bond); margin: 0 0 4px; }
.idx-footer-newsletter-desc { color: rgba(255,255,255,0.65); margin: 0 0 16px; }
.idx-newsletter-form, .footer-newsletter-form, .idx-footer-newsletter-form { display: flex; max-width: 480px; border-bottom: 1px solid rgba(255,255,255,0.45); }
.idx-newsletter-form input, .footer-newsletter-form input, .idx-footer-newsletter-input { flex: 1; background: transparent !important; border: 0 !important; color: var(--bond) !important; padding: 12px 0 !important; font-size: 1rem; min-width: 0; }
.idx-newsletter-form input::placeholder { color: rgba(255,255,255,0.45); }
.idx-newsletter-form button, .footer-newsletter-form button, .idx-footer-newsletter-btn { background: var(--foil) !important; color: var(--ink) !important; border: 0 !important; font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; padding: 0 18px; }

/* ---------- Cookie banner, toasts, compare bar, connect button ----------- */
.cookie-banner, .cookie-consent, #cookie-banner, .cookie-consent-content { background: var(--bond) !important; color: var(--color-text) !important; border-top: 1px solid var(--ink); box-shadow: none !important; }
.cookie-banner a, .cookie-consent a { color: var(--stamp) !important; }
.cookie-banner button, .cookie-consent button, .cookie-btn { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; border: 1px solid var(--ink) !important; background: var(--bond) !important; color: var(--ink) !important; padding: 12px 18px; }
.cookie-banner button.primary, .cookie-accept, #cookie-accept, .cookie-banner .btn-primary { background: var(--ink) !important; color: var(--bond) !important; }
.toast { background: var(--ink); color: var(--bond); border: 0; box-shadow: none; font-size: 0.9rem; }
.compare-bar { background: var(--ink); color: var(--bond); box-shadow: none; border-top: 1px solid var(--foil); }
.connect-btn { background: var(--ink) !important; color: var(--bond) !important; border: 1px solid var(--foil) !important; box-shadow: none !important; font: var(--label); text-transform: uppercase; letter-spacing: 0.1em; }

/* ---------- Motion (one authored moment) ---------------------------------- */
@media (prefers-reduced-motion: no-preference) {
  .report-cover > * { animation: cover-in 0.7s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
  .report-cover > *:nth-child(2) { animation-delay: 0.06s; }
  .report-cover > *:nth-child(3) { animation-delay: 0.12s; }
  .report-cover > *:nth-child(4) { animation-delay: 0.2s; }
  @keyframes cover-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
}

/* ---------- Responsive ---------------------------------------------------- */
@media (max-width: 900px) {
  :root { --page-pad: 20px; }
  .report-seal { grid-column: 1 / span 3; width: 72px; height: 72px; }
  .report-seal img { width: 66px; height: 66px; }
  .report-cover-body { grid-column: 4 / span 9; }
  .report-cover-side { display: none; }
  .report-toc ol { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  :root { --page-pad: 16px; }
  .report-cover { padding: 28px var(--page-pad) 28px; row-gap: 16px; }
  .report-seal { grid-column: 1 / span 2; width: 56px; height: 56px; }
  .report-seal img { width: 52px; height: 52px; }
  .report-cover-body { grid-column: 1 / -1; }
  .home-search-btn { margin-left: 8px; padding: 0 14px; }
  .home-quick-links { flex-wrap: wrap; }
  .home-quick-link { padding: 12px 12px 0 0; margin-right: 12px; }
  .carousel-card { min-width: 260px; width: 260px; }
  .toc-name { font-size: 1.05rem; }
}

/* ---------- Overrides that must beat public.css specificity -------------- */
.card-badge, .card-badge.badge-active, .card-badge.badge-pending, .card-badge.badge-closed, .card-badge.badge-new, .card-badge.badge-price-drop,
.card-badge.badge-open-house, .card-badge.badge-coming-soon, .badge-reduced, .badge-new, .badge-openhouse, .card-photo .badge-type, .card-badges .badge-type, .carousel-card-photo .badge-type {
  background: rgba(255,255,255,0.94); color: var(--stamp); border: 1.5px solid var(--stamp); border-radius: 2px !important;
  font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; padding: 4px 8px; line-height: 1.2; transform: rotate(-2deg); box-shadow: none; backdrop-filter: none;
}
.card-badge.badge-active { display: none; }
.card-badge.badge-pending, .card-badge.badge-closed, .card-badge.badge-coming-soon { color: var(--ink); border-color: var(--ink); }
.card-badge.badge-price-drop, .badge-reduced, .card-badge.badge-reduced { background: var(--stamp); color: #fff; border-color: var(--stamp); }
.card-badge.badge-open-house, .badge-openhouse, .card-badge.badge-openhouse { background: var(--foil); color: var(--ink); border-color: var(--foil); }
.card-photo .badge-type, .card-badges .badge-type, .carousel-card-photo .badge-type, .card-badge.badge-type { position: absolute; top: 12px; right: 12px; left: auto; transform: rotate(2deg); color: var(--ink); border-color: var(--ink); background: rgba(255,255,255,0.94); }
.card-photo-count, .carousel-card-photo-count, [class*="photo-count"] { background: var(--ink); color: var(--bond); font-family: var(--font-ledger); font-size: 0.75rem; padding: 3px 7px; top: auto; bottom: 10px; right: 10px; left: auto; border-radius: 0 !important; }

.email-signup-section { background: var(--slate-wash); }
.email-signup-text h3 { color: var(--color-text); font-weight: 400; }
.email-signup-text p { color: var(--muted); }
.email-signup-input { color: var(--color-text); }

.search-alert-banner-inner { background: var(--slate-wash); border: 0; border-bottom: 1px solid var(--rule); padding: 14px 20px; }
.search-alert-input, .search-alert-freq { border: 0 !important; border-bottom: 1px solid var(--ink) !important; background: transparent !important; }
.search-alert-btn { background: var(--ink) !important; color: var(--bond) !important; font: var(--label); text-transform: uppercase; letter-spacing: 0.1em; }
.results-header { justify-content: flex-start; }
.results-meta { padding: 0; border: 0; }

@media (max-width: 720px) {
  .home-section-header { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; }
  .home-section-header .ledger-index { flex: 0 0 auto; }
  .home-section-header .home-section-title { flex: 1 1 60%; font-size: 1.6rem; }
  .home-section-header .ledger-figures { flex: 1 1 100%; order: 3; gap: 16px; }
  .home-section-header .home-section-link { flex: 0 0 auto; white-space: nowrap; margin-left: auto; }
}
.badge-reduced, .card-badge.badge-reduced, .card-badge.badge-price-drop { background: var(--stamp) !important; color: #fff !important; border-color: var(--stamp) !important; }
.badge-new, .card-badge.badge-new { background: rgba(255,255,255,0.94) !important; color: var(--stamp) !important; border-color: var(--stamp) !important; }
.badge-openhouse, .card-badge.badge-openhouse, .card-badge.badge-open-house { background: var(--foil) !important; color: var(--ink) !important; border-color: var(--foil) !important; }
.badge-quick, .card-badge.badge-quick { background: var(--ink) !important; color: var(--bond) !important; border-color: var(--ink) !important; }
.report-toc a, .report-toc a *, .home-section-link, .quick-link, .home-quick-link, .nav a, .idx-footer a { text-decoration: none !important; }
.home-hero-title { font-size: clamp(2.6rem, 6vw, 5rem); line-height: 0.98; margin-bottom: 8px; }
.report-cover { padding-top: 64px; }
.report-seal { width: 128px; height: 128px; }
.report-seal img { width: 120px; height: 120px; }

/* Resources page "Analysis Tools" cards share .featured-card with the neighborhoods market cards; keep these on bond. */
.featured-card:has(.featured-card-content) { background: var(--bond) !important; color: var(--color-text); border-top: 1px solid var(--ink) !important; }
.featured-card:has(.featured-card-content) .featured-card-image { background: var(--slate-wash) !important; color: var(--ink); aspect-ratio: auto; margin-top: 10px; }
.featured-card:has(.featured-card-content) h3 { color: var(--color-text) !important; font-family: var(--font-display); }
.featured-card:has(.featured-card-content) p { color: var(--muted) !important; }
.featured-card:has(.featured-card-content) .btn { background: var(--ink); color: var(--bond); }
.featured-section { background: var(--bond-tint) !important; border: 0 !important; }

/* Team initials avatars stay circular, in slate with ink Caslon initials */
.team-avatar-placeholder { border-radius: 999px !important; background: var(--slate) !important; color: var(--ink) !important; font-family: var(--font-display); font-weight: 400; border: 1px solid var(--rule); }

.post-hero-overlay { background: linear-gradient(135deg, rgba(31,36,55,0.88) 0%, rgba(20,24,39,0.94) 100%) !important; }
.post-hero-content h1, .profile-hero h1, .neighborhood-hero h1 { color: #fff !important; }
.profile-hero, .neighborhood-hero { background: var(--ink) !important; }
.neighborhood-hero-bg { filter: grayscale(1); opacity: 0.25 !important; }

/* ---------- Finish-review fixes ------------------------------------------ */
/* #3 numbers are the imagery: the statewide count is the display figure, the slogan steps down */
.home-hero-title { font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.05; margin-bottom: 28px; }
.report-cover-side { display: block; text-align: right; grid-column: 9 / span 4; align-self: start; padding-top: 28px; }
.cover-figure { display: block; font-family: var(--font-body); font-weight: 300; font-size: clamp(3rem, 7vw, 6rem); line-height: 0.95; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; color: var(--bond); }
.cover-figure-label { display: block; margin-top: 10px; font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: var(--foil); }
.report-cover-body { grid-column: 3 / span 6; }
@media (max-width: 900px) {
  .report-cover-body { grid-column: 4 / span 9; }
  .report-cover-side { display: block; grid-column: 1 / -1; text-align: left; padding-top: 0; order: 3; border-top: 1px solid rgba(255,255,255,0.18); padding-top: 16px; }
  .cover-figure { font-size: clamp(2.6rem, 12vw, 4rem); }
}
@media (max-width: 640px) {
  .report-cover-body { grid-column: 1 / -1; }
  /* phones: the contents list collapses to the four town rows so listings arrive within two screens */
  .report-toc li:nth-child(1), .report-toc li:nth-child(n+6) { display: none; }
}

/* #7 the "No photograph on file" record must read as a form field, not a grey block */
.card-photo-placeholder { background: var(--slate) repeating-linear-gradient(to bottom, transparent 0 23px, rgba(255,255,255,0.35) 23px 24px); gap: 12px; }
.card-photo-placeholder svg { width: 72px; height: 72px; stroke: var(--ink); stroke-width: 1.25; color: var(--ink); opacity: 0.9; }
.card-photo-placeholder span { color: var(--ink); font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; background: rgba(255,255,255,0.7); padding: 3px 8px; }

/* stamps: outline for every status, solid crimson reserved for PRICE REDUCED */
.card-badge.badge-open-house, .badge-openhouse, .card-badge.badge-openhouse { background: rgba(255,255,255,0.94) !important; color: var(--stamp) !important; border-color: var(--stamp) !important; }
.card-badge.badge-pending, .card-badge.badge-closed, .card-badge.badge-coming-soon, .badge-quick, .card-badge.badge-quick { background: rgba(255,255,255,0.94) !important; color: var(--ink) !important; border-color: var(--ink) !important; }

/* #6 team cards: rule above, no grey header box */
.team-card-header { background: var(--bond) !important; border-bottom: 1px solid var(--rule-light); padding-top: 24px; }
.team-card-body { padding-top: 16px; }
.team-card-title, .team-role { color: var(--stamp) !important; }

/* #8 mastheads: no tall empty ink bands for a two-word title */
.search-hero, .policy-hero, .testimonials-hero, .valuation-hero, .oh-hero, .schools-hero, .glossary-hero, .calculator-hero, .blog-hero, .team-hero, .resources-hero, .events-hero, .page-hero, .directory-hero, .guides-hero {
  min-height: 0 !important; height: auto !important; padding: 40px var(--page-pad) 32px !important;
}
.search-hero-content { text-align: left; max-width: var(--grid-max); margin: 0 auto; }
.search-hero-title { font-size: clamp(2rem, 3.6vw, 3rem) !important; }

/* #1/#2 listing detail: the record card, with listing-detail.css now beneath report.css */
.listing-price, .listing-price-hero, .mobile-cta-price { font-family: var(--font-body) !important; font-weight: 300 !important; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; color: var(--color-text) !important; }
.listing-price-context, .price-label { font: var(--label); text-transform: uppercase; letter-spacing: 0.1em; color: var(--muted); }
.listing-specs-hero, .listing-address-hero { font-family: var(--font-ledger); font-size: 0.9rem; }
.detail-badges .status-badge, .status-badge, .tour-badge, .floor-plan-badge, .open-house-date-badge, .flood-zone-badge, .flood-map-badge, .safety-badge, .climate-badge, .aqi-badge, .score-badge {
  font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; background: rgba(255,255,255,0.94) !important; color: var(--stamp) !important; border: 1.5px solid var(--stamp) !important; border-radius: 2px !important; padding: 4px 8px !important;
}
.status-badge.status-active { color: var(--ink) !important; border-color: var(--ink) !important; }
.photo-placeholder, .thumb-placeholder, .photo-hero-empty, .map-placeholder, .similar-photo .card-photo-placeholder { background: var(--slate) !important; background-image: none !important; color: var(--ink) !important; }
.info-card, .document-card, .calculator-card, .property-track-card, .agent-card, .listing-agents-card, .flood-zone-card, .flood-zone-info-card, .flood-map-card, .similar-card, .calc-result, .documents-section, .safety-section {
  background: var(--bond) !important; border: 0 !important; border-top: 1px solid var(--ink) !important; border-radius: 0 !important; box-shadow: none !important;
}
.safety-section, .flood-zone-card, .flood-zone-info-card, .flood-low, .flood-moderate, .flood-high { background: var(--bond-tint) !important; color: var(--color-text) !important; }
.flood-low .flood-zone-badge, .flood-zone-risk { color: var(--ink) !important; border-color: var(--ink) !important; }
.section-title { font-family: var(--font-display); font-weight: 400; border-bottom: 1px solid var(--ink); padding-bottom: 10px; }
.section-title::after, .section-title::before { display: none !important; }
.subsection-title, .flood-zone-title, .safety-title, .documents-header-text h3, .property-track-title { font: var(--label) !important; text-transform: uppercase; letter-spacing: 0.12em; color: var(--muted) !important; font-family: var(--font-body) !important; }
.detail-card-icon, .quick-stat-icon, .feature-card-icon, .document-icon, .documents-header-icon, .header-icon-group, .media-card-icon, .flood-zone-icon, .property-track-icon, .map-address-icon, .tour-icon-container, .tour-icon-inner, .school-icon, .transit-stop-icon, .aqi-icon, .climate-icon, .cta-icon-only {
  background: var(--slate-wash) !important; color: var(--ink) !important; border-radius: 0 !important; border: 0 !important; box-shadow: none !important;
}
.tour-icon-ring { display: none !important; }
.document-card { border-top: 1px solid var(--rule) !important; }
.document-type { font-family: var(--font-ledger); font-size: 0.75rem; color: var(--muted); }
.calc-result { background: var(--ink) !important; color: var(--bond) !important; border-top: 1px solid var(--foil) !important; }
.calc-result-amount { font-family: var(--font-body); font-weight: 300; font-size: clamp(2rem, 4vw, 3rem); letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.calc-result-label { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: var(--foil); }
.calc-input-group input, .calc-input-group select { border: 0 !important; border-bottom: 1px solid var(--rule) !important; background: transparent !important; box-shadow: none !important; }
.listing-agents-card, .agent-card { background: var(--ink) !important; color: var(--bond) !important; border-top: 1px solid var(--foil) !important; }
.listing-agents-card *, .agent-card * { color: inherit; }
.listing-agent-role, .listing-agent-office { font: var(--label); text-transform: uppercase; letter-spacing: 0.1em; color: var(--foil) !important; }
.agent-card-btn--primary { background: var(--foil) !important; color: var(--ink) !important; border: 0 !important; }
.agent-card-btn--secondary { background: transparent !important; color: var(--bond) !important; border: 1px solid rgba(255,255,255,0.5) !important; }
.property-track-card { background: var(--slate-wash) !important; border-top: 1px solid var(--rule) !important; }
.similar-price { font-family: var(--font-body); font-weight: 300; font-size: 1.4rem; letter-spacing: -0.02em; }
.similar-specs { font-family: var(--font-ledger); font-size: 0.8rem; }
.detail-rows { border-top: 1px solid var(--rule); }
.detail-row { border-bottom: 1px solid var(--rule-light) !important; padding: 10px 0 !important; display: flex; justify-content: space-between; gap: 16px; }
.detail-row > :first-child { font: var(--label); text-transform: uppercase; letter-spacing: 0.1em; color: var(--muted); }
.detail-row > :last-child { font-family: var(--font-ledger); font-size: 0.95rem; color: var(--color-text); }
.quick-stat-value { font-family: var(--font-body); font-weight: 300; font-size: 1.5rem; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.quick-stat-text > :last-child, .quick-stat-label { font: var(--label); text-transform: uppercase; letter-spacing: 0.1em; color: var(--muted); }
.agent-card, .agent-card *, .listing-agents-card, .listing-agents-card * { color: var(--bond) !important; }
.agent-card .agent-card-btn--primary, .agent-card .agent-card-btn--primary * { color: var(--ink) !important; }
.agent-card .listing-agent-role, .agent-card .listing-agent-office, .agent-card [class*="label"] { color: var(--foil) !important; }
.agent-card input, .agent-card select, .agent-card textarea { border-bottom-color: rgba(255,255,255,0.4) !important; }
.btn-submit, .contact-form button[type="submit"] { font: var(--label) !important; text-transform: uppercase; letter-spacing: 0.12em; background: var(--ink) !important; color: var(--bond) !important; border: 1px solid var(--ink) !important; min-height: 48px; }
.btn-submit:hover { background: var(--ink-deep) !important; color: var(--foil) !important; }

   Audit fixes — 2026-09-07 (docs/AUDIT-2026-09-07.md)
   ========================================================================== */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
html, body { overflow-x: clip; }

/* P0-2: money fields keep room for their "$" / "%" affordance */
.input-prefix input, .input-with-prefix input, .currency-input input, .form-group .input-prefix input { padding-left: 28px !important; }
.input-suffix input, .input-with-suffix input, .percent-input input { padding-right: 32px !important; }
.input-prefix::before, .input-suffix::after { color: var(--muted); font-family: var(--font-ledger); }

/* P0-3: footer newsletter, every viewport */
.idx-footer-newsletter { margin: 0 auto; text-align: center !important; }
.idx-footer-newsletter-form { margin: 0 auto; }
.idx-footer-newsletter-input { padding-left: 0 !important; }
.idx-footer-newsletter-btn { min-height: 44px; }
@media (max-width: 640px) {
  .idx-footer-newsletter-form { flex-direction: column; border-bottom: 0; gap: 12px; }
  .idx-footer-newsletter-input { width: 100%; border-bottom: 1px solid rgba(255,255,255,0.45) !important; }
  .idx-footer-newsletter-btn { width: 100%; min-height: 48px; }
}
.idx-footer { margin-top: 0 !important; }

/* P1-11: photos fill their 4:3 frame; the empty record is calm */
.carousel-card-photo, .card-photo, .listing-card-image, .similar-photo { position: relative; aspect-ratio: 4 / 3; height: auto !important; overflow: hidden; }
.carousel-card-photo > img, .card-photo > img, .listing-card-image > img, .similar-photo > img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; }
.card-photo-placeholder { position: absolute; inset: 0; background: var(--slate); }
.listing-card-image .card-photo-placeholder { position: absolute; inset: 0; }

/* P1-12: search page input is the ruled line, not a white box */
.search-page-header .search-input-wrapper, .search-page-bar .search-input-wrapper { background: transparent !important; border: 0 !important; border-bottom: 1px solid rgba(255,255,255,0.55) !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; }
.search-page-header input, .search-page-bar input, .search-page-header .search-page-input { background: transparent !important; border: 0 !important; color: #fff !important; box-shadow: none !important; }
.search-page-header input::placeholder { color: rgba(255,255,255,0.5) !important; }
.search-page-header .search-input-icon { color: var(--foil) !important; }
.results-header, .results-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; justify-content: flex-start; }
.results-count { margin-right: auto; }
@media (max-width: 640px) {
  .results-header { padding: 14px var(--page-pad) 10px; }
  .results-count { flex: 1 1 100%; font-size: 1.25rem; }
  .results-sort, .view-toggle { flex: 0 0 auto; }
  .search-alert-banner-inner { flex-wrap: wrap; }
  .search-alert-form { flex-wrap: wrap; width: 100%; }
}

/* P1-15: empty states and stamps */
.testimonials-container .loading-state, .testimonials-grid .loading-state { background: none !important; border: 0 !important; min-height: 0 !important; padding: 56px 0; font-family: var(--font-display); font-size: 1.35rem; color: var(--muted); }
.card-badges-left, .card-badges { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.card-badge { white-space: nowrap; }

/* leftover tints and shadows */
.term-category { background: var(--slate-wash) !important; color: var(--ink) !important; border: 1px solid var(--rule) !important; }
.term-card, .glossary-term, .term-entry, .term-item, .guide-card, .category-card, .county-card, .school-card, .resource-link-card { background: var(--bond) !important; box-shadow: none !important; border: 0 !important; border-top: 1px solid var(--ink) !important; border-radius: 0 !important; }
.term-example, .example-box { background: var(--bond-tint) !important; border: 0 !important; border-left: 0 !important; }
.category-card .category-icon, .category-card [class*="icon"], .county-card [class*="icon"] { background: var(--slate-wash) !important; background-image: none !important; color: var(--ink) !important; border-radius: 0 !important; }
.role-option { background: var(--bond) !important; border: 1px solid var(--rule) !important; border-radius: 0 !important; }
.role-option.selected, .role-option:has(input:checked) { background: var(--slate-wash) !important; border-color: var(--ink) !important; }
.testimonials-cta { background: var(--slate-wash) !important; }
.results-card, .summary-box, .breakeven-section, .wealth-section, .reference-box, .info-box, .maine-costs, .cost-summary, .income-reference, .comfort-tile, .budget-tile, .affordability-result, .total-costs, .calc-summary { background: var(--bond-tint) !important; border: 0 !important; border-top: 1px solid var(--ink) !important; border-left: 0 !important; box-shadow: none !important; border-radius: 0 !important; background-image: none !important; }
.live-rates, .live-rates-buttons { background: transparent !important; border: 0 !important; padding: 0 !important; }
.live-rates button, .live-rates-buttons button, .live-rates .btn, .use-rate-btn, #useRateBtn, #useFmrBtn { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--stamp) !important; color: var(--stamp) !important; font: var(--label) !important; text-transform: uppercase; letter-spacing: 0.1em; padding: 4px 0 !important; min-height: 0 !important; white-space: normal; text-align: left; border-radius: 0 !important; }
.live-rate-dot { display: none !important; }
.live-rate-source { font-family: var(--font-ledger); color: var(--muted); }
[class*="insurance"][class*="segment"], .legend-insurance .swatch, .chart-insurance { background: var(--slate) !important; }
.contact-info-icon, .feature-icon, .resource-card-icon, .how-icon { background: transparent !important; border: 0 !important; width: auto !important; height: auto !important; padding: 0 !important; color: var(--ink) !important; }
.contact-info-icon svg, .feature-icon svg { width: 22px; height: 22px; stroke-width: 1.5; }
.valuation-card .btn, .valuation-card button[type="submit"], .home-value-btn, .btn-primary { background-image: none !important; }
.profile-hero-avatar, .profile-hero-avatar img, .team-avatar, .agent-avatar { box-shadow: none !important; }
.market-condition { background: var(--ink) !important; color: var(--bond) !important; border: 0 !important; border-top: 1px solid var(--foil) !important; }
.market-condition * { color: inherit !important; }
.search-hero .quick-links, .page-hero .quick-links { background: transparent !important; border: 0 !important; justify-content: center; margin-top: 24px; padding: 0; }
.search-hero .quick-link { color: #fff !important; border-right: 1px solid rgba(255,255,255,0.3) !important; }
.search-hero .quick-link:hover { color: var(--foil) !important; background: transparent !important; }
.search-hero-subtitle + .quick-links, .search-hero p + .quick-links { margin-top: 24px; }

/* P1-14: home value + calculators on phones */
@media (max-width: 640px) {
  .valuation-card { margin: 0 16px !important; padding: 20px 16px 24px !important; width: auto !important; }
  .trust-row, .valuation-trust { flex-wrap: wrap; gap: 10px 18px; justify-content: flex-start; }
  .calculator-container, .calc-container, .calculator-layout, .analyze-container { padding-left: 16px !important; padding-right: 16px !important; }
  .calculator-container table, .calc-container table, .comparison-table, .year-table { display: block; overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch; }
  .mls-input-row, .mls-search-row, .import-row { flex-wrap: wrap; gap: 10px; padding: 0 16px; }
  .post-content, .post-body, .blog-post-content { overflow-wrap: anywhere; }
  .post-content h2, .post-content h3 { overflow-wrap: normal; hyphens: manual; }
}
.post-content h2, .post-content h3, .blog-post-content h2 { max-width: none; text-wrap: pretty; }

/* P2: blog excerpt clamp; team baselines; nav item; edition line; ledger header; long town names */
.blog-card-excerpt { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.blog-card-excerpt::after { content: none !important; }
.team-card { display: flex; flex-direction: column; }
.team-card-body { display: flex; flex-direction: column; flex: 1; }
.team-card-body .btn, .team-card .view-profile-btn, .team-card-body > a:last-child { margin-top: auto; }
.team-avatar, .team-avatar-placeholder { width: 120px !important; height: 120px !important; font-size: 2.2rem; display: flex; align-items: center; justify-content: center; }
.nav-dropdown-trigger { font-size: 0.72rem !important; letter-spacing: 0.12em !important; font-family: var(--font-body) !important; }
@media (max-width: 640px) {
  .report-edition { flex-direction: column; gap: 2px; }
  .report-edition span + span::before { content: none; margin: 0; }
}
.town-row--head span, .town-row-fig, .town-row-name { text-align: left; justify-self: start; }
.all-item-name { white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.15; }
.flood-map-name { white-space: normal; overflow: visible; }
.listing-address-hero { white-space: nowrap; }
@media (max-width: 640px) { .listing-address-hero { white-space: normal; } }
.contact-form-card h2, .contact-info h2 { margin-top: 0; line-height: 1.15; }
.contact-info-item { padding: 12px 0; }
.interest-btn.selected, .interest-option.selected, .toggle-btn.active { background: var(--ink) !important; color: var(--bond) !important; border-color: var(--ink) !important; }
.icon-line { width: 28px; height: 28px; display: inline-block; vertical-align: middle; color: var(--ink); }
.role-icon .icon-line, .property-type-icon .icon-line, .type-icon .icon-line { width: 32px; height: 32px; }
.chip .icon-line, .property-type-chip .icon-line, label .icon-line { width: 18px; height: 18px; margin-right: 6px; }
.directory-note { font-family: var(--font-display); font-size: 1.15rem; color: var(--muted); border-top: 1px solid var(--rule); padding: 20px 0 0; margin: 8px 0 0; }
.category-count { font-family: var(--font-ledger); font-size: 0.8rem; color: var(--muted); }
.directory-note { font-family: var(--font-display); font-size: 1.15rem; color: var(--muted); border-top: 1px solid var(--rule); padding: 20px 0 0; margin: 8px 0 0; }
.category-count { font-family: var(--font-ledger); font-size: 0.8rem; color: var(--muted); }
/* search page: the bar's parent painted white */
.search-page-bar { background: transparent !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; }
.search-page-bar .search-hero-input, .search-page-bar input { color: #fff !important; font-family: var(--font-display); font-size: 1.35rem; }
.search-page-bar .search-hero-input::placeholder { color: rgba(255,255,255,0.5) !important; }
/* pages whose inline styles set their own faces (auth, tools) still take the world's type */
body, input, select, textarea, button { font-family: var(--font-body) !important; }
h1, h2, h3, .auth-card h1, .auth-header h1, .auth-title { font-family: var(--font-display) !important; }
code, pre, .ledger, .town-row-index, .all-item-index, .toc-index, .ledger-index, .index-row-num, .detail-row > :last-child, .carousel-card-specs, .card-specs, .listing-specs-hero, .listing-address-hero, .document-type, .similar-specs, .input-prefix::before, .input-suffix::after, .agent-card [class*="value"], .agent-card td { font-family: var(--font-ledger) !important; }
=======
/* ---------- Ledger sections (neighborhoods + resources follow-up) -------- */
.ledger-section { max-width: var(--grid-max); margin: 0 auto; padding: 40px var(--page-pad) 8px; }
.ledger-section .home-section-header { margin-bottom: 0; }
.ledger-section .ledger-figures small { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: var(--muted); }
.neighborhoods-section.ledger-section h2 { margin: 0; }

.town-ledger { display: block; }
.town-row {
  display: grid; grid-template-columns: 2.6em minmax(0, 1.6fr) repeat(4, minmax(0, 1fr)) auto; align-items: baseline; gap: 16px;
  padding: 14px 0; border-bottom: 1px solid var(--rule-light); color: var(--color-text); text-decoration: none !important;
}
.town-row:hover .town-row-name { color: var(--stamp); }
.town-row:hover .town-row-go { color: var(--stamp); }
.town-row--head { padding: 10px 0 6px; border-bottom: 1px solid var(--rule); }
.town-row--head span { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: var(--muted); }
.town-row-index { font-family: var(--font-ledger); font-size: 0.85rem; color: var(--muted); }
.town-row-name { font-family: var(--font-display); font-size: 1.35rem; line-height: 1.1; display: flex; align-items: center; gap: 10px; }
.town-row-fig b { font-weight: 300; font-size: 1.35rem; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.town-row-fig small { display: block; font: var(--label); text-transform: uppercase; letter-spacing: 0.1em; color: var(--muted); margin-top: 2px; }
.town-row--head .town-row-fig small { display: none; }
.town-row-go { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink); white-space: nowrap; }
.stamp--ledger { transform: rotate(-3deg); display: inline-block; font-size: 0.62rem; }
@media (max-width: 860px) {
  .town-row { grid-template-columns: 2.4em minmax(0, 1fr) auto; row-gap: 6px; }
  .town-row-fig { grid-column: 2 / -1; display: inline-block; margin-right: 18px; }
  .town-row-fig b { font-size: 1.1rem; }
  .town-row-fig small { display: inline; margin-left: 5px; }
  .town-row--head { display: none; }
  .town-row-go { display: none; }
}

/* all neighborhoods: three columns of indexed ledger rows */
.all-neighborhoods-section { padding-top: 40px; }
.all-header { border-bottom: 1px solid var(--ink); padding-bottom: 10px; margin-bottom: 8px; }
.all-header h2 { margin: 0; font-size: clamp(1.6rem, 2.6vw, 2.25rem); }
.all-header h2 .ledger-index { margin-right: 10px; }
.all-header p, #allCount { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: var(--muted); }
.all-search input { border: 0 !important; border-bottom: 1px solid var(--ink) !important; background: transparent !important; padding: 10px 0 10px 28px !important; box-shadow: none !important; font-family: var(--font-display); font-size: 1.1rem; }
.all-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 48px; row-gap: 0; }
.all-item {
  display: grid !important; grid-template-columns: 2.6em minmax(0, auto) 1fr auto; align-items: baseline; gap: 10px;
  padding: 9px 0 !important; border: 0 !important; border-bottom: 1px solid var(--rule-light) !important; background: transparent !important; color: var(--color-text) !important; text-decoration: none !important; border-radius: 0 !important;
}
.all-item:hover .all-item-name { color: var(--stamp); }
.all-item-index { font-family: var(--font-ledger); font-size: 0.8rem; color: var(--muted); }
.all-item-name { font-family: var(--font-display); font-size: 1.05rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.all-item-leader { border-bottom: 1px dotted var(--rule); transform: translateY(-4px); }
.all-item-count { font-weight: 300; font-size: 1.05rem; font-variant-numeric: tabular-nums; color: var(--color-text) !important; background: none !important; padding: 0 !important; }
.all-empty { font-family: var(--font-ledger); color: var(--muted); padding: 24px 0; grid-column: 1 / -1; }
#showMoreBtn, .show-more-btn { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; border: 1px solid var(--ink) !important; background: var(--bond) !important; color: var(--ink) !important; border-radius: 0 !important; padding: 14px; margin-top: 24px; width: 100%; }
#showMoreBtn:hover { background: var(--ink) !important; color: var(--bond) !important; }
@media (max-width: 1000px) { .all-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; } }
@media (max-width: 640px) { .all-grid { grid-template-columns: 1fr; } }

/* resources: indexed rows instead of tiles */
.resources-index { padding-bottom: 64px; }
.index-list { display: block; }
.index-row {
  display: grid; grid-template-columns: 2.6em minmax(0, 1fr) auto; align-items: baseline; gap: 16px;
  padding: 16px 0; border-bottom: 1px solid var(--rule-light); color: var(--color-text); text-decoration: none !important;
}
.index-row-num { font-family: var(--font-ledger); font-size: 0.85rem; color: var(--muted); }
.index-row-name { display: block; font-family: var(--font-display); font-size: 1.35rem; line-height: 1.15; }
.index-row-desc { display: block; color: var(--muted); font-size: 0.95rem; margin-top: 2px; max-width: 64ch; }
.index-row-go { font: var(--label); text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink); white-space: nowrap; }
.index-row:hover .index-row-name, .index-row:hover .index-row-go { color: var(--stamp); }
.resources-section.ledger-section:first-child .index-row { padding: 20px 0; }
.resources-section.ledger-section:first-child .index-row-name { font-size: 1.6rem; }
@media (max-width: 640px) { .index-row { grid-template-columns: 2.4em minmax(0, 1fr); } .index-row-go { grid-column: 2; } }
@media (max-width: 860px) {
  .town-row-fig { display: inline-block; width: calc(50% - 12px); margin-right: 0; }
  .town-row-fig:nth-of-type(odd) { margin-right: 16px; }
}
@media (max-width: 1200px) and (min-width: 1001px) { .all-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px) {
  .town-row { grid-template-columns: 2.4em minmax(0, 1fr) minmax(0, 1fr); row-gap: 8px; }
  .town-row-name { grid-column: 2 / -1; }
  .town-row-fig { grid-column: auto; display: block; width: auto; margin: 0; }
}
@media (max-width: 860px) {
  .town-row-fig:nth-of-type(odd) { grid-column: 2; }
  .town-row-fig:nth-of-type(even) { grid-column: 3; }
  .town-row-fig small { white-space: nowrap; }
}
/* ===================================================================
/* live re-check 2026-09-07: stamps inside a badge group stack; never absolute over each other */
.card-badges .card-badge, .card-badges-left .card-badge, .card-badges .badge-type, .card-badges-left .badge-type { position: static !important; top: auto; right: auto; left: auto; }
.card-badges, .card-badges-left { position: absolute; top: 12px; left: 12px; right: auto; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.card-badge.badge-type:not(.card-badges .badge-type):not(.card-badges-left .badge-type) { position: absolute; top: 12px; right: 12px; }
/* long town names wrap instead of clipping */
.all-grid .all-item .all-item-name, .all-item > .all-item-name { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; }

/* live re-check: team card baselines, rate chip, mortgage chart, mobile results header */
.team-grid { align-items: stretch; }
.team-card { display: flex !important; flex-direction: column; height: 100%; }
.team-card-body { display: flex !important; flex-direction: column; flex: 1 1 auto; }
.team-card-body > :last-child { margin-top: auto; }
#useLiveRateBtn, .use-live-rate-btn, .live-rate-btn, button[id*="LiveRate"], button[id*="useRate"], button[id*="useFmr"], #useFmrBtn {
  background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--stamp) !important; color: var(--stamp) !important;
  font: var(--label) !important; text-transform: uppercase; letter-spacing: 0.1em; padding: 4px 0 !important; min-height: 0 !important; border-radius: 0 !important; white-space: nowrap; box-shadow: none !important; display: inline-block; margin: 0 0 6px !important;
}
#useLiveRateBtn *, .live-rate-btn * { color: var(--stamp) !important; font: inherit !important; }
.segment-insurance, .legend-insurance, .legend-color.insurance, .legend-swatch.insurance { background: var(--slate) !important; }
.results-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; }
.results-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; flex: 1 1 auto; }
@media (max-width: 640px) {
  .results-count { flex: 0 1 auto; font-size: 1.15rem; }
  .results-sort select { font-size: 0.72rem; padding: 6px 0; }
  .view-toggle { margin-left: auto; }
}
