/* ==========================================================================
   PF redesign layer (Property Finder look) for the Resido theme.
   Loaded after style.css. Every rule is scoped to body.pf so it wins over
   the Resido colour skins without touching the original theme files.
   ========================================================================== */

:root {
    /* Brand */
    --pf-red: #ea3934;
    --pf-red-hover: #97211e;
    --pf-red-light: #fef5f5;
    --pf-purple: #3a307f;
    --pf-purple-600: #6459b2;
    --pf-purple-dark: #2c255e;
    --pf-purple-50: #f7f7fc;
    --pf-purple-100: #e7e5f4;
    --pf-purple-200: #d1cfed;

    /* Neutrals */
    --pf-text: #333;
    --pf-text-2: #707070;
    --pf-text-3: #919191;
    --pf-border: #e3e3e3;
    --pf-bg-soft: #f7f7f7;
    --pf-white: #fff;

    /* Feedback */
    --pf-success: #00a663;
    --pf-success-dark: #00814b;
    --pf-warning: #dda800;
    --pf-error: #cf3151;
    --pf-focus: #4c94e6;
    --pf-whatsapp: #25d366;

    /* Radius */
    --pf-r-xs: 2px;
    --pf-r-s: 4px;
    --pf-r-m: 8px;
    --pf-r-l: 12px;
    --pf-r-xl: 16px;
    --pf-r-xxl: 24px;
    --pf-r-full: 999px;

    --pf-shadow-s: 0 1px 4px rgba(0, 0, 0, .06);
    --pf-shadow-m: 0 4px 16px rgba(0, 0, 0, .08);
    --pf-shadow-l: 0 8px 32px rgba(0, 0, 0, .12);

    --pf-font: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
    --pf-header-h: 72px;
    --pf-bottom-nav-h: 64px;

    /* Re-point the Resido variables so anything still using them follows the new look */
    --primary-color: var(--pf-red);
    --font-body: var(--pf-font);
    --font-heading: var(--pf-font);
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
body.pf {
    font-family: var(--pf-font);
    color: var(--pf-text);
    font-size: 14px;
    line-height: 1.6;
    background: var(--pf-white);
    -webkit-font-smoothing: antialiased;
}

body.pf h1, body.pf h2, body.pf h3, body.pf h4, body.pf h5, body.pf h6,
body.pf .h1, body.pf .h2, body.pf .h3, body.pf .h4, body.pf .h5, body.pf .h6 {
    font-family: var(--pf-font);
    color: var(--pf-text);
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}

body.pf a { color: var(--pf-purple); }
body.pf a:hover, body.pf a:focus { color: var(--pf-purple-dark); }
body.pf p { color: var(--pf-text); }

body.pf :focus-visible {
    outline: 2px solid var(--pf-focus);
    outline-offset: 1px;
}

body.pf section { padding: 40px 0; }
body.pf section.gray, body.pf .gray { background: var(--pf-white); }

.pf-container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 16px;
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
body.pf .pf-btn,
body.pf .btn.btn-theme,
body.pf .btn.search-btn,
body.pf .btn.pop-login {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 40px;
    padding: 0 16px;
    font-family: var(--pf-font);
    font-size: 14px;
    font-weight: 600;
    line-height: 24px;
    border-radius: var(--pf-r-m);
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
    box-shadow: none;
}

/* Primary = red (main call to action) */
body.pf .pf-btn--primary,
body.pf .btn.btn-theme,
body.pf .btn.search-btn,
body.pf .btn.pop-login {
    background: var(--pf-red);
    border-color: var(--pf-red);
    color: var(--pf-white);
}
body.pf .pf-btn--primary:hover,
body.pf .btn.btn-theme:hover, body.pf .btn.btn-theme:focus,
body.pf .btn.search-btn:hover,
body.pf .btn.pop-login:hover {
    background: var(--pf-red-hover);
    border-color: var(--pf-red-hover);
    color: var(--pf-white);
}

/* Tertiary = light purple (Call, WhatsApp, card actions) */
body.pf .pf-btn--tertiary {
    background: var(--pf-purple-50);
    color: var(--pf-purple);
}
body.pf .pf-btn--tertiary:hover { background: var(--pf-purple-100); color: var(--pf-purple); }
body.pf .pf-btn--tertiary:active { background: var(--pf-purple-200); }

/* Secondary = white with purple outline */
body.pf .pf-btn--secondary,
body.pf .btn-outline-theme {
    background: var(--pf-white);
    border-color: var(--pf-purple-200);
    color: var(--pf-purple);
}
body.pf .pf-btn--secondary:hover,
body.pf .btn-outline-theme:hover {
    background: var(--pf-purple-50);
    border-color: var(--pf-purple-600);
    color: var(--pf-purple);
}

body.pf .pf-btn--dark { background: var(--pf-purple); color: var(--pf-white); }
body.pf .pf-btn--dark:hover { background: var(--pf-purple-dark); color: var(--pf-white); }

body.pf .pf-btn--whatsapp { background: var(--pf-whatsapp); color: var(--pf-white); }
body.pf .pf-btn--whatsapp:hover { background: #1ebe5b; color: var(--pf-white); }

body.pf .pf-btn--sm { height: 36px; padding: 0 12px; }
body.pf .pf-btn--lg { height: 48px; padding: 0 24px; font-size: 16px; }
body.pf .pf-btn--pill { border-radius: var(--pf-r-full); }
body.pf .pf-btn--block { width: 100%; }
body.pf .pf-btn:disabled,
body.pf .btn.btn-theme:disabled {
    background: var(--pf-border);
    border-color: var(--pf-border);
    color: #b0b0b0;
    cursor: not-allowed;
}

/* --------------------------------------------------------------------------
   Form fields
   -------------------------------------------------------------------------- */
body.pf .form-control,
body.pf .form-select,
body.pf .pf-input,
body.pf .select2-container--default .select2-selection--single {
    height: 40px;
    min-height: 40px;
    padding: 0 12px;
    font-family: var(--pf-font);
    font-size: 14px;
    color: var(--pf-text);
    background-color: var(--pf-white);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-m);
    box-shadow: none;
    transition: border-color .15s ease;
}
body.pf textarea.form-control { height: auto; padding: 10px 12px; }
body.pf .form-control:focus,
body.pf .form-select:focus,
body.pf .pf-input:focus {
    border-color: var(--pf-purple-600);
    box-shadow: 0 0 0 3px rgba(100, 89, 178, .12);
    outline: none;
}
body.pf .form-control::placeholder { color: var(--pf-text-3); }
body.pf .form-control:disabled,
body.pf .form-select:disabled {
    background-color: var(--pf-bg-soft);
    color: var(--pf-text-3);
}
body.pf .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 38px;
    padding-left: 0;
    color: var(--pf-text);
}
body.pf .select2-container--default .select2-selection--single .select2-selection__arrow { height: 38px; }
body.pf label { font-size: 13px; font-weight: 600; color: var(--pf-text); }

/* --------------------------------------------------------------------------
   Chips (city links, filter pills)
   -------------------------------------------------------------------------- */
body.pf .pf-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 32px;
    padding: 0 12px;
    font-size: 13px;
    font-weight: 400;
    color: var(--pf-text);
    background: var(--pf-bg-soft);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-m);
    text-decoration: none;
    white-space: nowrap;
    transition: background-color .2s ease;
}
body.pf .pf-chip:hover { background: var(--pf-border); color: var(--pf-text); }
body.pf .pf-chip__count { color: var(--pf-text-2); }
body.pf .pf-chip--active {
    background: var(--pf-purple-50);
    border-color: var(--pf-purple-600);
    color: var(--pf-purple);
    font-weight: 600;
}
body.pf .pf-chip-row {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 2px;
}
body.pf .pf-chip-row::-webkit-scrollbar { display: none; }

/* Small tags on images ("Verified", "Spotlight", "Off-Plan") */
body.pf .pf-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 20px;
    padding: 0 8px;
    font-size: 11px;
    font-weight: 600;
    line-height: 20px;
    color: var(--pf-white);
    background: rgba(0, 0, 0, .45);
    border-radius: var(--pf-r-xl);
    text-transform: capitalize;
    white-space: nowrap;
}
body.pf .pf-tag i { font-size: 10px; }
body.pf .pf-tag--verified { background: var(--pf-success); }
body.pf .pf-tag--purple { background: var(--pf-purple); }
body.pf .pf-tag--square { border-radius: var(--pf-r-s); }

