:root {
  --ds-green-950: #07140c;
  --ds-green-900: #102619;
  --ds-green-800: #193923;
  --ds-green-700: #245331;
  --ds-green-600: #2f6b3f;
  --ds-gold-500: #d5b26f;
  --ds-gold-400: #e4c889;
  --ds-mint-100: #e9f7ee;
  --ds-ink: #111827;
  --ds-muted: #667085;
  --ds-line: rgba(16, 38, 25, .12);
  --ds-surface: #ffffff;
  --ds-soft: #f6f8f4;
  --ds-radius: 8px;
  --ds-shadow-sm: 0 8px 22px rgba(7, 20, 12, .08);
  --ds-shadow-md: 0 18px 46px rgba(7, 20, 12, .13);
}

html { scroll-behavior: smooth; }
body {
  color: var(--ds-ink);
  background:
    linear-gradient(180deg, rgba(246,248,244,.98), rgba(255,255,255,1) 340px);
  text-rendering: geometricPrecision;
}

body:not(.admin-body) a { text-underline-offset: 3px; }

.topbar,
header,
.navbar,
.site-header {
  backdrop-filter: blur(16px);
}

section {
  position: relative;
}

.container,
.section-inner {
  width: min(1180px, calc(100% - 32px));
}

.card,
.info-card,
.parcela-card,
.feature-card,
.stat-card,
.contact-card {
  border-radius: var(--ds-radius) !important;
  border: 1px solid var(--ds-line) !important;
  box-shadow: var(--ds-shadow-sm) !important;
}

.card:hover,
.parcela-card:hover,
.feature-card:hover {
  transform: translateY(-2px);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  box-shadow: var(--ds-shadow-md) !important;
  border-color: rgba(213, 178, 111, .42) !important;
}

button,
.btn,
.cta,
.btn-primary,
.btn-success,
.btn-buscar,
.btn-wa,
.btn-reservar,
.btn-agendar,
a[class*="btn"] {
  border-radius: var(--ds-radius) !important;
  letter-spacing: 0 !important;
}

.btn-primary,
.btn-success,
.btn-brand,
.cta-primary,
.btn-buscar {
  background: linear-gradient(135deg, var(--ds-green-700), var(--ds-green-900)) !important;
  border-color: transparent !important;
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(36, 83, 49, .2);
}

.btn-primary:hover,
.btn-success:hover,
.btn-brand:hover,
.cta-primary:hover,
.btn-buscar:hover {
  background: linear-gradient(135deg, var(--ds-green-600), var(--ds-green-800)) !important;
  box-shadow: 0 14px 32px rgba(36, 83, 49, .28);
}

.btn-outline-secondary,
.btn-outline-primary,
.btn-outline-success {
  background: rgba(255,255,255,.72) !important;
  border-color: rgba(16,38,25,.18) !important;
  color: var(--ds-green-800) !important;
}

input,
select,
textarea,
.form-control,
.form-select {
  border-radius: var(--ds-radius) !important;
  border-color: rgba(16, 38, 25, .18) !important;
}

input:focus,
select:focus,
textarea:focus,
.form-control:focus,
.form-select:focus {
  border-color: var(--ds-gold-500) !important;
  box-shadow: 0 0 0 .18rem rgba(213, 178, 111, .18) !important;
}

.badge,
[class*="badge-"] {
  border-radius: 999px !important;
  letter-spacing: 0 !important;
}

.hero,
.hero-section,
.main-hero {
  min-height: min(760px, 92vh);
}

.hero h1,
.hero-title,
h1 {
  letter-spacing: 0 !important;
}

.hero p,
.lead,
.section-subtitle {
  color: rgba(17, 24, 39, .76);
}

.hero::after,
.main-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 42%;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,0), rgba(246,248,244,.95));
}

.parcela-card,
.parcel-card {
  overflow: hidden;
  background: linear-gradient(180deg, #fff, #fbfcf8);
}

.parcela-card img,
.parcel-card img,
.galeria img {
  object-fit: cover;
}

.precio,
.price,
.precio-destacado {
  color: var(--ds-green-900) !important;
  font-weight: 800 !important;
}

.estado-disponible,
.badge-disponible {
  background: #16a34a !important;
  color: #fff !important;
}

.estado-reservada,
.badge-reservada {
  background: #f59e0b !important;
  color: #1f2937 !important;
}

.estado-vendida,
.badge-vendida {
  background: #dc2626 !important;
  color: #fff !important;
}

#mapa-parcelas,
#map,
.mapa,
.map-container {
  border-radius: 10px !important;
  border: 1px solid rgba(16,38,25,.18);
  box-shadow: var(--ds-shadow-md) !important;
}

.whatsapp-float,
.chat-float,
.floating-whatsapp,
a[href*="wa.me"][style*="fixed"] {
  box-shadow: 0 16px 36px rgba(22, 163, 74, .35) !important;
}

nav,
.nav,
.menu,
.main-nav {
  border-bottom: 1px solid rgba(255,255,255,.08);
}

nav a,
.nav a,
.main-nav a {
  position: relative;
}

nav a::after,
.main-nav a::after {
  content: "";
  position: absolute;
  left: 50%;
  right: 50%;
  bottom: -8px;
  height: 2px;
  background: var(--ds-gold-500);
  transition: left .18s ease, right .18s ease;
}

nav a:hover::after,
.main-nav a:hover::after {
  left: 12%;
  right: 12%;
}

.hero,
.hero-section,
.main-hero,
[class*="hero"] {
  isolation: isolate;
}

.hero .cta,
.hero a[class*="btn"],
.main-hero .cta,
.main-hero a[class*="btn"] {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
}

.stats,
.stats-grid,
.metric-grid {
  gap: 1rem;
}

.stat,
.metric,
.stat-badge {
  backdrop-filter: blur(14px);
}

.parcela-card .card-header,
.parcel-card .card-header,
.parcela-card [class*="header"] {
  background: linear-gradient(135deg, var(--ds-green-800), var(--ds-green-700)) !important;
}

.parcela-card h3,
.parcel-card h3,
.parcela-card h4,
.parcel-card h4 {
  letter-spacing: 0 !important;
}

.parcela-card .btn,
.parcel-card .btn,
.parcela-card a,
.parcel-card a {
  font-weight: 700;
}

.ficha-sticky,
.sticky-cta,
.cta-sticky {
  backdrop-filter: blur(16px);
  border-top: 1px solid rgba(16,38,25,.12);
}

.gallery,
.galeria,
.carousel,
.photo-grid {
  border-radius: 10px;
}

.section-title,
section h2 {
  color: var(--ds-green-900);
  letter-spacing: 0 !important;
}

section h2::after {
  content: "";
  display: block;
  width: 54px;
  height: 3px;
  margin: .55rem auto 0;
  background: linear-gradient(90deg, var(--ds-gold-500), transparent);
  border-radius: 999px;
}

.admin-body section h2::after,
.admin-body .card-header::after {
  display: none;
}

.modal-content {
  border-radius: 12px !important;
  border: 1px solid rgba(16,38,25,.14) !important;
  box-shadow: 0 28px 72px rgba(7, 20, 12, .28) !important;
}

@media (max-width: 760px) {
  .container,
  .section-inner {
    width: min(100% - 22px, 1180px);
  }
  .hero,
  .hero-section,
  .main-hero {
    min-height: 78vh;
  }
  h1,
  .hero-title {
    font-size: clamp(2.1rem, 12vw, 3.2rem) !important;
    line-height: 1.02 !important;
  }
  .card,
  .parcela-card,
  .feature-card {
    border-radius: 8px !important;
  }
}
