/* ==========================================================================
   Agrawal Property — Real Estate Theme
   Design system: "The Verified Path" — Coral-Red + Deep Navy
   ========================================================================== */

/* -------------------- 1. Design Tokens -------------------- */
:root {
    /* Brand */
    --ap-primary: #D8232A;            /* Coral red — CTAs, price */
    --ap-primary-dark: #b20017;
    --ap-primary-hover: #bf071b;
    --ap-text-primary: #1A1A4E;       /* Deep navy — nav, headings */
    --ap-text-muted: #666666;
    --ap-success: #00A651;            /* Verified green */
    --ap-amber: #FFB800;               /* Offers / New launch */

    /* Surfaces */
    --ap-bg: #F8F9FA;                 /* Warmer neutral canvas */
    --ap-surface: #ffffff;
    --ap-surface-alt: #f3f3f3;
    --ap-surface-grey: #eeeeee;
    --ap-border: #EAEAEA;             /* Soft border */
    --ap-gold: #D4AF37;               /* Premium Gold */
    --ap-gold-hover: #C59B27;
    --ap-warm-bg: #F8F9FA;

    /* Typography */
    --ap-font-display: 'Outfit', system-ui, -apple-system, sans-serif;
    --ap-font-body: 'Inter', system-ui, -apple-system, sans-serif;

    /* Spacing (8px base) */
    --ap-space-1: 8px;
    --ap-space-2: 16px;
    --ap-space-3: 24px;
    --ap-space-4: 32px;
    --ap-space-6: 48px;
    --ap-space-8: 64px;
    --ap-space-10: 80px;

    /* Radii */
    --ap-radius-sm: 4px;
    --ap-radius: 8px;
    --ap-radius-md: 12px;
    --ap-radius-lg: 16px;
    --ap-radius-full: 9999px;

    /* Container */
    --ap-container: 1280px;
    --ap-gutter: 24px;

    /* Shadows */
    --ap-shadow-card: 0 4px 20px rgba(26, 26, 78, 0.08);
    --ap-shadow-card-hover: 0 8px 32px rgba(26, 26, 78, 0.14);
    --ap-shadow-float: 0 8px 28px rgba(26, 26, 78, 0.18);
}

/* -------------------- 2. Reset & Base -------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    font-family: var(--ap-font-body);
    font-size: 16px;
    line-height: 1.5;
    color: var(--ap-text-primary);
    background: var(--ap-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

a { color: var(--ap-primary); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--ap-primary-hover); }

h1, h2, h3, h4, h5, h6 {
    font-family: var(--ap-font-display);
    color: var(--ap-text-primary);
    margin: 0 0 var(--ap-space-2);
    font-weight: 700;
    line-height: 1.25;
}

p { margin: 0 0 var(--ap-space-2); }

ul, ol { padding-left: 1.25em; }
nav ul, .ap-menu, .ap-footer__menu, .ap-faq-list { padding-left: 0; }

button, input, select, textarea { font-family: inherit; font-size: inherit; color: inherit; }

button { cursor: pointer; border: none; background: transparent; }

/* Accessibility */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px; width: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    word-wrap: normal !important;
}
.skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 9999;
    background: var(--ap-primary);
    color: #fff;
    padding: 12px 20px;
    border-radius: 0 0 var(--ap-radius) 0;
}
.skip-link:focus { left: 0; color: #fff; }

/* -------------------- 3. Layout helpers -------------------- */
.ap-container {
    max-width: var(--ap-container);
    margin: 0 auto;
    padding-left: var(--ap-gutter);
    padding-right: var(--ap-gutter);
}
@media (max-width: 768px) {
    .ap-container { padding-left: 16px; padding-right: 16px; }
}

.ap-section { padding: var(--ap-space-8) 0; }
@media (max-width: 768px) {
    .ap-section { padding: var(--ap-space-6) 0; }
}

.ap-grid { display: grid; gap: var(--ap-gutter); }
.ap-grid-3 { grid-template-columns: repeat(3, 1fr); }
.ap-grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1024px) {
    .ap-grid-3 { grid-template-columns: repeat(2, 1fr); }
    .ap-grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .ap-grid-3, .ap-grid-4 { grid-template-columns: 1fr; }
}

/* -------------------- 4. Header / Navigation -------------------- */
/* -------------------- 4. Header & Navigation (BULLETPROOF) -------------------- */
.ap-header {
    background: #fff;
    border-bottom: 1px solid var(--ap-border);
    position: sticky;
    top: 0;
    z-index: 1000;
    box-shadow: 0 1px 0 rgba(0,0,0,.02);
}
.ap-header.is-scrolled { box-shadow: 0 2px 14px rgba(26,26,78,.08); }

.ap-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 72px;
    gap: 24px;
    padding-top: 12px;
    padding-bottom: 12px;
}

/* Brand: stacked name + tag */
.ap-brand {
    display: flex !important;
    flex-direction: column !important;
    text-decoration: none !important;
    line-height: 1.2;
    flex-shrink: 0;
}
.ap-brand:hover { text-decoration: none; }
.ap-brand img,
.ap-brand .custom-logo { max-height: 48px; width: auto; }
.ap-brand__name {
    font-family: var(--ap-font-head), 'Montserrat', sans-serif !important;
    font-weight: 800 !important;
    font-size: 20px !important;
    line-height: 1.1 !important;
    color: var(--ap-text-primary) !important;
    letter-spacing: -0.01em;
}
.ap-brand__tag {
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    color: var(--ap-primary) !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    margin-top: 2px !important;
    line-height: 1 !important;
}

/* Nav wrapper */
.ap-nav {
    display: flex;
    align-items: center;
    flex: 1;
    justify-content: center;
}

/* ===== Menu: kill ALL bullets & defaults ===== */
.ap-header .ap-menu,
.ap-header ul.ap-menu,
.ap-header nav ul {
    list-style: none !important;
    list-style-type: none !important;
    list-style-image: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 32px !important;
    flex-wrap: nowrap;
}
.ap-header .ap-menu > li,
.ap-header ul.ap-menu > li,
.ap-header nav ul > li {
    list-style: none !important;
    list-style-type: none !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative;
}
.ap-header .ap-menu > li::before,
.ap-header .ap-menu > li::marker { content: none !important; display: none !important; }

.ap-header .ap-menu a {
    display: inline-block;
    color: var(--ap-text-primary) !important;
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-size: 15px;
    text-decoration: none !important;
    padding: 8px 0;
    transition: color 0.2s;
    white-space: nowrap;
}
.ap-header .ap-menu a:hover,
.ap-header .ap-menu .current-menu-item > a,
.ap-header .ap-menu .current_page_item > a {
    color: var(--ap-primary) !important;
}

/* Header right side: CTA + mobile toggle */
.ap-header__actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}
.ap-header__cta { white-space: nowrap; }

/* Mobile hamburger toggle */
.ap-nav-toggle {
    display: none;
    width: 44px;
    height: 44px;
    background: transparent;
    border: 1px solid var(--ap-border);
    border-radius: 6px;
    cursor: pointer;
    padding: 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
}
.ap-nav-toggle__bar {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--ap-text-primary);
    border-radius: 2px;
    transition: transform 0.2s, opacity 0.2s;
}

/* Mobile breakpoint */
@media (max-width: 991px) {
    .ap-nav-toggle { display: inline-flex; }
    .ap-header__cta { display: none; }

    .ap-header .ap-menu,
    .ap-header ul.ap-menu {
        display: none !important;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: #fff;
        flex-direction: column !important;
        align-items: stretch !important;
        padding: 16px 20px !important;
        gap: 4px !important;
        box-shadow: 0 8px 30px rgba(26,26,78,.12);
        border-top: 1px solid var(--ap-border);
        max-height: calc(100vh - 72px);
        overflow-y: auto;
    }
    .ap-nav.is-open .ap-menu {
        display: flex !important;
    }
    .ap-header .ap-menu > li {
        width: 100%;
        border-bottom: 1px solid var(--ap-border);
    }
    .ap-header .ap-menu > li:last-child { border-bottom: 0; }
    .ap-header .ap-menu a {
        display: block !important;
        padding: 14px 4px !important;
        font-size: 16px !important;
    }
    .ap-nav {
        position: static;
    }
}

@media (max-width: 540px) {
    .ap-brand__name { font-size: 18px !important; }
    .ap-brand__tag { font-size: 10px !important; }
}

/* -------------------- 5. Buttons -------------------- */
.ap-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 24px;
    border-radius: var(--ap-radius);
    font-weight: 600;
    font-size: 15px;
    line-height: 1;
    min-height: 48px;
    transition: background .2s ease, color .2s ease, border-color .2s ease, transform .15s ease;
    white-space: nowrap;
}
.ap-btn:active { transform: translateY(1px); }