/* Small text badges inside content ("Featured", "Booster", "Top Agent Today") */
body.pf .pf-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 20px;
    padding: 0 6px;
    font-size: 11px;
    font-weight: 700;
    border-radius: var(--pf-r-s);
    white-space: nowrap;
}
body.pf .pf-badge i { font-size: 10px; }
body.pf .pf-badge--featured { color: #8e6b00; background: #fff6ea; }
body.pf .pf-badge--booster { color: var(--pf-purple); background: var(--pf-purple-100); }
body.pf .pf-badge--top-agent { color: var(--pf-success-dark); background: #deffea; }
body.pf .pf-badge--superagent {
    color: var(--pf-white);
    background: var(--pf-purple);
    text-transform: uppercase;
    font-size: 10px;
    letter-spacing: .02em;
}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
body.pf .header.pf-header,
body.pf .header.pf-header.header-fixed {
    background: var(--pf-white);
    border-bottom: 1px solid var(--pf-border);
    box-shadow: none;
    position: sticky;
    top: 0;
    z-index: 1000;
    animation: none;
}

body.pf.show-admin-bar .header.pf-header,
body.pf.show-admin-bar .header.pf-header.header-fixed { top: 40px; }

body.pf .pf-header .container {
    max-width: 1600px;
    padding: 0 24px;
}

body.pf .pf-header .navigation {
    height: var(--pf-header-h);
    display: flex;
    align-items: center;
    background: transparent;
}

body.pf .pf-header .nav-header {
    display: flex;
    align-items: center;
    height: var(--pf-header-h);
    float: none;
    flex-shrink: 0;
}

body.pf .pf-header .nav-brand {
    display: flex;
    align-items: center;
    padding: 0;
    margin-right: 24px;
}
body.pf .pf-header .nav-brand img.logo {
    height: 34px;
    width: auto;
    max-width: 180px;
    object-fit: contain;
}

body.pf .pf-header .nav-menus-wrapper {
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    min-width: 0;
}

body.pf .pf-header .nav-menu {
    display: flex;
    align-items: center;
    float: none;
    margin: 0;
}

body.pf .pf-header .nav-menu > li > a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: var(--pf-header-h);
    padding: 0 12px;
    font-family: var(--pf-font);
    font-size: 14px;
    font-weight: 400;
    color: var(--pf-text);
    letter-spacing: 0;
    text-transform: none;
    transition: color .15s ease;
}
body.pf .pf-header .nav-menu > li > a:hover,
body.pf .pf-header .nav-menu > li.current-menu-item > a {
    color: var(--pf-text);
}
body.pf .pf-header .nav-menu > li.current-menu-item > a .menu-title {
    box-shadow: inset 0 -2px 0 var(--pf-text);
    padding-bottom: 2px;
}
body.pf .pf-header .nav-menu > li > a .submenu-indicator { margin-left: 2px; }

/* Dropdowns */
body.pf .pf-header .nav-dropdown {
    min-width: 220px;
    padding: 8px 0;
    background: var(--pf-white);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-l);
    box-shadow: var(--pf-shadow-m);
}
body.pf .pf-header .nav-dropdown > li > a {
    padding: 8px 16px;
    font-size: 14px;
    color: var(--pf-text);
    border: 0;
}
body.pf .pf-header .nav-dropdown > li > a:hover { background: var(--pf-bg-soft); color: var(--pf-text); }

/* Right side actions */
body.pf .pf-header .nav-menu.nav-menu-social {
    margin-left: auto;
    gap: 4px;
}
body.pf .pf-header .nav-menu.nav-menu-social > li > a { padding: 0 10px; }
body.pf .pf-header .nav-menu.nav-menu-social > li.add-listing,
body.pf .pf-header .nav-menu.nav-menu-social > li.pf-header__login {
    margin-left: 8px;
}

body.pf .pf-header .pf-header__wishlist > a .wishlist-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    font-size: 11px;
    font-weight: 700;
    color: var(--pf-white);
    background: var(--pf-red);
    border-radius: var(--pf-r-full);
}

body.pf .pf-header .pf-header__wishlist > a .wishlist-count.pf-zero { display: none; }
body.pf .pf-header .pf-header__wishlist > a i { font-size: 18px; color: var(--pf-text); }

body.pf .pf-header .pf-header__add-property > a { color: var(--pf-text); font-weight: 400; }
body.pf .pf-header .pf-header__add-property > a i { color: var(--pf-purple); }

body.pf .pf-header .nav-menu.nav-menu-social > li.add-listing > a,
body.pf .pf-header .nav-menu > li.pf-header__login > a {
    top: 0;
    height: 40px;
    padding: 0 20px;
    border-radius: var(--pf-r-full);
    background: var(--pf-red);
    color: var(--pf-white);
    font-weight: 600;
}
body.pf .pf-header .nav-menu > li.add-listing > a:hover,
body.pf .pf-header .nav-menu > li.pf-header__login > a:hover {
    background: var(--pf-red-hover);
    color: var(--pf-white);
}
body.pf .pf-header .nav-menu > li.add-listing > a img { display: none; }
body.pf .pf-header .nav-menu.nav-menu-social > li.add-listing {
    background: transparent;
    height: auto;
    top: 0;
    border-radius: 0;
}

body.pf .pf-header .nav-menu > li.login-item > a {
    height: 40px;
    padding: 0 14px;
    border-radius: var(--pf-r-full);
    background: var(--pf-bg-soft);
    color: var(--pf-text);
    font-weight: 600;
}
body.pf .pf-header .nav-menu > li.login-item > a:hover { background: var(--pf-border); }
body.pf .pf-header .nav-menu > li.login-item > a span {
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Currency / language on desktop */
body.pf .pf-header .pf-header__utils {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: 8px;
}
body.pf .pf-header .pf-header__utils .btn,
body.pf .pf-header .pf-header__utils .dropdown-toggle {
    height: 36px;
    padding: 0 10px;
    font-size: 13px;
    color: var(--pf-text);
    background: transparent;
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-m);
    box-shadow: none;
}
body.pf .pf-header .pf-header__utils .language-label { display: none; }
body.pf .pf-header .pf-header__utils .padtop10 { padding: 0; margin: 0 !important; }
body.pf .pf-header .dropdown-menu {
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-l);
    box-shadow: var(--pf-shadow-m);
    padding: 8px 0;
}
body.pf .pf-header .dropdown-menu a,
body.pf .pf-header .dropdown-item { padding: 6px 16px; font-size: 14px; color: var(--pf-text); }

/* Mobile-only header pieces (hidden on desktop) */
body.pf .pf-header .pf-header__mobile-auth { display: none; }

/* ---------- Header: tablet & mobile (matches nav plugin breakpoint 992) ---------- */
@media (max-width: 992px) {
    body.pf .pf-header .container { padding: 0 16px; }

    body.pf .pf-header .navigation,
    body.pf .pf-header .nav-header {
        height: 60px;
        width: 100%;
    }

    body.pf .pf-header .nav-header {
        position: relative;
        justify-content: center;
    }

    /* Round grey hamburger on the left (the nav plugin only shows it in portrait mode) */
    body.pf .pf-header .navigation-portrait .nav-toggle {
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        width: 40px;
        height: 40px;
        margin: 0;
        padding: 0;
        border-radius: 50%;
        background: var(--pf-bg-soft);
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
    }
    body.pf .pf-header .nav-toggle:before {
        position: static;
        width: 16px;
        height: 2px;
        background: var(--pf-text);
        box-shadow: 0 5px 0 var(--pf-text), 0 -5px 0 var(--pf-text);
        border-radius: 2px;
    }

    /* Logo centred */
    body.pf .pf-header .nav-brand {
        margin: 0;
        position: static;
    }
    body.pf .pf-header .nav-brand img.logo { height: 28px; max-width: 140px; }

    /* Red Log in / account pill on the right */
    body.pf .pf-header .pf-header__mobile-auth {
        display: inline-flex;
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
    }
    body.pf .pf-header .pf-header__mobile-auth a {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        height: 36px;
        padding: 0 16px;
        border-radius: var(--pf-r-full);
        background: var(--pf-red);
        color: var(--pf-white);
        font-size: 14px;
        font-weight: 600;
        text-decoration: none;
    }
    body.pf .pf-header .pf-header__mobile-auth a.pf-header__mobile-account {
        width: 36px;
        padding: 0;
        justify-content: center;
        background: var(--pf-purple-50);
        color: var(--pf-purple);
    }

    /* Off-canvas drawer */
    body.pf .pf-header .nav-menus-wrapper {
        display: block;
        width: 320px;
        max-width: 86vw;
        background: var(--pf-white);
        padding: 64px 0 24px;
        box-shadow: var(--pf-shadow-l);
    }
    body.pf .pf-header .nav-menus-wrapper-close-button {
        position: absolute;
        top: 12px;
        right: 12px;
        left: auto;
        width: 40px;
        height: 40px;
        margin: 0;
        border-radius: 50%;
        background: var(--pf-bg-soft);
        color: var(--pf-text);
        font-size: 16px;
        line-height: 40px;
        text-align: center;
    }
    body.pf .pf-header .nav-menu {
        display: block;
        width: 100%;
    }
    body.pf .pf-header .nav-menu > li {
        width: 100%;
        border-top: 0;
    }
    body.pf .pf-header .nav-menu > li > a {
        display: flex;
        width: 100%;
        height: auto;
        padding: 14px 24px;
        font-size: 15px;
        border-bottom: 1px solid var(--pf-bg-soft);
    }
    body.pf .pf-header .nav-menu > li.current-menu-item > a .menu-title { box-shadow: none; }
    body.pf .pf-header .nav-menu > li.current-menu-item > a { color: var(--pf-purple); font-weight: 600; }

    body.pf .pf-header .nav-menu.nav-menu-social {
        margin: 16px 0 0;
        padding: 0 24px;
    }
    body.pf .pf-header .nav-menu.nav-menu-social > li > a { padding: 14px 0; }
    body.pf .pf-header .nav-menu.nav-menu-social > li.add-listing,
    body.pf .pf-header .nav-menu.nav-menu-social > li.pf-header__login,
    body.pf .pf-header .nav-menu.nav-menu-social > li.login-item { margin: 8px 0 0; }
    body.pf .pf-header .nav-menu > li.add-listing > a,
    body.pf .pf-header .nav-menu > li.pf-header__login > a,
    body.pf .pf-header .nav-menu > li.login-item > a {
        justify-content: center;
        height: 44px;
        padding: 0 16px;
        border-bottom: 0;
    }

    body.pf .pf-header .nav-dropdown {
        border: 0;
        border-radius: 0;
        box-shadow: none;
        padding: 0 0 0 12px;
    }

    body.pf .pf-header .pf-header__utils { display: none; }

    body.pf .pf-header .mobile-menu {
        display: flex !important;
        flex-wrap: wrap;
        gap: 8px;
        padding: 16px 24px 0;
    }
    body.pf .pf-header .mobile-menu-item a,
    body.pf .pf-header .mobile-menu-item .btn {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        height: 36px;
        padding: 0 12px;
        font-size: 13px;
        color: var(--pf-text);
        background: var(--pf-bg-soft);
        border: 1px solid var(--pf-border);
        border-radius: var(--pf-r-m);
    }
    body.pf .pf-header .mobile-menu-item .language-label { display: none; }

    body.pf .nav-overlay-panel { background: rgba(0, 0, 0, .5); }
}

