/* ====================================================================
   rt-header — unified two-state site header for realatrends.com
   Tokens from design_handoff_refined_stacked_header (Option 07).
   ==================================================================== */
:root{
  --rt-navy:#0e2c4a; --rt-gold:#2F5D62; --rt-gold-soft:#8FB5B1;
  --rt-cream:#f7f2e8; --rt-paper:#fff;
  --rt-accent:#2F5D62; --rt-ink:#1A1A1A; --rt-ivory:#F7F4EF;
  --rt-f-logo:"Cinzel",serif; --rt-f-sans:"Hanken Grotesk",system-ui,sans-serif;
  --rt-f-serif:"Marcellus",Georgia,serif;
}
/* Lock page scroll while the takeover menu is open. */
html.rt-drawer-lock, html.rt-drawer-lock body{ overflow:hidden; }

/* The header is position:fixed — the site sets overflow-x:hidden on html/body,
   which breaks position:sticky. Fixed keeps it pinned in both states; it is out
   of normal flow, so interior pages add a top spacer (see below). */
.rt-hdr{
  position:fixed; top:0; left:0; right:0; z-index:1000; width:100%;
  transition:background .3s ease, box-shadow .3s ease, padding .3s ease, height .3s ease;
}
.rt-hdr a{text-decoration:none;}
.rt-hdr .rt-hdr__trans,
.rt-hdr .rt-hdr__solid{transition:opacity .25s ease;}

/* circular hamburger button (shared) */
.rt-hdr__circle{
  width:40px; height:40px; border-radius:50%; flex-shrink:0; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(255,255,255,.55); background:rgba(255,255,255,.10);
}
.rt-hdr__burger{display:flex; flex-direction:column; justify-content:space-between; width:18px; height:13px;}
.rt-hdr__burger span{display:block; height:1.6px; border-radius:2px; background:#fff;}
.rt-hdr__burger span:nth-child(2){width:74%;}

/* phone icon vertical alignment */
.rt-hdr__phone, .rt-hdr__phone-pill{display:flex; align-items:center; gap:7px;}

/* ---------- State B: solid navy bar ---------- */
.rt-hdr__solid{
  display:flex; align-items:center; height:58px; padding:0 18px;
  background:var(--rt-navy);
  border-bottom:1px solid rgba(47,93,98,.35);
  box-shadow:0 6px 24px rgba(8,24,40,.12);
}
.rt-hdr__wm{
  font-family:var(--rt-f-logo); font-weight:600; font-size:17px;
  letter-spacing:.05em; color:var(--rt-cream);
}
.rt-hdr__right{margin-left:auto; display:flex; align-items:center; gap:14px;}
.rt-hdr__nav{display:none;} /* desktop only — see media query */
.rt-hdr__phone-pill{display:none;} /* desktop only */
.rt-hdr__solid .rt-hdr__circle{border-color:rgba(247,242,232,.5);}
.rt-hdr__solid .rt-hdr__burger span{background:var(--rt-cream);}

/* In the solid state the transparent lockup is removed entirely. */
.rt-hdr.is-solid .rt-hdr__trans{display:none;}
/* In the transparent state the solid bar is hidden (next task positions it). */
.rt-hdr:not(.is-solid) .rt-hdr__solid{display:none;}

/* ============================================================
   Full-screen takeover menu (.rt-drawer)
   Split layout: coastline imagery + large serif nav. Own classes/markup/JS —
   no theme menu handlers involved. Toggled via `.rt-drawer--open`.
   ============================================================ */
.rt-drawer{
  position:fixed; inset:0; z-index:2000; display:flex;
  opacity:0; visibility:hidden;
  transition:opacity .45s ease, visibility .45s ease;
}
.rt-drawer.rt-drawer--open{ opacity:1; visibility:visible; }

/* Left: coastline imagery with dark overlay + brand lockup. */
.rt-drawer__media{
  flex:0 0 42%; position:relative; overflow:hidden;
  background:var(--rt-navy) url("https://www.realatrends.com/wp-content/uploads/2019/02/Laguna-Beach-Real-Estate-3.webp") center/cover no-repeat;
  transform:scale(1.06); transition:transform .6s ease;
}
.rt-drawer.rt-drawer--open .rt-drawer__media{ transform:scale(1); }
.rt-drawer__media-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(6,20,36,.45) 0%, rgba(6,20,36,.55) 55%, rgba(6,20,36,.82) 100%);
}
.rt-drawer__media-brand{ position:absolute; left:56px; bottom:52px; right:40px; }
.rt-drawer__media-wordmark{
  display:block; font-family:var(--rt-f-logo); font-weight:600; font-size:30px;
  letter-spacing:.1em; color:#fff;
}
.rt-drawer__media-rule{ display:block; width:46px; height:1px; background:var(--rt-gold); margin:16px 0 14px; }
.rt-drawer__media-tag{
  font-family:var(--rt-f-sans); font-weight:500; font-size:11px; letter-spacing:.26em;
  text-transform:uppercase; color:var(--rt-gold-soft);
}

/* Right: navy nav panel. */
.rt-drawer__panel{
  flex:1; min-width:0; background:var(--rt-navy);
  display:flex; flex-direction:column; padding:34px 64px 40px; overflow-y:auto;
}
.rt-drawer__top{ display:flex; align-items:center; justify-content:space-between; }
.rt-drawer__brand{
  font-family:var(--rt-f-logo); font-weight:600; font-size:18px; letter-spacing:.06em;
  color:var(--rt-cream); text-decoration:none;
}
.rt-drawer__close{
  display:inline-flex; align-items:center; gap:9px; background:none; border:0; cursor:pointer;
  color:var(--rt-cream); font-family:var(--rt-f-sans); font-weight:500; font-size:12px;
  letter-spacing:.2em; text-transform:uppercase; padding:6px; transition:color .2s ease;
}
.rt-drawer__close:hover{ color:var(--rt-gold-soft); }

/* Nav — large serif, vertically centred. */
.rt-drawer__nav{ margin:auto 0; padding:28px 0; }
.rt-drawer__menu, .rt-drawer__menu ul{ list-style:none; margin:0; padding:0; }
.rt-drawer__menu > li{ position:relative; }
/* Parent rows are accordion toggles — make the whole row read as clickable. */
.rt-drawer__menu .menu-item-has-children{ cursor:pointer; }
.rt-drawer__menu > li + li{ border-top:1px solid rgba(247,242,232,.08); }
.rt-drawer__menu > li > a{
  display:inline-block; font-family:var(--rt-f-serif); font-weight:400; font-size:34px;
  line-height:1.45; letter-spacing:.005em; color:var(--rt-cream); text-decoration:none;
  transition:color .22s ease, padding-left .22s ease;
}
.rt-drawer__menu > li > a:hover{ color:var(--rt-gold-soft); padding-left:10px; }
/* Staggered entrance for the top-level items. */
.rt-drawer__menu > li{ opacity:0; transform:translateY(16px); transition:opacity .5s ease, transform .5s ease; }
.rt-drawer.rt-drawer--open .rt-drawer__menu > li{ opacity:1; transform:none; }
.rt-drawer.rt-drawer--open .rt-drawer__menu > li:nth-child(1){ transition-delay:.10s; }
.rt-drawer.rt-drawer--open .rt-drawer__menu > li:nth-child(2){ transition-delay:.15s; }
.rt-drawer.rt-drawer--open .rt-drawer__menu > li:nth-child(3){ transition-delay:.20s; }
.rt-drawer.rt-drawer--open .rt-drawer__menu > li:nth-child(4){ transition-delay:.25s; }
.rt-drawer.rt-drawer--open .rt-drawer__menu > li:nth-child(5){ transition-delay:.30s; }
.rt-drawer.rt-drawer--open .rt-drawer__menu > li:nth-child(6){ transition-delay:.35s; }
.rt-drawer.rt-drawer--open .rt-drawer__menu > li:nth-child(7){ transition-delay:.40s; }
.rt-drawer.rt-drawer--open .rt-drawer__menu > li:nth-child(n+8){ transition-delay:.45s; }

/* Submenu accordion. Base = collapsed + fully hidden; open state forces it
   visible. The visibility + !important are required: the parent RealHomes theme
   sets visibility:hidden on .sub-menu (and wins under WP Rocket's optimised CSS
   on production), which otherwise left the expanded submenu invisible — so the
   Properties/Resources arrows appeared to "do nothing". padding-bottom only on
   the open state so the collapsed menu has zero height (no peeking text). */
.rt-drawer__menu .sub-menu{ max-height:0; overflow:hidden; visibility:hidden; padding-bottom:0; transition:max-height .35s ease, visibility 0s linear .35s; }
.rt-drawer__menu .rt-drawer__li--open > .sub-menu{ max-height:1500px !important; visibility:visible !important; padding-bottom:10px; transition:max-height .35s ease, visibility 0s linear 0s; }
.rt-drawer__menu .sub-menu a{
  display:block; font-family:var(--rt-f-sans); font-weight:400; font-size:14.5px;
  letter-spacing:.04em; color:var(--rt-cream); opacity:.78; text-decoration:none;
  padding:7px 0 7px 18px; transition:opacity .2s ease, color .2s ease;
}
.rt-drawer__menu .sub-menu a:hover{ opacity:1; color:var(--rt-gold-soft); }

/* Caret toggle (injected by rt-header.js for parent items). */
.rt-drawer__caret{
  position:absolute; top:6px; right:0; width:48px; height:48px; border:0; cursor:pointer;
  background:transparent; color:var(--rt-gold-soft); font-size:16px;
  display:flex; align-items:center; justify-content:center; transition:transform .3s ease;
}
.rt-drawer__menu .rt-drawer__li--open > .rt-drawer__caret{ transform:rotate(180deg); }

/* Nested (2nd/3rd-level) submenu parents (e.g. Properties > Featured Cities >
   Dana Point). Each nested <li> needs its own positioning context so the
   injected caret anchors to ITS row, not the top-level item; size the caret to
   the smaller sub-rows; indent each level so the hierarchy reads clearly. */
.rt-drawer__menu .sub-menu li{ position:relative; }
.rt-drawer__menu .sub-menu .rt-drawer__caret{ top:0; height:33px; width:40px; font-size:12px; }
.rt-drawer__menu .sub-menu .sub-menu a{ padding-left:34px; }
.rt-drawer__menu .sub-menu .sub-menu .sub-menu a{ padding-left:50px; }

