/* ============================================================
   VENTARA LAND GROUP — Complete Design System
   Primary: #2C5F2E (Forest Green) | Gold: #D4AF37
   Typography: Playfair Display + Inter
   ============================================================ */

/* ── Variables ── */
:root {
  --vt-forest: #2C5F2E;
  --vt-forest-dark: #1e4220;
  --vt-gold: #D4AF37;
  --vt-gold-dark: #b8922f;
  --vt-gold-light: #e8c96a;
  --vt-brown: #8B7355;
  --vt-cream: #FAFAF5;
  --vt-paper: #F8F7F2;
  --vt-dark: #1A1A1A;
  --vt-text: #2A2A20;
  --vt-muted: #666655;
  --vt-border: #E0DDD4;
  --vt-shadow: 0 4px 20px rgba(0,0,0,0.08);
  --vt-shadow-lg: 0 8px 40px rgba(0,0,0,0.14);
  --vt-font-serif: 'Playfair Display', Georgia, serif;
  --vt-font-sans: 'Inter', system-ui, sans-serif;
  --vt-radius: 12px;
  --vt-radius-sm: 8px;
  --vt-container: 1200px;
}

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: var(--vt-font-sans);
  background: var(--vt-cream);
  color: var(--vt-text);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
img { max-width: 100%; height: auto; }
ul { list-style: none; }

/* ── Container ── */
.vt-container {
  max-width: var(--vt-container);
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* ── Section titles ── */
.vt-section-title {
  font-family: var(--vt-font-serif);
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--vt-dark);
  text-align: center;
  margin-bottom: 2.5rem;
}