/* --------------------------------------------------------------------------
   Breadcrumb
   -------------------------------------------------------------------------- */
body.pf .breadcrumb {
    background: transparent;
    padding: 0;
    margin: 0;
    font-size: 12px;
}
body.pf .breadcrumb-item,
body.pf .breadcrumb-item a { color: var(--pf-text-2); }
body.pf .breadcrumb-item a:hover { color: var(--pf-purple); }
body.pf .breadcrumb-item.active { color: var(--pf-text); }
body.pf .breadcrumb-item + .breadcrumb-item::before { content: "›"; color: var(--pf-text-3); }

/* --------------------------------------------------------------------------
   Pagination
   -------------------------------------------------------------------------- */
body.pf .pagination {
    gap: 6px;
    flex-wrap: wrap;
}
body.pf .pagination .page-item .page-link,
body.pf .pagination > li > a,
body.pf .pagination > li > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    font-size: 14px;
    font-weight: 600;
    color: var(--pf-purple);
    background: var(--pf-purple-50);
    border: 0;
    border-radius: var(--pf-r-m);
    box-shadow: none;
    margin: 0;
}
body.pf .pagination .page-item .page-link:hover,
body.pf .pagination > li > a:hover { background: var(--pf-purple-100); color: var(--pf-purple); }
body.pf .pagination .page-item.active .page-link,
body.pf .pagination > .active > a,
body.pf .pagination > .active > span {
    color: var(--pf-white);
    background: var(--pf-purple);
}
body.pf .pagination .page-item.disabled .page-link {
    color: #b0b0b0;
    background: var(--pf-bg-soft);
}
body.pf .pagination .page-item.pf-page-gap .page-link {
    background: transparent;
    color: var(--pf-text-2);
    cursor: default;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
body.pf .pf-footer {
    background: var(--pf-purple-50);
    color: var(--pf-text);
    padding: 48px 0 0;
    margin-top: 48px;
}
body.pf .pf-footer .container { max-width: 1200px; }

body.pf .pf-footer__top {
    display: grid;
    grid-template-columns: minmax(200px, 1fr) 2fr;
    gap: 32px;
    padding-bottom: 32px;
}

body.pf .pf-footer__logo img {
    height: 34px;
    width: auto;
    max-width: 180px;
    object-fit: contain;
}

body.pf .pf-footer__contact {
    margin-top: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
body.pf .pf-footer__contact p {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    font-size: 14px;
    color: var(--pf-text);
}
body.pf .pf-footer__contact i {
    width: 16px;
    margin-top: 4px;
    color: var(--pf-purple);
    text-align: center;
}
body.pf .pf-footer__contact a { color: var(--pf-text); }
body.pf .pf-footer__contact a:hover { color: var(--pf-purple); }

body.pf .pf-footer__columns > .row { --bs-gutter-x: 24px; }
body.pf .pf-footer .footer-widget { margin-bottom: 16px; padding: 0; }
body.pf .pf-footer .footer-widget .widget-title,
body.pf .pf-footer .footer-widget h4 {
    margin: 0 0 16px;
    font-size: 14px;
    font-weight: 600;
    color: var(--pf-text);
    text-transform: none;
}
body.pf .pf-footer .footer-widget ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
body.pf .pf-footer .footer-widget ul li {
    margin: 0 0 12px;
    padding: 0;
}
body.pf .pf-footer .footer-widget ul li a {
    font-size: 14px;
    color: var(--pf-text);
    padding: 0;
    text-decoration: none;
}
body.pf .pf-footer .footer-widget ul li a:hover { color: var(--pf-purple); text-decoration: underline; }
body.pf .pf-footer .footer-widget .form-control { background: var(--pf-white); }
body.pf .pf-footer .footer-widget .newsletter-form .btn {
    height: 40px;
    margin-left: 8px;
    border-radius: var(--pf-r-m);
    background: var(--pf-red) !important;
}

body.pf .pf-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 0;
    border-top: 1px solid var(--pf-purple-100);
}
body.pf .pf-footer__copyright,
body.pf .pf-footer__copyright p {
    margin: 0;
    font-size: 13px;
    color: var(--pf-text);
}
body.pf .pf-footer__copyright a { color: var(--pf-text); }

body.pf .pf-footer__social {
    display: flex;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}
body.pf .pf-footer__social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: var(--pf-r-m);
    background: var(--pf-purple);
    color: var(--pf-white);
    font-size: 15px;
    text-decoration: none;
    transition: background-color .15s ease;
}
body.pf .pf-footer__social a:hover { background: var(--pf-purple-dark); color: var(--pf-white); }

body.pf #back2Top.top-scroll {
    width: 40px;
    height: 40px;
    line-height: 40px;
    border-radius: 50%;
    background: var(--pf-purple);
    color: var(--pf-white);
    box-shadow: var(--pf-shadow-m);
}

@media (max-width: 767.98px) {
    body.pf .pf-footer { padding-top: 32px; margin-top: 32px; }
    body.pf .pf-footer__top { grid-template-columns: 1fr; gap: 24px; }
    body.pf .pf-footer__bottom { flex-direction: column-reverse; align-items: flex-start; }
    body.pf .pf-footer__columns .row > [class*="col-"] { flex: 0 0 50%; max-width: 50%; }
    body.pf .pf-footer .footer-widget ul li { margin-bottom: 10px; }
}

/* --------------------------------------------------------------------------
   Mobile bottom navigation
   -------------------------------------------------------------------------- */
body.pf .pf-bottom-nav { display: none; }

@media (max-width: 992px) {
    body.pf { padding-bottom: calc(var(--pf-bottom-nav-h) + env(safe-area-inset-bottom)); }

    body.pf .pf-bottom-nav {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 999;
        display: flex;
        height: calc(var(--pf-bottom-nav-h) + env(safe-area-inset-bottom));
        padding-bottom: env(safe-area-inset-bottom);
        background: var(--pf-white);
        border-top: 1px solid var(--pf-border);
        box-shadow: 0 -2px 12px rgba(0, 0, 0, .04);
    }
    body.pf .pf-bottom-nav__item {
        position: relative;
        flex: 1 1 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        min-width: 0;
        font-size: 11px;
        font-weight: 400;
        color: var(--pf-text-2);
        text-decoration: none;
    }
    body.pf .pf-bottom-nav__item i { font-size: 18px; line-height: 1; }
    body.pf .pf-bottom-nav__item span:not(.wishlist-count) {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    body.pf .pf-bottom-nav__item.is-active { color: var(--pf-purple); font-weight: 600; }
    body.pf .pf-bottom-nav__item:hover { color: var(--pf-purple); }
    body.pf .pf-bottom-nav__item .wishlist-count {
        position: absolute;
        top: 8px;
        left: 50%;
        margin-left: 6px;
        min-width: 16px;
        height: 16px;
        padding: 0 4px;
        font-size: 10px;
        font-weight: 700;
        line-height: 16px;
        text-align: center;
        color: var(--pf-white);
        background: var(--pf-red);
        border-radius: var(--pf-r-full);
    }
    body.pf .pf-bottom-nav__item .wishlist-count:empty,
    body.pf .pf-bottom-nav__item .wishlist-count.pf-zero { display: none; }

    body.pf #back2Top.top-scroll { bottom: calc(var(--pf-bottom-nav-h) + 16px); }
}

/* --------------------------------------------------------------------------
   Alerts container (showAlert) sits above the header
   -------------------------------------------------------------------------- */
body.pf #alert-container { z-index: 2000; }
body.pf #alert-container .alert {
    border-radius: var(--pf-r-m);
    font-size: 14px;
    box-shadow: var(--pf-shadow-m);
}

/* ==========================================================================
   Listing card - desktop (search results)
   ========================================================================== */
body.pf .pf-card {
    position: relative;
    display: flex;
    width: 100%;
    max-width: 880px;
    margin: 0 0 16px;
    background: var(--pf-white);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-l);
    overflow: visible;
    font-family: var(--pf-font);
    transition: box-shadow .2s ease;
}
body.pf .pf-card:hover { box-shadow: var(--pf-shadow-m); }

body.pf .pf-card__media {
    position: relative;
    flex: 0 0 320px;
    width: 320px;
    height: 243px;
    background: var(--pf-bg-soft);
    border-radius: var(--pf-r-l) 0 0 var(--pf-r-l);
    overflow: hidden;
}
body.pf .pf-card__slider,
body.pf .pf-card__slider .listing-slide {
    position: relative;
    width: 100%;
    height: 100%;
}
body.pf .pf-card__slider img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

body.pf .pf-card__tags {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    pointer-events: none;
}

body.pf .pf-card__save {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 4;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--pf-white);
    font-size: 18px;
    text-shadow: 0 1px 3px rgba(0, 0, 0, .45);
    text-decoration: none;
}
body.pf .pf-card__save:hover { color: var(--pf-white); }
body.pf .pf-card__save .fas.fa-heart { color: var(--pf-red); text-shadow: none; }

body.pf .pf-card__arrow {
    position: absolute;
    top: 50%;
    z-index: 5;
    display: none;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    margin-top: -16px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .9);
    color: var(--pf-text);
    font-size: 12px;
    cursor: pointer;
    box-shadow: var(--pf-shadow-s);
}
body.pf .pf-card__arrow--prev { left: 8px; }
body.pf .pf-card__arrow--next { right: 8px; }
body.pf .pf-card:hover .pf-card__arrow { display: flex; }

body.pf .pf-card__dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 10px;
    z-index: 5;
    display: flex;
    justify-content: center;
    gap: 4px;
}
body.pf .pf-card__dots .listing-slider-dot {
    width: 6px;
    height: 6px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    cursor: pointer;
}
body.pf .pf-card__dots .listing-slider-dot:nth-child(n+8) { display: none; }

