/*
Theme Name: George Brennan Real Estate Redesign
Theme URI: https://GeorgeBrennanRealEstate.com/
Author: George Brennan / OpenAI-assisted build
Description: Custom responsive WordPress theme for George Brennan, Realty Executives Main Street, with IDX Broker-friendly layouts.
Version: 2.0.0
Text Domain: george-brennan-redesign
*/

:root{
  --gb-blue:#1e3a8a;
  --gb-navy:#071c36;
  --gb-red:#dc2626;
  --gb-red-dark:#b91c1c;
  --gb-ink:#172033;
  --gb-muted:#64748b;
  --gb-ice:#f8fafc;
  --gb-line:#dbe5f2;
  --gb-white:#fff;
  --gb-shadow:0 18px 45px rgba(15,23,42,.14);
  --gb-radius:18px;
  --gb-max:1220px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--gb-ink);font-family:"Plus Jakarta Sans",Arial,sans-serif;line-height:1.55}
img{max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.gb-container{width:min(calc(100% - 36px),var(--gb-max));margin-inline:auto}
.gb-kicker{display:inline-block;color:var(--gb-red);font-weight:900;letter-spacing:.15em;text-transform:uppercase;font-size:.74rem;margin-bottom:10px}
.gb-title{font-family:Montserrat,Arial,sans-serif;font-weight:900;line-height:1.07;color:var(--gb-navy);margin:0}
.gb-section{padding:72px 0}
.gb-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:11px 18px;border-radius:10px;font-weight:850;border:2px solid transparent;transition:.2s ease;cursor:pointer;text-align:center}
.gb-btn:hover{transform:translateY(-1px)}
.gb-btn-red{background:var(--gb-red);color:#fff;border-color:var(--gb-red)}
.gb-btn-red:hover{background:var(--gb-red-dark)}
.gb-btn-blue{background:var(--gb-blue);color:#fff;border-color:var(--gb-blue)}
.gb-btn-outline{background:#fff;color:var(--gb-blue);border-color:var(--gb-blue)}

/* Header */
.gb-topbar{background:var(--gb-blue);color:#fff;font-size:.78rem;border-bottom:3px solid var(--gb-red)}
.gb-topbar-inner{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.gb-topbar strong{font-weight:850}
.gb-topbar a:hover{text-decoration:underline}
.gb-header{position:sticky;top:0;z-index:1000;background:#fff;border-bottom:1px solid var(--gb-line);box-shadow:0 8px 25px rgba(15,23,42,.08)}
.admin-bar .gb-header{top:32px}
.gb-nav{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:22px}
.gb-brand{display:flex;align-items:center;gap:12px;min-width:250px}
.gb-monogram{width:49px;height:49px;border-radius:11px;background:var(--gb-blue);color:#fff;border:3px solid var(--gb-red);display:grid;place-items:center;font-family:Montserrat,sans-serif;font-weight:900;font-size:1.2rem;letter-spacing:-.05em}
.gb-brand-text strong{display:block;color:var(--gb-blue);font-family:Montserrat,sans-serif;font-weight:900;letter-spacing:.08em;font-size:1.15rem;line-height:1.05}
.gb-brand-text span{display:block;color:var(--gb-red);font-size:.66rem;font-weight:900;letter-spacing:.16em;margin-top:4px;text-transform:uppercase}
.gb-menu{display:flex;align-items:center;gap:22px;font-weight:800;color:var(--gb-blue);font-size:.89rem}
.gb-menu a{padding:9px 0;border-bottom:2px solid transparent;white-space:nowrap}
.gb-menu a:hover{color:var(--gb-red);border-color:var(--gb-red)}
.gb-nav-actions{display:flex;gap:10px;align-items:center}
.gb-mobile-toggle{display:none;width:46px;height:44px;border:2px solid var(--gb-blue);border-radius:9px;background:#fff;color:var(--gb-blue);font-weight:900;font-size:1.35rem}
.gb-mobile-menu{display:none;background:#fff;border-top:1px solid var(--gb-line);padding:10px 18px 18px}
.gb-mobile-menu.is-open{display:block}
.gb-mobile-menu a{display:block;padding:12px 2px;border-bottom:1px solid #edf2f7;color:var(--gb-blue);font-weight:850}

/* Hero */
.gb-hero{position:relative;min-height:680px;display:flex;align-items:center;background-image:linear-gradient(90deg,rgba(7,28,54,.96) 0%,rgba(7,28,54,.88) 35%,rgba(7,28,54,.48) 62%,rgba(7,28,54,.10) 100%),url('assets/images/hero-country-home.png');background-size:cover;background-position:center;overflow:hidden;border-bottom:5px solid var(--gb-red)}
.gb-hero-content{width:min(710px,100%);padding:76px 0;color:#fff}
.gb-pill{display:inline-flex;align-items:center;background:var(--gb-red);border:2px solid #fff;color:#fff;border-radius:999px;padding:7px 12px;font-weight:900;font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;box-shadow:0 8px 18px rgba(0,0,0,.16)}
.gb-hero h1{font-family:Montserrat,sans-serif;font-size:clamp(2.35rem,5vw,4.4rem);line-height:1.02;margin:18px 0 17px;font-weight:900;text-shadow:0 3px 15px rgba(0,0,0,.25)}
.gb-hero h1 span{color:#ff5a5a}
.gb-hero p{font-size:1.08rem;max-width:660px;color:#eef4ff;margin:0 0 28px}
.gb-search-card{background:#fff;color:var(--gb-ink);border:4px solid var(--gb-blue);border-radius:18px;padding:23px;box-shadow:var(--gb-shadow)}
.gb-search-tabs{display:flex;align-items:center;gap:10px;padding-bottom:12px;margin-bottom:16px;border-bottom:2px solid var(--gb-red)}
.gb-search-tabs strong{background:var(--gb-blue);color:#fff;padding:9px 12px;border-radius:8px;font-size:.85rem}
.gb-search-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr auto;gap:12px;align-items:end}
.gb-field label{display:block;color:var(--gb-blue);font-size:.69rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}
.gb-field select,.gb-field input,.gb-field textarea{width:100%;min-height:44px;border:2px solid #c7d6eb;border-radius:9px;background:#f8fafc;padding:10px 11px;color:var(--gb-ink);font-weight:700;outline:none}
.gb-field select:focus,.gb-field input:focus,.gb-field textarea:focus{border-color:var(--gb-red)}

/* Section headings/cards */
.gb-section-head{display:flex;justify-content:space-between;align-items:end;gap:22px;padding-bottom:16px;margin-bottom:30px;border-bottom:4px solid var(--gb-red)}
.gb-section-head h2{font-size:clamp(1.8rem,3vw,2.65rem)}
.gb-section-head p{margin:8px 0 0;color:var(--gb-muted);font-weight:650}
.gb-section-head a{color:var(--gb-blue);font-weight:900}
.gb-section-head a:hover{color:var(--gb-red)}
.gb-badge{display:inline-block;background:var(--gb-red);color:#fff;border:1px solid var(--gb-blue);padding:5px 10px;border-radius:6px;font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}

/* IDX */
.gb-idx-wrap{width:100%;min-width:0;overflow:hidden}
.gb-idx-wrap img{max-width:100%!important;height:auto!important}
.gb-idx-wrap iframe{max-width:100%!important;width:100%!important}
.gb-idx-wrap table{max-width:100%!important}
.gb-idx-wrap .impress-showcase,.gb-idx-wrap .impress-showcase-property,.gb-idx-wrap .IDX-resultsCell,.gb-idx-wrap [class*="IDX-"]{max-width:100%!important}
.gb-idx-wrap .impress-showcase{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px!important;width:100%!important}
.gb-idx-wrap .impress-showcase-property{width:auto!important;float:none!important;margin:0!important}
.gb-idx-cta{text-align:center;margin-top:30px}
.gb-idx-note{font-size:.82rem;color:var(--gb-muted);margin-top:10px;text-align:center}

/* Specialty cards */
.gb-specialties{background:var(--gb-ice);border-top:1px solid var(--gb-line);border-bottom:1px solid var(--gb-line)}
.gb-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.gb-card{background:#fff;border:2px solid var(--gb-blue);border-radius:14px;padding:23px;box-shadow:0 7px 18px rgba(30,58,138,.08);transition:.2s}
.gb-card:hover{border-color:var(--gb-red);transform:translateY(-3px)}
.gb-card h3{margin:0 0 8px;color:var(--gb-blue);font-family:Montserrat,sans-serif;font-size:1rem}
.gb-card p{margin:0;color:var(--gb-muted);font-size:.9rem}

/* Home worth */
.gb-worth{background:var(--gb-blue);color:#fff;border-top:5px solid var(--gb-red);border-bottom:5px solid var(--gb-red)}
.gb-worth-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:48px;align-items:center}
.gb-worth h2{color:#fff;font-size:clamp(2rem,4vw,3rem)}
.gb-worth p{color:#dbeafe}
.gb-worth-card{background:#fff;color:var(--gb-ink);border:4px solid var(--gb-red);border-radius:18px;padding:28px;box-shadow:var(--gb-shadow)}
.gb-worth-card h3{color:var(--gb-blue);font-family:Montserrat,sans-serif;margin:0 0 5px}
.gb-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.gb-form-grid .full{grid-column:1/-1}
.gb-alert{margin:0 0 18px;padding:12px 14px;border-radius:8px;background:#eaf7ee;color:#155d2f;border:1px solid #a9dbb8;font-weight:750}

/* About */
.gb-about-grid{display:grid;grid-template-columns:minmax(300px,.8fr) 1.2fr;gap:55px;align-items:center}
.gb-headshot{position:relative}
.gb-headshot img{display:block;width:100%;aspect-ratio:4/4.7;object-fit:cover;object-position:center top;border:5px solid var(--gb-blue);border-radius:20px;box-shadow:var(--gb-shadow);background:#111}
.gb-about h2{font-size:clamp(2rem,4vw,3rem)}
.gb-about p{color:#475569;font-size:.98rem}
.gb-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:26px;padding-top:22px;border-top:3px solid var(--gb-red)}
.gb-stat strong{display:block;color:var(--gb-blue);font-family:Montserrat,sans-serif;font-size:1.5rem}
.gb-stat span{font-size:.76rem;color:var(--gb-muted);font-weight:700}
.gb-disclaimer{margin-top:12px;color:#7b8798;font-size:.69rem}

/* Blog */
.gb-blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.gb-blog-card{background:#fff;border:2px solid var(--gb-blue);border-radius:14px;overflow:hidden;box-shadow:0 8px 22px rgba(15,23,42,.08)}
.gb-blog-card img{width:100%;aspect-ratio:16/9;object-fit:cover;border-bottom:3px solid var(--gb-red)}
.gb-blog-card-body{padding:20px}
.gb-blog-card h3{font-family:Montserrat,sans-serif;color:var(--gb-blue);font-size:1.05rem;margin:7px 0}
.gb-blog-card p{color:var(--gb-muted);font-size:.86rem}
.gb-blog-card a{color:var(--gb-red);font-weight:900;font-size:.82rem}

/* Contact/footer */
.gb-contact{background:#eef3f8}
.gb-contact-card{max-width:900px;margin:auto;background:#fff;border:4px solid var(--gb-red);border-radius:18px;padding:32px;box-shadow:var(--gb-shadow)}
.gb-contact-card h2{text-align:center;font-size:clamp(1.8rem,3vw,2.5rem)}
.gb-contact-card>p{text-align:center;color:var(--gb-muted)}
.gb-footer{background:var(--gb-navy);color:#dce6f2;border-top:5px solid var(--gb-red);padding:52px 0 26px}
.gb-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:35px}
.gb-footer h4{color:#fff;font-family:Montserrat,sans-serif;margin-top:0}
.gb-footer a:hover{color:#fff}
.gb-footer ul{padding:0;margin:0;list-style:none}
.gb-footer li{margin:8px 0}
.gb-copyright{border-top:1px solid rgba(255,255,255,.12);margin-top:30px;padding-top:20px;text-align:center;font-size:.76rem;color:#94a3b8}

/* Inner pages */
.gb-page-hero{background:linear-gradient(135deg,var(--gb-navy),var(--gb-blue));color:#fff;padding:52px 0;border-bottom:5px solid var(--gb-red)}
.gb-page-hero h1{color:#fff;font-size:clamp(2rem,4vw,3rem)}
.gb-page-content{padding:58px 0;min-height:50vh}
.gb-page-content a{color:var(--gb-blue);text-decoration:underline}

@media(max-width:1050px){
 .gb-menu{display:none}.gb-mobile-toggle{display:block}.gb-nav-actions .gb-btn-outline{display:none}
 .gb-search-grid{grid-template-columns:1fr 1fr}.gb-search-grid .gb-search-submit{grid-column:1/-1}
 .gb-card-grid{grid-template-columns:repeat(2,1fr)}
 .gb-idx-wrap .impress-showcase{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:782px){.admin-bar .gb-header{top:46px}}
@media(max-width:760px){
 .gb-topbar{display:none}.gb-nav{min-height:76px}.gb-brand{min-width:0}.gb-brand-text strong{font-size:1rem}.gb-brand-text span{font-size:.55rem}.gb-monogram{width:42px;height:42px}
 .gb-nav-actions{display:none}.gb-hero{min-height:610px;background-position:62% center}.gb-hero-content{padding:54px 0}.gb-search-card{padding:16px}.gb-search-grid{grid-template-columns:1fr}.gb-search-grid .gb-search-submit{grid-column:auto}
 .gb-section{padding:52px 0}.gb-section-head{align-items:flex-start;flex-direction:column}.gb-card-grid,.gb-blog-grid{grid-template-columns:1fr}.gb-worth-grid,.gb-about-grid{grid-template-columns:1fr;gap:28px}.gb-form-grid{grid-template-columns:1fr}.gb-form-grid .full{grid-column:auto}.gb-stats{grid-template-columns:repeat(2,1fr)}
 .gb-footer-grid{grid-template-columns:1fr}.gb-contact-card{padding:22px}.gb-idx-wrap{overflow:visible!important}.gb-idx-wrap .impress-showcase{grid-template-columns:1fr!important;gap:18px!important}.gb-idx-wrap .impress-showcase-property{min-width:0!important;max-width:100%!important}.gb-idx-wrap a,.gb-idx-wrap button{max-width:100%!important;white-space:normal!important;word-break:normal!important}.gb-idx-wrap *{min-width:0!important}
}
@media(max-width:470px){
 .gb-container{width:min(calc(100% - 24px),var(--gb-max))}.gb-brand-text span{display:none}.gb-hero h1{font-size:2.35rem}.gb-hero p{font-size:.95rem}.gb-search-tabs{flex-direction:column;align-items:flex-start}.gb-stats{grid-template-columns:1fr 1fr}.gb-btn{width:100%}
}
