/* Vanausse UI enhancements */
.map-legend { display:flex; flex-wrap:wrap; gap:.5rem 1rem; justify-content:center; max-width:1280px; margin:0 auto 1rem; padding:0 1rem; }
.map-legend span { display:inline-flex; align-items:center; gap:6px; font-size:.85rem; color:#555; }
.map-legend i { width:14px; height:14px; border-radius:50%; border:2px solid; display:inline-block; }
.legend-available i { background:#A4C3B2; border-color:#3A5F56; }
.legend-reserved i { background:#fff3cd; border-color:#e0a030; }
.legend-sold i { background:#ffcccc; border-color:#c62828; }
.legend-building i { background:#e3f2fd; border-color:#1565c0; }

.properties-toolbar { max-width:1280px; margin:1.5rem auto .5rem; padding:0 1rem; display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; }
.properties-toolbar label { font-size:.85rem; color:#555; font-weight:500; }
.properties-toolbar select { padding:.5rem .75rem; border:1px solid #ddd; border-radius:8px; font-family:inherit; font-size:.9rem; background:white; }
.properties-toolbar .share-btn { margin-left:auto; padding:.5rem 1rem; background:var(--primary); color:white; border:none; border-radius:8px; cursor:pointer; font-size:.85rem; font-weight:600; }
.properties-toolbar .share-btn:hover { opacity:.9; }

.mobile-plot-list { display:none; max-width:1280px; margin:0 auto 1rem; padding:0 1rem; }
.mobile-plot-list button { width:100%; text-align:left; padding:.85rem 1rem; margin-bottom:.5rem; border:1px solid #e0e0e0; border-radius:10px; background:white; cursor:pointer; font-family:inherit; display:flex; justify-content:space-between; align-items:center; }
.mobile-plot-list button:active { background:#f0f7f2; }
.mobile-plot-list .mp-id { font-weight:700; color:var(--primary); width:28px; }
.mobile-plot-list .mp-addr { flex:1; margin:0 .75rem; font-size:.9rem; }
.mobile-plot-list .mp-badge { font-size:.75rem; padding:3px 8px; border-radius:12px; font-weight:600; }

.property-panel-overlay { position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:2500; display:none; align-items:flex-end; justify-content:center; padding:0; }
.property-panel-overlay.open { display:flex; }
@media (min-width:769px) { .property-panel-overlay { align-items:center; padding:1rem; } }
.property-panel { background:white; width:100%; max-width:480px; max-height:85vh; overflow-y:auto; border-radius:16px 16px 0 0; box-shadow:0 -8px 32px rgba(0,0,0,.2); }
@media (min-width:769px) { .property-panel { border-radius:16px; max-height:90vh; } }
.property-panel-header { padding:1.25rem 1.5rem; border-bottom:1px solid #eee; display:flex; justify-content:space-between; align-items:flex-start; }
.property-panel-header h2 { margin:0; font-size:1.2rem; color:var(--primary); }
.property-panel-header .pp-meta { font-size:.85rem; color:#666; margin-top:.35rem; }
.property-panel-body { padding:1.25rem 1.5rem; }
.property-panel-body .pp-row { display:flex; justify-content:space-between; padding:.5rem 0; border-bottom:1px solid #f0f0f0; font-size:.95rem; }
.property-panel-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.25rem; }
.property-panel-actions a, .property-panel-actions button { flex:1; min-width:120px; display:inline-flex; align-items:center; justify-content:center; gap:.4rem; padding:.75rem 1rem; border-radius:10px; font-weight:600; font-size:.9rem; text-decoration:none; cursor:pointer; border:none; font-family:inherit; }
.pp-btn-call { background:var(--primary); color:white; }
.pp-btn-mail { background:var(--light); color:var(--primary); border:1px solid var(--accent)!important; }
.pp-btn-building { background:#e3f2fd; color:#1565c0; width:100%; }
.pp-btn-share { background:#f5f5f5; color:#333; }

.gallery-carousel { position:relative; margin:1rem 0; }
.gallery-carousel .gc-main { width:100%; height:220px; object-fit:cover; border-radius:12px; }
.gallery-carousel .gc-nav { position:absolute; top:50%; transform:translateY(-50%); background:rgba(0,0,0,.5); color:white; border:none; width:36px; height:36px; border-radius:50%; cursor:pointer; }
.gallery-carousel .gc-prev { left:8px; }
.gallery-carousel .gc-next { right:8px; }
.gallery-carousel .gc-dots { text-align:center; margin-top:.5rem; }
.gallery-carousel .gc-dots span { display:inline-block; width:8px; height:8px; border-radius:50%; background:#ccc; margin:0 3px; cursor:pointer; }
.gallery-carousel .gc-dots span.active { background:var(--primary); }

.maintenance-cta-box { max-width:720px; margin:0 auto 1.5rem; padding:0 1.5rem; text-align:center; }
.maintenance-cta-box p { color:#555; margin-bottom:1rem; font-size:.95rem; }
.maintenance-cta-box .cta-btn { margin:.25rem; }

.interest-section { max-width:640px; margin:2rem auto 3rem; padding:2rem 1.5rem; background:white; border-radius:16px; box-shadow:0 4px 20px rgba(0,0,0,.06); }
.interest-section h2 { font-size:1.35rem; color:var(--primary); margin-bottom:.5rem; text-align:center; }
.interest-section p { text-align:center; color:#666; font-size:.9rem; margin-bottom:1.25rem; }
.interest-form .form-row { margin-bottom:1rem; }
.interest-form label { display:block; font-size:.85rem; font-weight:500; margin-bottom:.35rem; color:#444; }
.interest-form input, .interest-form select, .interest-form textarea { width:100%; padding:.7rem .85rem; border:1px solid #ddd; border-radius:8px; font-family:inherit; font-size:1rem; }
.interest-form button { width:100%; padding:.85rem; background:var(--primary); color:white; border:none; border-radius:10px; font-weight:700; font-size:1rem; cursor:pointer; margin-top:.5rem; }
.interest-form .form-msg { text-align:center; margin-top:1rem; font-size:.9rem; }
.interest-form .form-msg.ok { color:#2e7d32; }
.interest-form .form-msg.err { color:#c62828; }

.cookie-banner { position:fixed; bottom:0; left:0; right:0; background:#1B2A24; color:rgba(255,255,255,.9); padding:1rem 1.25rem; z-index:4000; display:none; box-shadow:0 -4px 20px rgba(0,0,0,.2); }
.cookie-banner.show { display:block; }
.cookie-banner p { font-size:.85rem; margin:0 0 .75rem; max-width:900px; line-height:1.5; }
.cookie-banner p a { color:var(--accent); text-decoration:underline; }
.cookie-banner .cookie-actions { display:flex; gap:.5rem; flex-wrap:wrap; }
.cookie-banner button { padding:.5rem 1.25rem; border-radius:8px; border:none; font-weight:600; cursor:pointer; font-family:inherit; }
.cookie-accept { background:var(--accent); color:var(--dark); }
.cookie-decline { background:transparent; color:white; border:1px solid rgba(255,255,255,.3)!important; }

@media (max-width:768px) {
  .plot-marker { width:38px; height:38px; min-width:38px; min-height:38px; }
  .mobile-plot-list { display:block; }
  .properties-table tbody tr { cursor:pointer; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-video, .hero-maintenance .hero-video { display:none; }
  .hero, .hero-maintenance { background:var(--primary) url('map-background.jpg') center/cover no-repeat; }
}
