/*
Theme Name: JDW Robert - Central Texas Real Estate
Theme URI: https://centraltexasdreamhomes.net/
Author: JD Walters Real Estate
Description: A fast, accessible, mobile-first real estate theme for Robert Trevino's JD Walters Real Estate agent site. Charcoal, warm bronze and white. No external fonts, no tracking, no listing data of its own. Pair with the JD Walters Agent Site plugin.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jdw-robert
Tags: real-estate, one-column, custom-menu, accessibility-ready
*/

/* ============================================================
   1. TOKENS
   ============================================================ */
:root{
  --charcoal:#1D1F21;
  --charcoal-deep:#141618;
  --charcoal-soft:#2B2E31;
  --bronze:#A9773F;
  --bronze-bright:#C2914F;
  --bronze-pale:#F2E7D8;
  --white:#ffffff;
  --cream:#FAF8F5;
  --line:#E3DCD2;
  --ink:#1D1F21;
  --ink-muted:#5A6065;
  --ink-invert:#ffffff;
  --ink-invert-muted:#C3C7CA;

  --font-sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-display:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;

  --wrap:1140px;
  --wrap-narrow:760px;
  --gutter:clamp(1.25rem,4vw,2.5rem);
  --radius:4px;
  --shadow:0 1px 2px rgba(20,22,24,.06),0 8px 24px rgba(20,22,24,.06);
  --shadow-lg:0 2px 4px rgba(20,22,24,.06),0 18px 48px rgba(20,22,24,.10);
}

/* ============================================================
   2. RESET / BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
body{
  margin:0;
  font-family:var(--font-sans);
  font-size:1.0625rem;
  line-height:1.65;
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
}
img,svg,video{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.15;letter-spacing:-.01em;margin:0 0 .5em;color:var(--ink)}
h1{font-size:clamp(2.1rem,5.2vw,3.3rem)}
h2{font-size:clamp(1.65rem,3.6vw,2.4rem)}
h3{font-size:clamp(1.2rem,2.2vw,1.5rem)}
h4{font-size:1.075rem;font-family:var(--font-sans);font-weight:700;letter-spacing:0}
p,ul,ol{margin:0 0 1.15em}
ul,ol{padding-left:1.25em}
li{margin-bottom:.4em}
a{color:var(--bronze);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--charcoal)}
strong{font-weight:650}
hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}
:focus-visible{outline:3px solid var(--bronze);outline-offset:2px;border-radius:2px}

.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:0;z-index:999;background:var(--charcoal);color:#fff;padding:.75rem 1.25rem;border-radius:0 0 var(--radius) 0}
.skip-link:focus{left:0;color:#fff}

/* ============================================================
   3. LAYOUT
   ============================================================ */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.wrap-narrow{max-width:var(--wrap-narrow)}
.section{padding-block:clamp(3rem,7vw,5.5rem)}
.section--tight{padding-block:clamp(2.25rem,4.5vw,3.25rem)}
.section--cream{background:var(--cream)}
.section--dark{background:var(--charcoal);color:var(--ink-invert)}
.section--dark h1,.section--dark h2,.section--dark h3,.section--dark h4{color:#fff}
.section--dark p{color:var(--ink-invert-muted)}
.section--dark a{color:var(--bronze-bright)}
.grid{display:grid;gap:clamp(1.25rem,3vw,2rem)}
@media(min-width:700px){
  .grid--2{grid-template-columns:repeat(2,1fr)}
  .grid--3{grid-template-columns:repeat(2,1fr)}
}
@media(min-width:960px){
  .grid--3{grid-template-columns:repeat(3,1fr)}
  .grid--split{grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(2rem,5vw,4rem)}
}

/* ============================================================
   4. TYPE HELPERS
   ============================================================ */
.eyebrow{
  font-family:var(--font-sans);font-size:.75rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--bronze);
  margin:0 0 .85rem;display:block;
}
.section--dark .eyebrow{color:var(--bronze-bright)}
.lede{font-size:clamp(1.1rem,1.9vw,1.25rem);line-height:1.6;color:var(--ink-muted)}
.section--dark .lede{color:var(--ink-invert-muted)}
.measure{max-width:68ch}
.small{font-size:.9rem;color:var(--ink-muted)}
.rule{width:56px;height:3px;background:var(--bronze);border-radius:2px;margin:0 0 1.5rem}