body.pf .pf-card__photo-count {
    position: absolute;
    left: 8px;
    bottom: 8px;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 20px;
    padding: 0 6px;
    font-size: 11px;
    font-weight: 600;
    color: var(--pf-white);
    background: rgba(0, 0, 0, .55);
    border-radius: var(--pf-r-s);
}

body.pf .pf-card__content {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 12px 12px 8px 16px;
    color: var(--pf-text);
}

body.pf .pf-card__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 20px;
}
body.pf .pf-card__listed {
    font-size: 11px;
    line-height: 16px;
    color: var(--pf-text-2);
}
body.pf .pf-card__promos { display: inline-flex; gap: 4px; flex-wrap: wrap; }

body.pf .pf-card__price {
    margin-top: 2px;
    font-size: 22px;
    font-weight: 700;
    line-height: 32px;
    color: var(--pf-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.pf .pf-card__title {
    margin: 0 0 8px;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    color: var(--pf-text-2);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
body.pf .pf-card__title a { color: inherit; text-decoration: none; }
body.pf .pf-card__title a:hover { color: var(--pf-text); }

body.pf .pf-card__top-agent {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 8px;
    font-size: 12px;
}
body.pf .pf-card__top-agent a { color: var(--pf-purple); text-decoration: underline; }

body.pf .pf-card__facts { margin-bottom: 8px; }

body.pf .pf-card__specs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    row-gap: 4px;
    font-size: 12px;
    line-height: 20px;
    color: var(--pf-text-2);
}
body.pf .pf-card__spec {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
}
body.pf .pf-card__spec + .pf-card__spec:before {
    content: "|";
    margin: 0 8px;
    color: var(--pf-border);
}
body.pf .pf-card__spec i { font-size: 11px; color: var(--pf-text-2); }

body.pf .pf-card__location {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    font-size: 12px;
    line-height: 20px;
    color: var(--pf-text-2);
    min-width: 0;
}
body.pf .pf-card__location i { font-size: 11px; flex-shrink: 0; }
body.pf .pf-card__location span {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.pf .pf-card__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-top: 8px;
    border-top: 1px solid var(--pf-border);
}

body.pf .pf-card__agent {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    overflow: hidden;
}
body.pf .pf-card__agent-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    text-decoration: none;
}
body.pf .pf-card__agent-link img {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid var(--pf-border);
}
body.pf .pf-card__agent-link--team {
    padding-left: 10px;
    border-left: 1px solid var(--pf-border);
}
body.pf .pf-card__agent-link--team img { width: 24px; height: 24px; }
body.pf .pf-card__agent-name {
    font-size: 12px;
    font-weight: 600;
    color: var(--pf-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.pf .pf-card__actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
body.pf .pf-card__actions .pf-btn { min-width: 96px; }

/* Call popup (desktop) */
body.pf .call-popup-parent-wrapper { position: relative; }
body.pf .pf-call-popup {
    position: absolute;
    right: 0;
    bottom: calc(100% + 8px);
    z-index: 50;
    min-width: 200px;
    padding: 12px 16px;
    background: var(--pf-white);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-l);
    box-shadow: var(--pf-shadow-l);
    text-align: left;
}
body.pf .pf-call-popup__label {
    margin: 0 0 2px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--pf-text-2);
}
body.pf .pf-call-popup .call-popup__number { margin: 0; }
body.pf .pf-call-popup .call-popup__number a {
    font-size: 16px;
    font-weight: 700;
    color: var(--pf-purple);
    text-decoration: none;
}
body.pf .pf-call-popup .call-popup__close {
    position: absolute;
    top: 4px;
    right: 8px;
    border: 0;
    background: none;
    font-size: 16px;
    color: var(--pf-text-3);
    cursor: pointer;
}

@media (min-width: 768px) and (max-width: 1199.98px) {
    body.pf .pf-card__media { flex-basis: 260px; width: 260px; height: 220px; }
    body.pf .pf-card__actions .pf-btn { min-width: 0; }
}

/* ==========================================================================
   Listing card - mobile
   ========================================================================== */
body.pf .pf-mcard {
    position: relative;
    width: 100%;
    margin: 0 0 16px;
    background: var(--pf-white);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-l);
    font-family: var(--pf-font);
    color: var(--pf-text);
    text-align: left;
}

body.pf .pf-mcard__media {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 66%;
    border-radius: var(--pf-r-l) var(--pf-r-l) 0 0;
    overflow: hidden;
    background: var(--pf-bg-soft);
}
body.pf .pf-mcard__scroller {
    position: absolute;
    inset: 0;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
    scrollbar-width: none;
}
body.pf .pf-mcard__scroller::-webkit-scrollbar { display: none; }
body.pf .pf-mcard__slide {
    position: relative;
    display: block;
    flex: 0 0 100%;
    width: 100%;
    height: 100%;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    overflow: hidden;
}
body.pf .pf-mcard__slide img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    display: block;
}

body.pf .pf-mcard__tags {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 5;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    pointer-events: none;
}

body.pf .pf-mcard__save {
    position: absolute;
    top: 6px;
    right: 6px;
    z-index: 6;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--pf-white);
    font-size: 22px;
    text-shadow: 0 1px 4px rgba(0, 0, 0, .45);
    cursor: pointer;
}
body.pf .pf-mcard__save .fas.fa-heart { color: var(--pf-red); text-shadow: none; }

body.pf .pf-mcard__arrow {
    position: absolute;
    top: 50%;
    z-index: 5;
    width: 30px;
    height: 30px;
    margin-top: -15px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .85);
    color: var(--pf-text);
    font-size: 11px;
}
body.pf .pf-mcard__arrow--prev { left: 8px; }
body.pf .pf-mcard__arrow--next { right: 8px; }

body.pf .pf-mcard__dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 10px;
    z-index: 6;
    display: flex;
    justify-content: center;
    gap: 5px;
}
body.pf .pf-mcard__dots .pkmc-dot {
    width: 6px;
    height: 6px;
    padding: 0;
    border: 0;
    border-radius: 50%;
}
body.pf .pf-mcard__dots .pkmc-dot:nth-child(n+8) { display: none; }

body.pf .pf-mcard__photo-count {
    position: absolute;
    right: 10px;
    bottom: 8px;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 20px;
    padding: 0 6px;
    font-size: 11px;
    font-weight: 600;
    color: var(--pf-white);
    background: rgba(0, 0, 0, .55);
    border-radius: var(--pf-r-s);
}

body.pf .pf-mcard__agent {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 8px 14px 0;
    z-index: 7;
}
body.pf .pf-mcard__avatar {
    position: relative;
    flex: 0 0 52px;
    width: 52px;
    height: 52px;
    margin-top: -34px;
}
body.pf .pf-mcard__avatar img {
    width: 100%;
    height: 100%;
    border: 3px solid var(--pf-white);
    border-radius: 50%;
    object-fit: cover;
    background: var(--pf-purple);
    box-shadow: var(--pf-shadow-s);
}
body.pf .pf-mcard__avatar-star {
    position: absolute;
    right: -2px;
    bottom: -2px;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--pf-white);
    border-radius: 50%;
    background: var(--pf-purple);
    color: var(--pf-white);
    font-size: 8px;
}
body.pf .pf-mcard__agent-info {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    padding-bottom: 2px;
}
body.pf .pf-mcard__agent-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .03em;
    color: var(--pf-purple);
    line-height: 14px;
}
body.pf .pf-mcard__agent-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--pf-text);
    line-height: 18px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
body.pf .pf-mcard__agent-team {
    font-size: 11px;
    color: var(--pf-text-2);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
body.pf .pf-mcard__agent-team i { font-size: 9px; }
body.pf .pf-mcard__listed {
    flex-shrink: 0;
    padding-top: 2px;
    font-size: 11px;
    color: var(--pf-text-2);
}

body.pf .pf-mcard__body { padding: 10px 14px 14px; }
body.pf .pf-mcard__type { font-size: 12px; color: var(--pf-text-2); }
body.pf .pf-mcard__price {
    margin-top: 2px;
    font-size: 20px;
    font-weight: 700;
    line-height: 28px;
    color: var(--pf-text);
}
body.pf .pf-mcard__title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-top: 2px;
    font-size: 14px;
    line-height: 20px;
    color: var(--pf-text);
    text-decoration: none;
}
body.pf .pf-mcard__title:hover { color: var(--pf-text); }
body.pf .pf-mcard__location {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin-top: 8px;
    font-size: 12px;
    line-height: 18px;
    color: var(--pf-text-2);
}
body.pf .pf-mcard__location i { margin-top: 3px; font-size: 11px; }
body.pf .pf-mcard__specs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    margin-top: 6px;
    font-size: 12px;
    line-height: 18px;
    color: var(--pf-text-2);
}
body.pf .pf-mcard__specs span { display: inline-flex; align-items: center; gap: 5px; }
body.pf .pf-mcard__specs i { font-size: 11px; }

body.pf .pf-mcard__actions {
    display: flex;
    gap: 8px;
    margin-top: 12px;
}
body.pf .pf-mcard__actions .pf-btn { flex: 1 1 0; height: 40px; }
body.pf .pf-mcard__actions .pf-mcard__map { flex: 0 0 40px; padding: 0; }

/* Bottom sheet popup used by the mobile Call button (JS toggles display:flex) */
body.pf .pf-sheet {
    position: fixed;
    inset: 0;
    z-index: 100000;
    align-items: flex-end;
    justify-content: center;
    background: rgba(0, 0, 0, .5);
}
body.pf .pf-sheet__panel {
    position: relative;
    width: 100%;
    max-width: 480px;
    padding: 28px 20px calc(20px + env(safe-area-inset-bottom));
    background: var(--pf-white);
    border-radius: var(--pf-r-xl) var(--pf-r-xl) 0 0;
    text-align: center;
    box-shadow: var(--pf-shadow-l);
}
body.pf .pf-sheet__close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: var(--pf-bg-soft);
    color: var(--pf-text-2);
}
body.pf .pf-sheet__icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--pf-purple-50);
    color: var(--pf-purple);
    font-size: 18px;
}
body.pf .pf-sheet__title { margin: 0 0 2px; font-size: 18px; }
body.pf .pf-sheet__subtitle { margin: 0 0 16px; font-size: 14px; color: var(--pf-text-2); }

