/* Editorial Utility — customer-facing appearance layer.
   Deliberately scoped so authenticated/product surfaces retain their own UI. */
@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap');

body.public-theme {
  --paper:#f3eee5; --paper-deep:#e7dfd2; --ink:#20241f; --muted:#68706a;
  --rule:#cfc7ba; --signal:#d94f35; --signal-dark:#a93d2a; --blue:#28566b; --gold:#ddb44a;
  background:var(--paper)!important; color:var(--ink)!important;
  font-family:"DM Sans",Arial,sans-serif!important; line-height:1.55;
}
body.public-theme *, body.public-theme *::before, body.public-theme *::after {
  box-sizing:border-box;
}
body.public-theme h1, body.public-theme h2, body.public-theme h3,
body.public-theme h4, body.public-theme h5, body.public-theme h6 {
  font-family:"Fraunces",Georgia,serif!important; color:var(--ink)!important;
  letter-spacing:-.045em!important; text-transform:none!important;
}
body.public-theme p, body.public-theme li, body.public-theme label,
body.public-theme input, body.public-theme select, body.public-theme textarea,
body.public-theme button { font-family:"DM Sans",Arial,sans-serif!important; }
body.public-theme a { color:inherit; }
body.public-theme .site-header,
body.public-theme header.site-header.jrc-public-header {
  background:var(--paper)!important; color:var(--ink)!important; height:auto!important;
  min-height:70px; padding:16px 28px!important; border-bottom:1px solid var(--rule)!important;
  box-shadow:none!important;
}
body.public-theme .site-logo,
body.public-theme header.site-header .site-logo {
  display:flex!important; align-items:center; color:var(--ink)!important;
  font:700 25px/1 "Fraunces",serif!important; letter-spacing:-.04em!important;
  text-transform:none!important; padding:0!important; background:none!important;
}
body.public-theme .site-logo img { display:block!important; width:273px; height:auto; }
body.public-theme .site-logo::before { display:none!important; }
body.public-theme .site-logo span { color:var(--signal)!important; }
body.public-theme .header-nav { gap:25px!important; }
body.public-theme .header-nav-link, body.public-theme .header-cta {
  color:var(--ink)!important; font-size:13px!important; font-weight:600!important;
  letter-spacing:0!important; text-transform:none!important; padding:7px 0!important;
  background:transparent!important; border:0!important; border-radius:0!important;
}
body.public-theme .header-nav-link:hover, body.public-theme .header-cta:hover { color:var(--signal)!important; }
body.public-theme .header-hauler-btn {
  background:var(--signal)!important; color:#fff!important; border:1px solid var(--signal)!important;
  border-radius:0!important; font-size:13px!important; letter-spacing:0!important;
  text-transform:none!important; padding:11px 15px!important;
}
body.public-theme .header-hauler-btn:hover { background:var(--signal-dark)!important; }
body.public-theme main, body.public-theme .main-wrap, body.public-theme .contact-wrap,
body.public-theme .section-inner { color:var(--ink); }
body.public-theme .hero, body.public-theme .quote-hero, body.public-theme .dir-banner,
body.public-theme .contact-hero, body.public-theme .blog-hero {
  background:var(--paper)!important; color:var(--ink)!important; border-bottom:7px solid var(--signal)!important;
}
body.public-theme .hero h1, body.public-theme .quote-hero h1,
body.public-theme .dir-banner h1, body.public-theme .contact-hero h1,
body.public-theme .blog-hero h1, body.public-theme .co-hero h1 { color:var(--ink)!important; }
body.public-theme .hero h1 em, body.public-theme .quote-hero h1 em,
body.public-theme .dir-banner h1 em, body.public-theme .contact-hero h1 em,
body.public-theme .blog-hero h1 em { color:var(--signal)!important; }
body.public-theme .hero p, body.public-theme .quote-hero p,
body.public-theme .contact-hero p, body.public-theme .blog-hero p,
body.public-theme .hero-sub, body.public-theme .dir-intro p { color:#525b55!important; }

/* Homepage section bands use the deeper paper; their content cards stay white. */
body.public-theme .svcs-section,
body.public-theme .guides-home,
body.public-theme .latest-posts-section {
  background:var(--paper-deep)!important;
}
body.public-theme .svc-card,
body.public-theme .guides-home-inner,
body.public-theme .latest-post-card {
  background:#fff!important;
}
body.public-theme .hero-eyebrow, body.public-theme .quote-hero-eyebrow,
body.public-theme .hero-proof b, body.public-theme .eyebrow,
body.public-theme .section-label { color:var(--signal-dark)!important; }
body.public-theme .hero-action, body.public-theme .hero-btn-primary,
body.public-theme .hero-btn-secondary, body.public-theme .co-btn-primary,
  body.public-theme .co-cta-btn {
  border-radius:0!important; box-shadow:none!important; text-transform:none!important;
}
body.public-theme .hero-action-primary, body.public-theme .hero-btn-primary,
body.public-theme .co-btn-primary, body.public-theme .co-cta-btn,
body.public-theme .submit-btn, body.public-theme .search-btn,
body.public-theme .dir-btn-primary, body.public-theme .action-btn-quote,
body.public-theme .mobile-bar-quote, body.public-theme .zip-contact-btn {
  background:var(--signal)!important; border-color:var(--signal)!important; color:#fff!important;
}
body.public-theme button:hover, body.public-theme a:hover { transition:color .15s,background .15s,border-color .15s,transform .15s; }
body.public-theme .hero-action-primary:hover, body.public-theme .hero-btn-primary:hover,
body.public-theme .submit-btn:hover, body.public-theme .search-btn:hover,
body.public-theme .dir-btn-primary:hover { background:var(--signal-dark)!important; }
body.public-theme .hero-action-secondary, body.public-theme .hero-btn-secondary,
body.public-theme .dir-btn-secondary, body.public-theme .dir-btn-tertiary {
  background:transparent!important; color:var(--ink)!important; border:1px solid var(--ink)!important;
  border-radius:0!important;
}
body.public-theme .hs-section, body.public-theme .search-box {
  background:var(--blue)!important; border-radius:0!important; border:0!important;
}
body.public-theme .hs-heading, body.public-theme .hs-heading em { color:var(--paper)!important; }
body.public-theme .search-panel input, body.public-theme .search-panel select,
body.public-theme .state-row-select, body.public-theme .form-group input,
body.public-theme .form-group select, body.public-theme .form-group textarea,
body.public-theme .field input, body.public-theme .field select, body.public-theme .field textarea,
body.public-theme .dir-search-input {
  background:#f7f3eb!important; color:var(--ink)!important; border:1px solid var(--rule)!important;
  border-radius:0!important;
}
body.public-theme .search-btn { background:var(--gold)!important; color:var(--ink)!important; border-radius:0!important; }
body.public-theme .search-tab.active { color:var(--gold)!important; border-color:var(--gold)!important; }
body.public-theme .dir-section, body.public-theme .chips-strip, body.public-theme .hiw-section,
body.public-theme .bottom-section, body.public-theme .blog-main, body.public-theme .post-main {
  background:var(--paper)!important; border-color:var(--rule)!important;
}
  body.public-theme .dir-card, body.public-theme .listing, body.public-theme .sidebar-card,
body.public-theme .info-card, body.public-theme .form-card, body.public-theme .post-card,
body.public-theme .co-city-card, body.public-theme .co-state-link, body.public-theme .co-why-card,
  body.public-theme .co-faq-item, body.public-theme .co-form-wrap, body.public-theme .choice-card {
  background:var(--paper)!important; border:1px solid var(--rule)!important;
  border-radius:0!important; box-shadow:none!important;
}
body.public-theme .dir-card.primary, body.public-theme .listing.pinned { border-top:7px solid var(--signal)!important; }
body.public-theme .dir-card.secondary { border-top-color:var(--blue)!important; }
body.public-theme .dir-card.tertiary { border-top-color:var(--gold)!important; }
body.public-theme .listing:hover, body.public-theme .post-card:hover,
body.public-theme .choice-card:hover { border-color:var(--signal)!important; box-shadow:0 6px 18px rgba(32,36,31,.08)!important; }
body.public-theme .listing-icon, body.public-theme .listing-icon.c1,
body.public-theme .listing-icon.c3 { background:var(--ink)!important; border-radius:0!important; }
body.public-theme .listing-icon.c2 { background:var(--blue)!important; }
body.public-theme .listing-icon.c4 { background:var(--gold)!important; color:var(--ink)!important; }
body.public-theme .listing-name, body.public-theme .dir-card-title,
body.public-theme .trust-block h2 { color:var(--ink)!important; }
body.public-theme .listing-sub, body.public-theme .dir-card-sub, body.public-theme .city-chip,
body.public-theme .form-group label, body.public-theme .section-label, body.public-theme .phone-note {
  color:var(--muted)!important;
}
body.public-theme .featured-badge, body.public-theme .choice-badge {
  background:var(--signal)!important; color:#fff!important; border-radius:0!important;
}
body.public-theme .city-chip, body.public-theme .page-btn {
  background:transparent!important; border:1px solid var(--rule)!important; border-radius:0!important;
}
body.public-theme .city-chip:hover, body.public-theme .city-chip.active,
body.public-theme .page-btn:hover, body.public-theme .page-btn.active {
  background:var(--ink)!important; color:var(--paper)!important; border-color:var(--ink)!important;
}
body.public-theme .sidebar-header, body.public-theme .info-card-header,
body.public-theme .modal-head { background:var(--ink)!important; border-radius:0!important; }
body.public-theme .sidebar-header.rust { background:var(--signal)!important; }
body.public-theme .sidebar-header, body.public-theme .info-card-header h3,
body.public-theme .modal-head h3 { color:var(--paper)!important; }
body.public-theme .phone-link, body.public-theme .co-county-link { color:var(--signal-dark)!important; }
body.public-theme .modal { border-radius:0!important; border:1px solid var(--rule)!important; }
body.public-theme .mobile-bar { background:var(--ink)!important; border-top:7px solid var(--signal)!important; }
body.public-theme .site-footer, body.public-theme footer {
  background:var(--ink)!important; color:#b8b9b0!important; border-top:7px solid var(--ink)!important;
}
body.public-theme footer a, body.public-theme .site-footer a { color:var(--paper)!important; }
body.public-theme .jrc-public-footer {
  margin-top:0!important; padding:42px 22px 36px!important; text-align:center!important;
}
body.public-theme .jrc-footer-inner {
  width:min(1080px,100%); margin:0 auto;
}
body.public-theme .jrc-footer-nav {
  display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px 0;
}
body.public-theme .jrc-footer-nav a {
  display:inline-flex; align-items:center; font-size:16px; line-height:1.35;
  text-decoration:none!important; white-space:nowrap;
}
body.public-theme .jrc-footer-nav a:not(:last-child)::after {
  content:"·"; margin:0 8px; color:#777d75;
}
body.public-theme .jrc-footer-contact {
  display:flex; flex-wrap:wrap; justify-content:center; gap:4px 8px;
  margin:22px auto 0; color:#b8b9b0!important; font-style:normal; line-height:1.55;
}
body.public-theme .jrc-footer-copy { margin:18px 0 0; color:#b8b9b0!important; }
body.public-theme .jrc-public-footer > .jrc-footer-inner > p:last-child { margin-top:14px!important; }
body.public-theme .stars { color:var(--gold)!important; }
body.public-theme *:focus-visible { outline:2px solid var(--signal)!important; outline-offset:3px!important; }
@media (max-width:800px) {
  body.public-theme .site-header { padding:15px 16px!important; }
  body.public-theme .site-logo img { width:205px; }
  body.public-theme .header-nav { width:100%; gap:7px!important; justify-content:space-between; flex-wrap:wrap; }
  body.public-theme .header-nav-link, body.public-theme .header-cta,
  body.public-theme .header-hauler-btn { padding:8px 9px!important; font-size:11px!important; }
  body.public-theme .hero, body.public-theme .quote-hero, body.public-theme .contact-hero { padding:50px 16px 44px!important; }
  body.public-theme .jrc-public-footer { padding:34px 18px 30px!important; }
  body.public-theme .jrc-footer-nav a { font-size:14px; }
  body.public-theme .jrc-footer-contact { flex-direction:column; align-items:center; gap:2px; }
  body.public-theme .jrc-footer-contact > span[aria-hidden="true"] { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  body.public-theme *, body.public-theme *::before, body.public-theme *::after {
    animation:none!important; transition:none!important; scroll-behavior:auto!important;
  }
}

/* Canonical public masthead. */
body.public-theme .site-header { position:relative; }
body.public-theme .site-logo img { display:none!important; }
body.public-theme .site-logo::before,
body.public-theme .site-logo::after { content:none!important; display:none!important; }
body.public-theme .site-logo { gap:0!important; }
body.public-theme .editorial-logo-junk,
body.public-theme .editorial-logo-removal,
body.public-theme .editorial-logo-club {
  color:var(--ink)!important; font:700 25px/1 "Fraunces",serif!important;
  letter-spacing:-.04em!important;
}
body.public-theme .site-logo .editorial-logo-junk,
body.public-theme .site-logo .editorial-logo-club { color:#000!important; }
body.public-theme .site-logo .editorial-logo-removal { color:var(--signal)!important; }

/* Locality and profile heroes are the cobalt dossier cover. */
body.public-theme .co-hero, body.public-theme .prof-hero,
body.public-theme .local-hero, body.public-theme .ds-hero {
  background:var(--blue)!important; color:var(--paper)!important;
  border-bottom:0!important; border-radius:0!important;
}
body.public-theme .co-hero h1, body.public-theme .prof-hero h1,
body.public-theme .local-hero h1, body.public-theme .ds-hero h1,
body.public-theme .prof-hero h2, body.public-theme .ds-hero h2 {
  color:var(--paper)!important;
}
body.public-theme .co-hero-eyebrow, body.public-theme .prof-tagline,
body.public-theme .local-hero-eyebrow, body.public-theme .ds-city-tag,
body.public-theme .prof-hero .eyebrow {
  color:var(--gold)!important; font-family:"DM Mono",monospace!important;
  letter-spacing:.1em!important; text-transform:uppercase!important;
}
body.public-theme .co-hero-sub, body.public-theme .prof-hero p,
body.public-theme .local-hero p, body.public-theme .ds-hero p { color:#d5e0dc!important; }
body.public-theme .co-hero-stat-num, body.public-theme .ds-hero-stat,
body.public-theme .prof-hero strong { color:var(--gold)!important; }
body.public-theme .co-hero-stat-label, body.public-theme .ds-hero-stats,
body.public-theme .prof-hero small { color:#cfddda!important; }
body.public-theme .co-hero-btns, body.public-theme .prof-hero-body + *,
body.public-theme .ds-hero + .ds-contact-strip {
  border-radius:0!important;
}
body.public-theme .co-btn-secondary, body.public-theme .prof-hero a:not(.co-btn-primary),
body.public-theme .ds-btn-outline {
  border-color:rgba(243,238,229,.55)!important; color:var(--paper)!important;
  border-radius:0!important; background:transparent!important;
}
body.public-theme .co-hero::after, body.public-theme .prof-hero::after,
body.public-theme .local-hero::after, body.public-theme .ds-hero::after { display:none!important; }

/* Homepage facts use the same signal/metadata hierarchy as the mockup. */
body.public-theme .hero-stats {
  display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr))!important;
  width:min(760px,100%)!important; margin-left:auto!important; margin-right:auto!important;
  color:var(--ink)!important; gap:0!important;
}
body.public-theme .hero-stat { min-width:0!important; padding:0 10px; }
body.public-theme .hero-stat + .hero-stat { border-left:1px solid var(--rule); }
body.public-theme .hero-stat strong, body.public-theme .hero-stat b {
  display:block!important; color:var(--signal-dark)!important;
  font:600 clamp(24px,4vw,34px)/1 "Fraunces",serif!important; letter-spacing:-.04em!important;
}
body.public-theme .hero-stat span { display:block!important; color:var(--muted)!important;
  font:500 11px "DM Mono",monospace!important; text-transform:uppercase!important;
  letter-spacing:.07em!important; }

/* Profile dossier components: rules and square paper blocks replace legacy
   rounded cards without touching their content or interaction hooks. */
body.public-theme .prof-hero + *, body.public-theme .prof-main,
body.public-theme .prof-content, body.public-theme .prof-sidebar { color:var(--ink); }
body.public-theme .prof-card, body.public-theme .trust-card,
body.public-theme .trust-block, body.public-theme .card,
body.public-theme .tag-card, body.public-theme [class*="tag-"],
body.public-theme .sticky-card, body.public-theme [class*="sticky-"] {
  border-radius:0!important; box-shadow:none!important; border:1px solid var(--rule)!important;
  background:var(--paper)!important;
}
body.public-theme .prof-card, body.public-theme .trust-card,
body.public-theme .card { border-top:7px solid var(--signal)!important; }
body.public-theme .prof-card h2, body.public-theme .prof-card h3,
body.public-theme .trust-card h2, body.public-theme .trust-card h3,
body.public-theme .card h2, body.public-theme .card h3 { color:var(--ink)!important; }
body.public-theme .prof-meta, body.public-theme .prof-subtitle,
body.public-theme .trust-copy, body.public-theme .card p { color:var(--muted)!important; }
body.public-theme .prof-tag, body.public-theme .tag,
body.public-theme .tag-chip, body.public-theme [class*="tag-"] {
  border-radius:0!important; border:1px solid var(--rule)!important;
  background:var(--paper-deep)!important; color:var(--ink)!important;
}
body.public-theme .sticky-cta, body.public-theme .sticky-bar,
body.public-theme .sticky-actions {
  border-radius:0!important; background:var(--gold)!important; color:var(--ink)!important;
  border-top:1px solid var(--ink)!important;
}

/* City, dump-site and resource controls share restrained editorial geometry. */
body.public-theme .local-section, body.public-theme .ds-section,
body.public-theme .co-section, body.public-theme .resources-main,
body.public-theme .resource-list, body.public-theme .article-main {
  background:var(--paper)!important; border-color:var(--rule)!important;
}
body.public-theme .local-card, body.public-theme .local-link,
body.public-theme .ds-card, body.public-theme .ds-listing,
body.public-theme .ds-filter, body.public-theme .co-city-card,
body.public-theme .co-state-link, body.public-theme .co-why-card,
body.public-theme .co-faq-item, body.public-theme .resource-card,
body.public-theme .article-card, body.public-theme .article-body {
  border-radius:0!important; box-shadow:none!important; border:1px solid var(--rule)!important;
  background:var(--paper)!important;
}
body.public-theme .local-card:hover, body.public-theme .local-link:hover,
body.public-theme .ds-card:hover, body.public-theme .resource-card:hover,
body.public-theme .article-card:hover { border-color:var(--signal)!important; }
body.public-theme .ds-listing, body.public-theme .local-card { border-top:1px solid var(--ink)!important; }
body.public-theme .ds-actions .ds-btn {
  display:inline-flex!important; align-items:center; justify-content:center;
  min-height:36px; padding:8px 14px!important;
  border:1px solid var(--signal)!important; border-radius:7px!important;
  background:var(--signal)!important; color:#fff!important;
  opacity:1!important; font-style:normal!important; text-decoration:none!important;
}
body.public-theme .ds-actions .ds-btn:hover {
  background:var(--signal-dark)!important; border-color:var(--signal-dark)!important; color:#fff!important;
}
body.public-theme .ds-page-btn, body.public-theme .local-btn,
body.public-theme .co-cta-btn { border-radius:0!important; }
body.public-theme .ds-junkscan-inner, body.public-theme .ds-sw-section {
  border-radius:0!important; background:var(--ink)!important; border-top:7px solid var(--signal)!important;
}
body.public-theme .ds-junkscan-btn { border-radius:0!important; background:var(--signal)!important; }
body.public-theme .resource-tabs, body.public-theme .library-tabs,
body.public-theme .cat-tabs, body.public-theme .article-controls {
  border-bottom:1px solid var(--rule)!important; background:transparent!important;
}
body.public-theme .resource-tab, body.public-theme .library-tab,
body.public-theme .cat-tab, body.public-theme .article-filter {
  border-radius:0!important; border:1px solid var(--rule)!important;
  background:transparent!important; color:var(--ink)!important;
}
body.public-theme .resource-tab.active, body.public-theme .library-tab.active,
body.public-theme .cat-tab.active, body.public-theme .article-filter.active {
  background:var(--ink)!important; color:var(--paper)!important; border-color:var(--ink)!important;
}
body.public-theme .resource-hero, body.public-theme .article-hero {
  background:var(--paper-deep)!important; color:var(--ink)!important; border-bottom:7px solid var(--signal)!important;
}
body.public-theme .resource-hero h1,
body.public-theme .article-hero h1,
body.public-theme .post-hero .post-title { color:#fff!important; }

/* Public hauler marketing uses the same Editorial Utility language. */
body.public-theme .fh-hero,
body.public-theme .js-hub-hero {
  background:var(--paper)!important; color:var(--ink)!important;
  border-bottom:7px solid var(--signal)!important;
}
body.public-theme .fh-hero h1,
body.public-theme .js-hub-hero h1 { color:var(--ink)!important; }
body.public-theme .fh-hero h1 em,
body.public-theme .js-hub-hero h1 em { color:var(--signal)!important; }
body.public-theme .fh-hero-sub,
body.public-theme .js-hub-lede { color:var(--muted)!important; }
body.public-theme .fh-cta-primary,
body.public-theme .fh-cta-secondary,
body.public-theme .fh-final-btn,
body.public-theme .fh-plan-btn,
body.public-theme .js-hub-button {
  border:1px solid var(--signal)!important; border-radius:0!important;
  background:var(--signal)!important; color:#fff!important; box-shadow:none!important;
}
body.public-theme .fh-hiw,
body.public-theme .fh-features,
body.public-theme .fh-plans,
body.public-theme .js-hub-section,
body.public-theme .js-hub-control,
body.public-theme .js-hub-estimator { background:var(--paper)!important; }
body.public-theme .fh-hiw .step,
body.public-theme .fh-feat,
body.public-theme .fh-plan-card,
body.public-theme .fh-compare-box,
body.public-theme .js-hub-audience-panel,
body.public-theme .js-hub-module-grid article,
body.public-theme .js-hub-faq details {
  border-radius:0!important; box-shadow:none!important; border-color:var(--rule)!important;
}
body.public-theme .fh-pricing-strip,
body.public-theme .js-hub-final { background:var(--gold)!important; color:var(--ink)!important; }
body.public-theme .fh-compare,
body.public-theme .fh-final,
body.public-theme .js-hub-modules {
  background:var(--blue)!important; color:var(--paper)!important;
}
body.public-theme .fh-compare h2,
body.public-theme .fh-final h2,
body.public-theme .js-hub-modules h2,
body.public-theme .js-hub-modules h3,
body.public-theme .js-hub-modules h4 { color:var(--paper)!important; }

/* Public hauler account entry pages retain their forms but share the public shell. */
body.business-auth-public .auth-wrap { background:var(--paper)!important; }
body.business-auth-public .auth-card {
  max-width:520px; border:1px solid var(--rule)!important; border-top:7px solid var(--signal)!important;
  border-radius:0!important; box-shadow:none!important; background:var(--paper)!important;
}
body.business-auth-public .form-group input,
body.business-auth-public .form-group textarea,
body.business-auth-public .form-group select {
  border-radius:0!important; background:#faf7f1!important; border-color:var(--rule)!important;
}
body.business-auth-public .btn-primary { border-radius:0!important; background:var(--signal)!important; }

@media (max-width:800px) {
  body.public-theme header.site-header.jrc-public-header {
    padding:9px 16px!important; overflow:visible!important;
  }
  body.public-theme .hero-stats { grid-template-columns:repeat(4,minmax(0,1fr))!important; }
  body.public-theme .hero-stat { padding:10px 4px; border-bottom:0; }
  body.public-theme .hero-stat strong, body.public-theme .hero-stat b {
    font-size:clamp(20px,7.2vw,28px)!important;
  }
  body.public-theme .hero-stat span {
    font-size:clamp(8px,2.4vw,10px)!important; letter-spacing:.035em!important;
  }
  body.public-theme .prof-hero, body.public-theme .local-hero, body.public-theme .ds-hero,
  body.public-theme .co-hero { padding-left:16px!important; padding-right:16px!important; }
  body.public-theme .sticky-bar, body.public-theme .sticky-actions {
    position:fixed!important; left:0; right:0; bottom:0; z-index:150;
  }
}