.ap-btn--primary {
    background: var(--ap-primary);
    color: #fff;
}
.ap-btn--primary:hover { background: var(--ap-primary-hover); color: #fff; }

.ap-btn--secondary {
    background: #fff;
    color: var(--ap-text-primary);
    border: 1px solid var(--ap-text-primary);
}
.ap-btn--secondary:hover { background: var(--ap-text-primary); color: #fff; }

.ap-btn--ghost {
    background: transparent;
    color: var(--ap-text-primary);
}
.ap-btn--ghost:hover { color: var(--ap-primary); }

.ap-btn--whatsapp {
    background: #E8F7EE;
    color: #00A651;
    border: 1px solid #00A651;
}
.ap-btn--whatsapp:hover { background: #00A651; color: #fff; }

.ap-btn--sm { padding: 8px 16px; min-height: 40px; font-size: 14px; }
.ap-btn--block { width: 100%; }

/* -------------------- 6. Hero -------------------- */
.ap-hero {
    background: linear-gradient(135deg, #1A1A4E 0%, #4a4a8a 50%, #6e6fa8 100%);
    color: #fff;
    padding: 80px 0 100px;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.ap-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at 20% 30%, rgba(255,255,255,.08), transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(216,35,42,.12), transparent 50%);
    pointer-events: none;
}
.ap-hero--image {
    background-size: cover;
    background-position: center;
    position: relative;
}
.ap-hero--image::before {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(26,26,78,.85), rgba(26,26,78,.6) 70%, rgba(26,26,78,.4));
}
.ap-hero__inner { position: relative; z-index: 1; }
.ap-hero__title {
    font-size: clamp(32px, 5vw, 52px);
    color: #fff;
    margin-bottom: 16px;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.01em;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}
.ap-hero__subtitle {
    font-size: clamp(15px, 1.8vw, 18px);
    max-width: 620px;
    margin: 0 auto 36px;
    color: rgba(255,255,255,.92);
    line-height: 1.5;
}

/* -------------------- 7. Search Box -------------------- */
.ap-searchbox {
    background: #fff;
    border-radius: var(--ap-radius-md);
    box-shadow: var(--ap-shadow-float);
    padding: var(--ap-space-3);
    max-width: 920px;
    margin: 0 auto;
    text-align: left;
    color: var(--ap-text-primary);
}
.ap-searchbox__tabs {
    display: flex;
    gap: var(--ap-space-3);
    border-bottom: 1px solid var(--ap-border);
    margin-bottom: var(--ap-space-3);
}
.ap-searchbox__tab {
    padding: 8px 4px 14px;
    font-weight: 600;
    font-size: 15px;
    color: var(--ap-text-muted);
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
}
.ap-searchbox__tab.is-active {
    color: var(--ap-primary);
    border-bottom-color: var(--ap-primary);
}
.ap-searchbox__fields {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr auto;
    gap: var(--ap-space-2);
    align-items: end;
}
@media (max-width: 760px) {
    .ap-searchbox__fields { grid-template-columns: 1fr; }
}
.ap-field { display: flex; flex-direction: column; gap: 6px; }
.ap-field label {
    font-size: 12px;
    font-weight: 600;
    color: var(--ap-text-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
}
.ap-input, .ap-select, .ap-textarea {
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    padding: 12px 14px;
    background: #fff;
    color: var(--ap-text-primary);
    transition: border-color .15s ease, box-shadow .15s ease;
    width: 100%;
    min-height: 46px;
}
.ap-input:focus, .ap-select:focus, .ap-textarea:focus {
    outline: none;
    border-color: var(--ap-text-primary);
    box-shadow: 0 0 0 2px rgba(26,26,78,.12);
}
.ap-textarea { min-height: 110px; resize: vertical; }

.ap-input-with-icon { position: relative; }
.ap-input-with-icon .ap-input { padding-left: 38px; }
.ap-input-with-icon__icon {
    position: absolute;
    left: 12px; top: 50%;
    transform: translateY(-50%);
    color: var(--ap-text-muted);
}

/* -------------------- 8. Stats strip -------------------- */
.ap-stats {
    background: #fff;
    border-radius: var(--ap-radius-md);
    box-shadow: var(--ap-shadow-card);
    padding: var(--ap-space-4) 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    max-width: var(--ap-container);
    margin: -32px auto 0;
    position: relative;
    z-index: 2;
}
.ap-stat { text-align: center; padding: 0 var(--ap-space-3); border-right: 1px solid var(--ap-border); }
.ap-stat:last-child { border-right: 0; }
.ap-stat__num {
    font-family: var(--ap-font-display);
    font-size: 32px;
    font-weight: 700;
    color: var(--ap-primary);
    line-height: 1;
    margin-bottom: 6px;
}
.ap-stat__label { color: var(--ap-text-muted); font-size: 14px; }
@media (max-width: 600px) {
    .ap-stats { grid-template-columns: 1fr; }
    .ap-stat { border-right: 0; border-bottom: 1px solid var(--ap-border); padding: 16px; }
    .ap-stat:last-child { border-bottom: 0; }
}

/* -------------------- 9. Section header -------------------- */
.ap-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: var(--ap-space-4);
    gap: var(--ap-space-3);
}
.ap-section-head__title { font-size: 28px; margin: 0 0 4px; }
.ap-section-head__sub { color: var(--ap-text-muted); margin: 0; font-size: 14px; }
.ap-section-head__link {
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/* -------------------- 10. Property Card (grid layout) -------------------- */
.ap-card {
    background: #fff;
    border-radius: var(--ap-radius-md);
    border: 1px solid var(--ap-border);
    box-shadow: 0 4px 15px rgba(26,26,78,0.03);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: all 0.3s ease;
}
.ap-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(26,26,78,0.08);
    border-color: rgba(26,26,78,0.1);
}

.ap-card__media {
    position: relative;
    aspect-ratio: 16 / 11;
    background: #eee;
    overflow: hidden;
}
.ap-card__media img { width: 100%; height: 100%; object-fit: cover; }

.ap-badge {
    position: absolute;
    top: 12px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 12px;
    border-radius: 20px;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.ap-badge--verified {
    left: 12px;
    background: rgba(0, 166, 81, 0.1);
    color: #00A651;
    border: 1px solid rgba(0, 166, 81, 0.2);
}
.ap-badge--verified svg {
    stroke-width: 3px;
}
.ap-badge--offer {
    right: 12px;
    background: rgba(255, 184, 0, 0.15);
    color: #c98b00;
}
.ap-badge--new {
    left: 12px;
    background: rgba(216, 35, 42, 0.08);
    color: #D8232A;
}
.ap-badge--premium {
    right: 12px;
    background: linear-gradient(135deg, var(--ap-gold) 0%, #B38F1E 100%);
    color: #fff;
    box-shadow: 0 4px 10px rgba(179,143,30,0.3);
}

.ap-card__body { padding: var(--ap-space-3); display: flex; flex-direction: column; gap: 8px; flex: 1; }
.ap-card__price-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 2px;
}
.ap-card__price {
    color: var(--ap-primary);
    font-family: var(--ap-font-body);
    font-weight: 800;
    font-size: 22px;
    line-height: 1.1;
}
.ap-card__rate {
    color: var(--ap-text-muted);
    font-size: 13px;
    font-weight: 600;
}
.ap-card__title { font-size: 18px; font-weight: 600; margin: 4px 0 2px; color: var(--ap-text-primary); }
.ap-card__title a { color: inherit; }
.ap-card__title a:hover { color: var(--ap-primary); }
.ap-card__loc {
    color: var(--ap-text-muted);
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 4px;
}

.ap-card__specs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 8px;
}
.ap-chip {
    background: rgba(26,26,78,.06);
    color: var(--ap-text-primary);
    border-radius: var(--ap-radius);
    padding: 6px 12px;
    font-size: 13px;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.ap-card__footer { padding: 12px var(--ap-space-3) var(--ap-space-3); border-top: 1px solid var(--ap-border); margin-top: auto; }
.ap-card__footer .ap-btn { width: 100%; }

/* -------------------- 11. Property Card (list/search-result layout) -------------------- */
.ap-listcard {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    overflow: hidden;
    display: grid;
    grid-template-columns: 320px 1fr;
    margin-bottom: var(--ap-space-3);
}
.ap-listcard__media {
    position: relative;
    min-height: 220px;
    background: #eee;
}
.ap-listcard__media img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.ap-listcard__body { padding: var(--ap-space-3); display: flex; flex-direction: column; }
.ap-listcard__top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--ap-space-2);
}
.ap-listcard__title-wrap h3 { font-size: 20px; margin: 0 0 4px; }
.ap-listcard__price {
    color: var(--ap-primary);
    font-weight: 700;
    font-size: 26px;
    line-height: 1;
    text-align: right;
    white-space: nowrap;
}
.ap-listcard__price small { display: block; color: var(--ap-text-muted); font-weight: 400; font-size: 13px; margin-top: 4px; }

.ap-listcard__specs {
    display: flex;
    gap: var(--ap-space-3);
    margin: var(--ap-space-2) 0;
    flex-wrap: wrap;
}
.ap-listcard__spec {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--ap-text-primary);
    font-size: 14px;
}
.ap-listcard__spec strong { font-weight: 600; }
.ap-listcard__spec small { color: var(--ap-text-muted); display: block; font-size: 12px; }