/* ==========================================================================
   Search results page
   ========================================================================== */
body.pf .pf-search-page { padding: 24px 0 16px; background: var(--pf-white); }

body.pf .pf-search-box {
    max-width: 880px;
    margin: 0 0 24px;
    padding: 20px;
    background: var(--pf-white);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-xl);
    box-shadow: var(--pf-shadow-m);
}
body.pf .pf-search-box__title {
    margin: 0 0 14px;
    font-size: 22px;
    font-weight: 600;
    line-height: 32px;
    color: var(--pf-text);
}

body.pf .pf-search-form {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
body.pf .pf-search-form__field {
    position: relative;
    flex: 1 1 160px;
    min-width: 0;
}
body.pf .pf-search-form__field > i {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    font-size: 13px;
    color: var(--pf-text-2);
    pointer-events: none;
}
body.pf .pf-search-form__field .form-control,
body.pf .pf-search-form__field .form-select {
    height: 40px;
    padding-left: 34px;
    border-radius: var(--pf-r-full);
    background-color: var(--pf-white);
}
body.pf .pf-search-form__field .form-control:disabled,
body.pf .pf-search-form__field .form-select:disabled {
    background-color: var(--pf-bg-soft);
}
body.pf .pf-search-form__submit {
    flex: 0 0 auto;
    min-width: 120px;
    border-radius: var(--pf-r-full);
}

body.pf .pf-results { max-width: 880px; }
body.pf .pf-results__item { width: 100%; }

body.pf .pf-empty {
    max-width: 880px;
    padding: 48px 16px;
    text-align: center;
    color: var(--pf-text-2);
    background: var(--pf-bg-soft);
    border-radius: var(--pf-r-l);
}
body.pf .pf-empty i { font-size: 28px; margin-bottom: 8px; color: var(--pf-text-3); }
body.pf .pf-empty p { margin: 0; font-size: 15px; color: var(--pf-text-2); }

body.pf .pf-pagination {
    max-width: 880px;
    padding: 16px 0 8px;
}
body.pf .pf-pagination .page-link i { font-size: 11px; }

@media (max-width: 767.98px) {
    body.pf .pf-search-page { padding: 12px 0 8px; }
    body.pf .pf-search-box {
        padding: 14px;
        margin-bottom: 16px;
        border-radius: var(--pf-r-l);
        box-shadow: var(--pf-shadow-s);
    }
    body.pf .pf-search-box__title { font-size: 18px; line-height: 26px; margin-bottom: 10px; }
    body.pf .pf-search-form__field { flex: 1 1 calc(50% - 4px); }
    body.pf .pf-search-form__submit { flex: 1 1 100%; height: 44px; }
}

/* ==========================================================================
   Featured project card inside search results
   ========================================================================== */
body.pf .pf-card--project { background: var(--pf-purple-50); border-color: var(--pf-purple-100); }
body.pf .pf-card__media--project { height: 200px; }
body.pf .pf-card__project-name {
    margin: 6px 0 4px;
    font-size: 16px;
    font-weight: 700;
    line-height: 24px;
    color: var(--pf-text);
}
body.pf .pf-card__project-name a { color: inherit; text-decoration: none; }
body.pf .pf-card__project-name a:hover { color: var(--pf-purple); }
body.pf .pf-card__project-price {
    font-size: 14px;
    font-weight: 600;
    color: var(--pf-text);
    margin-bottom: 4px;
}
body.pf .pf-card__bottom--end { justify-content: flex-end; border-top-color: var(--pf-purple-100); }

/* Mobile project card: full image with text on top (PF new projects style) */
body.pf .pf-pcard {
    position: relative;
    width: 100%;
    margin: 0 0 16px;
    border-radius: var(--pf-r-l);
    overflow: hidden;
    background: #1a1a1a;
    font-family: var(--pf-font);
}
body.pf .pf-pcard__media {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 120%;
}
body.pf .pf-pcard__shade {
    position: absolute;
    inset: 0;
    z-index: 3;
    background: linear-gradient(180deg, rgba(0, 0, 0, .25) 0%, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, .55) 58%, rgba(0, 0, 0, .9) 100%);
    pointer-events: none;
}
body.pf .pf-pcard__overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 5;
    padding: 16px;
    color: var(--pf-white);
    pointer-events: none;
}
body.pf .pf-pcard__overlay a,
body.pf .pf-pcard__overlay button { pointer-events: auto; }
body.pf .pf-pcard__type {
    display: inline-block;
    margin-bottom: 4px;
    font-size: 12px;
    color: rgba(255, 255, 255, .85);
}
body.pf .pf-pcard__name {
    display: block;
    font-size: 20px;
    font-weight: 700;
    line-height: 26px;
    color: var(--pf-white);
    text-decoration: none;
}
body.pf .pf-pcard__name:hover { color: var(--pf-white); }
body.pf .pf-pcard__location {
    margin-top: 4px;
    font-size: 12px;
    color: rgba(255, 255, 255, .85);
}
body.pf .pf-pcard__location i { font-size: 11px; }
body.pf .pf-pcard__price-label {
    margin-top: 10px;
    font-size: 11px;
    color: rgba(255, 255, 255, .75);
}
body.pf .pf-pcard__price {
    font-size: 18px;
    font-weight: 700;
    color: var(--pf-white);
}
body.pf .pf-pcard__dots {
    display: flex;
    justify-content: center;
    gap: 5px;
    margin: 12px 0 0;
}
body.pf .pf-pcard__dots .pkpj-dot {
    width: 6px;
    height: 6px;
    padding: 0;
    border: 0;
    border-radius: 50%;
}
body.pf .pf-pcard__dots .pkpj-dot:nth-child(n+8) { display: none; }
body.pf .pf-pcard__cta {
    margin-top: 12px;
    height: 40px;
    background: var(--pf-white);
    color: var(--pf-purple);
}
body.pf .pf-pcard__cta:hover { background: var(--pf-purple-50); color: var(--pf-purple); }

/* ==========================================================================
   Property / project detail page
   ========================================================================== */
body.pf .pf-detail { padding: 16px 0 40px; background: var(--pf-white); }
body.pf .pf-detail__row { margin-top: 24px; }

body.pf .pf-detail__topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
body.pf .pf-detail__back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--pf-text-2);
    text-decoration: none;
}
body.pf .pf-detail__back:hover { color: var(--pf-purple); }
body.pf .pf-detail__actions {
    display: flex;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}
body.pf .pf-detail__action {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 36px;
    padding: 0 12px;
    font-size: 14px;
    font-weight: 600;
    color: var(--pf-purple);
    border-radius: var(--pf-r-m);
    text-decoration: none;
    background: transparent;
}
body.pf .pf-detail__action:hover { background: var(--pf-purple-50); color: var(--pf-purple); }
body.pf .pf-detail__action .fas.fa-heart { color: var(--pf-red); }

body.pf .pf-share { position: relative; }
body.pf .pf-share__panel {
    position: absolute;
    right: 0;
    top: calc(100% + 4px);
    z-index: 30;
    display: none;
    gap: 6px;
    padding: 8px;
    background: var(--pf-white);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-l);
    box-shadow: var(--pf-shadow-m);
}
body.pf .pf-share:hover .pf-share__panel,
body.pf .pf-share:focus-within .pf-share__panel { display: flex; }
body.pf .pf-share__panel a {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--pf-r-m);
    background: var(--pf-purple-50);
    color: var(--pf-purple);
}
body.pf .pf-share__panel a:hover { background: var(--pf-purple); color: var(--pf-white); }

/* Gallery grid */
body.pf .pf-gallery {
    position: relative;
    display: grid;
    grid-template-columns: 2fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 8px;
    height: 460px;
    border-radius: var(--pf-r-l);
    overflow: hidden;
}
body.pf .pf-gallery--single { grid-template-columns: 1fr; grid-template-rows: 1fr; }
body.pf .pf-gallery a { display: block; overflow: hidden; background: var(--pf-bg-soft); }
body.pf .pf-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}
body.pf .pf-gallery a:hover img { transform: scale(1.03); }
body.pf .pf-gallery__main { grid-row: 1 / 3; grid-column: 1; }
body.pf .pf-gallery--single .pf-gallery__main { grid-row: 1; }
body.pf .pf-gallery__hidden { display: none !important; }
body.pf .pf-gallery__tags {
    position: absolute;
    left: 12px;
    bottom: 12px;
    z-index: 3;
    display: flex;
    gap: 6px;
    pointer-events: none;
}
body.pf .pf-gallery__count {
    position: absolute;
    right: 12px;
    bottom: 12px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 12px;
    font-size: 13px;
    font-weight: 600;
    color: var(--pf-text);
    background: var(--pf-white);
    border: 0;
    border-radius: var(--pf-r-m);
    box-shadow: var(--pf-shadow-s);
    cursor: pointer;
}

/* Title block */
body.pf .pf-detail__head { padding-bottom: 20px; border-bottom: 1px solid var(--pf-border); }
body.pf .pf-detail__price {
    font-size: 28px;
    font-weight: 700;
    line-height: 40px;
    color: var(--pf-text);
}
body.pf .pf-detail__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 14px;
}
body.pf .pf-detail__title {
    margin: 0 0 12px;
    font-size: 20px;
    font-weight: 600;
    line-height: 30px;
    color: var(--pf-text);
}
body.pf .list-fx-features {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    margin: 0;
}
body.pf .list-fx-features .listing-card-info-icon {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--pf-text);
    margin: 0;
    padding: 0;
}
body.pf .list-fx-features .inc-fleat-icon {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--pf-purple-50);
    margin: 0;
}

