/* ==========================================================================
   Rhaus + Co — site chrome (header + footer), sitewide.
   Namespaced .rh-nav / .rh-foot so it cannot collide with page content.

   Built against universal-conventions.md § 1 and § 3:
   transparent 3rem / 84px logo, stuck 2.05rem / 70px, border-bottom 0 in BOTH
   states, a shallow top scrim on the NAV only (never a full-frame hero wash),
   five top-level items, Contact as the right-hand CTA, no "Home" item, logo
   links home, compliance marks at 48px, "Site by AgenticPress" as one link.
   ========================================================================== */

:root{
  --rh-ink:#0A0909; --rh-paper:#FFFFFF; --rh-bone:#F5F2ED; --rh-line:#D8D1C6;
  --rh-weichert:#FFCE00; --rh-brass:#806320;
  --rh-head:'Raleway',Georgia,serif; --rh-body:'Montserrat',-apple-system,Helvetica,Arial,sans-serif;
  --rh-gutter:clamp(20px,5vw,64px);
  --rh-ease:cubic-bezier(.22,.61,.36,1);
}

/* Astra still prints its own header/footer wrappers; ours replace the content. */
.rh-nav,.rh-foot{box-sizing:border-box}
.rh-nav *,.rh-foot *{box-sizing:border-box}

/* ---------------------------------------------------------------- NAV ---- */
.rh-nav{
  position:fixed;inset:0 0 auto 0;z-index:90;
  display:flex;align-items:center;justify-content:space-between;gap:2rem;
  padding:3rem var(--rh-gutter);
  border-bottom:0;                      /* § 1: no line, in EITHER state */
  transition:background .5s var(--rh-ease),padding .5s var(--rh-ease);
}
/* A shallow scrim on the nav itself so the links hold over photography. It
   fades out inside the nav's own height and never reaches the hero. */
.rh-nav::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,9,9,.58) 0%,rgba(10,9,9,.26) 62%,transparent 100%);
  transition:opacity .5s var(--rh-ease);
}
.rh-nav > *{position:relative;z-index:1}

/* A position:fixed header ignores the WordPress admin bar and ends up underneath
   it for every logged-in user, which is exactly who reviews the build. The bar is
   32px, and 46px below 783px where it stops being fixed itself. */
body.admin-bar .rh-nav{top:32px}
@media screen and (max-width:782px){
  body.admin-bar .rh-nav{top:46px}
}
.rh-nav__logo,.rh-nav__actions,.rh-nav__burger{z-index:3}

.rh-nav.is-stuck{
  background:var(--rh-paper);padding-block:2.05rem;border-bottom:0;
  box-shadow:0 1px 0 var(--rh-line),0 12px 34px -26px rgba(10,9,9,.5);
}
.rh-nav.is-stuck::before{opacity:0}

.rh-nav__logo{display:block;line-height:0}
.rh-nav__logo img{height:84px;width:auto;transition:height .5s var(--rh-ease)}
.rh-nav.is-stuck .rh-nav__logo img{height:70px}
.rh-nav__logo .rh-logo--light{display:block;filter:drop-shadow(0 1px 10px rgba(10,9,9,.45))}
.rh-nav__logo .rh-logo--dark{display:none}
.rh-nav.is-stuck .rh-logo--light{display:none}
.rh-nav.is-stuck .rh-logo--dark{display:block;filter:none}

.rh-nav__links{display:flex;align-items:center;gap:clamp(1.1rem,2.3vw,2.4rem);list-style:none;margin:0;padding:0}
.rh-nav__links > li{position:relative}
.rh-nav__links > li > a,
.rh-nav__links > li > .rh-nav__label{
  display:inline-block;line-height:1.3;font-family:var(--rh-body);
  font-size:.71rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  color:#fff;text-shadow:0 1px 14px rgba(10,9,9,.55);
  padding-block:.35rem;text-decoration:none;transition:color .35s var(--rh-ease);cursor:pointer;
}
.rh-nav.is-stuck .rh-nav__links > li > a,
.rh-nav.is-stuck .rh-nav__links > li > .rh-nav__label{color:var(--rh-ink);text-shadow:none}
.rh-nav__links > li > a:hover{color:var(--rh-weichert)}
.rh-nav.is-stuck .rh-nav__links > li > a:hover{color:var(--rh-brass)}

