/* ══════════════════════════════════════════════════════════════════════
   PUBLIC WEBSITE — PAGE-SPECIFIC STYLES
   Shared across Home, Listings, Detail, Neighborhoods, Tour pages
   ══════════════════════════════════════════════════════════════════════ */

/* ── Listing Card (shared: home, listings, detail similar) ──────── */
.lc { 
    background:#fff; border-radius:var(--radius-xl); overflow:hidden;
    border:1px solid var(--color-border); transition:all 0.3s;
    display:flex; flex-direction:column;
}
.lc:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.lc-gallery {
    position:relative; aspect-ratio:4/3; overflow:hidden;
    display:flex; scroll-snap-type:x mandatory;
    overflow-x:auto; -webkit-overflow-scrolling:touch;
}
.lc-gallery::-webkit-scrollbar { display:none; }
.lc-gallery img {
    min-width:100%; height:100%; object-fit:cover;
    scroll-snap-align:start; flex-shrink:0;
    transition:transform 0.6s ease;
}
.lc:hover .lc-gallery img:first-child { transform:scale(1.05); }
.lc-gallery-dots {
    position:absolute; bottom:10px; left:50%; transform:translateX(-50%);
    display:flex; gap:4px; z-index:2;
}
.lc-gallery-dot {
    width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.5);
    transition:all 0.2s;
}
.lc-gallery-dot.active { background:#fff; width:16px; border-radius:3px; }
.lc-badges {
    position:absolute; top:12px; left:12px; z-index:2;
    display:flex; gap:6px; flex-wrap:wrap;
}
.lc-badge {
    padding:4px 10px; border-radius:var(--radius-full);
    font-size:11px; font-weight:700; backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}
.lc-badge-type { background:rgba(59,130,246,0.9); color:#fff; }
.lc-badge-nofee { background:rgba(16,185,129,0.9); color:#fff; }
.lc-badge-new {
    background:linear-gradient(135deg,#f59e0b,#d97706); color:#fff;
    animation:pulse 2s infinite;
}
.lc-save {
    position:absolute; top:12px; right:12px; z-index:2;
    width:36px; height:36px; border-radius:50%;
    background:rgba(255,255,255,0.9); backdrop-filter:blur(8px);
    border:none; cursor:pointer; display:flex; align-items:center;
    justify-content:center; font-size:18px; color:var(--color-text-muted);
    transition:all 0.2s;
}
.lc-save:hover { transform:scale(1.1); }
.lc-save.saved { color:#ef4444; }
.lc-price-overlay {
    position:absolute; bottom:12px; left:12px; z-index:2;
    background:rgba(0,0,0,0.7); backdrop-filter:blur(8px);
    padding:6px 14px; border-radius:var(--radius-sm);
    color:#fff; font-size:20px; font-weight:800;
}
.lc-price-overlay small { font-size:13px; font-weight:500; opacity:0.8; }
.lc-body { padding:16px 18px; flex:1; display:flex; flex-direction:column; }
.lc-title {
    font-size:16px; font-weight:700; color:var(--color-text);
    margin-bottom:4px; line-height:1.3;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
    overflow:hidden;
}
.lc-address {
    font-size:13px; color:var(--color-text-muted); margin-bottom:10px;
    display:flex; align-items:center; gap:4px;
}
.lc-address i { font-size:14px; }
.lc-specs {
    display:flex; gap:14px; font-size:13px; color:var(--color-text-secondary);
    font-weight:500; margin-top:auto; padding-top:10px;
    border-top:1px solid var(--color-border-light);
}
.lc-spec { display:flex; align-items:center; gap:4px; }
.lc-spec i { font-size:14px; color:var(--color-text-muted); }
.lc-time { font-size:12px; color:var(--color-text-light); margin-top:8px; }

/* ── Compact Card (map sidebar) ────────────────────────────────── */
.lc-compact {
    display:grid; grid-template-columns:110px 1fr; gap:0;
    background:#fff; border-radius:var(--radius-md); overflow:hidden;
    border:1px solid var(--color-border); transition:all 0.2s;
    margin-bottom:8px;
}
.lc-compact:hover { border-color:var(--color-primary); box-shadow:0 2px 12px rgba(59,130,246,0.1); }
.lc-compact-img { width:110px; height:90px; object-fit:cover; }
.lc-compact-body { padding:10px 12px; display:flex; flex-direction:column; justify-content:center; }
.lc-compact-price { font-size:16px; font-weight:800; color:var(--color-text); }
.lc-compact-price small { font-size:11px; font-weight:500; color:var(--color-text-muted); }
.lc-compact-title { font-size:13px; font-weight:600; color:var(--color-text); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lc-compact-meta { font-size:11px; color:var(--color-text-muted); margin-top:2px; }

/* ── Neighborhood Card ──────────────────────────────────────────── */
.nc {
    background:#fff; border-radius:var(--radius-xl); overflow:hidden;
    border:1px solid var(--color-border); transition:all 0.3s;
}
.nc:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.nc-img-wrap { position:relative; aspect-ratio:16/9; overflow:hidden; }
.nc-img { width:100%; height:100%; object-fit:cover; transition:transform 0.6s ease; }
.nc:hover .nc-img { transform:scale(1.05); }
.nc-img-overlay {
    position:absolute; inset:0;
    background:linear-gradient(180deg,transparent 30%,rgba(0,0,0,0.7) 100%);
}
.nc-img-content {
    position:absolute; bottom:16px; left:16px; right:16px; z-index:2;
}
.nc-img-name { font-size:20px; font-weight:800; color:#fff; margin-bottom:4px; }
.nc-img-stats { font-size:13px; color:rgba(255,255,255,0.85); display:flex; gap:12px; }
.nc-borough {
    position:absolute; top:12px; right:12px; z-index:2;
    padding:4px 12px; border-radius:var(--radius-full);
    font-size:11px; font-weight:700; background:rgba(255,255,255,0.9);
    backdrop-filter:blur(8px); color:var(--color-text);
}
.nc-body { padding:16px 18px; }
.nc-desc { font-size:14px; color:var(--color-text-muted); line-height:1.6; margin-bottom:12px;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.nc-bestfor { font-size:12px; font-weight:600; color:var(--color-accent); margin-bottom:12px; }
.nc-cta {
    display:flex; align-items:center; gap:6px; font-size:14px;
    font-weight:600; color:var(--color-primary); transition:all 0.2s;
}
.nc-cta:hover { gap:10px; }
.nc-cta i { transition:transform 0.2s; }
.nc-cta:hover i { transform:translateX(4px); }

/* ── Score Dials ────────────────────────────────────────────────── */
.score-dial {
    width:80px; height:80px; border-radius:50%; position:relative;
    display:flex; align-items:center; justify-content:center;
}
.score-dial-value { font-size:22px; font-weight:800; color:var(--color-text); }
.score-dial-label { font-size:11px; color:var(--color-text-muted); text-align:center; margin-top:6px; font-weight:600; }

/* ── Accordion ──────────────────────────────────────────────────── */
.pub-accordion {}
.pub-accordion-item {
    border-bottom:1px solid var(--color-border);
}
.pub-accordion-header {
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 0; cursor:pointer; font-size:15px; font-weight:700;
    color:var(--color-text); transition:color 0.2s;
}
.pub-accordion-header:hover { color:var(--color-primary); }
.pub-accordion-header i { transition:transform 0.3s; font-size:18px; color:var(--color-text-muted); }
.pub-accordion-header[aria-expanded="true"] i { transform:rotate(180deg); }
.pub-accordion-body { padding:0 0 16px; }

/* ── Detail Grid ────────────────────────────────────────────────── */
.detail-grid {
    display:grid; grid-template-columns:1fr 1fr; gap:12px;
}
.detail-item {
    display:flex; align-items:flex-start; gap:10px; padding:10px 0;
}
.detail-icon {
    width:32px; height:32px; border-radius:8px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    background:var(--color-primary-bg); color:var(--color-primary);
    font-size:14px;
}
.detail-label { font-size:12px; color:var(--color-text-muted); font-weight:500; }
.detail-value { font-size:14px; color:var(--color-text); font-weight:600; }

/* ── Feature Chips ──────────────────────────────────────────────── */
.feature-chips { display:flex; flex-wrap:wrap; gap:8px; }
.feature-chip {
    display:inline-flex; align-items:center; gap:6px;
    padding:8px 14px; border-radius:var(--radius-full);
    font-size:13px; font-weight:500; background:var(--color-surface);
    border:1px solid var(--color-border); color:var(--color-text-secondary);
    transition:all 0.2s;
}
.feature-chip i { font-size:14px; }
.feature-chip-active { background:var(--color-primary-bg); border-color:rgba(59,130,246,0.3); color:var(--color-primary-dark); }
.feature-chip-missing { opacity:0.4; text-decoration:line-through; }

/* ── Tabs ───────────────────────────────────────────────────────── */
.pub-tabs { display:flex; gap:0; border-bottom:2px solid var(--color-border); margin-bottom:20px; }
.pub-tab {
    padding:10px 20px; font-size:14px; font-weight:600; cursor:pointer;
    color:var(--color-text-muted); border-bottom:2px solid transparent;
    margin-bottom:-2px; transition:all 0.2s;
}
.pub-tab:hover { color:var(--color-primary); }
.pub-tab.active { color:var(--color-primary); border-bottom-color:var(--color-primary); }

/* ── How It Works ───────────────────────────────────────────────── */
.hiw-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; position:relative; }
.hiw-card {
    text-align:center; padding:32px 24px; background:#fff;
    border-radius:var(--radius-xl); border:1px solid var(--color-border);
    transition:all 0.3s; position:relative;
}
.hiw-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.hiw-icon {
    width:64px; height:64px; border-radius:var(--radius-lg);
    display:flex; align-items:center; justify-content:center;
    margin:0 auto 16px; font-size:28px;
    background:var(--color-primary-bg); color:var(--color-primary);
}
.hiw-step { font-size:12px; font-weight:700; color:var(--color-primary); text-transform:uppercase; letter-spacing:.05em; margin-bottom:8px; }
.hiw-title { font-size:18px; font-weight:700; margin-bottom:8px; }
.hiw-desc { font-size:14px; color:var(--color-text-muted); line-height:1.6; }
.hiw-connector {
    position:absolute; top:50%; width:32px; height:2px;
    background:var(--color-border); right:-16px;
}
@media (max-width:768px) { .hiw-grid { grid-template-columns:1fr; } .hiw-connector { display:none; } }

/* ── Trust Bar ──────────────────────────────────────────────────── */
.trust-bar {
    display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
    padding:40px; background:#fff; border-radius:var(--radius-xl);
    border:1px solid var(--color-border);
}
.trust-item { text-align:center; }
.trust-icon { font-size:28px; color:var(--color-primary); margin-bottom:8px; }
.trust-number { font-size:32px; font-weight:800; color:var(--color-text); }
.trust-label { font-size:13px; color:var(--color-text-muted); font-weight:500; }
@media (max-width:768px) { .trust-bar { grid-template-columns:repeat(2,1fr); gap:16px; padding:24px; } }
@media (max-width:480px) { .trust-bar { grid-template-columns:1fr 1fr; } }

/* ── Category Bar ───────────────────────────────────────────────── */
.cat-bar {
    display:flex; gap:8px; overflow-x:auto; padding:8px 0;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
}
.cat-bar::-webkit-scrollbar { display:none; }
.cat-chip {
    display:inline-flex; align-items:center; gap:6px;
    padding:10px 18px; border-radius:var(--radius-full);
    font-size:13px; font-weight:600; white-space:nowrap;
    background:#fff; border:1px solid var(--color-border);
    color:var(--color-text-secondary); transition:all 0.2s;
    scroll-snap-align:start; flex-shrink:0; cursor:pointer;
    text-decoration:none;
}
.cat-chip:hover { border-color:var(--color-primary); color:var(--color-primary); background:var(--color-primary-bg); }
.cat-chip i { font-size:16px; }
.cat-chip .cat-count { font-size:11px; color:var(--color-text-light); font-weight:500; }

/* ── Newsletter CTA ─────────────────────────────────────────────── */
.newsletter-cta {
    text-align:center; padding:48px 24px; background:#fff;
    border-radius:var(--radius-xl); border:1px solid var(--color-border);
    max-width:600px; margin:0 auto;
}
.newsletter-cta h3 { font-size:24px; margin-bottom:8px; }
.newsletter-cta p { font-size:15px; color:var(--color-text-muted); margin-bottom:20px; }
.newsletter-form { display:flex; gap:8px; max-width:400px; margin:0 auto; }
.newsletter-form input {
    flex:1; padding:12px 16px; border:2px solid var(--color-border);
    border-radius:var(--radius-md); font-size:14px; font-family:var(--font-body);
}
.newsletter-form input:focus { outline:none; border-color:var(--color-primary); }
.newsletter-trust { font-size:12px; color:var(--color-text-light); margin-top:12px; }

/* ── Filter Pills ───────────────────────────────────────────────── */
.filter-pills { display:flex; gap:8px; flex-wrap:wrap; }
.filter-pill {
    position:relative; display:inline-flex; align-items:center; gap:6px;
    padding:8px 16px; border-radius:var(--radius-full);
    font-size:13px; font-weight:600; background:#fff;
    border:1px solid var(--color-border); color:var(--color-text-secondary);
    cursor:pointer; transition:all 0.2s;
}
.filter-pill:hover { border-color:var(--color-primary); color:var(--color-primary); }
.filter-pill.active { background:var(--color-primary-bg); border-color:rgba(59,130,246,0.3); color:var(--color-primary-dark); }
.filter-pill i { font-size:14px; }
.filter-dropdown {
    position:absolute; top:calc(100% + 8px); left:0; min-width:240px;
    background:#fff; border:1px solid var(--color-border);
    border-radius:var(--radius-lg); padding:16px;
    box-shadow:var(--shadow-md); z-index:50;
}

/* ── Active filter chips ────────────────────────────────────────── */
.active-filters { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.active-chip {
    display:inline-flex; align-items:center; gap:4px;
    padding:4px 12px; border-radius:var(--radius-full);
    font-size:12px; font-weight:600; background:var(--color-primary-bg);
    color:var(--color-primary-dark);
}
.active-chip-x {
    width:16px; height:16px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:rgba(59,130,246,0.2); cursor:pointer; font-size:10px;
    transition:background 0.2s;
}
.active-chip-x:hover { background:rgba(59,130,246,0.4); }
.active-clear { font-size:12px; font-weight:600; color:var(--color-text-muted); cursor:pointer; }
.active-clear:hover { color:var(--color-danger); }

/* ── Map Styles ─────────────────────────────────────────────────── */
.map-container { border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--color-border); }
.map-search-area {
    position:absolute; top:16px; left:50%; transform:translateX(-50%);
    z-index:1000; padding:8px 20px; background:#fff;
    border-radius:var(--radius-full); box-shadow:var(--shadow-md);
    font-size:13px; font-weight:600; color:var(--color-primary);
    cursor:pointer; border:1px solid var(--color-border);
    transition:all 0.2s;
}
.map-search-area:hover { background:var(--color-primary-bg); }

/* ── Boarding Pass Card ─────────────────────────────────────────── */
.boarding-pass {
    background:#fff; border-radius:var(--radius-xl); overflow:hidden;
    border:1px solid var(--color-border); box-shadow:var(--shadow-md);
    display:grid; grid-template-columns:1fr 2px 1fr; max-width:640px; margin:0 auto;
}
.boarding-left { padding:24px; }
.boarding-divider {
    background:transparent; position:relative;
    border-left:2px dashed var(--color-border);
}
.boarding-divider::before,.boarding-divider::after {
    content:''; position:absolute; left:-8px;
    width:14px; height:14px; border-radius:50%;
    background:var(--color-surface);
}
.boarding-divider::before { top:-7px; }
.boarding-divider::after { bottom:-7px; }
.boarding-right { padding:24px; }
.boarding-ref { font-family:monospace; font-size:14px; font-weight:700; color:var(--color-primary); letter-spacing:1px; }

/* ── Success Animation ──────────────────────────────────────────── */
.success-circle {
    width:80px; height:80px; border-radius:50%;
    background:linear-gradient(135deg,var(--color-success),#059669);
    display:flex; align-items:center; justify-content:center;
    margin:0 auto 20px; animation:scaleIn 0.5s var(--ease-out-expo);
}
.success-circle i { font-size:36px; color:#fff; }
.success-confetti { position:relative; overflow:hidden; }
.success-confetti::before,.success-confetti::after {
    content:'🎉'; position:absolute; font-size:24px;
    animation:confettiFall 1.5s ease-out forwards;
    opacity:0;
}
.success-confetti::before { left:20%; animation-delay:0.2s; }
.success-confetti::after { right:20%; animation-delay:0.4s; content:'🎊'; }
@keyframes confettiFall {
    0% { opacity:0; transform:translateY(-20px) rotate(0); }
    50% { opacity:1; }
    100% { opacity:0; transform:translateY(60px) rotate(360deg); }
}

/* ── Responsive card grids ──────────────────────────────────────── */
@media (max-width:640px) {
    .detail-grid { grid-template-columns:1fr; }
    .boarding-pass { grid-template-columns:1fr; }
    .boarding-divider { border-left:none; border-top:2px dashed var(--color-border); height:2px; }
    .boarding-divider::before,.boarding-divider::after { display:none; }
}

/* ══════════════════════════════════════════════════════════════════
   LISTING DETAIL PAGE
   ══════════════════════════════════════════════════════════════════ */

/* ── Page Layout ────────────────────────────────────────────────── */
.ld-page { padding-top:70px; min-height:100vh; background:linear-gradient(180deg,#f8fafc 0%,#f1f5f9 100%); }
.ld-container { max-width:1280px; margin:0 auto; padding:24px 20px 80px; }

/* ── Mosaic Gallery ─────────────────────────────────────────────── */
.ld-mosaic {
    display:grid; gap:6px; border-radius:var(--radius-xl); overflow:hidden;
    grid-template-columns:2fr 1fr 1fr;
    grid-template-rows:220px 220px;
    grid-template-areas:"main side1 side2" "main bot1 bot2";
}
.ld-mosaic-item { position:relative; overflow:hidden; cursor:pointer; }
.ld-mosaic-item img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s ease; }
.ld-mosaic-item:hover img { transform:scale(1.05); }
.ld-mosaic-main { grid-area:main; }
.ld-mosaic-side1 { grid-area:side1; }
.ld-mosaic-side2 { grid-area:side2; }
.ld-mosaic-bot1 { grid-area:bot1; }
.ld-mosaic-bot2 { grid-area:bot2; }
.ld-mosaic-overlay {
    position:absolute; top:0; left:0; right:0; bottom:0;
    display:flex; align-items:center; justify-content:center; gap:8px;
    background:rgba(0,0,0,0.45); color:#fff; font-size:15px; font-weight:700;
    backdrop-filter:blur(2px); transition:background 0.2s;
}
.ld-mosaic-overlay:hover { background:rgba(0,0,0,0.55); }
.ld-mosaic-badges {
    position:absolute; top:16px; left:16px; z-index:2;
    display:flex; gap:6px; flex-wrap:wrap;
}
.ld-mosaic-badge {
    padding:5px 12px; border-radius:var(--radius-full);
    font-size:11px; font-weight:700; backdrop-filter:blur(8px);
}
.ld-mosaic-badge-type { background:rgba(59,130,246,0.9); color:#fff; }
.ld-mosaic-badge-nofee { background:rgba(16,185,129,0.9); color:#fff; }
.ld-mosaic-actions {
    position:absolute; top:16px; right:16px; z-index:2;
    display:flex; gap:8px;
}
.ld-action-btn {
    width:42px; height:42px; border-radius:50%;
    background:rgba(255,255,255,0.92); backdrop-filter:blur(8px);
    border:none; cursor:pointer; display:flex; align-items:center;
    justify-content:center; font-size:18px; color:var(--color-text);
    transition:all 0.2s; box-shadow:0 2px 8px rgba(0,0,0,0.12);
}
.ld-action-btn:hover { transform:scale(1.1); }
.ld-action-btn.saved { color:#ef4444; }
.ld-mosaic-count {
    position:absolute; bottom:16px; right:16px; z-index:2;
    padding:8px 16px; border-radius:var(--radius-full);
    background:rgba(0,0,0,0.65); backdrop-filter:blur(8px);
    color:#fff; font-size:13px; font-weight:600;
    display:flex; align-items:center; gap:6px;
}
.ld-mosaic-tour {
    position:absolute; bottom:16px; left:16px; z-index:2;
    padding:10px 20px; border-radius:var(--radius-md);
    background:rgba(59,130,246,0.92); color:#fff;
    font-size:14px; font-weight:600; border:none; cursor:pointer;
    display:flex; align-items:center; gap:8px;
    backdrop-filter:blur(8px); transition:all 0.2s;
}
.ld-mosaic-tour:hover { transform:translateY(-2px); box-shadow:0 4px 20px rgba(59,130,246,0.4); }
.ld-mosaic-placeholder {
    width:100%; height:100%; background:linear-gradient(135deg,#e2e8f0,#cbd5e1);
    display:flex; align-items:center; justify-content:center;
}
.ld-mosaic-placeholder i { font-size:48px; color:#94a3b8; }
@media (max-width:768px) {
    .ld-mosaic {
        grid-template-columns:1fr; grid-template-rows:280px;
        grid-template-areas:"main";
    }
    .ld-mosaic-side1,.ld-mosaic-side2,.ld-mosaic-bot1,.ld-mosaic-bot2 { display:none; }
}
@media (min-width:769px) and (max-width:1024px) {
    .ld-mosaic {
        grid-template-columns:2fr 1fr;
        grid-template-rows:200px 200px;
        grid-template-areas:"main side1" "main side2";
    }
    .ld-mosaic-bot1,.ld-mosaic-bot2 { display:none; }
}

/* ── Sticky Section Nav ─────────────────────────────────────────── */
.ld-sticky-nav {
    position:sticky; top:60px; z-index:90; height:56px;
    background:rgba(255,255,255,0.92); backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border-bottom:1px solid var(--color-border);
    transform:translateY(-100%); opacity:0;
    transition:all 0.3s ease;
}
.ld-sticky-nav.visible { transform:translateY(0); opacity:1; }
.ld-sticky-nav-inner {
    max-width:1280px; margin:0 auto; padding:0 20px;
    display:flex; align-items:center; height:100%; gap:24px;
}
.ld-nav-links {
    display:flex; gap:4px; flex:1; overflow-x:auto;
    -webkit-overflow-scrolling:touch; position:relative;
}
.ld-nav-links::-webkit-scrollbar { display:none; }
.ld-nav-link {
    padding:16px 14px; font-size:14px; font-weight:600; cursor:pointer;
    color:var(--color-text-muted); white-space:nowrap;
    border-bottom:2px solid transparent; transition:all 0.2s;
}
.ld-nav-link:hover { color:var(--color-primary); }
.ld-nav-link.active {
    color:var(--color-primary); border-bottom-color:var(--color-primary);
}
.ld-nav-price {
    font-size:18px; font-weight:800; color:var(--color-text);
    white-space:nowrap;
}
.ld-nav-cta { flex-shrink:0; }
@media (max-width:768px) {
    .ld-nav-price { font-size:16px; }
    .ld-nav-cta .pub-btn { padding:8px 14px; font-size:13px; }
}

/* ── Main Grid ──────────────────────────────────────────────────── */
.ld-grid {
    display:grid; grid-template-columns:1fr 380px;
    gap:32px; padding-bottom:80px;
}
@media (max-width:1100px) { .ld-grid { grid-template-columns:1fr; } }

/* ── Content Card ───────────────────────────────────────────────── */
.ld-card {
    background:#fff; border-radius:var(--radius-xl);
    box-shadow:0 4px 24px rgba(0,0,0,0.05); margin-bottom:24px;
    overflow:hidden; border:1px solid rgba(0,0,0,0.04);
    transition:box-shadow 0.3s;
}
.ld-card:hover { box-shadow:0 8px 32px rgba(0,0,0,0.08); }
.ld-card-header {
    padding:20px 24px; border-bottom:1px solid var(--color-border);
    display:flex; align-items:center; gap:10px;
    background:linear-gradient(135deg,rgba(59,130,246,0.03),rgba(99,102,241,0.02));
}
.ld-card-header h3 { font-size:16px; font-weight:700; color:var(--color-text); margin:0; }
.ld-card-header i { font-size:20px; color:var(--color-primary); }
.ld-card-body { padding:24px; }

/* ── Overview Header ────────────────────────────────────────────── */
.ld-header {
    background:#fff; border-radius:var(--radius-xl); padding:32px;
    margin-bottom:24px; box-shadow:0 4px 24px rgba(0,0,0,0.06);
    border:1px solid rgba(0,0,0,0.04); position:relative; overflow:hidden;
}
.ld-header::before {
    content:''; position:absolute; top:0; left:0; right:0; height:4px;
    background:linear-gradient(90deg,var(--color-primary),#6366f1,var(--color-success));
}
.ld-header-top {
    display:flex; justify-content:space-between; align-items:flex-start;
    gap:20px; flex-wrap:wrap;
}
.ld-title {
    font-size:28px; font-weight:800; color:var(--color-text);
    letter-spacing:-0.02em; line-height:1.2; margin-bottom:8px;
}
.ld-address {
    font-size:15px; color:var(--color-text-muted);
    display:flex; align-items:center; gap:6px;
}
.ld-price-hero { text-align:right; }
.ld-price-big {
    font-size:36px; font-weight:800;
    background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));
    -webkit-background-clip:text; -webkit-text-fill-color:transparent;
    background-clip:text;
}
.ld-price-sub { font-size:13px; color:var(--color-text-muted); margin-top:2px; }
.ld-price-meta {
    display:flex; gap:16px; margin-top:6px; font-size:13px;
    color:var(--color-text-muted);
}
.ld-price-meta span { display:flex; align-items:center; gap:4px; }
.ld-stat-cards {
    display:flex; gap:16px; margin-top:24px; padding-top:24px;
    border-top:1px solid var(--color-border); flex-wrap:wrap;
}
.ld-stat-card {
    text-align:center; padding:16px 24px; border-radius:14px; min-width:90px;
    background:linear-gradient(135deg,rgba(59,130,246,0.06),rgba(99,102,241,0.04));
    transition:transform 0.2s;
}
.ld-stat-card:hover { transform:translateY(-2px); }
.ld-stat-card-icon { font-size:20px; color:var(--color-primary); margin-bottom:6px; }
.ld-stat-card-value { font-size:24px; font-weight:800; color:var(--color-primary); }
.ld-stat-card-label {
    font-size:11px; font-weight:700; color:var(--color-text-muted);
    text-transform:uppercase; letter-spacing:0.06em; margin-top:4px;
}
.ld-quick-facts {
    display:flex; flex-wrap:wrap; gap:8px; margin-top:16px;
    padding-top:16px; border-top:1px solid var(--color-border);
}
.ld-fact-tag {
    display:inline-flex; align-items:center; gap:6px;
    padding:6px 12px; border-radius:20px; font-size:12px; font-weight:600;
    background:var(--color-surface); color:var(--color-text);
    border:1px solid var(--color-border);
}
.ld-fact-tag i { font-size:14px; }
.ld-fact-tag.green { background:#dcfce7; color:#166534; border-color:#bbf7d0; }
.ld-fact-tag.blue { background:#dbeafe; color:#1e40af; border-color:#bfdbfe; }
.ld-fact-tag.amber { background:#fef3c7; color:#92400e; border-color:#fde68a; }
.ld-fact-tag.red { background:#fee2e2; color:#991b1b; border-color:#fecaca; }
.ld-fact-tag.purple { background:#f3e8ff; color:#6b21a8; border-color:#e9d5ff; }
@media (max-width:600px) {
    .ld-header-top { flex-direction:column; }
    .ld-price-hero { text-align:left; }
    .ld-stat-cards { gap:10px; }
    .ld-stat-card { min-width:70px; padding:12px 16px; }
    .ld-title { font-size:22px; }
}

/* ── Cost Breakdown ─────────────────────────────────────────────── */
.ld-cost-card {
    background:linear-gradient(135deg,#f0f9ff,#e0f2fe);
    border-radius:var(--radius-xl); border:1px solid #bae6fd;
    padding:24px; margin-bottom:24px;
}
.ld-cost-card h3 {
    font-size:16px; font-weight:700; margin-bottom:16px;
    display:flex; align-items:center; gap:8px; color:var(--color-text);
}
.ld-cost-card h3 i { color:#0284c7; }
.ld-cost-row {
    display:flex; justify-content:space-between; align-items:center;
    padding:10px 0; font-size:14px;
    border-bottom:1px solid rgba(186,230,253,0.5);
}
.ld-cost-row:last-child { border-bottom:none; }
.ld-cost-row .label { color:var(--color-text-muted); display:flex; align-items:center; gap:6px; }
.ld-cost-row .value { font-weight:600; color:var(--color-text); }
.ld-cost-total {
    display:flex; justify-content:space-between; align-items:center;
    margin-top:12px; padding-top:12px; border-top:2px solid #0284c7;
    font-size:16px; font-weight:800;
}
.ld-cost-total .value { color:var(--color-primary); font-size:20px; }
.ld-concession-badge {
    display:inline-flex; align-items:center; gap:6px; margin-top:12px;
    padding:8px 14px; background:linear-gradient(135deg,#dcfce7,#bbf7d0);
    border-radius:8px; font-size:13px; font-weight:600; color:#166534;
}
.ld-concession-badge i { color:#16a34a; }

/* ── Description ────────────────────────────────────────────────── */
.ld-description { font-size:15px; line-height:1.8; color:var(--color-text); }
.ld-description.collapsed { max-height:200px; overflow:hidden; position:relative; }
.ld-description.collapsed::after {
    content:''; position:absolute; bottom:0; left:0; right:0; height:60px;
    background:linear-gradient(transparent,#fff);
}
.ld-read-more {
    margin-top:12px; font-size:14px; font-weight:600;
    color:var(--color-primary); cursor:pointer;
    display:inline-flex; align-items:center; gap:4px;
}

/* ── Amenity Grid ───────────────────────────────────────────────── */
.ld-amenity-grid {
    display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:10px;
}
.ld-amenity-chip {
    display:flex; align-items:center; gap:8px;
    padding:10px 14px; background:var(--color-surface);
    border-radius:var(--radius-sm); font-size:13px;
    color:var(--color-text); border:1px solid var(--color-border);
    transition:all 0.2s;
}
.ld-amenity-chip:hover { background:var(--color-primary-bg); color:var(--color-primary); border-color:rgba(59,130,246,0.3); }
.ld-amenity-chip i { font-size:16px; color:var(--color-success); }
.ld-amenity-chip.building i { color:var(--color-primary); }
.ld-amenity-chip.missing {
    opacity:0.4; text-decoration:line-through;
    background:var(--color-surface); color:var(--color-text-muted);
}
.ld-amenity-chip.missing i { color:var(--color-text-light); }

/* ── Map & Location ─────────────────────────────────────────────── */
.ld-map-wrap {
    position:relative; border-radius:var(--radius-lg);
    overflow:hidden; box-shadow:0 4px 15px rgba(0,0,0,0.08);
}
.ld-map { height:400px; width:100%; background:linear-gradient(135deg,#e5e7eb,#f3f4f6); }
@media (max-width:768px) { .ld-map { height:300px; } }
.ld-map-ctrls {
    position:absolute; top:12px; left:12px; display:flex; gap:8px; z-index:10;
}
.ld-map-btn {
    padding:10px 14px; background:#fff; border:none; border-radius:8px;
    font-size:13px; font-weight:600; color:var(--color-text);
    cursor:pointer; box-shadow:0 2px 8px rgba(0,0,0,0.15);
    display:flex; align-items:center; gap:6px; transition:all 0.2s;
}
.ld-map-btn:hover { background:#f3f4f6; }
.ld-map-btn.active { background:var(--color-primary); color:#fff; }
.ld-map-nhood {
    position:absolute; top:12px; right:12px; background:#fff;
    padding:8px 14px; border-radius:20px; font-size:12px; font-weight:600;
    color:var(--color-text); box-shadow:0 2px 8px rgba(0,0,0,0.15);
    display:flex; align-items:center; gap:6px;
}
.ld-map-nhood i { color:var(--color-primary); }
.ld-score-dials {
    display:flex; gap:24px; justify-content:center;
    margin-top:24px; padding-top:20px; border-top:1px solid var(--color-border);
}
.ld-score-dial-wrap { text-align:center; }
.ld-commute {
    margin-top:24px; padding:20px; background:var(--color-surface);
    border-radius:var(--radius-lg); border:1px solid var(--color-border);
}
.ld-commute-title {
    font-size:15px; font-weight:700; color:var(--color-text); margin-bottom:14px;
    display:flex; align-items:center; gap:8px;
}
.ld-commute-title i { color:var(--color-primary); font-size:18px; }
.ld-commute-input { display:flex; gap:10px; }
@media (max-width:480px) { .ld-commute-input { flex-direction:column; } }
.ld-commute-input input {
    flex:1; padding:14px 18px; border:2px solid var(--color-border);
    border-radius:10px; font-size:14px; background:#fff; transition:border-color 0.2s;
}
.ld-commute-input input:focus { outline:none; border-color:var(--color-primary); }
.ld-commute-input button {
    padding:14px 24px; background:var(--color-primary); color:#fff;
    border:none; border-radius:10px; font-weight:600; cursor:pointer;
    display:flex; align-items:center; gap:8px; transition:transform 0.2s,box-shadow 0.2s;
}
.ld-commute-input button:hover { transform:translateY(-1px); box-shadow:0 4px 12px rgba(59,130,246,0.3); }
.ld-commute-modes {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(90px,1fr));
    gap:12px; margin-top:18px;
}
.ld-commute-mode {
    text-align:center; padding:16px 12px; background:#fff;
    border-radius:12px; border:1px solid var(--color-border); transition:all 0.2s;
}
.ld-commute-mode:hover { border-color:var(--color-primary); box-shadow:0 4px 12px rgba(59,130,246,0.1); }
.ld-commute-mode-icon {
    width:44px; height:44px; margin:0 auto 10px;
    background:linear-gradient(135deg,rgba(59,130,246,0.1),rgba(59,130,246,0.05));
    border-radius:12px; display:flex; align-items:center; justify-content:center;
}
.ld-commute-mode-icon i { font-size:22px; color:var(--color-primary); }
.ld-commute-mode-time { font-size:18px; font-weight:700; color:var(--color-text); }
.ld-commute-mode-label { font-size:11px; color:var(--color-text-muted); text-transform:uppercase; letter-spacing:0.5px; margin-top:2px; }

/* ── Sidebar ────────────────────────────────────────────────────── */
.ld-sidebar { position:sticky; top:130px; }
@media (max-width:1100px) { .ld-sidebar { position:static; } }

/* ── Agent Card ─────────────────────────────────────────────────── */
.ld-agent {
    background:#fff; border-radius:var(--radius-xl);
    box-shadow:0 8px 32px rgba(0,0,0,0.1); overflow:hidden;
    margin-bottom:20px; border:1px solid rgba(0,0,0,0.04);
}
.ld-agent-header {
    background:linear-gradient(135deg,var(--color-primary),#6366f1,#8b5cf6);
    padding:32px 24px; text-align:center; color:#fff;
    position:relative; overflow:hidden;
}
.ld-agent-header::before {
    content:''; position:absolute; inset:0;
    background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") repeat;
}
.ld-agent-avatar {
    width:80px; height:80px; border-radius:50%;
    border:4px solid rgba(255,255,255,0.3); object-fit:cover; margin-bottom:12px;
}
.ld-agent-avatar-placeholder {
    width:80px; height:80px; border-radius:50%;
    background:rgba(255,255,255,0.2); display:inline-flex;
    align-items:center; justify-content:center;
    font-size:24px; font-weight:700; margin-bottom:12px;
}
.ld-agent-name { font-size:18px; font-weight:700; position:relative; }
.ld-agent-company { font-size:13px; opacity:0.85; margin-top:4px; position:relative; }
.ld-agent-meta { font-size:12px; opacity:0.75; margin-top:8px; position:relative; }
.ld-agent-body { padding:24px; }
.ld-agent-cta { display:flex; flex-direction:column; gap:10px; }
.ld-agent-phone {
    display:flex; align-items:center; justify-content:center; gap:8px;
    margin-top:16px; padding:14px; background:var(--color-surface);
    border-radius:var(--radius-sm); font-size:15px; font-weight:600;
    color:var(--color-text); text-decoration:none;
}
.ld-agent-phone i { color:var(--color-success); }
.ld-btn {
    padding:14px 24px; border-radius:var(--radius-sm); font-size:14px;
    font-weight:600; cursor:pointer; display:flex; align-items:center;
    justify-content:center; gap:8px; transition:all 0.2s; border:none;
    text-decoration:none;
}
.ld-btn-primary {
    background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));
    color:#fff; box-shadow:0 4px 14px rgba(59,130,246,0.35);
    position:relative; overflow:hidden;
}
.ld-btn-primary::after {
    content:''; position:absolute; inset:0;
    background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,0.15) 50%,transparent 60%);
    transform:translateX(-100%); transition:transform 0.6s;
}
.ld-btn-primary:hover::after { transform:translateX(100%); }
.ld-btn-primary:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(59,130,246,0.45); }
.ld-btn-secondary {
    background:var(--color-surface); color:var(--color-text);
    border:1px solid var(--color-border);
}
.ld-btn-secondary:hover { background:#e2e8f0; }
.ld-btn-success {
    background:linear-gradient(135deg,#10b981,#059669); color:#fff;
}

/* ── Inquiry Form ───────────────────────────────────────────────── */
.ld-inquiry {
    background:#fff; border-radius:var(--radius-xl);
    box-shadow:0 4px 24px rgba(0,0,0,0.06); padding:24px;
    margin-bottom:20px; border:1px solid rgba(0,0,0,0.04);
    position:relative;
}
.ld-inquiry::before {
    content:''; position:absolute; top:0; left:0; right:0; height:3px;
    background:linear-gradient(90deg,var(--color-primary),var(--color-success));
    border-radius:20px 20px 0 0;
}
.ld-inquiry h4 {
    font-size:16px; font-weight:700; margin-bottom:16px;
    display:flex; align-items:center; gap:8px;
}
.ld-inquiry h4 i { color:var(--color-primary); }
.ld-form-group { margin-bottom:14px; }
.ld-form-group input,.ld-form-group textarea,.ld-form-group select {
    width:100%; padding:12px 14px; border:1px solid var(--color-border);
    border-radius:var(--radius-sm); font-size:14px; transition:border-color 0.2s;
    font-family:inherit;
}
.ld-form-group input:focus,.ld-form-group textarea:focus,.ld-form-group select:focus {
    outline:none; border-color:var(--color-primary);
}
.ld-form-group textarea { resize:vertical; min-height:80px; }
.ld-form-row { display:flex; gap:12px; }
.ld-form-row .ld-form-group { flex:1; }
.ld-msg-templates { margin-bottom:14px; }
.ld-msg-templates select {
    width:100%; padding:10px 14px; border:1px solid var(--color-border);
    border-radius:var(--radius-sm); font-size:13px; color:var(--color-text-muted);
    background:#fff; cursor:pointer; font-family:inherit;
}

/* ── Nearby Places ──────────────────────────────────────────────── */
.ld-nearby {
    background:#fff; border-radius:var(--radius-xl);
    box-shadow:0 4px 24px rgba(0,0,0,0.06); padding:24px;
    margin-bottom:20px; border:1px solid rgba(0,0,0,0.04);
}
.ld-nearby h4 {
    font-size:16px; font-weight:700; margin-bottom:16px;
    display:flex; align-items:center; gap:8px;
}
.ld-nearby h4 i { color:var(--color-primary); }
.ld-nearby-grid {
    display:flex; flex-direction:column; gap:10px;
    max-height:350px; overflow-y:auto;
}
.ld-nearby-item {
    display:flex; align-items:center; gap:12px; padding:14px;
    background:var(--color-surface); border-radius:var(--radius-sm);
    transition:all 0.2s; border:1px solid transparent;
}
.ld-nearby-item:hover { background:#f8fafc; transform:translateX(4px); border-color:var(--color-border); }
.ld-nearby-icon {
    width:44px; height:44px; border-radius:12px;
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.ld-nearby-icon i { font-size:22px; color:#fff; }
.ld-nearby-info { flex:1; min-width:0; }
.ld-nearby-type {
    font-size:11px; font-weight:600; text-transform:uppercase;
    letter-spacing:0.5px; color:var(--color-text-muted); margin-bottom:2px;
}
.ld-nearby-name {
    font-size:14px; font-weight:600; color:var(--color-text);
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.ld-nearby-distance { text-align:right; flex-shrink:0; }
.ld-nearby-meters { font-size:16px; font-weight:700; color:var(--color-primary); }
.ld-nearby-walk {
    display:flex; align-items:center; justify-content:flex-end;
    gap:4px; font-size:11px; font-weight:500; color:var(--color-text-muted); margin-top:4px;
}

/* ── Price History Chart ────────────────────────────────────────── */
.ld-price-chart { height:200px; margin-bottom:20px; }
.ld-price-timeline { position:relative; padding-left:24px; }
.ld-price-timeline::before {
    content:''; position:absolute; left:8px; top:0; bottom:0;
    width:2px; background:var(--color-border);
}
.ld-price-event {
    position:relative; padding:12px 0;
    display:flex; justify-content:space-between; align-items:center;
}
.ld-price-event::before {
    content:''; position:absolute; left:-20px; top:50%;
    transform:translateY(-50%); width:10px; height:10px;
    border-radius:50%; background:var(--color-primary);
    border:2px solid #fff; box-shadow:0 0 0 2px var(--color-primary);
}
.ld-price-event-date { font-size:13px; color:var(--color-text-muted); }
.ld-price-event-amount { font-size:15px; font-weight:700; color:var(--color-text); }
.ld-price-event-change { font-size:12px; font-weight:600; margin-left:8px; }
.ld-price-event-change.down { color:var(--color-success); }
.ld-price-event-change.up { color:#ef4444; }

/* ── Other Units ────────────────────────────────────────────────── */
.ld-other-units {
    display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px;
}
.ld-other-unit {
    display:flex; align-items:center; gap:14px; padding:14px;
    background:var(--color-surface); border:1px solid var(--color-border);
    border-radius:var(--radius-sm); text-decoration:none; color:inherit;
    transition:all 0.2s;
}
.ld-other-unit:hover { border-color:var(--color-primary); box-shadow:0 4px 12px rgba(59,130,246,0.12); transform:translateY(-2px); }
.ld-other-unit-icon {
    width:48px; height:48px;
    background:linear-gradient(135deg,var(--color-primary),#6366f1);
    border-radius:12px; display:flex; align-items:center;
    justify-content:center; flex-shrink:0;
}
.ld-other-unit-icon i { color:#fff; font-size:22px; }

/* ── Lightbox ───────────────────────────────────────────────────── */
.ld-lightbox {
    position:fixed; inset:0; background:rgba(0,0,0,0.95);
    z-index:10000; display:none; flex-direction:column;
    align-items:center; justify-content:center;
}
.ld-lightbox.active { display:flex; }
.ld-lightbox-close {
    position:absolute; top:20px; right:24px;
    width:48px; height:48px; background:rgba(255,255,255,0.1);
    border:none; border-radius:50%; color:#fff; font-size:24px;
    cursor:pointer; display:flex; align-items:center; justify-content:center;
    z-index:2;
}
.ld-lightbox-main { width:90vw; max-height:75vh; position:relative; }
.ld-lightbox-main .swiper-slide img {
    width:100%; max-height:75vh; object-fit:contain;
    border-radius:var(--radius-lg);
}
.ld-lightbox-counter {
    position:absolute; bottom:20px; left:50%; transform:translateX(-50%);
    color:#fff; font-size:14px; font-weight:600;
    background:rgba(0,0,0,0.5); padding:8px 16px; border-radius:20px;
}
.ld-lightbox-thumbs {
    display:flex; gap:8px; max-width:80vw; overflow-x:auto;
    padding:16px 8px; margin-top:16px;
}
.ld-lightbox-thumb {
    width:60px; height:45px; border-radius:6px;
    overflow:hidden; cursor:pointer; opacity:0.5;
    transition:opacity 0.2s; flex-shrink:0; border:2px solid transparent;
}
.ld-lightbox-thumb.active,.ld-lightbox-thumb:hover { opacity:1; border-color:var(--color-primary); }
.ld-lightbox-thumb img { width:100%; height:100%; object-fit:cover; }

/* ── Floating Mobile CTA ───────────────────────────────────────── */
.ld-floating-cta {
    position:fixed; bottom:0; left:0; right:0;
    background:rgba(255,255,255,0.98); backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    padding:12px 16px; box-shadow:0 -4px 20px rgba(0,0,0,0.1);
    display:none; z-index:1000; border-top:1px solid var(--color-border);
}
.ld-floating-inner {
    display:flex; align-items:center; gap:12px;
    max-width:500px; margin:0 auto;
}
.ld-floating-price {
    font-size:18px; font-weight:800; color:var(--color-text); white-space:nowrap;
}
.ld-floating-price small { font-size:12px; font-weight:500; color:var(--color-text-muted); }
.ld-floating-btns { display:flex; gap:8px; flex:1; }
.ld-floating-btns .ld-btn { flex:1; padding:12px 16px; font-size:14px; font-weight:700; }
@media (max-width:768px) {
    .ld-floating-cta { display:block; }
    .ld-page { padding-bottom:80px; }
}

/* ── Leaflet overrides ──────────────────────────────────────────── */
.custom-map-marker { background:transparent !important; border:none !important; }
.leaflet-popup-content-wrapper { border-radius:12px !important; box-shadow:0 4px 20px rgba(0,0,0,0.15) !important; }
.leaflet-popup-content { margin:0 !important; }
.pac-container { border-radius:12px; border:none; box-shadow:0 4px 20px rgba(0,0,0,0.15); margin-top:4px; font-family:inherit; z-index:10000; }
.pac-item { padding:10px 14px; cursor:pointer; border-top:1px solid #f1f5f9; font-size:14px; }
.pac-item:first-child { border-top:none; }
.pac-item:hover,.pac-item-selected { background:#f8fafc; }
.pac-item-query { font-weight:600; color:#1e293b; }
.pac-matched { font-weight:700; }
@keyframes spin { to { transform:rotate(360deg); } }

/* ═══════════════════════════════════════════════════════════════════
   NEIGHBORHOODS PAGE (.nb-*)
   ═══════════════════════════════════════════════════════════════════ */
.nb-page { padding:100px 0 60px; min-height:100vh; background:linear-gradient(180deg,#f0f4f8 0%,#fafbfc 300px,#fff 600px); }
@keyframes nbFadeUp { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }

/* Hero */
.nb-hero {
    position:relative; padding:64px 0 48px; margin-bottom:36px;
    animation:nbFadeUp 0.5s ease-out;
}
.nb-hero-badge {
    display:inline-flex; align-items:center; gap:6px; padding:6px 16px;
    border-radius:var(--radius-full); background:var(--color-primary-bg);
    font-size:12px; font-weight:700; color:var(--color-primary-dark);
    letter-spacing:0.5px; text-transform:uppercase; margin-bottom:16px;
}
.nb-hero-badge i { font-size:14px; }
.nb-hero h1 {
    font-size:clamp(28px,4vw,42px); font-weight:900; letter-spacing:-0.5px;
    margin-bottom:12px; line-height:1.1;
}
.nb-hero h1 span {
    background:linear-gradient(135deg,var(--color-primary),var(--color-accent));
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.nb-hero p {
    font-size:16px; color:var(--color-text-muted); max-width:520px; line-height:1.7;
    margin-bottom:24px;
}
.nb-search {
    display:flex; max-width:480px; background:#fff; border:2px solid var(--color-border);
    border-radius:var(--radius-full); overflow:hidden; transition:border-color 0.2s;
}
.nb-search:focus-within { border-color:var(--color-primary); box-shadow:0 0 0 4px rgba(59,130,246,0.1); }
.nb-search input {
    flex:1; border:none; padding:14px 20px; font-size:15px; background:transparent;
    outline:none; font-family:inherit;
}
.nb-search button {
    display:flex; align-items:center; gap:6px; padding:0 24px; background:var(--color-primary);
    color:#fff; border:none; font-weight:600; font-size:14px; cursor:pointer;
    transition:background 0.2s;
}
.nb-search button:hover { background:var(--color-primary-dark); }

/* Borough Tabs */
.nb-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:28px; }
.nb-tab-count { opacity:0.6; margin-left:3px; }

/* Map Card */
.nb-map-card {
    background:var(--glass-bg); backdrop-filter:var(--glass-blur);
    border:1px solid var(--glass-border); border-radius:var(--radius-xl);
    box-shadow:var(--shadow-md); overflow:hidden; margin-bottom:32px;
}
.nb-map { width:100%; height:420px; background:var(--color-surface); }

/* Neighborhoods Grid */
.nb-grid {
    display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
    gap:24px; margin-bottom:48px;
}

/* Empty State */
.nb-empty {
    grid-column:1/-1; text-align:center; padding:80px 20px;
}
.nb-empty-icon {
    width:72px; height:72px; border-radius:var(--radius-lg);
    background:var(--color-surface); display:inline-flex;
    align-items:center; justify-content:center; margin-bottom:20px;
}
.nb-empty-icon i { font-size:32px; color:var(--color-text-light); }
.nb-empty h3 { font-size:20px; font-weight:700; margin-bottom:8px; }
.nb-empty p { font-size:14px; color:var(--color-text-muted); max-width:400px; margin:0 auto; }

/* Bottom CTA Banner */
.nb-cta-banner {
    background:#fff; border:1px solid rgba(0,0,0,0.04); border-radius:24px;
    box-shadow:0 8px 40px rgba(0,0,0,0.06); overflow:hidden; margin-bottom:48px;
}
.nb-cta-inner {
    padding:56px; background:linear-gradient(135deg,rgba(59,130,246,0.06),rgba(99,102,241,0.04));
    text-align:center; position:relative;
}
.nb-cta-inner::before {
    content:''; position:absolute; top:0; left:0; right:0; height:4px;
    background:linear-gradient(90deg,var(--color-primary),var(--color-accent));
}
.nb-cta-inner h2 { font-size:24px; font-weight:800; margin-bottom:10px; }
.nb-cta-inner p {
    font-size:15px; color:var(--color-text-muted); margin-bottom:24px;
    max-width:500px; margin-left:auto; margin-right:auto; line-height:1.7;
}
.nb-cta-btns { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

@media (max-width:768px) { .nb-grid { grid-template-columns:1fr; } }
@media (max-width:640px) {
    .nb-hero { padding:36px 0 24px; }
    .nb-map { height:300px; }
    .nb-cta-inner { padding:32px 24px; }
}

/* ═══════════════════════════════════════════════════════════════════
   TOUR BOOKING PAGE (.tour-*)
   ═══════════════════════════════════════════════════════════════════ */
.tour-page { padding-top:80px; }

/* Header Banner */
.tour-banner {
    background:linear-gradient(135deg,var(--color-primary) 0%,#2563eb 50%,#1d4ed8 100%);
    border-radius:var(--radius-2xl); padding:36px 48px; margin-bottom:28px;
    position:relative; overflow:hidden;
    box-shadow:0 20px 50px rgba(37,99,235,0.25); color:#fff;
}
.tour-banner::before {
    content:''; position:absolute; inset:0;
    background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.tour-banner::after {
    content:''; position:absolute; top:-50%; right:-20%; width:60%; height:200%;
    background:radial-gradient(circle,rgba(255,255,255,0.1) 0%,transparent 60%); pointer-events:none;
}
.tour-banner-inner { position:relative; z-index:1; display:flex; gap:24px; align-items:flex-start; }
.tour-banner-thumb {
    width:120px; height:90px; border-radius:var(--radius-md); overflow:hidden;
    flex-shrink:0; border:2px solid rgba(255,255,255,0.3);
}
.tour-banner-thumb img { width:100%; height:100%; object-fit:cover; }
.tour-banner-info { flex:1; }
.tour-banner-title { font-size:28px; font-weight:800; color:#fff; margin-bottom:6px; }
.tour-banner-meta { display:flex; gap:12px; margin-top:12px; flex-wrap:wrap; }
.tour-banner-tag {
    display:inline-flex; align-items:center; gap:6px; padding:5px 14px;
    background:rgba(255,255,255,0.15); border-radius:var(--radius-full);
    font-size:13px; font-weight:600; color:#fff;
}

/* Layout Grid */
.tour-grid {
    display:grid; grid-template-columns:1fr 380px; gap:28px; padding-bottom:60px;
}

/* Calendar Card */
.cal-card {
    background:var(--glass-bg); backdrop-filter:var(--glass-blur);
    border:1px solid var(--glass-border); border-radius:var(--radius-xl);
    box-shadow:var(--shadow-md); overflow:hidden;
}
.cal-card-header {
    padding:20px 24px; border-bottom:1px solid var(--color-border-light);
    display:flex; align-items:center; justify-content:space-between;
}
.cal-card-header h3 { font-size:16px; font-weight:700; }
.cal-card-body { padding:24px; }

/* Calendar Nav */
.cal-nav-btn {
    width:36px; height:36px; display:flex; align-items:center; justify-content:center;
    border:1px solid var(--color-border); border-radius:var(--radius-sm);
    background:#fff; cursor:pointer; transition:all 0.2s;
    font-size:16px; color:var(--color-text-muted);
}
.cal-nav-btn:hover { border-color:var(--color-primary); color:var(--color-primary); background:var(--color-primary-bg); }
.cal-month-text { font-size:16px; font-weight:700; }

/* Calendar Weekdays */
.cal-weekdays { display:grid; grid-template-columns:repeat(7,1fr); margin-bottom:4px; }
.cal-weekday {
    text-align:center; font-size:11px; font-weight:700; text-transform:uppercase;
    letter-spacing:0.5px; color:var(--color-text-muted); padding:8px 0;
}

/* Calendar Grid */
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.cal-cell {
    min-height:72px; padding:8px; border-radius:var(--radius-sm);
    background:var(--color-surface); transition:all 0.2s; border:2px solid transparent;
}
.cal-cell.faded { opacity:0.35; }
.cal-cell.clickable { cursor:pointer; }
.cal-cell.clickable:hover { background:var(--color-primary-bg); border-color:var(--color-primary-bg); }
.cal-cell.today { border-color:var(--color-primary); }
.cal-cell.selected {
    background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));
    color:#fff; border-color:var(--color-primary);
}
.cal-cell.selected .cal-day { color:#fff; }
.cal-cell.selected .cal-slots-text { color:rgba(255,255,255,0.7); }
/* Availability heat colors */
.cal-cell.avail-low { background:rgba(59,130,246,0.06); }
.cal-cell.avail-med { background:rgba(59,130,246,0.12); }
.cal-cell.avail-high { background:rgba(59,130,246,0.2); }
.cal-day { font-size:14px; font-weight:600; color:var(--color-text); }
.cal-slots-text { font-size:11px; color:var(--color-text-muted); margin-top:4px; }
.cal-best-badge {
    display:inline-flex; font-size:10px; color:#f59e0b; margin-top:2px;
}

/* Time Slots */
.slots-section { margin-top:24px; }
.slots-group-label {
    font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0.5px;
    color:var(--color-text-muted); margin:16px 0 8px; display:flex; align-items:center; gap:6px;
}
.slots-group-label:first-child { margin-top:0; }
.slots-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:8px; }
.slot-btn {
    padding:10px; text-align:center; font-size:14px; font-weight:600;
    border:1px solid var(--color-border); border-radius:var(--radius-sm);
    background:#fff; cursor:pointer; transition:all 0.2s;
    font-family:var(--font-body); color:var(--color-text-secondary);
}
.slot-btn:hover { border-color:var(--color-primary); color:var(--color-primary); background:var(--color-primary-bg); }
.slot-btn.active {
    background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));
    color:#fff; border-color:var(--color-primary); box-shadow:var(--shadow-btn);
}

/* Tour Type Selector */
.tour-type-selector { display:flex; gap:8px; margin-bottom:20px; }
.tour-type-btn {
    flex:1; padding:14px 10px; text-align:center; border:2px solid var(--color-border);
    border-radius:var(--radius-md); background:#fff; cursor:pointer;
    transition:all 0.2s; font-family:inherit;
}
.tour-type-btn:hover { border-color:var(--color-primary); background:var(--color-primary-bg); }
.tour-type-btn.active { border-color:var(--color-primary); background:var(--color-primary-bg); }
.tour-type-btn i { display:block; font-size:24px; margin-bottom:6px; color:var(--color-primary); }
.tour-type-btn span { font-size:12px; font-weight:700; }

/* Form Card */
.form-card {
    background:var(--glass-bg); backdrop-filter:var(--glass-blur);
    border:1px solid var(--glass-border); border-radius:var(--radius-xl);
    box-shadow:var(--shadow-md); overflow:hidden; position:sticky; top:80px;
}
.form-card-header {
    padding:20px 24px; border-bottom:1px solid var(--color-border-light);
}
.form-card-header h3 {
    font-size:16px; font-weight:700; display:flex; align-items:center; gap:10px;
}
.form-card-header i { color:var(--color-primary); }
.form-card-body { padding:24px; }
.form-group { margin-bottom:16px; }

/* Summary Box */
.confirm-box {
    background:var(--color-surface); padding:16px; border-radius:var(--radius-md);
    margin-top:16px; border:1px solid var(--color-border-light);
}
.confirm-label {
    font-size:11px; font-weight:700; text-transform:uppercase;
    letter-spacing:0.5px; color:var(--color-text-muted); margin-bottom:4px;
}

@media (max-width:1024px) { .tour-grid { grid-template-columns:1fr; } }
@media (max-width:768px) {
    .tour-banner { padding:28px 24px; border-radius:var(--radius-xl); }
    .tour-banner-title { font-size:22px; }
    .tour-banner-inner { flex-direction:column; }
    .tour-banner-thumb { width:100%; height:160px; }
    .tour-type-selector { flex-wrap:wrap; }
    .tour-type-btn { min-width:calc(50% - 4px); }
}

/* ═══════════════════════════════════════════════════════════════════
   TOUR CONFIRMATION PAGE (.tc-*)
   ═══════════════════════════════════════════════════════════════════ */
.tc-page { padding-top:80px; min-height:100vh; }

/* Success Animation */
.tc-success-icon {
    width:100px; height:100px; margin:0 auto 24px; position:relative;
}
.tc-check-svg { width:100px; height:100px; }
.tc-check-circle {
    stroke:#10b981; stroke-width:3; fill:none;
    stroke-dasharray:166; stroke-dashoffset:166;
    animation:tc-circle-draw 0.6s ease-out forwards;
}
.tc-check-mark {
    stroke:#10b981; stroke-width:3; fill:none;
    stroke-dasharray:48; stroke-dashoffset:48; stroke-linecap:round; stroke-linejoin:round;
    animation:tc-check-draw 0.3s ease-out 0.6s forwards;
}
@keyframes tc-circle-draw { to { stroke-dashoffset:0; } }
@keyframes tc-check-draw { to { stroke-dashoffset:0; } }

/* Confetti */
.tc-confetti { position:relative; overflow:hidden; }
.tc-confetti::before,.tc-confetti::after {
    content:'🎉'; position:absolute; top:-20px; font-size:24px;
    animation:tc-confetti-fall 2s ease-in forwards;
}
.tc-confetti::before { left:20%; animation-delay:0.3s; }
.tc-confetti::after { right:20%; content:'🎊'; animation-delay:0.6s; }
@keyframes tc-confetti-fall { to { top:100%; opacity:0; } }

/* Boarding Pass Card */
.tc-boarding-pass {
    background:#fff; border-radius:var(--radius-xl); overflow:hidden;
    box-shadow:var(--shadow-lg); max-width:700px; margin:0 auto 32px;
    border:1px solid var(--color-border);
}
.tc-bp-header {
    background:linear-gradient(135deg,var(--color-primary),#1d4ed8);
    padding:16px 24px; color:#fff; text-align:center;
    font-size:13px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase;
}
.tc-bp-body {
    display:grid; grid-template-columns:1fr 2px 1fr; gap:0;
}
.tc-bp-left { padding:24px; }
.tc-bp-divider {
    background:repeating-linear-gradient(to bottom,var(--color-border) 0,var(--color-border) 6px,transparent 6px,transparent 12px);
    position:relative;
}
.tc-bp-divider::before,.tc-bp-divider::after {
    content:''; position:absolute; left:50%; transform:translateX(-50%);
    width:20px; height:20px; border-radius:50%; background:var(--color-surface-alt);
}
.tc-bp-divider::before { top:-10px; }
.tc-bp-divider::after { bottom:-10px; }
.tc-bp-right { padding:24px; }
.tc-bp-photo { width:100%; height:160px; border-radius:var(--radius-md); object-fit:cover; margin-bottom:16px; }
.tc-bp-title { font-size:18px; font-weight:800; margin-bottom:4px; }
.tc-bp-address { font-size:13px; color:var(--color-text-muted); display:flex; align-items:center; gap:4px; }
.tc-bp-detail { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.tc-bp-detail-icon {
    width:36px; height:36px; border-radius:10px; background:var(--color-primary-bg);
    display:flex; align-items:center; justify-content:center; color:var(--color-primary);
    font-size:16px; flex-shrink:0;
}
.tc-bp-detail-label { font-size:11px; font-weight:700; text-transform:uppercase; color:var(--color-text-muted); letter-spacing:0.5px; }
.tc-bp-detail-value { font-size:15px; font-weight:700; }
.tc-bp-ref {
    margin-top:16px; padding:12px; background:var(--color-surface);
    border-radius:var(--radius-sm); text-align:center;
}
.tc-bp-ref-label { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--color-text-muted); }
.tc-bp-ref-value { font-size:18px; font-weight:800; font-family:'Courier New',monospace; letter-spacing:2px; margin-top:4px; }
.tc-bp-countdown {
    text-align:center; margin-top:12px; padding:10px;
    background:rgba(245,158,11,0.08); border-radius:var(--radius-sm);
    font-size:14px; font-weight:700; color:#f59e0b;
}

/* Map */
.tc-map-card {
    background:#fff; border-radius:var(--radius-xl); overflow:hidden;
    box-shadow:var(--shadow-md); max-width:700px; margin:0 auto 32px;
    border:1px solid var(--color-border);
}
.tc-map { width:100%; height:280px; }
.tc-map-footer { padding:16px 24px; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }

/* Checklist */
.tc-checklist {
    background:#fff; border-radius:var(--radius-xl); overflow:hidden;
    box-shadow:var(--shadow-md); max-width:700px; margin:0 auto 32px;
    border:1px solid var(--color-border);
}
.tc-checklist-header { padding:20px 24px; border-bottom:1px solid var(--color-border-light); }
.tc-checklist-header h3 { font-size:16px; font-weight:700; display:flex; align-items:center; gap:8px; }
.tc-checklist-body { padding:16px 24px; }
.tc-check-item {
    display:flex; align-items:center; gap:12px; padding:12px 0;
    border-bottom:1px solid var(--color-border-light); cursor:pointer;
}
.tc-check-item:last-child { border-bottom:none; }
.tc-check-box {
    width:22px; height:22px; border:2px solid var(--color-border);
    border-radius:6px; display:flex; align-items:center; justify-content:center;
    transition:all 0.2s; flex-shrink:0;
}
.tc-check-item.checked .tc-check-box {
    background:var(--color-primary); border-color:var(--color-primary);
}
.tc-check-item.checked .tc-check-box i { color:#fff; font-size:12px; }
.tc-check-text { font-size:14px; font-weight:500; }
.tc-check-item.checked .tc-check-text { text-decoration:line-through; color:var(--color-text-muted); }

/* Actions */
.tc-actions {
    display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
    gap:12px; max-width:700px; margin:0 auto 48px;
}

@media (max-width:768px) {
    .tc-bp-body { grid-template-columns:1fr; }
    .tc-bp-divider { display:none; }
    .tc-actions { grid-template-columns:1fr 1fr; }
}
@media (max-width:480px) { .tc-actions { grid-template-columns:1fr; } }

/* ── Print ──────────────────────────────────────────────────────── */
@media print {
    .pub-navbar,.pub-footer,.ld-sidebar,.ld-floating-cta,
    .ld-sticky-nav,.ld-lightbox,.pub-mobile-bottom { display:none !important; }
    .ld-page { padding-top:0; }
    .ld-grid { grid-template-columns:1fr; }
    .ld-mosaic { grid-template-rows:300px; }
    .ld-mosaic-side1,.ld-mosaic-side2,.ld-mosaic-bot1,.ld-mosaic-bot2 { display:none; }
    .ld-card { box-shadow:none; border:1px solid #ddd; break-inside:avoid; }
}

/* ═══════════════════════════════════════════════════════════════════
   EMPTY STATE
═══════════════════════════════════════════════════════════════════ */
.empty-state { text-align:center; padding:60px 20px; }
.empty-state-icon { margin-bottom:20px; }
.empty-state-title { font-size:20px; font-weight:700; margin-bottom:8px; color:var(--color-text); }
.empty-state-sub { font-size:15px; color:var(--color-text-muted); margin-bottom:24px; max-width:400px; margin-left:auto; margin-right:auto; line-height:1.6; }
.empty-state-suggestions { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