.ap-listcard__footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
    padding-top: var(--ap-space-2);
    border-top: 1px solid var(--ap-border);
    gap: var(--ap-space-2);
    flex-wrap: wrap;
}
.ap-agent {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
}
.ap-agent__avatar {
    width: 36px; height: 36px;
    background: rgba(26,26,78,.08);
    color: var(--ap-text-primary);
    border-radius: var(--ap-radius-full);
    display: flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 12px;
}
.ap-agent__name { font-weight: 600; }
.ap-agent__role { color: var(--ap-text-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }

.ap-listcard__actions { display: flex; gap: 8px; }

.ap-fav {
    position: absolute; top: 12px; right: 12px;
    width: 36px; height: 36px;
    background: #fff;
    border-radius: var(--ap-radius-full);
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 2px 8px rgba(0,0,0,.1);
    color: var(--ap-text-primary);
}
.ap-fav:hover { color: var(--ap-primary); }

@media (max-width: 768px) {
    .ap-listcard { grid-template-columns: 1fr; }
    .ap-listcard__media { min-height: 200px; }
    .ap-listcard__top { flex-direction: column; }
    .ap-listcard__price { text-align: left; }
}

/* -------------------- 12. Search page layout -------------------- */
.ap-search-page { display: grid; grid-template-columns: 280px 1fr; gap: var(--ap-space-3); align-items: start; }
@media (max-width: 900px) {
    .ap-search-page { grid-template-columns: 1fr; }
}
.ap-breadcrumbs {
    display: flex; flex-wrap: wrap;
    gap: 6px;
    color: var(--ap-text-muted);
    font-size: 14px;
    margin-bottom: var(--ap-space-2);
}
.ap-breadcrumbs a { color: var(--ap-text-muted); }
.ap-breadcrumbs a:hover { color: var(--ap-primary); }
.ap-breadcrumbs__sep { color: var(--ap-border); }
.ap-breadcrumbs__current { color: var(--ap-text-primary); font-weight: 600; }

.ap-filters {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    padding: var(--ap-space-3);
}
.ap-filters__head {
    display: flex; justify-content: space-between; align-items: center;
    margin-bottom: var(--ap-space-2);
}
.ap-filters__title { margin: 0; font-size: 20px; }
.ap-filters__reset { color: var(--ap-primary); font-weight: 600; font-size: 14px; background: transparent; padding: 0; }

.ap-filters__group { padding: var(--ap-space-2) 0; border-bottom: 1px solid var(--ap-border); }
.ap-filters__group:last-child { border-bottom: 0; }
.ap-filters__group-title { font-size: 15px; font-weight: 600; margin: 0 0 12px; }
.ap-check { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; cursor: pointer; }
.ap-check input { accent-color: var(--ap-primary); width: 18px; height: 18px; }

.ap-pill-group { display: flex; flex-wrap: wrap; gap: 8px; }
.ap-pill {
    border: 1px solid var(--ap-border);
    background: #fff;
    padding: 6px 14px;
    border-radius: var(--ap-radius-full);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}
.ap-pill:hover { border-color: var(--ap-text-primary); }
.ap-pill.is-active {
    border-color: var(--ap-text-primary);
    background: rgba(26,26,78,.05);
    color: var(--ap-text-primary);
}

.ap-range { margin: 8px 0; }
.ap-range input[type=range] { width: 100%; accent-color: var(--ap-primary); }
.ap-range-display { display: flex; justify-content: space-between; font-size: 13px; color: var(--ap-text-muted); }
.ap-range-fields { display: grid; grid-template-columns: 1fr auto 1fr; gap: 6px; align-items: center; margin-top: 8px; }

.ap-search-results__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: var(--ap-space-2);
    margin-bottom: var(--ap-space-3);
    flex-wrap: wrap;
}
.ap-search-results__title { margin: 0; font-size: 26px; }
.ap-search-results__count { color: var(--ap-text-muted); margin: 4px 0 0; font-size: 14px; }
.ap-view-toggle {
    display: inline-flex;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    overflow: hidden;
}
.ap-view-toggle button {
    width: 40px; height: 40px;
    display: flex; align-items: center; justify-content: center;
    color: var(--ap-text-muted);
    background: #fff;
}
.ap-view-toggle button.is-active { background: var(--ap-text-primary); color: #fff; }

/* Pagination */
.ap-pagination {
    display: flex; justify-content: center;
    gap: 6px;
    margin: var(--ap-space-4) 0 var(--ap-space-2);
    flex-wrap: wrap;
}
.ap-pagination a, .ap-pagination span {
    min-width: 40px; height: 40px;
    padding: 0 12px;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    background: #fff;
    color: var(--ap-text-primary);
    font-weight: 600;
    font-size: 14px;
}
.ap-pagination .current,
.ap-pagination span.current {
    background: var(--ap-text-primary);
    color: #fff;
    border-color: var(--ap-text-primary);
}
.ap-pagination a:hover { border-color: var(--ap-text-primary); }

/* -------------------- 13. Single property page -------------------- */
.ap-gallery {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 8px;
    border-radius: var(--ap-radius);
    overflow: hidden;
    height: 460px;
    margin-bottom: var(--ap-space-4);
}
.ap-gallery__item {
    position: relative;
    background: #eee;
    overflow: hidden;
}
.ap-gallery__item img { width: 100%; height: 100%; object-fit: cover; }
.ap-gallery__item--main { grid-row: 1 / 3; }
.ap-gallery__more {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.55);
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    gap: 8px;
    font-weight: 600;
}
@media (max-width: 768px) {
    .ap-gallery { grid-template-columns: 1fr; grid-template-rows: 240px auto; height: auto; }
    .ap-gallery__item:not(.ap-gallery__item--main):not(:nth-child(5)) { display: none; }
    .ap-gallery__item--main { grid-row: auto; }
}

.ap-detail { display: grid; grid-template-columns: 1fr 360px; gap: var(--ap-space-4); align-items: start; }
@media (max-width: 1024px) {
    .ap-detail { grid-template-columns: 1fr; }
}

.ap-price-block { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.ap-price {
    font-size: 36px;
    font-weight: 700;
    color: var(--ap-primary);
    line-height: 1;
}
.ap-price__rate { color: var(--ap-text-muted); font-size: 16px; }
.ap-emi { display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--ap-text-muted); margin-top: 8px; }

.ap-detail__title { font-size: 32px; margin: 12px 0 8px; }
.ap-detail__loc { color: var(--ap-text-muted); display: flex; align-items: center; gap: 6px; font-size: 15px; }
.ap-detail__loc svg { color: var(--ap-primary); }

.ap-specs-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--ap-space-2);
    margin: var(--ap-space-3) 0;
}
.ap-spec-box {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    padding: var(--ap-space-2);
    display: flex; flex-direction: column; gap: 4px;
}
.ap-spec-box svg { color: var(--ap-text-primary); }
.ap-spec-box small { color: var(--ap-text-muted); font-size: 13px; }
.ap-spec-box strong { font-size: 16px; font-weight: 600; }
@media (max-width: 600px) { .ap-specs-grid { grid-template-columns: 1fr 1fr; } }

.ap-panel {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    padding: var(--ap-space-3);
    margin-bottom: var(--ap-space-3);
}
.ap-panel h2, .ap-panel h3 { font-size: 22px; margin: 0 0 12px; }

.ap-contact-card {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    padding: var(--ap-space-3);
    position: sticky;
    top: 96px;
}
.ap-agent-head { display: flex; gap: 12px; align-items: center; margin-bottom: var(--ap-space-2); }
.ap-agent-head__avatar {
    width: 56px; height: 56px; border-radius: var(--ap-radius-full);
    background: var(--ap-text-primary);
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 18px;
    overflow: hidden;
}
.ap-agent-head__avatar img { width:100%; height:100%; object-fit: cover; }
.ap-agent-head h3 { font-size: 17px; margin: 0; }
.ap-agent-head small { color: var(--ap-text-muted); }
.ap-rating { color: var(--ap-amber); font-size: 13px; margin-top: 2px; display: flex; align-items: center; gap: 4px; }
.ap-rating span { color: var(--ap-text-muted); }

.ap-no-brokerage {
    background: rgba(255,184,0,.18);
    border-radius: var(--ap-radius);
    padding: 8px 12px;
    text-align: center;
    font-size: 13px;
    color: #6b4e00;
    margin-bottom: var(--ap-space-2);
    display: flex; align-items: center; justify-content: center; gap: 6px;
}

.ap-contact-form { display: flex; flex-direction: column; gap: 8px; }

/* -------------------- 14. About / Stats / Timeline -------------------- */
.ap-about-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    padding: var(--ap-space-3) 0;
    max-width: 720px;
    margin: -40px auto var(--ap-space-6);
    position: relative;
    z-index: 2;
}
.ap-about-stats .ap-stat__num { font-size: 26px; }
.ap-about-stats .ap-stat__label { text-transform: uppercase; letter-spacing: .05em; font-size: 12px; font-weight: 600; }

.ap-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ap-space-6);
    align-items: center;
}
@media (max-width: 900px) { .ap-two-col { grid-template-columns: 1fr; } }
.ap-two-col img { border-radius: var(--ap-radius); width: 100%; }
.ap-quote {
    border-left: 4px solid var(--ap-primary);
    background: rgba(216,35,42,.05);
    padding: 16px 20px;
    border-radius: 0 var(--ap-radius) var(--ap-radius) 0;
    font-style: italic;
    margin-top: var(--ap-space-2);
}
.ap-quote cite { display: block; font-style: normal; color: var(--ap-text-muted); font-size: 13px; margin-top: 6px; }

.ap-timeline {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--ap-space-3);
    margin-top: var(--ap-space-3);
}
@media (max-width: 768px) { .ap-timeline { grid-template-columns: 1fr; } }
.ap-timeline-item {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    padding: var(--ap-space-3);
    text-align: center;
}
.ap-timeline-item__year {
    width: 64px; height: 64px;
    background: var(--ap-primary);
    color: #fff;
    border-radius: var(--ap-radius-full);
    display: flex; align-items: center; justify-content: center;
    font-weight: 700;
    margin: 0 auto var(--ap-space-2);
}
.ap-timeline-item h4 { margin: 0 0 8px; }

.ap-values { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--ap-space-3); }
@media (max-width: 768px) { .ap-values { grid-template-columns: 1fr; } }
.ap-value-card {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    padding: var(--ap-space-3);
}
.ap-value-card__icon {
    width: 48px; height: 48px;
    background: rgba(216,35,42,.1);
    border-radius: var(--ap-radius-full);
    display: flex; align-items: center; justify-content: center;
    color: var(--ap-primary);
    margin-bottom: var(--ap-space-2);
}