/* Content blocks (shared with project detail) */
body.pf .property_block_wrap,
body.pf .property_block_wrap.style-2 {
    margin: 0;
    padding: 24px 0;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--pf-border);
    border-radius: 0;
    box-shadow: none;
}
body.pf .property_block_wrap_header,
body.pf .property_block_wrap .property_block_wrap_header {
    padding: 0;
    margin: 0 0 14px;
    border: 0;
    background: transparent;
}
body.pf .property_block_wrap_header a { color: var(--pf-text); text-decoration: none; }
body.pf .property_block_wrap_header a:after,
body.pf .property_block_wrap_header a:before { display: none; }
body.pf .property_block_title {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: var(--pf-text);
}
body.pf .property_block_wrap .block-body {
    padding: 0;
    font-size: 14px;
    line-height: 24px;
    color: var(--pf-text);
}
body.pf .property_block_wrap .block-body p { color: var(--pf-text); }

body.pf ul.detail_features {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 32px;
    margin: 0;
    padding: 0;
    list-style: none;
}
body.pf ul.detail_features li {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    width: auto;
    float: none;
    padding: 10px 0;
    margin: 0;
    font-size: 14px;
    color: var(--pf-text);
    border-bottom: 1px solid var(--pf-bg-soft);
}
body.pf ul.detail_features li strong {
    font-weight: 400;
    color: var(--pf-text-2);
    margin: 0;
}

body.pf ul.avl-features {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}
body.pf ul.avl-features li {
    display: flex;
    align-items: center;
    gap: 10px;
    width: auto;
    float: none;
    margin: 0;
    padding: 0;
    font-size: 14px;
    color: var(--pf-text);
}
body.pf ul.avl-features li:before { display: none; }
body.pf ul.avl-features li i,
body.pf ul.avl-features li .icon {
    width: 20px;
    font-size: 15px;
    color: var(--pf-purple);
    text-align: center;
}

/* Read more */
body.pf .pf-readmore.is-collapsed .pf-readmore__content {
    max-height: 220px;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(180deg, #000 60%, transparent);
    mask-image: linear-gradient(180deg, #000 60%, transparent);
}
body.pf .pf-readmore__toggle { margin-top: 12px; }
body.pf .pf-readmore.is-short .pf-readmore__toggle { display: none; }

/* Inline gallery block */
body.pf ul.list-gallery-inline {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}
body.pf ul.list-gallery-inline li { width: auto; float: none; margin: 0; padding: 0; }
body.pf ul.list-gallery-inline li a { display: block; border-radius: var(--pf-r-m); overflow: hidden; aspect-ratio: 4 / 3; }
body.pf ul.list-gallery-inline li img { width: 100%; height: 100%; object-fit: cover; }

/* Sidebar agent box */
body.pf .pf-detail__sidebar {
    position: sticky;
    top: calc(var(--pf-header-h) + 16px);
}
body.pf .sides-widget,
body.pf .pf-agent-box {
    margin-bottom: 16px;
    padding: 20px;
    background: var(--pf-white);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-l);
    box-shadow: var(--pf-shadow-m);
}
body.pf .pf-agent-box__head { text-align: center; }
body.pf .pf-agent-box__photo img {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid var(--pf-border);
}
body.pf .pf-agent-box__name { margin: 10px 0 2px; font-size: 16px; font-weight: 600; }
body.pf .pf-agent-box__name a { color: var(--pf-text); text-decoration: none; }
body.pf .pf-agent-box__name a:hover { color: var(--pf-purple); }
body.pf .pf-agent-box__company { font-size: 13px; color: var(--pf-text-2); }
body.pf .pf-agent-box__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 16px;
}
body.pf .pf-agent-box__phone {
    margin-top: 10px;
    font-size: 13px;
    text-align: center;
    color: var(--pf-text-2);
}
body.pf .pf-agent-box__form {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--pf-border);
}
body.pf .pf-agent-box__form-title { margin: 0 0 12px; font-size: 14px; font-weight: 600; }
body.pf .sides-widget-body .form-group { margin-bottom: 10px; }
body.pf .consult-form .btn,
body.pf .simple-form .btn.btn-black,
body.pf .btn.btn-black {
    height: 44px;
    width: 100%;
    font-size: 14px;
    font-weight: 600;
    color: var(--pf-white);
    background: var(--pf-red);
    border: 0;
    border-radius: var(--pf-r-m);
}
body.pf .consult-form .btn:hover,
body.pf .btn.btn-black:hover { background: var(--pf-red-hover); color: var(--pf-white); }

/* Sidebar widgets from the admin (generic) */
body.pf .single-widgets,
body.pf .details-sidebar .widget {
    padding: 20px;
    margin-bottom: 16px;
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-l);
    background: var(--pf-white);
    box-shadow: none;
}
body.pf .single-widgets .widget-title,
body.pf .details-sidebar .widget-title { font-size: 16px; font-weight: 600; margin-bottom: 12px; }

body.pf .pf-detail__recent { margin-top: 32px; }
body.pf .pf-detail__mobile-bar { display: none; }

@media (max-width: 991.98px) {
    body.pf .pf-detail__sidebar { position: static; margin-top: 24px; }
}

@media (max-width: 767.98px) {
    body.pf .pf-detail { padding-top: 8px; }
    body.pf .pf-detail > .pf-container { padding: 0; }
    body.pf .pf-detail__topbar { padding: 0 12px; margin-bottom: 8px; }
    body.pf .pf-detail__action span { display: none; }
    body.pf .pf-detail__row { margin: 16px 0 0; padding: 0 16px; }
    body.pf .pf-detail__row > [class*="col-"] { padding: 0; }
    body.pf .pf-detail__recent { margin: 24px 0 0; padding: 0 16px; }

    body.pf .pf-gallery {
        grid-template-columns: 1fr;
        grid-template-rows: 1fr;
        height: auto;
        aspect-ratio: 4 / 3;
        border-radius: 0;
    }
    body.pf .pf-gallery__main { grid-row: 1; }
    body.pf .pf-gallery__side { display: none !important; }

    body.pf .pf-detail__price { font-size: 24px; line-height: 32px; }
    body.pf .pf-detail__title { font-size: 17px; line-height: 26px; }
    body.pf ul.detail_features { grid-template-columns: 1fr; }
    body.pf ul.avl-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.pf ul.list-gallery-inline { grid-template-columns: repeat(3, minmax(0, 1fr)); }

    /* Sticky Call / WhatsApp above the bottom nav */
    body.pf .pf-detail__mobile-bar {
        position: fixed;
        left: 0;
        right: 0;
        bottom: calc(var(--pf-bottom-nav-h) + env(safe-area-inset-bottom));
        z-index: 998;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
        padding: 10px 16px;
        background: var(--pf-white);
        border-top: 1px solid var(--pf-border);
        box-shadow: 0 -2px 12px rgba(0, 0, 0, .06);
    }
    body.pf .pf-detail__mobile-bar .pf-btn { height: 44px; }
    body.pf .pf-detail { padding-bottom: 80px; }
}

/* Detail page: neutralise Resido share list / feature row / amenities sizing */
body.pf ul.like_share_list.pf-detail__actions { width: auto; }
body.pf ul.like_share_list.pf-detail__actions li { flex: 0 0 auto; width: auto; padding: 0; }
body.pf ul.like_share_list.pf-detail__actions li a.pf-detail__action {
    width: auto;
    background: transparent;
    border: 0;
    color: var(--pf-purple) !important;
}
body.pf ul.like_share_list.pf-detail__actions li a.pf-detail__action:hover { background: var(--pf-purple-50); }
body.pf ul.like_share_list li .pf-share__panel a {
    width: 36px;
    padding: 0;
    font-size: 15px;
    border: 0;
    border-radius: var(--pf-r-m);
    background: var(--pf-purple-50);
    color: var(--pf-purple) !important;
}
body.pf ul.like_share_list li .pf-share__panel a:hover { background: var(--pf-purple); color: var(--pf-white) !important; }
body.pf .pf-detail .list-fx-features { justify-content: flex-start; margin-top: 0; }
body.pf ul.avl-features li {
    flex: initial;
    max-width: none;
    padding-left: 0;
    position: static;
}
body.pf ul.avl-features li .icon {
    position: static;
    width: 22px;
    height: 22px;
    line-height: 22px;
    font-size: 11px;
    border-radius: 50%;
    background: var(--pf-purple-50);
    color: var(--pf-purple);
    flex-shrink: 0;
}
body.pf .property_block_wrap_header a,
body.pf .property_block_wrap_header a h4 { color: var(--pf-text); }

/* ==========================================================================
   SKIN: restyles the remaining Resido pages with CSS only (no markup change)
   Home sections, grids, projects, agents, blog, auth, page titles, 404
   ========================================================================== */

/* ---------- Section headings ---------- */
body.pf .sec-heading { margin-bottom: 24px; }
body.pf .sec-heading h2 {
    margin: 0 0 6px;
    font-size: 28px;
    font-weight: 700;
    line-height: 40px;
    color: var(--pf-text);
}
body.pf .sec-heading p {
    margin: 0;
    font-size: 15px;
    color: var(--pf-text-2);
}
body.pf .sec-heading.center { text-align: left; }
body.pf .sec-heading.center h2:after,
body.pf .sec-heading h2:after { display: none; }
body.pf .bg-light, body.pf .gray-simple, body.pf .gray { background: var(--pf-white) !important; }
body.pf section.bg-light { background: var(--pf-purple-50) !important; }