/* the toggle is for keyboard and touch; pointer users get hover */
.rh-nav__toggle{
  position:absolute;inset:0;width:100%;height:100%;
  background:none;border:0;padding:0;cursor:pointer;opacity:0;
}
@media (hover:hover){.rh-nav__toggle{pointer-events:none}}
.rh-nav__toggle:focus-visible{opacity:1;outline:2px solid var(--rh-weichert);outline-offset:3px}

.rh-nav__sub{
  position:absolute;top:100%;left:-1rem;min-width:236px;list-style:none;margin:0;
  padding:.9rem 0;background:var(--rh-paper);
  box-shadow:0 22px 46px -26px rgba(10,9,9,.55);
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .3s var(--rh-ease),transform .3s var(--rh-ease),visibility .3s;
}
.rh-nav__links > li:hover > .rh-nav__sub,
.rh-nav__links > li:focus-within > .rh-nav__sub,
.rh-nav__links > li.is-open > .rh-nav__sub{opacity:1;visibility:visible;transform:none}
.rh-nav__sub a{
  display:block;padding:.62rem 1.5rem;font-family:var(--rh-body);
  font-size:.68rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;
  color:var(--rh-ink);text-decoration:none;transition:background .3s,color .3s;
}
.rh-nav__sub a:hover{background:var(--rh-bone);color:var(--rh-brass)}

.rh-nav__actions{display:flex;align-items:center;gap:clamp(.9rem,1.6vw,1.7rem)}
.rh-nav__phone{
  font-family:var(--rh-body);font-size:.72rem;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:#fff;text-shadow:0 1px 14px rgba(10,9,9,.55);
  white-space:nowrap;text-decoration:none;transition:color .35s var(--rh-ease);
}
.rh-nav.is-stuck .rh-nav__phone{color:var(--rh-ink);text-shadow:none}
.rh-nav__phone:hover{color:var(--rh-weichert)}
.rh-nav.is-stuck .rh-nav__phone:hover{color:var(--rh-brass)}