.ap-cta-banner {
    background: var(--ap-text-primary);
    color: #fff;
    padding: var(--ap-space-4);
    border-radius: var(--ap-radius);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--ap-space-3);
    flex-wrap: wrap;
}
.ap-cta-banner h3 { color: #fff; margin: 0 0 4px; }
.ap-cta-banner p { margin: 0; color: rgba(255,255,255,.85); font-size: 14px; }

/* -------------------- 15. Contact page -------------------- */
.ap-contact-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: var(--ap-space-3);
    align-items: start;
}
@media (max-width: 900px) { .ap-contact-grid { grid-template-columns: 1fr; } }

.ap-contact-form-card {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    padding: var(--ap-space-4);
}
.ap-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ap-space-2); margin-bottom: var(--ap-space-2); }
@media (max-width: 600px) { .ap-form-row { grid-template-columns: 1fr; } }

.ap-info-card {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    padding: var(--ap-space-3);
    margin-bottom: var(--ap-space-3);
}
.ap-info-row { display: flex; gap: 12px; margin-bottom: var(--ap-space-2); align-items: flex-start; }
.ap-info-row__icon {
    width: 36px; height: 36px;
    border-radius: var(--ap-radius);
    background: rgba(216,35,42,.1);
    color: var(--ap-primary);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.ap-info-row strong { display: block; }
.ap-info-row small { color: var(--ap-text-muted); }

.ap-map-card {
    border-radius: var(--ap-radius);
    overflow: hidden;
    background: #5b9aa6;
    height: 220px;
    position: relative;
    display: flex; align-items: center; justify-content: center;
    color: #fff;
}
.ap-map-card__pin {
    width: 64px; height: 64px;
    color: var(--ap-primary);
}
.ap-map-card__btn {
    position: absolute;
    bottom: 12px;
    left: 12px; right: 12px;
    background: #fff;
    color: var(--ap-text-primary);
    text-align: center;
    padding: 10px;
    border-radius: var(--ap-radius);
    font-weight: 600;
    font-size: 14px;
}

.ap-offices {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--ap-space-3);
    margin-top: var(--ap-space-3);
}
@media (max-width: 768px) { .ap-offices { grid-template-columns: 1fr; } }
.ap-office-card {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    padding: var(--ap-space-3);
}
.ap-office-card h4 { display: flex; align-items: center; gap: 8px; }
.ap-office-card h4 svg { color: var(--ap-primary); }

/* -------------------- 16. Help center / FAQ -------------------- */
.ap-faq-search {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    padding: var(--ap-space-3);
    max-width: 720px;
    margin: 0 auto var(--ap-space-4);
}
.ap-faq {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    overflow: hidden;
}
.ap-faq-item { border-bottom: 1px solid var(--ap-border); }
.ap-faq-item:last-child { border-bottom: 0; }
.ap-faq-item summary {
    list-style: none;
    padding: 16px var(--ap-space-3);
    font-weight: 600;
    cursor: pointer;
    display: flex; justify-content: space-between; align-items: center;
    color: var(--ap-text-primary);
}
.ap-faq-item summary::-webkit-details-marker { display: none; }
.ap-faq-item summary::after {
    content: '+';
    color: var(--ap-primary);
    font-size: 22px;
    font-weight: 400;
}
.ap-faq-item[open] summary::after { content: '−'; }
.ap-faq-item__body { padding: 0 var(--ap-space-3) var(--ap-space-3); color: var(--ap-text-muted); }

/* -------------------- 17. Footer -------------------- */
.ap-footer {
    background: var(--ap-text-primary);
    color: rgba(255,255,255,.85);
    padding: 64px 0 0;
    margin-top: 80px;
}
.ap-footer__grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
    gap: 40px;
    padding-bottom: 40px;
}
@media (max-width: 900px) { .ap-footer__grid { grid-template-columns: 1fr 1fr; gap: 32px; } }
@media (max-width: 600px) { .ap-footer__grid { grid-template-columns: 1fr; gap: 32px; } }

.ap-footer h4,
.ap-footer__heading {
    font-family: var(--ap-font-head, 'Montserrat', sans-serif);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #fff;
    margin: 0 0 16px;
}
.ap-footer__brand { font-family: var(--ap-font-head); font-size: 20px; margin-bottom: 12px; font-weight: 700; color: #fff; }
.ap-footer__about {
    color: rgba(255,255,255,.7);
    font-size: 14px;
    line-height: 1.6;
    margin: 14px 0 20px;
    max-width: 300px;
}
.ap-footer ul,
.ap-footer__menu,
.ap-footer__contact { list-style: none !important; margin: 0; padding: 0; }
.ap-footer li,
.ap-footer__menu li { margin-bottom: 10px; }
.ap-footer a { color: rgba(255,255,255,.78); font-size: 14px; text-decoration: none; transition: color 0.2s; }
.ap-footer a:hover { color: var(--ap-primary); }
.ap-footer p { font-size: 14px; color: rgba(255,255,255,.78); }

.ap-footer__contact li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 14px;
    color: rgba(255,255,255,.78);
}
.ap-footer__contact svg { color: var(--ap-primary); flex-shrink: 0; margin-top: 2px; }
.ap-footer__contact-row { display: flex; gap: 10px; margin-bottom: 12px; align-items: flex-start; font-size: 14px; color: rgba(255,255,255,.78); }
.ap-footer__contact-row svg { color: var(--ap-primary); flex-shrink: 0; }

.ap-footer__social,
.ap-social {
    display: flex; gap: 10px;
    margin-top: 16px;
}
.ap-footer__social a,
.ap-social a {
    width: 38px; height: 38px;
    background: rgba(255,255,255,.08);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: #fff;
    transition: background 0.2s, color 0.2s;
}
.ap-footer__social a:hover,
.ap-social a:hover { background: var(--ap-primary); color: #fff; }

.ap-footer__bottom {
    border-top: 1px solid rgba(255,255,255,.1);
    padding: 20px 0;
    margin-top: 20px;
    background: rgba(0,0,0,.15);
}
.ap-footer__bottom > .ap-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    font-size: 13px;
    color: rgba(255,255,255,.6);
    flex-wrap: wrap;
}
.ap-footer__bottom a { color: rgba(255,255,255,.6); font-size: 13px; }
.ap-footer__bottom a:hover { color: #fff; }

/* -------------------- 18. WP Blog Post / Single content -------------------- */
.ap-post-content {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    padding: var(--ap-space-4);
}
.ap-post-content h1, .ap-post-content h2, .ap-post-content h3 { margin-top: 1.5em; }
.ap-post-content img { border-radius: var(--ap-radius); margin: 1em 0; }
.ap-post-content blockquote { border-left: 4px solid var(--ap-primary); padding: 12px 18px; margin: 1em 0; background: rgba(216,35,42,.05); border-radius: 0 var(--ap-radius) var(--ap-radius) 0; }
.ap-post-meta { color: var(--ap-text-muted); font-size: 14px; margin-bottom: var(--ap-space-2); }

/* WP alignment helpers */
.alignleft { float: left; margin: 8px 16px 8px 0; }
.alignright { float: right; margin: 8px 0 8px 16px; }
.aligncenter { display: block; margin: 16px auto; }
.alignwide, .alignfull { margin-left: 0; margin-right: 0; }

/* Comments */
.ap-comments { background: #fff; border-radius: var(--ap-radius); box-shadow: var(--ap-shadow-card); padding: var(--ap-space-4); margin-top: var(--ap-space-3); }
.ap-comments h2 { font-size: 22px; margin: 0 0 var(--ap-space-2); }
.ap-comments ol { list-style: none; padding: 0; }
.ap-comments .comment { padding: var(--ap-space-2) 0; border-bottom: 1px solid var(--ap-border); }

/* -------------------- 19. Misc utilities -------------------- */
.ap-text-muted { color: var(--ap-text-muted); }
.ap-text-primary-color { color: var(--ap-primary); }
.ap-mt-4 { margin-top: var(--ap-space-4); }
.ap-mb-4 { margin-bottom: var(--ap-space-4); }
.ap-flex { display: flex; }
.ap-gap-2 { gap: var(--ap-space-2); }
.ap-items-center { align-items: center; }
.ap-justify-between { justify-content: space-between; }

/* Loader */
.ap-spinner {
    width: 28px; height: 28px;
    border: 3px solid rgba(216,35,42,.2);
    border-top-color: var(--ap-primary);
    border-radius: 50%;
    animation: ap-spin .8s linear infinite;
    margin: 24px auto;
}
@keyframes ap-spin { to { transform: rotate(360deg); } }

/* -------------------- 20. Help Center page -------------------- */
.ap-help-hero {
    background: var(--ap-text-primary);
    color: #fff;
    padding: 96px 0;
    text-align: center;
}
.ap-help-hero__title {
    font-family: var(--ap-font-head);
    font-size: 44px;
    line-height: 1.15;
    margin: 0 0 16px;
    color: #fff;
}
.ap-help-hero__subtitle {
    font-size: 17px;
    color: rgba(255,255,255,.8);
    max-width: 620px;
    margin: 0 auto 36px;
}
.ap-help-search {
    position: relative;
    max-width: 640px;
    margin: 0 auto;
}
.ap-help-search__input {
    width: 100%;
    height: 56px;
    padding: 0 56px 0 48px;
    border-radius: var(--ap-radius);
    border: 0;
    box-shadow: 0 4px 20px rgba(26,26,78,.2);
    font-size: 15px;
    color: var(--ap-text-primary);
}
.ap-help-search__icon {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--ap-text-muted);
    display: inline-flex;
}
.ap-help-search__btn {
    position: absolute;
    right: 8px;
    top: 8px;
    bottom: 8px;
    width: 44px;
    background: var(--ap-primary);
    color: #fff;
    border: 0;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.ap-help-search__btn:hover { background: var(--ap-primary-hover); }

.ap-help-categories { padding: 80px 0; background: #fff; }
.ap-help-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--ap-gutter);
}
@media (max-width: 900px) { .ap-help-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .ap-help-grid { grid-template-columns: 1fr; } }

.ap-help-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 32px 24px;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    background: #fff;
    box-shadow: var(--ap-shadow-card);
    text-decoration: none;
    color: inherit;
    transition: box-shadow .2s, transform .2s;
}
.ap-help-card:hover {
    box-shadow: 0 8px 30px rgba(26,26,78,.12);
    transform: translateY(-2px);
}
.ap-help-card__icon {
    width: 64px; height: 64px;
    background: #f3f3f8;
    color: var(--ap-text-primary);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    transition: background .2s, color .2s;
}
.ap-help-card:hover .ap-help-card__icon {
    background: var(--ap-primary);
    color: #fff;
}
.ap-help-card__title {
    font-family: var(--ap-font-head);
    font-size: 20px;
    margin: 0 0 8px;
    color: var(--ap-text-primary);
}
.ap-help-card__desc {
    color: var(--ap-text-muted);
    font-size: 14.5px;
    margin: 0;
    line-height: 1.55;
}

