/*
Theme Name: Houston Realty
Theme URI: https://www.example.com
Author: Your Brokerage Name
Author URI: https://www.example.com
Description: A premium, mobile-first real estate lead-generation theme built for buyer, seller, valuation, and neighborhood funnels. Includes Property, Neighborhood, Testimonial and Lead custom post types, a full Customizer settings panel, widgetized footer, and hooks for IDX/MLS, CRM, and form-builder plugins. Works with the WordPress block editor (Gutenberg), Elementor, Contact Form 7, WPForms, Gravity Forms, Yoast SEO, RankMath, and popular IDX plugins (iHomefinder, IDX Broker, Realtyna, Easy Property Listings).
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: houston-realty
Tags: real-estate, one-column, two-columns, custom-menu, featured-images, full-width-template, theme-options, threaded-comments, translation-ready, block-styles, wide-blocks

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

== Design tokens (also declared as CSS custom properties below) ==
Primary: Deep navy #1C2B41 · Secondary: Warm white #F7F4EC · Accent: Elegant gold #AD8248
*/

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,500&family=Public+Sans:wght@400;500;600;700&display=swap');

:root{
  /* Color tokens */
  --ink:        #141A22;
  --navy:       #1C2B41;
  --navy-light: #2E4262;
  --paper:      #F7F4EC;
  --paper-dim:  #EEE8DA;
  --paper-line: #DED5C1;
  --gold:       #AD8248;
  --gold-deep:  #8A6733;
  --cta:        #A9642E;
  --cta-hover:  #8F5424;
  --green:      #4B6B54;
  --text-muted: #5C6472;
  --white:      #FFFFFF;

  /* Type */
  --serif: 'Fraunces', Georgia, serif;
  --sans: 'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Layout */
  --max: 1240px;
  --radius-s: 4px;
  --radius-m: 8px;
  --line: 1px solid var(--paper-line);
}

/* ---------- Reset & base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
button{font-family:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;font-size:1rem;}
figure{margin:0;}
table{width:100%;border-collapse:collapse;}

/* Focus visibility (accessibility) */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--gold-deep);
  outline-offset:2px;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}
}

.wrap{max-width:var(--max);margin:0 auto;padding:0 32px;}
@media (max-width:640px){ .wrap{padding:0 20px;} }

.skip-link{position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;padding:12px 18px;z-index:999;}
.skip-link:focus{left:12px;top:12px;}

/* ---------- Typography ---------- */
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.12;margin:0;color:var(--navy);}
h1{font-size:clamp(2.4rem,4.6vw,4rem);}
h2{font-size:clamp(1.9rem,3.2vw,2.7rem);}
h3{font-size:1.4rem;}
p{margin:0 0 1em;max-width:62ch;}
.eyebrow{font-family:var(--serif);font-style:italic;font-weight:500;color:var(--gold-deep);font-size:1.05rem;display:block;margin-bottom:10px;}
.lede{font-size:1.15rem;color:var(--text-muted);max-width:52ch;}
.center{text-align:center;margin-left:auto;margin-right:auto;}

