        :root {
                --pd-navy: #0f172a;
                --pd-slate: #334155;
                --pd-muted: #64748b;
                --pd-accent: #0ea5e9;
                --pd-green: #22c55e;
                --pd-border: #e2e8f0;
                --pd-bg: #f8fafc;
                --pd-r: 12px;
        }

        body {
                background: #fff;
        }

        .pd-page {
                max-width: 900px;
                margin: 0 auto;
                padding: 0 16px 100px;
        }

        /* ---------- Breadcrumb ---------- */
        .pd-crumbs {
                display: flex;
                gap: 5px;
                padding: 10px 0 6px;
                font-size: .75rem;
                color: var(--pd-muted);
                flex-wrap: wrap;
        }

        .pd-crumbs a {
                color: var(--pd-accent);
                text-decoration: none;
        }

        /* ---------- Gallery Carousel ---------- */
        .pd-carousel {
                position: relative;
                width: 100%;
                aspect-ratio: 16 / 10;
                border-radius: var(--pd-r);
                overflow: hidden;
                margin-bottom: 18px;
                background: #0f172a;
        }

        .pd-carousel-slide {
                position: absolute;
                inset: 0;
                opacity: 0;
                transition: opacity .5s ease;
        }

        .pd-carousel-slide.pd-active {
                opacity: 1;
        }

        .pd-carousel-slide img {
                width: 100%;
                height: 100%;
                object-fit: cover;
                cursor: pointer;
        }

        .pd-carousel-nav {
                position: absolute;
                top: 50%;
                transform: translateY(-50%);
                width: 40px;
                height: 40px;
                border-radius: 50%;
                background: rgba(255, 255, 255, .85);
                border: none;
                font-size: 18px;
                font-weight: 700;
                color: #1a1a2e;
                cursor: pointer;
                z-index: 3;
                box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
                opacity: 0;
                transition: opacity .2s;
                display: flex;
                align-items: center;
                justify-content: center;
        }

        .pd-carousel:hover .pd-carousel-nav {
                opacity: 1;
        }

        .pd-carousel-prev {
                left: 10px;
        }

        .pd-carousel-next {
                right: 10px;
        }

        .pd-carousel-nav:hover {
                background: #fff;
                box-shadow: 0 3px 12px rgba(0, 0, 0, .25);
        }

        .pd-carousel-dots {
                position: absolute;
                bottom: 12px;
                left: 50%;
                transform: translateX(-50%);
                display: flex;
                gap: 6px;
                z-index: 3;
        }

        .pd-carousel-dot {
                width: 8px;
                height: 8px;
                border-radius: 50%;
                background: rgba(255, 255, 255, .45);
                cursor: pointer;
                transition: all .2s;
                border: none;
                padding: 0;
        }

        .pd-carousel-dot.pd-active {
                background: #fff;
                transform: scale(1.25);
        }

        .pd-carousel-count {
                position: absolute;
                top: 10px;
                right: 10px;
                background: rgba(0, 0, 0, .55);
                color: #fff;
                font-size: .72rem;
                font-weight: 600;
                padding: 4px 10px;
                border-radius: 8px;
                z-index: 3;
        }

        /* ---------- Title ---------- */
        .pd-header {
                margin-bottom: 16px;
        }

        .pd-header h1 {
                font-size: 1.3rem;
                font-weight: 800;
                color: var(--pd-navy);
                margin: 0 0 4px;
                line-height: 1.3;
        }

        .pd-header-loc {
                font-size: .85rem;
                color: var(--pd-muted);
                margin-bottom: 8px;
        }

        .pd-header-loc i {
                margin-right: 3px;
                color: var(--pd-accent);
        }

        .pd-badge {
                display: inline-block;
                padding: 3px 10px;
                border-radius: 6px;
                font-size: .7rem;
                font-weight: 700;
                text-transform: uppercase;
                letter-spacing: .4px;
        }

        .pd-badge--rent {
                background: #e0f2fe;
                color: #0284c7;
        }

        .pd-badge--rent {
                background: #e0f2fe;
                color: #0284c7;
        }

        .pd-badge--sale {
                background: #dcfce7;
                color: #16a34a;
        }

        .pd-badge--hot {
                background: #fef2f2;
                color: #dc2626;
                margin-left: 4px;
        }

        .pd-tags {
                display: flex;
                flex-wrap: wrap;
                gap: 6px;
                margin-top: 10px;
        }

        .pd-tag {
                display: inline-block;
                padding: 4px 12px;
                border-radius: 20px;
                font-size: .72rem;
                font-weight: 600;
                background: #f0f9ff;
                color: #0369a1;
                border: 1px solid #bae6fd;
        }

        /* ---------- Section divider ---------- */
        .pd-section {
                border-top: 1px solid var(--pd-border);
                padding: 18px 0;
        }

        .pd-section:first-of-type {
                border-top: none;
        }

        .pd-section-title {
                font-size: .95rem;
                font-weight: 700;
                color: var(--pd-navy);
                margin: 0 0 12px;
        }

        /* ---------- Key facts row ---------- */
        .pd-facts {
                display: grid;
                grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
                gap: 10px;
        }

        .pd-fact {
                background: var(--pd-bg);
                border-radius: 10px;
                padding: 12px 14px;
        }

        .pd-fact-val {
                font-weight: 700;
                color: var(--pd-navy);
                font-size: .92rem;
        }

        .pd-fact-label {
                font-size: .72rem;
                color: var(--pd-muted);
                margin-top: 1px;
        }

        /* ---------- Description ---------- */
        .pd-desc {
                color: var(--pd-slate);
                line-height: 1.7;
                font-size: .9rem;
        }

        /* ---------- Map ---------- */
        .pd-map-container {
                width: 100%;
                height: 260px;
                border: 0;
                border-radius: 10px;
                overflow: hidden;
        }

        /* ---------- Similar ---------- */
        .pd-sim-row {
                display: flex;
                gap: 12px;
                overflow-x: auto;
                padding-bottom: 6px;
                scroll-snap-type: x mandatory;
        }

        .pd-sim {
                flex: 0 0 170px;
                display: flex;
                flex-direction: column;
                padding: 10px;
                background: var(--pd-bg);
                border-radius: 10px;
                text-decoration: none;
                transition: transform .2s, box-shadow .2s;
                scroll-snap-align: start;
        }

        .pd-sim:hover {
                transform: translateY(-2px);
                box-shadow: 0 4px 12px rgba(0, 0, 0, .08);
        }

        .pd-sim-thumb {
                width: 100%;
                height: 90px;
                border-radius: 8px;
                overflow: hidden;
                background: var(--pd-border);
                margin-bottom: 8px;
        }

        .pd-sim-thumb img {
                width: 100%;
                height: 100%;
                object-fit: cover;
        }

        .pd-sim-name {
                font-size: .8rem;
                font-weight: 600;
                color: var(--pd-navy);
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
        }

        .pd-sim-price {
                font-size: .75rem;
                color: var(--pd-accent);
                font-weight: 700;
                margin-top: 2px;
        }

        .pd-sim-info {
                flex: 1;
                min-width: 0;
        }

        /* ---------- Inline CTA buttons ---------- */
        .pd-cta-row {
                display: flex;
                gap: 12px;
                margin-top: 16px;
                flex-wrap: wrap;
        }

        .pd-cta-btn {
                display: inline-flex;
                align-items: center;
                gap: 8px;
                padding: 12px 24px;
                border-radius: 10px;
                font-size: .95rem;
                font-weight: 700;
                font-family: inherit;
                text-decoration: none;
                transition: background .2s, transform .15s, box-shadow .2s;
                white-space: nowrap;
                border: none;
                cursor: pointer;
        }

        .pd-cta-btn i {
                font-size: 1.15rem;
        }

        .pd-cta-whatsapp {
                background: #25d366;
                color: #fff;
        }

        .pd-cta-whatsapp:hover {
                background: #1ebe57;
                color: #fff;
                transform: translateY(-1px);
                box-shadow: 0 4px 14px rgba(37, 211, 102, .35);
        }

        .pd-cta-call {
                background: #0ea5e9;
                color: #fff;
        }

        .pd-cta-call:hover {
                background: #0284c7;
                color: #fff;
                transform: translateY(-1px);
                box-shadow: 0 4px 14px rgba(14, 165, 233, .35);
        }

        .pd-cta-email {
                background: linear-gradient(135deg, #6366f1, #8b5cf6);
                color: #fff;
        }

        .pd-cta-email:hover {
                background: linear-gradient(135deg, #4f46e5, #7c3aed);
                color: #fff;
                transform: translateY(-1px);
                box-shadow: 0 4px 14px rgba(99, 102, 241, .35);
        }

        /* ---------- Lightbox ---------- */
        .pd-lightbox {
                display: none;
                position: fixed;
                inset: 0;
                z-index: 9999;
                background: rgba(0, 0, 0, .92);
                align-items: center;
                justify-content: center;
                flex-direction: column;
        }

        .pd-lightbox.pd-open {
                display: flex;
        }

        .pd-lb-img {
                max-width: 92vw;
                max-height: 80vh;
                object-fit: contain;
                border-radius: 6px;
        }

        .pd-lb-close {
                position: absolute;
                top: 14px;
                right: 16px;
                background: rgba(255, 255, 255, .15);
                border: none;
                color: #fff;
                font-size: 1.4rem;
                width: 38px;
                height: 38px;
                border-radius: 50%;
                cursor: pointer;
        }

        .pd-lb-nav {
                background: rgba(255, 255, 255, .15);
                border: none;
                color: #fff;
                font-size: 1.4rem;
                width: 40px;
                height: 40px;
                border-radius: 50%;
                cursor: pointer;
                position: absolute;
                top: 50%;
                transform: translateY(-50%);
        }

        .pd-lb-prev {
                left: 12px;
        }

        .pd-lb-next {
                right: 12px;
        }

        .pd-lb-counter {
                color: rgba(255, 255, 255, .7);
                font-size: .82rem;
                margin-top: 10px;
        }

        /* ---------- Mobile ---------- */
        @media(max-width:600px) {
                .pd-carousel {
                        aspect-ratio: 4 / 3;
                        border-radius: 0;
                        margin-left: -16px;
                        margin-right: -16px;
                        width: calc(100% + 32px);
                }

                .pd-carousel-nav {
                        width: 34px;
                        height: 34px;
                        font-size: 15px;
                        opacity: 1;
                }

                .pd-header h1 {
                        font-size: 1.1rem;
                }

                .pd-facts {
                        grid-template-columns: 1fr 1fr;
                        gap: 8px;
                }
        }