.ap-help-faq { background: #f3f3f8; padding: 80px 0; }
.ap-help-faq__inner { max-width: 800px; margin: 0 auto; }
.ap-faq-list { display: flex; flex-direction: column; gap: 14px; margin-top: 32px; }

.ap-help-faq .ap-faq-item {
    background: #fff;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    overflow: hidden;
}
.ap-faq-item__summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 22px 24px;
    cursor: pointer;
    font-family: var(--ap-font-head);
    font-size: 17px;
    font-weight: 600;
    color: var(--ap-text-primary);
    list-style: none;
}
.ap-faq-item__summary::-webkit-details-marker { display: none; }
.ap-faq-item__chev {
    color: var(--ap-text-muted);
    display: inline-flex;
    transition: transform .25s ease;
}
.ap-faq-item[open] .ap-faq-item__chev { transform: rotate(180deg); }
.ap-faq-item__body {
    padding: 0 24px 22px;
    color: var(--ap-text-muted);
    font-size: 15px;
    line-height: 1.65;
    border-top: 1px solid var(--ap-border);
    padding-top: 18px;
}
.ap-faq-item__body p { margin: 0; }

.ap-help-cta { padding: 60px 0; background: #fff; }
.ap-help-cta__inner {
    background: var(--ap-text-primary);
    color: #fff;
    border-radius: var(--ap-radius);
    padding: 36px 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}
.ap-help-cta__title { color: #fff; margin: 0 0 6px; font-family: var(--ap-font-head); font-size: 24px; }
.ap-help-cta__sub { margin: 0; color: rgba(255,255,255,.78); font-size: 15px; }
.ap-help-cta__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.ap-help-cta .ap-btn--ghost { color: #fff; border-color: rgba(255,255,255,.4); }
.ap-help-cta .ap-btn--ghost:hover { background: rgba(255,255,255,.1); }

/* -------------------- 21. Blog: post grid & single -------------------- */
.ap-posts-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--ap-gutter);
    margin-bottom: 32px;
}
@media (max-width: 900px) { .ap-posts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .ap-posts-grid { grid-template-columns: 1fr; } }

.ap-post-card {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow .2s, transform .2s;
}
.ap-post-card:hover { box-shadow: 0 8px 30px rgba(26,26,78,.12); transform: translateY(-2px); }
.ap-post-card__thumb { display: block; aspect-ratio: 16/10; overflow: hidden; }
.ap-post-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ap-post-card__body { padding: 20px 22px 24px; flex: 1; display: flex; flex-direction: column; }
.ap-post-card__meta { display: flex; gap: 12px; font-size: 13px; color: var(--ap-text-muted); margin-bottom: 10px; align-items: center; }
.ap-post-card__cat {
    background: rgba(216,35,42,.08);
    color: var(--ap-primary);
    padding: 3px 10px;
    border-radius: 12px;
    font-weight: 600;
    font-size: 12px;
}
.ap-post-card__title { font-family: var(--ap-font-head); font-size: 19px; line-height: 1.35; margin: 0 0 10px; }
.ap-post-card__title a { color: var(--ap-text-primary); text-decoration: none; }
.ap-post-card__title a:hover { color: var(--ap-primary); }
.ap-post-card__excerpt { color: var(--ap-text-muted); font-size: 14.5px; line-height: 1.6; margin: 0 0 14px; flex: 1; }
.ap-post-card__more {
    color: var(--ap-primary);
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14.5px;
}
.ap-post-card__more:hover { gap: 10px; }

.ap-archive-header { margin-bottom: 28px; }
.ap-archive-header__title { font-family: var(--ap-font-head); font-size: 32px; color: var(--ap-text-primary); margin: 0 0 6px; }
.ap-archive-header__title span { color: var(--ap-primary); }
.ap-archive-header__desc { color: var(--ap-text-muted); margin: 0; }

/* Single post */
.ap-single { max-width: 820px; margin: 0 auto; }
.ap-single-post__header { margin-bottom: 22px; }
.ap-single-post__cat {
    display: inline-block;
    background: rgba(216,35,42,.08);
    color: var(--ap-primary);
    padding: 4px 12px;
    border-radius: 14px;
    font-weight: 600;
    font-size: 13px;
    text-decoration: none;
    margin-bottom: 16px;
}
.ap-single-post__title {
    font-family: var(--ap-font-head);
    font-size: 36px;
    line-height: 1.2;
    color: var(--ap-text-primary);
    margin: 0 0 14px;
}
.ap-single-post__meta { display: flex; gap: 10px; align-items: center; color: var(--ap-text-muted); font-size: 14px; flex-wrap: wrap; }
.ap-single-post__thumb { margin: 24px 0; border-radius: var(--ap-radius); overflow: hidden; }
.ap-single-post__thumb img { width: 100%; height: auto; display: block; }
.ap-single-post__content { font-size: 16.5px; line-height: 1.75; color: #2a2a2a; }
.ap-single-post__tags { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--ap-border); display: flex; gap: 8px; flex-wrap: wrap; align-items: center; color: var(--ap-text-muted); font-size: 14px; }
.ap-single-post__tags a { background: #f3f3f8; padding: 4px 12px; border-radius: 14px; color: var(--ap-text-primary); text-decoration: none; font-size: 13px; }
.ap-single-post__tags a:hover { background: var(--ap-primary); color: #fff; }

.ap-post-nav {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid var(--ap-border);
}
@media (max-width: 640px) { .ap-post-nav { grid-template-columns: 1fr; } }
.ap-post-nav__link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
    background: #fff;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    text-decoration: none;
    color: var(--ap-text-primary);
    transition: border-color .2s, background .2s;
}
.ap-post-nav__link:hover { border-color: var(--ap-primary); background: #fff5f5; }
.ap-post-nav__link--next { justify-content: flex-end; text-align: right; }
.ap-post-nav__link small { display: block; color: var(--ap-text-muted); font-size: 12px; margin-bottom: 2px; }
.ap-post-nav__link strong { font-weight: 600; font-size: 14.5px; }

/* Generic page */
.ap-page-layout { max-width: 900px; margin: 0 auto; }
.ap-page__header { margin-bottom: 24px; text-align: center; }
.ap-page__title { font-family: var(--ap-font-head); font-size: 36px; color: var(--ap-text-primary); margin: 0; }
.ap-page__thumb { margin-bottom: 28px; border-radius: var(--ap-radius); overflow: hidden; }
.ap-page__thumb img { width: 100%; height: auto; display: block; }
.ap-page__content { font-size: 16.5px; line-height: 1.7; color: #2a2a2a; }

/* Prose helpers for editor content */
.ap-prose h2 { font-family: var(--ap-font-head); font-size: 28px; margin: 32px 0 14px; color: var(--ap-text-primary); }
.ap-prose h3 { font-family: var(--ap-font-head); font-size: 22px; margin: 26px 0 12px; color: var(--ap-text-primary); }
.ap-prose p  { margin: 0 0 16px; }
.ap-prose a  { color: var(--ap-primary); }
.ap-prose ul, .ap-prose ol { margin: 0 0 16px; padding-left: 24px; }
.ap-prose li { margin-bottom: 6px; }
.ap-prose blockquote {
    border-left: 4px solid var(--ap-primary);
    padding: 4px 20px;
    margin: 24px 0;
    color: #444;
    font-style: italic;
    background: #fafafa;
}
.ap-prose img { max-width: 100%; height: auto; border-radius: var(--ap-radius); }
.ap-prose code { background: #f3f3f8; padding: 2px 6px; border-radius: 4px; font-size: 0.92em; }
.ap-prose pre { background: #1a1a4e; color: #fff; padding: 16px; border-radius: var(--ap-radius); overflow-x: auto; }

/* -------------------- 22. 404 page -------------------- */
.ap-404 { min-height: 60vh; display: flex; align-items: center; justify-content: center; padding: 60px 0; }
.ap-404__inner { text-align: center; max-width: 560px; }
.ap-404__code {
    font-family: var(--ap-font-head);
    font-size: 120px;
    font-weight: 700;
    color: var(--ap-primary);
    line-height: 1;
    margin-bottom: 8px;
}
.ap-404__title { font-family: var(--ap-font-head); font-size: 32px; color: var(--ap-text-primary); margin: 0 0 12px; }
.ap-404__text { color: var(--ap-text-muted); margin: 0 0 28px; font-size: 16px; line-height: 1.6; }
.ap-404__search { max-width: 420px; margin: 0 auto 28px; }
.ap-404__search input[type="search"] {
    width: 100%;
    height: 48px;
    padding: 0 16px;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    font-size: 15px;
}
.ap-404__actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* -------------------- 23. Empty state -------------------- */
.ap-empty {
    text-align: center;
    padding: 60px 20px;
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
}
.ap-empty h2 { font-family: var(--ap-font-head); font-size: 24px; margin: 0 0 10px; }
.ap-empty p { color: var(--ap-text-muted); margin: 0 0 18px; }

/* -------------------- 24. Comments -------------------- */
.ap-comments__title { font-family: var(--ap-font-head); font-size: 22px; margin: 0 0 18px; color: var(--ap-text-primary); }
.ap-comments__list { list-style: none; padding: 0; margin: 0 0 24px; }
.ap-comments .comment-body { padding: 18px 0; border-bottom: 1px solid var(--ap-border); display: flex; gap: 14px; }
.ap-comments .comment-author { display: flex; gap: 10px; align-items: center; margin-bottom: 8px; }
.ap-comments .comment-author img { border-radius: 50%; }
.ap-comments .fn { font-weight: 600; color: var(--ap-text-primary); }
.ap-comments .comment-metadata { font-size: 13px; color: var(--ap-text-muted); }
.ap-comments .comment-reply-link {
    color: var(--ap-primary);
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
}
.ap-comments .children { list-style: none; padding-left: 24px; margin-top: 12px; }

.comment-form { background: #fff; border-radius: var(--ap-radius); padding: 24px; box-shadow: var(--ap-shadow-card); }
.comment-form-comment, .comment-form-author, .comment-form-email, .comment-form-url { margin-bottom: 14px; }
.comment-form label { display: block; font-weight: 600; margin-bottom: 6px; color: var(--ap-text-primary); font-size: 14px; }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--ap-border);
    border-radius: 6px;
    font-size: 15px;
    font-family: inherit;
}
.comment-form textarea { resize: vertical; min-height: 120px; }
.comment-form input:focus,
.comment-form textarea:focus { border-color: var(--ap-primary); outline: none; }

/* -------------------- 25. Header scrolled state -------------------- */
.ap-header.is-scrolled { box-shadow: 0 2px 14px rgba(26,26,78,.08); }

/* Mobile nav locked body */
body.ap-nav-locked { overflow: hidden; }

/* Form error state */
.has-error { border-color: var(--ap-primary) !important; box-shadow: 0 0 0 2px rgba(216,35,42,.15) !important; }

/* -------------------- Preview-only helpers -------------------- */
/* Image placeholders since previews don't have WP media library */
.ap-image-placeholder {
    width: 100%;
    height: 100%;
    min-height: 200px;
    background: linear-gradient(135deg, #f3f3f8 0%, #e0e0e8 100%);
    border-radius: var(--ap-radius);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ap-text-primary);
    opacity: .6;
}
.ap-image-placeholder--avatar {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: var(--ap-primary);
    color: #fff;
    font-family: var(--ap-font-head);
    font-size: 36px;
    font-weight: 700;
    opacity: 1;
    min-height: 0;
}
.ap-image-placeholder--wide { aspect-ratio: 4/3; min-height: 280px; }
.ap-image-placeholder--gallery { aspect-ratio: 16/10; min-height: 400px; }

/* About page hero */
.ap-about-hero {
    background: linear-gradient(135deg, #f3f3f8 0%, #fff 100%);
    padding: 80px 0 60px;
}
.ap-about-hero__inner {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 60px;
    align-items: center;
}
@media (max-width: 880px) { .ap-about-hero__inner { grid-template-columns: 1fr; } }
.ap-about-hero__title {
    font-family: var(--ap-font-head);
    font-size: 44px;
    line-height: 1.15;
    color: var(--ap-text-primary);
    margin: 12px 0 20px;
}
.ap-about-hero__subtitle {
    font-size: 17px;
    color: var(--ap-text-muted);
    line-height: 1.6;
    margin: 0 0 28px;
    max-width: 520px;
}
.ap-about-hero__image .ap-image-placeholder { aspect-ratio: 4/3; min-height: 360px; }

.ap-eyebrow {
    display: inline-block;
    color: var(--ap-primary);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 8px;
}
.ap-eyebrow--light { color: rgba(255,255,255,.85); }

/* About stats card (overlapping) */
.ap-about-stats {
    margin-top: -50px;
    position: relative;
    z-index: 2;
    margin-bottom: 40px;
}
.ap-stats-card {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: 0 12px 40px rgba(26,26,78,.12);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    padding: 36px 0;
}
@media (max-width: 600px) { .ap-stats-card { grid-template-columns: 1fr; gap: 20px; } }
.ap-stat-item {
    text-align: center;
    padding: 0 20px;
    border-right: 1px solid var(--ap-border);
}
.ap-stat-item:last-child { border-right: 0; }
@media (max-width: 600px) { .ap-stat-item { border-right: 0; border-bottom: 1px solid var(--ap-border); padding-bottom: 20px; } .ap-stat-item:last-child { border-bottom: 0; padding-bottom: 0; } }
.ap-stat-item strong {
    display: block;
    font-family: var(--ap-font-head);
    font-size: 40px;
    color: var(--ap-primary);
    line-height: 1;
    margin-bottom: 6px;
}
.ap-stat-item span { color: var(--ap-text-muted); font-size: 14px; }

.ap-section { padding: 60px 0; }
.ap-section--alt { background: #f3f3f8; }
.ap-section-title { font-family: var(--ap-font-head); font-size: 30px; color: var(--ap-text-primary); margin: 0 0 16px; }
.ap-section-title--center { text-align: center; margin-bottom: 40px; }
.ap-section-text { color: var(--ap-text-muted); font-size: 16px; line-height: 1.7; margin: 0 0 14px; }

.ap-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
@media (max-width: 880px) { .ap-two-col { grid-template-columns: 1fr; gap: 32px; } }

/* Founder */
.ap-founder { display: grid; grid-template-columns: 280px 1fr; gap: 48px; align-items: center; }
@media (max-width: 700px) { .ap-founder { grid-template-columns: 1fr; text-align: center; } .ap-founder__image { display: flex; justify-content: center; } }
.ap-quote {
    border-left: 4px solid var(--ap-primary);
    padding: 8px 20px;
    margin: 16px 0;
    font-style: italic;
    color: #333;
    font-size: 17px;
    line-height: 1.65;
}
.ap-founder__signature { color: var(--ap-text-muted); font-weight: 600; margin-top: 12px; }

/* Timeline */
.ap-timeline {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--ap-gutter);
    margin-top: 40px;
}
@media (max-width: 800px) { .ap-timeline { grid-template-columns: 1fr; } }
.ap-timeline-item {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    padding: 28px 24px;
    text-align: center;
}
.ap-timeline-item__dot {
    width: 70px; height: 70px;
    background: var(--ap-primary);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 18px;
    font-family: var(--ap-font-head);
    font-weight: 700;
    font-size: 16px;
}
.ap-timeline-item h3 { font-family: var(--ap-font-head); font-size: 19px; margin: 0 0 8px; color: var(--ap-text-primary); }
.ap-timeline-item p { color: var(--ap-text-muted); font-size: 14.5px; line-height: 1.6; margin: 0; }

/* Values */
.ap-values-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--ap-gutter);
}
@media (max-width: 800px) { .ap-values-grid { grid-template-columns: 1fr; } }
.ap-value-card {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    padding: 32px 24px;
    text-align: center;
}
.ap-value-card__icon {
    display: inline-flex;
    width: 70px; height: 70px;
    align-items: center;
    justify-content: center;
    background: rgba(216,35,42,.08);
    color: var(--ap-primary);
    border-radius: 50%;
    margin-bottom: 18px;
}
.ap-value-card h3 { font-family: var(--ap-font-head); font-size: 22px; color: var(--ap-text-primary); margin: 0 0 10px; }
.ap-value-card p { color: var(--ap-text-muted); font-size: 14.5px; line-height: 1.6; margin: 0; }

/* CTA banner */
.ap-cta-banner { background: var(--ap-text-primary); padding: 50px 0; }
.ap-cta-banner__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.ap-cta-banner h2 { color: #fff; font-family: var(--ap-font-head); margin: 0 0 8px; font-size: 28px; }
.ap-cta-banner p { color: rgba(255,255,255,.78); margin: 0; }

/* Contact hero */
.ap-contact-hero {
    background: linear-gradient(135deg, #1A1A4E 0%, #2d2d6e 100%);
    color: #fff;
    padding: 80px 0;
    text-align: center;
}
.ap-contact-hero__title {
    font-family: var(--ap-font-head);
    font-size: 44px;
    color: #fff;
    margin: 8px 0 16px;
    line-height: 1.15;
}
.ap-contact-hero__subtitle {
    color: rgba(255,255,255,.85);
    font-size: 17px;
    max-width: 640px;
    margin: 0 auto;
}

.ap-contact-section { padding: 60px 0; }
.ap-contact-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 32px;
    align-items: start;
}
@media (max-width: 900px) { .ap-contact-grid { grid-template-columns: 1fr; } }

.ap-contact-form-card,
.ap-info-card,
.ap-map-card {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    padding: 32px;
}
.ap-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 600px) { .ap-form-row { grid-template-columns: 1fr; } }
.ap-field { margin-bottom: 16px; }
.ap-field label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 6px; color: var(--ap-text-primary); }
.ap-field input,
.ap-field select,
.ap-field textarea {
    width: 100%;
    padding: 11px 14px;
    border: 1px solid var(--ap-border);
    border-radius: 6px;
    font-size: 15px;
    font-family: inherit;
    transition: border-color .2s, box-shadow .2s;
    background: #fff;
}
.ap-field input:focus,
.ap-field select:focus,
.ap-field textarea:focus {
    border-color: var(--ap-primary);
    outline: none;
    box-shadow: 0 0 0 3px rgba(216,35,42,.1);
}
.ap-field textarea { resize: vertical; }

.ap-info-card { margin-bottom: 24px; }
.ap-info-card h3 { font-family: var(--ap-font-head); font-size: 20px; margin: 0 0 20px; color: var(--ap-text-primary); }
.ap-info-row { display: flex; gap: 14px; margin-bottom: 18px; align-items: flex-start; }
.ap-info-row__icon {
    width: 40px; height: 40px;
    background: rgba(216,35,42,.08);
    color: var(--ap-primary);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.ap-info-row strong { display: block; font-size: 14px; color: var(--ap-text-primary); margin-bottom: 2px; }
.ap-info-row p { margin: 0; color: var(--ap-text-muted); font-size: 14px; line-height: 1.5; }
.ap-info-row a { color: var(--ap-text-muted); text-decoration: none; }
.ap-info-row a:hover { color: var(--ap-primary); }
.ap-info-row small { font-size: 12px; color: #999; }

.ap-map-placeholder {
    background: linear-gradient(135deg, #e8e8f0 0%, #d4d4e0 100%);
    height: 200px;
    border-radius: 6px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--ap-text-primary);
    margin-bottom: 16px;
    position: relative;
}
.ap-map-pin { color: var(--ap-primary); margin-bottom: 6px; }

/* Offices */
.ap-offices-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--ap-gutter);
    margin-bottom: 40px;
}
@media (max-width: 800px) { .ap-offices-grid { grid-template-columns: 1fr; } }
.ap-office-card {
    background: #fff;
    padding: 24px;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
}
.ap-office-card h3 { font-family: var(--ap-font-head); font-size: 20px; color: var(--ap-primary); margin: 0 0 10px; }
.ap-office-card p { color: var(--ap-text-muted); margin: 0 0 12px; font-size: 14.5px; line-height: 1.55; }
.ap-office-card a { color: var(--ap-text-primary); font-weight: 600; text-decoration: none; }

.ap-social-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: var(--ap-text-muted);
    font-size: 14px;
}
.ap-social-row a {
    width: 40px; height: 40px;
    background: #fff;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--ap-text-primary);
    box-shadow: var(--ap-shadow-card);
    transition: transform .2s, color .2s;
}
.ap-social-row a:hover { color: var(--ap-primary); transform: translateY(-2px); }

/* Single Property page */
.ap-breadcrumbs { padding: 20px 0; display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--ap-text-muted); flex-wrap: wrap; }
.ap-breadcrumbs a { color: var(--ap-text-muted); text-decoration: none; }
.ap-breadcrumbs a:hover { color: var(--ap-primary); }
.ap-breadcrumbs__sep { display: inline-flex; color: #ccc; }

.ap-prop-gallery { padding-bottom: 24px; }
.ap-gallery {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 16px;
}
@media (max-width: 800px) { .ap-gallery { grid-template-columns: 1fr; } }
.ap-gallery__main .ap-image-placeholder { aspect-ratio: 16/10; min-height: 0; }
.ap-gallery__thumbs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.ap-gallery__thumb { position: relative; }
.ap-gallery__thumb .ap-image-placeholder { aspect-ratio: 16/10; min-height: 0; }
.ap-gallery__thumb--more .ap-image-placeholder::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(26,26,78,.65);
    border-radius: var(--ap-radius);
}
.ap-gallery__more-label {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 700;
    font-size: 15px;
    z-index: 2;
}

.ap-prop-layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 40px;
    align-items: start;
}
@media (max-width: 900px) { .ap-prop-layout { grid-template-columns: 1fr; } }