/* ---------- WordPress core / editor compatibility ---------- */
.alignwide{max-width:1100px;margin-left:auto;margin-right:auto;}
.alignfull{max-width:none;width:100%;}
.aligncenter{margin-left:auto;margin-right:auto;display:block;}
.alignleft{float:left;margin:0 20px 16px 0;}
.alignright{float:right;margin:0 0 16px 20px;}
.wp-caption-text{font-size:.85rem;color:var(--text-muted);}
.entry-content > *{max-width:72ch;}
.entry-content .alignwide, .entry-content .alignfull{max-width:none;}
.entry-content table{margin-bottom:1.5em;}
.entry-content table td, .entry-content table th{border:var(--line);padding:8px 12px;}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.wp-block-quote, blockquote{border-left:3px solid var(--gold);margin:0 0 1.5em;padding-left:20px;font-family:var(--serif);font-size:1.15rem;color:var(--navy);}
.wp-block-button__link, .entry-content .btn{display:inline-flex;}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 26px;border-radius:var(--radius-s);border:1px solid transparent;font-weight:600;font-size:.98rem;transition:background .15s ease, color .15s ease, border-color .15s ease;white-space:nowrap;}
.btn-primary{background:var(--cta);color:var(--white);}
.btn-primary:hover{background:var(--cta-hover);color:var(--white);}
.btn-outline{background:transparent;border-color:var(--navy);color:var(--navy);}
.btn-outline:hover{background:var(--navy);color:var(--white);}
.btn-outline-light{background:transparent;border-color:rgba(255,255,255,.55);color:var(--white);}
.btn-outline-light:hover{background:rgba(255,255,255,.12);border-color:var(--white);}
.btn-ghost{background:transparent;color:var(--navy);text-decoration:underline;text-underline-offset:4px;padding:14px 4px;}
.btn-block{width:100%;}
.btn-sm{padding:10px 18px;font-size:.9rem;}

/* ---------- Header / Nav ---------- */
.site-header{position:sticky;top:0;z-index:200;background:var(--paper);border-bottom:var(--line);}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:84px;gap:24px;}
.brand{font-family:var(--serif);font-size:1.4rem;font-weight:600;color:var(--navy);display:flex;flex-direction:column;line-height:1.05;}
.brand img{max-height:44px;width:auto;}
.brand small{font-family:var(--sans);font-weight:500;font-size:.62rem;letter-spacing:.04em;color:var(--gold-deep);margin-top:2px;}
.main-nav ul{display:flex;gap:30px;align-items:center;}
.main-nav a{font-size:.96rem;font-weight:500;color:var(--navy);padding:6px 0;border-bottom:2px solid transparent;}
.main-nav a:hover, .main-nav .current-menu-item > a{border-bottom-color:var(--gold);}
.main-nav .sub-menu{display:none;}
.header-cta{display:flex;align-items:center;gap:14px;}
.header-phone{font-weight:600;font-size:.95rem;color:var(--navy);}
.nav-toggle{display:none;background:none;border:0;padding:8px;}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0;}

@media (max-width:960px){
  .main-nav{position:fixed;inset:84px 0 0 0;background:var(--paper);overflow-y:auto;transform:translateX(100%);transition:transform .25s ease;padding:28px 24px;}
  .main-nav ul{flex-direction:column;align-items:flex-start;gap:6px;width:100%;}
  .main-nav a{width:100%;padding:14px 0;border-bottom:var(--line);font-size:1.1rem;}
  .main-nav.open{transform:translateX(0);}
  .nav-toggle{display:block;}
  .header-phone{display:none;}
}

/* ---------- Hero ---------- */
.hero{position:relative;background:var(--navy);color:var(--white);overflow:hidden;}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;min-height:640px;gap:40px;}
.hero-copy{padding:64px 0 96px;position:relative;z-index:2;}
.hero-copy h1{color:var(--white);}
.hero-copy .lede{color:rgba(255,255,255,.78);}
.hero-photo{position:relative;height:100%;min-height:520px;}
@media (max-width:960px){
  .hero-grid{grid-template-columns:1fr;min-height:auto;}
  .hero-photo{min-height:280px;order:-1;}
  .hero-copy{padding:36px 0 48px;}
}
.trust-strip{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:28px;}
.trust-strip span{font-size:.88rem;color:rgba(255,255,255,.72);display:flex;align-items:center;gap:8px;}
.trust-strip span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold);flex:none;}