/* ============================================================
   5. BUTTONS
   Works for plain <a class="btn"> and for core button blocks, where the
   class lands on the wrapper and the styling belongs on the inner link.
   ============================================================ */
.btn,
.wp-block-button.btn > .wp-block-button__link{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  font-family:var(--font-sans);font-size:1rem;font-weight:650;line-height:1.2;
  padding:1rem 1.75rem;min-height:52px;border-radius:var(--radius);
  border:2px solid transparent;text-decoration:none;cursor:pointer;
  transition:background-color .15s ease,color .15s ease,border-color .15s ease;
}
/* The block wrapper carries layout only, never the pill itself. */
.wp-block-button.btn{
  display:inline-flex;padding:0;margin:0;border:0;background:none;min-height:0;border-radius:0;
}
.btn--primary,
.wp-block-button.btn--primary > .wp-block-button__link{background:var(--bronze);color:#fff;border-color:var(--bronze)}
.btn--primary:hover,
.wp-block-button.btn--primary > .wp-block-button__link:hover{background:#8F6433;border-color:#8F6433;color:#fff}
.btn--dark,
.wp-block-button.btn--dark > .wp-block-button__link{background:var(--charcoal);color:#fff;border-color:var(--charcoal)}
.btn--dark:hover,
.wp-block-button.btn--dark > .wp-block-button__link:hover{background:#000;border-color:#000;color:#fff}
.btn--ghost,
.wp-block-button.btn--ghost > .wp-block-button__link{background:transparent;color:var(--charcoal);border-color:var(--charcoal)}
.btn--ghost:hover,
.wp-block-button.btn--ghost > .wp-block-button__link:hover{background:var(--charcoal);color:#fff}
.hero .btn--ghost,
.hero .wp-block-button.btn--ghost > .wp-block-button__link,
.section--dark .btn--ghost,
.section--dark .wp-block-button.btn--ghost > .wp-block-button__link{color:#fff;border-color:rgba(255,255,255,.55);background:transparent}
.hero .btn--ghost:hover,
.hero .wp-block-button.btn--ghost > .wp-block-button__link:hover,
.section--dark .btn--ghost:hover,
.section--dark .wp-block-button.btn--ghost > .wp-block-button__link:hover{background:#fff;color:var(--charcoal);border-color:#fff}
.btn-row,.wp-block-buttons.btn-row{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:1.75rem}
.btn--block{width:100%}
@media(max-width:479px){
  .btn,.wp-block-button.btn,.wp-block-button.btn > .wp-block-button__link{width:100%}
}

/* ============================================================
   6. HEADER + NAV
   ============================================================ */
.site-header{position:sticky;top:0;z-index:100;background:var(--charcoal);color:#fff}
.site-header__bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:76px}
.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none;color:#fff;padding-block:.65rem}
.brand img{max-height:52px;width:auto}
.brand__text{display:flex;flex-direction:column;line-height:1.15}
.brand__name{font-family:var(--font-display);font-size:1.2rem;font-weight:600;letter-spacing:.01em}
.brand__sub{font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--bronze-bright);font-weight:600;margin-top:.22rem}
.nav-toggle{
  display:inline-flex;align-items:center;gap:.5rem;background:transparent;color:#fff;
  border:1px solid rgba(255,255,255,.4);border-radius:var(--radius);
  padding:.65rem .9rem;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;min-height:44px;
}
.nav-toggle__bars{display:block;width:18px;height:2px;background:#fff;position:relative}
.nav-toggle__bars::before,.nav-toggle__bars::after{content:"";position:absolute;left:0;width:18px;height:2px;background:#fff}
.nav-toggle__bars::before{top:-6px}.nav-toggle__bars::after{top:6px}
.site-nav ul{list-style:none;margin:0;padding:0}
.site-nav a{color:#fff;text-decoration:none;font-size:.975rem;font-weight:550;display:block}
.site-nav a:hover,.site-nav .current-menu-item>a{color:var(--bronze-bright)}

@media(max-width:1023px){
  .site-nav{display:none;padding:.5rem 0 1.5rem;border-top:1px solid rgba(255,255,255,.14)}
  .site-nav.is-open{display:block}
  .site-nav>ul>li{border-bottom:1px solid rgba(255,255,255,.09)}
  .site-nav a{padding:.95rem .25rem;min-height:48px}
  .site-nav .menu-item-search-homes a{color:var(--bronze-bright);font-weight:700}
}
@media(min-width:1024px){
  .nav-toggle{display:none}
  .site-nav{display:block!important}
  .site-nav>ul{display:flex;align-items:center;gap:clamp(1rem,2.2vw,1.9rem)}
  .site-nav>ul>li{position:relative}
  .site-nav>ul>li>a{padding:1.6rem 0}
  .site-nav .menu-item-search-homes>a{
    background:var(--bronze);color:#fff;padding:.8rem 1.35rem;border-radius:var(--radius);font-weight:650;
  }
  .site-nav .menu-item-search-homes>a:hover{background:#8F6433;color:#fff}
  .site-nav .sub-menu{
    position:absolute;top:100%;left:-1rem;min-width:230px;background:var(--charcoal-soft);
    padding:.5rem 0;border-radius:0 0 var(--radius) var(--radius);box-shadow:var(--shadow-lg);
    opacity:0;visibility:hidden;transform:translateY(6px);transition:.15s ease;
  }
  .site-nav li:hover>.sub-menu,.site-nav li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
  .site-nav .sub-menu a{padding:.7rem 1.35rem}
}

/* ============================================================
   7. HERO
   ============================================================ */
.hero{position:relative;background:var(--charcoal-deep);color:#fff;overflow:hidden}
.hero__media{position:absolute;inset:0}
.hero__media img{width:100%;height:100%;object-fit:cover;opacity:.42}
.hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(20,22,24,.94) 0%,rgba(20,22,24,.80) 45%,rgba(20,22,24,.55) 100%);
}
.hero__inner{position:relative;z-index:2;padding-block:clamp(3.5rem,9vw,7rem)}
.hero h1{color:#fff;max-width:18ch}
.hero .lede{color:#DFE2E4;max-width:56ch}
.hero__meta{margin-top:2.25rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.16);display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem;font-size:.9rem;color:#C3C7CA}
.hero__meta strong{display:block;color:#fff;font-size:1rem}
.hero--page .hero__inner{padding-block:clamp(2.75rem,6vw,4.5rem)}
.hero--page h1{max-width:24ch}

/* ============================================================
   8. CARDS
   ============================================================ */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.4rem,3vw,2rem);height:100%}
.card h3{margin-bottom:.5rem}
.card p:last-child{margin-bottom:0}
.card--link{text-decoration:none;color:inherit;display:block;transition:box-shadow .15s ease,transform .15s ease,border-color .15s ease}
.card--link:hover{box-shadow:var(--shadow);border-color:var(--bronze);color:inherit;transform:translateY(-2px)}
.card--link .card__more{color:var(--bronze);font-weight:650;font-size:.95rem;display:inline-block;margin-top:.65rem}
.card__num{font-family:var(--font-display);font-size:1.6rem;color:var(--bronze);display:block;margin-bottom:.4rem}
.section--cream .card{background:#fff}
.section--dark .card{background:var(--charcoal-soft);border-color:rgba(255,255,255,.12)}

.city-card{position:relative;display:block;border-radius:var(--radius);overflow:hidden;background:var(--charcoal);color:#fff;text-decoration:none;min-height:190px;border:1px solid var(--line)}
.city-card__body{position:relative;z-index:2;padding:1.5rem;display:flex;flex-direction:column;justify-content:flex-end;min-height:190px}
.city-card h3{color:#fff;margin-bottom:.25rem;font-size:1.3rem}
.city-card p{margin:0;font-size:.92rem;color:#D6D9DB}
.city-card:hover h3{color:var(--bronze-bright)}

/* ============================================================
   9. PROSE (page content)
   ============================================================ */
.prose{max-width:72ch}
.prose h2{margin-top:2.5rem}
.prose h3{margin-top:1.9rem}
.prose>:first-child{margin-top:0}
.prose ul{padding-left:1.15em}
.prose li::marker{color:var(--bronze)}
.callout{
  background:var(--cream);border-left:4px solid var(--bronze);
  padding:1.35rem 1.5rem;border-radius:0 var(--radius) var(--radius) 0;margin:2rem 0;
}
.callout p:last-child{margin-bottom:0}
.callout--note{background:#F6F7F8;border-left-color:var(--charcoal);font-size:.95rem;color:var(--ink-muted)}

/* ============================================================
   10. FORMS
   ============================================================ */
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.5rem,4vw,2.5rem);box-shadow:var(--shadow)}
.section--dark .form-card{background:#fff;color:var(--ink)}
.section--dark .form-card h2,.section--dark .form-card h3{color:var(--ink)}
.section--dark .form-card p{color:var(--ink-muted)}
.jdw-form .field{margin-bottom:1.2rem}
.jdw-form .field--half{margin-bottom:1.2rem}
@media(min-width:620px){
  .jdw-form .field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 1.1rem}
}
.jdw-form label{display:block;font-size:.9rem;font-weight:650;margin-bottom:.4rem;color:var(--ink)}
.jdw-form .req{color:#A0342B}
.jdw-form input[type=text],
.jdw-form input[type=email],
.jdw-form input[type=tel],
.jdw-form select,
.jdw-form textarea{
  width:100%;font:inherit;font-size:1rem;color:var(--ink);background:#fff;
  border:1px solid #C9C2B8;border-radius:var(--radius);padding:.8rem .9rem;min-height:50px;
}
.jdw-form textarea{min-height:130px;resize:vertical}
.jdw-form input:focus,.jdw-form select:focus,.jdw-form textarea:focus{border-color:var(--bronze);outline:3px solid rgba(169,119,63,.28);outline-offset:0}
.jdw-form .hint{font-size:.85rem;color:var(--ink-muted);margin:.35rem 0 0}
.jdw-form fieldset{border:0;padding:0;margin:0 0 1.2rem}
.jdw-form legend{font-size:.9rem;font-weight:650;padding:0;margin-bottom:.5rem}
.jdw-form .radio-row{display:flex;flex-wrap:wrap;gap:.65rem}
.jdw-form .radio-row label{
  display:inline-flex;align-items:center;gap:.5rem;font-weight:500;margin:0;
  border:1px solid #C9C2B8;border-radius:var(--radius);padding:.65rem 1rem;min-height:48px;cursor:pointer;
}
.jdw-form .radio-row input{accent-color:var(--bronze);width:18px;height:18px}
.jdw-form .consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.9rem;line-height:1.5;color:var(--ink-muted);font-weight:400}
.jdw-form .consent input{margin-top:.25rem;width:20px;height:20px;flex:0 0 auto;accent-color:var(--bronze)}
.jdw-form .hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-notice{border-radius:var(--radius);padding:1rem 1.15rem;margin-bottom:1.5rem;font-size:.95rem}
.form-notice--ok{background:#EDF6EE;border:1px solid #B7DCBC;color:#23532B}
.form-notice--err{background:#FBEDEC;border:1px solid #E5B9B4;color:#7A2A22}
.form-notice ul{margin:.5rem 0 0;padding-left:1.15em}
.form-disclosure{font-size:.84rem;color:var(--ink-muted);line-height:1.55;margin-top:1.25rem}

/* ============================================================
   11. FAQ
   ============================================================ */
.faq details{border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin-bottom:.75rem}
.faq summary{
  cursor:pointer;list-style:none;padding:1.15rem 1.35rem;font-weight:650;font-size:1.02rem;
  display:flex;justify-content:space-between;gap:1rem;align-items:center;min-height:56px;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--bronze);font-size:1.5rem;line-height:1;font-weight:400;flex:0 0 auto}
.faq details[open] summary::after{content:"\2013"}
.faq .faq__body{padding:0 1.35rem 1.35rem;color:var(--ink-muted)}
.faq .faq__body p:last-child{margin-bottom:0}

/* ============================================================
   12. BREADCRUMBS
   ============================================================ */
.breadcrumbs{font-size:.85rem;color:#B9BDC0;padding-block:.9rem;background:var(--charcoal-deep)}
.breadcrumbs a{color:#DDE0E2;text-decoration:none}
.breadcrumbs a:hover{color:var(--bronze-bright);text-decoration:underline}
.breadcrumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.breadcrumbs li+li::before{content:"/";margin-right:.4rem;color:#6C7276}

/* ============================================================
   13. FOOTER
   ============================================================ */
.site-footer{background:var(--charcoal);color:var(--ink-invert-muted);font-size:.94rem}
.site-footer a{color:#E6E8E9;text-decoration:none}
.site-footer a:hover{color:var(--bronze-bright);text-decoration:underline}
.site-footer h2,.site-footer h3{color:#fff;font-family:var(--font-sans);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin-bottom:1rem}
.footer-top{padding-block:clamp(2.75rem,6vw,4rem);display:grid;gap:2.25rem}
@media(min-width:760px){.footer-top{grid-template-columns:1.4fr 1fr 1fr}}
@media(min-width:1024px){.footer-top{grid-template-columns:1.6fr 1fr 1fr 1.1fr}}
.footer-top ul{list-style:none;margin:0;padding:0}
.footer-top li{margin-bottom:.6rem}
.footer-brand__name{font-family:var(--font-display);font-size:1.35rem;color:#fff;margin:0 0 .5rem}
.footer-broker{border-top:1px solid rgba(255,255,255,.14);padding-block:1.75rem;font-size:.86rem;line-height:1.6}
.footer-broker p{margin:0 0 .75rem;max-width:90ch}
.footer-legal{border-top:1px solid rgba(255,255,255,.14);padding-block:1.5rem 2.25rem;display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center;justify-content:space-between;font-size:.82rem}
.footer-legal ul{display:flex;flex-wrap:wrap;gap:.6rem 1.25rem;list-style:none;margin:0;padding:0}
.fh-badge{display:flex;align-items:center;gap:.6rem;font-size:.82rem;color:#C3C7CA}
.fh-badge svg{flex:0 0 auto}
.footer-cta{background:var(--bronze);color:#fff;padding-block:clamp(2rem,4.5vw,3rem)}
.footer-cta h2{color:#fff;font-size:clamp(1.4rem,3vw,2rem);margin-bottom:.35rem}
.footer-cta p{color:rgba(255,255,255,.92);margin:0}
.footer-cta__inner{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center;justify-content:space-between}
.footer-cta .btn--dark{background:var(--charcoal);border-color:var(--charcoal)}

/* ============================================================
   14. MISC
   ============================================================ */
.contact-strip{display:grid;gap:1.25rem;margin-top:2rem}
@media(min-width:640px){.contact-strip{grid-template-columns:repeat(3,1fr)}}
.contact-strip .item{border-top:2px solid var(--bronze);padding-top:1rem}
.contact-strip .item span{display:block;font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-muted);font-weight:700;margin-bottom:.3rem}
.contact-strip .item a,.contact-strip .item strong{font-size:1.05rem;font-weight:650;color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
.section--dark .contact-strip .item a,.section--dark .contact-strip .item strong{color:#fff}
.section--dark .contact-strip .item span{color:var(--ink-invert-muted)}
.agent-photo{border-radius:var(--radius);overflow:hidden;background:var(--cream);border:1px solid var(--line)}
.agent-photo img{width:100%;aspect-ratio:4/5;object-fit:cover}
.photo-slot{
  display:flex;align-items:center;justify-content:center;text-align:center;
  aspect-ratio:4/5;background:repeating-linear-gradient(45deg,#F1EDE7,#F1EDE7 12px,#EAE4DB 12px,#EAE4DB 24px);
  color:var(--ink-muted);font-size:.9rem;padding:2rem;border-radius:var(--radius);border:1px dashed #C9C2B8;
}
.city-links{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;padding:0;margin:1.5rem 0 0}
.city-links a{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:.55rem 1.1rem;text-decoration:none;color:var(--ink);font-size:.93rem;font-weight:550;background:#fff}
.city-links a:hover{border-color:var(--bronze);color:var(--bronze)}
.section--dark .city-links a{background:transparent;border-color:rgba(255,255,255,.25);color:#fff}
.page-list{list-style:none;padding:0}

/* ============================================================
   15. HERO VIDEO
   A muted, looping background clip behind the hero. Decorative
   only: it carries no information, never plays sound, and is
   replaced by the still background when the visitor has asked
   their system to reduce motion.
   ============================================================ */
.hero__media--video{overflow:hidden;background:var(--charcoal-deep)}
.hero__media--video iframe,
.hero__media--video video{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:100vw;height:56.25vw;min-height:100%;min-width:177.78vh;
  border:0;pointer-events:none;object-fit:cover;opacity:1;
}
.hero__media--video img{width:100%;height:100%;object-fit:cover}
.hero--video .hero__inner{padding-block:clamp(4.5rem,12vw,8.5rem)}

/* Lighter scrim over the video: enough contrast for the headline on the
   left, and the footage stays visible across the rest of the width. */
.hero--video::after{
  background:linear-gradient(100deg,rgba(20,22,24,.88) 0%,rgba(20,22,24,.68) 34%,rgba(20,22,24,.34) 62%,rgba(20,22,24,.14) 100%);
}
@media (max-width:900px){
  .hero--video::after{
    background:linear-gradient(180deg,rgba(20,22,24,.52) 0%,rgba(20,22,24,.66) 45%,rgba(20,22,24,.80) 100%);
  }
}
@media (prefers-reduced-motion:reduce){
  .hero__media--video iframe,
  .hero__media--video video{display:none}
}

/* -----------------------------------------------------------
   City pages: hero search buttons and the valuation / alerts aside
   ----------------------------------------------------------- */
.hero__cta{margin-top:2rem}
.hero .btn--ghost{color:#fff;border-color:rgba(255,255,255,.55);background:transparent}
.hero .btn--ghost:hover{background:#fff;color:var(--charcoal);border-color:#fff}

.city-aside{margin-top:3rem}
.city-aside__inner{display:grid;gap:1.25rem}
.aside-card{background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.25rem,3vw,1.6rem)}
.aside-card h2{margin-top:0;font-size:1.2rem;line-height:1.3}
.aside-card p{font-size:.95rem}
.form-card--compact{padding:clamp(1.25rem,3vw,1.6rem)}
.form-card--compact h2{font-size:1.2rem;line-height:1.3}
.form-card--compact p,.form-card--compact label,.form-card--compact .hint{font-size:.95rem}
.form-card--compact .form-disclosure{font-size:.8rem}

@media(min-width:1024px){
  .prose.citylayout{max-width:var(--wrap)}
  .prose.citylayout>.wp-block-group__inner-container,
  .prose.citylayout.citylayout--flat{display:grid;grid-template-columns:minmax(0,64ch) 20.5rem;column-gap:clamp(2rem,4vw,3.5rem);align-items:start}
  .prose.citylayout>.wp-block-group__inner-container>*,
  .prose.citylayout.citylayout--flat>*{grid-column:1;min-width:0}
  .prose.citylayout>.wp-block-group__inner-container>.city-aside,
  .prose.citylayout.citylayout--flat>.city-aside{grid-column:2;grid-row:1 / span 500;margin-top:0;position:sticky;top:1.5rem}
}


/* ============================================================
   16. ROBERT SITE ADDITIONS
   ============================================================ */
/* Still image hero: brighter than the default so the photo reads. */
.hero--image .hero__media img{opacity:1}
.hero--image .hero__media--image{background:var(--charcoal-deep)}

/* Contact strip with a fourth item (Facebook) wraps to a 2x2 grid. */
@media(min-width:640px){.contact-strip:has(.item:nth-child(4)){grid-template-columns:repeat(2,1fr)}}

/* Form result messages. */
.form-success{background:#EEF6EF;border-left:4px solid #2E7D4F;padding:1rem 1.25rem;border-radius:var(--radius)}
.form-success p{color:var(--ink)!important;margin:0 0 .4rem}
.form-success p:last-child{margin:0}
.form-errors{background:#FBEDEC;border-left:4px solid #B3261E;padding:1rem 1.25rem;border-radius:var(--radius);margin-bottom:1.25rem}
.form-errors p,.form-errors li{color:#7A1B16!important;font-size:.95rem}
.form-errors ul{margin:.25rem 0 0;padding-left:1.1em}

/* Numbered steps inside headings. */
.prose h3 .card__num{display:inline-block;font-size:1.15rem;margin:0 .6rem 0 0;vertical-align:baseline}

/* Header social link. */
.social-link{display:inline-flex;align-items:center;gap:.45rem}
.social-link svg{width:18px;height:18px;flex:0 0 auto;fill:currentColor}

/* Guides list + single guide. */
.post-meta{color:var(--ink-muted);font-size:.92rem;margin-top:-.25rem}
.guide-cta{margin-top:3rem}
.empty-note{color:var(--ink-muted)}