/* Footer — phone + address. */
.rt-drawer__footer{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; padding-top:22px; border-top:1px solid rgba(247,242,232,.10); }
.rt-drawer__phone{ display:inline-flex; align-items:center; gap:9px; color:#fff; text-decoration:none; font-family:var(--rt-f-sans); font-weight:500; font-size:16px; letter-spacing:.06em; }
.rt-drawer__phone:hover{ color:var(--rt-gold-soft); }
.rt-drawer__addr{ font-family:var(--rt-f-sans); font-size:12.5px; letter-spacing:.04em; color:var(--rt-gold-soft); opacity:.85; }

/* Mobile: drop the image panel; nav fills the screen. */
@media (max-width:1023px){
  .rt-drawer__media{ display:none; }
  .rt-drawer__panel{ padding:22px 26px 30px; }
  .rt-drawer__nav{ padding:14px 0; }
  .rt-drawer__menu > li > a{ font-size:27px; line-height:1.5; }
  .rt-drawer__caret{ height:46px; top:4px; }
}

/* Respect reduced motion. */
@media (prefers-reduced-motion:reduce){
  .rt-drawer, .rt-drawer__media,
  .rt-drawer .rt-drawer__menu > li{ transition:none !important; transform:none !important; }
}

/* ---------- Desktop (>=1024px) solid bar ---------- */
@media (min-width:1024px){
  .rt-hdr__solid{height:68px; padding:0 40px;}
  .rt-hdr__wm{font-size:20px;}
  .rt-hdr__right{gap:28px;}
  .rt-hdr__nav{
    display:flex; align-items:center; gap:30px;
  }
  .rt-hdr__nav a{
    font-family:var(--rt-f-sans); font-weight:400; font-size:13px;
    letter-spacing:.16em; text-transform:uppercase; color:var(--rt-cream);
    opacity:.86; padding-bottom:4px; border-bottom:1.5px solid transparent;
  }
  .rt-hdr__nav a:hover{opacity:1; border-bottom-color:rgba(47,93,98,.55);}
  .rt-hdr__nav a.active{opacity:1; border-bottom-color:var(--rt-gold);}
  .rt-hdr__phone-pill{
    display:flex; height:38px; padding:0 16px; border-radius:999px; gap:8px;
    border:1px solid var(--rt-gold); background:rgba(47,93,98,.16);
  }
  .rt-hdr__phone-pill .rt-hdr__phone-num{
    font-family:var(--rt-f-sans); font-weight:500; font-size:13px;
    letter-spacing:.06em; color:#fff;
  }
}

/* ---------- State A: transparent stacked lockup ---------- */
.rt-hdr__trans{
  position:relative; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:8px; height:118px; padding:14px 18px 12px;
}
.rt-hdr__trans .rt-hdr__menu-btn{position:absolute; top:14px; right:18px;}
.rt-hdr__lockup{text-align:center; display:block;}
.rt-hdr__wordmark{
  display:block; font-family:var(--rt-f-logo); font-weight:600; font-size:22px;
  line-height:1; letter-spacing:.06em; color:#fff;
}
.rt-hdr__tagline{
  display:flex; align-items:center; justify-content:center; gap:7px; margin-top:6px;
}
.rt-hdr__rule{height:1px; width:15px; background:var(--rt-gold-soft); opacity:.6;}
.rt-hdr__tagline-txt{
  font-family:var(--rt-f-sans); font-weight:500; font-size:9px;
  letter-spacing:.28em; text-transform:uppercase; color:var(--rt-gold-soft);
}
.rt-hdr__trans .rt-hdr__phone-num{
  font-family:var(--rt-f-sans); font-weight:500; font-size:12px;
  letter-spacing:.1em; color:#fff;
}

/* Transparent state: no band of its own — the homepage hero now carries a full
   elegant overlay (see below), so the header sits cleanly over it. A light
   text-shadow keeps the lockup crisp. Solid bar fades in when .is-solid is added. */
.rt-hdr:not(.is-solid){ background:transparent; box-shadow:none; }
.rt-hdr.is-solid{ background:var(--rt-navy); }

.rt-hdr__wordmark,
.rt-hdr__tagline-txt,
.rt-hdr__trans .rt-hdr__phone-num{
  text-shadow:0 1px 10px rgba(6,20,36,.55), 0 1px 3px rgba(6,20,36,.6);
}
.rt-hdr__trans .rt-hdr__phone-ico{filter:drop-shadow(0 1px 3px rgba(6,20,36,.6));}

/* ---------- Full-hero overlay (homepage) ----------
   An elegant dark gradient across the ENTIRE hero (not just behind the lockup),
   so the wordmark, headline and CTAs all read with luxury contrast — a touch
   stronger at the top (header zone) and bottom (vignette). Overrides Elementor's
   default light overlay on the first top-section. */
body.home .elementor-element-6754bd1f > .elementor-background-overlay{
  background:linear-gradient(180deg, rgba(6,20,36,.66) 0%, rgba(6,20,36,.44) 45%, rgba(6,20,36,.58) 100%) !important;
  opacity:1 !important;
}

/* The fixed header reserves no flow space. On the homepage the hero sits under
   the transparent header by design (no offset). On every other page, offset the
   content by the solid bar height so nothing hides beneath the fixed bar. */
body:not(.home){ padding-top:58px; }

/* ---------- Desktop (>=1024px) transparent state + hero pull-up ---------- */
@media (min-width:1024px){
  .rt-hdr__trans{height:124px; padding:20px 40px 16px;}
  .rt-hdr__trans .rt-hdr__menu-btn{top:20px; right:40px;}
  .rt-hdr__wordmark{font-size:30px;}
  .rt-hdr__tagline{margin-top:8px;}
  .rt-hdr__rule{width:21px;}
  .rt-hdr__tagline-txt{font-size:12px;}
  .rt-hdr__trans .rt-hdr__phone-num{font-size:14px;}
  body:not(.home){ padding-top:68px; }
}

/* ---------- Reduced motion: snap, no transitions ---------- */
@media (prefers-reduced-motion:reduce){
  .rt-hdr,
  .rt-hdr .rt-hdr__trans,
  .rt-hdr .rt-hdr__solid{transition:none !important;}
}

/* ============================================================
   Enterprise footer (.rt-footer) + Laguna weather widget
   ============================================================ */
.rt-footer{ background:var(--rt-navy-deep,#09203a); color:var(--rt-cream); }
.rt-footer__inner{
  max-width:1240px; margin:0 auto; padding:64px 40px 40px;
  display:grid; grid-template-columns:1.7fr 1fr 1fr 1fr 1.1fr; gap:48px;
}
.rt-footer__wordmark{ font-family:var(--rt-f-logo); font-weight:600; font-size:26px; letter-spacing:.1em; color:#fff; text-decoration:none; }
.rt-footer__rule{ display:block; width:44px; height:1px; background:var(--rt-gold); margin:14px 0 12px; }
.rt-footer__tag{ font-family:var(--rt-f-sans); font-weight:500; font-size:10.5px; letter-spacing:.26em; text-transform:uppercase; color:var(--rt-gold-soft); margin:0 0 16px; }
.rt-footer__blurb{ font-family:var(--rt-f-sans); font-weight:300; font-size:14px; line-height:1.7; color:rgba(247,242,232,.8); margin:0 0 20px; max-width:34ch; }
.rt-footer__h{ font-family:var(--rt-f-sans); font-weight:500; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--rt-gold-soft); margin:0 0 16px; }
.rt-footer__col{ display:flex; flex-direction:column; }
.rt-footer__col a{ font-family:var(--rt-f-sans); font-weight:300; font-size:14.5px; color:rgba(247,242,232,.82); text-decoration:none; padding:6px 0; transition:color .2s ease, padding-left .2s ease; }
.rt-footer__col a:hover{ color:var(--rt-gold-soft); padding-left:5px; }
.rt-footer__addr{ font-style:normal; font-family:var(--rt-f-sans); font-weight:300; font-size:14.5px; line-height:1.7; color:rgba(247,242,232,.82); margin-bottom:14px; }
.rt-footer__phone{ display:inline-flex; align-items:center; gap:8px; color:#fff; text-decoration:none; font-family:var(--rt-f-sans); font-weight:500; font-size:16px; letter-spacing:.05em; }
.rt-footer__phone:hover{ color:var(--rt-gold-soft); }
.rt-footer__hours{ font-family:var(--rt-f-sans); font-weight:300; font-size:13px; color:var(--rt-gold-soft); opacity:.85; margin:12px 0 0; }

/* Laguna weather widget */
.rt-weather{
  display:inline-flex; align-items:center; gap:12px; padding:11px 16px; border-radius:6px;
  background:rgba(47,93,98,.10); border:1px solid rgba(47,93,98,.28);
}
.rt-weather__loc{ font-family:var(--rt-f-sans); font-weight:500; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--rt-gold-soft); }
.rt-weather__body{ display:inline-flex; align-items:center; gap:10px; font-family:var(--rt-f-sans); color:var(--rt-cream); }
.rt-weather__temp{ font-size:20px; font-weight:500; letter-spacing:.02em; }
.rt-weather__ico{ font-size:17px; line-height:1; }
.rt-weather__meta{ font-size:12px; letter-spacing:.04em; color:rgba(247,242,232,.7); }
.rt-weather__dim{ font-size:12.5px; letter-spacing:.04em; color:rgba(247,242,232,.55); }

.rt-footer__bottom{
  border-top:1px solid rgba(247,242,232,.1); padding:20px 40px;
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px;
  max-width:1240px; margin:0 auto;
}
.rt-footer__legal, .rt-footer__since{ font-family:var(--rt-f-sans); font-weight:300; font-size:12px; letter-spacing:.04em; color:rgba(247,242,232,.6); }
.rt-footer__since{ color:var(--rt-gold-soft); opacity:.8; }

@media (max-width:1023px){
  .rt-footer__inner{ grid-template-columns:1fr 1fr; gap:36px 28px; padding:48px 26px 32px; }
  .rt-footer__brandcol{ grid-column:1 / -1; }
  .rt-footer__bottom{ flex-direction:column; text-align:center; padding:18px 26px; }
}
@media (max-width:560px){
  .rt-footer__inner{ grid-template-columns:1fr; }
}

/* ============================================================
   "Let's talk" sticky CTA (.rt-talk) — low-pressure, dismissible
   ============================================================ */
.rt-talk{
  position:fixed; right:22px; bottom:22px; z-index:1500;
  display:flex; align-items:stretch; gap:0; overflow:hidden;
  background:var(--rt-navy); border:1px solid rgba(47,93,98,.55); border-radius:999px;
  box-shadow:0 10px 30px rgba(8,24,40,.35);
  transform:translateY(160%); opacity:0; transition:transform .4s ease, opacity .4s ease;
}
.rt-talk.is-in{ transform:none; opacity:1; }
/* While hidden the pill is opacity:0 but still in the DOM — it must NOT intercept
   clicks (it carries data-rt-modal-open and can sit over the header hamburger),
   so the menu button opened the contact modal. Only catch clicks once revealed. */
.rt-talk:not(.is-in){ pointer-events:none; }
.rt-talk__main{
  display:flex; align-items:center; gap:9px; padding:12px 16px 12px 18px;
  color:var(--rt-cream); text-decoration:none; font-family:var(--rt-f-sans);
  font-weight:400; font-size:14px; letter-spacing:.02em; white-space:nowrap;
}
.rt-talk__main strong{ font-weight:600; color:var(--rt-gold-soft); }
.rt-talk__ico{ color:var(--rt-gold-soft); flex-shrink:0; }
.rt-talk__call{
  display:none; align-items:center; justify-content:center; width:46px; flex-shrink:0;
  color:#fff; background:var(--rt-gold); text-decoration:none;
}
.rt-talk__call:hover{ background:var(--rt-gold-soft); color:var(--rt-navy); }
.rt-talk__x{
  align-self:flex-start; background:none; border:0; color:rgba(247,242,232,.6);
  font-size:18px; line-height:1; cursor:pointer; padding:6px 10px 0 4px;
}
.rt-talk__x:hover{ color:var(--rt-cream); }

/* Mobile: keep it compact & unobtrusive — show the quick-call button, trim copy. */
@media (max-width:600px){
  .rt-talk{ right:12px; bottom:12px; }
  .rt-talk__main{ padding:11px 12px; font-size:13px; }
  .rt-talk__pre{ display:none; } /* trim to just "Let's talk" on mobile */
  .rt-talk__call{ display:flex; }
}
@media (prefers-reduced-motion:reduce){ .rt-talk{ transition:none !important; } }

/* ============================================================
   Long-form content readability (resource / article pages)
   Constrains the reading measure for the theme's single-page PROSE only —
   targets direct text children of .entry-content, so Elementor-built layouts
   (valuation tool, marketing, company pages) keep their full-width designs.
   ============================================================ */
.rh_blog__single .entry-content > p,
.rh_blog__single .entry-content > h2,
.rh_blog__single .entry-content > h3,
.rh_blog__single .entry-content > h4,
.rh_blog__single .entry-content > ul,
.rh_blog__single .entry-content > ol,
.rh_blog__single .entry-content > blockquote,
.rh_blog__single .entry-content > figure,
.rh_blog__single .entry-content > .wp-block-image{
  max-width:800px; margin-left:auto; margin-right:auto;
}
.rh_blog__single .entry-content > h2{ margin-top:1.7em; margin-bottom:.5em; }
.rh_blog__single .entry-content > h3{ margin-top:1.35em; margin-bottom:.4em; }
.rh_blog__single .entry-content > p{ line-height:1.8; }

/* ============================================================
   About Us v2 (.rt-about) — standalone redesign (page-about-us-v2.php)
   ============================================================ */
.rt-about{ font-family:var(--rt-f-sans); color:var(--rt-ink,#16202e); background:var(--rt-ivory); }
.rt-about h1,.rt-about h2,.rt-about h3{ font-family:var(--rt-f-serif); font-weight:400; color:var(--rt-navy); }

/* Hero */
.rt-about__hero{ position:relative; background-size:cover; background-position:center; padding:120px 24px 110px; text-align:center; }
.rt-about__hero-overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(6,20,36,.62), rgba(6,20,36,.74)); }
.rt-about__hero-inner{ position:relative; max-width:880px; margin:0 auto; }
.rt-about__eyebrow{ display:inline-block; font-size:12px; font-weight:500; letter-spacing:.28em; text-transform:uppercase; color:var(--rt-gold-soft); margin-bottom:18px; }
.rt-about__hero .rt-about__title{ color:#fff; font-size:clamp(34px,5vw,58px); line-height:1.08; margin:0 0 18px; }
.rt-about__lede{ color:rgba(247,242,232,.9); font-weight:300; font-size:clamp(16px,1.6vw,19px); line-height:1.7; max-width:620px; margin:0 auto; }

/* Stats */
.rt-about__stats{ display:flex; flex-wrap:wrap; justify-content:center; gap:0; background:var(--rt-navy); }
.rt-stat{ flex:1 1 220px; text-align:center; padding:42px 24px; border-left:1px solid rgba(247,242,232,.08); }
.rt-stat:first-child{ border-left:0; }
.rt-stat__num{ display:block; font-family:var(--rt-f-serif); font-weight:400; font-size:clamp(40px,5vw,60px); line-height:1; color:var(--rt-gold-soft); }
.rt-stat__label{ display:block; margin-top:12px; font-size:12.5px; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:rgba(247,242,232,.72); }

/* Story */
.rt-about__story{ max-width:1140px; margin:0 auto; padding:84px 32px; display:grid; grid-template-columns:0.85fr 1.15fr; gap:60px; align-items:center; }
.rt-about__media img{ width:100%; height:auto; border-radius:4px; box-shadow:0 24px 60px rgba(8,24,40,.18); display:block; }
.rt-about__media-cap{ margin-top:18px; text-align:center; }
.rt-about__media-cap strong{ display:block; font-family:var(--rt-f-serif); font-size:22px; color:var(--rt-navy); }
.rt-about__media-cap span{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:#8a8f96; }

.rt-about__kicker{ display:inline-block; font-size:12px; font-weight:500; letter-spacing:.26em; text-transform:uppercase; color:var(--rt-gold); margin-bottom:10px; }
.rt-about__prose h2{ font-size:clamp(28px,3.4vw,40px); margin:0 0 22px; }
.rt-about__prose p{ font-weight:300; font-size:16.5px; line-height:1.85; color:#3a4250; margin:0 0 18px; }

/* Buttons */
.rt-btn{ display:inline-block; font-family:var(--rt-f-sans); font-weight:500; font-size:12.5px; letter-spacing:.18em; text-transform:uppercase; padding:14px 26px; border-radius:2px; text-decoration:none; transition:all .22s ease; }
.rt-btn--solid{ background:var(--rt-navy); color:#fff; }
.rt-btn--solid:hover{ background:#143a5c; color:#fff; }
.rt-btn--ghost{ border:1px solid var(--rt-navy); color:var(--rt-navy); }
.rt-btn--ghost:hover{ background:var(--rt-navy); color:#fff; }
.rt-btn--gold{ background:var(--rt-gold); color:#fff; }
.rt-btn--gold:hover{ background:#3D7A80; color:#fff; }
.rt-btn--ghost-light{ border:1px solid rgba(255,255,255,.65); color:#fff; }
.rt-btn--ghost-light:hover{ background:rgba(247,242,232,.12); color:#fff; }
.rt-about__actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:30px; }
.rt-about__actions--center{ justify-content:center; }

/* Bio */
.rt-about__bio{ background:#f7f5f0; }
.rt-about__bio-inner{ max-width:820px; margin:0 auto; padding:78px 32px; text-align:center; }
.rt-about__bio h2{ font-size:clamp(28px,3.4vw,40px); margin:0 0 22px; }
.rt-about__bio p{ font-weight:300; font-size:16.5px; line-height:1.85; color:#3a4250; margin:0 auto 18px; max-width:680px; }

/* Values */
.rt-about__values{ max-width:1140px; margin:0 auto; padding:84px 32px; display:grid; grid-template-columns:repeat(3,1fr); gap:48px; }
.rt-value__rule{ display:block; width:40px; height:2px; background:var(--rt-gold); margin-bottom:20px; }
.rt-value h3{ font-size:23px; margin:0 0 12px; }
.rt-value p{ font-weight:300; font-size:15.5px; line-height:1.75; color:#3a4250; margin:0; }

/* CTA */
.rt-about__cta{ position:relative; background-size:cover; background-position:center; padding:96px 24px; text-align:center; }
.rt-about__cta-overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(6,20,36,.72), rgba(6,20,36,.8)); }
.rt-about__cta-inner{ position:relative; max-width:720px; margin:0 auto; }
.rt-about__cta h2{ color:#fff; font-size:clamp(28px,3.6vw,42px); margin:0 0 14px; }
.rt-about__cta p{ color:rgba(247,242,232,.88); font-weight:300; font-size:17px; margin:0 0 26px; }

@media (max-width:900px){
  .rt-about__story{ grid-template-columns:1fr; gap:36px; padding:60px 26px; }
  .rt-about__values{ grid-template-columns:1fr; gap:36px; padding:60px 26px; }
  .rt-stat{ flex-basis:50%; border-left:0; }
}

/* ============================================================
   "Communities We Serve" — homepage city photo grid (.rt-cities)
   ============================================================ */
.rt-cities{ background:#f7f5f0; padding:84px 32px; }
.rt-cities__head{ max-width:760px; margin:0 auto 46px; text-align:center; }
.rt-cities__kicker{ display:inline-block; font-family:var(--rt-f-sans); font-size:12px; font-weight:500; letter-spacing:.26em; text-transform:uppercase; color:var(--rt-gold); margin-bottom:12px; }
.rt-cities__title{ font-family:var(--rt-f-serif); font-weight:400; color:var(--rt-navy); font-size:clamp(28px,3.6vw,42px); line-height:1.1; margin:0 0 14px; }
.rt-cities__sub{ font-family:var(--rt-f-sans); font-weight:300; font-size:16px; line-height:1.7; color:#5a626e; margin:0; }
.rt-cities__grid{
  max-width:1240px; margin:0 auto;
  display:grid; grid-template-columns:repeat(5,1fr); gap:18px;
}
.rt-city{
  position:relative; display:block; height:230px; overflow:hidden; border-radius:4px;
  background-size:cover; background-position:center; background-repeat:no-repeat; text-decoration:none;
  box-shadow:0 10px 30px rgba(8,24,40,.14); transition:transform .5s ease, box-shadow .35s ease;
}
/* The image lives on a pseudo that inherits the card's inline background-image,
   so hover zoom is a clean transform:scale that stays `cover` (never tiles).
   The old approach set background-size:112% on hover, which sized by width with
   auto height — for these ~square cards the image got SHORTER than the box and
   the default background-repeat painted multiple stacked copies. overflow:hidden
   on .rt-city clips the scaled image to the rounded card. */
.rt-city::before{
  content:""; position:absolute; inset:0; z-index:0;
  background-image:inherit; background-size:cover; background-position:center; background-repeat:no-repeat;
  transition:transform .6s ease;
}
.rt-city__overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(6,20,36,.15) 0%, rgba(6,20,36,.30) 45%, rgba(6,20,36,.82) 100%);
  transition:background .35s ease;
}
.rt-city__body{ position:absolute; left:0; right:0; bottom:0; padding:20px 20px 18px; z-index:1; }
.rt-city__name{ display:block; font-family:var(--rt-f-serif); font-weight:400; font-size:22px; line-height:1.15; color:#fff; text-shadow:0 1px 8px rgba(6,20,36,.5); }
.rt-city__cta{
  display:inline-block; margin-top:6px; font-family:var(--rt-f-sans); font-weight:500; font-size:11px;
  letter-spacing:.18em; text-transform:uppercase; color:var(--rt-gold-soft);
  opacity:0; transform:translateY(6px); transition:opacity .3s ease, transform .3s ease;
}
.rt-city:hover{ transform:translateY(-4px); box-shadow:0 18px 44px rgba(8,24,40,.26); }
.rt-city:hover::before{ transform:scale(1.08); }
.rt-city:hover .rt-city__overlay{ background:linear-gradient(180deg, rgba(6,20,36,.20) 0%, rgba(6,20,36,.40) 45%, rgba(8,24,40,.88) 100%); }
.rt-city:hover .rt-city__cta{ opacity:1; transform:none; }

@media (max-width:1100px){ .rt-cities__grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:760px){ .rt-cities{ padding:58px 22px; } .rt-cities__grid{ grid-template-columns:repeat(2,1fr); gap:14px; } .rt-city{ height:180px; } .rt-city__name{ font-size:18px; } .rt-city__cta{ opacity:1; transform:none; } }
@media (max-width:420px){ .rt-cities__grid{ grid-template-columns:1fr; } }

/* ============================================================
   Brand-color the ShowcaseIDX listing badges (blue/pink -> navy/gold)
   so listings read consistently with the navy/gold scheme.
   ============================================================ */
/* The SIDX account's generated custom.css forces these ribbons blue (bright blue)
   with a 5-class selector + !important, e.g.
   `.sidx-container .sidx-search-results .sidx-thumbnail .sidx-ribbons .sidx-new-listing`.
   To win the cascade we replicate that exact chain and add a leading `body`
   (specificity 0,5,1 > their 0,5,0). New listings + price drops -> navy;
   open houses stay gold. Fallback short selectors cover non-search contexts. */
body .sidx-container .sidx-search-results .sidx-thumbnail .sidx-ribbons .sidx-new-listing,
body .sidx-container .sidx-search-results .sidx-thumbnail .sidx-ribbons .sidx-price-drop,
.sidx-ribbon.sidx-new-listing,
.sidx-ribbon.sidx-price-drop{ background:var(--rt-navy) !important; color:#fff !important; }
body .sidx-container .sidx-search-results .sidx-thumbnail .sidx-ribbons .sidx-open-houses,
.sidx-ribbon.sidx-open-houses{ background:var(--rt-gold) !important; color:#fff !important; }
.sidx-actions{ background:var(--rt-navy) !important; }
body .sidx-container .sidx-search-results .sidx-thumbnail .sidx-ribbons .sidx-price-reduced,
body .sidx-container .sidx-search-results .sidx-thumbnail .sidx-ribbons .sidx-back-on-market,
.sidx-ribbon.sidx-price-reduced,
.sidx-ribbon.sidx-back-on-market{ background:var(--rt-gold-soft) !important; color:var(--rt-navy) !important; }

/* Separate SIDX hotsheet LIST-view listings into distinct cards so the page band
   shows between them (matches the mobile presentation). The result containers are
   transparent + each card is white with margin-bottom:0, so the rows visually fuse
   into one white block; we just add a gap, a hairline border, rounding, and a light
   shadow. Scoped to `.sidx-search-results .…-grid-list-item` (LIST view only) so the
   /homes/ grid search is untouched; `body` + the parent chain + !important beat SIDX's
   cross-origin CDN base CSS (incl. the 5px row divider). No @media / :hover -> RUCSS-safe. */
body .sidx-search-results .sidx-search-result-grid-list-item{
  margin-bottom:16px !important;
  border:1px solid #e7dfd1 !important;
  border-radius:10px !important;
  overflow:hidden !important;
  box-shadow:0 2px 6px rgba(14,44,74,.07) !important;
}
/* NB: do NOT add a :last-child{margin-bottom:0} rule here — SIDX wraps EACH listing in
   its own single-child div, so every card is a :last-child and that would zero every gap.
   A 16px gap below the final card is harmless. */

/* Homepage content text links -> brand accent (was the theme's bright blue).
   Scoped to content/text widgets so nav, buttons, cards and headings are untouched. */
body.home .elementor-widget-text-editor a,
body.home .elementor-widget-theme-post-content a,
body.home .rh_content a{ color:var(--rt-gold) !important; transition:color .2s ease; }
body.home .elementor-widget-text-editor a:hover,
body.home .elementor-widget-theme-post-content a:hover,
body.home .rh_content a:hover{ color:var(--rt-gold-soft) !important; }

/* ============================================================
   Marketing Exposure page (.rt-mkt) — the 5-step Playbook
   ============================================================ */
.rt-mkt__playbook{ max-width:1080px; margin:0 auto; padding:84px 32px; }
.rt-mkt__head{ text-align:center; max-width:680px; margin:0 auto 56px; }
.rt-mkt__head h2{ font-family:var(--rt-f-serif); font-weight:400; color:var(--rt-navy); font-size:clamp(28px,3.6vw,42px); margin:0 0 12px; }
.rt-mkt__sub{ font-family:var(--rt-f-sans); font-weight:300; font-size:17px; color:#5a626e; margin:0; font-style:italic; }
.rt-mkt__steps{ display:flex; flex-direction:column; }
.rt-mkt__step{ display:grid; grid-template-columns:120px 1fr; gap:34px; padding:46px 0; border-top:1px solid rgba(14,44,74,.12); }
.rt-mkt__step:first-child{ border-top:0; }
.rt-mkt__num{ font-family:var(--rt-f-serif); font-weight:400; font-size:84px; line-height:.9; color:var(--rt-gold); opacity:.55; }
.rt-mkt__step-kicker{ display:inline-block; font-family:var(--rt-f-sans); font-weight:500; font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--rt-gold); margin-bottom:10px; }
.rt-mkt__step-body h3{ font-family:var(--rt-f-serif); font-weight:400; color:var(--rt-navy); font-size:clamp(22px,2.4vw,30px); line-height:1.2; margin:0 0 14px; }
.rt-mkt__step-body p{ font-family:var(--rt-f-sans); font-weight:300; font-size:16.5px; line-height:1.8; color:#3a4250; margin:0 0 18px; max-width:62ch; }
.rt-mkt__list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:8px 28px; }
.rt-mkt__list li{ position:relative; padding-left:26px; font-family:var(--rt-f-sans); font-weight:400; font-size:14.5px; line-height:1.5; color:var(--rt-navy); }
.rt-mkt__list li::before{ content:""; position:absolute; left:0; top:7px; width:13px; height:8px; border-left:2px solid var(--rt-gold); border-bottom:2px solid var(--rt-gold); transform:rotate(-45deg); }
@media (max-width:760px){
  .rt-mkt__playbook{ padding:54px 24px; }
  .rt-mkt__step{ grid-template-columns:1fr; gap:8px; padding:34px 0; }
  .rt-mkt__num{ font-size:56px; }
  .rt-mkt__list{ grid-template-columns:1fr; }
}

/* ============================================================
   Contact modal (.rt-modal) — reuses the ShowcaseIDX contact form
   ============================================================ */
html.rt-modal-lock, html.rt-modal-lock body{ overflow:hidden; }
.rt-modal{ position:fixed; inset:0; z-index:3000; display:flex; align-items:center; justify-content:center; padding:24px; opacity:0; visibility:hidden; transition:opacity .3s ease, visibility .3s ease; }
.rt-modal.is-open{ opacity:1; visibility:visible; }
.rt-modal__backdrop{ position:absolute; inset:0; background:rgba(6,20,36,.74); backdrop-filter:blur(2px); }
.rt-modal__dialog{ position:relative; z-index:1; width:min(520px,100%); max-height:90vh; overflow-y:auto; background:#fff; border-radius:6px; padding:40px 38px 34px; box-shadow:0 30px 80px rgba(8,24,40,.45); transform:translateY(14px) scale(.98); transition:transform .32s ease; }
.rt-modal.is-open .rt-modal__dialog{ transform:none; }
.rt-modal__close{ position:absolute; top:14px; right:14px; width:38px; height:38px; display:flex; align-items:center; justify-content:center; border:0; border-radius:50%; background:#f1efe9; color:var(--rt-navy); cursor:pointer; transition:background .2s ease; }
.rt-modal__close:hover{ background:#e6e1d5; }
.rt-modal__head{ margin-bottom:22px; }
.rt-modal__eyebrow{ display:inline-block; font-family:var(--rt-f-sans); font-weight:500; font-size:11px; letter-spacing:.26em; text-transform:uppercase; color:var(--rt-gold); margin-bottom:8px; }
.rt-modal__title{ font-family:var(--rt-f-serif); font-weight:400; color:var(--rt-navy); font-size:30px; line-height:1.1; margin:0 0 8px; }
.rt-modal__sub{ font-family:var(--rt-f-sans); font-weight:300; font-size:14.5px; line-height:1.6; color:#5a626e; margin:0; }
.rt-modal__sub a{ color:var(--rt-navy); border-bottom:1px solid var(--rt-gold); text-decoration:none; }

/* Brand the ShowcaseIDX form inside the modal */
.rt-modal__form .sidx-simple-form{ display:flex; flex-direction:column; gap:12px; }
.rt-modal__form label{ font-family:var(--rt-f-sans); font-size:12px; font-weight:500; letter-spacing:.04em; color:var(--rt-navy); }
.rt-modal__form input[type=text], .rt-modal__form input[type=email], .rt-modal__form input[type=tel], .rt-modal__form textarea, .rt-modal__form select{
  width:100%; font-family:var(--rt-f-sans); font-size:15px; color:var(--rt-ink,#16202e);
  padding:12px 14px; border:1px solid #d8d3c7; border-radius:4px; background:#fff; transition:border-color .2s ease, box-shadow .2s ease;
}
.rt-modal__form input:focus, .rt-modal__form textarea:focus, .rt-modal__form select:focus{ outline:0; border-color:var(--rt-gold); box-shadow:0 0 0 3px rgba(47,93,98,.18); }
.rt-modal__form textarea{ min-height:96px; resize:vertical; }
.rt-modal__form button, .rt-modal__form input[type=submit], .rt-modal__form .sidx-button, .rt-modal__form [class*="submit"]{
  font-family:var(--rt-f-sans); font-weight:500; font-size:13px; letter-spacing:.16em; text-transform:uppercase;
  background:var(--rt-navy) !important; color:var(--rt-cream) !important; border:0 !important; border-radius:3px !important;
  padding:14px 26px !important; cursor:pointer; width:100%; transition:background .2s ease;
}
.rt-modal__form button:hover, .rt-modal__form input[type=submit]:hover{ background:#143a5c !important; }

@media (max-width:560px){
  .rt-modal{ padding:0; }
  .rt-modal__dialog{ width:100%; max-height:100vh; min-height:100vh; border-radius:0; padding:66px 22px 34px; }
  .rt-modal__title{ font-size:26px; }
  /* Close button: fixed to the viewport so it never scrolls away with the form,
     offset below the browser/safe-area chrome, larger tap target + shadow so it's
     always visible and reachable over the white form. */
  .rt-modal__close{
    position:fixed;
    top:calc(env(safe-area-inset-top, 0px) + 12px);
    right:14px;
    width:46px; height:46px;
    box-shadow:0 6px 20px rgba(8,24,40,.32);
    z-index:6;
  }
}
@media (prefers-reduced-motion:reduce){ .rt-modal, .rt-modal__dialog{ transition:none !important; } }

/* Brand the SIDX submit button precisely (its class is .sidx-primary, blue by default). */
.rt-modal__form .sidx-simple-form button.sidx-primary,
.rt-modal__form .sidx-simple-form input.sidx-primary,
.rt-modal__form button.sidx-primary,
.rt-modal__form .sidx-primary{
  background-color:var(--rt-navy) !important; background-image:none !important;
  color:var(--rt-cream) !important; border:0 !important;
}
.rt-modal__form button.sidx-primary:hover,
.rt-modal__form .sidx-primary:hover{ background-color:#143a5c !important; }

/* Brand the SIDX form's inline links (e.g. Privacy Policy) inside the modal. */
.rt-modal__form a{ color:var(--rt-navy) !important; border-bottom:1px solid var(--rt-gold); text-decoration:none; }
.rt-modal__form a:hover{ color:var(--rt-gold) !important; }

/* ============================================================
   Branded homepage (front-page.php) sections
   ============================================================ */
.rt-home{ font-family:var(--rt-f-sans); }
/* Hero (video) */
.rt-home-hero{ position:relative; height:100vh; min-height:600px; overflow:hidden; display:flex; align-items:center; justify-content:center; text-align:center; }
.rt-home-hero__video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.rt-home-hero__overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(6,20,36,.62) 0%, rgba(6,20,36,.42) 45%, rgba(6,20,36,.66) 100%); }
.rt-home-hero__inner{ position:relative; z-index:1; max-width:880px; padding:0 26px; }
.rt-home-hero__inner .rt-about__eyebrow{ color:#A9CFCB; text-shadow:0 1px 10px rgba(6,20,36,.7), 0 1px 3px rgba(6,20,36,.75); }
.rt-home-hero__title{ font-family:var(--rt-f-serif); font-weight:400; color:#fff; font-size:clamp(38px,6vw,72px); line-height:1.04; margin:14px 0 18px; }
.rt-home-hero__lede{ color:rgba(247,242,232,.92); font-weight:300; font-size:clamp(16px,1.7vw,20px); line-height:1.7; max-width:600px; margin:0 auto 30px; }

/* Gateway: Sellers / Buyers */
.rt-home-gw{ background:#fff; border-top:1px solid rgba(14,44,74,.08); padding:84px 32px; }
.rt-home-gw__head{ text-align:center; max-width:680px; margin:0 auto 44px; }
.rt-home-gw__head h2{ font-family:var(--rt-f-serif); font-weight:400; color:var(--rt-navy); font-size:clamp(26px,3.2vw,38px); margin:8px 0 0; }
.rt-home-gw__cards{ max-width:1000px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.rt-home-gw__card{ display:flex; flex-direction:column; justify-content:flex-end; min-height:340px; padding:38px; border-radius:5px; background-color:var(--rt-navy); background-size:cover; background-position:center; color:var(--rt-cream); text-decoration:none; position:relative; overflow:hidden; transition:transform .35s ease, box-shadow .35s ease; box-shadow:0 12px 34px rgba(8,24,40,.18); }
.rt-home-gw__card-img{ position:absolute; inset:0; background-size:cover; background-position:center; transform:scale(1.02); transition:transform .6s ease; z-index:0; }
.rt-home-gw__card::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(10,28,46,.94) 0%, rgba(10,28,46,.72) 45%, rgba(10,28,46,.42) 100%); z-index:1; }
.rt-home-gw__card:hover .rt-home-gw__card-img{ transform:scale(1.08); }
.rt-home-gw__for,.rt-home-gw__title,.rt-home-gw__cta{ position:relative; z-index:2; }
.rt-home-gw__card::before{ content:""; position:absolute; left:0; top:0; width:100%; height:3px; background:var(--rt-gold); z-index:3; }
.rt-home-gw__card:hover{ transform:translateY(-5px); box-shadow:0 22px 50px rgba(8,24,40,.3); }
.rt-home-gw__for{ font-family:var(--rt-f-sans); font-weight:500; font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--rt-gold-soft); margin-bottom:10px; }
.rt-home-gw__title{ font-family:var(--rt-f-serif); font-weight:400; font-size:32px; line-height:1.1; }
.rt-home-gw__cta{ margin-top:16px; font-family:var(--rt-f-sans); font-size:13px; letter-spacing:.06em; color:var(--rt-cream); opacity:.85; }
.rt-home-gw__card:hover .rt-home-gw__cta{ color:var(--rt-gold-soft); }

/* Listings */
/* The parent theme paints the homepage body the OLD palette #1B5570 (old navy teal),
   which bled through the transparent, max-width listings section. Neutralize it
   to white so transparent sections read clean (navy heading on white). */
html body.home{ background-color:#fff !important; }
.rt-home-listings{ padding:84px 32px; max-width:1280px; margin:0 auto; }
.rt-home-listings__head{ text-align:center; margin-bottom:40px; }
.rt-home-listings__head h2{ font-family:var(--rt-f-serif); font-weight:400; color:var(--rt-navy); font-size:clamp(26px,3.2vw,40px); margin:8px 0 0; }
.rt-home-listings__more{ text-align:center; margin-top:40px; }

/* Testimonials */
.rt-home-tm{ background:var(--rt-navy); padding:90px 32px; }
.rt-home-tm__head{ text-align:center; max-width:720px; margin:0 auto 50px; }
.rt-home-tm__head .rt-about__kicker{ color:var(--rt-gold-soft); }
.rt-home-tm__head h2{ font-family:var(--rt-f-serif); font-weight:400; color:#fff; font-size:clamp(28px,3.6vw,44px); margin:8px 0 14px; }
.rt-home-tm__sub{ color:rgba(247,242,232,.78); font-weight:300; font-size:16px; line-height:1.7; margin:0; }
.rt-home-tm__grid{ max-width:1140px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.rt-home-tm__card{ margin:0; background:rgba(247,242,232,.05); border:1px solid rgba(47,93,98,.22); border-radius:5px; padding:30px 28px; display:flex; flex-direction:column; }
.rt-home-tm__card blockquote{ margin:0 0 18px; padding:0; border:0; background:none; font-family:var(--rt-f-serif); font-weight:400; font-style:normal; font-size:20px; line-height:1.45; color:var(--rt-cream); }
.rt-home-tm__card figcaption{ margin-top:auto; font-family:var(--rt-f-sans); font-weight:500; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--rt-gold-soft); }
.rt-home-tm__more{ text-align:center; margin-top:44px; }

@media (max-width:900px){
  .rt-home-gw__cards{ grid-template-columns:1fr; }
  .rt-home-tm__grid{ grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce){ .rt-home-hero__video{ display:none; } .rt-home-hero{ background:var(--rt-navy); } }

/* Gateway card links must stay cream (beat the theme's bright-blue <a> color). */
.rt-home-gw__card, .rt-home-gw__card:hover, .rt-home-gw__card:focus,
.rt-home-gw__card .rt-home-gw__title{ color:var(--rt-cream) !important; }
.rt-home-gw__card:hover .rt-home-gw__cta{ color:var(--rt-gold-soft) !important; }

/* References & Testimonials page (.rt-refs) — masonry column grid of client letters. */
.rt-refs__body{ background:var(--rt-navy); padding:80px 32px; }
.rt-refs__grid{ max-width:1200px; margin:0 auto; column-count:3; column-gap:22px; }
.rt-refs__card{ break-inside:avoid; margin:0 0 22px; background:rgba(247,242,232,.05); border:1px solid rgba(47,93,98,.22); border-radius:5px; padding:28px 26px; }
.rt-refs__card blockquote{ margin:0 0 16px; padding:0; border:0; background:none; font-family:var(--rt-f-serif); font-weight:400; font-style:normal; font-size:18px; line-height:1.5; color:var(--rt-cream); }
.rt-refs__card figcaption{ font-family:var(--rt-f-sans); font-weight:500; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--rt-gold-soft); }
@media (max-width:900px){ .rt-refs__grid{ column-count:2; } }
@media (max-width:600px){ .rt-refs__grid{ column-count:1; } }

/* Compact hero variant (shorter band for article/guide pages). */
.rt-about__hero--compact{ min-height:46vh; }

/* Long-form article body (.rt-article) — branded editorial typography wrapping the_content(). */
.rt-article__body{ background:var(--rt-ivory); padding:72px 32px; }
.rt-article__prose{ max-width:760px; margin:0 auto; font-family:var(--rt-f-sans); font-weight:300; color:#33404a; font-size:17px; line-height:1.8; }
.rt-article__prose h2{ font-family:var(--rt-f-serif); font-weight:400; color:var(--rt-navy); font-size:clamp(26px,3vw,36px); line-height:1.2; margin:48px 0 14px; }
.rt-article__prose h3{ font-family:var(--rt-f-sans); font-weight:600; color:var(--rt-navy); font-size:21px; margin:32px 0 10px; }
.rt-article__prose p{ margin:0 0 20px; }
.rt-article__prose a{ color:var(--rt-gold); text-decoration:underline; text-underline-offset:2px; }
.rt-article__prose a:hover{ color:var(--rt-navy); }
.rt-article__prose ul,.rt-article__prose ol{ margin:0 0 22px; padding-left:24px; }
.rt-article__prose li{ margin:0 0 8px; }
.rt-article__prose img{ max-width:100%; height:auto; border-radius:5px; margin:16px 0; }
.rt-article__prose blockquote{ margin:28px 0; padding:6px 0 6px 22px; border-left:3px solid var(--rt-gold); background:none; font-family:var(--rt-f-serif); font-style:normal; font-size:20px; color:var(--rt-navy); }
.rt-article__prose strong{ color:var(--rt-navy); }

/* Contact page (.rt-contact) — branded two-column details + SIDX form, plus map. */
.rt-contact__body{ background:var(--rt-ivory); padding:72px 32px; }
.rt-contact__grid{ max-width:1140px; margin:0 auto; display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:start; }
.rt-contact__info h2{ font-family:var(--rt-f-serif); font-weight:400; color:var(--rt-navy); font-size:clamp(26px,3vw,36px); margin:8px 0 14px; }
.rt-contact__intro{ font-family:var(--rt-f-sans); font-weight:300; color:#4a5560; font-size:16px; line-height:1.75; margin:0 0 28px; }
.rt-contact__list{ list-style:none; margin:0; padding:0; }
.rt-contact__list li{ display:grid; grid-template-columns:34px 1fr; grid-template-rows:auto auto; column-gap:14px; align-items:start; padding:16px 0; border-top:1px solid rgba(14,44,74,.1); }
.rt-contact__list li:last-child{ border-bottom:1px solid rgba(14,44,74,.1); }
.rt-contact__ico{ grid-row:1 / span 2; display:flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; background:var(--rt-navy); color:var(--rt-gold-soft); font-size:16px; }
.rt-contact__lab{ font-family:var(--rt-f-sans); font-weight:600; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--rt-gold); }
.rt-contact__list a, .rt-contact__list li > span:not(.rt-contact__ico):not(.rt-contact__lab){ font-family:var(--rt-f-sans); font-size:17px; color:var(--rt-navy); text-decoration:none; line-height:1.5; }
.rt-contact__list a:hover{ color:var(--rt-gold); }
.rt-contact__dre{ margin-top:22px; font-size:12px; letter-spacing:.08em; color:#8a939c; }
.rt-contact__form h2{ font-family:var(--rt-f-serif); font-weight:400; color:var(--rt-navy); font-size:clamp(24px,2.6vw,30px); margin:0 0 20px; }
.rt-contact__form .sidx-primary{ background-color:var(--rt-navy) !important; background-image:none !important; border-color:var(--rt-navy) !important; }
.rt-contact__form .sidx-primary:hover{ background-color:var(--rt-gold) !important; border-color:var(--rt-gold) !important; }
.rt-contact__map{ line-height:0; }
.rt-contact__map iframe{ display:block; filter:grayscale(.15); }
@media (max-width:860px){ .rt-contact__grid{ grid-template-columns:1fr; gap:44px; } }

/* City / neighborhood pages (.rt-citypage) — wide editorial body that hosts IDX widgets. */
/* ShowcaseIDX listing-detail pages (/homes/listing/...): remove the branded
   hero entirely, all devices. body.rt-listing-detail is set by PHP on direct
   loads and toggled by rt-sidx.js on SPA navigation. */
body.rt-listing-detail .rt-about__hero{ display:none !important; }
.rt-citypage__body{ background:var(--rt-ivory); padding:64px 24px; }
.rt-citypage__prose{ max-width:1280px; margin:0 auto; font-family:var(--rt-f-sans); font-weight:300; color:#33404a; font-size:17px; line-height:1.8; }
.rt-citypage__prose h2{ font-family:var(--rt-f-serif); font-weight:400; color:var(--rt-navy); font-size:clamp(26px,3vw,38px); line-height:1.2; margin:52px 0 16px; }
.rt-citypage__prose h2:first-child,.rt-citypage__prose > *:first-child{ margin-top:0; }
.rt-citypage__prose h3{ font-family:var(--rt-f-sans); font-weight:600; color:var(--rt-navy); font-size:21px; margin:32px 0 10px; }
.rt-citypage__prose p{ margin:0 0 20px; }
.rt-citypage__prose a{ color:var(--rt-gold); text-decoration:underline; text-underline-offset:2px; }
.rt-citypage__prose a:hover{ color:var(--rt-navy); }
.rt-citypage__prose ul,.rt-citypage__prose ol{ margin:0 0 22px; padding-left:24px; }
.rt-citypage__prose li{ margin:0 0 8px; }
.rt-citypage__prose strong{ color:var(--rt-navy); }
.rt-citypage__prose img{ max-width:100%; height:auto; border-radius:5px; }

/* --- City enrichment (Direction C): stat strip + neighborhood chips + FAQ.
   Layout only (RUCSS-safe matched selectors); chip :hover is printed inline in
   <head> by realhomes_child_city_hover_css() so RUCSS can't strip it. --- */
.rt-citypage--enriched .rt-about__hero--compact{ min-height:46vh; }
.rt-citypage__stats{ background:#fff; border-bottom:1px solid rgba(14,44,74,.1); }
.rt-citypage__stats-inner{ display:grid; grid-template-columns:repeat(4,1fr); max-width:1180px; margin:0 auto; }
.rt-citypage__stat{ text-align:center; padding:30px 14px; border-right:1px solid rgba(14,44,74,.08); }
.rt-citypage__stat:last-child{ border-right:0; }
.rt-citypage__stat-n{ display:block; font-family:var(--rt-f-serif); font-weight:400; color:var(--rt-navy); font-size:clamp(24px,3vw,36px); line-height:1; }
.rt-citypage__stat-l{ display:block; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:#8a939c; margin-top:9px; font-weight:500; }
.rt-citypage__chips-sec{ background:#f7f3ea; padding:56px 24px; }
.rt-citypage__chips-inner{ max-width:1180px; margin:0 auto; }
.rt-citypage__chips-h{ font-family:var(--rt-f-serif); font-weight:400; color:var(--rt-navy); font-size:clamp(24px,3vw,34px); line-height:1.15; margin:4px 0 20px; }
.rt-citypage__chips{ display:flex; flex-wrap:wrap; gap:12px; }
.rt-citypage__chip{ font-family:var(--rt-f-sans); font-weight:400; font-size:15px; color:var(--rt-navy); background:#fff; border:1px solid #d8c9a8; border-radius:40px; padding:11px 22px; text-decoration:none; transition:background .2s ease, color .2s ease, border-color .2s ease; }
/* Neighborhood link grid (rt-nbhd-grid): a classless <table> of community links,
   re-skinned into a responsive card grid. Width-capped auto-fit yields ~4 cols on
   desktop, 3 on tablet, 2 on phones with NO @media (RUCSS-safe). tr{display:contents}
   promotes the <td>s to grid items; !important on link color/decoration beats the
   inherited .rt-citypage__prose a (accent + underline) on rt-city pages. */
.rt-nbhd-grid{ display:block; width:100%; border:0; border-collapse:collapse; background:transparent; margin:24px 0 8px; }
.rt-nbhd-grid caption{ display:block; text-align:center; font-family:var(--rt-f-serif); font-weight:400; color:#0e2c4a; font-size:clamp(24px,3vw,34px); line-height:1.2; padding:0 0 20px; }
.rt-nbhd-grid tbody{ display:grid; grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); gap:10px; max-width:740px; margin:0 auto; }
.rt-nbhd-grid tr{ display:contents; }
.rt-nbhd-grid td{ display:flex; border:0; padding:0; margin:0; background:transparent; }
.rt-nbhd-grid td a{ flex:1; display:flex; align-items:center; justify-content:center; text-align:center; padding:15px 12px; border-radius:8px; background:#fff !important; border:1px solid #e7dfd1 !important; color:#143F77 !important; font-family:var(--rt-f-serif); font-weight:400; font-size:16px; line-height:1.3; text-decoration:none !important; transition:background .25s ease,border-color .25s ease,color .25s ease,transform .2s ease; }
.rt-nbhd-grid td a:hover{ background:#2F5D62 !important; border-color:#2F5D62 !important; color:#fff !important; transform:translateY(-2px); }
.rt-citypage__faq-sec{ background:var(--rt-ivory); padding:60px 24px; }
.rt-citypage__faq-inner{ max-width:1280px; margin:0 auto; }
.rt-citypage__faq-h{ font-family:var(--rt-f-serif); font-weight:400; color:var(--rt-navy); font-size:clamp(24px,3vw,34px); line-height:1.15; margin:4px 0 22px; }
.rt-citypage__faq{ border-top:1px solid #ece8df; padding:20px 0; }
.rt-citypage__faq:last-child{ border-bottom:1px solid #ece8df; }
.rt-citypage__faq-q{ font-family:var(--rt-f-serif); font-weight:400; color:var(--rt-navy); font-size:20px; margin:0 0 8px; }
.rt-citypage__faq-a{ font-family:var(--rt-f-sans); font-weight:300; color:#4a5560; font-size:16px; line-height:1.75; }
.rt-citypage__faq-a p{ margin:0 0 10px; }
.rt-citypage__faq-a p:last-child{ margin-bottom:0; }
.rt-citypage__faq-a a{ color:var(--rt-accent,#2F5D62); text-decoration:underline; text-underline-offset:2px; }
.rt-citypage__guide-sec{ background:#fff; padding:56px 24px; border-top:1px solid #ece8df; }
.rt-citypage__guide{ max-width:1280px; margin:0 auto; text-align:center; }
.rt-citypage__guide-h{ font-family:var(--rt-f-serif); font-weight:400; color:var(--rt-navy); font-size:clamp(22px,2.6vw,30px); line-height:1.2; margin:6px 0 10px; }
.rt-citypage__guide-p{ font-family:var(--rt-f-sans); font-weight:300; color:#4a5560; font-size:16px; line-height:1.7; max-width:620px; margin:0 auto 22px; }
@media (max-width:760px){
  .rt-citypage__guide-sec{ padding:44px 22px; }
  .rt-citypage__stats-inner{ grid-template-columns:repeat(2,1fr); }
  .rt-citypage__stat:nth-child(2){ border-right:0; }
  .rt-citypage__stat:nth-child(-n+2){ border-bottom:1px solid rgba(14,44,74,.08); }
  .rt-citypage__chips-sec,.rt-citypage__faq-sec{ padding:44px 22px; }
}

/* Branded host for re-chromed Elementor pages (Sold / Featured Cities / Valuation).
   Keep Elementor content intact; just nudge palette + spacing on-brand. */
.rt-elhost__body{ background:var(--rt-ivory); padding:56px 24px 64px; }
.rt-elhost{ max-width:1180px; margin:0 auto; }
.rt-elhost a:not(.elementor-button):not(.hv-button):not([class*="sidx"]):not([class*="rt-btn"]){ color:var(--rt-gold); }
.rt-elhost a:not(.elementor-button):not(.hv-button):not([class*="sidx"]):not([class*="rt-btn"]):hover{ color:var(--rt-navy); }
/* Default-styled Elementor headings -> brand serif/navy (skip ones with their own color). */
.rt-elhost h2:not([style*="color"]):not(.hv-heading), .rt-elhost h3:not([style*="color"]):not(.hv-heading){ color:var(--rt-navy); }
.rt-elhost h2:not([style*="color"]){ font-family:var(--rt-f-serif); }

/* Home Valuation tool (home-valuation plugin) — rebrand its bright-blue heading
   and button to the navy/gold scheme. Plugin styles are !important and live in
   both an inline <style> and valuation-form.css, so we win on specificity
   (leading `body`) rather than relying on cascade order. The plugin is not
   git-tracked, so this override ships with the theme and survives plugin updates. */
body .hv-form{ border:2px solid var(--rt-navy) !important; }
body .hv-form .hv-heading{ color:var(--rt-navy) !important; }
body .hv-form .hv-button{ background:var(--rt-navy) !important; color:#fff !important; }
body .hv-form .hv-button:not(:disabled):hover{ background:var(--rt-gold) !important; color:#fff !important; }
body .hv-form .hv-button:disabled{ background:var(--rt-navy) !important; }

/* ShowcaseIDX in-content text links: bright accent blue -> navy, accent
   on hover. Scoped to text links only (button/pill links keep their own bg).
   SIDX result/list/detail UIs are light-background, so navy stays readable. */
[class*="sidx"] a:not([class*="button"]):not([class*="btn"]):not([class*="primary"]){ color:var(--rt-navy) !important; }
[class*="sidx"] a:not([class*="button"]):not([class*="btn"]):not([class*="primary"]):hover{ color:var(--rt-gold) !important; }

/* ============================================================
   MLS / ShowcaseIDX old-palette cleanup.
   The SIDX account custom.css paints buttons, badges, header links, etc. the
   old accent blue, much of it with !important. We replicate each of
   those selectors with a leading `body` (one extra specificity point) so our
   navy/gold wins regardless of source order. Backgrounds -> navy (gold hover),
   text -> navy, accent borders -> gold.
   ============================================================ */
/* Buttons (search/save/etc.) + listing-detail CTA + days-online badge -> navy */
body .sidx-button,
body .sidx-container button,
body .sidx-container .sidx-listing-details .sidx-columns .sidx-call-to-actions button,
body .sidx-container .sidx-listing-details .sidx-price-area .sidx-days-online{ background:var(--rt-navy) !important; background-color:var(--rt-navy) !important; box-shadow:none !important; border-color:var(--rt-navy) !important; }
body .sidx-button:hover,
body .sidx-container button:hover,
body .sidx-container .sidx-listing-details .sidx-columns .sidx-call-to-actions button:hover{ background:var(--rt-gold) !important; background-color:var(--rt-gold) !important; color:#fff !important; border-color:var(--rt-gold) !important; }
/* Header links, search inputs, status labels, dates, menu accents -> navy text */
body .sidx-container .sidx-main-header .sidx-header-link .sidx-current-page,
body .sidx-container .sidx-main-header .sidx-header-link .sidx-link,
body .sidx-container .sidx-main-header .sidx-header-link a,
body .sidx-container .sidx-main-header .sidx-header-link .sidx-link.sidx-new-search,
body .sidx-container .sidx-main-header .sidx-header-link a.sidx-new-search,
body .sidx-container .sidx-searchform .sidx-suggestions-input,
body .sidx-container .sidx-listing-details .sidx-columns .sidx-left-column .sidx-open-houses .sidx-open-house-date,
body .sidx-container .sidx-search-results .sidx-mls-details .sidx-for-sale,
body .sidx-container .sidx-searchform .sidx-features .sidx-menu .sidx-title em{ color:var(--rt-navy) !important; }
/* Accent border (share pill) -> gold */
body .sidx-container .sidx-share-search-pill.sidx-share-search-pill{ border-color:var(--rt-gold) !important; }


/* --- auto-generated MLS/SIDX accent cleanup (app.css + custom.css) --- */
body .sidx-container .sidx-collapse-button,
body .sidx-container .sidx-dashboard .sidx-activity .sidx-activity-item .sidx-action-icon i.sidx-comment,
body .sidx-container .sidx-dashboard .sidx-activity .sidx-activity-item .sidx-address,
body .sidx-container .sidx-link,
body .sidx-container .sidx-listing-comments .sidx-comments .sidx-comments-list .sidx-comment.sidx-agent-visible:before,
body .sidx-container .sidx-listing-details .sidx-columns .sidx-left-column .sidx-open-houses .sidx-open-house-date,
body .sidx-container .sidx-listing-details .sidx-timeline .sidx-emoji.sidx-comment,
body .sidx-container .sidx-listing-details .sidx-timeline i.sidx-comment,
body .sidx-container .sidx-listing-details .sidx-top-level-nav a.sidx-blue,
body .sidx-container .sidx-main-header .sidx-header-link .sidx-current-page,
body .sidx-container .sidx-main-header .sidx-header-link .sidx-current-page.sidx-new-search,
body .sidx-container .sidx-main-header .sidx-header-link .sidx-link,
body .sidx-container .sidx-main-header .sidx-header-link .sidx-link.sidx-new-search,
body .sidx-container .sidx-main-header .sidx-header-link a,
body .sidx-container .sidx-main-header .sidx-header-link a.sidx-new-search,
body .sidx-container .sidx-main-header .sidx-header-link.sidx-new-search,
body .sidx-container .sidx-mobile .sidx-dropdown-pill.sidx-save-search-pill,
body .sidx-container .sidx-photo-array button,
body .sidx-container .sidx-primary-action .sidx-primary-action-icon-container i.blue,
body .sidx-container .sidx-reset-search-pill.sidx-share-search-pill,
body .sidx-container .sidx-saved-searches .sidx-saved-search .sidx-search-title,
body .sidx-container .sidx-search-result-grid-item .sidx-actions .sidx-comments .sidx-count,
body .sidx-container .sidx-search-results .sidx-back,
body .sidx-container .sidx-search-results .sidx-back i,
body .sidx-container .sidx-search-results .sidx-mls-details .sidx-for-sale,
body .sidx-container .sidx-searchform .sidx-features .sidx-menu .sidx-title em,
body .sidx-container .sidx-searchform .sidx-suggestions-input,
body .sidx-container .sidx-share-search-pill.sidx-share-search-pill,
body .sidx-container .sidx-social-search-box .sidx-actions,
body .sidx-container .sidx-streamlined-search .sidx-streamlined-toggle,
body .sidx-container .sidx-suggestions-matches .sidx-geo-search-button,
body .sidx-container .sidx-suggestions-matches .sidx-suggestions-keywords-button,
body .sidx-container .sidx-suggestions-matches li,
body .sidx-container .sidx-suggestions-no-matches .sidx-geo-search-button,
body .sidx-container .sidx-suggestions-no-matches .sidx-suggestions-keywords-button,
body .sidx-container .sidx-suggestions-use-geo .sidx-geo-search-button,
body .sidx-container .sidx-suggestions-use-geo .sidx-suggestions-keywords-button,
body .sidx-container a{ color:var(--rt-navy) !important; }

body .sidx-container .sidx-photo-array button:hover,
body .sidx-container .sidx-primary-action .sidx-primary-action-icon-container i.blue:hover,
body .sidx-container .sidx-search-results .sidx-back:hover,
body .sidx-container .sidx-searchform .sidx-field:hover,
body .sidx-container .sidx-social-search-box .sidx-actions>:hover{ color:var(--rt-gold) !important; }

body .sidx-button,
body .sidx-container .sidx-bar-chart .sidx-chart-item .sidx-chart-datum,
body .sidx-container .sidx-button.sidx-primary,
body .sidx-container .sidx-chart-datum:nth-child(5n+2),
body .sidx-container .sidx-chart-item:nth-child(5n+2) .sidx-chart-datum,
body .sidx-container .sidx-legend-item:nth-child(5n+2) .sidx-legend-dot,
body .sidx-container .sidx-listing-details .sidx-columns .sidx-call-to-actions button,
body .sidx-container .sidx-listing-details .sidx-price-area .sidx-days-online,
body .sidx-container .sidx-listing-landing-1 .sidx-landing-photos-form .sidx-landing-form,
body .sidx-container .sidx-main-header .sidx-header-link .sidx-current-page.sidx-new-search,
body .sidx-container .sidx-main-header .sidx-header-link .sidx-link.sidx-new-search,
body .sidx-container .sidx-main-header .sidx-header-link a.sidx-new-search,
body .sidx-container .sidx-search-result-grid-item .sidx-actions,
body .sidx-container .sidx-search-results .sidx-thumbnail .sidx-ribbons .sidx-new-listing,
body .sidx-container .sidx-search-results .sidx-thumbnail .sidx-ribbons .sidx-price-drop,
body .sidx-container .sidx-small-screen .sidx-main-header .sidx-header-link .sidx-current-page.sidx-new-search .sidx-icon-label,
body .sidx-container .sidx-small-screen .sidx-main-header .sidx-header-link .sidx-link.sidx-new-search .sidx-icon-label,
body .sidx-container .sidx-small-screen .sidx-main-header .sidx-header-link a.sidx-new-search .sidx-icon-label,
body .sidx-container .sidx-streamlined-search .sidx-streamlined-done,
body .sidx-container .sidx-streamlined-search .sidx-streamlined-searchbox .sidx-add-keyword,
body .sidx-container button,
body .sidx-container button.sidx-primary{ background:var(--rt-navy) !important;background-color:var(--rt-navy) !important; }


body .sidx-container .sidx-dropdown-pill.sidx-save-search-pill,
body .sidx-container .sidx-photo-array button,
body .sidx-container .sidx-primary-actions.sidx-primary-jumbo,
body .sidx-container .sidx-reset-search-pill.sidx-share-search-pill,
body .sidx-container .sidx-search-result-grid-item .sidx-actions,
body .sidx-container .sidx-share-search-pill.sidx-share-search-pill,
body .sidx-container .sidx-streamlined-search .sidx-streamlined-done,
body .sidx-container .sidx-streamlined-search .sidx-streamlined-searchbox .sidx-add-keyword,
body .sidx-container .sidx-streamlined-search .sidx-streamlined-toggle,
body .sidx-container .sidx-toggle-bar .sidx-toggle-bar-item.sidx-selected,
body .sidx-container .sidx-toggle-bar .sidx-toggle-bar-item:hover{ border-color:var(--rt-gold) !important; }

/* White text on every SIDX element we gave a navy background. Several inherited
   navy text from the accent->navy recolor, leaving text invisible on the navy
   box (call button, action bars, days-online badge, active search tab, etc.).
   Includes ` *` so inner icons/labels go white too. */
body .sidx-button,
body .sidx-button *,
body .sidx-container button,
body .sidx-container button *,
body .sidx-container .sidx-button.sidx-primary,
body .sidx-container button.sidx-primary,
body .sidx-container .sidx-call-button,
body .sidx-container .sidx-call-button *,
body .sidx-container .sidx-listing-details .sidx-columns .sidx-call-to-actions button,
body .sidx-container .sidx-listing-details .sidx-columns .sidx-call-to-actions button *,
body .sidx-container .sidx-listing-details .sidx-price-area .sidx-days-online,
body .sidx-actions,
body .sidx-actions *,
body .sidx-container .sidx-search-result-grid-item .sidx-actions,
body .sidx-container .sidx-search-result-grid-item .sidx-actions *,
body .sidx-container .sidx-social-search-box .sidx-actions,
body .sidx-container .sidx-social-search-box .sidx-actions *,
body .sidx-container .sidx-main-header .sidx-header-link .sidx-current-page.sidx-new-search,
body .sidx-container .sidx-main-header .sidx-header-link .sidx-link.sidx-new-search,
body .sidx-container .sidx-main-header .sidx-header-link a.sidx-new-search,
body .sidx-container .sidx-streamlined-search .sidx-streamlined-done,
body .sidx-container .sidx-streamlined-search .sidx-streamlined-done *,
body .sidx-container .sidx-streamlined-search .sidx-streamlined-searchbox .sidx-add-keyword{ color:#fff !important; }

/* Photo-gallery controls ("Quickview / Next Photos"): the generic
   `.sidx-container button` rule paints them navy AND `.sidx-photo-array button`
   sits in the navy-text color group at specificity (0,2,2) -- out-ranking the
   generic button{color:#fff} (0,1,2) -- so the control rendered navy-on-navy
   (invisible). Re-assert white at equal specificity, placed later to win the
   tie. (:hover stays gold -- its pseudo-class makes it more specific.) */
body .sidx-container .sidx-photo-array button,
body .sidx-container .sidx-photo-array button *{ color:#fff !important; }

/* The "New Search" tab is the only main-header link with a navy background, so
   the generic main-header `i, span{ color:navy }` rule (below) painted its icon
   + label navy-on-navy -- the invisible dark box left of "Dashboard". Force the
   whole control's contents white. (0,4,2) out-ranks that rule's (0,3,2); placed
   later to win the cascade. */
body .sidx-container .sidx-main-header .sidx-header-link .sidx-current-page.sidx-new-search *,
body .sidx-container .sidx-main-header .sidx-header-link .sidx-link.sidx-new-search *,
body .sidx-container .sidx-main-header .sidx-header-link a.sidx-new-search *,
body .sidx-container .sidx-main-header .sidx-header-link.sidx-new-search *{ color:#fff !important; }

/* Photo-gallery "Quickview / Next Photos" button hover was gold-on-gold
   (invisible). Pin a deterministic, on-brand hover -- accent background, white
   text (the site's accent-button convention) -- so the label is always readable.
   (0,3,2) + later source order beats the prior :hover color rule. */
body .sidx-container .sidx-photo-array button:hover,
body .sidx-container .sidx-photo-array button:hover *{ background:var(--rt-gold) !important; background-color:var(--rt-gold) !important; color:#fff !important; }

/* Last-mile SIDX accents that inherit the old blue (map/marker FA icons, the
   selected detail-nav tab). Force them on-brand explicitly. */
body .sidx-container .sidx-icon.sidx-map,
body .sidx-container .sidx-icon.sidx-map-marker,
body .sidx-container .sidx-menu-item.sidx-selected{ color:var(--rt-navy) !important; }
body .sidx-container .sidx-menu-item.sidx-selected{ border-color:var(--rt-gold) !important; }
/* Listing-detail carousel tabs (Map / Nearby Listings) — were accent blue. */
body .sidx-container .sidx-listing-details .sidx-carousel .sidx-menu .sidx-menu-item{ color:var(--rt-navy) !important; border-color:var(--rt-gold) !important; }
body .sidx-container .sidx-listing-details .sidx-carousel .sidx-menu .sidx-menu-item.sidx-selected{ color:var(--rt-navy) !important; }
/* SIDX main-header link variants (Dashboard/Listings/Searches/etc.) can pick up
   a default link blue (#0576f5) on their container — force the whole set navy. */
body .sidx-container .sidx-main-header .sidx-header-link,
body .sidx-container .sidx-main-header .sidx-header-link i,
body .sidx-container .sidx-main-header .sidx-header-link span{ color:var(--rt-navy) !important; border-color:var(--rt-gold) !important; }
/* "Save Search" pill (highlighted state) was light blue -> navy with cream text. */
body .sidx-container .sidx-save-search-pill,
body .sidx-container .sidx-save-search-pill.sidx-search-pill,
body .sidx-container .sidx-dropdown-pill.sidx-save-search-pill{ background:var(--rt-navy) !important; background-color:var(--rt-navy) !important; color:#fff !important; }
/* The navy-text group also paints `.sidx-mobile .sidx-dropdown-pill.sidx-save-search-pill`
   navy (specificity 0,4,1, !important), out-ranking the white rules above (0,3,1) -- so the
   "Save Search" pill (and its inherited text child) rendered navy-on-navy. Re-assert white
   at higher specificity (0,5,1 via the extra .sidx-search-pill class), incl. descendants. */
body .sidx-container .sidx-mobile .sidx-dropdown-pill.sidx-save-search-pill.sidx-search-pill,
body .sidx-container .sidx-mobile .sidx-dropdown-pill.sidx-save-search-pill.sidx-search-pill *,
body .sidx-container .sidx-mobile .sidx-dropdown-pill.sidx-save-search-pill,
body .sidx-container .sidx-mobile .sidx-dropdown-pill.sidx-save-search-pill *{ color:#fff !important; }
/* "See More Listings" hotsheet CTA -> gold primary (matches Search Homes / Let's
   talk), navy on hover. Beats the generic sidx button->navy rule on specificity. */
body .sidx-container .sidx-hotsheet-see-all-results,
body .sidx-hotsheet-see-all-results{ background:var(--rt-gold) !important; background-color:var(--rt-gold) !important; color:#fff !important; border-color:var(--rt-gold) !important; box-shadow:none !important; }
body .sidx-container .sidx-hotsheet-see-all-results:hover,
body .sidx-hotsheet-see-all-results:hover{ background:var(--rt-navy) !important; background-color:var(--rt-navy) !important; color:#fff !important; border-color:var(--rt-navy) !important; }

/* IDX hotsheet flash/gap is fixed at the source now: SIDX JS is excluded from
   WP Rocket defer (functions.php) and SIDX's grid CSS is loaded render-blocking
   on listing pages (realhomes_child_sidx_grid_css), so the grid lays out in one
   pass — no hold/reveal workaround needed (it caused its own grow-shift). */


/* =====================================================================
   Homepage scroll-reveal motion. Hidden state applies ONLY when JS is
   active (html.rt-js, set by an early <head> script) so there is no flash
   and no-JS users see everything. html.rt-reveal-all is a 2.5s failsafe
   that force-shows content if the reveal JS never runs. Children fade up;
   rt-header.js staggers them via per-child transition-delay. GPU-friendly
   (transform+opacity only). Honors prefers-reduced-motion.
   ===================================================================== */
html.rt-js [data-rt-reveal] > *{
  opacity:0; transform:translateY(40px);
  transition:opacity 1.2s cubic-bezier(.22,.61,.36,1), transform 1.2s cubic-bezier(.22,.61,.36,1);
  will-change:opacity, transform;
}
html.rt-js [data-rt-reveal].rt-in > *{ opacity:1; transform:none; }
/* Keep the hero over the video EXACTLY as it was (.7s, 22px travel). The slower
   1.2s / 40px reveal above is for the lower homepage sections only — the user
   asked to leave the hero text unchanged. rt-home-hero__inner also carries
   data-rt-reveal, so it would otherwise inherit both the slower duration AND the
   bigger travel. Equal specificity to the base rule but declared later, so it
   wins the hidden-state cascade (the .rt-in rule still resolves both to none). */
html.rt-js .rt-home-hero__inner > *{
  transform:translateY(22px);
  transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1);
}
html.rt-reveal-all [data-rt-reveal] > *{ opacity:1 !important; transform:none !important; transition:none !important; }
@media (prefers-reduced-motion: reduce){
  html.rt-js [data-rt-reveal] > *{ opacity:1 !important; transform:none !important; transition:none !important; }
}


/* ============ Homepage Tier-2 motion flourishes (reviewable/revertible) ======
   CTA Ken-Burns, testimonial-card hover, button lift, hero scroll cue. Hero
   parallax + cue fade handled in rt-header.js. All transform/opacity; motion
   pieces are gated on prefers-reduced-motion. (Gateway + city cards already had
   their own hover treatments — left as-is.) ===================================*/

/* CTA background slow Ken-Burns (image on a ::before so overlay/text are untouched). */
.rt-about__cta{ overflow:hidden; }
.rt-about__cta-overlay{ z-index:1; }
.rt-about__cta-inner{ z-index:2; }
@media (prefers-reduced-motion: no-preference){
  .rt-about__cta::before{
    content:""; position:absolute; inset:0; z-index:0;
    background-image:inherit; background-size:cover; background-position:center;
    animation:rt-kenburns 40s ease-in-out infinite alternate;
  }
}
@keyframes rt-kenburns{ from{ transform:scale(1); } to{ transform:scale(1.1); } }

/* Testimonial cards: gentle lift + brighten on hover. */
.rt-home-tm__card, .rt-refs__card{ transition:transform .4s ease, border-color .4s ease, background .4s ease, box-shadow .4s ease; }
.rt-home-tm__card:hover, .rt-refs__card:hover{ transform:translateY(-4px); border-color:rgba(47,93,98,.5); background:rgba(247,242,232,.08); box-shadow:0 16px 36px rgba(8,24,40,.22); }

/* Buttons: subtle lift + shadow (variant hover colors already defined above). */
.rt-btn:hover{ transform:translateY(-2px); box-shadow:0 8px 20px rgba(8,24,40,.18); }
@media (prefers-reduced-motion: reduce){ .rt-btn:hover{ transform:none; box-shadow:none; } .rt-about__cta::before{ animation:none; } }

/* Hero scroll cue (down chevron, gentle bob, fades on scroll via rt-header.js). */
.rt-home-hero__scroll{ position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:2;
  width:46px; height:46px; border:0; cursor:pointer; opacity:.85;
  background:transparent no-repeat center / 28px 16px url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='28'%20height='16'%20viewBox='0%200%2028%2016'%20fill='none'%20stroke='%23F7F2E8'%20stroke-width='2.4'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpolyline%20points='3%204%2014%2013%2025%204'/%3E%3C/svg%3E");
  transition:opacity .45s ease; }
.rt-home-hero__scroll.is-hidden{ opacity:0; pointer-events:none; }
@media (prefers-reduced-motion: no-preference){
  .rt-home-hero__scroll{ animation:rt-bob 2.2s ease-in-out infinite; }
}
@keyframes rt-bob{ 0%,100%{ transform:translateX(-50%) translateY(0); } 50%{ transform:translateX(-50%) translateY(7px); } }
