/* Real Property Guru Global Design System V1
   Site-wide typography, brand tokens and common UI sizing.
   Loaded AFTER Homzen style.css from theme config.php.
*/
:root {
    --rpg-green: #079447;
    --rpg-green-2: #0aa85a;
    --rpg-green-dark: #044b39;
    --rpg-green-deep: #033d2f;
    --rpg-green-soft: #eaf8ef;
    --rpg-green-soft-2: #f4fbf7;
    --rpg-text: #17211d;
    --rpg-muted: #66756d;
    --rpg-border: #e2e9e5;
    --rpg-surface: #ffffff;
    --rpg-page: #f6f8f7;
    --rpg-radius-sm: 10px;
    --rpg-radius: 14px;
    --rpg-radius-lg: 18px;
    --rpg-shadow: 0 12px 32px rgba(16, 58, 42, .08);

    /* Override legacy red Homzen theme tokens globally. */
    --primary-color: var(--rpg-green);
    --hover-color: #06783b;
    --footer-hover-color: #74e6a6;

    /* Global typography scale */
    --rpg-font-body: 16px;
    --rpg-font-small: 14px;
    --rpg-font-meta: 14px;
    --rpg-font-control: 15px;
    --rpg-font-button: 15px;
    --rpg-font-nav: 15px;
    --rpg-font-card-title: 17px;
    --rpg-font-price: 19px;
}