/* ---------- Search card ---------- */
.search-card{background:var(--white);border-radius:var(--radius-m);box-shadow:0 24px 48px -20px rgba(20,26,34,.35);padding:28px;margin-top:-64px;position:relative;z-index:5;}
.search-tabs{display:flex;gap:4px;margin-bottom:18px;border-bottom:var(--line);}
.search-tabs button{background:none;border:0;padding:10px 4px;margin-right:22px;font-weight:600;color:var(--text-muted);border-bottom:2px solid transparent;}
.search-tabs button.active{color:var(--navy);border-bottom-color:var(--cta);}
.search-fields{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:14px;align-items:end;}
.field label{display:block;font-size:.78rem;font-weight:600;color:var(--text-muted);margin-bottom:6px;}
.field select,.field input{width:100%;padding:12px;border:1px solid var(--paper-line);border-radius:var(--radius-s);background:var(--paper);color:var(--ink);}
@media (max-width:960px){ .search-fields{grid-template-columns:1fr 1fr;} .search-fields .btn{grid-column:1/-1;} }

/* ---------- Sections ---------- */
section, .section{padding:88px 0;}
@media (max-width:640px){ section, .section{padding:56px 0;} }
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:44px;flex-wrap:wrap;}
.section-alt{background:var(--paper-dim);}
.section-navy{background:var(--navy);color:var(--white);}
.section-navy h2, .section-navy h3{color:var(--white);}
.section-navy .lede{color:rgba(255,255,255,.75);}

/* ---------- Grids ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
@media (max-width:960px){ .grid-3,.grid-4{grid-template-columns:1fr 1fr;} }
@media (max-width:640px){ .grid-3,.grid-4,.grid-2{grid-template-columns:1fr;} }

/* ---------- Property cards ---------- */
.p-card{background:var(--white);border:var(--line);border-radius:var(--radius-m);overflow:hidden;display:flex;flex-direction:column;}
.p-card .photo{position:relative;aspect-ratio:4/3;background-size:cover;background-position:center;background-color:var(--paper-dim);display:flex;align-items:center;justify-content:center;color:var(--navy);}
.p-card .tag{position:absolute;top:14px;left:14px;background:var(--navy);color:var(--white);font-size:.72rem;font-weight:600;padding:5px 10px;border-radius:3px;}
.p-card .fav{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;background:rgba(20,26,34,.55);border:0;color:var(--white);display:flex;align-items:center;justify-content:center;font-size:1rem;}
.p-card .fav.active{color:var(--gold);}
.p-card .body{padding:18px 18px 20px;flex:1;display:flex;flex-direction:column;}
.p-card .price{font-family:var(--serif);font-size:1.4rem;color:var(--navy);margin-bottom:4px;}
.p-card .addr{font-size:.92rem;color:var(--ink);margin-bottom:10px;}
.p-card .stats{display:flex;gap:14px;font-size:.85rem;color:var(--text-muted);margin-bottom:14px;border-top:var(--line);padding-top:12px;}
.p-card .view{margin-top:auto;font-weight:600;font-size:.92rem;color:var(--cta);}

/* ---------- Neighborhood cards ---------- */
.n-card{position:relative;border-radius:var(--radius-m);overflow:hidden;aspect-ratio:3/4;background-size:cover;background-position:center;display:block;}
.n-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg, rgba(20,26,34,.85), rgba(20,26,34,0) 60%);}
.n-card .label{position:absolute;left:18px;bottom:16px;right:18px;z-index:2;color:var(--white);}
.n-card .label h3{color:var(--white);}
.n-card .label span{font-size:.85rem;color:rgba(255,255,255,.8);}

/* ---------- Testimonials ---------- */
.t-card{background:var(--white);border:var(--line);border-radius:var(--radius-m);padding:26px;}
.t-card p{font-family:var(--serif);font-size:1.12rem;color:var(--ink);margin-bottom:16px;}
.t-card .who{font-size:.88rem;color:var(--text-muted);font-weight:600;}
.stars{color:var(--gold);letter-spacing:2px;margin-bottom:12px;display:block;}

/* ---------- Steps ---------- */
.steps{counter-reset:step;}
.step{display:flex;gap:20px;padding:22px 0;border-bottom:var(--line);}
.step:last-child{border-bottom:0;}
.step .num{counter-increment:step;font-family:var(--serif);font-size:1.5rem;color:var(--gold-deep);flex:none;width:46px;}
.step .num::before{content:counter(step);}

