:root {
    --pm-cream: #f7f0e6;
    --pm-paper: #fffdf9;
    --pm-gold: #b58a32;
    --pm-gold-dark: #8f6a20;
    --pm-green: #26443b;
    --pm-green-soft: #345d51;
    --pm-brown: #6f4d37;
    --pm-ink: #211d19;
    --pm-muted: #746c64;
    --pm-border: rgba(111, 77, 55, .15);
    --pm-shadow: 0 18px 50px rgba(64, 46, 31, .09);
}

html { scroll-behavior: smooth; }
body {
    min-height: 100vh;
    color: var(--pm-ink);
    background: #fbfaf7;
    font-family: Inter, Arial, sans-serif;
    padding-bottom: 0;
}
h1, h2, h3, h4, h5, .pm-serif { font-family: Prata, Georgia, serif; }
a { color: inherit; }

.site-header {
    position: sticky;
    top: 0;
    z-index: 1040;
    background: rgba(255, 253, 249, .92);
    border-bottom: 1px solid var(--pm-border);
    backdrop-filter: blur(16px);
}
.navbar-brand { display: flex; align-items: center; gap: .75rem; font-weight: 700; color: var(--pm-green); }
.brand-mark {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    background: linear-gradient(145deg, var(--pm-gold), #d1ad58);
    box-shadow: 0 8px 22px rgba(181, 138, 50, .28);
}
.nav-link { color: #4e4943; font-weight: 500; }
.nav-link:hover, .nav-link.active { color: var(--pm-green); }

.btn-pm-gold { background: var(--pm-gold); border-color: var(--pm-gold); color: #fff; }
.btn-pm-gold:hover, .btn-pm-gold:focus { background: var(--pm-gold-dark); border-color: var(--pm-gold-dark); color: #fff; }
.btn-pm-green { background: var(--pm-green); border-color: var(--pm-green); color: #fff; }
.btn-pm-green:hover, .btn-pm-green:focus { background: #18322a; border-color: #18322a; color: #fff; }
.btn-outline-pm { color: var(--pm-green); border-color: rgba(38,68,59,.45); }
.btn-outline-pm:hover { color: #fff; background: var(--pm-green); border-color: var(--pm-green); }

.hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 12% 20%, rgba(181,138,50,.17), transparent 27%),
        radial-gradient(circle at 82% 24%, rgba(38,68,59,.11), transparent 28%),
        linear-gradient(180deg, #fffdf9, #f7f0e6 115%);
    border-bottom: 1px solid var(--pm-border);
}
.hero::after {
    content: '';
    position: absolute;
    width: 460px;
    height: 460px;
    border: 1px solid rgba(181,138,50,.16);
    border-radius: 50%;
    right: -210px;
    bottom: -300px;
}
.hero-content { position: relative; z-index: 2; padding: 92px 0 84px; }
.hero-eyebrow { color: var(--pm-gold-dark); font-size: .78rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.hero-title { font-size: clamp(2.5rem, 5vw, 5rem); line-height: 1.04; letter-spacing: -.025em; }
.hero-lead { color: #5f5851; font-size: 1.09rem; line-height: 1.75; max-width: 680px; }
.search-panel {
    background: rgba(255,255,255,.88);
    border: 1px solid rgba(111,77,55,.14);
    border-radius: 20px;
    padding: 10px;
    box-shadow: var(--pm-shadow);
}
.search-panel .form-control { border: 0; box-shadow: none; min-height: 52px; background: transparent; }

.phone-stage { position: relative; min-height: 560px; display: flex; align-items: center; justify-content: center; }
.phone {
    width: min(310px, 76vw);
    border: 10px solid #111;
    border-radius: 46px;
    background: #fff;
    padding: 14px;
    box-shadow: 0 38px 80px rgba(30,25,20,.24);
    transform: rotate(2deg);
}
.phone-notch { width: 98px; height: 25px; border-radius: 20px; background: #111; margin: -4px auto 12px; }
.phone-screen { min-height: 465px; border-radius: 28px; overflow: hidden; background: var(--pm-paper); }
.mini-map {
    min-height: 290px;
    position: relative;
    background:
        linear-gradient(31deg, transparent 45%, rgba(111,77,55,.11) 46%, rgba(111,77,55,.11) 48%, transparent 49%),
        linear-gradient(145deg, transparent 52%, rgba(111,77,55,.09) 53%, rgba(111,77,55,.09) 55%, transparent 56%),
        #f3efe5;
}
.mini-search { position: absolute; inset: 18px 16px auto; padding: 11px 14px; border-radius: 16px; color: white; background: rgba(38,68,59,.92); font-size: .82rem; }
.map-pin { position: absolute; width: 29px; height: 29px; display: flex; align-items: center; justify-content: center; color: #fff; background: var(--pm-gold); border: 3px solid white; border-radius: 50% 50% 50% 8px; transform: rotate(-45deg); box-shadow: 0 6px 15px rgba(75,53,23,.25); }
.map-pin i { transform: rotate(45deg); font-size: .7rem; }
.map-pin:nth-child(2) { left: 24%; top: 45%; }
.map-pin:nth-child(3) { left: 53%; top: 37%; }
.map-pin:nth-child(4) { left: 66%; top: 61%; }
.map-pin:nth-child(5) { left: 37%; top: 70%; }
.phone-card { margin: -18px 12px 12px; position: relative; padding: 17px; background: white; border: 1px solid var(--pm-border); border-radius: 18px; box-shadow: 0 16px 35px rgba(57,44,34,.12); }

.section-space { padding: 80px 0; }
.section-soft { background: var(--pm-cream); }
.section-kicker { color: var(--pm-gold-dark); font-size: .76rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.section-title { font-size: clamp(1.8rem, 3vw, 3rem); }
.section-lead { color: var(--pm-muted); max-width: 720px; }

.card-pm {
    height: 100%;
    overflow: hidden;
    background: var(--pm-paper);
    border: 1px solid var(--pm-border);
    border-radius: 22px;
    box-shadow: 0 12px 38px rgba(52,42,31,.06);
    transition: transform .18s ease, box-shadow .18s ease;
}
.card-pm:hover { transform: translateY(-4px); box-shadow: 0 20px 45px rgba(52,42,31,.11); }
.object-cover { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: #ede5d7; }
.object-placeholder {
    width: 100%;
    aspect-ratio: 16 / 10;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--pm-gold);
    background:
        radial-gradient(circle at 50% 115%, rgba(181,138,50,.26), transparent 40%),
        linear-gradient(145deg, #f8f2e7, #ece3d3);
    font-size: 3rem;
}
.object-type-badge { color: var(--pm-green); background: rgba(38,68,59,.1); border: 1px solid rgba(38,68,59,.08); }
.object-meta { color: var(--pm-muted); font-size: .87rem; }
.object-title { font-size: 1.28rem; line-height: 1.35; }

.stat-strip { margin-top: -36px; position: relative; z-index: 5; }
.stat-box { padding: 22px; text-align: center; background: white; border: 1px solid var(--pm-border); box-shadow: var(--pm-shadow); }
.stat-box:first-child { border-radius: 20px 0 0 20px; }
.stat-box:last-child { border-radius: 0 20px 20px 0; }
.stat-number { font-family: Prata, Georgia, serif; color: var(--pm-green); font-size: 1.8rem; }
.stat-label { color: var(--pm-muted); font-size: .84rem; }

.category-card { padding: 22px; display: flex; gap: 16px; align-items: center; background: white; border: 1px solid var(--pm-border); border-radius: 18px; text-decoration: none; transition: .18s ease; }
.category-card:hover { transform: translateY(-3px); border-color: rgba(181,138,50,.45); }
.category-icon { width: 50px; height: 50px; flex: 0 0 50px; display: flex; align-items: center; justify-content: center; color: var(--pm-gold-dark); background: var(--pm-cream); border-radius: 15px; font-size: 1.2rem; }

.filter-card { padding: 22px; background: white; border: 1px solid var(--pm-border); border-radius: 22px; box-shadow: 0 10px 30px rgba(52,42,31,.05); }
.form-control, .form-select { border-color: rgba(111,77,55,.22); border-radius: 12px; min-height: 46px; }
.form-control:focus, .form-select:focus { border-color: var(--pm-gold); box-shadow: 0 0 0 .2rem rgba(181,138,50,.13); }

.page-hero { padding: 58px 0 42px; background: linear-gradient(180deg, #fffdf9, #f7f0e6); border-bottom: 1px solid var(--pm-border); }
.breadcrumb { --bs-breadcrumb-divider-color: #9b9188; --bs-breadcrumb-item-active-color: #746c64; }
.detail-cover { width: 100%; max-height: 600px; object-fit: cover; border-radius: 28px; box-shadow: var(--pm-shadow); }
.detail-placeholder { min-height: 430px; border-radius: 28px; }
.info-card { padding: 22px; background: white; border: 1px solid var(--pm-border); border-radius: 18px; }
.info-icon { width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; color: var(--pm-green); background: rgba(38,68,59,.09); border-radius: 12px; }
.gallery-image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 16px; }

.map-shell { min-height: calc(100vh - 78px); display: grid; grid-template-columns: 390px 1fr; }
.map-sidebar { max-height: calc(100vh - 78px); overflow: auto; padding: 24px; background: #fffdf9; border-right: 1px solid var(--pm-border); }
.map-canvas { min-height: calc(100vh - 78px); background: #ebe6dc; }
.map-object-row { padding: 14px; border: 1px solid var(--pm-border); border-radius: 15px; background: white; }
.map-object-row + .map-object-row { margin-top: 10px; }
.map-fallback { min-height: 100%; display: flex; align-items: center; justify-content: center; padding: 40px; text-align: center; background: radial-gradient(circle at 55% 45%, rgba(181,138,50,.15), transparent 25%), #eee9df; }

.feature-step { height: 100%; padding: 24px; background: white; border: 1px solid var(--pm-border); border-radius: 20px; }
.step-number { width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; color: white; background: var(--pm-gold); border-radius: 50%; font-weight: 700; }

.site-footer { color: rgba(255,255,255,.78); background: var(--pm-green); }
.footer-link { color: rgba(255,255,255,.72); text-decoration: none; }
.footer-link:hover { color: #fff; }

.mobile-bottom-nav { display: none; }
.pagination { --bs-pagination-color: var(--pm-green); --bs-pagination-active-bg: var(--pm-green); --bs-pagination-active-border-color: var(--pm-green); }

@media (max-width: 991.98px) {
    .hero-content { padding: 72px 0 60px; }
    .phone-stage { min-height: 500px; }
    .map-shell { grid-template-columns: 1fr; }
    .map-sidebar { max-height: none; }
    .map-canvas { min-height: 560px; }
}

@media (max-width: 767.98px) {
    body { padding-bottom: 68px; }
    .navbar .navbar-collapse { padding: 1rem 0; }
    .hero-title { font-size: 2.55rem; }
    .section-space { padding: 58px 0; }
    .phone-stage { min-height: 450px; }
    .phone { width: 260px; }
    .stat-strip { margin-top: 0; padding-top: 20px; }
    .stat-box, .stat-box:first-child, .stat-box:last-child { border-radius: 16px; }
    .mobile-bottom-nav {
        position: fixed;
        z-index: 1050;
        inset: auto 0 0;
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        padding: 7px 4px calc(7px + env(safe-area-inset-bottom));
        background: rgba(255,253,249,.96);
        border-top: 1px solid var(--pm-border);
        backdrop-filter: blur(14px);
    }
    .mobile-bottom-nav a { display: flex; flex-direction: column; gap: 2px; align-items: center; color: #766e66; text-decoration: none; font-size: .68rem; }
    .mobile-bottom-nav a.active { color: var(--pm-gold-dark); }
    .mobile-bottom-nav i { font-size: 1.15rem; }
}