.ap-prop-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; flex-wrap: wrap; gap: 12px; }
.ap-badges { display: flex; gap: 8px; flex-wrap: wrap; }
.ap-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 11px;
    border-radius: 14px;
    font-size: 12px;
    font-weight: 700;
}
.ap-badge--verified { background: rgba(0,166,81,.1); color: #00A651; }
.ap-badge--offer    { background: rgba(255,184,0,.15); color: #c98b00; }

.ap-prop-actions { display: flex; gap: 8px; }
.ap-icon-btn {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid var(--ap-border);
    color: var(--ap-text-primary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: color .2s, border-color .2s;
}
.ap-icon-btn:hover { color: var(--ap-primary); border-color: var(--ap-primary); }

.ap-price-block { margin-bottom: 14px; }
.ap-price {
    font-family: var(--ap-font-head);
    font-size: 38px;
    font-weight: 700;
    color: var(--ap-primary);
    line-height: 1;
}
.ap-price span { font-size: 22px; }
.ap-price-meta { display: flex; gap: 8px; color: var(--ap-text-muted); font-size: 14px; margin-top: 8px; flex-wrap: wrap; }

.ap-prop-title { font-family: var(--ap-font-head); font-size: 30px; color: var(--ap-text-primary); margin: 6px 0 8px; line-height: 1.2; }
.ap-prop-location { color: var(--ap-text-muted); margin: 0 0 24px; display: inline-flex; align-items: center; gap: 6px; }

.ap-specs-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 32px;
}
@media (max-width: 600px) { .ap-specs-grid { grid-template-columns: repeat(2, 1fr); } }
.ap-spec-box {
    background: #fff;
    border: 1px solid var(--ap-border);
    border-radius: var(--ap-radius);
    padding: 18px 14px;
    text-align: center;
}
.ap-spec-box__icon { display: inline-flex; color: var(--ap-primary); margin-bottom: 10px; }
.ap-spec-box strong { display: block; font-family: var(--ap-font-head); color: var(--ap-text-primary); font-size: 17px; margin-bottom: 2px; }
.ap-spec-box span { color: var(--ap-text-muted); font-size: 13px; }

.ap-about-property {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: var(--ap-shadow-card);
    padding: 28px;
}
.ap-about-property h2 { font-family: var(--ap-font-head); font-size: 22px; color: var(--ap-text-primary); margin: 0 0 16px; }
.ap-about-property p { color: #444; font-size: 15.5px; line-height: 1.7; margin: 0 0 14px; }
.ap-about-property ul { margin: 14px 0 0; padding-left: 22px; color: #444; }
.ap-about-property li { margin-bottom: 8px; font-size: 15px; }

/* Sidebar agent card */
.ap-prop-sidebar { position: sticky; top: 90px; }
.ap-agent-card {
    background: #fff;
    border-radius: var(--ap-radius);
    box-shadow: 0 8px 32px rgba(26,26,78,.1);
    padding: 24px;
}
.ap-agent-profile { display: flex; gap: 14px; align-items: center; margin-bottom: 18px; }
.ap-agent-avatar {
    width: 56px; height: 56px;
    background: var(--ap-text-primary);
    color: #fff;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--ap-font-head);
    font-weight: 700;
    font-size: 18px;
    flex-shrink: 0;
}
.ap-agent-profile strong { display: block; color: var(--ap-text-primary); font-size: 16px; }
.ap-agent-rating { display: flex; align-items: center; gap: 4px; color: #FFB800; font-size: 13px; margin-top: 4px; }
.ap-agent-rating span { color: var(--ap-text-muted); margin-left: 4px; }

.ap-no-broker-banner {
    background: rgba(255,184,0,.12);
    border-left: 3px solid #FFB800;
    padding: 12px 14px;
    border-radius: 6px;
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 18px;
    color: #8a6500;
}
.ap-no-broker-banner svg { color: #c98b00; flex-shrink: 0; }
.ap-no-broker-banner strong { display: block; font-size: 14px; }
.ap-no-broker-banner span { font-size: 12.5px; }

.ap-inquiry-form .ap-field { margin-bottom: 10px; }
.ap-inquiry-form input,
.ap-inquiry-form textarea {
    padding: 10px 12px;
    font-size: 14px;
}
.ap-agent-actions { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }

/* Footer brand-about text on dark */
.ap-footer__about { color: rgba(255,255,255,.7); font-size: 14px; line-height: 1.6; margin: 14px 0 18px; }

/* Alert messages (contact form) */
.ap-alert {
    padding: 14px 18px;
    border-radius: 6px;
    margin: 16px 0;
    font-size: 14.5px;
}
.ap-alert--success { background: rgba(0,166,81,.1); color: #00733a; border-left: 3px solid #00A651; }
.ap-alert--error   { background: rgba(216,35,42,.08); color: #a51a1f; border-left: 3px solid var(--ap-primary); }

/* -------------------- 26. Post Property Page Styles -------------------- */
.ap-post-hero {
    background: linear-gradient(135deg, #1A1A4E 0%, #2A2A72 100%);
    padding: 3rem 0;
    color: #fff;
    border-bottom: 4px solid var(--ap-primary, #D8232A);
}
.ap-post-hero__title {
    font-size: 2.25rem;
    font-weight: 800;
    color: #fff;
    margin: 0.5rem 0;
}
.ap-post-hero__sub {
    font-size: 1.1rem;
    color: rgba(255,255,255,0.85);
    margin: 0;
}

.ap-post-layout {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 2rem;
    align-items: start;
}
@media (max-width: 991px) {
    .ap-post-layout {
        grid-template-columns: 1fr;
    }
}

.ap-post-main {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.ap-post-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
    border: 1px solid #eaeaea;
    overflow: hidden;
    margin-bottom: 1.5rem;
}
.ap-post-card__head {
    background: #fbfbfb;
    border-bottom: 1px solid #f0f0f0;
    padding: 1.25rem 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.ap-post-card__step {
    background: var(--ap-primary, #D8232A);
    color: #fff;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    font-weight: 700;
}
.ap-post-card__head h2 {
    font-size: 1.2rem;
    font-weight: 700;
    margin: 0;
    color: #1A1A4E;
}
.ap-post-required {
    color: var(--ap-primary, #D8232A);
    margin-left: 3px;
}
.ap-post-card__body {
    padding: 1.5rem;
}

/* Radio Card CSS */
.ap-post-radio-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}
@media (max-width: 600px) {
    .ap-post-radio-grid {
        grid-template-columns: 1fr;
    }
}
.ap-post-radio-card {
    cursor: pointer;
    position: relative;
    display: block;
}
.ap-post-radio-card input {
    position: absolute;
    opacity: 0;
}
.ap-post-radio-card__box {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1.25rem;
    border-radius: 8px;
    border: 2px solid #eaeaea;
    background: #fff;
    transition: all 0.2s ease;
    height: 100%;
}
.ap-post-radio-card input:checked + .ap-post-radio-card__box {
    border-color: var(--ap-primary, #D8232A);
    background: rgba(216, 35, 42, 0.03);
    box-shadow: 0 4px 12px rgba(216, 35, 42, 0.08);
}
.ap-post-radio-card__icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #f5f5f5;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #555;
    margin-bottom: 0.75rem;
    transition: all 0.2s ease;
}
.ap-post-radio-card input:checked + .ap-post-radio-card__box .ap-post-radio-card__icon {
    background: var(--ap-primary, #D8232A);
    color: #fff;
}
.ap-post-radio-card__title {
    font-weight: 700;
    font-size: 1rem;
    color: #1A1A4E;
    margin-bottom: 0.25rem;
}
.ap-post-radio-card__desc {
    font-size: 0.8rem;
    color: #777;
    line-height: 1.4;
}

/* Property Type Grid */
.ap-post-type-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
}
@media (max-width: 600px) {
    .ap-post-type-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
.ap-post-type-card {
    cursor: pointer;
    position: relative;
    display: block;
}
.ap-post-type-card input {
    position: absolute;
    opacity: 0;
}
.ap-post-type-card__box {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    border-radius: 6px;
    border: 1px solid #eaeaea;
    background: #fff;
    transition: all 0.2s ease;
}
.ap-post-type-card input:checked + .ap-post-type-card__box {
    border-color: var(--ap-primary, #D8232A);
    background: rgba(216, 35, 42, 0.04);
}
.ap-post-type-card__icon {
    display: flex;
    align-items: center;
    color: #666;
}
.ap-post-type-card input:checked + .ap-post-type-card__box .ap-post-type-card__icon {
    color: var(--ap-primary, #D8232A);
}
.ap-post-type-card__title {
    font-weight: 600;
    font-size: 0.9rem;
    color: #444;
}
.ap-post-type-card input:checked + .ap-post-type-card__box .ap-post-type-card__title {
    color: #1A1A4E;
}

/* Grid layout columns */
.ap-post-row-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-bottom: 1rem;
}
.ap-post-row-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    margin-bottom: 1rem;
}
.ap-post-row-2col {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
}
@media (max-width: 768px) {
    .ap-post-row-3, .ap-post-row-2, .ap-post-row-2col {
        grid-template-columns: 1fr;
    }
}

/* Image Upload Area */
.ap-post-upload {
    position: relative;
    border: 2px dashed #ccc;
    border-radius: 8px;
    padding: 2rem;
    text-align: center;
    background: #fafafa;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease;
}
.ap-post-upload:hover, .ap-post-upload.dragover {
    border-color: var(--ap-primary, #D8232A);
    background: rgba(216, 35, 42, 0.01);
}
.ap-post-upload__input {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}
.ap-post-upload__icon {
    color: #888;
    margin-bottom: 0.75rem;
}
.ap-post-upload h3 {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1A1A4E;
    margin: 0 0 0.25rem 0;
}
.ap-post-upload p {
    font-size: 0.85rem;
    color: #666;
    margin: 0;
    max-width: 460px;
    margin: 0 auto;
}
.ap-post-preview-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0.75rem;
    margin-top: 1rem;
}
@media (max-width: 600px) {
    .ap-post-preview-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}
.ap-post-preview-item {
    position: relative;
    aspect-ratio: 4/3;
    border-radius: 6px;
    overflow: hidden;
    border: 1px solid #ddd;
}
.ap-post-preview-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ap-post-preview-item__remove {
    position: absolute;
    top: 4px;
    right: 4px;
    background: rgba(0,0,0,0.6);
    color: #fff;
    border: none;
    border-radius: 50%;
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    cursor: pointer;
    font-weight: bold;
}

/* Form Submit Button */
.ap-post-submit-btn {
    padding: 1rem 2rem;
    font-size: 1.1rem;
    font-weight: 700;
    box-shadow: 0 4px 15px rgba(216, 35, 42, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

/* Alerts */
.ap-post-alert {
    padding: 1.25rem 1.5rem;
    border-radius: 8px;
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}
.ap-post-alert--success {
    background: #e6f6ec;
    border-left: 4px solid #2e7d32;
    color: #1b5e20;
}
.ap-post-alert--success .ap-post-alert__icon {
    color: #2e7d32;
}
.ap-post-alert--error {
    background: #fdf2f2;
    border-left: 4px solid #d32f2f;
    color: #c62828;
}
.ap-post-alert--error .ap-post-alert__icon {
    color: #d32f2f;
}
.ap-post-alert__icon svg {
    fill: currentColor;
}
.ap-post-alert__content h3 {
    margin: 0 0 0.25rem 0;
    font-size: 1.1rem;
    font-weight: 700;
}
.ap-post-alert__content p {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.5;
}

/* Sidebar Panels */
.ap-post-sidebar {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.ap-post-panel {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
    border: 1px solid #eaeaea;
    padding: 1.5rem;
}
.ap-post-panel h3 {
    font-size: 1.15rem;
    font-weight: 700;
    color: #1A1A4E;
    margin: 0 0 1.25rem 0;
    border-bottom: 2px solid #f0f0f0;
    padding-bottom: 0.5rem;
}
.ap-post-benefit-list {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.ap-post-benefit {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
}
.ap-post-benefit__icon {
    background: rgba(216, 35, 42, 0.08);
    color: var(--ap-primary, #D8232A);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.ap-post-benefit__icon svg {
    fill: currentColor;
}
.ap-post-benefit h4 {
    font-size: 0.95rem;
    font-weight: 700;
    margin: 0 0 0.2rem 0;
    color: #1A1A4E;
}
.ap-post-benefit p {
    font-size: 0.8rem;
    color: #666;
    margin: 0;
    line-height: 1.4;
}

.ap-post-panel--info {
    background: #fbfbff;
    border-color: #e0e0ff;
}
.ap-post-panel--info h3 {
    color: #2A2A72;
    border-color: #e8e8ff;
}
.ap-post-panel--info ul {
    margin: 0;
    padding-left: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.ap-post-panel--info li {
    font-size: 0.85rem;
    color: #444;
    line-height: 1.4;
}

/* --- High-End Fields & Buttons (Globally Enforced) --- */
.ap-field-new {
    position: relative;
    margin-bottom: 1.25rem;
    text-align: left;
}
.ap-field-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #999;
    display: flex;
    align-items: center;
    pointer-events: none;
    transition: color 0.2s ease;
    z-index: 2;
}
.ap-field-new input {
    width: 100%;
    padding: 14px 14px 14px 40px !important;
    border: 1px solid #dcdce6;
    border-radius: 8px;
    font-size: 14.5px;
    background: #fbfbfe;
    transition: all 0.2s ease;
    font-family: inherit;
    color: #1a1a4e;
    box-sizing: border-box;
    display: block;
    line-height: 1;
}
.ap-field-new input::placeholder {
    color: #999;
}
.ap-field-new input:focus {
    border-color: #D8232A;
    background: #fff;
    outline: none;
    box-shadow: 0 0 0 3px rgba(216, 35, 42, 0.08);
}
.ap-field-new input:focus + .ap-field-icon {
    color: #D8232A;
}

.ap-btn-submit-new {
    background: linear-gradient(135deg, #D8232A 0%, #bd1b21 100%);
    color: #fff;
    font-weight: 700;
    border: none;
    padding: 14px 20px;
    border-radius: 8px;
    font-size: 15.5px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 6px 20px rgba(216, 35, 42, 0.25);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    position: relative;
    overflow: hidden;
    box-sizing: border-box;
}
.ap-btn-submit-new::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
    transition: all 0.6s ease;
}
.ap-btn-submit-new:hover::before {
    left: 100%;
}
.ap-btn-submit-new:hover {
    background: linear-gradient(135deg, #bd1b21 0%, #a31318 100%);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(216, 35, 42, 0.35);
    color: #fff;
}
.ap-btn-submit-new svg {
    transition: transform 0.2s ease;
    fill: none;
    stroke: currentColor;
    stroke-width: 2px;
}
.ap-btn-submit-new:hover svg {
    transform: translateX(3px);
}

