/* ============================================================
   RealtyGeek+ — Dark Theme (matching RealtyGeek.ca)
   ============================================================ */

/* --- Reset/Base --- */
[class^="rgp-"]{box-sizing:border-box}[class^="rgp-"] *{box-sizing:border-box}
.rgp-homepage,.rgp-listings-grid,.rgp-neighbourhoods-grid,.rgp-market-dashboard,.rgp-calc,.rgp-buyer-guide,.rgp-compare-tool,.rgp-property-tools,.rgp-realtor-directory,.rgp-submit-listing-form,.rgp-agent-card,.rgp-search-bar,.rgp-portal-form,.rgp-portal-dashboard{
    font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#ccc;line-height:1.6}

/* --- Color Variables via classes --- */
.rgp-green{color:#8bc34a}
.rgp-red{color:#c0392b}
a.rgp-link{color:#8bc34a;text-decoration:none;font-weight:600;font-size:.95em}
a.rgp-link:hover{text-decoration:underline;color:#a4d65e}
.rgp-link-dark{color:#8bc34a;font-weight:600;font-size:.9em}

/* --- Buttons --- */
.rgp-btn{display:inline-block;padding:14px 28px;border-radius:4px;font-weight:700;font-size:.9em;text-decoration:none;transition:all .2s;cursor:pointer;border:none;text-align:center;text-transform:uppercase;letter-spacing:1px;-webkit-tap-highlight-color:transparent;min-height:48px}
.rgp-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.4)}
.rgp-btn-green{background:#8bc34a;color:#1a1a1a}
.rgp-btn-green:hover{background:#9cd35b;color:#1a1a1a}
.rgp-btn-outline{background:transparent;color:#ccc;border:2px solid #666}
.rgp-btn-outline:hover{border-color:#8bc34a;color:#8bc34a}
.rgp-btn-accent{background:#8bc34a;color:#1a1a1a}
.rgp-btn-accent:hover{background:#9cd35b}
.rgp-btn-white{background:#fff;color:#333}
.rgp-btn-red{background:#c0392b;color:#fff}

/* ============ DARK HOMEPAGE ============ */
.rgp-dark{background:#1a1a1a;color:#ccc}

/* Hero */
.rgp-hero-dark{background:linear-gradient(180deg,#222 0%,#1a1a1a 100%);padding:60px 20px 40px;text-align:center;border-bottom:3px solid #333}
.rgp-hero-dark h1{font-size:2em;margin:0 0 12px;font-weight:300;color:#fff}
.rgp-hero-dark .rgp-hero-subtitle{font-size:1.2em;margin:0 0 12px;color:#999;font-weight:300}
.rgp-hero-dark .rgp-hero-desc{font-size:.95em;margin:0 auto 24px;color:#777;max-width:700px;line-height:1.6}
.rgp-hero-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* Map Section */
.rgp-map-section{border-bottom:3px solid #333}
#rgp-homepage-map{background:#111}
.rgp-map-pin .rgp-pin{width:16px;height:16px;background:#8bc34a;border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px rgba(0,0,0,.5)}
.rgp-map-popup{font-family:'Helvetica Neue',sans-serif;font-size:13px;line-height:1.5}
.rgp-map-popup strong{font-size:15px;color:#333}
.rgp-map-popup a{color:#8bc34a;text-decoration:none;font-weight:600}

/* Features Grid (dark) */
.rgp-features-section{padding:40px 20px;background:#222;border-bottom:3px solid #333}
.rgp-features-grid-dark{display:grid;grid-template-columns:1fr;gap:0;max-width:1100px;margin:0 auto}
.rgp-feature-card-dark{display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 20px;text-decoration:none;color:#ccc;transition:background .2s;border-bottom:1px solid #333}
.rgp-feature-card-dark:hover{background:#2a2a2a}
.rgp-feature-icon-dark{font-size:2.5em;margin-bottom:12px;display:flex;align-items:center;justify-content:center;width:70px;height:70px;background:#333;border-radius:50%}
.rgp-feature-card-dark h3{font-size:1.05em;margin:0 0 8px;color:#fff;font-weight:600}
.rgp-feature-card-dark p{font-size:.85em;color:#888;margin:0 0 10px;line-height:1.5}

/* Sections */
.rgp-section-dark{padding:40px 20px;max-width:1100px;margin:0 auto}
.rgp-section-dark h2{font-size:1.3em;color:#fff;margin:0 0 20px;padding-bottom:10px;border-bottom:2px solid #444;font-weight:400}

/* CTA Bar */
.rgp-cta-bar{background:#2a2a2a;border-top:3px solid #333;border-bottom:3px solid #333;padding:30px 20px}
.rgp-cta-inner{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:16px;align-items:center;text-align:center}
.rgp-cta-inner h3{font-size:1.2em;color:#fff;margin:0}
.rgp-cta-inner p{color:#888;margin:4px 0 0;font-size:.95em}
.rgp-cta-btns{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}

/* ============ LISTINGS (dark) ============ */
.rgp-listings-grid{display:grid;grid-template-columns:1fr;gap:0;margin-bottom:24px}
.rgp-listing-card{background:#2a2a2a;border-bottom:1px solid #444;overflow:hidden;transition:background .2s}
.rgp-listing-card:hover{background:#333}
.rgp-listing-img{position:relative;height:200px;overflow:hidden}
.rgp-listing-img img{width:100%;height:100%;object-fit:cover;display:block}
.rgp-status-badge{position:absolute;top:10px;left:10px;padding:4px 10px;border-radius:3px;font-size:.7em;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.rgp-status-active{background:#8bc34a;color:#1a1a1a}.rgp-status-sold{background:#c0392b;color:#fff}
.rgp-status-pending{background:#f39c12;color:#1a1a1a}.rgp-status-price-reduced{background:#9b59b6;color:#fff}
.rgp-status-coming-soon{background:#3498db;color:#fff}
.rgp-listing-info{padding:14px}
.rgp-listing-price{font-size:1.2em;font-weight:700;color:#fff}
.rgp-listing-info h3{font-size:.95em;margin:2px 0 4px}.rgp-listing-info h3 a{color:#c0392b;text-decoration:none}
.rgp-listing-info h3 a:hover{color:#e74c3c;text-decoration:underline}
.rgp-listing-address{color:#888;font-size:.85em;margin:0 0 6px}
.rgp-listing-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:.82em;color:#999}

/* Section header */
.rgp-section{margin-bottom:40px}.rgp-section h2{font-size:1.3em;color:#fff;margin:0 0 20px;padding-bottom:10px;border-bottom:2px solid #444;font-weight:400}

/* ============ NEIGHBOURHOODS (dark) ============ */
.rgp-neighbourhoods-grid{display:grid;grid-template-columns:1fr;gap:0}
.rgp-hood-card{background:#2a2a2a;border-bottom:1px solid #444;overflow:hidden;transition:background .2s}
.rgp-hood-card:hover{background:#333}
.rgp-hood-img{height:160px;overflow:hidden}.rgp-hood-img img{width:100%;height:100%;object-fit:cover}
.rgp-hood-info{padding:14px}
.rgp-hood-info h3{margin:0 0 4px;font-size:1em;color:#fff}
.rgp-hood-info h3 a{color:#c0392b;text-decoration:none}.rgp-hood-info h3 a:hover{color:#e74c3c}
.rgp-hood-vibe{color:#888;font-size:.82em;font-style:italic;margin:0 0 6px}
.rgp-hood-stats{display:flex;flex-wrap:wrap;gap:10px;font-size:.8em;color:#999;margin-bottom:8px}

/* ============ MARKET STATS (dark) ============ */
.rgp-market-dashboard{padding:20px 0}
.rgp-market-dashboard h2{font-size:1.3em;color:#fff;margin:0 0 20px;padding-bottom:10px;border-bottom:2px solid #444;font-weight:400}
.rgp-stats-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:24px}
.rgp-stat-box{background:#2a2a2a;border:1px solid #444;border-radius:4px;padding:16px;text-align:center}
.rgp-stat-label{display:block;font-size:.7em;color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.rgp-stat-value{display:block;font-size:1.2em;font-weight:700;color:#fff}
.rgp-stat-change{display:inline-block;font-size:.78em;font-weight:600;margin-top:4px;padding:2px 8px;border-radius:3px}
.rgp-up{background:rgba(139,195,74,.2);color:#8bc34a}.rgp-down{background:rgba(192,57,43,.2);color:#e74c3c}
.rgp-charts-grid{display:grid;grid-template-columns:1fr;gap:16px}
.rgp-chart-container{background:#2a2a2a;border:1px solid #444;border-radius:4px;padding:16px}

/* ============ CALCULATORS (dark) ============ */
.rgp-calc{margin-bottom:30px}
.rgp-calc h2{font-size:1.3em;margin:0 0 4px;color:#fff;font-weight:400}
.rgp-calc-subtitle{color:#888;font-size:.9em;margin:0 0 20px}
.rgp-calc-layout{display:grid;grid-template-columns:1fr;gap:24px}
.rgp-calc-inputs{display:flex;flex-direction:column;gap:14px}
.rgp-input-group{display:flex;flex-direction:column;gap:4px}
.rgp-input-group label{font-size:.82em;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.5px}
.rgp-input-group input[type="text"],.rgp-input-group input[type="number"],.rgp-input-group input[type="url"],
.rgp-input-group input[type="email"],.rgp-input-group input[type="tel"],.rgp-input-group input[type="password"],
.rgp-input-group input[type="file"],.rgp-input-group select,.rgp-input-group textarea{
    padding:12px 14px;border:1px solid #555;border-radius:4px;font-size:16px;width:100%;background:#2a2a2a;color:#eee;-webkit-appearance:none}
.rgp-input-group input:focus,.rgp-input-group select:focus,.rgp-input-group textarea:focus{outline:none;border-color:#8bc34a;box-shadow:0 0 0 2px rgba(139,195,74,.2)}
.rgp-input-group input[type="range"]{width:100%;margin-top:4px;accent-color:#8bc34a;height:6px}
.rgp-input-prefix,.rgp-input-suffix{display:flex;align-items:center}
.rgp-input-prefix span{background:#333;border:1px solid #555;border-right:none;padding:12px;border-radius:4px 0 0 4px;font-weight:600;color:#999;font-size:16px}
.rgp-input-prefix input{border-radius:0 4px 4px 0}
.rgp-input-suffix span{background:#333;border:1px solid #555;border-left:none;padding:12px;border-radius:0 4px 4px 0;font-weight:600;color:#999;font-size:16px}
.rgp-input-suffix input{border-radius:4px 0 0 4px}
.rgp-input-row{display:flex;gap:8px}
.rgp-input-hint,.rgp-form-hint{font-size:.8em;color:#666;margin:2px 0 0}

/* Calc Results (dark) */
.rgp-calc-results{background:#2a2a2a;border:1px solid #444;border-radius:4px;padding:24px}
.rgp-result-hero{text-align:center;margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #444}
.rgp-result-label{display:block;font-size:.82em;color:#888;text-transform:uppercase;letter-spacing:.5px}
.rgp-result-amount{display:block;font-size:2.2em;font-weight:700;color:#8bc34a;margin:4px 0}
.rgp-result-freq{display:block;font-size:.88em;color:#999}
.rgp-result-details{display:flex;flex-direction:column;gap:6px}
.rgp-result-row{display:flex;justify-content:space-between;font-size:.9em;padding:6px 0;border-bottom:1px solid #333;color:#ccc}
.rgp-result-row span:last-child{font-weight:600;color:#fff}
.rgp-calc-note{font-size:.78em;color:#666;margin-top:16px;line-height:1.5}

/* Tabs (dark) */
.rgp-calc-tabs{margin-bottom:30px}
.rgp-tabs-nav{display:flex;flex-wrap:wrap;gap:0;margin-bottom:20px;border-bottom:2px solid #444}
.rgp-tab-btn{padding:12px 18px;border:none;background:none;font-size:.85em;font-weight:600;color:#888;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;min-height:44px;text-transform:uppercase;letter-spacing:.5px}
.rgp-tab-btn.rgp-tab-active{color:#8bc34a;border-bottom-color:#8bc34a}
.rgp-tab-btn:hover{color:#ccc}
.rgp-tab-content{display:none}.rgp-tab-content.rgp-tab-active{display:block}

/* ============ BUYER GUIDE (dark) ============ */
.rgp-buyer-guide{padding:20px 0}
.rgp-buyer-guide h2{font-size:1.3em;color:#fff;margin:0 0 4px;font-weight:400}
.rgp-guide-sections{display:flex;flex-direction:column;gap:0;margin-top:20px}
.rgp-guide-section{border:1px solid #444;border-bottom:none}
.rgp-guide-section:last-child{border-bottom:1px solid #444}
.rgp-guide-toggle{width:100%;display:flex;align-items:center;gap:12px;padding:14px 16px;border:none;background:#2a2a2a;cursor:pointer;font-size:.95em;font-weight:600;color:#fff;text-align:left;min-height:50px}
.rgp-guide-toggle:hover{background:#333}
.rgp-guide-toggle[aria-expanded="true"]{background:#333}
.rgp-guide-icon{font-size:1.2em}.rgp-guide-title{flex:1}.rgp-guide-arrow{font-size:.75em;color:#888}
.rgp-guide-content{padding:0 16px 16px;font-size:.92em;line-height:1.7;color:#ccc;background:#2a2a2a}
.rgp-guide-content h3{font-size:1.05em;margin:12px 0 8px;color:#fff}.rgp-guide-content h4{font-size:.95em;margin:10px 0 6px;color:#ddd}
.rgp-guide-content ul,.rgp-guide-content ol{padding-left:20px;margin:8px 0}
.rgp-guide-content li{margin-bottom:4px}
.rgp-guide-content table{width:100%;border-collapse:collapse;margin:12px 0;font-size:.88em}
.rgp-guide-content th,.rgp-guide-content td{padding:10px 12px;border:1px solid #444;text-align:left}
.rgp-guide-content th{background:#333;color:#fff;font-weight:600}
.rgp-guide-content strong{color:#fff}

/* ============ COMPARISON (dark) ============ */
.rgp-compare-tool{padding:20px 0}
.rgp-compare-tool h2{font-size:1.3em;color:#fff;margin:0 0 4px;font-weight:400}
.rgp-compare-selectors{display:flex;flex-direction:column;gap:8px;margin:16px 0 24px}
.rgp-compare-select{padding:12px;border:1px solid #555;border-radius:4px;font-size:16px;width:100%;background:#2a2a2a;color:#eee}
.rgp-compare-table{overflow-x:auto}
.rgp-compare-row{display:grid;grid-template-columns:120px repeat(3,1fr);gap:1px;border-bottom:1px solid #444}
.rgp-compare-row.rgp-compare-header{border-bottom:2px solid #555}
.rgp-compare-label{padding:10px 8px;font-weight:600;font-size:.8em;color:#888}
.rgp-compare-cell{padding:10px 8px;font-size:.85em;color:#ccc}
.rgp-compare-cell-header{text-align:center}
.rgp-compare-img{width:100%;height:80px;object-fit:cover;border-radius:4px;margin-bottom:6px}
.rgp-compare-cell h3{font-size:.9em;margin:0}.rgp-compare-cell h3 a{color:#c0392b;text-decoration:none}
.rgp-score-bar{height:6px;background:#444;border-radius:3px;margin-bottom:4px;overflow:hidden}
.rgp-score-fill{height:100%;border-radius:3px;transition:width .5s}
.rgp-compare-hint{text-align:center;color:#666;padding:30px}

/* ============ PROPERTY TOOLS (dark) ============ */
.rgp-property-tools{padding:20px 0}
.rgp-property-tools h2{font-size:1.3em;color:#fff;margin:0 0 4px;font-weight:400}
.rgp-tools-grid{display:grid;grid-template-columns:1fr;gap:0}
.rgp-tool-card{background:#2a2a2a;border-bottom:1px solid #444;padding:24px 20px;text-align:center;transition:background .2s}
.rgp-tool-card:hover{background:#333}
.rgp-tool-card h3{font-size:1em;margin:0 0 8px;color:#fff}.rgp-tool-card p{font-size:.85em;color:#888;margin:0 0 14px}

/* ============ REALTOR DIRECTORY (dark) ============ */
.rgp-realtor-directory h2{font-size:1.3em;color:#fff;margin:0 0 20px;font-weight:400}
.rgp-realtor-grid{display:grid;grid-template-columns:1fr;gap:0}
.rgp-realtor-card-item{background:#2a2a2a;border-bottom:1px solid #444;display:flex;flex-direction:column}
.rgp-realtor-photo-wrap{height:160px;overflow:hidden}
.rgp-realtor-photo-wrap img{width:100%;height:100%;object-fit:cover}
.rgp-realtor-photo-placeholder{height:100%;display:flex;align-items:center;justify-content:center;font-size:3em;background:#333;color:#666}
.rgp-realtor-card-info{padding:14px}
.rgp-realtor-card-info h3{margin:0 0 4px;font-size:1.05em}.rgp-realtor-card-info h3 a{color:#fff;text-decoration:none}
.rgp-realtor-brokerage{color:#888;font-size:.82em;margin:0 0 6px}
.rgp-realtor-card-info p{margin:2px 0;font-size:.88em;color:#ccc}
.rgp-realtor-card-info a{color:#8bc34a}

/* Agent Card */
.rgp-agent-card{display:flex;flex-direction:column;align-items:center;gap:16px;background:#2a2a2a;border:1px solid #444;border-radius:4px;padding:24px;margin:20px 0;text-align:center}
.rgp-agent-photo{width:80px;height:80px;border-radius:50%;object-fit:cover}
.rgp-agent-info h3{margin:0 0 8px;color:#fff}.rgp-agent-info p{margin:3px 0;font-size:.9em;color:#ccc}
.rgp-agent-info a{color:#8bc34a}

/* Search Bar */
.rgp-search-bar{background:#2a2a2a;border:1px solid #444;border-radius:4px;padding:24px;text-align:center;margin:20px 0}
.rgp-search-bar p{font-size:.95em;margin:0 0 14px;color:#999}

/* ============ FORMS (dark) ============ */
.rgp-submit-listing-form{padding:20px 0}
.rgp-submit-listing-form h2{font-size:1.3em;color:#fff;margin:0 0 16px;font-weight:400}
.rgp-form-section{margin-bottom:24px}
.rgp-form-section h3{font-size:1em;margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid #444;color:#fff;font-weight:400}
.rgp-form-grid{display:grid;grid-template-columns:1fr;gap:12px}
.rgp-form-group{display:flex;flex-direction:column;gap:4px}
.rgp-form-group label{font-size:.82em;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.5px}
.rgp-form-full{grid-column:1/-1}
.rgp-spinner{font-size:.88em;color:#888;margin-top:8px}

/* ============ NOTICES ============ */
.rgp-notice{padding:14px 18px;border-radius:4px;margin:16px 0;font-size:.92em}
.rgp-notice a{color:inherit;text-decoration:underline}
.rgp-notice-success{background:rgba(139,195,74,.15);color:#8bc34a;border:1px solid rgba(139,195,74,.3)}
.rgp-notice-error{background:rgba(192,57,43,.15);color:#e74c3c;border:1px solid rgba(192,57,43,.3)}
.rgp-notice-info{background:rgba(52,152,219,.15);color:#5dade2;border:1px solid rgba(52,152,219,.3)}
.rgp-notice-warning{background:rgba(243,156,18,.15);color:#f39c12;border:1px solid rgba(243,156,18,.3)}

/* ============ PORTAL (dark) ============ */
.rgp-portal-form{max-width:700px;margin:0 auto;padding:30px 20px}
.rgp-portal-form h2{font-size:1.3em;margin:0 0 16px;color:#fff;font-weight:400}
.rgp-portal-form p{color:#888}
.rgp-portal-form a.rgp-link{color:#8bc34a}
.rgp-portal-dashboard{padding:20px;max-width:1000px;margin:0 auto}
.rgp-portal-header{display:flex;flex-direction:column;gap:16px;margin-bottom:8px}
.rgp-portal-header h2{color:#fff;font-weight:400;margin:0}
.rgp-portal-nav{display:flex;flex-wrap:wrap;gap:8px}
.rgp-portal-listings{display:flex;flex-direction:column;gap:0;margin-top:12px}
.rgp-portal-listing-row{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-bottom:1px solid #444;background:#2a2a2a}
.rgp-portal-listing-row:hover{background:#333}
.rgp-portal-listing-info{display:flex;flex-direction:column;gap:3px}
.rgp-portal-listing-info a{color:#c0392b;text-decoration:none;font-weight:600}
.rgp-portal-listing-info span{color:#888}
.rgp-portal-listing-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.rgp-portal-listing-actions select{background:#333;color:#eee;border:1px solid #555}

/* ============ SINGLE TEMPLATES ============ */
.rgp-single-listing,.rgp-single-neighbourhood,.rgp-single-report,.rgp-single-realtor{max-width:900px;margin:0 auto;padding:20px}
.rgp-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}
.rgp-detail-item{background:#2a2a2a;border:1px solid #444;border-radius:4px;padding:12px 14px}
.rgp-detail-label{font-size:.7em;color:#888;text-transform:uppercase;letter-spacing:.5px}
.rgp-detail-value{font-size:1em;font-weight:600;color:#fff}

/* ============ TABLET ============ */
@media(min-width:640px){
    .rgp-hero-dark{padding:80px 30px 50px}.rgp-hero-dark h1{font-size:2.6em}
    .rgp-features-grid-dark{grid-template-columns:1fr 1fr}
    .rgp-feature-card-dark{border-right:1px solid #333}
    .rgp-feature-card-dark:nth-child(2n){border-right:none}
    .rgp-listings-grid{grid-template-columns:repeat(2,1fr)}
    .rgp-neighbourhoods-grid{grid-template-columns:repeat(2,1fr)}
    .rgp-stats-summary{grid-template-columns:repeat(4,1fr)}
    .rgp-tools-grid{grid-template-columns:repeat(2,1fr)}
    .rgp-realtor-grid{grid-template-columns:repeat(2,1fr)}
    .rgp-form-grid{grid-template-columns:1fr 1fr}
    .rgp-detail-grid{grid-template-columns:repeat(3,1fr)}
    .rgp-compare-selectors{flex-direction:row}
    .rgp-agent-card{flex-direction:row;text-align:left}
    .rgp-portal-header{flex-direction:row;justify-content:space-between;align-items:center}
    .rgp-portal-listing-row{flex-direction:row;justify-content:space-between;align-items:center}
    .rgp-cta-inner{flex-direction:row;text-align:left;justify-content:space-between}
}

/* ============ DESKTOP ============ */
@media(min-width:1024px){
    .rgp-features-grid-dark{grid-template-columns:repeat(3,1fr)}
    .rgp-feature-card-dark:nth-child(2n){border-right:1px solid #333}
    .rgp-feature-card-dark:nth-child(3n){border-right:none}
    .rgp-listings-grid{grid-template-columns:repeat(3,1fr)}
    .rgp-neighbourhoods-grid{grid-template-columns:repeat(3,1fr)}
    .rgp-charts-grid{grid-template-columns:repeat(2,1fr)}
    .rgp-calc-layout{grid-template-columns:1fr 1fr}
    .rgp-tools-grid{grid-template-columns:repeat(3,1fr)}
    .rgp-realtor-grid{grid-template-columns:repeat(3,1fr)}
    .rgp-form-grid{grid-template-columns:1fr 1fr 1fr}
    #rgp-homepage-map{height:550px}
}