body.pf .btn-theme-light-2,
body.pf .btn.btn-theme-light-2 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 40px;
    padding: 0 20px;
    font-size: 14px;
    font-weight: 600;
    color: var(--pf-purple) !important;
    background: var(--pf-purple-50) !important;
    border: 0 !important;
    border-radius: var(--pf-r-m) !important;
    box-shadow: none !important;
}
body.pf .btn-theme-light-2:hover { background: var(--pf-purple-100) !important; }
body.pf .btn.btn-theme-light-2.full-width { width: 100%; }
body.pf .btn-primary {
    background: var(--pf-red);
    border-color: var(--pf-red);
    border-radius: var(--pf-r-m);
    font-weight: 600;
}
body.pf .btn-primary:hover { background: var(--pf-red-hover); border-color: var(--pf-red-hover); }
body.pf .btn-secondary {
    background: var(--pf-purple-50);
    border-color: var(--pf-purple-100);
    color: var(--pf-purple);
    border-radius: var(--pf-r-m);
}

/* ---------- Hero banners (all styles) ---------- */
body.pf .image-cover.hero-banner,
body.pf .hero-banner {
    position: relative;
    min-height: 480px;
    padding: 96px 0 72px;
    display: flex;
    align-items: center;
    background-size: cover;
    background-position: center;
}
body.pf .image-cover.hero-banner:before,
body.pf .hero-banner:before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, .45) 0%, rgba(0, 0, 0, .25) 60%, rgba(0, 0, 0, .1) 100%);
    pointer-events: none;
}
body.pf .hero-banner > .container { position: relative; z-index: 2; }
body.pf .hero-search h1,
body.pf .hero-banner h1,
body.pf .hero-banner .big-header-capt {
    color: var(--pf-white) !important;
    font-size: 44px;
    font-weight: 700;
    line-height: 56px;
    text-align: center;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .25);
}
body.pf .hero-banner p,
body.pf .hero-search p {
    color: rgba(255, 255, 255, .92);
    font-size: 17px;
    text-align: center;
}
body.pf .hero-search-wrap,
body.pf .hero-search-content,
body.pf .full-search-2 {
    background: var(--pf-white);
    border: 0;
    border-radius: var(--pf-r-xxl);
    box-shadow: var(--pf-shadow-l);
    padding: 16px;
}
body.pf .full-search-2.eclip-search { border-radius: var(--pf-r-xxl); }
body.pf .hero-search-content .form-group { margin-bottom: 0; }
body.pf .hero-search-content .form-control,
body.pf .hero-search-content .select2-container--default .select2-selection--single,
body.pf .full-search-2 .form-control {
    height: 44px;
    border-radius: var(--pf-r-full);
    background: var(--pf-bg-soft);
    border-color: transparent;
}
body.pf .full-search-2 .b-r { border-right: 0 !important; }
body.pf .hero-search-content .btn.search-btn,
body.pf .full-search-2 .btn.search-btn,
body.pf .btn.search-btn.black {
    width: 100%;
    height: 44px;
    border-radius: var(--pf-r-full);
    background: var(--pf-red) !important;
    border-color: var(--pf-red) !important;
    color: var(--pf-white) !important;
}
body.pf .input-with-icon i {
    color: var(--pf-text-2);
    font-size: 14px;
}

/* Rent / Buy pill switch */
body.pf .choose-property-type,
body.pf .property-search-type {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    background: var(--pf-bg-soft);
    border-radius: var(--pf-r-full);
}
body.pf .choose-property-type label,
body.pf .property-search-type label {
    margin: 0;
    padding: 6px 18px;
    font-size: 14px;
    font-weight: 600;
    color: var(--pf-text);
    background: transparent;
    border-radius: var(--pf-r-full);
    cursor: pointer;
}
body.pf .property-search-type label.active,
body.pf .property-search-type label:hover {
    background: var(--pf-purple-50) !important;
    color: var(--pf-purple) !important;
    box-shadow: inset 0 0 0 1px var(--pf-purple-600);
}

/* ---------- Page title band ---------- */
body.pf .page-title,
body.pf .image-cover.page-title {
    padding: 32px 0;
    background: var(--pf-purple-50) !important;
    background-image: none !important;
}
body.pf .page-title:before { display: none; }
body.pf .page-title .ipt-title,
body.pf .ipt-title {
    margin: 0;
    font-size: 28px;
    font-weight: 700;
    color: var(--pf-text) !important;
}
body.pf .ipn-subtitle {
    margin: 4px 0 0;
    font-size: 15px;
    color: var(--pf-text-2) !important;
}

/* ---------- Property grid card (Resido property-2, used on home & lists) ---------- */
body.pf .property-listing.property-2 {
    margin-bottom: 24px;
    background: var(--pf-white);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-l);
    overflow: hidden;
    box-shadow: none;
    transition: box-shadow .2s ease;
}
body.pf .property-listing.property-2:hover { box-shadow: var(--pf-shadow-m); }
body.pf .property-listing.property-2 .listing-img-wrapper {
    position: relative;
    height: 220px;
    border-radius: 0;
    overflow: hidden;
}
body.pf .property-listing.property-2 .listing-img-wrapper img {
    width: 100%;
    height: 220px;
    object-fit: cover;
}
body.pf .property-verified-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 20px;
    padding: 0 8px;
    font-size: 11px;
    font-weight: 600;
    color: var(--pf-white);
    background: var(--pf-success);
    border-radius: var(--pf-r-xl);
}
body.pf .icon-actions-wrapper { top: 10px; right: 10px; }
body.pf .icon-actions-wrapper a,
body.pf .icon-actions-wrapper a.add-to-wishlist {
    width: 32px;
    height: 32px;
    line-height: 32px;
    border-radius: 50%;
    background: rgba(0, 0, 0, .35);
    color: var(--pf-white);
}
body.pf .icon-actions-wrapper a .fas.fa-heart { color: var(--pf-red); }
body.pf .listing-detail-wrapper { padding: 14px 16px 0; }
body.pf .listing-card-info-price,
body.pf .list-price h6 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    color: var(--pf-text) !important;
}
body.pf .listing-name {
    margin: 6px 0 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
}
body.pf .listing-name a,
body.pf .prt-link-detail {
    color: var(--pf-text-2) !important;
    text-transform: none !important;
}
body.pf .listing-name a:hover { color: var(--pf-text) !important; }
body.pf .prt-types {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 8px;
    font-size: 11px;
    font-weight: 600;
    color: var(--pf-purple) !important;
    background: var(--pf-purple-50) !important;
    border-radius: var(--pf-r-s);
}
body.pf .prt-types.rent { color: #8e6b00 !important; background: #fff6ea !important; }
body.pf .price-features-wrapper { padding: 10px 16px; }
body.pf .property-listing .list-fx-features { justify-content: flex-start; gap: 6px 14px; margin: 0; }
body.pf .property-listing .listing-card-info-icon { font-size: 12px; color: var(--pf-text-2); }
body.pf .property-listing .inc-fleat-icon {
    width: 24px;
    height: 24px;
    background: var(--pf-bg-soft);
}
body.pf .listing-detail-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 16px;
    border-top: 1px solid var(--pf-border);
}
body.pf .foot-location {
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--pf-text-2);
}
body.pf .foot-location img { width: 14px; opacity: .6; }
body.pf .prt-view,
body.pf a.prt-view {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 32px;
    padding: 0 12px;
    font-size: 13px;
    font-weight: 600;
    color: var(--pf-purple) !important;
    background: var(--pf-purple-50) !important;
    border: 0;
    border-radius: var(--pf-r-m);
    text-decoration: none;
}
body.pf .prt-view:hover { background: var(--pf-purple-100) !important; }

/* Project cards in grids */
body.pf .property-listing.property-2.project .list-price-wrapper {
    position: absolute;
    left: 12px;
    bottom: 12px;
    z-index: 3;
}
body.pf .property-listing.property-2.project .list-price-wrapper .listing-card-info-price {
    padding: 4px 10px;
    font-size: 13px;
    color: var(--pf-white) !important;
    background: rgba(0, 0, 0, .55);
    border-radius: var(--pf-r-m);
}
body.pf .listing-short-description { margin: 6px 0 0; font-size: 13px; color: var(--pf-text-2); }

/* ---------- Locations (properties by locations) ---------- */
body.pf .location-property-wrap {
    margin-bottom: 24px;
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-l);
    overflow: hidden;
    background: var(--pf-white);
    box-shadow: none;
}
body.pf .location-property-thumb { height: 200px; overflow: hidden; }
body.pf .location-property-thumb img { width: 100%; height: 100%; object-fit: cover; }
body.pf .location-property-content { padding: 14px 16px; }
body.pf .lp-content-title h4 { margin: 0; font-size: 16px; font-weight: 600; }
body.pf .lp-content-title span { font-size: 13px; color: var(--pf-text-2); }
body.pf .lp-property-view {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--pf-purple-50);
    color: var(--pf-purple);
}

/* ---------- Agents (list + featured agents) ---------- */
body.pf .agents-grid {
    margin-bottom: 24px;
    padding: 0;
    background: var(--pf-white);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-l);
    overflow: hidden;
    box-shadow: none;
    transition: box-shadow .2s ease;
}
body.pf .agents-grid:hover { box-shadow: var(--pf-shadow-m); }
body.pf .agents-grid-wrap { position: relative; padding: 24px 16px 12px; text-align: center; }
body.pf .agent-verified-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 20px;
    padding: 0 8px;
    font-size: 11px;
    font-weight: 600;
    color: var(--pf-white);
    background: var(--pf-success);
    border-radius: var(--pf-r-xl);
}
body.pf .fr-grid-thumb img {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--pf-white);
    box-shadow: 0 0 0 1px var(--pf-border);
}
body.pf .fr-grid-deatil { display: block; padding-top: 10px; }
body.pf .fr-can-name { margin: 0; font-size: 16px; font-weight: 600; }
body.pf .fr-can-name a { color: var(--pf-text); }
body.pf .fr-grid-deatil-flex-right { display: none; }
body.pf .fr-grid-info { padding: 0 16px 12px; text-align: center; }
body.pf .fr-grid-info ul { margin: 0; padding: 0; list-style: none; }
body.pf .fr-grid-info li { font-size: 13px; color: var(--pf-text-2); }
body.pf .fr-grid-info li strong { color: var(--pf-text); font-weight: 600; }
body.pf .fr-grid-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    border-top: 1px solid var(--pf-border);
}
body.pf .fr-position { font-size: 13px; color: var(--pf-text-2); }
body.pf .fr-position i { margin-right: 6px; color: var(--pf-purple); }