html { font-size: 16px; }
body {
    font-family: var(--primary-font, "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
    font-size: var(--rpg-font-body);
    line-height: 1.55;
    color: var(--rpg-text);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* Keep normal reading text comfortably legible site-wide. */
p, li, dd, dt,
.text-body-1, .text-body-2, .text-body-3,
.text-1, .text-2, .text-3,
.body-text, .description, .desc {
    font-size: max(1em, var(--rpg-font-small));
    line-height: 1.55;
}

small, .small, .text-small, .caption, .meta,
.text-variant-1, .text-variant-2 {
    font-size: var(--rpg-font-small) !important;
    line-height: 1.45;
}

/* Headings: scalable but not oversized on small screens. */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6, .h7 {
    font-family: var(--heading-font, "Josefin Sans", var(--primary-font));
    color: inherit;
    line-height: 1.15;
    letter-spacing: -0.02em;
}
h1, .h1 { font-size: clamp(2.3rem, 4vw, 4.25rem); }
h2, .h2 { font-size: clamp(1.85rem, 3vw, 3rem); }
h3, .h3 { font-size: clamp(1.55rem, 2.2vw, 2.25rem); }
h4, .h4 { font-size: clamp(1.3rem, 1.8vw, 1.8rem); }
h5, .h5 { font-size: clamp(1.15rem, 1.4vw, 1.45rem); }
h6, .h6, .h7 { font-size: 1.05rem; }

/* Navigation and account chrome */
.navigation > li > a,
.main-menu a,
.rpgx-nav a,
.rpgx-mobile-menu a,
.top-header,
.top-header a,
.rpgx-topbar,
.rpgx-topbar a {
    font-size: var(--rpg-font-nav);
}

/* Forms should never feel tiny, especially on touch devices. */
input:not([type="checkbox"]):not([type="radio"]),
select, textarea,
.form-control, .form-select,
.select2-selection,
.nice-select,
.multi-select-trigger {
    font-size: var(--rpg-font-control) !important;
    line-height: 1.4;
}
label, .form-label,
.form-style > label,
.title-select, .title-price {
    font-size: var(--rpg-font-small) !important;
    font-weight: 650;
}

button, .btn, .tf-btn,
.rpgx-btn,
[class*="btn-"]:not(.btn-close) {
    font-size: var(--rpg-font-button);
    font-weight: 700;
}

/* Site-wide primary brand behaviour */
.tf-btn.primary,
.btn-primary,
.rpgx-btn-primary,
button.primary,
input[type="submit"].primary {
    background: var(--rpg-green) !important;
    border-color: var(--rpg-green) !important;
    color: #fff !important;
}
.tf-btn.primary:hover,
.btn-primary:hover,
.rpgx-btn-primary:hover,
button.primary:hover,
input[type="submit"].primary:hover {
    background: #06783b !important;
    border-color: #06783b !important;
}

a:hover { color: var(--rpg-green); }

/* Common card/UI readability across directories and detail pages. */
.property-card .title,
.property-card .name,
.property-card .property-title,
.box-house .title,
.homelengo-box .title,
.rpgp2-card-title,
.rpgx-property-title {
    font-size: var(--rpg-font-card-title) !important;
    line-height: 1.35;
    font-weight: 700;
}
.property-card .price,
.box-house .price,
.homelengo-box .price,
.rpgp2-card-price,
.rpgx-property-price {
    font-size: var(--rpg-font-price) !important;
    line-height: 1.25;
    font-weight: 800;
}

/* Common secondary property data */
.property-card .location,
.property-card .address,
.property-card .meta,
.property-card .features,
.box-house .location,
.box-house .meta,
.homelengo-box .location,
.homelengo-box .meta,
.rpgp2-card-location,
.rpgp2-card-features,
.rpgp2-card-agent,
.rpgx-property-meta {
    font-size: var(--rpg-font-meta) !important;
    line-height: 1.45;
}

/* Global footer readability */
footer, footer p, footer li, footer a,
.footer, .footer p, .footer li, .footer a,
.rpgx-footer, .rpgx-footer p, .rpgx-footer li, .rpgx-footer a {
    font-size: 13px;
    line-height: 1.55;
}
footer h4, footer h5, footer h6,
.footer h4, .footer h5, .footer h6,
.rpgx-footer h4, .rpgx-footer h5, .rpgx-footer h6 {
    font-size: 14px !important;
    font-weight: 750;
}

/* Homepage/directory shared premium header scale */
.rpgx-header-inner { min-height: 74px; }
.rpgx-brand-copy b { font-size: 14px; }
.rpgx-brand-copy span { font-size: 13px; }

/* Accessibility: retain visible keyboard focus. */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible {
    outline: 3px solid rgba(7, 148, 71, .25);
    outline-offset: 2px;
}

@media (max-width: 991.98px) {
    :root {
        --rpg-font-nav: 15px;
        --rpg-font-card-title: 17px;
        --rpg-font-price: 18px;
    }
    body { font-size: 16px; }
    .rpgx-header-inner { min-height: 68px; }
}

@media (max-width: 767.98px) {
    :root {
        --rpg-font-body: 16px;
        --rpg-font-small: 14px;
        --rpg-font-meta: 14px;
        --rpg-font-control: 16px;
        --rpg-font-button: 15px;
        --rpg-font-card-title: 17px;
        --rpg-font-price: 18px;
    }
    body { font-size: 16px; line-height: 1.5; }
    input:not([type="checkbox"]):not([type="radio"]),
    select, textarea, .form-control, .form-select,
    .nice-select, .multi-select-trigger {
        font-size: 16px !important; /* prevents iOS zoom and improves touch readability */
    }
    footer, footer p, footer li, footer a,
    .footer, .footer p, .footer li, .footer a,
    .rpgx-footer, .rpgx-footer p, .rpgx-footer li, .rpgx-footer a {
        font-size: 13px;
    }
}
/* ============================================================
   REAL PROPERTY GURU — GLOBAL MARKETPLACE SHELL V2
   Canonical topbar, main navigation and footer.
   ============================================================ */

.rpg-market-announcement{
    background:#f6f8f7;
    color:#4d5a53;
    border-bottom:1px solid #e4ebe7;
    font-size:13px;
}
.rpg-market-announcement>.container{
    min-height:34px;
    display:flex;
    align-items:center;
}
.rpg-market-announcement .announcement-wrap,
.rpg-market-announcement .announcement{
    width:100%;
}

.top-header.rpg-market-topbar{
    margin:0;
    padding:0;
    width:100%;
    min-height:36px;
    background:var(--rpg-green-deep);
    border:0;
    color:#d7ebe0;
}
.rpg-market-topbar>.container,
.rpg-market-topbar__inner{
    width:min(1380px,calc(100% - 48px));
    min-height:36px;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
}
.rpg-market-topbar__left,
.rpg-market-topbar__right{
    display:flex;
    align-items:center;
    gap:20px;
}
.rpg-market-topbar__lead,
.rpg-market-topbar__fact,
.rpg-market-topbar__wishlist,
.rpg-market-topbar__account{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#d7ebe0!important;
    font-size:12px!important;
    line-height:1;
    font-weight:650;
    white-space:nowrap;
}
.rpg-market-topbar__lead{font-weight:800;color:#fff!important}
.rpg-market-topbar svg{width:14px;height:14px;stroke-width:2}
.rpg-market-topbar__right .dropdown-toggle,
.rpg-market-topbar__right a{color:#d7ebe0!important}
.rpg-market-topbar__avatar{
    width:22px!important;
    height:22px!important;
    border-radius:50%;
    object-fit:cover;
}
.rpg-market-topbar__wishlist{
    padding-left:8px;
    border-left:1px solid rgba(255,255,255,.12);
}
.rpg-market-topbar__wishlist span{
    min-width:17px;
    height:17px;
    padding:0 4px;
    display:grid;
    place-items:center;
    border-radius:999px;
    color:#fff;
    background:rgba(255,255,255,.12);
    font-size:9px!important;
}

/* Header */
.main-header.rpg-market-header{
    position:relative;
    z-index:100;
    width:100%;
    background:#fff;
    border:0;
    box-shadow:0 1px 0 rgba(13,49,34,.08);
}
.main-header.rpg-market-header.fixed-header{
    background:rgba(255,255,255,.97);
}
.rpg-market-header__lower{
    background:#fff!important;
    border:0!important;
}
.rpg-market-header__inner{
    width:100%;
    min-height:78px;
    display:grid;
    grid-template-columns:minmax(155px,210px) 1fr auto;
    align-items:center;
    gap:24px;
}
.rpg-market-header__brand .logo{
    display:flex;
    align-items:center;
}
.rpg-market-header__brand img{
    max-height:48px!important;
    width:auto!important;
}
.rpg-market-header__nav-wrap{
    justify-self:center;
}
.rpg-market-nav{
    display:flex!important;
    align-items:center;
    justify-content:center;
    gap:26px;
    margin:0!important;
    padding:0!important;
}
.rpg-market-nav>li{
    margin:0!important;
    padding:0!important;
}
.rpg-market-nav>li>a{
    position:relative;
    display:flex!important;
    align-items:center;
    min-height:78px;
    padding:0!important;
    color:#26332c!important;
    font-size:14px!important;
    line-height:1!important;
    font-weight:750!important;
}
.rpg-market-nav>li>a:after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:17px;
    height:2px;
    border-radius:999px;
    background:var(--rpg-green);
    opacity:0;
    transform:scaleX(.45);
    transition:.18s ease;
}
.rpg-market-nav>li.current>a,
.rpg-market-nav>li>a:hover{
    color:var(--rpg-green)!important;
}
.rpg-market-nav>li.current>a:after,
.rpg-market-nav>li>a:hover:after{
    opacity:1;
    transform:scaleX(1);
}
.rpg-market-header__actions{
    display:flex!important;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
}
.rpg-market-header__saved{
    min-height:44px;
    display:flex;
    align-items:center;
    gap:7px;
    padding:0 13px;
    border:1px solid #dfe8e3;
    border-radius:11px;
    background:#fff;
    color:#2f3d35!important;
    font-size:12px!important;
    font-weight:750!important;
}
.rpg-market-header__saved svg{width:17px;height:17px}
.rpg-market-header__saved b{
    min-width:18px;
    height:18px;
    display:grid;
    place-items:center;
    border-radius:999px;
    background:var(--rpg-green-soft);
    color:var(--rpg-green);
    font-size:9px;
}
.rpg-market-header__list{
    min-height:44px!important;
    padding:0 16px!important;
    display:flex!important;
    align-items:center!important;
    gap:7px!important;
    border-radius:11px!important;
    box-shadow:0 9px 20px rgba(7,148,71,.15);
}
.rpg-market-header__list svg{width:16px;height:16px}
.rpg-market-header__mobile-toggle{
    display:none;
    width:44px;
    height:44px;
    border:1px solid #dfe8e3;
    border-radius:11px;
    background:#fff;
    color:#173026;
    place-items:center;
}
.rpg-market-header__mobile-toggle svg{width:22px;height:22px}

/* Mobile menu refinement while preserving Homzen toggle behaviour */
.rpg-market-mobile-menu .menu-box{
    background:#fff;
}
.rpg-market-mobile-menu .nav-logo{
    padding:22px 20px 16px;
    border-bottom:1px solid #e7ede9;
}
.rpg-market-mobile-menu .navigation li>a{
    font-size:15px!important;
    font-weight:750!important;
    color:#25342c!important;
}
.rpg-market-mobile-menu .navigation li.current>a{
    color:var(--rpg-green)!important;
}
.rpg-market-mobile-menu .mobile-add-listing-btn{
    border-radius:14px!important;
    background:var(--rpg-green-soft)!important;
    border:1px solid #d6ecdf!important;
}
.rpg-market-mobile-menu .mobile-add-listing-btn .add-listing-icon-wrapper{
    background:var(--rpg-green)!important;
    color:#fff!important;
}

/* Footer */
.footer.rpg-market-footer{
    position:relative;
    margin:0!important;
    padding:56px 0 18px!important;
    overflow:hidden;
    background:
        radial-gradient(circle at 90% 0%,rgba(19,178,99,.12),transparent 28%),
        linear-gradient(120deg,#033d2f,#044b39)!important;
    color:#c8ddd3!important;
}
.rpg-market-footer:before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:.08;
    background-image:
        linear-gradient(135deg,transparent 24%,rgba(255,255,255,.12) 25%,transparent 26%),
        linear-gradient(315deg,transparent 24%,rgba(255,255,255,.08) 25%,transparent 26%);
    background-size:64px 64px;
}
.rpg-market-footer>.container{position:relative;z-index:2}
.rpg-market-footer__grid{
    display:grid;
    grid-template-columns:1.4fr repeat(4,minmax(120px,.82fr)) 1.35fr;
    gap:34px;
    align-items:start;
}
.rpg-market-footer__logo{
    display:inline-flex;
    margin-bottom:16px;
}
.rpg-market-footer__logo img{
    max-height:48px!important;
    width:auto!important;
    filter:brightness(0) invert(1);
}
.rpg-market-footer__brand p,
.rpg-market-footer__newsletter p{
    margin:0;
    color:#c3d8ce!important;
    font-size:13px!important;
    line-height:1.65;
}
.rpg-market-footer__contact{
    display:grid;
    gap:7px;
    margin-top:15px;
}
.rpg-market-footer__contact a{
    display:flex;
    align-items:center;
    gap:7px;
    color:#d6e7df!important;
    font-size:12px!important;
}
.rpg-market-footer__contact svg{width:15px;height:15px}
.rpg-market-footer__socials{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:17px;
}
.rpg-market-footer__socials a{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:50%;
    color:#fff!important;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.11);
    transition:.18s ease;
}
.rpg-market-footer__socials a:hover{
    background:var(--rpg-green);
    border-color:var(--rpg-green);
    transform:translateY(-2px);
}
.rpg-market-footer__col{
    display:grid;
    align-content:start;
    gap:8px;
}
.rpg-market-footer h4{
    margin:0 0 8px!important;
    color:#fff!important;
    font-family:var(--primary-font,"DM Sans",sans-serif)!important;
    font-size:13px!important;
    line-height:1.2!important;
    font-weight:800!important;
}
.rpg-market-footer__col a{
    color:#c6d9d0!important;
    font-size:12px!important;
    line-height:1.45!important;
}
.rpg-market-footer__col a:hover{color:#fff!important}
.rpg-market-footer__newsletter-form{
    margin-top:14px;
    display:grid;
    grid-template-columns:1fr 44px;
    min-height:46px;
    overflow:hidden;
    border-radius:11px;
    background:#fff;
    box-shadow:0 10px 22px rgba(0,0,0,.08);
}
.rpg-market-footer__newsletter-form input{
    width:100%;
    border:0!important;
    outline:0!important;
    padding:0 13px!important;
    background:#fff!important;
    color:#1b2721!important;
    font-size:13px!important;
}
.rpg-market-footer__newsletter-form button{
    border:0!important;
    background:var(--rpg-green)!important;
    color:#fff!important;
    display:grid;
    place-items:center;
}
.rpg-market-footer__newsletter-form button svg{width:18px;height:18px}
.rpg-market-footer__bottom{
    margin-top:34px;
    padding-top:16px;
    border-top:1px solid rgba(255,255,255,.11);
    display:flex;
    justify-content:space-between;
    gap:18px;
    color:#a9c3b7;
    font-size:11px;
}

/* Full-width directory integration */
#page-agents .rpg-core-directory,
#page-agencies .rpg-core-directory{
    width:100%;
}
#page-agents .rpg-core-directory__hero,
#page-agencies .rpg-core-directory__hero{
    border-radius:0!important;
}
#page-agents .rpg-core-directory__hero-inner,
#page-agencies .rpg-core-directory__hero-inner,
#page-agents .rpg-core-directory__search-wrap,
#page-agencies .rpg-core-directory__search-wrap,
#page-agents .rpg-core-directory__body>.container,
#page-agencies .rpg-core-directory__body>.container{
    width:min(1380px,calc(100% - 48px))!important;
    max-width:none!important;
}
.rpg-core-directory__stat strong svg{
    width:28px;
    height:28px;
}

/* Agent fallback imagery should look deliberate, not like a random colour tile. */
.rpg-core-agent-card__photo:has(.rpg-core-agent-card__initial){
    background:
        radial-gradient(circle at 72% 22%,rgba(7,148,71,.11),transparent 24%),
        linear-gradient(145deg,#edf5f0,#dceae2)!important;
}
.rpg-core-agent-card__initial{
    width:96px!important;
    height:96px!important;
    border-radius:50%!important;
    display:grid!important;
    place-items:center!important;
    background:#fff!important;
    border:6px solid rgba(255,255,255,.95)!important;
    box-shadow:0 10px 24px rgba(7,50,35,.12)!important;
    color:var(--rpg-green)!important;
    font-size:42px!important;
}

/* Agency cards: richer cover treatment while keeping logo/data real. */
.rpg-core-agency-card__cover{
    background:
        radial-gradient(circle at 78% 20%,rgba(255,255,255,.11),transparent 26%),
        linear-gradient(120deg,#034734,#078b4c)!important;
}
.rpg-core-agency-card__cover:after{
    opacity:.65;
}

/* Tablet */
@media (max-width: 1199.98px){
    .rpg-market-topbar__fact:nth-of-type(3),
    .rpg-market-topbar__fact:nth-of-type(4){
        display:none;
    }
    .rpg-market-nav{gap:18px}
    .rpg-market-nav>li>a{font-size:13px!important}
    .rpg-market-header__inner{
        grid-template-columns:170px 1fr auto;
        gap:16px;
    }
    .rpg-market-footer__grid{
        grid-template-columns:1.25fr repeat(2,1fr);
    }
    .rpg-market-footer__newsletter{
        grid-column:span 2;
    }
}

/* Mobile / tablet nav */
@media (max-width: 991.98px){
    .rpg-market-topbar>.container,
    .rpg-market-topbar__inner{
        width:min(100% - 28px,1380px);
    }
    .rpg-market-topbar__fact{display:none}
    .rpg-market-topbar__left{gap:0}
    .rpg-market-topbar__lead{font-size:11px!important}
    .rpg-market-topbar__right{gap:10px}
    .rpg-market-topbar__account span{display:none}
    .rpg-market-header__inner{
        min-height:68px;
        grid-template-columns:1fr auto;
    }
    .rpg-market-header__nav-wrap,
    .rpg-market-header__actions{
        display:none!important;
    }
    .rpg-market-header__mobile-toggle{
        display:grid;
    }
    .rpg-market-header__brand img{
        max-height:43px!important;
    }
    .rpg-market-footer__grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:28px 24px;
    }
    .rpg-market-footer__brand,
    .rpg-market-footer__newsletter{
        grid-column:1/-1;
    }
}

/* Small mobile */
@media (max-width: 575.98px){
    .rpg-market-announcement>.container,
    .rpg-market-topbar>.container,
    .rpg-market-topbar__inner{
        width:min(100% - 20px,1380px);
    }
    .rpg-market-topbar__lead svg{display:none}
    .rpg-market-topbar__lead{
        max-width:190px;
        overflow:hidden;
        text-overflow:ellipsis;
    }
    .rpg-market-topbar__right .language-switcher,
    .rpg-market-topbar__right .currency-switcher{
        display:none!important;
    }
    .rpg-market-header__inner{min-height:64px}
    .rpg-market-footer{
        padding-top:44px!important;
    }
    .rpg-market-footer__grid{
        grid-template-columns:1fr 1fr;
        gap:25px 18px;
    }
    .rpg-market-footer__brand,
    .rpg-market-footer__newsletter{
        grid-column:1/-1;
    }
    .rpg-market-footer__bottom{
        flex-direction:column;
        gap:6px;
    }
    #page-agents .rpg-core-directory__hero-inner,
    #page-agencies .rpg-core-directory__hero-inner,
    #page-agents .rpg-core-directory__search-wrap,
    #page-agencies .rpg-core-directory__search-wrap,
    #page-agents .rpg-core-directory__body>.container,
    #page-agencies .rpg-core-directory__body>.container{
        width:min(100% - 24px,1380px)!important;
    }
}


/* ============================================================
   DIRECTORY PRECISION V3 — GLOBAL SHELL FINISHING
   ============================================================ */
.rpg-market-header__brand img{
    max-height:54px!important;
}
.rpg-market-topbar__lead,
.rpg-market-topbar__fact,
.rpg-market-topbar__wishlist,
.rpg-market-topbar__account{
    font-size:12.5px!important;
}
.rpg-market-footer{
    padding-top:62px!important;
}
.rpg-market-footer__logo{
    min-height:52px;
    padding:7px 10px;
    align-items:center;
    border-radius:12px;
    background:#fff;
}
.rpg-market-footer__logo img{
    max-height:38px!important;
    width:auto!important;
    filter:none!important;
}
.rpg-market-footer__grid{
    gap:38px!important;
}
.rpg-market-footer__col{
    gap:9px!important;
}
.rpg-market-footer__col a{
    font-size:12.5px!important;
    line-height:1.55!important;
}
.rpg-market-footer__newsletter p,
.rpg-market-footer__brand p{
    font-size:13.5px!important;
}
.rpg-market-footer__bottom{
    margin-top:38px!important;
    padding-top:18px!important;
}
@media(max-width:991.98px){
    .rpg-market-header__brand img{max-height:47px!important}
    .rpg-market-footer{padding-top:50px!important}
}


/* ============================================================
   DIRECTORY PRECISION V4 — BRAND TOKEN CONSOLIDATION
   Override legacy Homzen red variables at the global design layer.
   ============================================================ */
:root{
    --primary-color:#078e48!important;
    --hover-color:#066f3e!important;
    --footer-hover-color:#12b967!important;
    --top-header-background-color:#043c2d!important;
    --top-header-text-color:#d7ebe0!important;
    --main-header-background-color:#ffffff!important;
    --main-header-text-color:#17211c!important;
    --main-header-border-color:#e3ebe6!important;
}