/* ── Buttons ── */
.vt-btn {
  display: inline-block;
  padding: 0.65rem 1.5rem;
  border-radius: var(--vt-radius-sm);
  font-family: var(--vt-font-sans);
  font-weight: 600;
  font-size: 0.9rem;
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: all 0.25s ease;
  line-height: 1.4;
}
.vt-btn-lg { padding: 0.85rem 2rem; font-size: 1rem; }
.vt-btn-sm { padding: 0.4rem 0.85rem; font-size: 0.82rem; }
.vt-btn-xs { padding: 0.25rem 0.6rem; font-size: 0.78rem; }
.vt-btn-full { width: 100%; text-align: center; }
.vt-btn-gold { background: var(--vt-gold); color: #1a1a1a; }
.vt-btn-gold:hover { background: var(--vt-gold-dark); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(212,175,55,0.35); }
.vt-btn-forest { background: var(--vt-forest); color: white; }
.vt-btn-forest:hover { background: var(--vt-forest-dark); }
.vt-btn-outline { background: transparent; color: var(--vt-forest); border: 2px solid var(--vt-forest); }
.vt-btn-outline:hover { background: var(--vt-forest); color: white; }
.vt-btn-outline-light { background: transparent; color: white; border: 2px solid rgba(255,255,255,0.6); }
.vt-btn-outline-light:hover { background: rgba(255,255,255,0.15); border-color: white; }
.vt-btn-dark-outline { background: transparent; color: #aaa; border: 1.5px solid #555; }
.vt-btn-dark-outline:hover { background: #333; color: white; }
.vt-btn-edit { background: #1a3d2a; color: #6fcf97; }
.vt-btn-delete { background: #4a1a1a; color: #eb5757; }

/* ── Badge ── */
.vt-badge {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border-radius: 4px;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.vt-badge-agriculture { background: #1a3d1a; color: #8bc34a; }
.vt-badge-residential { background: #1a2d4d; color: #64b5f6; }
.vt-badge-commercial { background: #3d2a1a; color: #ffb74d; }
.vt-badge-recreation { background: #1a1d4d; color: #ba68c8; }
.vt-badge-finance { background: #1a3d2a; color: #6fcf97; }

/* ── Alert ── */
.vt-alert { padding: 0.85rem 1.25rem; border-radius: var(--vt-radius-sm); font-size: 0.9rem; margin-bottom: 1.25rem; }
.vt-alert-success { background: #e8f5e9; color: #2e7d32; border: 1px solid #a5d6a7; }
.vt-alert-error { background: #fce8e6; color: #c62828; border: 1px solid #ef9a9a; }
.vt-alert-info { background: #e3f2fd; color: #1565c0; border: 1px solid #90caf9; }
.vt-success-msg { padding: 0.85rem 1.25rem; border-radius: var(--vt-radius-sm); font-size: 0.9rem; background: #e8f5e9; color: #2e7d32; border: 1px solid #a5d6a7; margin-top: 1rem; }
.vt-error-msg { padding: 0.85rem 1.25rem; border-radius: var(--vt-radius-sm); font-size: 0.9rem; background: #fce8e6; color: #c62828; border: 1px solid #ef9a9a; margin-top: 1rem; }

/* ═══════════════════════════════════════════
   HEADER
═══════════════════════════════════════════ */
.vt-header { background: var(--vt-dark); position: sticky; top: 0; z-index: 100; box-shadow: 0 2px 20px rgba(0,0,0,0.25); }
.vt-header-inner { max-width: var(--vt-container); margin: 0 auto; padding: 0 1.5rem; display: flex; align-items: center; justify-content: space-between; height: 64px; }
.vt-logo-link { display: flex; align-items: center; gap: 0.6rem; text-decoration: none; }
.vt-logo-img { height: 34px; width: auto; object-fit: contain; }
.vt-logo-text { font-family: var(--vt-font-serif); font-size: 1.15rem; font-weight: 700; color: var(--vt-gold); letter-spacing: 0.02em; }
.vt-nav { display: flex; align-items: center; gap: 1.75rem; }
.vt-nav-link { color: rgba(255,255,255,0.8); text-decoration: none; font-size: 0.88rem; font-weight: 500; transition: color 0.2s; }
.vt-nav-link:hover { color: white; }
.vt-nav-admin { color: var(--vt-gold); font-size: 0.8rem; border: 1px solid rgba(212,175,55,0.4); padding: 0.25rem 0.65rem; border-radius: 4px; }
.vt-nav-admin:hover { background: rgba(212,175,55,0.1); }
.vt-mobile-menu-btn { display: none; background: none; border: none; color: white; font-size: 1.5rem; cursor: pointer; padding: 0.25rem; }
@media (max-width: 768px) {
  .vt-mobile-menu-btn { display: block; }
  .vt-nav { display: none; flex-direction: column; position: absolute; top: 64px; left: 0; right: 0; background: var(--vt-dark); padding: 1rem 1.5rem; gap: 1rem; border-top: 1px solid #333; }
  .vt-nav.open { display: flex; }
}

/* ═══════════════════════════════════════════
   HERO
═══════════════════════════════════════════ */
.vt-hero { position: relative; min-height: 560px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.vt-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.vt-hero-overlay { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(26,26,26,0.85) 0%, rgba(44,95,46,0.7) 60%, rgba(26,26,26,0.85) 100%); }
.vt-hero-content { position: relative; z-index: 1; text-align: center; padding: 4rem 1.5rem; max-width: 800px; }
.vt-hero-badge { display: inline-block; background: rgba(212,175,55,0.15); border: 1px solid rgba(212,175,55,0.4); color: var(--vt-gold-light); padding: 0.3rem 1rem; border-radius: 20px; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 1.5rem; }
.vt-hero-title { font-family: var(--vt-font-serif); font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 700; color: white; line-height: 1.15; margin-bottom: 1.25rem; }
.vt-gold-text { color: var(--vt-gold); }
.vt-hero-sub { font-size: 1.1rem; color: rgba(255,255,255,0.8); margin-bottom: 2.25rem; max-width: 600px; margin-left: auto; margin-right: auto; }
.vt-hero-ctas { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin-bottom: 2.5rem; }
.vt-trust-bar { display: flex; gap: 1.5rem; justify-content: center; flex-wrap: wrap; font-size: 0.85rem; color: rgba(255,255,255,0.6); font-weight: 500; }
.vt-trust-sep { color: var(--vt-gold); }

/* ═══════════════════════════════════════════
   LISTINGS + FILTERS
═══════════════════════════════════════════ */
.vt-listings-section { padding: 5rem 0; }
.vt-layout { display: grid; grid-template-columns: 280px 1fr; gap: 2.5rem; align-items: start; }

.vt-filters { background: white; border: 1px solid var(--vt-border); border-radius: var(--vt-radius); padding: 1.5rem; box-shadow: var(--vt-shadow); position: sticky; top: 80px; }
.vt-filter-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.25rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--vt-border); }
.vt-filter-header h3 { font-family: var(--vt-font-serif); font-size: 1.1rem; color: var(--vt-dark); }
.vt-clear-filters { font-size: 0.82rem; color: var(--vt-muted); text-decoration: none; }
.vt-clear-filters:hover { color: var(--vt-forest); }
.vt-filter-group { margin-bottom: 1.25rem; }
.vt-filter-group label { display: block; font-size: 0.8rem; font-weight: 600; color: var(--vt-dark); margin-bottom: 0.4rem; text-transform: uppercase; letter-spacing: 0.04em; }
.vt-filter-select { width: 100%; padding: 0.55rem 0.75rem; border: 1.5px solid var(--vt-border); border-radius: 6px; font-size: 0.88rem; background: var(--vt-cream); color: var(--vt-text); }
.vt-filter-select:focus { outline: none; border-color: var(--vt-gold); }
.vt-range-row { display: flex; align-items: center; gap: 0.5rem; }
.vt-range-row span { font-size: 0.8rem; color: var(--vt-muted); flex-shrink: 0; }
.vt-range-input { width: 100%; padding: 0.55rem 0.75rem; border: 1.5px solid var(--vt-border); border-radius: 6px; font-size: 0.88rem; background: var(--vt-cream); }
.vt-range-input:focus { outline: none; border-color: var(--vt-gold); }
.vt-checkbox-label { display: flex; align-items: center; gap: 0.5rem; font-size: 0.88rem; cursor: pointer; color: var(--vt-text); }
.vt-checkbox-label input { width: auto; cursor: pointer; accent-color: var(--vt-forest); }

.vt-listings-main { min-width: 0; }
.vt-listings-header { margin-bottom: 1.5rem; }
.vt-listings-header .vt-section-title { text-align: left; font-size: 1.6rem; margin-bottom: 1rem; }
.vt-listings-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.5rem; }

.vt-card { background: white; border: 1px solid var(--vt-border); border-radius: var(--vt-radius); overflow: hidden; transition: transform 0.25s, box-shadow 0.25s; display: flex; flex-direction: column; }
.vt-card:hover { transform: translateY(-4px); box-shadow: var(--vt-shadow-lg); }
.vt-card-link { display: flex; flex-direction: column; flex: 1; text-decoration: none; color: inherit; }
.vt-card-img-wrap { position: relative; aspect-ratio: 16/9; overflow: hidden; background: var(--vt-paper); flex-shrink: 0; }
.vt-card-img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s; }
.vt-card:hover .vt-card-img { transform: scale(1.04); }
.vt-card-img-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 2rem; background: var(--vt-paper); }
.vt-card-img-wrap .vt-badge-finance { position: absolute; top: 0.75rem; left: 0.75rem; background: var(--vt-forest); color: white; }
.vt-card-body { padding: 1.25rem; flex: 1; display: flex; flex-direction: column; }
.vt-card-acres { font-size: 0.78rem; color: var(--vt-muted); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.25rem; }
.vt-card-title { font-family: var(--vt-font-serif); font-size: 1.05rem; font-weight: 600; color: var(--vt-dark); margin-bottom: 0.35rem; line-height: 1.3; }
.vt-card-loc { font-size: 0.82rem; color: var(--vt-muted); margin-bottom: 0.5rem; }
.vt-card-price { font-family: var(--vt-font-serif); font-size: 1.35rem; font-weight: 700; color: var(--vt-dark); margin-bottom: 0.5rem; }
.vt-card-meta { display: flex; gap: 0.75rem; flex-wrap: wrap; font-size: 0.78rem; color: var(--vt-muted); margin-bottom: 0.25rem; }
.vt-card-gps { font-size: 0.72rem; color: #999; margin-bottom: 0.15rem; }
.vt-card-monthly { font-size: 0.8rem; color: var(--vt-forest); font-weight: 600; margin-top: auto; }
.vt-card-actions { padding: 0 1rem 1rem; display: flex; flex-direction: column; gap: 0.5rem; }
.vt-card-actions form { margin: 0; }

.vt-empty { text-align: center; padding: 4rem 2rem; }
.vt-empty-icon { font-size: 3rem; margin-bottom: 1rem; }
.vt-empty h3 { font-family: var(--vt-font-serif); font-size: 1.4rem; color: var(--vt-dark); margin-bottom: 0.5rem; }
.vt-empty p { color: var(--vt-muted); margin-bottom: 1.5rem; }

@media (max-width: 900px) { .vt-layout { grid-template-columns: 1fr; } .vt-filters { position: static; } }
@media (max-width: 640px) { .vt-listings-grid { grid-template-columns: 1fr; } .vt-hero-ctas { flex-direction: column; align-items: center; } }

/* ═══════════════════════════════════════════
   MAP
═══════════════════════════════════════════ */
.vt-map-section { background: var(--vt-paper); padding: 5rem 0; }
.vt-map-wrapper { display: grid; grid-template-columns: 1fr 300px; gap: 1.5rem; height: 480px; border-radius: var(--vt-radius); overflow: hidden; border: 1px solid var(--vt-border); }
.vt-leaflet-map { width: 100%; height: 100%; }
.vt-map-sidebar { background: white; padding: 1.5rem; overflow-y: auto; border-left: 1px solid var(--vt-border); }
.vt-map-hint { font-size: 0.85rem; color: var(--vt-muted); text-align: center; margin-top: 1rem; }
@media (max-width: 768px) { .vt-map-wrapper { grid-template-columns: 1fr; height: auto; } .vt-leaflet-map { height: 350px; } .vt-map-sidebar { display: none; } }

/* ═══════════════════════════════════════════
   FINANCE
═══════════════════════════════════════════ */
.vt-finance-section { padding: 5rem 0; background: var(--vt-dark); }
.vt-finance-section .vt-section-title { color: white; }
.vt-finance-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-bottom: 3rem; }
.vt-finance-card { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: var(--vt-radius); padding: 2.25rem; }
.vt-finance-card-highlight { border-color: var(--vt-gold); background: rgba(212,175,55,0.08); }
.vt-finance-icon { font-size: 2.5rem; margin-bottom: 1rem; }
.vt-finance-card h3 { font-family: var(--vt-font-serif); font-size: 1.4rem; color: white; margin-bottom: 0.75rem; }
.vt-finance-card p { color: rgba(255,255,255,0.65); font-size: 0.92rem; line-height: 1.6; margin-bottom: 1.25rem; }
.vt-finance-list { list-style: none; }
.vt-finance-list li { color: rgba(255,255,255,0.75); font-size: 0.88rem; padding: 0.4rem 0; border-bottom: 1px solid rgba(255,255,255,0.08); }
.vt-finance-list li:last-child { border-bottom: none; }
.vt-calc-section { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: var(--vt-radius); padding: 2rem; }
.vt-calc-section h3 { font-family: var(--vt-font-serif); font-size: 1.3rem; color: var(--vt-gold); margin-bottom: 1.5rem; text-align: center; }
.vt-calc-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.25rem; }
.vt-calc-field label { display: block; font-size: 0.78rem; font-weight: 600; color: rgba(255,255,255,0.6); text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 0.35rem; }
.vt-calc-field input, .vt-calc-field select { width: 100%; padding: 0.6rem 0.8rem; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.15); border-radius: 6px; color: white; font-size: 0.92rem; }
.vt-calc-field input:focus, .vt-calc-field select:focus { outline: none; border-color: var(--vt-gold); }
.vt-calc-result { text-align: center; font-size: 1.1rem; color: rgba(255,255,255,0.7); padding: 1rem; background: rgba(0,0,0,0.2); border-radius: var(--vt-radius-sm); }
.vt-calc-result strong { color: var(--vt-gold); font-size: 1.4rem; }
@media (max-width: 768px) { .vt-finance-grid { grid-template-columns: 1fr; } .vt-calc-row { grid-template-columns: 1fr 1fr; } }

/* ═══════════════════════════════════════════
   WHY INVEST
═══════════════════════════════════════════ */
.vt-why-section { padding: 5rem 0; background: var(--vt-paper); }
.vt-why-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.vt-why-card { background: white; border: 1px solid var(--vt-border); border-radius: var(--vt-radius); padding: 2rem; text-align: center; box-shadow: var(--vt-shadow); transition: transform 0.25s, box-shadow 0.25s; }
.vt-why-card:hover { transform: translateY(-3px); box-shadow: var(--vt-shadow-lg); }
.vt-why-icon { font-size: 2.5rem; margin-bottom: 1rem; }
.vt-why-card h3 { font-family: var(--vt-font-serif); font-size: 1.1rem; color: var(--vt-dark); margin-bottom: 0.6rem; }
.vt-why-card p { font-size: 0.88rem; color: var(--vt-muted); line-height: 1.6; }
@media (max-width: 900px) { .vt-why-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .vt-why-grid { grid-template-columns: 1fr; } }

/* ═══════════════════════════════════════════
   TESTIMONIALS
═══════════════════════════════════════════ */
.vt-testimonials-section { padding: 5rem 0; background: var(--vt-forest); }
.vt-testimonials-section .vt-section-title { color: white; }
.vt-testimonials-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.vt-testimonial-card { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.12); border-radius: var(--vt-radius); padding: 1.75rem; }
.vt-testimonial-stars { font-size: 1rem; margin-bottom: 0.75rem; color: var(--vt-gold); }
.vt-testimonial-quote { font-size: 0.88rem; color: rgba(255,255,255,0.85); line-height: 1.65; margin-bottom: 1.25rem; font-style: italic; }
.vt-testimonial-author { display: flex; align-items: center; gap: 0.75rem; }
.vt-testimonial-avatar { width: 36px; height: 36px; background: rgba(212,175,55,0.2); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; flex-shrink: 0; }
.vt-testimonial-author strong { display: block; font-size: 0.88rem; color: white; }
.vt-testimonial-author span { display: block; font-size: 0.75rem; color: rgba(255,255,255,0.55); }
@media (max-width: 1000px) { .vt-testimonials-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .vt-testimonials-grid { grid-template-columns: 1fr; } }

/* ═══════════════════════════════════════════
   CONSULTATION
═══════════════════════════════════════════ */
.vt-consultation-section { padding: 5rem 0; background: var(--vt-dark); }
.vt-consult-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 4rem; align-items: start; }
.vt-consult-left .vt-section-title { text-align: left; color: white; }
.vt-text-light { color: white; }
.vt-consult-sub { font-size: 1rem; color: rgba(255,255,255,0.65); margin-bottom: 2rem; line-height: 1.6; }
.vt-consult-features { display: flex; flex-direction: column; gap: 0.75rem; }
.vt-consult-feature { color: rgba(255,255,255,0.75); font-size: 0.92rem; }
.vt-consult-form { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1); border-radius: var(--vt-radius); padding: 2rem; }
.vt-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.vt-form-group { margin-bottom: 1rem; }
.vt-form-group label { display: block; font-size: 0.8rem; font-weight: 600; color: rgba(255,255,255,0.6); text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 0.35rem; }
.vt-form-group input, .vt-form-group select, .vt-form-group textarea { width: 100%; padding: 0.6rem 0.85rem; background: rgba(255,255,255,0.08); border: 1.5px solid rgba(255,255,255,0.15); border-radius: 6px; color: white; font-family: var(--vt-font-sans); font-size: 0.92rem; transition: border-color 0.2s; }
.vt-form-group input::placeholder { color: rgba(255,255,255,0.35); }
.vt-form-group input:focus, .vt-form-group select:focus, .vt-form-group textarea:focus { outline: none; border-color: var(--vt-gold); }
.vt-form-group textarea { resize: vertical; min-height: 80px; }
.vt-form-group select option { background: #2a2a2a; color: white; }
@media (max-width: 900px) { .vt-consult-grid { grid-template-columns: 1fr; gap: 2.5rem; } }
@media (max-width: 640px) { .vt-form-row { grid-template-columns: 1fr; } }

/* ═══════════════════════════════════════════
   FAQ
═══════════════════════════════════════════ */
.vt-faq-section { padding: 5rem 0; background: var(--vt-cream); }
.vt-faq-list { max-width: 760px; margin: 0 auto; }
.vt-faq-item { border-bottom: 1px solid var(--vt-border); }
.vt-faq-question { width: 100%; text-align: left; background: none; border: none; padding: 1.25rem 0; font-family: var(--vt-font-serif); font-size: 1.05rem; font-weight: 600; color: var(--vt-dark); cursor: pointer; display: flex; justify-content: space-between; align-items: center; transition: color 0.2s; }
.vt-faq-question::after { content: '+'; font-size: 1.4rem; color: var(--vt-gold); font-weight: 700; }
.vt-faq-item.open .vt-faq-question::after { content: '−'; }
.vt-faq-question:hover { color: var(--vt-forest); }
.vt-faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }
.vt-faq-answer p { padding: 0 0 1.25rem; font-size: 0.92rem; color: var(--vt-muted); line-height: 1.7; }
.vt-faq-item.open .vt-faq-answer { max-height: 200px; }

/* ═══════════════════════════════════════════
   LISTING DETAIL
═══════════════════════════════════════════ */
.vt-listing-main { padding: 0 0 5rem; }
.vt-breadcrumb-wrap { padding: 1rem 0; border-bottom: 1px solid var(--vt-border); }
.vt-breadcrumb-wrap a { color: var(--vt-muted); text-decoration: none; font-size: 0.9rem; }
.vt-breadcrumb-wrap a:hover { color: var(--vt-forest); }
.vt-listing-hero { width: 100%; max-height: 500px; overflow: hidden; background: var(--vt-paper); }
.vt-listing-hero-img { width: 100%; max-height: 500px; object-fit: cover; display: block; }
.vt-listing-hero-placeholder { width: 100%; aspect-ratio: 16/9; display: flex; align-items: center; justify-content: center; font-size: 3rem; background: var(--vt-paper); }
.vt-listing-grid { display: grid; grid-template-columns: 1fr 360px; gap: 3rem; margin-top: 2rem; align-items: start; }
.vt-listing-left { min-width: 0; }
.vt-listing-tags { display: flex; gap: 0.5rem; margin-bottom: 0.75rem; flex-wrap: wrap; }
.vt-listing-title { font-family: var(--vt-font-serif); font-size: 2.25rem; font-weight: 700; color: var(--vt-dark); line-height: 1.2; margin-bottom: 0.5rem; }
.vt-listing-location { font-size: 1rem; color: var(--vt-muted); margin-bottom: 1.5rem; }
.vt-listing-stats { display: flex; margin-bottom: 2rem; background: var(--vt-paper); border-radius: var(--vt-radius); overflow: hidden; border: 1px solid var(--vt-border); }
.vt-listing-stat { flex: 1; padding: 1.25rem; text-align: center; border-right: 1px solid var(--vt-border); }
.vt-listing-stat:last-child { border-right: none; }
.vt-stat-value { display: block; font-family: var(--vt-font-serif); font-size: 1.4rem; font-weight: 700; color: var(--vt-dark); }
.vt-stat-label { display: block; font-size: 0.75rem; color: var(--vt-muted); text-transform: uppercase; letter-spacing: 0.05em; margin-top: 0.25rem; }
.vt-listing-details { margin-bottom: 2rem; }
.vt-listing-details h2 { font-family: var(--vt-font-serif); font-size: 1.25rem; color: var(--vt-dark); margin-bottom: 1rem; }
.vt-detail-table { width: 100%; border-collapse: collapse; }
.vt-detail-table td { padding: 0.6rem 0; border-bottom: 1px solid var(--vt-border); font-size: 0.9rem; }
.vt-detail-table td:first-child { color: var(--vt-muted); font-weight: 500; width: 40%; }
.vt-detail-table td:last-child { color: var(--vt-dark); }
.vt-detail-table tr:last-child td { border-bottom: none; }
.vt-status-badge { display: inline-block; padding: 0.15rem 0.55rem; border-radius: 4px; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; }
.vt-status-active { background: #e8f5e9; color: #2e7d32; }
.vt-status-pending { background: #fff3cd; color: #856404; }
.vt-status-sold { background: #e3f2fd; color: #1565c0; }
.vt-listing-desc { margin-bottom: 2rem; }
.vt-listing-desc h2 { font-family: var(--vt-font-serif); font-size: 1.25rem; color: var(--vt-dark); margin-bottom: 0.75rem; }
.vt-listing-desc p { color: var(--vt-muted); line-height: 1.75; }
.vt-listing-map { margin-bottom: 2rem; }
.vt-listing-map h2 { font-family: var(--vt-font-serif); font-size: 1.25rem; color: var(--vt-dark); margin-bottom: 0.75rem; }
.vt-listing-leaflet-map { height: 320px; border-radius: var(--vt-radius); border: 1px solid var(--vt-border); }
.vt-listing-sidebar { }
.vt-sidebar-card { background: white; border: 1px solid var(--vt-border); border-radius: var(--vt-radius); padding: 1.75rem; margin-bottom: 1.25rem; box-shadow: var(--vt-shadow); }
.vt-sidebar-price { font-family: var(--vt-font-serif); font-size: 2rem; font-weight: 700; color: var(--vt-dark); }
.vt-sidebar-sub { font-size: 0.85rem; color: var(--vt-muted); margin-top: 0.2rem; }
.vt-sidebar-loc { font-size: 0.88rem; color: var(--vt-forest); margin-bottom: 1rem; }
.vt-sidebar-deposit-note { background: #e8f5e9; color: #2e7d32; padding: 0.75rem; border-radius: 6px; font-size: 0.82rem; margin-bottom: 1rem; border: 1px solid #a5d6a7; }
.vt-payment-buttons { display: flex; flex-direction: column; gap: 0.65rem; margin-bottom: 0.75rem; }
.vt-payment-buttons .vt-btn { font-size: 0.92rem; }
.vt-sidebar-secure { text-align: center; font-size: 0.8rem; color: var(--vt-muted); margin-top: 0.5rem; }
.vt-sidebar-cancel { text-align: center; font-size: 0.75rem; color: var(--vt-muted); margin-top: 0.25rem; }
.vt-sidebar-contact p { font-size: 0.9rem; color: var(--vt-muted); margin-bottom: 0.75rem; }
.vt-sidebar-info h4 { font-family: var(--vt-font-serif); font-size: 1rem; color: var(--vt-dark); margin-bottom: 0.75rem; }
.vt-next-steps-list { list-style: none; }
.vt-next-steps-list li { font-size: 0.85rem; color: var(--vt-muted); padding: 0.4rem 0; padding-left: 1.75rem; position: relative; border-bottom: 1px solid var(--vt-border); }
.vt-next-steps-list li:last-child { border-bottom: none; }
.vt-next-steps-list li::before { content: attr(data-step); position: absolute; left: 0; font-weight: 700; color: var(--vt-forest); }
@media (max-width: 900px) { .vt-listing-grid { grid-template-columns: 1fr; } .vt-listing-sidebar { position: static; } .vt-listing-stats { flex-wrap: wrap; } .vt-listing-stat { min-width: 50%; } }

/* ═══════════════════════════════════════════
   ABOUT PAGE
═══════════════════════════════════════════ */
.vt-about-main { }
.vt-about-hero { position: relative; min-height: 420px; display: flex; align-items: center; overflow: hidden; }
.vt-about-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.vt-about-hero-overlay { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(26,26,26,0.9) 0%, rgba(44,95,46,0.75) 100%); }
.vt-about-hero-content { position: relative; z-index: 1; text-align: center; padding: 4rem 1.5rem; }
.vt-about-logo { width: 70px; height: 70px; object-fit: contain; margin: 0 auto 1.5rem; }
.vt-about-hero-content h1 { font-family: var(--vt-font-serif); font-size: clamp(1.8rem, 4vw, 2.8rem); color: white; line-height: 1.2; margin-bottom: 1rem; }
.vt-about-hero-content p { max-width: 600px; margin: 0 auto; font-size: 1rem; color: rgba(255,255,255,0.75); line-height: 1.7; }
.vt-about-pillars { padding: 4rem 0; background: var(--vt-paper); }
.vt-pillars-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.vt-pillar-card { background: white; border: 1px solid var(--vt-border); border-radius: var(--vt-radius); padding: 2rem; text-align: center; box-shadow: var(--vt-shadow); }
.vt-pillar-icon { font-size: 2.5rem; margin-bottom: 1rem; }
.vt-pillar-card h3 { font-family: var(--vt-font-serif); font-size: 1.3rem; color: var(--vt-dark); margin-bottom: 0.5rem; }
.vt-pillar-card p { font-size: 0.88rem; color: var(--vt-muted); line-height: 1.6; }
.vt-about-values { padding: 4rem 0; background: white; }
.vt-values-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.vt-value-card { text-align: center; padding: 1.5rem; }
.vt-value-icon { font-size: 2rem; margin-bottom: 0.75rem; }
.vt-value-card h4 { font-family: var(--vt-font-serif); font-size: 1rem; color: var(--vt-dark); margin-bottom: 0.5rem; }
.vt-value-card p { font-size: 0.85rem; color: var(--vt-muted); line-height: 1.6; }
.vt-about-stats { padding: 4rem 0; background: var(--vt-dark); }
.vt-stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.vt-stat-item { text-align: center; }
.vt-stat-num { font-family: var(--vt-font-serif); font-size: 2.5rem; font-weight: 700; color: var(--vt-gold); margin-bottom: 0.25rem; }
.vt-stat-label { font-size: 0.85rem; color: rgba(255,255,255,0.6); }
.vt-about-cta { padding: 4rem 0; text-align: center; }
.vt-about-cta-btns { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
@media (max-width: 900px) { .vt-pillars-grid { grid-template-columns: 1fr; } .vt-values-grid { grid-template-columns: repeat(2, 1fr); } .vt-stats-grid { grid-template-columns: repeat(2, 1fr); } }

/* ═══════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════ */
.vt-footer { background: var(--vt-dark); }
.vt-footer-top { padding: 3rem 0; border-bottom: 1px solid rgba(255,255,255,0.08); }
.vt-footer-inner { display: grid; grid-template-columns: auto 1fr auto; gap: 3rem; align-items: start; }
.vt-footer-brand { }
.vt-footer-logo { width: 40px; height: 40px; object-fit: contain; margin-bottom: 0.5rem; }
.vt-footer-tagline { font-size: 0.82rem; color: var(--vt-gold); font-style: italic; }
.vt-footer-links { display: flex; gap: 1.5rem; flex-wrap: wrap; align-items: center; }
.vt-footer-links a { color: rgba(255,255,255,0.6); text-decoration: none; font-size: 0.85rem; }
.vt-footer-links a:hover { color: white; }
.vt-footer-contact p { font-size: 0.82rem; color: rgba(255,255,255,0.55); margin-bottom: 0.25rem; }
.vt-footer-disclaimer { padding: 1.5rem 0; border-bottom: 1px solid rgba(255,255,255,0.06); }
.vt-footer-disclaimer p { font-size: 0.78rem; color: rgba(255,255,255,0.35); line-height: 1.6; }
.vt-footer-copy { padding: 1.25rem 0; font-size: 0.78rem; color: rgba(255,255,255,0.3); }
@media (max-width: 768px) { .vt-footer-inner { grid-template-columns: 1fr; gap: 1.5rem; } }

/* ═══════════════════════════════════════════
   ERROR PAGE
═══════════════════════════════════════════ */
.vt-error-page { padding: 6rem 0; text-align: center; }
.vt-error-box { max-width: 480px; margin: 0 auto; }
.vt-error-icon { font-size: 3.5rem; margin-bottom: 1.5rem; }
.vt-error-box h1 { font-family: var(--vt-font-serif); font-size: 2rem; color: var(--vt-dark); margin-bottom: 0.75rem; }
.vt-error-box p { color: var(--vt-muted); margin-bottom: 2rem; }

/* ═══════════════════════════════════════════
   ADMIN PANEL
═══════════════════════════════════════════ */
.vt-admin-body { background: #1a1a1a; color: #f0f0eb; min-height: 100vh; }
.vt-admin-header { background: #222; border-bottom: 1px solid #333; padding: 1.5rem 0; margin-bottom: 2rem; }
.vt-admin-nav { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; }
.vt-admin-label { font-size: 0.75rem; color: var(--vt-gold); text-transform: uppercase; letter-spacing: 0.12em; margin: 0 0 0.2rem; }
.vt-admin-title { font-family: var(--vt-font-serif); font-size: 1.5rem; color: var(--vt-gold); margin: 0; }
.vt-admin-sub { font-size: 0.85rem; color: #888; margin: 0.25rem 0 0; }
.vt-admin-actions { display: flex; gap: 0.65rem; align-items: center; flex-wrap: wrap; }
.vt-admin-main { padding: 0 0 4rem; }
.vt-admin-empty { text-align: center; padding: 4rem 2rem; color: #888; }
.vt-admin-table { width: 100%; border-collapse: collapse; background: #222; border-radius: var(--vt-radius); overflow: hidden; }
.vt-admin-table th { background: #2a2a2a; padding: 0.75rem 1rem; text-align: left; color: var(--vt-gold); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; border-bottom: 1px solid #333; }
.vt-admin-table td { padding: 0.75rem 1rem; border-top: 1px solid #2a2a2a; color: #d0d0c8; font-size: 0.88rem; vertical-align: middle; }
.vt-admin-table tr:hover td { background: #2a2a2a; }
.vt-admin-thumb { width: 56px; height: 38px; object-fit: cover; border-radius: 4px; }
.vt-admin-thumb-empty { display: flex; align-items: center; justify-content: center; background: #333; font-size: 0.9rem; color: #888; }
.vt-admin-title-cell { font-family: var(--vt-font-serif); color: #f0f0eb; font-weight: 600; }
.vt-admin-price { color: var(--vt-gold) !important; font-weight: 700; }
.vt-admin-row-actions { display: flex; gap: 0.4rem; align-items: center; flex-wrap: wrap; }
.vt-admin-form-wrap { max-width: 800px; }
.vt-admin-form { background: #222; border: 1px solid #333; border-radius: var(--vt-radius); padding: 2rem; }
.vt-admin-form-section { margin-bottom: 2rem; padding-bottom: 1.5rem; border-bottom: 1px solid #333; }
.vt-admin-form-section:last-of-type { border-bottom: none; margin-bottom: 0; }
.vt-admin-form-section h3 { font-family: var(--vt-font-serif); font-size: 0.9rem; color: var(--vt-gold); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 1rem; }
.vt-admin-form-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1rem; }
.vt-admin-form-row:last-child { margin-bottom: 0; }
.vt-admin-form-full { grid-column: 1 / -1; }
.vt-admin-form-group label { display: block; font-size: 0.78rem; font-weight: 600; color: var(--vt-gold); text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 0.35rem; }
.vt-admin-form-group input, .vt-admin-form-group select, .vt-admin-form-group textarea { width: 100%; padding: 0.55rem 0.8rem; background: #1a1a1a; border: 1.5px solid #444; border-radius: 6px; color: #f0f0eb; font-family: var(--vt-font-sans); font-size: 0.88rem; }
.vt-admin-form-group input:focus, .vt-admin-form-group select:focus, .vt-admin-form-group textarea:focus { outline: none; border-color: var(--vt-gold); }
.vt-admin-form-group textarea { resize: vertical; min-height: 60px; }
.vt-admin-form-group select option { background: #1a1a1a; color: #f0f0eb; }
.vt-admin-check-group { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem; }
.vt-admin-check-group input { width: auto; accent-color: var(--vt-gold); }
.vt-admin-check-group label { color: #d0d0c8; font-weight: 400; font-size: 0.88rem; text-transform: none; letter-spacing: 0; }
.vt-admin-form-actions { display: flex; gap: 1rem; margin-top: 1.5rem; align-items: center; }
.vt-admin-back-link { display: inline-block; font-size: 0.85rem; color: #888; text-decoration: none; margin-bottom: 0.5rem; }
.vt-admin-back-link:hover { color: var(--vt-gold); }
.vt-admin-login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 2rem; background: #1a1a1a; }
.vt-admin-login-card { background: #222; border: 1px solid #333; border-radius: var(--vt-radius); padding: 2.5rem; width: 100%; max-width: 420px; text-align: center; }
.vt-admin-login-logo { width: 56px; height: 56px; object-fit: contain; margin: 0 auto 1.5rem; }
.vt-admin-login-title { font-family: var(--vt-font-serif); font-size: 1.5rem; color: var(--vt-gold); margin-bottom: 0.5rem; }
.vt-admin-login-sub { font-size: 0.88rem; color: #888; margin-bottom: 1.5rem; }
.vt-admin-password-input { width: 100%; padding: 0.75rem 1rem; background: #1a1a1a; border: 1.5px solid #444; border-radius: 8px; color: white; font-size: 1rem; text-align: center; margin-bottom: 1rem; }
.vt-admin-password-input:focus { outline: none; border-color: var(--vt-gold); }
.vt-admin-login-back { display: inline-block; margin-top: 1rem; font-size: 0.82rem; color: #666; text-decoration: none; }
.vt-admin-login-back:hover { color: #888; }
@media (max-width: 768px) { .vt-admin-form-row { grid-template-columns: 1fr 1fr; } .vt-admin-table { font-size: 0.82rem; } .vt-admin-table th, .vt-admin-table td { padding: 0.5rem 0.6rem; } }
@media (max-width: 480px) { .vt-admin-form-row { grid-template-columns: 1fr; } .vt-admin-row-actions { flex-direction: column; } }