/* Agent tier sections (agents page) */
body.pf .agent-tier-section { padding: 24px 0 8px; }
body.pf .agent-tier-heading {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 16px;
    font-size: 20px;
    font-weight: 700;
    color: var(--pf-text);
}
body.pf .agent-tier-heading i { color: var(--pf-purple); }
body.pf .agent-location-search {
    padding: 16px;
    margin-bottom: 16px;
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-xl);
    box-shadow: var(--pf-shadow-m);
}

/* Agent / agency profile header: dark purple hero like PF */
body.pf .agency.agency-list {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 32px;
    margin-bottom: 24px;
    background: var(--pf-purple);
    border: 0;
    border-radius: var(--pf-r-xl);
    color: var(--pf-white);
    box-shadow: none;
}
body.pf .agency.agency-list .agency-avatar img {
    width: 120px;
    height: 120px;
    max-width: none;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid var(--pf-white);
}
body.pf .agency.agency-list .agency-content { padding: 0; }
body.pf .agency.agency-list .agency-name h4,
body.pf .agency.agency-list .agency-name a,
body.pf .agency.agency-list h4 { color: var(--pf-white) !important; font-size: 24px; margin: 0 0 6px; }
body.pf .agency.agency-list .agency-name span,
body.pf .agency.agency-list .agency-desc,
body.pf .agency.agency-list p,
body.pf .agency.agency-list li,
body.pf .agency.agency-list a { color: rgba(255, 255, 255, .88) !important; }
body.pf .agency.agency-list i { color: var(--pf-white); }
body.pf .overlio-40 { margin-top: 24px; }

/* Generic content blocks (agent page tabs, about) */
body.pf .block-wrap,
body.pf .block-wraps {
    padding: 24px;
    margin-bottom: 24px;
    background: var(--pf-white);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-l);
    box-shadow: none;
}
body.pf .block-header,
body.pf .block-wraps-header { padding: 0 0 12px; margin-bottom: 12px; border-bottom: 1px solid var(--pf-border); }
body.pf .block-title { margin: 0; font-size: 18px; font-weight: 600; }
body.pf .nav-tabs.customize-tab { gap: 8px; border: 0; }
body.pf .nav-tabs.customize-tab .nav-link {
    height: 36px;
    padding: 0 16px;
    display: inline-flex;
    align-items: center;
    font-size: 14px;
    font-weight: 600;
    color: var(--pf-text);
    background: var(--pf-bg-soft) !important;
    border: 0;
    border-radius: var(--pf-r-full);
}
body.pf .nav-tabs.customize-tab .nav-link.active {
    color: var(--pf-purple) !important;
    background: var(--pf-purple-50) !important;
    box-shadow: inset 0 0 0 1px var(--pf-purple-600);
}

/* ---------- Blog ---------- */
body.pf .blog-wrap-grid {
    margin-bottom: 24px;
    background: var(--pf-white);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-l);
    overflow: hidden;
    box-shadow: none;
}
body.pf .blog-wrap-grid:hover { box-shadow: var(--pf-shadow-m); }
body.pf .blog-thumb { height: 200px; overflow: hidden; }
body.pf .blog-thumb img { width: 100%; height: 100%; object-fit: cover; }
body.pf .blog-info { padding: 14px 16px 0; }
body.pf .post-date { font-size: 12px; color: var(--pf-text-2); }
body.pf .blog-body { padding: 6px 16px 16px; }
body.pf .bl-title { margin: 0 0 8px; font-size: 17px; font-weight: 600; line-height: 24px; }
body.pf .bl-title a { color: var(--pf-text); }
body.pf .bl-title a:hover { color: var(--pf-purple); }
body.pf .blog-body p { font-size: 13px; color: var(--pf-text-2); }
body.pf .bl-continue { font-size: 13px; font-weight: 600; color: var(--pf-purple) !important; }

body.pf .blog-details,
body.pf .single-post-item {
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}
body.pf .post-featured-img img { width: 100%; border-radius: var(--pf-r-l); }
body.pf .post-title { margin: 20px 0 8px; font-size: 30px; font-weight: 700; line-height: 40px; }
body.pf .post-top-meta,
body.pf .post-meta { font-size: 13px; color: var(--pf-text-2); }
body.pf .post-details,
body.pf .ck-content { font-size: 16px; line-height: 28px; color: var(--pf-text); }
body.pf .post-tags a {
    display: inline-flex;
    margin: 0 6px 6px 0;
    padding: 4px 12px;
    font-size: 13px;
    color: var(--pf-text);
    background: var(--pf-bg-soft);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-m);
}

/* ---------- Testimonials ---------- */
body.pf .smart-tes-content,
body.pf .item-box {
    padding: 24px;
    background: var(--pf-white);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-l);
    box-shadow: none;
}
body.pf .quotes { background: var(--pf-purple) !important; }
body.pf .st-author-title { font-size: 15px; font-weight: 600; }
body.pf .st-author-subtitle { font-size: 13px; color: var(--pf-text-2); }

/* ---------- Sidebar filters / simple forms ---------- */
body.pf .simple-sidebar,
body.pf .sidebar-widgets,
body.pf .filter-sidebar {
    padding: 20px;
    background: var(--pf-white);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-l);
    box-shadow: none;
}
body.pf .simple-input,
body.pf .simple-form .form-control { border-radius: var(--pf-r-m); }
body.pf .control-label,
body.pf .form-label { font-size: 13px; font-weight: 600; color: var(--pf-text); }
body.pf .seo-content-section { padding: 40px 0; background: var(--pf-white) !important; }
body.pf .seo-main-title { font-size: 24px; font-weight: 700; }
body.pf .seo-section-title { font-size: 17px; font-weight: 600; color: var(--pf-text); }
body.pf .seo-list { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
body.pf .seo-list li { margin: 0; }
body.pf .seo-list a {
    display: inline-flex;
    align-items: center;
    height: 32px;
    padding: 0 12px;
    font-size: 13px;
    color: var(--pf-text);
    background: var(--pf-bg-soft);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-m);
    text-decoration: none;
}
body.pf .seo-list a:hover { background: var(--pf-border); }

/* Sort / layout bar on list pages */
body.pf .item-shorting-box,
body.pf .short_wraping {
    padding: 12px 16px;
    margin-bottom: 16px;
    background: var(--pf-white);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-l);
    box-shadow: none;
}

/* ---------- Auth (login / register / reset) ---------- */
body.pf .login-form,
body.pf .modal-content {
    padding: 0;
    border: 0;
    border-radius: var(--pf-r-xl);
    box-shadow: var(--pf-shadow-l);
    overflow: hidden;
}
body.pf .login-form .modal-body,
body.pf .modal-body { padding: 32px; }
body.pf .modal-header-title,
body.pf .login-form h2,
body.pf .login-form h4 {
    font-size: 24px;
    font-weight: 700;
    color: var(--pf-purple);
    text-align: center;
}
body.pf .login-form .form-group { margin-bottom: 14px; }
body.pf .login-form .input-with-icon .form-control { padding-left: 40px; height: 44px; }
body.pf .login-form .input-with-icon i {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
}
body.pf .login-form .btn.btn-md.full-width,
body.pf .login-form .btn.pop-login,
body.pf .login-form button[type=submit] {
    width: 100%;
    height: 48px;
    font-size: 15px;
    font-weight: 600;
    color: var(--pf-white) !important;
    background: var(--pf-red) !important;
    border: 0 !important;
    border-radius: var(--pf-r-m) !important;
}
body.pf .login-form .btn.btn-md.full-width:hover,
body.pf .login-form button[type=submit]:hover { background: var(--pf-red-hover) !important; }
body.pf .login-form a,
body.pf .login-form .link { color: var(--pf-purple); font-weight: 600; }

/* Botble auth form (FormBuilder) used by the real-estate plugin */
body.pf .auth-card,
body.pf .auth-form,
body.pf .card.auth-card {
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-r-xl);
    box-shadow: var(--pf-shadow-l);
    overflow: hidden;
}
body.pf .auth-card .btn-primary,
body.pf .auth-form .btn-primary { width: 100%; height: 48px; }

/* ---------- Error pages ---------- */
body.pf .error-wrap { padding: 64px 16px; text-align: center; }
body.pf .error-wrap h2 { font-size: 32px; font-weight: 700; }
body.pf .error-wrap p { color: var(--pf-text-2); }

/* ---------- Mobile tweaks ---------- */
@media (max-width: 767.98px) {
    body.pf .sec-heading h2 { font-size: 22px; line-height: 30px; }
    body.pf .image-cover.hero-banner,
    body.pf .hero-banner { min-height: 0; padding: 56px 0 40px; }
    body.pf .hero-search h1,
    body.pf .hero-banner h1,
    body.pf .hero-banner .big-header-capt { font-size: 28px; line-height: 36px; }
    body.pf .hero-banner p,
    body.pf .hero-search p { font-size: 14px; }
    body.pf .hero-search-content .form-group,
    body.pf .full-search-2 .form-group { margin-bottom: 8px; }
    body.pf .page-title { padding: 20px 0; }
    body.pf .page-title .ipt-title,
    body.pf .ipt-title { font-size: 22px; }
    body.pf .agency.agency-list { flex-direction: column; text-align: center; padding: 24px 16px; }
    body.pf .agency.agency-list .agency-avatar img { width: 96px; height: 96px; }
    body.pf .post-title { font-size: 22px; line-height: 30px; }
    body.pf .login-form .modal-body,
    body.pf .modal-body { padding: 20px; }
}