.rh-nav__cta{
  font-family:var(--rh-body);font-size:.71rem;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;border:1px solid rgba(255,255,255,.6);color:#fff;
  padding:.78rem 1.6rem;text-decoration:none;transition:all .4s var(--rh-ease);
}
.rh-nav__cta:hover{background:#fff;color:var(--rh-ink);border-color:#fff}
.rh-nav.is-stuck .rh-nav__cta{border-color:var(--rh-ink);color:var(--rh-ink)}
.rh-nav.is-stuck .rh-nav__cta:hover{background:var(--rh-ink);color:#fff}

.rh-nav__burger{display:none;background:none;border:0;cursor:pointer;padding:.4rem}
.rh-nav__burger span{display:block;width:26px;height:1px;background:#fff;margin:6px 0;transition:background .4s,transform .4s,opacity .3s}
.rh-nav.is-stuck .rh-nav__burger span{background:var(--rh-ink)}

/* Interior pages have no full-bleed hero behind the fixed nav. */
.rh-has-solid-nav .rh-nav{position:sticky;background:var(--rh-paper);padding-block:2.05rem}
.rh-has-solid-nav .rh-nav::before{opacity:0}
.rh-has-solid-nav .rh-nav .rh-nav__links > li > a,
.rh-has-solid-nav .rh-nav .rh-nav__links > li > .rh-nav__label,
.rh-has-solid-nav .rh-nav__phone{color:var(--rh-ink);text-shadow:none}
.rh-has-solid-nav .rh-nav__cta{border-color:var(--rh-ink);color:var(--rh-ink)}
.rh-has-solid-nav .rh-logo--light{display:none}
.rh-has-solid-nav .rh-logo--dark{display:block;filter:none}
.rh-has-solid-nav .rh-nav__logo img{height:70px}
.rh-has-solid-nav .rh-nav__burger span{background:var(--rh-ink)}

@media (max-width:1100px){
  .rh-nav__links,.rh-nav__phone{display:none}
  .rh-nav__burger{display:block}
  /* The panel hangs BELOW the bar rather than covering it, so the logo and the
     Contact CTA stay reachable while the menu is open. top:100% is the bottom
     of the nav's padding box, which tracks the transparent/stuck height change
     without either being hard-coded. */
  /* `.rh-nav > *{position:relative}` makes the <nav> wrapper a containing block,
     so an absolute panel inside it resolves against the wrapper (which is a
     flex item sized to nothing once the list is taken out of flow) and collapses
     to a strip. Take the wrapper out of the positioning chain at this width so
     the panel resolves against .rh-nav itself. */
  .rh-nav > nav{position:static}
  .rh-nav__links.is-open{
    display:flex;flex-direction:column;align-items:stretch;gap:0;
    position:absolute;top:100%;left:0;right:0;z-index:2;
    padding:.5rem var(--rh-gutter) 2.5rem;
    background:var(--rh-paper);max-height:calc(100svh - 100%);overflow-y:auto;
    box-shadow:0 18px 34px -26px rgba(10,9,9,.5);
  }
  /* The bar itself goes solid while the panel is open, or a white logo sits on
     a white panel edge and the burger disappears. */
  .rh-nav.is-menu-open{background:var(--rh-paper)}
  .rh-nav.is-menu-open::before{opacity:0}
  .rh-nav.is-menu-open .rh-logo--light{display:none}
  .rh-nav.is-menu-open .rh-logo--dark{display:block;filter:none}
  .rh-nav.is-menu-open .rh-nav__burger span{background:var(--rh-ink)}
  .rh-nav.is-menu-open .rh-nav__cta{border-color:var(--rh-ink);color:var(--rh-ink)}
  .rh-nav__links.is-open > li{border-bottom:1px solid var(--rh-line)}
  .rh-nav__links.is-open > li > a,
  .rh-nav__links.is-open > li > .rh-nav__label{
    color:var(--rh-ink);text-shadow:none;padding:1.15rem 0;width:100%;font-size:.82rem;
  }
  .rh-nav__links.is-open .rh-nav__toggle{
    opacity:1;left:auto;right:0;width:56px;pointer-events:auto;
  }
  .rh-nav__links.is-open .rh-nav__toggle::after{
    content:'';position:absolute;right:6px;top:50%;width:9px;height:9px;
    border-right:1px solid var(--rh-ink);border-bottom:1px solid var(--rh-ink);
    transform:translateY(-70%) rotate(45deg);transition:transform .3s var(--rh-ease);
  }
  .rh-nav__links.is-open > li.is-open .rh-nav__toggle::after{transform:translateY(-30%) rotate(225deg)}
  .rh-nav__sub{
    position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;
    display:none;padding:0 0 .9rem;min-width:0;background:transparent;
  }
  .rh-nav__links.is-open > li.is-open > .rh-nav__sub{display:block}
  .rh-nav__sub a{padding:.55rem 0 .55rem .9rem}
}

/* ------------------------------------------------------------- FOOTER ---- */
.rh-foot{
  background:var(--rh-ink);color:#98938D;font-family:var(--rh-body);
  font-size:.88rem;font-weight:300;line-height:1.75;padding-block:clamp(64px,8vw,104px) 0;
}
.rh-foot__wrap{max-width:1240px;margin:0 auto;padding-inline:var(--rh-gutter)}
.rh-foot__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:clamp(2rem,4vw,3.4rem)}
.rh-foot a{color:inherit;text-decoration:none;transition:color .35s var(--rh-ease)}
.rh-foot a:hover{color:var(--rh-weichert)}
/* Column headings: a step up in size, and separated from their links by a short
   Weichert rule. They were reading as another line of small caps rather than as
   the head of a column. The rule is drawn under the TEXT, not the full column
   width, so it reads as an accent and not as a table border. */
.rh-foot__h{
  font-family:var(--rh-body);font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--rh-paper);
  margin:0 0 1.5rem;padding-bottom:.85rem;position:relative;
  /* Astra prints `h1,h2{font-size:clamp(...)!important}` under 767px. A footer
     column label is an h2 for correct document outline, so it needs important
     of its own or it renders at headline size on every phone. */
  font-size:.82rem!important;
}
.rh-foot__h::after{
  content:'';position:absolute;left:0;bottom:0;
  width:34px;height:2px;background:var(--rh-weichert);
}
.rh-foot ul{list-style:none;margin:0;padding:0}
.rh-foot li{margin-bottom:.78rem}
.rh-foot ul a{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase}
.rh-foot__logo img{height:88px;width:auto;margin-bottom:1.8rem}
.rh-foot__id{margin:0;color:#98938D}
.rh-foot__socials{display:flex;gap:.9rem;margin-top:1.5rem}
.rh-foot__socials a{
  width:38px;height:38px;border:1px solid rgba(255,255,255,.2);
  display:grid;place-items:center;transition:all .4s var(--rh-ease);
}
.rh-foot__socials a:hover{background:var(--rh-weichert);border-color:var(--rh-weichert)}
.rh-foot__socials a:hover svg{fill:var(--rh-ink)}
.rh-foot__socials svg{width:15px;height:15px;fill:#98938D;transition:fill .4s var(--rh-ease)}

.rh-foot__legal{
  margin-top:clamp(48px,6vw,72px);padding-block:2.2rem;
  border-top:1px solid rgba(255,255,255,.12);
  display:flex;flex-wrap:wrap;gap:1.4rem;justify-content:space-between;align-items:center;
  font-size:.78rem;color:#949089;          /* 6.26:1 on ink */
}
.rh-foot__marks{display:flex;align-items:center;gap:1.35rem}
.rh-foot__marks img{height:48px;width:auto}   /* § 3: both marks at 48px */
.rh-foot__utility{display:flex;flex-wrap:wrap;gap:1.4rem}
.rh-foot__utility a{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:#98938D}
.rh-foot__credit{white-space:normal}
/* § 3: "Site by AgenticPress" is ONE link to agenticpress.ai, underlined so it
   reads as a link rather than as part of the copyright line. */
.rh-foot__credit a{text-decoration:underline;text-underline-offset:3px}
.rh-foot__compliance{
  max-width:62ch;font-size:.76rem;line-height:1.75;color:#949089;
  margin:0;padding-bottom:2.2rem;
}
.rh-foot__compliance a{text-decoration:underline;text-underline-offset:3px}

@media (max-width:1024px){.rh-foot__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.rh-foot__grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.rh-nav,.rh-nav *,.rh-foot *{transition-duration:.01ms!important}}

/* ---------------------------------------------- 2026-10-28 · card fixes ----
   Rachael's BugHurd card "Site changes throughout the site". Kept here, after
   everything else, so a Grapple rebuild of ruesch-home.css cannot drop them.
   Selectors carry body. so they outrank ruesch-home.css whatever the load order.
   ------------------------------------------------------------------------- */

/* Home H1 sat 14px under the nav: the hero is bottom-aligned and the longer H1
   filled the screen. Clear the fixed header and let the hero grow instead. */
/* Home hero: fills the screen and stops there (Curtis, 2026-10-29: "full bleed on home page but not so big it
   bleeds underneath"). Each half of the H1 sits on one line (wider cap, a slightly smaller top size), and the
   space above it gives way on short screens, so the H1, the line under it and the buttons fit in the window. */
body.page-ruesch-home .rh-hero{padding-top:clamp(200px,26vh,280px)!important;--h1:clamp(2.4rem,5.2vw,4.8rem)}
body.page-ruesch-home .rh-hero__h1{max-width:28ch}
@media (max-width:860px){body.page-ruesch-home .rh-hero{padding-top:150px!important}body.page-ruesch-home .rh-hero__h1{max-width:100%}}

/* IDX zones: the dashed box was the "not provisioned yet" placeholder frame.
   Showcase renders now, so the frame and its inset padding go, sitewide. */
body.rh-grapple .rh-idx{border:0;padding:0;min-height:0}

/* Footer: brighter text (was #98938D / #949089, read as too dim on ink). */
.rh-foot,.rh-foot__id{color:#E2DED7}
.rh-foot__utility a{color:#E2DED7}
.rh-foot__legal,.rh-foot__compliance{color:#CDC8C0}
.rh-foot__socials a{border-color:rgba(255,255,255,.35)}
.rh-foot__socials svg{fill:#E2DED7}

/* Communities grid (Curtis's sketch, 2026-10-28): White Bluff double width +
   Whitney, then 3 + 3 with a Search All Homes tile closing the last row. */
body.rh-grapple .rh-towns__col--wide{grid-column:span 2}
body.rh-grapple .rh-town--search{background:var(--rh-ink)}
/* The Search tile carries a photograph (Rachael, 2026-10-29), so it takes the same scrim as the town tiles. */
body.rh-grapple .rh-town--search .rh-town__county{color:var(--rh-weichert)}
@media (max-width:1100px){body.rh-grapple .rh-towns__col--search{grid-column:span 2}}
@media (max-width:860px){body.rh-grapple .rh-towns__col--wide,body.rh-grapple .rh-towns__col--search{grid-column:auto}}

/* Testimonials: real Google reviews as cards, flowing in columns so long and
   short reviews pack without gaps. */
body.rh-grapple .rh-reviews{columns:3 320px;column-gap:2rem;margin-top:clamp(2.4rem,4vw,3.4rem)}
body.rh-grapple .rh-review{
  break-inside:avoid;margin:0 0 2rem;padding:2rem 2rem 1.7rem;
  background:var(--rh-bone);border-top:2px solid var(--rh-brass);
}
body.rh-grapple .rh-review__stars{color:var(--rh-brass);letter-spacing:.18em;font-size:.9rem;margin:0 0 1rem}
body.rh-grapple .rh-review__text{margin:0 0 1.3rem;line-height:1.75}
body.rh-grapple .rh-review__by{margin:0;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:#5E5852}
body.rh-grapple .rh-review__by strong{color:var(--rh-ink);font-weight:600}
body.rh-grapple .rh-reviews__go{margin-top:1rem}

/* Contact (card 2026-10-28): the photo under Get in touch became the contact
   form, set on a bone card; the details on the left read as a ruled list. */
body.rh-grapple .rh-contact{align-items:flex-start!important;gap:clamp(2rem,5vw,4.5rem)!important}
body.rh-grapple .rh-contact .rh-hv__list{list-style:none;margin:2rem 0 0;padding:0}
body.rh-grapple .rh-contact .rh-hv__list li{padding:1rem 0;border-top:1px solid var(--rh-line);margin:0}
body.rh-grapple .rh-contact .rh-hv__list li:last-child{border-bottom:1px solid var(--rh-line)}
body.rh-grapple .rh-contact .rh-hv__list li::before{display:none}
body.rh-grapple .rh-contact .rh-hv__list a{color:var(--rh-ink);font-weight:500;text-decoration:none}
body.rh-grapple .rh-contact .rh-hv__list a:hover{color:var(--rh-brass)}
body.rh-grapple .rh-contact__form{
  background:var(--rh-bone);border-top:3px solid var(--rh-weichert);
  padding:clamp(1.8rem,4vw,3rem)!important;
}
body.rh-grapple .rh-contact__form-h{margin:0 0 .5rem}
body.rh-grapple .rh-contact__form-sub{margin:0 0 1.6rem;color:#5E5852}
body.rh-grapple .rh-contact__form .gform_wrapper.gform-theme--framework{
  --gf-ctrl-radius:0;--gf-ctrl-border-color:#B9B1A5;--gf-ctrl-border-color-focus:var(--rh-ink);
  --gf-color-primary:var(--rh-ink);--gf-color-primary-rgb:10,9,9;--gf-color-primary-contrast:#fff;
  --gf-ctrl-btn-radius:0;--gf-ctrl-label-color-primary:var(--rh-ink);--gf-font-family-base:var(--rh-body);
  --gf-ctrl-bg-color:#fff;
}
body.rh-grapple .rh-contact__form .gform_wrapper input:not([type=checkbox]):not([type=radio]):not([type=submit]),
body.rh-grapple .rh-contact__form .gform_wrapper select,
body.rh-grapple .rh-contact__form .gform_wrapper textarea{border-radius:0;font-family:var(--rh-body)}
body.rh-grapple .rh-contact__form .gform_wrapper .gform_button,
body.rh-grapple .rh-contact__form .gform_wrapper input[type=submit]{
  background:var(--rh-ink)!important;color:#fff!important;border:0!important;border-radius:0!important;
  font-family:var(--rh-body);font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  padding:1rem 2.2rem!important;
}
body.rh-grapple .rh-contact__form .gform_wrapper .gform_button:hover{background:var(--rh-brass)!important}
@media (max-width:860px){body.rh-grapple .rh-contact__form{flex-basis:100%!important}}

/* The footer email ran 150px past a 375px screen (caps + tracking). Let it break. */
.rh-foot li,.rh-foot ul a{overflow-wrap:anywhere;min-width:0}
.rh-foot__grid > *{min-width:0}

/* ---- Merged from the fork session (2026-10-28), which wrote these to files the
   loader no longer reads (site-fixes.css, site-testimonials.css, its chrome.css). ---- */

/* Footer pass (Curtis: headings unclear, spacing off). chrome.php moved Testimonials and
   Blog under Explore and gave the address li `rh-foot__addr`. The h2 inherited
   ruesch-home's Raleway 200 and rendered at 13px. */
.rh-foot .rh-foot__h{font-family:var(--rh-body)!important;font-weight:600!important;font-size:.92rem!important;letter-spacing:.2em;color:#fff!important;margin-bottom:1.7rem}
.rh-foot__grid{grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));align-items:start}
.rh-foot li.rh-foot__addr{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;line-height:1.9}
@media (max-width:1024px){.rh-foot__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.rh-foot__grid{grid-template-columns:1fr}}

/* Community pages: square the sticky photo plate, capped to the window. */
body.rh-grapple .rh-plate__media,
body.admin-bar.rh-grapple .rh-plate__media{height:auto;aspect-ratio:1/1;min-height:0;max-height:calc(100vh - 232px)}

/* "Search every listing" bands (Buyer's Guide, Farm & Ranch): lighter shading over the parallax photo. */
body.rh-grapple .rh-searchcta .wp-block-cover__image-background{opacity:1}
body.rh-grapple .rh-searchcta::after{background:linear-gradient(180deg,rgba(10,9,9,.42),rgba(10,9,9,.58))}

/* Testimonials (page 406's markup: blockquote + cite). Astra's blockquote frame squeezed each review. */
body.page-testimonials.rh-grapple .rh-reviews{columns:3 300px;column-gap:clamp(1.4rem,2.4vw,2.4rem)}
body.page-testimonials.rh-grapple .rh-reviews > .rh-review{
  break-inside:avoid;-webkit-column-break-inside:avoid;margin:0 0 clamp(1.4rem,2.4vw,2.4rem);
  padding:clamp(1.8rem,2.6vw,2.4rem);background:var(--bone);border-top:2px solid var(--brass);
}
body.page-testimonials.rh-grapple .rh-review > *{margin-block:0}
body.page-testimonials.rh-grapple p.rh-review__stars{color:var(--brass);font-size:.86rem;letter-spacing:.22em;line-height:1;margin-bottom:1.15rem}
body.rh-grapple .rh-review .rh-review__quote{margin:0;padding:0;border:0;background:none;font-style:normal;quotes:none}
body.rh-grapple .rh-review .rh-review__quote p{font-family:var(--font-body);font-size:.95rem;line-height:1.75;color:var(--text);font-style:normal;max-width:none;margin:0 0 1.2rem}
body.rh-grapple .rh-review .rh-review__quote cite{display:block;margin-top:1.3rem;font-style:normal;font-family:var(--font-body);font-size:.7rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--text)}
body.page-testimonials.rh-grapple .rh-reviews__foot{margin-top:clamp(1.6rem,3vw,2.8rem)}
body.page-testimonials.rh-grapple p.rh-reviews__note{color:var(--text-muted);margin-bottom:1.6rem}
body.page-testimonials.rh-grapple .rh-reviews__foot .rh-btn .wp-block-button__link{white-space:normal;text-align:center}
@media (max-width:480px){body.page-testimonials.rh-grapple .rh-reviews__foot .rh-btn .wp-block-button__link{padding-inline:1.4rem;letter-spacing:.16em}}

/* Headings break where a person would (universal-conventions 8.11, 2026-10-29). Balance evens a
   heading's lines so none ends on one word alone; headings.php joins the pairs. In chrome.css
   because it is the one stylesheet every page loads, blog posts included. */
h1,h2,h3,h4{text-wrap:balance}

/* Buyer's Guide (Rachael, BugHurd task 6, 2026-10-29).
   1. No black line between the steps: inside the black steps band the "Ready to look" cover inherited WordPress's
      24px block gap, a strip of the band's own black. Any gap between full-bleed rows is a seam, so none is allowed.
   2. Less space between the "All Communities" button and the "Selling too?" block: the button's box carried 158px
      of padding below it and the next band adds its own 158px above (317px in all). */
body.rh-grapple .rh-ways > *{margin-block-start:0}
body.page-buyers-guide.rh-grapple .rh-towns__foot{padding-bottom:0}

/* About, Credentials (Curtis, 2026-10-29: "make these a bit more prominent"): the three facts read as a list of
   statements, not a muted footnote. Larger, in ink, the lead words in weight, a hairline rule between rows like the
   Contact list. Scoped to .rh-creds so the other .rh-hv__list lists keep their look. */
.rh-grapple .rh-hv__list.rh-creds{list-style:none;margin:0;padding:0}
.rh-grapple .rh-hv__list.rh-creds li{
  position:relative;margin:0;padding:clamp(1.1rem,1.8vw,1.5rem) 0 clamp(1.1rem,1.8vw,1.5rem) 2.6rem;
  border-top:1px solid var(--rh-line);color:var(--rh-ink);
  font-size:clamp(1.08rem,1.5vw,1.3rem);font-weight:400;line-height:1.5;text-wrap:balance;
}
.rh-grapple .rh-hv__list.rh-creds li:last-child{border-bottom:1px solid var(--rh-line)}
.rh-grapple .rh-hv__list.rh-creds li::before{top:calc(clamp(1.1rem,1.8vw,1.5rem) + .78em);width:22px;height:2px;background:var(--rh-brass)}
.rh-grapple .rh-hv__list.rh-creds strong{font-weight:600}