/* ---------- Forms ---------- */
.form-card{background:var(--white);border-radius:var(--radius-m);border:var(--line);padding:32px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
@media (max-width:640px){.form-row{grid-template-columns:1fr;}}
.form-field{margin-bottom:16px;}
.form-field label{display:block;font-size:.85rem;font-weight:600;color:var(--navy);margin-bottom:6px;}
.form-field input,.form-field select,.form-field textarea{width:100%;padding:12px 14px;border:1px solid var(--paper-line);border-radius:var(--radius-s);background:var(--paper);}
.form-field textarea{min-height:110px;resize:vertical;}
.radio-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.radio-card{border:1px solid var(--paper-line);border-radius:var(--radius-s);padding:12px 14px;font-size:.92rem;cursor:pointer;display:flex;align-items:center;gap:10px;}
.radio-card input{margin:0;}
.radio-card:has(input:checked){border-color:var(--gold-deep);background:#FBF6EC;}
.form-note{font-size:.78rem;color:var(--text-muted);margin-top:14px;}
.form-success{background:#EEF3EE;border:1px solid #cfe0d0;color:var(--green);border-radius:var(--radius-s);padding:16px;margin-bottom:16px;}
.form-error{background:#FBEEEA;border:1px solid #eecdc0;color:#8a3b1f;border-radius:var(--radius-s);padding:16px;margin-bottom:16px;}

/* Generic hardening so third-party plugin forms (CF7 / WPForms / Gravity Forms) inherit theme look without being overridden aggressively */
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 textarea, .wpcf7 select,
.wpforms-container input[type=text], .wpforms-container input[type=email], .wpforms-container textarea, .wpforms-container select,
.gform_wrapper input[type=text], .gform_wrapper input[type=email], .gform_wrapper textarea, .gform_wrapper select{
  width:100%;padding:12px 14px;border:1px solid var(--paper-line);border-radius:var(--radius-s);background:var(--paper);font-family:var(--sans);
}
.wpcf7-submit, .wpforms-submit, .gform_button{
  background:var(--cta);color:#fff;border:0;border-radius:var(--radius-s);padding:14px 26px;font-weight:600;
}
.wpcf7-submit:hover, .wpforms-submit:hover, .gform_button:hover{background:var(--cta-hover);}

/* ---------- Multi-step ---------- */
.mstep-bar{display:flex;gap:8px;margin-bottom:28px;}
.mstep-bar span{height:4px;flex:1;background:var(--paper-line);border-radius:2px;}
.mstep-bar span.done{background:var(--gold-deep);}
.mstep{display:none;}
.mstep.active{display:block;}
.mstep-nav{display:flex;justify-content:space-between;margin-top:22px;}

/* ---------- FAQ ---------- */
.faq-item{border-bottom:var(--line);}
.faq-item summary{padding:20px 0;font-weight:600;font-family:var(--serif);font-size:1.1rem;color:var(--navy);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-size:1.4rem;color:var(--gold-deep);font-family:var(--sans);}
.faq-item[open] summary::after{content:"\2013";}
.faq-item p{padding-bottom:20px;color:var(--text-muted);}

/* ---------- Calculator ---------- */
.calc-result{background:var(--paper-dim);border-radius:var(--radius-m);padding:22px;}
.calc-result .total{font-family:var(--serif);font-size:2.2rem;color:var(--navy);margin-bottom:14px;}
.calc-row{display:flex;justify-content:space-between;font-size:.92rem;padding:8px 0;border-bottom:var(--line);}
.calc-row:last-of-type{border-bottom:0;}

/* ---------- Footer (widgetized) ---------- */
.site-footer{background:var(--navy);color:rgba(255,255,255,.75);padding:64px 0 28px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:32px;margin-bottom:48px;}
.footer-grid h4, .footer-grid .widget-title{color:var(--white);font-family:var(--sans);font-size:.85rem;font-weight:700;margin-bottom:14px;}
.footer-grid li{margin-bottom:9px;font-size:.9rem;}
.footer-grid a:hover{color:var(--white);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.15);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.8rem;color:rgba(255,255,255,.55);}
@media (max-width:960px){ .footer-grid{grid-template-columns:1fr 1fr;} }

/* ---------- Sticky mobile CTA ---------- */
.sticky-mobile{display:none;position:fixed;bottom:0;left:0;right:0;z-index:300;background:var(--white);border-top:var(--line);padding:12px 16px;gap:10px;box-shadow:0 -6px 18px rgba(0,0,0,.08);}
.sticky-mobile .btn{flex:1;}
@media (max-width:760px){ .sticky-mobile{display:flex;} body{padding-bottom:74px;} }

/* ---------- Exit intent popup ---------- */
.popup-overlay{position:fixed;inset:0;background:rgba(20,26,34,.55);z-index:500;display:none;align-items:center;justify-content:center;padding:20px;}
.popup-overlay.show{display:flex;}
.popup-card{background:var(--white);border-radius:var(--radius-m);max-width:440px;width:100%;padding:36px;position:relative;}
.popup-card .close{position:absolute;top:14px;right:16px;background:none;border:0;font-size:1.2rem;color:var(--text-muted);}

/* ---------- Chat widget ---------- */
.chat-launcher{position:fixed;bottom:24px;right:24px;z-index:250;background:var(--navy);color:var(--white);width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.4rem;box-shadow:0 8px 20px rgba(20,26,34,.3);border:0;}
@media (max-width:760px){ .chat-launcher{bottom:88px;} }
.chat-panel{position:fixed;bottom:92px;right:24px;z-index:250;background:var(--white);border-radius:var(--radius-m);width:300px;box-shadow:0 20px 50px rgba(20,26,34,.25);display:none;overflow:hidden;}
.chat-panel.show{display:block;}
.chat-head{background:var(--navy);color:var(--white);padding:16px;font-weight:600;}
.chat-body{padding:16px;display:flex;flex-direction:column;gap:8px;}
.chat-opt{border:1px solid var(--paper-line);border-radius:var(--radius-s);padding:10px 12px;text-align:left;background:var(--paper);font-size:.9rem;}
.chat-opt:hover{border-color:var(--gold-deep);}

/* ---------- Misc ---------- */
.badge{display:inline-block;background:var(--paper-dim);color:var(--navy);font-size:.78rem;font-weight:600;padding:6px 12px;border-radius:20px;margin:0 8px 8px 0;}
.divider-gold{width:56px;height:2px;background:var(--gold);margin:0 0 20px;}
.text-muted{color:var(--text-muted);}
.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;}
@media (max-width:860px){ .two-col{grid-template-columns:1fr;} }
.map-mini{aspect-ratio:16/9;background:var(--paper-dim);border-radius:var(--radius-s);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.85rem;margin-top:14px;}
.fact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:22px 0;border-top:var(--line);border-bottom:var(--line);margin:24px 0;}
@media (max-width:640px){ .fact-grid{grid-template-columns:1fr 1fr;} }
.fact-grid .fact strong{display:block;font-family:var(--serif);font-size:1.3rem;color:var(--navy);}
.fact-grid .fact span{font-size:.82rem;color:var(--text-muted);}
.feature-list{columns:2;gap:24px;}
.feature-list li{margin-bottom:8px;font-size:.94rem;break-inside:avoid;padding-left:18px;position:relative;}
.feature-list li::before{content:"\2014";position:absolute;left:0;color:var(--gold-deep);}
@media (max-width:640px){ .feature-list{columns:1;} }

/* Skip-to-content and screen-reader text (accessibility, required by WP theme review) */
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);word-wrap:normal!important;height:1px;width:1px;overflow:hidden;}
